@f1softinternational/f1-nepali-date-picker 1.0.2 → 1.0.3
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.
|
@@ -132,15 +132,22 @@ export class NepaliDate {
|
|
|
132
132
|
*/
|
|
133
133
|
format(pattern = 'YYYY-MM-DD', useNepaliDigits = false) {
|
|
134
134
|
let result = pattern;
|
|
135
|
-
//
|
|
135
|
+
// Use placeholders without M/D/Y characters to prevent regex replacement issues
|
|
136
|
+
const monthNameEn = BS_MONTHS_EN[this._month - 1];
|
|
137
|
+
const monthNameNp = BS_MONTHS_NP[this._month - 1];
|
|
138
|
+
// Replace month name patterns first with unique placeholders
|
|
139
|
+
result = result.replace(/MMMM/g, '\x00EN\x00');
|
|
140
|
+
result = result.replace(/mmmm/g, '\x00NP\x00');
|
|
141
|
+
// Replace year and numeric patterns
|
|
136
142
|
result = result.replace(/YYYY/g, String(this._year).padStart(4, '0'));
|
|
137
143
|
result = result.replace(/YY/g, String(this._year).slice(-2));
|
|
138
|
-
result = result.replace(/MMMM/g, BS_MONTHS_EN[this._month - 1]);
|
|
139
|
-
result = result.replace(/mmmm/g, BS_MONTHS_NP[this._month - 1]);
|
|
140
144
|
result = result.replace(/MM/g, String(this._month).padStart(2, '0'));
|
|
141
145
|
result = result.replace(/M/g, String(this._month));
|
|
142
146
|
result = result.replace(/DD/g, String(this._day).padStart(2, '0'));
|
|
143
147
|
result = result.replace(/D/g, String(this._day));
|
|
148
|
+
// Restore month names from placeholders
|
|
149
|
+
result = result.replace(/\x00EN\x00/g, monthNameEn);
|
|
150
|
+
result = result.replace(/\x00NP\x00/g, monthNameNp);
|
|
144
151
|
if (useNepaliDigits) {
|
|
145
152
|
result = toNepaliDigits(result);
|
|
146
153
|
}
|
|
@@ -255,4 +262,4 @@ export class NepaliDate {
|
|
|
255
262
|
return new NepaliDate(parts[0], parts[1], parts[2]);
|
|
256
263
|
}
|
|
257
264
|
}
|
|
258
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVwYWxpLWRhdGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mMS1uZXBhbGktZGF0ZS1waWNrZXIvc3JjL2xpYi9tb2RlbHMvbmVwYWxpLWRhdGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGdCQUFnQixFQUNoQixZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxXQUFXLEVBQ1gsUUFBUSxFQUNSLFFBQVEsRUFDUixnQkFBZ0IsRUFDaEIsY0FBYyxHQUNqQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFLbkIsWUFBWSxJQUFZLEVBQUUsS0FBYSxFQUFFLEdBQVc7UUFDaEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7SUFDcEIsQ0FBQztJQUVELFVBQVU7SUFDVixJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxLQUFLO1FBQ1IsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQVk7UUFDdEIsNEJBQTRCO1FBQzVCLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pHLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTVFLElBQUksUUFBUSxHQUFHLENBQUMsRUFBRTtZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNyRDtRQUVELElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUM3QixJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBRXpCLFdBQVc7UUFDWCxPQUFPLFFBQVEsR0FBRyxDQUFDLEVBQUU7WUFDakIsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3RELE1BQU0sb0JBQW9CLEdBQUcsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUVqRCxJQUFJLFFBQVEsSUFBSSxvQkFBb0IsRUFBRTtnQkFDbEMsS0FBSyxJQUFJLFFBQVEsQ0FBQztnQkFDbEIsUUFBUSxHQUFHLENBQUMsQ0FBQzthQUNoQjtpQkFBTTtnQkFDSCxRQUFRLElBQUksb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQyxPQUFPLEVBQUUsQ0FBQztnQkFDVixLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUVWLElBQUksT0FBTyxHQUFHLEVBQUUsRUFBRTtvQkFDZCxPQUFPLEdBQUcsQ0FBQyxDQUFDO29CQUNaLE1BQU0sRUFBRSxDQUFDO29CQUNULElBQUksTUFBTSxHQUFHLFdBQVcsRUFBRTt3QkFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsV0FBVyxNQUFNLENBQUMsQ0FBQztxQkFDNUU7aUJBQ0o7YUFDSjtTQUNKO1FBRUQsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNILElBQUk7UUFDQSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUN6QztRQUVELElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUVsQiw4QkFBOEI7UUFDOUIsS0FBSyxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ3RELE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLElBQUksUUFBUSxFQUFFO2dCQUNWLFNBQVMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzthQUM5RDtTQUNKO1FBRUQsK0NBQStDO1FBQy9DLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzlDLFNBQVMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3BEO1FBRUQscUJBQXFCO1FBQ3JCLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUUzQiwrQkFBK0I7UUFDL0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFFN0MsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNILG1CQUFtQjtRQUNuQixJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxFQUFFO1lBQ3RELE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsb0JBQW9CO1FBQ3BCLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUU7WUFDckMsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxrQkFBa0I7UUFDbEIsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUQsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsRUFBRTtZQUMxQyxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQUMsT0FBb0IsSUFBSTtRQUNqQyxPQUFPLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxNQUFNLENBQUMsVUFBa0IsWUFBWSxFQUFFLGtCQUEyQixLQUFLO1FBQ25FLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQztRQUVyQiwyREFBMkQ7UUFDM0QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbkQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFakQsSUFBSSxlQUFlLEVBQUU7WUFDakIsTUFBTSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNuQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENB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dGVudCI6WyJpbXBvcnQge1xuICAgIEJTX0NBTEVOREFSX0RBVEEsXG4gICAgQlNfTU9OVEhTX0VOLFxuICAgIEJTX01PTlRIU19OUCxcbiAgICBCU19NSU5fWUVBUixcbiAgICBCU19NQVhfWUVBUixcbiAgICBBRF9FUE9DSCxcbiAgICBCU19FUE9DSCxcbiAgICBnZXREYXlzSW5CU01vbnRoLFxuICAgIHRvTmVwYWxpRGlnaXRzLFxufSBmcm9tICcuLi91dGlscy9icy1jYWxlbmRhci1kYXRhJztcblxuLyoqXG4gKiBOZXBhbGlEYXRlIC0gUmVwcmVzZW50cyBhIGRhdGUgaW4gdGhlIEJpa3JhbSBTYW1iYXQgKEJTKSBjYWxlbmRhclxuICovXG5leHBvcnQgY2xhc3MgTmVwYWxpRGF0ZSB7XG4gICAgcHJpdmF0ZSBfeWVhcjogbnVtYmVyO1xuICAgIHByaXZhdGUgX21vbnRoOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfZGF5OiBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3Rvcih5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX3llYXIgPSB5ZWFyO1xuICAgICAgICB0aGlzLl9tb250aCA9IG1vbnRoO1xuICAgICAgICB0aGlzLl9kYXkgPSBkYXk7XG4gICAgfVxuXG4gICAgLy8gR2V0dGVyc1xuICAgIGdldCB5ZWFyKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl95ZWFyO1xuICAgIH1cblxuICAgIGdldCBtb250aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9udGg7XG4gICAgfVxuXG4gICAgZ2V0IGRheSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBOZXBhbGlEYXRlIGZyb20gY3VycmVudCBkYXRlXG4gICAgICovXG4gICAgc3RhdGljIHRvZGF5KCk6IE5lcGFsaURhdGUge1xuICAgICAgICByZXR1cm4gTmVwYWxpRGF0ZS5mcm9tQUQobmV3IERhdGUoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIE5lcGFsaURhdGUgZnJvbSBBRCBEYXRlXG4gICAgICovXG4gICAgc3RhdGljIGZyb21BRChhZERhdGU6IERhdGUpOiBOZXBhbGlEYXRlIHtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIGRheXMgZnJvbSBlcG9jaFxuICAgICAgICBjb25zdCBlcG9jaFRpbWUgPSBBRF9FUE9DSC5nZXRUaW1lKCk7XG4gICAgICAgIGNvbnN0IHRhcmdldFRpbWUgPSBuZXcgRGF0ZShhZERhdGUuZ2V0RnVsbFllYXIoKSwgYWREYXRlLmdldE1vbnRoKCksIGFkRGF0ZS5nZXREYXRlKCkpLmdldFRpbWUoKTtcbiAgICAgICAgbGV0IGRheXNEaWZmID0gTWF0aC5mbG9vcigodGFyZ2V0VGltZSAtIGVwb2NoVGltZSkgLyAoMTAwMCAqIDYwICogNjAgKiAyNCkpO1xuXG4gICAgICAgIGlmIChkYXlzRGlmZiA8IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRGF0ZSBpcyBiZWZvcmUgc3VwcG9ydGVkIHJhbmdlJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgYnNZZWFyID0gQlNfRVBPQ0gueWVhcjtcbiAgICAgICAgbGV0IGJzTW9udGggPSBCU19FUE9DSC5tb250aDtcbiAgICAgICAgbGV0IGJzRGF5ID0gQlNfRVBPQ0guZGF5O1xuXG4gICAgICAgIC8vIEFkZCBkYXlzXG4gICAgICAgIHdoaWxlIChkYXlzRGlmZiA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGRheXNJbk1vbnRoID0gZ2V0RGF5c0luQlNNb250aChic1llYXIsIGJzTW9udGgpO1xuICAgICAgICAgICAgY29uc3QgZGF5c1JlbWFpbmluZ0luTW9udGggPSBkYXlzSW5Nb250aCAtIGJzRGF5O1xuXG4gICAgICAgICAgICBpZiAoZGF5c0RpZmYgPD0gZGF5c1JlbWFpbmluZ0luTW9udGgpIHtcbiAgICAgICAgICAgICAgICBic0RheSArPSBkYXlzRGlmZjtcbiAgICAgICAgICAgICAgICBkYXlzRGlmZiA9IDA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRheXNEaWZmIC09IGRheXNSZW1haW5pbmdJbk1vbnRoICsgMTtcbiAgICAgICAgICAgICAgICBic01vbnRoKys7XG4gICAgICAgICAgICAgICAgYnNEYXkgPSAxO1xuXG4gICAgICAgICAgICAgICAgaWYgKGJzTW9udGggPiAxMikge1xuICAgICAgICAgICAgICAgICAgICBic01vbnRoID0gMTtcbiAgICAgICAgICAgICAgICAgICAgYnNZZWFyKys7XG4gICAgICAgICAgICAgICAgICAgIGlmIChic1llYXIgPiBCU19NQVhfWUVBUikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBEYXRlIGV4Y2VlZHMgc3VwcG9ydGVkIHJhbmdlIChtYXg6ICR7QlNfTUFYX1lFQVJ9IEJTKWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBOZXBhbGlEYXRlKGJzWWVhciwgYnNNb250aCwgYnNEYXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgdG8gQUQgRGF0ZVxuICAgICAqL1xuICAgIHRvQUQoKTogRGF0ZSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBOZXBhbGlEYXRlJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdG90YWxEYXlzID0gMDtcblxuICAgICAgICAvLyBBZGQgZGF5cyBmb3IgY29tcGxldGUgeWVhcnNcbiAgICAgICAgZm9yIChsZXQgeWVhciA9IEJTX0VQT0NILnllYXI7IHllYXIgPCB0aGlzLl95ZWFyOyB5ZWFyKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHllYXJEYXRhID0gQlNfQ0FMRU5EQVJfREFUQVt5ZWFyXTtcbiAgICAgICAgICAgIGlmICh5ZWFyRGF0YSkge1xuICAgICAgICAgICAgICAgIHRvdGFsRGF5cyArPSB5ZWFyRGF0YS5yZWR1Y2UoKHN1bSwgZGF5cykgPT4gc3VtICsgZGF5cywgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgZGF5cyBmb3IgY29tcGxldGUgbW9udGhzIGluIGN1cnJlbnQgeWVhclxuICAgICAgICBmb3IgKGxldCBtb250aCA9IDE7IG1vbnRoIDwgdGhpcy5fbW9udGg7IG1vbnRoKyspIHtcbiAgICAgICAgICAgIHRvdGFsRGF5cyArPSBnZXREYXlzSW5CU01vbnRoKHRoaXMuX3llYXIsIG1vbnRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkZCByZW1haW5pbmcgZGF5c1xuICAgICAgICB0b3RhbERheXMgKz0gdGhpcy5fZGF5IC0gMTtcblxuICAgICAgICAvLyBDYWxjdWxhdGUgQUQgZGF0ZSBmcm9tIGVwb2NoXG4gICAgICAgIGNvbnN0IGFkRGF0ZSA9IG5ldyBEYXRlKEFEX0VQT0NIKTtcbiAgICAgICAgYWREYXRlLnNldERhdGUoYWREYXRlLmdldERhdGUoKSArIHRvdGFsRGF5cyk7XG5cbiAgICAgICAgcmV0dXJuIGFkRGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB0aGUgZGF0ZSBpcyB2YWxpZFxuICAgICAqL1xuICAgIGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIENoZWNrIHllYXIgcmFuZ2VcbiAgICAgICAgaWYgKHRoaXMuX3llYXIgPCBCU19NSU5fWUVBUiB8fCB0aGlzLl95ZWFyID4gQlNfTUFYX1lFQVIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIG1vbnRoIHJhbmdlXG4gICAgICAgIGlmICh0aGlzLl9tb250aCA8IDEgfHwgdGhpcy5fbW9udGggPiAxMikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgZGF5IHJhbmdlXG4gICAgICAgIGNvbnN0IGRheXNJbk1vbnRoID0gZ2V0RGF5c0luQlNNb250aCh0aGlzLl95ZWFyLCB0aGlzLl9tb250aCk7XG4gICAgICAgIGlmICh0aGlzLl9kYXkgPCAxIHx8IHRoaXMuX2RheSA+IGRheXNJbk1vbnRoKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIGRheSBvZiB3ZWVrICgwID0gU3VuZGF5LCA2ID0gU2F0dXJkYXkpXG4gICAgICovXG4gICAgZ2V0RGF5KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvQUQoKS5nZXREYXkoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgbW9udGggbmFtZSBpbiBzcGVjaWZpZWQgbGFuZ3VhZ2VcbiAgICAgKi9cbiAgICBnZXRNb250aE5hbWUobGFuZzogJ2VuJyB8ICducCcgPSAnZW4nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGxhbmcgPT09ICducCcgPyBCU19NT05USFNfTlBbdGhpcy5fbW9udGggLSAxXSA6IEJTX01PTlRIU19FTlt0aGlzLl9tb250aCAtIDFdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZvcm1hdCBkYXRlIGFjY29yZGluZyB0byBwYXR0ZXJuXG4gICAgICogUGF0dGVybnM6XG4gICAgICogICBZWVlZIC0gNC1kaWdpdCB5ZWFyXG4gICAgICogICBZWSAgIC0gMi1kaWdpdCB5ZWFyXG4gICAgICogICBNTSAgIC0gMi1kaWdpdCBtb250aFxuICAgICAqICAgTSAgICAtIG1vbnRoIHdpdGhvdXQgbGVhZGluZyB6ZXJvXG4gICAgICogICBERCAgIC0gMi1kaWdpdCBkYXlcbiAgICAgKiAgIEQgICAgLSBkYXkgd2l0aG91dCBsZWFkaW5nIHplcm9cbiAgICAgKiAgIE1NTU0gLSBmdWxsIG1vbnRoIG5hbWUgKEVuZ2xpc2gpXG4gICAgICogICBtbW1tIC0gZnVsbCBtb250aCBuYW1lIChOZXBhbGkpXG4gICAgICovXG4gICAgZm9ybWF0KHBhdHRlcm46IHN0cmluZyA9ICdZWVlZLU1NLUREJywgdXNlTmVwYWxpRGlnaXRzOiBib29sZWFuID0gZmFsc2UpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcmVzdWx0ID0gcGF0dGVybjtcblxuICAgICAgICAvLyBSZXBsYWNlIHBhdHRlcm5zIChvcmRlciBtYXR0ZXJzIC0gbG9uZ2VyIHBhdHRlcm5zIGZpcnN0KVxuICAgICAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvWVlZWS9nLCBTdHJpbmcodGhpcy5feWVhcikucGFkU3RhcnQoNCwgJzAnKSk7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC9ZWS9nLCBTdHJpbmcodGhpcy5feWVhcikuc2xpY2UoLTIpKTtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoL01NTU0vZywgQlNfTU9OVEhTX0VOW3RoaXMuX21vbnRoIC0gMV0pO1xuICAgICAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvbW1tbS9nLCBCU19NT05USFNfTlBbdGhpcy5fbW9udGggLSAxXSk7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC9NTS9nLCBTdHJpbmcodGhpcy5fbW9udGgpLnBhZFN0YXJ0KDIsICcwJykpO1xuICAgICAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvTS9nLCBTdHJpbmcodGhpcy5fbW9udGgpKTtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoL0REL2csIFN0cmluZyh0aGlzLl9kYXkpLnBhZFN0YXJ0KDIsICcwJykpO1xuICAgICAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvRC9nLCBTdHJpbmcodGhpcy5fZGF5KSk7XG5cbiAgICAgICAgaWYgKHVzZU5lcGFsaURpZ2l0cykge1xuICAgICAgICAgICAgcmVzdWx0ID0gdG9OZXBhbGlEaWdpdHMocmVzdWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgY2xvbmUgb2YgdGhpcyBkYXRlXG4gICAgICovXG4gICAgY2xvbmUoKTogTmVwYWxpRGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgTmVwYWxpRGF0ZSh0aGlzLl95ZWFyLCB0aGlzLl9tb250aCwgdGhpcy5fZGF5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wYXJlIHdpdGggYW5vdGhlciBOZXBhbGlEYXRlXG4gICAgICogUmV0dXJuczogLTEgaWYgdGhpcyA8IG90aGVyLCAwIGlmIGVxdWFsLCAxIGlmIHRoaXMgPiBvdGhlclxuICAgICAqL1xuICAgIGNvbXBhcmVUbyhvdGhlcjogTmVwYWxpRGF0ZSk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLl95ZWFyICE9PSBvdGhlci5feWVhcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3llYXIgPCBvdGhlci5feWVhciA/IC0xIDogMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fbW9udGggIT09IG90aGVyLl9tb250aCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoIDwgb3RoZXIuX21vbnRoID8gLTEgOiAxO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9kYXkgIT09IG90aGVyLl9kYXkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXkgPCBvdGhlci5fZGF5ID8gLTEgOiAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoaXMgZGF0ZSBpcyBiZWZvcmUgYW5vdGhlclxuICAgICAqL1xuICAgIGlzQmVmb3JlKG90aGVyOiBOZXBhbGlEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVUbyhvdGhlcikgPCAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoaXMgZGF0ZSBpcyBhZnRlciBhbm90aGVyXG4gICAgICovXG4gICAgaXNBZnRlcihvdGhlcjogTmVwYWxpRGF0ZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlVG8ob3RoZXIpID4gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB0aGlzIGRhdGUgZXF1YWxzIGFub3RoZXJcbiAgICAgKi9cbiAgICBlcXVhbHMob3RoZXI6IE5lcGFsaURhdGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZVRvKG90aGVyKSA9PT0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgZGF5cyB0byBkYXRlIChyZXR1cm5zIG5ldyBOZXBhbGlEYXRlKVxuICAgICAqL1xuICAgIGFkZERheXMoZGF5czogbnVtYmVyKTogTmVwYWxpRGF0ZSB7XG4gICAgICAgIGNvbnN0IGFkRGF0ZSA9IHRoaXMudG9BRCgpO1xuICAgICAgICBhZERhdGUuc2V0RGF0ZShhZERhdGUuZ2V0RGF0ZSgpICsgZGF5cyk7XG4gICAgICAgIHJldHVybiBOZXBhbGlEYXRlLmZyb21BRChhZERhdGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBtb250aHMgdG8gZGF0ZSAocmV0dXJucyBuZXcgTmVwYWxpRGF0ZSlcbiAgICAgKi9cbiAgICBhZGRNb250aHMobW9udGhzOiBudW1iZXIpOiBOZXBhbGlEYXRlIHtcbiAgICAgICAgbGV0IG5ld1llYXIgPSB0aGlzLl95ZWFyO1xuICAgICAgICBsZXQgbmV3TW9udGggPSB0aGlzLl9tb250aCArIG1vbnRocztcblxuICAgICAgICB3aGlsZSAobmV3TW9udGggPiAxMikge1xuICAgICAgICAgICAgbmV3TW9udGggLT0gMTI7XG4gICAgICAgICAgICBuZXdZZWFyKys7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKG5ld01vbnRoIDwgMSkge1xuICAgICAgICAgICAgbmV3TW9udGggKz0gMTI7XG4gICAgICAgICAgICBuZXdZZWFyLS07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGp1c3QgZGF5IGlmIGl0IGV4Y2VlZHMgZGF5cyBpbiBuZXcgbW9udGhcbiAgICAgICAgY29uc3QgZGF5c0luTmV3TW9udGggPSBnZXREYXlzSW5CU01vbnRoKG5ld1llYXIsIG5ld01vbnRoKTtcbiAgICAgICAgY29uc3QgbmV3RGF5ID0gTWF0aC5taW4odGhpcy5fZGF5LCBkYXlzSW5OZXdNb250aCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBOZXBhbGlEYXRlKG5ld1llYXIsIG5ld01vbnRoLCBuZXdEYXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB5ZWFycyB0byBkYXRlIChyZXR1cm5zIG5ldyBOZXBhbGlEYXRlKVxuICAgICAqL1xuICAgIGFkZFllYXJzKHllYXJzOiBudW1iZXIpOiBOZXBhbGlEYXRlIHtcbiAgICAgICAgY29uc3QgbmV3WWVhciA9IHRoaXMuX3llYXIgKyB5ZWFycztcbiAgICAgICAgY29uc3QgZGF5c0luTmV3TW9udGggPSBnZXREYXlzSW5CU01vbnRoKG5ld1llYXIsIHRoaXMuX21vbnRoKTtcbiAgICAgICAgY29uc3QgbmV3RGF5ID0gTWF0aC5taW4odGhpcy5fZGF5LCBkYXlzSW5OZXdNb250aCk7XG4gICAgICAgIHJldHVybiBuZXcgTmVwYWxpRGF0ZShuZXdZZWFyLCB0aGlzLl9tb250aCwgbmV3RGF5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgc3RyaW5nIHJlcHJlc2VudGF0aW9uXG4gICAgICovXG4gICAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydCB0byBwbGFpbiBvYmplY3RcbiAgICAgKi9cbiAgICB0b09iamVjdCgpOiB7IHllYXI6IG51bWJlcjsgbW9udGg6IG51bWJlcjsgZGF5OiBudW1iZXIgfSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB5ZWFyOiB0aGlzLl95ZWFyLFxuICAgICAgICAgICAgbW9udGg6IHRoaXMuX21vbnRoLFxuICAgICAgICAgICAgZGF5OiB0aGlzLl9kYXksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGZyb20gcGxhaW4gb2JqZWN0XG4gICAgICovXG4gICAgc3RhdGljIGZyb21PYmplY3Qob2JqOiB7IHllYXI6IG51bWJlcjsgbW9udGg6IG51bWJlcjsgZGF5OiBudW1iZXIgfSk6IE5lcGFsaURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IE5lcGFsaURhdGUob2JqLnllYXIsIG9iai5tb250aCwgb2JqLmRheSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFyc2UgZnJvbSBzdHJpbmcgKFlZWVktTU0tREQgZm9ybWF0KVxuICAgICAqL1xuICAgIHN0YXRpYyBwYXJzZShkYXRlU3RyaW5nOiBzdHJpbmcpOiBOZXBhbGlEYXRlIHtcbiAgICAgICAgY29uc3QgcGFydHMgPSBkYXRlU3RyaW5nLnNwbGl0KCctJykubWFwKE51bWJlcik7XG4gICAgICAgIGlmIChwYXJ0cy5sZW5ndGggIT09IDMgfHwgcGFydHMuc29tZShpc05hTikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRlIGZvcm1hdC4gRXhwZWN0ZWQgWVlZWS1NTS1ERCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgTmVwYWxpRGF0ZShwYXJ0c1swXSwgcGFydHNbMV0sIHBhcnRzWzJdKTtcbiAgICB9XG59XG4iXX0=
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVwYWxpLWRhdGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mMS1uZXBhbGktZGF0ZS1waWNrZXIvc3JjL2xpYi9tb2RlbHMvbmVwYWxpLWRhdGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGdCQUFnQixFQUNoQixZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxXQUFXLEVBQ1gsUUFBUSxFQUNSLFFBQVEsRUFDUixnQkFBZ0IsRUFDaEIsY0FBYyxHQUNqQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFLbkIsWUFBWSxJQUFZLEVBQUUsS0FBYSxFQUFFLEdBQVc7UUFDaEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7SUFDcEIsQ0FBQztJQUVELFVBQVU7SUFDVixJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxLQUFLO1FBQ1IsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQVk7UUFDdEIsNEJBQTRCO1FBQzVCLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pHLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTVFLElBQUksUUFBUSxHQUFHLENBQUMsRUFBRTtZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNyRDtRQUVELElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUM3QixJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBRXpCLFdBQVc7UUFDWCxPQUFPLFFBQVEsR0FBRyxDQUFDLEVBQUU7WUFDakIsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3RELE1BQU0sb0JBQW9CLEdBQUcsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUVqRCxJQUFJLFFBQVEsSUFBSSxvQkFBb0IsRUFBRTtnQkFDbEMsS0FBSyxJQUFJLFFBQVEsQ0FBQztnQkFDbEIsUUFBUSxHQUFHLENBQUMsQ0FBQzthQUNoQjtpQkFBTTtnQkFDSCxRQUFRLElBQUksb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQyxPQUFPLEVBQUUsQ0FBQztnQkFDVixLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUVWLElBQUksT0FBTyxHQUFHLEVBQUUsRUFBRTtvQkFDZCxPQUFPLEdBQUcsQ0FBQyxDQUFDO29CQUNaLE1BQU0sRUFBRSxDQUFDO29CQUNULElBQUksTUFBTSxHQUFHLFdBQVcsRUFBRTt3QkFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsV0FBVyxNQUFNLENBQUMsQ0FBQztxQkFDNUU7aUJBQ0o7YUFDSjtTQUNKO1FBRUQsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNILElBQUk7UUFDQSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUN6QztRQUVELElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUVsQiw4QkFBOEI7UUFDOUIsS0FBSyxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ3RELE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLElBQUksUUFBUSxFQUFFO2dCQUNWLFNBQVMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzthQUM5RDtTQUNKO1FBRUQsK0NBQStDO1FBQy9DLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzlDLFNBQVMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3BEO1FBRUQscUJBQXFCO1FBQ3JCLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUUzQiwrQkFBK0I7UUFDL0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFFN0MsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNILG1CQUFtQjtRQUNuQixJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxFQUFFO1lBQ3RELE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsb0JBQW9CO1FBQ3BCLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUU7WUFDckMsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxrQkFBa0I7UUFDbEIsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUQsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsRUFBRTtZQUMxQyxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQUMsT0FBb0IsSUFBSTtRQUNqQyxPQUFPLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxNQUFNLENBQUMsVUFBa0IsWUFBWSxFQUFFLGtCQUEyQixLQUFLO1FBQ25FLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQztRQUVyQixnRkFBZ0Y7UUFDaEYsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEQsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFbEQsNkRBQTZEO1FBQzdELE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMvQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFL0Msb0NBQW9DO1FBQ3BDLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdELE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNyRSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuRSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRWpELHdDQUF3QztRQUN4QyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDcEQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRXBELElBQUksZUFBZSxFQUFFO1lBQ2pCLE1BQU0sR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0QsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsS0FBaUI7UUFDdkIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUM7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUM5QixPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM5QztRQUNELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzFDO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsS0FBaUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsS0FBaUI7UUFDckIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsS0FBaUI7UUFDcEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsSUFBWTtRQUNoQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDeEMsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsQ0FBQyxNQUFjO1FBQ3BCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFcEMsT0FBTyxRQUFRLEdBQUcsRUFBRSxFQUFFO1lBQ2xCLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDZixPQUFPLEVBQUUsQ0FBQztTQUNiO1FBQ0QsT0FBTyxRQUFRLEdBQUcsQ0FBQyxFQUFFO1lBQ2pCLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDZixPQUFPLEVBQUUsQ0FBQztTQUNiO1FBRUQsNkNBQTZDO1FBQzdDLE1BQU0sY0FBYyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFFbkQsT0FBTyxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVEsQ0FBQyxLQUFhO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25DLE1BQU0sY0FBYyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNKLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ0osT0FBTztZQUNILElBQUksRUFBRSxJQUFJLENBQUMsS0FBSztZQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbEIsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2pCLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQWlEO1FBQy9ELE9BQU8sSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQWtCO1FBQzNCLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QyxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7U0FDL0Q7UUFDRCxPQUFPLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBCU19DQUxFTkRBUl9EQVRBLFxuICAgIEJTX01PTlRIU19FTixcbiAgICBCU19NT05USFNfTlAsXG4gICAgQlNfTUlOX1lFQVIsXG4gICAgQlNfTUFYX1lFQVIsXG4gICAgQURfRVBPQ0gsXG4gICAgQlNfRVBPQ0gsXG4gICAgZ2V0RGF5c0luQlNNb250aCxcbiAgICB0b05lcGFsaURpZ2l0cyxcbn0gZnJvbSAnLi4vdXRpbHMvYnMtY2FsZW5kYXItZGF0YSc7XG5cbi8qKlxuICogTmVwYWxpRGF0ZSAtIFJlcHJlc2VudHMgYSBkYXRlIGluIHRoZSBCaWtyYW0gU2FtYmF0IChCUykgY2FsZW5kYXJcbiAqL1xuZXhwb3J0IGNsYXNzIE5lcGFsaURhdGUge1xuICAgIHByaXZhdGUgX3llYXI6IG51bWJlcjtcbiAgICBwcml2YXRlIF9tb250aDogbnVtYmVyO1xuICAgIHByaXZhdGUgX2RheTogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlcikge1xuICAgICAgICB0aGlzLl95ZWFyID0geWVhcjtcbiAgICAgICAgdGhpcy5fbW9udGggPSBtb250aDtcbiAgICAgICAgdGhpcy5fZGF5ID0gZGF5O1xuICAgIH1cblxuICAgIC8vIEdldHRlcnNcbiAgICBnZXQgeWVhcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5feWVhcjtcbiAgICB9XG5cbiAgICBnZXQgbW9udGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoO1xuICAgIH1cblxuICAgIGdldCBkYXkoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgTmVwYWxpRGF0ZSBmcm9tIGN1cnJlbnQgZGF0ZVxuICAgICAqL1xuICAgIHN0YXRpYyB0b2RheSgpOiBOZXBhbGlEYXRlIHtcbiAgICAgICAgcmV0dXJuIE5lcGFsaURhdGUuZnJvbUFEKG5ldyBEYXRlKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBOZXBhbGlEYXRlIGZyb20gQUQgRGF0ZVxuICAgICAqL1xuICAgIHN0YXRpYyBmcm9tQUQoYWREYXRlOiBEYXRlKTogTmVwYWxpRGF0ZSB7XG4gICAgICAgIC8vIENhbGN1bGF0ZSBkYXlzIGZyb20gZXBvY2hcbiAgICAgICAgY29uc3QgZXBvY2hUaW1lID0gQURfRVBPQ0guZ2V0VGltZSgpO1xuICAgICAgICBjb25zdCB0YXJnZXRUaW1lID0gbmV3IERhdGUoYWREYXRlLmdldEZ1bGxZZWFyKCksIGFkRGF0ZS5nZXRNb250aCgpLCBhZERhdGUuZ2V0RGF0ZSgpKS5nZXRUaW1lKCk7XG4gICAgICAgIGxldCBkYXlzRGlmZiA9IE1hdGguZmxvb3IoKHRhcmdldFRpbWUgLSBlcG9jaFRpbWUpIC8gKDEwMDAgKiA2MCAqIDYwICogMjQpKTtcblxuICAgICAgICBpZiAoZGF5c0RpZmYgPCAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGUgaXMgYmVmb3JlIHN1cHBvcnRlZCByYW5nZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGJzWWVhciA9IEJTX0VQT0NILnllYXI7XG4gICAgICAgIGxldCBic01vbnRoID0gQlNfRVBPQ0gubW9udGg7XG4gICAgICAgIGxldCBic0RheSA9IEJTX0VQT0NILmRheTtcblxuICAgICAgICAvLyBBZGQgZGF5c1xuICAgICAgICB3aGlsZSAoZGF5c0RpZmYgPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBkYXlzSW5Nb250aCA9IGdldERheXNJbkJTTW9udGgoYnNZZWFyLCBic01vbnRoKTtcbiAgICAgICAgICAgIGNvbnN0IGRheXNSZW1haW5pbmdJbk1vbnRoID0gZGF5c0luTW9udGggLSBic0RheTtcblxuICAgICAgICAgICAgaWYgKGRheXNEaWZmIDw9IGRheXNSZW1haW5pbmdJbk1vbnRoKSB7XG4gICAgICAgICAgICAgICAgYnNEYXkgKz0gZGF5c0RpZmY7XG4gICAgICAgICAgICAgICAgZGF5c0RpZmYgPSAwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYXlzRGlmZiAtPSBkYXlzUmVtYWluaW5nSW5Nb250aCArIDE7XG4gICAgICAgICAgICAgICAgYnNNb250aCsrO1xuICAgICAgICAgICAgICAgIGJzRGF5ID0gMTtcblxuICAgICAgICAgICAgICAgIGlmIChic01vbnRoID4gMTIpIHtcbiAgICAgICAgICAgICAgICAgICAgYnNNb250aCA9IDE7XG4gICAgICAgICAgICAgICAgICAgIGJzWWVhcisrO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYnNZZWFyID4gQlNfTUFYX1lFQVIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRGF0ZSBleGNlZWRzIHN1cHBvcnRlZCByYW5nZSAobWF4OiAke0JTX01BWF9ZRUFSfSBCUylgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgTmVwYWxpRGF0ZShic1llYXIsIGJzTW9udGgsIGJzRGF5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IHRvIEFEIERhdGVcbiAgICAgKi9cbiAgICB0b0FEKCk6IERhdGUge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgTmVwYWxpRGF0ZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHRvdGFsRGF5cyA9IDA7XG5cbiAgICAgICAgLy8gQWRkIGRheXMgZm9yIGNvbXBsZXRlIHllYXJzXG4gICAgICAgIGZvciAobGV0IHllYXIgPSBCU19FUE9DSC55ZWFyOyB5ZWFyIDwgdGhpcy5feWVhcjsgeWVhcisrKSB7XG4gICAgICAgICAgICBjb25zdCB5ZWFyRGF0YSA9IEJTX0NBTEVOREFSX0RBVEFbeWVhcl07XG4gICAgICAgICAgICBpZiAoeWVhckRhdGEpIHtcbiAgICAgICAgICAgICAgICB0b3RhbERheXMgKz0geWVhckRhdGEucmVkdWNlKChzdW0sIGRheXMpID0+IHN1bSArIGRheXMsIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWRkIGRheXMgZm9yIGNvbXBsZXRlIG1vbnRocyBpbiBjdXJyZW50IHllYXJcbiAgICAgICAgZm9yIChsZXQgbW9udGggPSAxOyBtb250aCA8IHRoaXMuX21vbnRoOyBtb250aCsrKSB7XG4gICAgICAgICAgICB0b3RhbERheXMgKz0gZ2V0RGF5c0luQlNNb250aCh0aGlzLl95ZWFyLCBtb250aCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgcmVtYWluaW5nIGRheXNcbiAgICAgICAgdG90YWxEYXlzICs9IHRoaXMuX2RheSAtIDE7XG5cbiAgICAgICAgLy8gQ2FsY3VsYXRlIEFEIGRhdGUgZnJvbSBlcG9jaFxuICAgICAgICBjb25zdCBhZERhdGUgPSBuZXcgRGF0ZShBRF9FUE9DSCk7XG4gICAgICAgIGFkRGF0ZS5zZXREYXRlKGFkRGF0ZS5nZXREYXRlKCkgKyB0b3RhbERheXMpO1xuXG4gICAgICAgIHJldHVybiBhZERhdGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIGRhdGUgaXMgdmFsaWRcbiAgICAgKi9cbiAgICBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBDaGVjayB5ZWFyIHJhbmdlXG4gICAgICAgIGlmICh0aGlzLl95ZWFyIDwgQlNfTUlOX1lFQVIgfHwgdGhpcy5feWVhciA+IEJTX01BWF9ZRUFSKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBtb250aCByYW5nZVxuICAgICAgICBpZiAodGhpcy5fbW9udGggPCAxIHx8IHRoaXMuX21vbnRoID4gMTIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGRheSByYW5nZVxuICAgICAgICBjb25zdCBkYXlzSW5Nb250aCA9IGdldERheXNJbkJTTW9udGgodGhpcy5feWVhciwgdGhpcy5fbW9udGgpO1xuICAgICAgICBpZiAodGhpcy5fZGF5IDwgMSB8fCB0aGlzLl9kYXkgPiBkYXlzSW5Nb250aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBkYXkgb2Ygd2VlayAoMCA9IFN1bmRheSwgNiA9IFNhdHVyZGF5KVxuICAgICAqL1xuICAgIGdldERheSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy50b0FEKCkuZ2V0RGF5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IG1vbnRoIG5hbWUgaW4gc3BlY2lmaWVkIGxhbmd1YWdlXG4gICAgICovXG4gICAgZ2V0TW9udGhOYW1lKGxhbmc6ICdlbicgfCAnbnAnID0gJ2VuJyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBsYW5nID09PSAnbnAnID8gQlNfTU9OVEhTX05QW3RoaXMuX21vbnRoIC0gMV0gOiBCU19NT05USFNfRU5bdGhpcy5fbW9udGggLSAxXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb3JtYXQgZGF0ZSBhY2NvcmRpbmcgdG8gcGF0dGVyblxuICAgICAqIFBhdHRlcm5zOlxuICAgICAqICAgWVlZWSAtIDQtZGlnaXQgeWVhclxuICAgICAqICAgWVkgICAtIDItZGlnaXQgeWVhclxuICAgICAqICAgTU0gICAtIDItZGlnaXQgbW9udGhcbiAgICAgKiAgIE0gICAgLSBtb250aCB3aXRob3V0IGxlYWRpbmcgemVyb1xuICAgICAqICAgREQgICAtIDItZGlnaXQgZGF5XG4gICAgICogICBEICAgIC0gZGF5IHdpdGhvdXQgbGVhZGluZyB6ZXJvXG4gICAgICogICBNTU1NIC0gZnVsbCBtb250aCBuYW1lIChFbmdsaXNoKVxuICAgICAqICAgbW1tbSAtIGZ1bGwgbW9udGggbmFtZSAoTmVwYWxpKVxuICAgICAqL1xuICAgIGZvcm1hdChwYXR0ZXJuOiBzdHJpbmcgPSAnWVlZWS1NTS1ERCcsIHVzZU5lcGFsaURpZ2l0czogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IHBhdHRlcm47XG5cbiAgICAgICAgLy8gVXNlIHBsYWNlaG9sZGVycyB3aXRob3V0IE0vRC9ZIGNoYXJhY3RlcnMgdG8gcHJldmVudCByZWdleCByZXBsYWNlbWVudCBpc3N1ZXNcbiAgICAgICAgY29uc3QgbW9udGhOYW1lRW4gPSBCU19NT05USFNfRU5bdGhpcy5fbW9udGggLSAxXTtcbiAgICAgICAgY29uc3QgbW9udGhOYW1lTnAgPSBCU19NT05USFNfTlBbdGhpcy5fbW9udGggLSAxXTtcblxuICAgICAgICAvLyBSZXBsYWNlIG1vbnRoIG5hbWUgcGF0dGVybnMgZmlyc3Qgd2l0aCB1bmlxdWUgcGxhY2Vob2xkZXJzXG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC9NTU1NL2csICdcXHgwMEVOXFx4MDAnKTtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoL21tbW0vZywgJ1xceDAwTlBcXHgwMCcpO1xuXG4gICAgICAgIC8vIFJlcGxhY2UgeWVhciBhbmQgbnVtZXJpYyBwYXR0ZXJuc1xuICAgICAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvWVlZWS9nLCBTdHJpbmcodGhpcy5feWVhcikucGFkU3RhcnQoNCwgJzAnKSk7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC9ZWS9nLCBTdHJpbmcodGhpcy5feWVhcikuc2xpY2UoLTIpKTtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoL01NL2csIFN0cmluZyh0aGlzLl9tb250aCkucGFkU3RhcnQoMiwgJzAnKSk7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC9NL2csIFN0cmluZyh0aGlzLl9tb250aCkpO1xuICAgICAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvREQvZywgU3RyaW5nKHRoaXMuX2RheSkucGFkU3RhcnQoMiwgJzAnKSk7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC9EL2csIFN0cmluZyh0aGlzLl9kYXkpKTtcblxuICAgICAgICAvLyBSZXN0b3JlIG1vbnRoIG5hbWVzIGZyb20gcGxhY2Vob2xkZXJzXG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC9cXHgwMEVOXFx4MDAvZywgbW9udGhOYW1lRW4pO1xuICAgICAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvXFx4MDBOUFxceDAwL2csIG1vbnRoTmFtZU5wKTtcblxuICAgICAgICBpZiAodXNlTmVwYWxpRGlnaXRzKSB7XG4gICAgICAgICAgICByZXN1bHQgPSB0b05lcGFsaURpZ2l0cyhyZXN1bHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBjbG9uZSBvZiB0aGlzIGRhdGVcbiAgICAgKi9cbiAgICBjbG9uZSgpOiBOZXBhbGlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBOZXBhbGlEYXRlKHRoaXMuX3llYXIsIHRoaXMuX21vbnRoLCB0aGlzLl9kYXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbXBhcmUgd2l0aCBhbm90aGVyIE5lcGFsaURhdGVcbiAgICAgKiBSZXR1cm5zOiAtMSBpZiB0aGlzIDwgb3RoZXIsIDAgaWYgZXF1YWwsIDEgaWYgdGhpcyA+IG90aGVyXG4gICAgICovXG4gICAgY29tcGFyZVRvKG90aGVyOiBOZXBhbGlEYXRlKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuX3llYXIgIT09IG90aGVyLl95ZWFyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5feWVhciA8IG90aGVyLl95ZWFyID8gLTEgOiAxO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9tb250aCAhPT0gb3RoZXIuX21vbnRoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGggPCBvdGhlci5fbW9udGggPyAtMSA6IDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2RheSAhPT0gb3RoZXIuX2RheSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RheSA8IG90aGVyLl9kYXkgPyAtMSA6IDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhpcyBkYXRlIGlzIGJlZm9yZSBhbm90aGVyXG4gICAgICovXG4gICAgaXNCZWZvcmUob3RoZXI6IE5lcGFsaURhdGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZVRvKG90aGVyKSA8IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhpcyBkYXRlIGlzIGFmdGVyIGFub3RoZXJcbiAgICAgKi9cbiAgICBpc0FmdGVyKG90aGVyOiBOZXBhbGlEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVUbyhvdGhlcikgPiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoaXMgZGF0ZSBlcXVhbHMgYW5vdGhlclxuICAgICAqL1xuICAgIGVxdWFscyhvdGhlcjogTmVwYWxpRGF0ZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlVG8ob3RoZXIpID09PSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBkYXlzIHRvIGRhdGUgKHJldHVybnMgbmV3IE5lcGFsaURhdGUpXG4gICAgICovXG4gICAgYWRkRGF5cyhkYXlzOiBudW1iZXIpOiBOZXBhbGlEYXRlIHtcbiAgICAgICAgY29uc3QgYWREYXRlID0gdGhpcy50b0FEKCk7XG4gICAgICAgIGFkRGF0ZS5zZXREYXRlKGFkRGF0ZS5nZXREYXRlKCkgKyBkYXlzKTtcbiAgICAgICAgcmV0dXJuIE5lcGFsaURhdGUuZnJvbUFEKGFkRGF0ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIG1vbnRocyB0byBkYXRlIChyZXR1cm5zIG5ldyBOZXBhbGlEYXRlKVxuICAgICAqL1xuICAgIGFkZE1vbnRocyhtb250aHM6IG51bWJlcik6IE5lcGFsaURhdGUge1xuICAgICAgICBsZXQgbmV3WWVhciA9IHRoaXMuX3llYXI7XG4gICAgICAgIGxldCBuZXdNb250aCA9IHRoaXMuX21vbnRoICsgbW9udGhzO1xuXG4gICAgICAgIHdoaWxlIChuZXdNb250aCA+IDEyKSB7XG4gICAgICAgICAgICBuZXdNb250aCAtPSAxMjtcbiAgICAgICAgICAgIG5ld1llYXIrKztcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAobmV3TW9udGggPCAxKSB7XG4gICAgICAgICAgICBuZXdNb250aCArPSAxMjtcbiAgICAgICAgICAgIG5ld1llYXItLTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkanVzdCBkYXkgaWYgaXQgZXhjZWVkcyBkYXlzIGluIG5ldyBtb250aFxuICAgICAgICBjb25zdCBkYXlzSW5OZXdNb250aCA9IGdldERheXNJbkJTTW9udGgobmV3WWVhciwgbmV3TW9udGgpO1xuICAgICAgICBjb25zdCBuZXdEYXkgPSBNYXRoLm1pbih0aGlzLl9kYXksIGRheXNJbk5ld01vbnRoKTtcblxuICAgICAgICByZXR1cm4gbmV3IE5lcGFsaURhdGUobmV3WWVhciwgbmV3TW9udGgsIG5ld0RheSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHllYXJzIHRvIGRhdGUgKHJldHVybnMgbmV3IE5lcGFsaURhdGUpXG4gICAgICovXG4gICAgYWRkWWVhcnMoeWVhcnM6IG51bWJlcik6IE5lcGFsaURhdGUge1xuICAgICAgICBjb25zdCBuZXdZZWFyID0gdGhpcy5feWVhciArIHllYXJzO1xuICAgICAgICBjb25zdCBkYXlzSW5OZXdNb250aCA9IGdldERheXNJbkJTTW9udGgobmV3WWVhciwgdGhpcy5fbW9udGgpO1xuICAgICAgICBjb25zdCBuZXdEYXkgPSBNYXRoLm1pbih0aGlzLl9kYXksIGRheXNJbk5ld01vbnRoKTtcbiAgICAgICAgcmV0dXJuIG5ldyBOZXBhbGlEYXRlKG5ld1llYXIsIHRoaXMuX21vbnRoLCBuZXdEYXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBzdHJpbmcgcmVwcmVzZW50YXRpb25cbiAgICAgKi9cbiAgICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IHRvIHBsYWluIG9iamVjdFxuICAgICAqL1xuICAgIHRvT2JqZWN0KCk6IHsgeWVhcjogbnVtYmVyOyBtb250aDogbnVtYmVyOyBkYXk6IG51bWJlciB9IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHllYXI6IHRoaXMuX3llYXIsXG4gICAgICAgICAgICBtb250aDogdGhpcy5fbW9udGgsXG4gICAgICAgICAgICBkYXk6IHRoaXMuX2RheSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgZnJvbSBwbGFpbiBvYmplY3RcbiAgICAgKi9cbiAgICBzdGF0aWMgZnJvbU9iamVjdChvYmo6IHsgeWVhcjogbnVtYmVyOyBtb250aDogbnVtYmVyOyBkYXk6IG51bWJlciB9KTogTmVwYWxpRGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgTmVwYWxpRGF0ZShvYmoueWVhciwgb2JqLm1vbnRoLCBvYmouZGF5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXJzZSBmcm9tIHN0cmluZyAoWVlZWS1NTS1ERCBmb3JtYXQpXG4gICAgICovXG4gICAgc3RhdGljIHBhcnNlKGRhdGVTdHJpbmc6IHN0cmluZyk6IE5lcGFsaURhdGUge1xuICAgICAgICBjb25zdCBwYXJ0cyA9IGRhdGVTdHJpbmcuc3BsaXQoJy0nKS5tYXAoTnVtYmVyKTtcbiAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMyB8fCBwYXJ0cy5zb21lKGlzTmFOKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGUgZm9ybWF0LiBFeHBlY3RlZCBZWVlZLU1NLUREJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBOZXBhbGlEYXRlKHBhcnRzWzBdLCBwYXJ0c1sxXSwgcGFydHNbMl0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -475,15 +475,22 @@ class NepaliDate {
|
|
|
475
475
|
*/
|
|
476
476
|
format(pattern = 'YYYY-MM-DD', useNepaliDigits = false) {
|
|
477
477
|
let result = pattern;
|
|
478
|
-
//
|
|
478
|
+
// Use placeholders without M/D/Y characters to prevent regex replacement issues
|
|
479
|
+
const monthNameEn = BS_MONTHS_EN[this._month - 1];
|
|
480
|
+
const monthNameNp = BS_MONTHS_NP[this._month - 1];
|
|
481
|
+
// Replace month name patterns first with unique placeholders
|
|
482
|
+
result = result.replace(/MMMM/g, '\x00EN\x00');
|
|
483
|
+
result = result.replace(/mmmm/g, '\x00NP\x00');
|
|
484
|
+
// Replace year and numeric patterns
|
|
479
485
|
result = result.replace(/YYYY/g, String(this._year).padStart(4, '0'));
|
|
480
486
|
result = result.replace(/YY/g, String(this._year).slice(-2));
|
|
481
|
-
result = result.replace(/MMMM/g, BS_MONTHS_EN[this._month - 1]);
|
|
482
|
-
result = result.replace(/mmmm/g, BS_MONTHS_NP[this._month - 1]);
|
|
483
487
|
result = result.replace(/MM/g, String(this._month).padStart(2, '0'));
|
|
484
488
|
result = result.replace(/M/g, String(this._month));
|
|
485
489
|
result = result.replace(/DD/g, String(this._day).padStart(2, '0'));
|
|
486
490
|
result = result.replace(/D/g, String(this._day));
|
|
491
|
+
// Restore month names from placeholders
|
|
492
|
+
result = result.replace(/\x00EN\x00/g, monthNameEn);
|
|
493
|
+
result = result.replace(/\x00NP\x00/g, monthNameNp);
|
|
487
494
|
if (useNepaliDigits) {
|
|
488
495
|
result = toNepaliDigits(result);
|
|
489
496
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"f1softinternational-f1-nepali-date-picker.mjs","sources":["../../../projects/f1-nepali-date-picker/src/lib/utils/bs-calendar-data.ts","../../../projects/f1-nepali-date-picker/src/lib/models/nepali-date.model.ts","../../../projects/f1-nepali-date-picker/src/lib/services/date-converter.service.ts","../../../projects/f1-nepali-date-picker/src/lib/components/nepali-date-picker/nepali-date-picker.component.ts","../../../projects/f1-nepali-date-picker/src/lib/components/nepali-date-picker/nepali-date-picker.component.html","../../../projects/f1-nepali-date-picker/src/lib/f1-nepali-date-picker.module.ts","../../../projects/f1-nepali-date-picker/src/public-api.ts","../../../projects/f1-nepali-date-picker/src/f1softinternational-f1-nepali-date-picker.ts"],"sourcesContent":["/**\n * Bikram Sambat Calendar Data\n * Contains month days mapping for each BS year and localization strings\n * Extended data sourced from: https://github.com/techgaun/ad-bs-converter\n */\n\n/**\n * BS Year to Month Days Mapping\n * Each entry: [year]: [days in each month from Baisakh to Chaitra]\n * Data range: 1975 BS to 2199 BS\n */\nexport const BS_CALENDAR_DATA: { [year: number]: number[] } = {\n 1975: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1976: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1977: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 1978: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1979: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1980: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1981: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 1982: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1983: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1984: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1985: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 1986: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1987: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1988: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1989: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 1990: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1991: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 1992: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 1993: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1994: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1995: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 1996: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 1997: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1998: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1999: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2000: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2001: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2002: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2003: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2004: [30, 32, 31, 32, 31, 30, 30, 30, 30, 29, 29, 31],\n 2005: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2006: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2007: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2008: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2009: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2010: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2011: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2012: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2013: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2014: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2015: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2016: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2017: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2018: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2019: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2020: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2021: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2022: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2023: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2024: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2025: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2026: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2027: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2028: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2029: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2030: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2031: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2032: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2033: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2034: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2035: [30, 32, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2036: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2037: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2038: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2039: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2040: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2041: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2042: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2043: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2044: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2045: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2046: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2047: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2048: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2049: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2050: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2051: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2052: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2053: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2054: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2055: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2056: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2057: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2058: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2059: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2060: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2061: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2062: [31, 31, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31],\n 2063: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2064: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2065: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2066: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2067: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2068: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2069: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2070: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2071: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2072: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2073: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2074: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2075: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2076: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2077: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2078: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2079: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2080: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2081: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2082: [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2083: [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2084: [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2085: [31, 32, 31, 32, 30, 31, 30, 30, 29, 30, 30, 30],\n 2086: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2087: [31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 30, 30],\n 2088: [30, 31, 32, 32, 30, 31, 30, 30, 29, 30, 30, 30],\n 2089: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2090: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2091: [31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30],\n 2092: [30, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2093: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2094: [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2095: [31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 30, 30],\n 2096: [30, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2097: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2098: [31, 31, 32, 31, 31, 31, 29, 30, 29, 30, 29, 31],\n 2099: [31, 31, 32, 31, 31, 31, 30, 29, 29, 30, 30, 30],\n 2100: [31, 32, 31, 32, 30, 31, 30, 29, 30, 29, 30, 30],\n 2101: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2102: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2103: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2104: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2105: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2106: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2107: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2108: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2109: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2110: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2111: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2112: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2113: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2114: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2115: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2116: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2117: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2118: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2119: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2120: [30, 32, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2121: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2122: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2123: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2124: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2125: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2126: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2127: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2128: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2129: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2130: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2131: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2132: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2133: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2134: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2135: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2136: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2137: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2138: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2139: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 31],\n 2140: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2141: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2142: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2143: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2144: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2145: [31, 31, 32, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2146: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2147: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2148: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2149: [31, 31, 32, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2150: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2151: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2152: [31, 31, 32, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2153: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2154: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2155: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2156: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2157: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2158: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2159: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2160: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2161: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2162: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2163: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2164: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2165: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2166: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2167: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2168: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2169: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2170: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2171: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2172: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2173: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2174: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2175: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2176: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2177: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2178: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2179: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2180: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2181: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2182: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2183: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2184: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2185: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2186: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2187: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2188: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2189: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2190: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2191: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2192: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2193: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2194: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2195: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2196: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2197: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2198: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2199: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n};\n\n/**\n * Nepali month names\n */\nexport const BS_MONTHS_NP: string[] = [\n 'बैशाख',\n 'जेष्ठ',\n 'आषाढ',\n 'श्रावण',\n 'भाद्र',\n 'आश्विन',\n 'कार्तिक',\n 'मंसिर',\n 'पौष',\n 'माघ',\n 'फाल्गुन',\n 'चैत्र',\n];\n\n/**\n * English month names (Romanized)\n */\nexport const BS_MONTHS_EN: string[] = [\n 'Baisakh',\n 'Jestha',\n 'Ashadh',\n 'Shrawan',\n 'Bhadra',\n 'Ashwin',\n 'Kartik',\n 'Mangsir',\n 'Paush',\n 'Magh',\n 'Falgun',\n 'Chaitra',\n];\n\n/**\n * Nepali weekday names (Sunday first)\n */\nexport const BS_WEEKDAYS_NP: string[] = ['आइत', 'सोम', 'मंगल', 'बुध', 'बिही', 'शुक्र', 'शनि'];\n\n/**\n * English weekday names (Sunday first)\n */\nexport const BS_WEEKDAYS_EN: string[] = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\n/**\n * Nepali numerals mapping\n */\nexport const NEPALI_DIGITS: string[] = ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'];\n\n/**\n * Reference date for conversion calculations\n * BS: 1975-01-01 corresponds to AD: 1918-04-13\n */\nexport const BS_EPOCH = {\n year: 1975,\n month: 1,\n day: 1,\n};\n\nexport const AD_EPOCH = new Date(1918, 3, 13); // April 13, 1918\n\n/**\n * Get minimum supported BS year\n */\nexport const BS_MIN_YEAR = Math.min(...Object.keys(BS_CALENDAR_DATA).map(Number));\n\n/**\n * Get maximum supported BS year\n */\nexport const BS_MAX_YEAR = Math.max(...Object.keys(BS_CALENDAR_DATA).map(Number));\n\n/**\n * Convert number to Nepali digits\n */\nexport function toNepaliDigits(num: number | string): string {\n return String(num)\n .split('')\n .map((char) => {\n const digit = parseInt(char, 10);\n return isNaN(digit) ? char : NEPALI_DIGITS[digit];\n })\n .join('');\n}\n\n/**\n * Get total days in a BS year\n */\nexport function getTotalDaysInBSYear(year: number): number {\n const monthDays = BS_CALENDAR_DATA[year];\n if (!monthDays) {\n throw new Error(`Year ${year} is out of supported range (${BS_MIN_YEAR}-${BS_MAX_YEAR})`);\n }\n return monthDays.reduce((sum, days) => sum + days, 0);\n}\n\n/**\n * Get days in a specific BS month\n */\nexport function getDaysInBSMonth(year: number, month: number): number {\n const monthDays = BS_CALENDAR_DATA[year];\n if (!monthDays) {\n throw new Error(`Year ${year} is out of supported range (${BS_MIN_YEAR}-${BS_MAX_YEAR})`);\n }\n if (month < 1 || month > 12) {\n throw new Error(`Month ${month} is invalid. Must be between 1 and 12.`);\n }\n return monthDays[month - 1];\n}\n","import {\n BS_CALENDAR_DATA,\n BS_MONTHS_EN,\n BS_MONTHS_NP,\n BS_MIN_YEAR,\n BS_MAX_YEAR,\n AD_EPOCH,\n BS_EPOCH,\n getDaysInBSMonth,\n toNepaliDigits,\n} from '../utils/bs-calendar-data';\n\n/**\n * NepaliDate - Represents a date in the Bikram Sambat (BS) calendar\n */\nexport class NepaliDate {\n private _year: number;\n private _month: number;\n private _day: number;\n\n constructor(year: number, month: number, day: number) {\n this._year = year;\n this._month = month;\n this._day = day;\n }\n\n // Getters\n get year(): number {\n return this._year;\n }\n\n get month(): number {\n return this._month;\n }\n\n get day(): number {\n return this._day;\n }\n\n /**\n * Create NepaliDate from current date\n */\n static today(): NepaliDate {\n return NepaliDate.fromAD(new Date());\n }\n\n /**\n * Create NepaliDate from AD Date\n */\n static fromAD(adDate: Date): NepaliDate {\n // Calculate days from epoch\n const epochTime = AD_EPOCH.getTime();\n const targetTime = new Date(adDate.getFullYear(), adDate.getMonth(), adDate.getDate()).getTime();\n let daysDiff = Math.floor((targetTime - epochTime) / (1000 * 60 * 60 * 24));\n\n if (daysDiff < 0) {\n throw new Error('Date is before supported range');\n }\n\n let bsYear = BS_EPOCH.year;\n let bsMonth = BS_EPOCH.month;\n let bsDay = BS_EPOCH.day;\n\n // Add days\n while (daysDiff > 0) {\n const daysInMonth = getDaysInBSMonth(bsYear, bsMonth);\n const daysRemainingInMonth = daysInMonth - bsDay;\n\n if (daysDiff <= daysRemainingInMonth) {\n bsDay += daysDiff;\n daysDiff = 0;\n } else {\n daysDiff -= daysRemainingInMonth + 1;\n bsMonth++;\n bsDay = 1;\n\n if (bsMonth > 12) {\n bsMonth = 1;\n bsYear++;\n if (bsYear > BS_MAX_YEAR) {\n throw new Error(`Date exceeds supported range (max: ${BS_MAX_YEAR} BS)`);\n }\n }\n }\n }\n\n return new NepaliDate(bsYear, bsMonth, bsDay);\n }\n\n /**\n * Convert to AD Date\n */\n toAD(): Date {\n if (!this.isValid()) {\n throw new Error('Invalid NepaliDate');\n }\n\n let totalDays = 0;\n\n // Add days for complete years\n for (let year = BS_EPOCH.year; year < this._year; year++) {\n const yearData = BS_CALENDAR_DATA[year];\n if (yearData) {\n totalDays += yearData.reduce((sum, days) => sum + days, 0);\n }\n }\n\n // Add days for complete months in current year\n for (let month = 1; month < this._month; month++) {\n totalDays += getDaysInBSMonth(this._year, month);\n }\n\n // Add remaining days\n totalDays += this._day - 1;\n\n // Calculate AD date from epoch\n const adDate = new Date(AD_EPOCH);\n adDate.setDate(adDate.getDate() + totalDays);\n\n return adDate;\n }\n\n /**\n * Check if the date is valid\n */\n isValid(): boolean {\n // Check year range\n if (this._year < BS_MIN_YEAR || this._year > BS_MAX_YEAR) {\n return false;\n }\n\n // Check month range\n if (this._month < 1 || this._month > 12) {\n return false;\n }\n\n // Check day range\n const daysInMonth = getDaysInBSMonth(this._year, this._month);\n if (this._day < 1 || this._day > daysInMonth) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Get the day of week (0 = Sunday, 6 = Saturday)\n */\n getDay(): number {\n return this.toAD().getDay();\n }\n\n /**\n * Get month name in specified language\n */\n getMonthName(lang: 'en' | 'np' = 'en'): string {\n return lang === 'np' ? BS_MONTHS_NP[this._month - 1] : BS_MONTHS_EN[this._month - 1];\n }\n\n /**\n * Format date according to pattern\n * Patterns:\n * YYYY - 4-digit year\n * YY - 2-digit year\n * MM - 2-digit month\n * M - month without leading zero\n * DD - 2-digit day\n * D - day without leading zero\n * MMMM - full month name (English)\n * mmmm - full month name (Nepali)\n */\n format(pattern: string = 'YYYY-MM-DD', useNepaliDigits: boolean = false): string {\n let result = pattern;\n\n // Replace patterns (order matters - longer patterns first)\n result = result.replace(/YYYY/g, String(this._year).padStart(4, '0'));\n result = result.replace(/YY/g, String(this._year).slice(-2));\n result = result.replace(/MMMM/g, BS_MONTHS_EN[this._month - 1]);\n result = result.replace(/mmmm/g, BS_MONTHS_NP[this._month - 1]);\n result = result.replace(/MM/g, String(this._month).padStart(2, '0'));\n result = result.replace(/M/g, String(this._month));\n result = result.replace(/DD/g, String(this._day).padStart(2, '0'));\n result = result.replace(/D/g, String(this._day));\n\n if (useNepaliDigits) {\n result = toNepaliDigits(result);\n }\n\n return result;\n }\n\n /**\n * Create a clone of this date\n */\n clone(): NepaliDate {\n return new NepaliDate(this._year, this._month, this._day);\n }\n\n /**\n * Compare with another NepaliDate\n * Returns: -1 if this < other, 0 if equal, 1 if this > other\n */\n compareTo(other: NepaliDate): number {\n if (this._year !== other._year) {\n return this._year < other._year ? -1 : 1;\n }\n if (this._month !== other._month) {\n return this._month < other._month ? -1 : 1;\n }\n if (this._day !== other._day) {\n return this._day < other._day ? -1 : 1;\n }\n return 0;\n }\n\n /**\n * Check if this date is before another\n */\n isBefore(other: NepaliDate): boolean {\n return this.compareTo(other) < 0;\n }\n\n /**\n * Check if this date is after another\n */\n isAfter(other: NepaliDate): boolean {\n return this.compareTo(other) > 0;\n }\n\n /**\n * Check if this date equals another\n */\n equals(other: NepaliDate): boolean {\n return this.compareTo(other) === 0;\n }\n\n /**\n * Add days to date (returns new NepaliDate)\n */\n addDays(days: number): NepaliDate {\n const adDate = this.toAD();\n adDate.setDate(adDate.getDate() + days);\n return NepaliDate.fromAD(adDate);\n }\n\n /**\n * Add months to date (returns new NepaliDate)\n */\n addMonths(months: number): NepaliDate {\n let newYear = this._year;\n let newMonth = this._month + months;\n\n while (newMonth > 12) {\n newMonth -= 12;\n newYear++;\n }\n while (newMonth < 1) {\n newMonth += 12;\n newYear--;\n }\n\n // Adjust day if it exceeds days in new month\n const daysInNewMonth = getDaysInBSMonth(newYear, newMonth);\n const newDay = Math.min(this._day, daysInNewMonth);\n\n return new NepaliDate(newYear, newMonth, newDay);\n }\n\n /**\n * Add years to date (returns new NepaliDate)\n */\n addYears(years: number): NepaliDate {\n const newYear = this._year + years;\n const daysInNewMonth = getDaysInBSMonth(newYear, this._month);\n const newDay = Math.min(this._day, daysInNewMonth);\n return new NepaliDate(newYear, this._month, newDay);\n }\n\n /**\n * Get string representation\n */\n toString(): string {\n return this.format('YYYY-MM-DD');\n }\n\n /**\n * Convert to plain object\n */\n toObject(): { year: number; month: number; day: number } {\n return {\n year: this._year,\n month: this._month,\n day: this._day,\n };\n }\n\n /**\n * Create from plain object\n */\n static fromObject(obj: { year: number; month: number; day: number }): NepaliDate {\n return new NepaliDate(obj.year, obj.month, obj.day);\n }\n\n /**\n * Parse from string (YYYY-MM-DD format)\n */\n static parse(dateString: string): NepaliDate {\n const parts = dateString.split('-').map(Number);\n if (parts.length !== 3 || parts.some(isNaN)) {\n throw new Error('Invalid date format. Expected YYYY-MM-DD');\n }\n return new NepaliDate(parts[0], parts[1], parts[2]);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NepaliDate } from '../models/nepali-date.model';\nimport {\n BS_CALENDAR_DATA,\n BS_MONTHS_EN,\n BS_MONTHS_NP,\n BS_WEEKDAYS_EN,\n BS_WEEKDAYS_NP,\n BS_MIN_YEAR,\n BS_MAX_YEAR,\n getDaysInBSMonth,\n getTotalDaysInBSYear,\n toNepaliDigits,\n} from '../utils/bs-calendar-data';\n\n/**\n * DateConverterService - Service for BS/AD date conversions and utilities\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DateConverterService {\n /**\n * Convert AD Date to NepaliDate (BS)\n */\n convertToBS(adDate: Date): NepaliDate {\n return NepaliDate.fromAD(adDate);\n }\n\n /**\n * Convert NepaliDate (BS) to AD Date\n */\n convertToAD(bsDate: NepaliDate): Date {\n return bsDate.toAD();\n }\n\n /**\n * Get today's date in BS\n */\n getTodayBS(): NepaliDate {\n return NepaliDate.today();\n }\n\n /**\n * Get number of days in a BS month\n */\n getDaysInMonth(year: number, month: number): number {\n return getDaysInBSMonth(year, month);\n }\n\n /**\n * Get total days in a BS year\n */\n getDaysInYear(year: number): number {\n return getTotalDaysInBSYear(year);\n }\n\n /**\n * Get month names\n */\n getMonthNames(lang: 'en' | 'np' = 'en'): string[] {\n return lang === 'np' ? [...BS_MONTHS_NP] : [...BS_MONTHS_EN];\n }\n\n /**\n * Get weekday names\n */\n getWeekdayNames(lang: 'en' | 'np' = 'en'): string[] {\n return lang === 'np' ? [...BS_WEEKDAYS_NP] : [...BS_WEEKDAYS_EN];\n }\n\n /**\n * Get minimum supported year\n */\n getMinYear(): number {\n return BS_MIN_YEAR;\n }\n\n /**\n * Get maximum supported year\n */\n getMaxYear(): number {\n return BS_MAX_YEAR;\n }\n\n /**\n * Validate a BS date\n */\n isValidDate(year: number, month: number, day: number): boolean {\n const date = new NepaliDate(year, month, day);\n return date.isValid();\n }\n\n /**\n * Format a NepaliDate\n */\n format(date: NepaliDate, pattern: string = 'YYYY-MM-DD', useNepaliDigits: boolean = false): string {\n return date.format(pattern, useNepaliDigits);\n }\n\n /**\n * Parse a date string to NepaliDate\n */\n parse(dateString: string): NepaliDate {\n return NepaliDate.parse(dateString);\n }\n\n /**\n * Convert number to Nepali digits\n */\n toNepaliDigits(num: number | string): string {\n return toNepaliDigits(num);\n }\n\n /**\n * Get calendar grid for a month\n * Returns a 2D array representing weeks (rows) and days (columns)\n * Each cell contains the day number or null for empty cells\n */\n getMonthCalendarGrid(year: number, month: number): (number | null)[][] {\n const daysInMonth = this.getDaysInMonth(year, month);\n const firstDayOfMonth = new NepaliDate(year, month, 1);\n const startDayOfWeek = firstDayOfMonth.getDay(); // 0 = Sunday\n\n const grid: (number | null)[][] = [];\n let currentWeek: (number | null)[] = [];\n\n // Fill empty cells before first day\n for (let i = 0; i < startDayOfWeek; i++) {\n currentWeek.push(null);\n }\n\n // Fill days\n for (let day = 1; day <= daysInMonth; day++) {\n currentWeek.push(day);\n\n if (currentWeek.length === 7) {\n grid.push(currentWeek);\n currentWeek = [];\n }\n }\n\n // Fill remaining empty cells in last week\n if (currentWeek.length > 0) {\n while (currentWeek.length < 7) {\n currentWeek.push(null);\n }\n grid.push(currentWeek);\n }\n\n return grid;\n }\n\n /**\n * Get years range for year selector\n */\n getYearRange(startYear?: number, endYear?: number): number[] {\n const start = startYear ?? BS_MIN_YEAR;\n const end = endYear ?? BS_MAX_YEAR;\n const years: number[] = [];\n\n for (let year = start; year <= end; year++) {\n if (BS_CALENDAR_DATA[year]) {\n years.push(year);\n }\n }\n\n return years;\n }\n\n /**\n * Check if a date is within a range\n */\n isDateInRange(date: NepaliDate, minDate?: NepaliDate, maxDate?: NepaliDate): boolean {\n if (minDate && date.isBefore(minDate)) {\n return false;\n }\n if (maxDate && date.isAfter(maxDate)) {\n return false;\n }\n return true;\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n forwardRef,\n OnInit,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n ElementRef,\n HostListener,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NepaliDate } from '../../models/nepali-date.model';\nimport { DateConverterService } from '../../services/date-converter.service';\nimport { toNepaliDigits } from '../../utils/bs-calendar-data';\n\n@Component({\n selector: 'f1-nepali-date-picker',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './nepali-date-picker.component.html',\n styleUrls: ['./nepali-date-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NepaliDatePickerComponent),\n multi: true,\n },\n ],\n})\nexport class NepaliDatePickerComponent implements OnInit, OnDestroy, OnChanges, ControlValueAccessor {\n /** Minimum selectable date */\n @Input() minDate?: NepaliDate;\n\n /** Maximum selectable date */\n @Input() maxDate?: NepaliDate;\n\n /** Placeholder text */\n @Input() placeholder = 'Select date';\n\n /** Display format for the input */\n @Input() displayFormat = 'YYYY-MM-DD';\n\n /** Theme: 'light' or 'dark' */\n @Input() theme: 'light' | 'dark' = 'light';\n\n /** Language for month/day names */\n @Input() language: 'en' | 'np' = 'en';\n\n /** Show today button */\n @Input() showTodayButton = true;\n\n /** Disabled state */\n @Input() disabled = false;\n\n /** Use Nepali digits in display */\n @Input() useNepaliDigits = false;\n\n /** Event emitted when date changes */\n @Output() dateChange = new EventEmitter<NepaliDate | null>();\n\n // Internal state\n isOpen = false;\n selectedDate: NepaliDate | null = null;\n viewDate: NepaliDate;\n calendarGrid: (number | null)[][] = [];\n monthNames: string[] = [];\n weekdayNames: string[] = [];\n years: number[] = [];\n\n // CVA callbacks\n private onChange: (value: NepaliDate | null) => void = () => { };\n private onTouched: () => void = () => { };\n\n constructor(\n private elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n private dateConverter: DateConverterService\n ) {\n this.viewDate = this.dateConverter.getTodayBS();\n }\n\n ngOnInit(): void {\n this.monthNames = this.dateConverter.getMonthNames(this.language);\n this.weekdayNames = this.dateConverter.getWeekdayNames(this.language);\n this.years = this.dateConverter.getYearRange();\n this.updateCalendarGrid();\n }\n\n ngOnDestroy(): void { }\n\n ngOnChanges(changes: SimpleChanges): void {\n // Update month/weekday names when language changes\n if (changes['language'] && !changes['language'].firstChange) {\n this.monthNames = this.dateConverter.getMonthNames(this.language);\n this.weekdayNames = this.dateConverter.getWeekdayNames(this.language);\n this.cdr.markForCheck();\n }\n // Trigger change detection when useNepaliDigits changes\n if (changes['useNepaliDigits'] && !changes['useNepaliDigits'].firstChange) {\n this.cdr.markForCheck();\n }\n }\n\n // ControlValueAccessor implementation\n writeValue(value: NepaliDate | null): void {\n this.selectedDate = value;\n if (value) {\n this.viewDate = value.clone();\n }\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: (value: NepaliDate | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n // UI Methods\n toggleCalendar(): void {\n if (this.disabled) return;\n this.isOpen = !this.isOpen;\n if (this.isOpen) {\n this.onTouched();\n this.updateCalendarGrid();\n }\n this.cdr.markForCheck();\n }\n\n closeCalendar(): void {\n this.isOpen = false;\n this.cdr.markForCheck();\n }\n\n @HostListener('document:click', ['$event'])\n onClickOutside(event: MouseEvent): void {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.closeCalendar();\n }\n }\n\n @HostListener('document:keydown.escape')\n onEscapeKey(): void {\n this.closeCalendar();\n }\n\n // Navigation\n previousMonth(): void {\n this.viewDate = this.viewDate.addMonths(-1);\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n nextMonth(): void {\n this.viewDate = this.viewDate.addMonths(1);\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n onYearChange(event: Event): void {\n const year = parseInt((event.target as HTMLSelectElement).value, 10);\n this.viewDate = new NepaliDate(year, this.viewDate.month, 1);\n // Adjust day if needed\n const daysInMonth = this.dateConverter.getDaysInMonth(year, this.viewDate.month);\n if (this.viewDate.day > daysInMonth) {\n this.viewDate = new NepaliDate(year, this.viewDate.month, daysInMonth);\n }\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n onMonthChange(event: Event): void {\n const month = parseInt((event.target as HTMLSelectElement).value, 10);\n const daysInMonth = this.dateConverter.getDaysInMonth(this.viewDate.year, month);\n const newDay = Math.min(this.viewDate.day, daysInMonth);\n this.viewDate = new NepaliDate(this.viewDate.year, month, newDay);\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n // Date selection\n selectDate(day: number | null): void {\n if (day === null || this.disabled) return;\n\n const newDate = new NepaliDate(this.viewDate.year, this.viewDate.month, day);\n\n if (!this.isDateSelectable(day)) return;\n\n this.selectedDate = newDate;\n this.onChange(this.selectedDate);\n this.dateChange.emit(this.selectedDate);\n this.closeCalendar();\n this.cdr.markForCheck();\n }\n\n selectToday(): void {\n const today = this.dateConverter.getTodayBS();\n if (this.dateConverter.isDateInRange(today, this.minDate, this.maxDate)) {\n this.selectedDate = today;\n this.viewDate = today.clone();\n this.onChange(this.selectedDate);\n this.dateChange.emit(this.selectedDate);\n this.updateCalendarGrid();\n this.closeCalendar();\n this.cdr.markForCheck();\n }\n }\n\n clearDate(): void {\n this.selectedDate = null;\n this.onChange(null);\n this.dateChange.emit(null);\n this.cdr.markForCheck();\n }\n\n // Helper methods\n private updateCalendarGrid(): void {\n this.calendarGrid = this.dateConverter.getMonthCalendarGrid(this.viewDate.year, this.viewDate.month);\n }\n\n isDateSelectable(day: number): boolean {\n if (day === null) return false;\n const date = new NepaliDate(this.viewDate.year, this.viewDate.month, day);\n return this.dateConverter.isDateInRange(date, this.minDate, this.maxDate);\n }\n\n isToday(day: number): boolean {\n if (day === null) return false;\n const today = this.dateConverter.getTodayBS();\n return (\n this.viewDate.year === today.year && this.viewDate.month === today.month && day === today.day\n );\n }\n\n isSelected(day: number): boolean {\n if (day === null || !this.selectedDate) return false;\n return (\n this.viewDate.year === this.selectedDate.year &&\n this.viewDate.month === this.selectedDate.month &&\n day === this.selectedDate.day\n );\n }\n\n get displayValue(): string {\n if (!this.selectedDate) return '';\n return this.selectedDate.format(this.displayFormat, this.useNepaliDigits);\n }\n\n get currentMonthName(): string {\n return this.monthNames[this.viewDate.month - 1];\n }\n\n trackByWeek(index: number): number {\n return index;\n }\n\n trackByDay(index: number): number {\n return index;\n }\n\n /**\n * Format day number based on useNepaliDigits setting\n */\n formatDay(day: number | null): string {\n if (day === null) return '';\n return this.useNepaliDigits ? toNepaliDigits(day) : String(day);\n }\n\n /**\n * Format year number based on useNepaliDigits setting\n */\n formatYear(year: number): string {\n return this.useNepaliDigits ? toNepaliDigits(year) : String(year);\n }\n}\n","<div class=\"f1-datepicker\" [class.f1-datepicker--dark]=\"theme === 'dark'\" [class.f1-datepicker--disabled]=\"disabled\">\n <!-- Input Field -->\n <div class=\"f1-datepicker__input-wrapper\" (click)=\"toggleCalendar()\">\n <input type=\"text\" class=\"f1-datepicker__input\" [value]=\"displayValue\" [placeholder]=\"placeholder\"\n [disabled]=\"disabled\" readonly />\n <span class=\"f1-datepicker__icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect>\n <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"></line>\n <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"></line>\n <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"></line>\n </svg>\n </span>\n <button *ngIf=\"selectedDate && !disabled\" type=\"button\" class=\"f1-datepicker__clear\"\n (click)=\"clearDate(); $event.stopPropagation()\" aria-label=\"Clear date\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n </div>\n\n <!-- Calendar Dropdown -->\n <div class=\"f1-datepicker__dropdown\" *ngIf=\"isOpen\" [@fadeIn]>\n <!-- Header -->\n <div class=\"f1-datepicker__header\">\n <button type=\"button\" class=\"f1-datepicker__nav-btn\" (click)=\"previousMonth()\" aria-label=\"Previous month\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"15 18 9 12 15 6\"></polyline>\n </svg>\n </button>\n\n <div class=\"f1-datepicker__selectors\">\n <select class=\"f1-datepicker__select\" [value]=\"viewDate.month\" (change)=\"onMonthChange($event)\">\n <option *ngFor=\"let month of monthNames; let i = index\" [value]=\"i + 1\">\n {{ month }}\n </option>\n </select>\n\n <select class=\"f1-datepicker__select\" [value]=\"viewDate.year\" (change)=\"onYearChange($event)\">\n <option *ngFor=\"let year of years\" [value]=\"year\">\n {{ formatYear(year) }}\n </option>\n </select>\n </div>\n\n <button type=\"button\" class=\"f1-datepicker__nav-btn\" (click)=\"nextMonth()\" aria-label=\"Next month\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n </svg>\n </button>\n </div>\n\n <!-- Weekday Headers -->\n <div class=\"f1-datepicker__weekdays\">\n <div class=\"f1-datepicker__weekday\" *ngFor=\"let day of weekdayNames\">\n {{ day }}\n </div>\n </div>\n\n <!-- Calendar Grid -->\n <div class=\"f1-datepicker__grid\">\n <div class=\"f1-datepicker__week\" *ngFor=\"let week of calendarGrid; trackBy: trackByWeek\">\n <button type=\"button\" class=\"f1-datepicker__day\" *ngFor=\"let day of week; trackBy: trackByDay\"\n [class.f1-datepicker__day--empty]=\"day === null\"\n [class.f1-datepicker__day--today]=\"day !== null && isToday(day)\"\n [class.f1-datepicker__day--selected]=\"day !== null && isSelected(day)\"\n [class.f1-datepicker__day--disabled]=\"day !== null && !isDateSelectable(day)\"\n [disabled]=\"day === null || !isDateSelectable(day)\" (click)=\"selectDate(day)\">\n {{ formatDay(day) }}\n </button>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"f1-datepicker__footer\" *ngIf=\"showTodayButton\">\n <button type=\"button\" class=\"f1-datepicker__today-btn\" (click)=\"selectToday()\">\n {{ language === 'np' ? 'आज' : 'Today' }}\n </button>\n </div>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { NepaliDatePickerComponent } from './components/nepali-date-picker/nepali-date-picker.component';\n\n@NgModule({\n imports: [\n NepaliDatePickerComponent, // Standalone component, import directly\n ],\n exports: [\n NepaliDatePickerComponent,\n ],\n})\nexport class F1NepaliDatePickerModule { }\n","/*\n * Public API Surface of f1-nepali-date-picker\n */\n\n// Module\nexport * from './lib/f1-nepali-date-picker.module';\n\n// Components\nexport * from './lib/components/nepali-date-picker/nepali-date-picker.component';\n\n// Models\nexport * from './lib/models/nepali-date.model';\n\n// Services\nexport * from './lib/services/date-converter.service';\n\n// Utilities\nexport * from './lib/utils/bs-calendar-data';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DateConverterService"],"mappings":";;;;;;;AAAA;;;;AAIG;AAEH;;;;AAIG;AACU,MAAA,gBAAgB,GAAiC;IAC1D,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAA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"}
|
|
1
|
+
{"version":3,"file":"f1softinternational-f1-nepali-date-picker.mjs","sources":["../../../projects/f1-nepali-date-picker/src/lib/utils/bs-calendar-data.ts","../../../projects/f1-nepali-date-picker/src/lib/models/nepali-date.model.ts","../../../projects/f1-nepali-date-picker/src/lib/services/date-converter.service.ts","../../../projects/f1-nepali-date-picker/src/lib/components/nepali-date-picker/nepali-date-picker.component.ts","../../../projects/f1-nepali-date-picker/src/lib/components/nepali-date-picker/nepali-date-picker.component.html","../../../projects/f1-nepali-date-picker/src/lib/f1-nepali-date-picker.module.ts","../../../projects/f1-nepali-date-picker/src/public-api.ts","../../../projects/f1-nepali-date-picker/src/f1softinternational-f1-nepali-date-picker.ts"],"sourcesContent":["/**\n * Bikram Sambat Calendar Data\n * Contains month days mapping for each BS year and localization strings\n * Extended data sourced from: https://github.com/techgaun/ad-bs-converter\n */\n\n/**\n * BS Year to Month Days Mapping\n * Each entry: [year]: [days in each month from Baisakh to Chaitra]\n * Data range: 1975 BS to 2199 BS\n */\nexport const BS_CALENDAR_DATA: { [year: number]: number[] } = {\n 1975: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1976: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1977: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 1978: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1979: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1980: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1981: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 1982: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1983: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1984: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1985: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 1986: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1987: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1988: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1989: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 1990: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1991: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 1992: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 1993: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1994: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1995: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 1996: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 1997: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1998: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1999: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2000: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2001: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2002: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2003: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2004: [30, 32, 31, 32, 31, 30, 30, 30, 30, 29, 29, 31],\n 2005: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2006: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2007: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2008: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2009: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2010: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2011: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2012: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2013: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2014: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2015: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2016: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2017: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2018: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2019: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2020: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2021: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2022: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2023: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2024: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2025: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2026: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2027: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2028: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2029: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2030: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2031: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2032: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2033: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2034: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2035: [30, 32, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2036: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2037: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2038: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2039: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2040: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2041: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2042: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2043: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2044: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2045: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2046: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2047: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2048: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2049: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2050: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2051: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2052: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2053: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2054: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2055: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2056: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2057: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2058: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2059: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2060: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2061: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2062: [31, 31, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31],\n 2063: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2064: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2065: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2066: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2067: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2068: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2069: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2070: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2071: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2072: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2073: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2074: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2075: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2076: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2077: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2078: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2079: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2080: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2081: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2082: [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2083: [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2084: [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2085: [31, 32, 31, 32, 30, 31, 30, 30, 29, 30, 30, 30],\n 2086: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2087: [31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 30, 30],\n 2088: [30, 31, 32, 32, 30, 31, 30, 30, 29, 30, 30, 30],\n 2089: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2090: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2091: [31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30],\n 2092: [30, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2093: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2094: [31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2095: [31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 30, 30],\n 2096: [30, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2097: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2098: [31, 31, 32, 31, 31, 31, 29, 30, 29, 30, 29, 31],\n 2099: [31, 31, 32, 31, 31, 31, 30, 29, 29, 30, 30, 30],\n 2100: [31, 32, 31, 32, 30, 31, 30, 29, 30, 29, 30, 30],\n 2101: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2102: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2103: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2104: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2105: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2106: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2107: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2108: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2109: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2110: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2111: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2112: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2113: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2114: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2115: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2116: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2117: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2118: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2119: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2120: [30, 32, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2121: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2122: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2123: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2124: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2125: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2126: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2127: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2128: [31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2129: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2130: [31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2131: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2132: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2133: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2134: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2135: [31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2136: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2137: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2138: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2139: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 31],\n 2140: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2141: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2142: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2143: [30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2144: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2145: [31, 31, 32, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2146: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2147: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2148: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2149: [31, 31, 32, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2150: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2151: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2152: [31, 31, 32, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2153: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2154: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2155: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2156: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2157: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2158: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2159: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2160: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2161: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2162: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2163: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2164: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2165: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2166: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2167: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2168: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2169: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2170: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2171: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2172: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2173: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2174: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2175: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2176: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2177: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2178: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2179: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2180: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2181: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2182: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2183: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2184: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2185: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2186: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2187: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2188: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2189: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2190: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2191: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2192: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2193: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2194: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2195: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2196: [31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2197: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2198: [31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2199: [31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n};\n\n/**\n * Nepali month names\n */\nexport const BS_MONTHS_NP: string[] = [\n 'बैशाख',\n 'जेष्ठ',\n 'आषाढ',\n 'श्रावण',\n 'भाद्र',\n 'आश्विन',\n 'कार्तिक',\n 'मंसिर',\n 'पौष',\n 'माघ',\n 'फाल्गुन',\n 'चैत्र',\n];\n\n/**\n * English month names (Romanized)\n */\nexport const BS_MONTHS_EN: string[] = [\n 'Baisakh',\n 'Jestha',\n 'Ashadh',\n 'Shrawan',\n 'Bhadra',\n 'Ashwin',\n 'Kartik',\n 'Mangsir',\n 'Paush',\n 'Magh',\n 'Falgun',\n 'Chaitra',\n];\n\n/**\n * Nepali weekday names (Sunday first)\n */\nexport const BS_WEEKDAYS_NP: string[] = ['आइत', 'सोम', 'मंगल', 'बुध', 'बिही', 'शुक्र', 'शनि'];\n\n/**\n * English weekday names (Sunday first)\n */\nexport const BS_WEEKDAYS_EN: string[] = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\n/**\n * Nepali numerals mapping\n */\nexport const NEPALI_DIGITS: string[] = ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'];\n\n/**\n * Reference date for conversion calculations\n * BS: 1975-01-01 corresponds to AD: 1918-04-13\n */\nexport const BS_EPOCH = {\n year: 1975,\n month: 1,\n day: 1,\n};\n\nexport const AD_EPOCH = new Date(1918, 3, 13); // April 13, 1918\n\n/**\n * Get minimum supported BS year\n */\nexport const BS_MIN_YEAR = Math.min(...Object.keys(BS_CALENDAR_DATA).map(Number));\n\n/**\n * Get maximum supported BS year\n */\nexport const BS_MAX_YEAR = Math.max(...Object.keys(BS_CALENDAR_DATA).map(Number));\n\n/**\n * Convert number to Nepali digits\n */\nexport function toNepaliDigits(num: number | string): string {\n return String(num)\n .split('')\n .map((char) => {\n const digit = parseInt(char, 10);\n return isNaN(digit) ? char : NEPALI_DIGITS[digit];\n })\n .join('');\n}\n\n/**\n * Get total days in a BS year\n */\nexport function getTotalDaysInBSYear(year: number): number {\n const monthDays = BS_CALENDAR_DATA[year];\n if (!monthDays) {\n throw new Error(`Year ${year} is out of supported range (${BS_MIN_YEAR}-${BS_MAX_YEAR})`);\n }\n return monthDays.reduce((sum, days) => sum + days, 0);\n}\n\n/**\n * Get days in a specific BS month\n */\nexport function getDaysInBSMonth(year: number, month: number): number {\n const monthDays = BS_CALENDAR_DATA[year];\n if (!monthDays) {\n throw new Error(`Year ${year} is out of supported range (${BS_MIN_YEAR}-${BS_MAX_YEAR})`);\n }\n if (month < 1 || month > 12) {\n throw new Error(`Month ${month} is invalid. Must be between 1 and 12.`);\n }\n return monthDays[month - 1];\n}\n","import {\n BS_CALENDAR_DATA,\n BS_MONTHS_EN,\n BS_MONTHS_NP,\n BS_MIN_YEAR,\n BS_MAX_YEAR,\n AD_EPOCH,\n BS_EPOCH,\n getDaysInBSMonth,\n toNepaliDigits,\n} from '../utils/bs-calendar-data';\n\n/**\n * NepaliDate - Represents a date in the Bikram Sambat (BS) calendar\n */\nexport class NepaliDate {\n private _year: number;\n private _month: number;\n private _day: number;\n\n constructor(year: number, month: number, day: number) {\n this._year = year;\n this._month = month;\n this._day = day;\n }\n\n // Getters\n get year(): number {\n return this._year;\n }\n\n get month(): number {\n return this._month;\n }\n\n get day(): number {\n return this._day;\n }\n\n /**\n * Create NepaliDate from current date\n */\n static today(): NepaliDate {\n return NepaliDate.fromAD(new Date());\n }\n\n /**\n * Create NepaliDate from AD Date\n */\n static fromAD(adDate: Date): NepaliDate {\n // Calculate days from epoch\n const epochTime = AD_EPOCH.getTime();\n const targetTime = new Date(adDate.getFullYear(), adDate.getMonth(), adDate.getDate()).getTime();\n let daysDiff = Math.floor((targetTime - epochTime) / (1000 * 60 * 60 * 24));\n\n if (daysDiff < 0) {\n throw new Error('Date is before supported range');\n }\n\n let bsYear = BS_EPOCH.year;\n let bsMonth = BS_EPOCH.month;\n let bsDay = BS_EPOCH.day;\n\n // Add days\n while (daysDiff > 0) {\n const daysInMonth = getDaysInBSMonth(bsYear, bsMonth);\n const daysRemainingInMonth = daysInMonth - bsDay;\n\n if (daysDiff <= daysRemainingInMonth) {\n bsDay += daysDiff;\n daysDiff = 0;\n } else {\n daysDiff -= daysRemainingInMonth + 1;\n bsMonth++;\n bsDay = 1;\n\n if (bsMonth > 12) {\n bsMonth = 1;\n bsYear++;\n if (bsYear > BS_MAX_YEAR) {\n throw new Error(`Date exceeds supported range (max: ${BS_MAX_YEAR} BS)`);\n }\n }\n }\n }\n\n return new NepaliDate(bsYear, bsMonth, bsDay);\n }\n\n /**\n * Convert to AD Date\n */\n toAD(): Date {\n if (!this.isValid()) {\n throw new Error('Invalid NepaliDate');\n }\n\n let totalDays = 0;\n\n // Add days for complete years\n for (let year = BS_EPOCH.year; year < this._year; year++) {\n const yearData = BS_CALENDAR_DATA[year];\n if (yearData) {\n totalDays += yearData.reduce((sum, days) => sum + days, 0);\n }\n }\n\n // Add days for complete months in current year\n for (let month = 1; month < this._month; month++) {\n totalDays += getDaysInBSMonth(this._year, month);\n }\n\n // Add remaining days\n totalDays += this._day - 1;\n\n // Calculate AD date from epoch\n const adDate = new Date(AD_EPOCH);\n adDate.setDate(adDate.getDate() + totalDays);\n\n return adDate;\n }\n\n /**\n * Check if the date is valid\n */\n isValid(): boolean {\n // Check year range\n if (this._year < BS_MIN_YEAR || this._year > BS_MAX_YEAR) {\n return false;\n }\n\n // Check month range\n if (this._month < 1 || this._month > 12) {\n return false;\n }\n\n // Check day range\n const daysInMonth = getDaysInBSMonth(this._year, this._month);\n if (this._day < 1 || this._day > daysInMonth) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Get the day of week (0 = Sunday, 6 = Saturday)\n */\n getDay(): number {\n return this.toAD().getDay();\n }\n\n /**\n * Get month name in specified language\n */\n getMonthName(lang: 'en' | 'np' = 'en'): string {\n return lang === 'np' ? BS_MONTHS_NP[this._month - 1] : BS_MONTHS_EN[this._month - 1];\n }\n\n /**\n * Format date according to pattern\n * Patterns:\n * YYYY - 4-digit year\n * YY - 2-digit year\n * MM - 2-digit month\n * M - month without leading zero\n * DD - 2-digit day\n * D - day without leading zero\n * MMMM - full month name (English)\n * mmmm - full month name (Nepali)\n */\n format(pattern: string = 'YYYY-MM-DD', useNepaliDigits: boolean = false): string {\n let result = pattern;\n\n // Use placeholders without M/D/Y characters to prevent regex replacement issues\n const monthNameEn = BS_MONTHS_EN[this._month - 1];\n const monthNameNp = BS_MONTHS_NP[this._month - 1];\n\n // Replace month name patterns first with unique placeholders\n result = result.replace(/MMMM/g, '\\x00EN\\x00');\n result = result.replace(/mmmm/g, '\\x00NP\\x00');\n\n // Replace year and numeric patterns\n result = result.replace(/YYYY/g, String(this._year).padStart(4, '0'));\n result = result.replace(/YY/g, String(this._year).slice(-2));\n result = result.replace(/MM/g, String(this._month).padStart(2, '0'));\n result = result.replace(/M/g, String(this._month));\n result = result.replace(/DD/g, String(this._day).padStart(2, '0'));\n result = result.replace(/D/g, String(this._day));\n\n // Restore month names from placeholders\n result = result.replace(/\\x00EN\\x00/g, monthNameEn);\n result = result.replace(/\\x00NP\\x00/g, monthNameNp);\n\n if (useNepaliDigits) {\n result = toNepaliDigits(result);\n }\n\n return result;\n }\n\n /**\n * Create a clone of this date\n */\n clone(): NepaliDate {\n return new NepaliDate(this._year, this._month, this._day);\n }\n\n /**\n * Compare with another NepaliDate\n * Returns: -1 if this < other, 0 if equal, 1 if this > other\n */\n compareTo(other: NepaliDate): number {\n if (this._year !== other._year) {\n return this._year < other._year ? -1 : 1;\n }\n if (this._month !== other._month) {\n return this._month < other._month ? -1 : 1;\n }\n if (this._day !== other._day) {\n return this._day < other._day ? -1 : 1;\n }\n return 0;\n }\n\n /**\n * Check if this date is before another\n */\n isBefore(other: NepaliDate): boolean {\n return this.compareTo(other) < 0;\n }\n\n /**\n * Check if this date is after another\n */\n isAfter(other: NepaliDate): boolean {\n return this.compareTo(other) > 0;\n }\n\n /**\n * Check if this date equals another\n */\n equals(other: NepaliDate): boolean {\n return this.compareTo(other) === 0;\n }\n\n /**\n * Add days to date (returns new NepaliDate)\n */\n addDays(days: number): NepaliDate {\n const adDate = this.toAD();\n adDate.setDate(adDate.getDate() + days);\n return NepaliDate.fromAD(adDate);\n }\n\n /**\n * Add months to date (returns new NepaliDate)\n */\n addMonths(months: number): NepaliDate {\n let newYear = this._year;\n let newMonth = this._month + months;\n\n while (newMonth > 12) {\n newMonth -= 12;\n newYear++;\n }\n while (newMonth < 1) {\n newMonth += 12;\n newYear--;\n }\n\n // Adjust day if it exceeds days in new month\n const daysInNewMonth = getDaysInBSMonth(newYear, newMonth);\n const newDay = Math.min(this._day, daysInNewMonth);\n\n return new NepaliDate(newYear, newMonth, newDay);\n }\n\n /**\n * Add years to date (returns new NepaliDate)\n */\n addYears(years: number): NepaliDate {\n const newYear = this._year + years;\n const daysInNewMonth = getDaysInBSMonth(newYear, this._month);\n const newDay = Math.min(this._day, daysInNewMonth);\n return new NepaliDate(newYear, this._month, newDay);\n }\n\n /**\n * Get string representation\n */\n toString(): string {\n return this.format('YYYY-MM-DD');\n }\n\n /**\n * Convert to plain object\n */\n toObject(): { year: number; month: number; day: number } {\n return {\n year: this._year,\n month: this._month,\n day: this._day,\n };\n }\n\n /**\n * Create from plain object\n */\n static fromObject(obj: { year: number; month: number; day: number }): NepaliDate {\n return new NepaliDate(obj.year, obj.month, obj.day);\n }\n\n /**\n * Parse from string (YYYY-MM-DD format)\n */\n static parse(dateString: string): NepaliDate {\n const parts = dateString.split('-').map(Number);\n if (parts.length !== 3 || parts.some(isNaN)) {\n throw new Error('Invalid date format. Expected YYYY-MM-DD');\n }\n return new NepaliDate(parts[0], parts[1], parts[2]);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NepaliDate } from '../models/nepali-date.model';\nimport {\n BS_CALENDAR_DATA,\n BS_MONTHS_EN,\n BS_MONTHS_NP,\n BS_WEEKDAYS_EN,\n BS_WEEKDAYS_NP,\n BS_MIN_YEAR,\n BS_MAX_YEAR,\n getDaysInBSMonth,\n getTotalDaysInBSYear,\n toNepaliDigits,\n} from '../utils/bs-calendar-data';\n\n/**\n * DateConverterService - Service for BS/AD date conversions and utilities\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DateConverterService {\n /**\n * Convert AD Date to NepaliDate (BS)\n */\n convertToBS(adDate: Date): NepaliDate {\n return NepaliDate.fromAD(adDate);\n }\n\n /**\n * Convert NepaliDate (BS) to AD Date\n */\n convertToAD(bsDate: NepaliDate): Date {\n return bsDate.toAD();\n }\n\n /**\n * Get today's date in BS\n */\n getTodayBS(): NepaliDate {\n return NepaliDate.today();\n }\n\n /**\n * Get number of days in a BS month\n */\n getDaysInMonth(year: number, month: number): number {\n return getDaysInBSMonth(year, month);\n }\n\n /**\n * Get total days in a BS year\n */\n getDaysInYear(year: number): number {\n return getTotalDaysInBSYear(year);\n }\n\n /**\n * Get month names\n */\n getMonthNames(lang: 'en' | 'np' = 'en'): string[] {\n return lang === 'np' ? [...BS_MONTHS_NP] : [...BS_MONTHS_EN];\n }\n\n /**\n * Get weekday names\n */\n getWeekdayNames(lang: 'en' | 'np' = 'en'): string[] {\n return lang === 'np' ? [...BS_WEEKDAYS_NP] : [...BS_WEEKDAYS_EN];\n }\n\n /**\n * Get minimum supported year\n */\n getMinYear(): number {\n return BS_MIN_YEAR;\n }\n\n /**\n * Get maximum supported year\n */\n getMaxYear(): number {\n return BS_MAX_YEAR;\n }\n\n /**\n * Validate a BS date\n */\n isValidDate(year: number, month: number, day: number): boolean {\n const date = new NepaliDate(year, month, day);\n return date.isValid();\n }\n\n /**\n * Format a NepaliDate\n */\n format(date: NepaliDate, pattern: string = 'YYYY-MM-DD', useNepaliDigits: boolean = false): string {\n return date.format(pattern, useNepaliDigits);\n }\n\n /**\n * Parse a date string to NepaliDate\n */\n parse(dateString: string): NepaliDate {\n return NepaliDate.parse(dateString);\n }\n\n /**\n * Convert number to Nepali digits\n */\n toNepaliDigits(num: number | string): string {\n return toNepaliDigits(num);\n }\n\n /**\n * Get calendar grid for a month\n * Returns a 2D array representing weeks (rows) and days (columns)\n * Each cell contains the day number or null for empty cells\n */\n getMonthCalendarGrid(year: number, month: number): (number | null)[][] {\n const daysInMonth = this.getDaysInMonth(year, month);\n const firstDayOfMonth = new NepaliDate(year, month, 1);\n const startDayOfWeek = firstDayOfMonth.getDay(); // 0 = Sunday\n\n const grid: (number | null)[][] = [];\n let currentWeek: (number | null)[] = [];\n\n // Fill empty cells before first day\n for (let i = 0; i < startDayOfWeek; i++) {\n currentWeek.push(null);\n }\n\n // Fill days\n for (let day = 1; day <= daysInMonth; day++) {\n currentWeek.push(day);\n\n if (currentWeek.length === 7) {\n grid.push(currentWeek);\n currentWeek = [];\n }\n }\n\n // Fill remaining empty cells in last week\n if (currentWeek.length > 0) {\n while (currentWeek.length < 7) {\n currentWeek.push(null);\n }\n grid.push(currentWeek);\n }\n\n return grid;\n }\n\n /**\n * Get years range for year selector\n */\n getYearRange(startYear?: number, endYear?: number): number[] {\n const start = startYear ?? BS_MIN_YEAR;\n const end = endYear ?? BS_MAX_YEAR;\n const years: number[] = [];\n\n for (let year = start; year <= end; year++) {\n if (BS_CALENDAR_DATA[year]) {\n years.push(year);\n }\n }\n\n return years;\n }\n\n /**\n * Check if a date is within a range\n */\n isDateInRange(date: NepaliDate, minDate?: NepaliDate, maxDate?: NepaliDate): boolean {\n if (minDate && date.isBefore(minDate)) {\n return false;\n }\n if (maxDate && date.isAfter(maxDate)) {\n return false;\n }\n return true;\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n forwardRef,\n OnInit,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n ElementRef,\n HostListener,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NepaliDate } from '../../models/nepali-date.model';\nimport { DateConverterService } from '../../services/date-converter.service';\nimport { toNepaliDigits } from '../../utils/bs-calendar-data';\n\n@Component({\n selector: 'f1-nepali-date-picker',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './nepali-date-picker.component.html',\n styleUrls: ['./nepali-date-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NepaliDatePickerComponent),\n multi: true,\n },\n ],\n})\nexport class NepaliDatePickerComponent implements OnInit, OnDestroy, OnChanges, ControlValueAccessor {\n /** Minimum selectable date */\n @Input() minDate?: NepaliDate;\n\n /** Maximum selectable date */\n @Input() maxDate?: NepaliDate;\n\n /** Placeholder text */\n @Input() placeholder = 'Select date';\n\n /** Display format for the input */\n @Input() displayFormat = 'YYYY-MM-DD';\n\n /** Theme: 'light' or 'dark' */\n @Input() theme: 'light' | 'dark' = 'light';\n\n /** Language for month/day names */\n @Input() language: 'en' | 'np' = 'en';\n\n /** Show today button */\n @Input() showTodayButton = true;\n\n /** Disabled state */\n @Input() disabled = false;\n\n /** Use Nepali digits in display */\n @Input() useNepaliDigits = false;\n\n /** Event emitted when date changes */\n @Output() dateChange = new EventEmitter<NepaliDate | null>();\n\n // Internal state\n isOpen = false;\n selectedDate: NepaliDate | null = null;\n viewDate: NepaliDate;\n calendarGrid: (number | null)[][] = [];\n monthNames: string[] = [];\n weekdayNames: string[] = [];\n years: number[] = [];\n\n // CVA callbacks\n private onChange: (value: NepaliDate | null) => void = () => { };\n private onTouched: () => void = () => { };\n\n constructor(\n private elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n private dateConverter: DateConverterService\n ) {\n this.viewDate = this.dateConverter.getTodayBS();\n }\n\n ngOnInit(): void {\n this.monthNames = this.dateConverter.getMonthNames(this.language);\n this.weekdayNames = this.dateConverter.getWeekdayNames(this.language);\n this.years = this.dateConverter.getYearRange();\n this.updateCalendarGrid();\n }\n\n ngOnDestroy(): void { }\n\n ngOnChanges(changes: SimpleChanges): void {\n // Update month/weekday names when language changes\n if (changes['language'] && !changes['language'].firstChange) {\n this.monthNames = this.dateConverter.getMonthNames(this.language);\n this.weekdayNames = this.dateConverter.getWeekdayNames(this.language);\n this.cdr.markForCheck();\n }\n // Trigger change detection when useNepaliDigits changes\n if (changes['useNepaliDigits'] && !changes['useNepaliDigits'].firstChange) {\n this.cdr.markForCheck();\n }\n }\n\n // ControlValueAccessor implementation\n writeValue(value: NepaliDate | null): void {\n this.selectedDate = value;\n if (value) {\n this.viewDate = value.clone();\n }\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: (value: NepaliDate | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n // UI Methods\n toggleCalendar(): void {\n if (this.disabled) return;\n this.isOpen = !this.isOpen;\n if (this.isOpen) {\n this.onTouched();\n this.updateCalendarGrid();\n }\n this.cdr.markForCheck();\n }\n\n closeCalendar(): void {\n this.isOpen = false;\n this.cdr.markForCheck();\n }\n\n @HostListener('document:click', ['$event'])\n onClickOutside(event: MouseEvent): void {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.closeCalendar();\n }\n }\n\n @HostListener('document:keydown.escape')\n onEscapeKey(): void {\n this.closeCalendar();\n }\n\n // Navigation\n previousMonth(): void {\n this.viewDate = this.viewDate.addMonths(-1);\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n nextMonth(): void {\n this.viewDate = this.viewDate.addMonths(1);\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n onYearChange(event: Event): void {\n const year = parseInt((event.target as HTMLSelectElement).value, 10);\n this.viewDate = new NepaliDate(year, this.viewDate.month, 1);\n // Adjust day if needed\n const daysInMonth = this.dateConverter.getDaysInMonth(year, this.viewDate.month);\n if (this.viewDate.day > daysInMonth) {\n this.viewDate = new NepaliDate(year, this.viewDate.month, daysInMonth);\n }\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n onMonthChange(event: Event): void {\n const month = parseInt((event.target as HTMLSelectElement).value, 10);\n const daysInMonth = this.dateConverter.getDaysInMonth(this.viewDate.year, month);\n const newDay = Math.min(this.viewDate.day, daysInMonth);\n this.viewDate = new NepaliDate(this.viewDate.year, month, newDay);\n this.updateCalendarGrid();\n this.cdr.markForCheck();\n }\n\n // Date selection\n selectDate(day: number | null): void {\n if (day === null || this.disabled) return;\n\n const newDate = new NepaliDate(this.viewDate.year, this.viewDate.month, day);\n\n if (!this.isDateSelectable(day)) return;\n\n this.selectedDate = newDate;\n this.onChange(this.selectedDate);\n this.dateChange.emit(this.selectedDate);\n this.closeCalendar();\n this.cdr.markForCheck();\n }\n\n selectToday(): void {\n const today = this.dateConverter.getTodayBS();\n if (this.dateConverter.isDateInRange(today, this.minDate, this.maxDate)) {\n this.selectedDate = today;\n this.viewDate = today.clone();\n this.onChange(this.selectedDate);\n this.dateChange.emit(this.selectedDate);\n this.updateCalendarGrid();\n this.closeCalendar();\n this.cdr.markForCheck();\n }\n }\n\n clearDate(): void {\n this.selectedDate = null;\n this.onChange(null);\n this.dateChange.emit(null);\n this.cdr.markForCheck();\n }\n\n // Helper methods\n private updateCalendarGrid(): void {\n this.calendarGrid = this.dateConverter.getMonthCalendarGrid(this.viewDate.year, this.viewDate.month);\n }\n\n isDateSelectable(day: number): boolean {\n if (day === null) return false;\n const date = new NepaliDate(this.viewDate.year, this.viewDate.month, day);\n return this.dateConverter.isDateInRange(date, this.minDate, this.maxDate);\n }\n\n isToday(day: number): boolean {\n if (day === null) return false;\n const today = this.dateConverter.getTodayBS();\n return (\n this.viewDate.year === today.year && this.viewDate.month === today.month && day === today.day\n );\n }\n\n isSelected(day: number): boolean {\n if (day === null || !this.selectedDate) return false;\n return (\n this.viewDate.year === this.selectedDate.year &&\n this.viewDate.month === this.selectedDate.month &&\n day === this.selectedDate.day\n );\n }\n\n get displayValue(): string {\n if (!this.selectedDate) return '';\n return this.selectedDate.format(this.displayFormat, this.useNepaliDigits);\n }\n\n get currentMonthName(): string {\n return this.monthNames[this.viewDate.month - 1];\n }\n\n trackByWeek(index: number): number {\n return index;\n }\n\n trackByDay(index: number): number {\n return index;\n }\n\n /**\n * Format day number based on useNepaliDigits setting\n */\n formatDay(day: number | null): string {\n if (day === null) return '';\n return this.useNepaliDigits ? toNepaliDigits(day) : String(day);\n }\n\n /**\n * Format year number based on useNepaliDigits setting\n */\n formatYear(year: number): string {\n return this.useNepaliDigits ? toNepaliDigits(year) : String(year);\n }\n}\n","<div class=\"f1-datepicker\" [class.f1-datepicker--dark]=\"theme === 'dark'\" [class.f1-datepicker--disabled]=\"disabled\">\n <!-- Input Field -->\n <div class=\"f1-datepicker__input-wrapper\" (click)=\"toggleCalendar()\">\n <input type=\"text\" class=\"f1-datepicker__input\" [value]=\"displayValue\" [placeholder]=\"placeholder\"\n [disabled]=\"disabled\" readonly />\n <span class=\"f1-datepicker__icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect>\n <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"></line>\n <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"></line>\n <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"></line>\n </svg>\n </span>\n <button *ngIf=\"selectedDate && !disabled\" type=\"button\" class=\"f1-datepicker__clear\"\n (click)=\"clearDate(); $event.stopPropagation()\" aria-label=\"Clear date\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n </div>\n\n <!-- Calendar Dropdown -->\n <div class=\"f1-datepicker__dropdown\" *ngIf=\"isOpen\" [@fadeIn]>\n <!-- Header -->\n <div class=\"f1-datepicker__header\">\n <button type=\"button\" class=\"f1-datepicker__nav-btn\" (click)=\"previousMonth()\" aria-label=\"Previous month\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"15 18 9 12 15 6\"></polyline>\n </svg>\n </button>\n\n <div class=\"f1-datepicker__selectors\">\n <select class=\"f1-datepicker__select\" [value]=\"viewDate.month\" (change)=\"onMonthChange($event)\">\n <option *ngFor=\"let month of monthNames; let i = index\" [value]=\"i + 1\">\n {{ month }}\n </option>\n </select>\n\n <select class=\"f1-datepicker__select\" [value]=\"viewDate.year\" (change)=\"onYearChange($event)\">\n <option *ngFor=\"let year of years\" [value]=\"year\">\n {{ formatYear(year) }}\n </option>\n </select>\n </div>\n\n <button type=\"button\" class=\"f1-datepicker__nav-btn\" (click)=\"nextMonth()\" aria-label=\"Next month\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n </svg>\n </button>\n </div>\n\n <!-- Weekday Headers -->\n <div class=\"f1-datepicker__weekdays\">\n <div class=\"f1-datepicker__weekday\" *ngFor=\"let day of weekdayNames\">\n {{ day }}\n </div>\n </div>\n\n <!-- Calendar Grid -->\n <div class=\"f1-datepicker__grid\">\n <div class=\"f1-datepicker__week\" *ngFor=\"let week of calendarGrid; trackBy: trackByWeek\">\n <button type=\"button\" class=\"f1-datepicker__day\" *ngFor=\"let day of week; trackBy: trackByDay\"\n [class.f1-datepicker__day--empty]=\"day === null\"\n [class.f1-datepicker__day--today]=\"day !== null && isToday(day)\"\n [class.f1-datepicker__day--selected]=\"day !== null && isSelected(day)\"\n [class.f1-datepicker__day--disabled]=\"day !== null && !isDateSelectable(day)\"\n [disabled]=\"day === null || !isDateSelectable(day)\" (click)=\"selectDate(day)\">\n {{ formatDay(day) }}\n </button>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"f1-datepicker__footer\" *ngIf=\"showTodayButton\">\n <button type=\"button\" class=\"f1-datepicker__today-btn\" (click)=\"selectToday()\">\n {{ language === 'np' ? 'आज' : 'Today' }}\n </button>\n </div>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { NepaliDatePickerComponent } from './components/nepali-date-picker/nepali-date-picker.component';\n\n@NgModule({\n imports: [\n NepaliDatePickerComponent, // Standalone component, import directly\n ],\n exports: [\n NepaliDatePickerComponent,\n ],\n})\nexport class F1NepaliDatePickerModule { }\n","/*\n * Public API Surface of f1-nepali-date-picker\n */\n\n// Module\nexport * from './lib/f1-nepali-date-picker.module';\n\n// Components\nexport * from './lib/components/nepali-date-picker/nepali-date-picker.component';\n\n// Models\nexport * from './lib/models/nepali-date.model';\n\n// Services\nexport * from './lib/services/date-converter.service';\n\n// Utilities\nexport * from './lib/utils/bs-calendar-data';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DateConverterService"],"mappings":";;;;;;;AAAA;;;;AAIG;AAEH;;;;AAIG;AACU,MAAA,gBAAgB,GAAiC;IAC1D,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAA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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@f1softinternational/f1-nepali-date-picker",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Angular 16+ Nepali (Bikram Sambat) Date Picker with AD/BS conversion utilities",
|
|
5
5
|
"author": "F1Soft International <dev@f1soft.com>",
|
|
6
6
|
"license": "MIT",
|