UNPKG

@period-year-norway/ngx-bootstrap

Version:
1 lines 119 kB
{"version":3,"file":"period-year-norway-ngx-bootstrap-typeahead.mjs","sources":["../../../../src/typeahead/latin-map.ts","../../../../src/typeahead/typeahead-options.class.ts","../../../../src/typeahead/typeahead-match.class.ts","../../../../src/typeahead/typeahead-utils.ts","../../../../src/typeahead/typeahead-animations.ts","../../../../src/typeahead/typeahead-container.component.ts","../../../../src/typeahead/typeahead-container.component.html","../../../../src/typeahead/typeahead.config.ts","../../../../src/typeahead/typeahead.directive.ts","../../../../src/typeahead/typeahead.module.ts","../../../../src/typeahead/period-year-norway-ngx-bootstrap-typeahead.ts"],"sourcesContent":["export const latinMap: { [key: string]: string } = {\r\n    'Á': 'A',\r\n    'Ă': 'A',\r\n    'Ắ': 'A',\r\n    'Ặ': 'A',\r\n    'Ằ': 'A',\r\n    'Ẳ': 'A',\r\n    'Ẵ': 'A',\r\n    'Ǎ': 'A',\r\n    'Â': 'A',\r\n    'Ấ': 'A',\r\n    'Ậ': 'A',\r\n    'Ầ': 'A',\r\n    'Ẩ': 'A',\r\n    'Ẫ': 'A',\r\n    'Ä': 'A',\r\n    'Ǟ': 'A',\r\n    'Ȧ': 'A',\r\n    'Ǡ': 'A',\r\n    'Ạ': 'A',\r\n    'Ȁ': 'A',\r\n    'À': 'A',\r\n    'Ả': 'A',\r\n    'Ȃ': 'A',\r\n    'Ā': 'A',\r\n    'Ą': 'A',\r\n    'Å': 'A',\r\n    'Ǻ': 'A',\r\n    'Ḁ': 'A',\r\n    'Ⱥ': 'A',\r\n    'Ã': 'A',\r\n    'Ꜳ': 'AA',\r\n    'Æ': 'AE',\r\n    'Ǽ': 'AE',\r\n    'Ǣ': 'AE',\r\n    'Ꜵ': 'AO',\r\n    'Ꜷ': 'AU',\r\n    'Ꜹ': 'AV',\r\n    'Ꜻ': 'AV',\r\n    'Ꜽ': 'AY',\r\n    'Ḃ': 'B',\r\n    'Ḅ': 'B',\r\n    'Ɓ': 'B',\r\n    'Ḇ': 'B',\r\n    'Ƀ': 'B',\r\n    'Ƃ': 'B',\r\n    'Ć': 'C',\r\n    'Č': 'C',\r\n    'Ç': 'C',\r\n    'Ḉ': 'C',\r\n    'Ĉ': 'C',\r\n    'Ċ': 'C',\r\n    'Ƈ': 'C',\r\n    'Ȼ': 'C',\r\n    'Ď': 'D',\r\n    'Ḑ': 'D',\r\n    'Ḓ': 'D',\r\n    'Ḋ': 'D',\r\n    'Ḍ': 'D',\r\n    'Ɗ': 'D',\r\n    'Ḏ': 'D',\r\n    'Dz': 'D',\r\n    'Dž': 'D',\r\n    'Đ': 'D',\r\n    'Ƌ': 'D',\r\n    'DZ': 'DZ',\r\n    'DŽ': 'DZ',\r\n    'É': 'E',\r\n    'Ĕ': 'E',\r\n    'Ě': 'E',\r\n    'Ȩ': 'E',\r\n    'Ḝ': 'E',\r\n    'Ê': 'E',\r\n    'Ế': 'E',\r\n    'Ệ': 'E',\r\n    'Ề': 'E',\r\n    'Ể': 'E',\r\n    'Ễ': 'E',\r\n    'Ḙ': 'E',\r\n    'Ë': 'E',\r\n    'Ė': 'E',\r\n    'Ẹ': 'E',\r\n    'Ȅ': 'E',\r\n    'È': 'E',\r\n    'Ẻ': 'E',\r\n    'Ȇ': 'E',\r\n    'Ē': 'E',\r\n    'Ḗ': 'E',\r\n    'Ḕ': 'E',\r\n    'Ę': 'E',\r\n    'Ɇ': 'E',\r\n    'Ẽ': 'E',\r\n    'Ḛ': 'E',\r\n    'Ꝫ': 'ET',\r\n    'Ḟ': 'F',\r\n    'Ƒ': 'F',\r\n    'Ǵ': 'G',\r\n    'Ğ': 'G',\r\n    'Ǧ': 'G',\r\n    'Ģ': 'G',\r\n    'Ĝ': 'G',\r\n    'Ġ': 'G',\r\n    'Ɠ': 'G',\r\n    'Ḡ': 'G',\r\n    'Ǥ': 'G',\r\n    'Ḫ': 'H',\r\n    'Ȟ': 'H',\r\n    'Ḩ': 'H',\r\n    'Ĥ': 'H',\r\n    'Ⱨ': 'H',\r\n    'Ḧ': 'H',\r\n    'Ḣ': 'H',\r\n    'Ḥ': 'H',\r\n    'Ħ': 'H',\r\n    'Í': 'I',\r\n    'Ĭ': 'I',\r\n    'Ǐ': 'I',\r\n    'Î': 'I',\r\n    'Ï': 'I',\r\n    'Ḯ': 'I',\r\n    'İ': 'I',\r\n    'Ị': 'I',\r\n    'Ȉ': 'I',\r\n    'Ì': 'I',\r\n    'Ỉ': 'I',\r\n    'Ȋ': 'I',\r\n    'Ī': 'I',\r\n    'Į': 'I',\r\n    'Ɨ': 'I',\r\n    'Ĩ': 'I',\r\n    'Ḭ': 'I',\r\n    'Ꝺ': 'D',\r\n    'Ꝼ': 'F',\r\n    'Ᵹ': 'G',\r\n    'Ꞃ': 'R',\r\n    'Ꞅ': 'S',\r\n    'Ꞇ': 'T',\r\n    'Ꝭ': 'IS',\r\n    'Ĵ': 'J',\r\n    'Ɉ': 'J',\r\n    'Ḱ': 'K',\r\n    'Ǩ': 'K',\r\n    'Ķ': 'K',\r\n    'Ⱪ': 'K',\r\n    'Ꝃ': 'K',\r\n    'Ḳ': 'K',\r\n    'Ƙ': 'K',\r\n    'Ḵ': 'K',\r\n    'Ꝁ': 'K',\r\n    'Ꝅ': 'K',\r\n    'Ĺ': 'L',\r\n    'Ƚ': 'L',\r\n    'Ľ': 'L',\r\n    'Ļ': 'L',\r\n    'Ḽ': 'L',\r\n    'Ḷ': 'L',\r\n    'Ḹ': 'L',\r\n    'Ⱡ': 'L',\r\n    'Ꝉ': 'L',\r\n    'Ḻ': 'L',\r\n    'Ŀ': 'L',\r\n    'Ɫ': 'L',\r\n    'Lj': 'L',\r\n    'Ł': 'L',\r\n    'LJ': 'LJ',\r\n    'Ḿ': 'M',\r\n    'Ṁ': 'M',\r\n    'Ṃ': 'M',\r\n    'Ɱ': 'M',\r\n    'Ń': 'N',\r\n    'Ň': 'N',\r\n    'Ņ': 'N',\r\n    'Ṋ': 'N',\r\n    'Ṅ': 'N',\r\n    'Ṇ': 'N',\r\n    'Ǹ': 'N',\r\n    'Ɲ': 'N',\r\n    'Ṉ': 'N',\r\n    'Ƞ': 'N',\r\n    'Nj': 'N',\r\n    'Ñ': 'N',\r\n    'NJ': 'NJ',\r\n    'Ó': 'O',\r\n    'Ŏ': 'O',\r\n    'Ǒ': 'O',\r\n    'Ô': 'O',\r\n    'Ố': 'O',\r\n    'Ộ': 'O',\r\n    'Ồ': 'O',\r\n    'Ổ': 'O',\r\n    'Ỗ': 'O',\r\n    'Ö': 'O',\r\n    'Ȫ': 'O',\r\n    'Ȯ': 'O',\r\n    'Ȱ': 'O',\r\n    'Ọ': 'O',\r\n    'Ő': 'O',\r\n    'Ȍ': 'O',\r\n    'Ò': 'O',\r\n    'Ỏ': 'O',\r\n    'Ơ': 'O',\r\n    'Ớ': 'O',\r\n    'Ợ': 'O',\r\n    'Ờ': 'O',\r\n    'Ở': 'O',\r\n    'Ỡ': 'O',\r\n    'Ȏ': 'O',\r\n    'Ꝋ': 'O',\r\n    'Ꝍ': 'O',\r\n    'Ō': 'O',\r\n    'Ṓ': 'O',\r\n    'Ṑ': 'O',\r\n    'Ɵ': 'O',\r\n    'Ǫ': 'O',\r\n    'Ǭ': 'O',\r\n    'Ø': 'O',\r\n    'Ǿ': 'O',\r\n    'Õ': 'O',\r\n    'Ṍ': 'O',\r\n    'Ṏ': 'O',\r\n    'Ȭ': 'O',\r\n    'Ƣ': 'OI',\r\n    'Ꝏ': 'OO',\r\n    'Ɛ': 'E',\r\n    'Ɔ': 'O',\r\n    'Ȣ': 'OU',\r\n    'Ṕ': 'P',\r\n    'Ṗ': 'P',\r\n    'Ꝓ': 'P',\r\n    'Ƥ': 'P',\r\n    'Ꝕ': 'P',\r\n    'Ᵽ': 'P',\r\n    'Ꝑ': 'P',\r\n    'Ꝙ': 'Q',\r\n    'Ꝗ': 'Q',\r\n    'Ŕ': 'R',\r\n    'Ř': 'R',\r\n    'Ŗ': 'R',\r\n    'Ṙ': 'R',\r\n    'Ṛ': 'R',\r\n    'Ṝ': 'R',\r\n    'Ȑ': 'R',\r\n    'Ȓ': 'R',\r\n    'Ṟ': 'R',\r\n    'Ɍ': 'R',\r\n    'Ɽ': 'R',\r\n    'Ꜿ': 'C',\r\n    'Ǝ': 'E',\r\n    'Ś': 'S',\r\n    'Ṥ': 'S',\r\n    'Š': 'S',\r\n    'Ṧ': 'S',\r\n    'Ş': 'S',\r\n    'Ŝ': 'S',\r\n    'Ș': 'S',\r\n    'Ṡ': 'S',\r\n    'Ṣ': 'S',\r\n    'Ṩ': 'S',\r\n    'Ť': 'T',\r\n    'Ţ': 'T',\r\n    'Ṱ': 'T',\r\n    'Ț': 'T',\r\n    'Ⱦ': 'T',\r\n    'Ṫ': 'T',\r\n    'Ṭ': 'T',\r\n    'Ƭ': 'T',\r\n    'Ṯ': 'T',\r\n    'Ʈ': 'T',\r\n    'Ŧ': 'T',\r\n    'Ɐ': 'A',\r\n    'Ꞁ': 'L',\r\n    'Ɯ': 'M',\r\n    'Ʌ': 'V',\r\n    'Ꜩ': 'TZ',\r\n    'Ú': 'U',\r\n    'Ŭ': 'U',\r\n    'Ǔ': 'U',\r\n    'Û': 'U',\r\n    'Ṷ': 'U',\r\n    'Ü': 'U',\r\n    'Ǘ': 'U',\r\n    'Ǚ': 'U',\r\n    'Ǜ': 'U',\r\n    'Ǖ': 'U',\r\n    'Ṳ': 'U',\r\n    'Ụ': 'U',\r\n    'Ű': 'U',\r\n    'Ȕ': 'U',\r\n    'Ù': 'U',\r\n    'Ủ': 'U',\r\n    'Ư': 'U',\r\n    'Ứ': 'U',\r\n    'Ự': 'U',\r\n    'Ừ': 'U',\r\n    'Ử': 'U',\r\n    'Ữ': 'U',\r\n    'Ȗ': 'U',\r\n    'Ū': 'U',\r\n    'Ṻ': 'U',\r\n    'Ų': 'U',\r\n    'Ů': 'U',\r\n    'Ũ': 'U',\r\n    'Ṹ': 'U',\r\n    'Ṵ': 'U',\r\n    'Ꝟ': 'V',\r\n    'Ṿ': 'V',\r\n    'Ʋ': 'V',\r\n    'Ṽ': 'V',\r\n    'Ꝡ': 'VY',\r\n    'Ẃ': 'W',\r\n    'Ŵ': 'W',\r\n    'Ẅ': 'W',\r\n    'Ẇ': 'W',\r\n    'Ẉ': 'W',\r\n    'Ẁ': 'W',\r\n    'Ⱳ': 'W',\r\n    'Ẍ': 'X',\r\n    'Ẋ': 'X',\r\n    'Ý': 'Y',\r\n    'Ŷ': 'Y',\r\n    'Ÿ': 'Y',\r\n    'Ẏ': 'Y',\r\n    'Ỵ': 'Y',\r\n    'Ỳ': 'Y',\r\n    'Ƴ': 'Y',\r\n    'Ỷ': 'Y',\r\n    'Ỿ': 'Y',\r\n    'Ȳ': 'Y',\r\n    'Ɏ': 'Y',\r\n    'Ỹ': 'Y',\r\n    'Ź': 'Z',\r\n    'Ž': 'Z',\r\n    'Ẑ': 'Z',\r\n    'Ⱬ': 'Z',\r\n    'Ż': 'Z',\r\n    'Ẓ': 'Z',\r\n    'Ȥ': 'Z',\r\n    'Ẕ': 'Z',\r\n    'Ƶ': 'Z',\r\n    'IJ': 'IJ',\r\n    'Œ': 'OE',\r\n    'ᴀ': 'A',\r\n    'ᴁ': 'AE',\r\n    'ʙ': 'B',\r\n    'ᴃ': 'B',\r\n    'ᴄ': 'C',\r\n    'ᴅ': 'D',\r\n    'ᴇ': 'E',\r\n    'ꜰ': 'F',\r\n    'ɢ': 'G',\r\n    'ʛ': 'G',\r\n    'ʜ': 'H',\r\n    'ɪ': 'I',\r\n    'ʁ': 'R',\r\n    'ᴊ': 'J',\r\n    'ᴋ': 'K',\r\n    'ʟ': 'L',\r\n    'ᴌ': 'L',\r\n    'ᴍ': 'M',\r\n    'ɴ': 'N',\r\n    'ᴏ': 'O',\r\n    'ɶ': 'OE',\r\n    'ᴐ': 'O',\r\n    'ᴕ': 'OU',\r\n    'ᴘ': 'P',\r\n    'ʀ': 'R',\r\n    'ᴎ': 'N',\r\n    'ᴙ': 'R',\r\n    'ꜱ': 'S',\r\n    'ᴛ': 'T',\r\n    'ⱻ': 'E',\r\n    'ᴚ': 'R',\r\n    'ᴜ': 'U',\r\n    'ᴠ': 'V',\r\n    'ᴡ': 'W',\r\n    'ʏ': 'Y',\r\n    'ᴢ': 'Z',\r\n    'á': 'a',\r\n    'ă': 'a',\r\n    'ắ': 'a',\r\n    'ặ': 'a',\r\n    'ằ': 'a',\r\n    'ẳ': 'a',\r\n    'ẵ': 'a',\r\n    'ǎ': 'a',\r\n    'â': 'a',\r\n    'ấ': 'a',\r\n    'ậ': 'a',\r\n    'ầ': 'a',\r\n    'ẩ': 'a',\r\n    'ẫ': 'a',\r\n    'ä': 'a',\r\n    'ǟ': 'a',\r\n    'ȧ': 'a',\r\n    'ǡ': 'a',\r\n    'ạ': 'a',\r\n    'ȁ': 'a',\r\n    'à': 'a',\r\n    'ả': 'a',\r\n    'ȃ': 'a',\r\n    'ā': 'a',\r\n    'ą': 'a',\r\n    'ᶏ': 'a',\r\n    'ẚ': 'a',\r\n    'å': 'a',\r\n    'ǻ': 'a',\r\n    'ḁ': 'a',\r\n    'ⱥ': 'a',\r\n    'ã': 'a',\r\n    'ꜳ': 'aa',\r\n    'æ': 'ae',\r\n    'ǽ': 'ae',\r\n    'ǣ': 'ae',\r\n    'ꜵ': 'ao',\r\n    'ꜷ': 'au',\r\n    'ꜹ': 'av',\r\n    'ꜻ': 'av',\r\n    'ꜽ': 'ay',\r\n    'ḃ': 'b',\r\n    'ḅ': 'b',\r\n    'ɓ': 'b',\r\n    'ḇ': 'b',\r\n    'ᵬ': 'b',\r\n    'ᶀ': 'b',\r\n    'ƀ': 'b',\r\n    'ƃ': 'b',\r\n    'ɵ': 'o',\r\n    'ć': 'c',\r\n    'č': 'c',\r\n    'ç': 'c',\r\n    'ḉ': 'c',\r\n    'ĉ': 'c',\r\n    'ɕ': 'c',\r\n    'ċ': 'c',\r\n    'ƈ': 'c',\r\n    'ȼ': 'c',\r\n    'ď': 'd',\r\n    'ḑ': 'd',\r\n    'ḓ': 'd',\r\n    'ȡ': 'd',\r\n    'ḋ': 'd',\r\n    'ḍ': 'd',\r\n    'ɗ': 'd',\r\n    'ᶑ': 'd',\r\n    'ḏ': 'd',\r\n    'ᵭ': 'd',\r\n    'ᶁ': 'd',\r\n    'đ': 'd',\r\n    'ɖ': 'd',\r\n    'ƌ': 'd',\r\n    'ı': 'i',\r\n    'ȷ': 'j',\r\n    'ɟ': 'j',\r\n    'ʄ': 'j',\r\n    'dz': 'dz',\r\n    'dž': 'dz',\r\n    'é': 'e',\r\n    'ĕ': 'e',\r\n    'ě': 'e',\r\n    'ȩ': 'e',\r\n    'ḝ': 'e',\r\n    'ê': 'e',\r\n    'ế': 'e',\r\n    'ệ': 'e',\r\n    'ề': 'e',\r\n    'ể': 'e',\r\n    'ễ': 'e',\r\n    'ḙ': 'e',\r\n    'ë': 'e',\r\n    'ė': 'e',\r\n    'ẹ': 'e',\r\n    'ȅ': 'e',\r\n    'è': 'e',\r\n    'ẻ': 'e',\r\n    'ȇ': 'e',\r\n    'ē': 'e',\r\n    'ḗ': 'e',\r\n    'ḕ': 'e',\r\n    'ⱸ': 'e',\r\n    'ę': 'e',\r\n    'ᶒ': 'e',\r\n    'ɇ': 'e',\r\n    'ẽ': 'e',\r\n    'ḛ': 'e',\r\n    'ꝫ': 'et',\r\n    'ḟ': 'f',\r\n    'ƒ': 'f',\r\n    'ᵮ': 'f',\r\n    'ᶂ': 'f',\r\n    'ǵ': 'g',\r\n    'ğ': 'g',\r\n    'ǧ': 'g',\r\n    'ģ': 'g',\r\n    'ĝ': 'g',\r\n    'ġ': 'g',\r\n    'ɠ': 'g',\r\n    'ḡ': 'g',\r\n    'ᶃ': 'g',\r\n    'ǥ': 'g',\r\n    'ḫ': 'h',\r\n    'ȟ': 'h',\r\n    'ḩ': 'h',\r\n    'ĥ': 'h',\r\n    'ⱨ': 'h',\r\n    'ḧ': 'h',\r\n    'ḣ': 'h',\r\n    'ḥ': 'h',\r\n    'ɦ': 'h',\r\n    'ẖ': 'h',\r\n    'ħ': 'h',\r\n    'ƕ': 'hv',\r\n    'í': 'i',\r\n    'ĭ': 'i',\r\n    'ǐ': 'i',\r\n    'î': 'i',\r\n    'ï': 'i',\r\n    'ḯ': 'i',\r\n    'ị': 'i',\r\n    'ȉ': 'i',\r\n    'ì': 'i',\r\n    'ỉ': 'i',\r\n    'ȋ': 'i',\r\n    'ī': 'i',\r\n    'į': 'i',\r\n    'ᶖ': 'i',\r\n    'ɨ': 'i',\r\n    'ĩ': 'i',\r\n    'ḭ': 'i',\r\n    'ꝺ': 'd',\r\n    'ꝼ': 'f',\r\n    'ᵹ': 'g',\r\n    'ꞃ': 'r',\r\n    'ꞅ': 's',\r\n    'ꞇ': 't',\r\n    'ꝭ': 'is',\r\n    'ǰ': 'j',\r\n    'ĵ': 'j',\r\n    'ʝ': 'j',\r\n    'ɉ': 'j',\r\n    'ḱ': 'k',\r\n    'ǩ': 'k',\r\n    'ķ': 'k',\r\n    'ⱪ': 'k',\r\n    'ꝃ': 'k',\r\n    'ḳ': 'k',\r\n    'ƙ': 'k',\r\n    'ḵ': 'k',\r\n    'ᶄ': 'k',\r\n    'ꝁ': 'k',\r\n    'ꝅ': 'k',\r\n    'ĺ': 'l',\r\n    'ƚ': 'l',\r\n    'ɬ': 'l',\r\n    'ľ': 'l',\r\n    'ļ': 'l',\r\n    'ḽ': 'l',\r\n    'ȴ': 'l',\r\n    'ḷ': 'l',\r\n    'ḹ': 'l',\r\n    'ⱡ': 'l',\r\n    'ꝉ': 'l',\r\n    'ḻ': 'l',\r\n    'ŀ': 'l',\r\n    'ɫ': 'l',\r\n    'ᶅ': 'l',\r\n    'ɭ': 'l',\r\n    'ł': 'l',\r\n    'lj': 'lj',\r\n    'ſ': 's',\r\n    'ẜ': 's',\r\n    'ẛ': 's',\r\n    'ẝ': 's',\r\n    'ḿ': 'm',\r\n    'ṁ': 'm',\r\n    'ṃ': 'm',\r\n    'ɱ': 'm',\r\n    'ᵯ': 'm',\r\n    'ᶆ': 'm',\r\n    'ń': 'n',\r\n    'ň': 'n',\r\n    'ņ': 'n',\r\n    'ṋ': 'n',\r\n    'ȵ': 'n',\r\n    'ṅ': 'n',\r\n    'ṇ': 'n',\r\n    'ǹ': 'n',\r\n    'ɲ': 'n',\r\n    'ṉ': 'n',\r\n    'ƞ': 'n',\r\n    'ᵰ': 'n',\r\n    'ᶇ': 'n',\r\n    'ɳ': 'n',\r\n    'ñ': 'n',\r\n    'nj': 'nj',\r\n    'ó': 'o',\r\n    'ŏ': 'o',\r\n    'ǒ': 'o',\r\n    'ô': 'o',\r\n    'ố': 'o',\r\n    'ộ': 'o',\r\n    'ồ': 'o',\r\n    'ổ': 'o',\r\n    'ỗ': 'o',\r\n    'ö': 'o',\r\n    'ȫ': 'o',\r\n    'ȯ': 'o',\r\n    'ȱ': 'o',\r\n    'ọ': 'o',\r\n    'ő': 'o',\r\n    'ȍ': 'o',\r\n    'ò': 'o',\r\n    'ỏ': 'o',\r\n    'ơ': 'o',\r\n    'ớ': 'o',\r\n    'ợ': 'o',\r\n    'ờ': 'o',\r\n    'ở': 'o',\r\n    'ỡ': 'o',\r\n    'ȏ': 'o',\r\n    'ꝋ': 'o',\r\n    'ꝍ': 'o',\r\n    'ⱺ': 'o',\r\n    'ō': 'o',\r\n    'ṓ': 'o',\r\n    'ṑ': 'o',\r\n    'ǫ': 'o',\r\n    'ǭ': 'o',\r\n    'ø': 'o',\r\n    'ǿ': 'o',\r\n    'õ': 'o',\r\n    'ṍ': 'o',\r\n    'ṏ': 'o',\r\n    'ȭ': 'o',\r\n    'ƣ': 'oi',\r\n    'ꝏ': 'oo',\r\n    'ɛ': 'e',\r\n    'ᶓ': 'e',\r\n    'ɔ': 'o',\r\n    'ᶗ': 'o',\r\n    'ȣ': 'ou',\r\n    'ṕ': 'p',\r\n    'ṗ': 'p',\r\n    'ꝓ': 'p',\r\n    'ƥ': 'p',\r\n    'ᵱ': 'p',\r\n    'ᶈ': 'p',\r\n    'ꝕ': 'p',\r\n    'ᵽ': 'p',\r\n    'ꝑ': 'p',\r\n    'ꝙ': 'q',\r\n    'ʠ': 'q',\r\n    'ɋ': 'q',\r\n    'ꝗ': 'q',\r\n    'ŕ': 'r',\r\n    'ř': 'r',\r\n    'ŗ': 'r',\r\n    'ṙ': 'r',\r\n    'ṛ': 'r',\r\n    'ṝ': 'r',\r\n    'ȑ': 'r',\r\n    'ɾ': 'r',\r\n    'ᵳ': 'r',\r\n    'ȓ': 'r',\r\n    'ṟ': 'r',\r\n    'ɼ': 'r',\r\n    'ᵲ': 'r',\r\n    'ᶉ': 'r',\r\n    'ɍ': 'r',\r\n    'ɽ': 'r',\r\n    'ↄ': 'c',\r\n    'ꜿ': 'c',\r\n    'ɘ': 'e',\r\n    'ɿ': 'r',\r\n    'ś': 's',\r\n    'ṥ': 's',\r\n    'š': 's',\r\n    'ṧ': 's',\r\n    'ş': 's',\r\n    'ŝ': 's',\r\n    'ș': 's',\r\n    'ṡ': 's',\r\n    'ṣ': 's',\r\n    'ṩ': 's',\r\n    'ʂ': 's',\r\n    'ᵴ': 's',\r\n    'ᶊ': 's',\r\n    'ȿ': 's',\r\n    'ɡ': 'g',\r\n    'ᴑ': 'o',\r\n    'ᴓ': 'o',\r\n    'ᴝ': 'u',\r\n    'ť': 't',\r\n    'ţ': 't',\r\n    'ṱ': 't',\r\n    'ț': 't',\r\n    'ȶ': 't',\r\n    'ẗ': 't',\r\n    'ⱦ': 't',\r\n    'ṫ': 't',\r\n    'ṭ': 't',\r\n    'ƭ': 't',\r\n    'ṯ': 't',\r\n    'ᵵ': 't',\r\n    'ƫ': 't',\r\n    'ʈ': 't',\r\n    'ŧ': 't',\r\n    'ᵺ': 'th',\r\n    'ɐ': 'a',\r\n    'ᴂ': 'ae',\r\n    'ǝ': 'e',\r\n    'ᵷ': 'g',\r\n    'ɥ': 'h',\r\n    'ʮ': 'h',\r\n    'ʯ': 'h',\r\n    'ᴉ': 'i',\r\n    'ʞ': 'k',\r\n    'ꞁ': 'l',\r\n    'ɯ': 'm',\r\n    'ɰ': 'm',\r\n    'ᴔ': 'oe',\r\n    'ɹ': 'r',\r\n    'ɻ': 'r',\r\n    'ɺ': 'r',\r\n    'ⱹ': 'r',\r\n    'ʇ': 't',\r\n    'ʌ': 'v',\r\n    'ʍ': 'w',\r\n    'ʎ': 'y',\r\n    'ꜩ': 'tz',\r\n    'ú': 'u',\r\n    'ŭ': 'u',\r\n    'ǔ': 'u',\r\n    'û': 'u',\r\n    'ṷ': 'u',\r\n    'ü': 'u',\r\n    'ǘ': 'u',\r\n    'ǚ': 'u',\r\n    'ǜ': 'u',\r\n    'ǖ': 'u',\r\n    'ṳ': 'u',\r\n    'ụ': 'u',\r\n    'ű': 'u',\r\n    'ȕ': 'u',\r\n    'ù': 'u',\r\n    'ủ': 'u',\r\n    'ư': 'u',\r\n    'ứ': 'u',\r\n    'ự': 'u',\r\n    'ừ': 'u',\r\n    'ử': 'u',\r\n    'ữ': 'u',\r\n    'ȗ': 'u',\r\n    'ū': 'u',\r\n    'ṻ': 'u',\r\n    'ų': 'u',\r\n    'ᶙ': 'u',\r\n    'ů': 'u',\r\n    'ũ': 'u',\r\n    'ṹ': 'u',\r\n    'ṵ': 'u',\r\n    'ᵫ': 'ue',\r\n    'ꝸ': 'um',\r\n    'ⱴ': 'v',\r\n    'ꝟ': 'v',\r\n    'ṿ': 'v',\r\n    'ʋ': 'v',\r\n    'ᶌ': 'v',\r\n    'ⱱ': 'v',\r\n    'ṽ': 'v',\r\n    'ꝡ': 'vy',\r\n    'ẃ': 'w',\r\n    'ŵ': 'w',\r\n    'ẅ': 'w',\r\n    'ẇ': 'w',\r\n    'ẉ': 'w',\r\n    'ẁ': 'w',\r\n    'ⱳ': 'w',\r\n    'ẘ': 'w',\r\n    'ẍ': 'x',\r\n    'ẋ': 'x',\r\n    'ᶍ': 'x',\r\n    'ý': 'y',\r\n    'ŷ': 'y',\r\n    'ÿ': 'y',\r\n    'ẏ': 'y',\r\n    'ỵ': 'y',\r\n    'ỳ': 'y',\r\n    'ƴ': 'y',\r\n    'ỷ': 'y',\r\n    'ỿ': 'y',\r\n    'ȳ': 'y',\r\n    'ẙ': 'y',\r\n    'ɏ': 'y',\r\n    'ỹ': 'y',\r\n    'ź': 'z',\r\n    'ž': 'z',\r\n    'ẑ': 'z',\r\n    'ʑ': 'z',\r\n    'ⱬ': 'z',\r\n    'ż': 'z',\r\n    'ẓ': 'z',\r\n    'ȥ': 'z',\r\n    'ẕ': 'z',\r\n    'ᵶ': 'z',\r\n    'ᶎ': 'z',\r\n    'ʐ': 'z',\r\n    'ƶ': 'z',\r\n    'ɀ': 'z',\r\n    'ff': 'ff',\r\n    'ffi': 'ffi',\r\n    'ffl': 'ffl',\r\n    'fi': 'fi',\r\n    'fl': 'fl',\r\n    'ij': 'ij',\r\n    'œ': 'oe',\r\n    'st': 'st',\r\n    'ₐ': 'a',\r\n    'ₑ': 'e',\r\n    'ᵢ': 'i',\r\n    'ⱼ': 'j',\r\n    'ₒ': 'o',\r\n    'ᵣ': 'r',\r\n    'ᵤ': 'u',\r\n    'ᵥ': 'v',\r\n    'ₓ': 'x'\r\n};\r\n","import { TypeaheadDirective } from './typeahead.directive';\r\n\r\nexport class TypeaheadOptions {\r\n  placement: string;\r\n  animation: boolean;\r\n  typeaheadRef: TypeaheadDirective;\r\n\r\n  constructor(options: TypeaheadOptions) {\r\n    this.placement = options.placement;\r\n    this.animation = options.animation;\r\n    this.typeaheadRef = options.typeaheadRef;\r\n  }\r\n}\r\n","export class TypeaheadMatch {\r\n  readonly value: string;\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n  readonly item: any;\r\n  protected header: boolean;\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n  constructor(item: any, value: string = item, header = false) {\r\n    this.item = item;\r\n    this.value = value;\r\n    this.header = header;\r\n  }\r\n\r\n  isHeader(): boolean {\r\n    return this.header;\r\n  }\r\n\r\n  toString(): string {\r\n    return this.value;\r\n  }\r\n}\r\n","import { latinMap } from './latin-map';\r\n\r\nexport function latinize(str: string): string {\r\n  if (!str) {\r\n    return '';\r\n  }\r\n\r\n  return str.replace(/[^A-Za-z0-9[\\] ]/g, function(a: string): string {\r\n    return latinMap[a] || a;\r\n  });\r\n}\r\n\r\nexport function escapeRegexp(queryToEscape: string): string {\r\n  // Regex: capture the whole query string and replace it with the string\r\n  // that will be used to match the results, for example if the capture is\r\n  // 'a' the result will be \\a\r\n  return queryToEscape.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1');\r\n}\r\n\r\nexport function tokenize(str: string,\r\n                         wordRegexDelimiters = ' ',\r\n                         phraseRegexDelimiters = '', delimitersForMultipleSearch?: string): Array<string> {\r\n\r\n  let result: string[] = [];\r\n  if (!delimitersForMultipleSearch) {\r\n    result = tokenizeWordsAndPhrases(str, wordRegexDelimiters, phraseRegexDelimiters);\r\n  } else {\r\n    const multipleSearchRegexStr = `([${delimitersForMultipleSearch}]+)`;\r\n    const delimitedTokens = str.split(new RegExp(multipleSearchRegexStr, 'g'));\r\n    const lastToken = delimitedTokens[delimitedTokens.length - 1];\r\n    if (lastToken > '') {\r\n      if (wordRegexDelimiters && phraseRegexDelimiters) {\r\n        result = tokenizeWordsAndPhrases(lastToken, wordRegexDelimiters, phraseRegexDelimiters);\r\n      } else {\r\n        result.push(lastToken);\r\n      }\r\n    }\r\n  }\r\n\r\n  return result;\r\n}\r\n\r\nfunction tokenizeWordsAndPhrases(str: string, wordRegexDelimiters: string, phraseRegexDelimiters: string): Array<string> {\r\n  const result: string[] = [];\r\n  const regexStr = `(?:[${phraseRegexDelimiters}])([^${phraseRegexDelimiters}]+)` +\r\n    `(?:[${phraseRegexDelimiters}])|([^${wordRegexDelimiters}]+)`;\r\n  const preTokenized: string[] = str.split(new RegExp(regexStr, 'g'));\r\n  const preTokenizedLength: number = preTokenized.length;\r\n  let token: string;\r\n  const replacePhraseDelimiters = new RegExp(`[${phraseRegexDelimiters}]+`, 'g');\r\n\r\n  for (let i = 0; i < preTokenizedLength; i += 1) {\r\n    token = preTokenized[i];\r\n    if (token && token.length && token !== wordRegexDelimiters) {\r\n      result.push(token.replace(replacePhraseDelimiters, ''));\r\n    }\r\n  }\r\n\r\n  return result;\r\n}\r\n\r\n// eslint-disable-next-line\r\nexport function getValueFromObject(object: string | Record<string | number, any>, option?: string): string {\r\n  if (!option || typeof object !== 'object') {\r\n    return object.toString();\r\n  }\r\n\r\n  if (option.endsWith('()')) {\r\n    const functionName = option.slice(0, option.length - 2);\r\n\r\n    return (object[functionName] as () => string)().toString();\r\n  }\r\n\r\n  const properties: string = option\r\n    .replace(/\\[(\\w+)\\]/g, '.$1')\r\n    .replace(/^\\./, '');\r\n  const propertiesArray: string[] = properties.split('.');\r\n\r\n  for (const property of propertiesArray) {\r\n    if (property in (object as Record<string, unknown>)) {\r\n      // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n      // @ts-ignore\r\n      object = object[property];\r\n    }\r\n  }\r\n  if (!object) {\r\n    return '';\r\n  }\r\n\r\n  return object.toString();\r\n}\r\n","import {\r\n  animate,\r\n  style,\r\n  AnimationTriggerMetadata,\r\n  state,\r\n  transition,\r\n  trigger\r\n} from '@angular/animations';\r\n\r\nexport const TYPEAHEAD_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';\r\n\r\nexport const typeaheadAnimation: AnimationTriggerMetadata =\r\n  trigger('typeaheadAnimation', [\r\n    state('animated-down', style({ height: '*', overflow: 'hidden'})),\r\n    transition('* => animated-down', [\r\n      style({ height: 0, overflow: 'hidden' }),\r\n      animate(TYPEAHEAD_ANIMATION_TIMING)\r\n    ]),\r\n    state('animated-up', style({ height: '*', overflow: 'hidden'})),\r\n    transition('* => animated-up', [\r\n      style({ height: '*', overflow: 'hidden' }),\r\n      animate(TYPEAHEAD_ANIMATION_TIMING)\r\n    ]),\r\n    transition('* => unanimated', animate('0s'))\r\n  ]);\r\n","import {\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  HostListener,\r\n  OnDestroy,\r\n  QueryList,\r\n  Renderer2,\r\n  TemplateRef,\r\n  ViewChild,\r\n  ViewChildren,\r\n  Output,\r\n  EventEmitter\r\n} from '@angular/core';\r\n\r\nimport { isBs3, Utils } from '@period-year-norway/ngx-bootstrap/utils';\r\nimport { PositioningService } from '@period-year-norway/ngx-bootstrap/positioning';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { latinize } from './typeahead-utils';\r\nimport { TypeaheadMatch } from './typeahead-match.class';\r\nimport { TypeaheadDirective } from './typeahead.directive';\r\nimport { typeaheadAnimation } from './typeahead-animations';\r\nimport { TypeaheadOptionItemContext, TypeaheadOptionListContext, TypeaheadTemplateMethods } from './models';\r\n\r\nlet nextWindowId = 0;\r\n\r\n@Component({\r\n  selector: 'typeahead-container',\r\n  templateUrl: './typeahead-container.component.html',\r\n  host: {\r\n    class: 'dropdown open bottom',\r\n    '[class.dropdown-menu]': 'isBs4',\r\n    '[style.height]': `isBs4 && needScrollbar ? guiHeight: 'auto'`,\r\n    '[style.visibility]': `'inherit'`,\r\n    '[class.dropup]': 'dropup',\r\n    style: 'position: absolute;display: block;',\r\n    '[attr.role]': `isBs4 ? 'listbox' : null `\r\n  },\r\n  styles: [\r\n    `\r\n      :host.dropdown {\r\n        z-index: 1000;\r\n      }\r\n\r\n      :host.dropdown-menu,\r\n      .dropdown-menu {\r\n        overflow-y: auto;\r\n        height: 100px;\r\n      }\r\n    `\r\n  ],\r\n  animations: [typeaheadAnimation],\r\n  standalone: false\r\n})\r\nexport class TypeaheadContainerComponent implements OnDestroy {\r\n  // eslint-disable-next-line @angular-eslint/no-output-rename\r\n  @Output('activeChange') activeChangeEvent = new EventEmitter();\r\n\r\n  parent?: TypeaheadDirective;\r\n  query?: string[] | string;\r\n  isFocused = false;\r\n  top?: string;\r\n  left?: string;\r\n  display?: string;\r\n  placemen?: string;\r\n  dropup?: boolean;\r\n  guiHeight?: string;\r\n  needScrollbar?: boolean;\r\n  animationState?: string;\r\n  positionServiceSubscription = new Subscription();\r\n  height = 0;\r\n  popupId = `ngb-typeahead-${nextWindowId++}`;\r\n\r\n  get isBs4(): boolean {\r\n    return !isBs3();\r\n  }\r\n\r\n  get typeaheadTemplateMethods(): TypeaheadTemplateMethods {\r\n    return {\r\n      selectMatch: this.selectMatch.bind(this),\r\n      selectActive: this.selectActive.bind(this),\r\n      isActive: this.isActive.bind(this)\r\n    };\r\n  }\r\n\r\n  protected _active?: TypeaheadMatch;\r\n  protected _matches: TypeaheadMatch[] = [];\r\n\r\n  @ViewChild('ulElement', { static: false })\r\n  private ulElement?: ElementRef;\r\n\r\n  @ViewChildren('liElements')\r\n  private liElements?: QueryList<ElementRef>;\r\n\r\n  constructor(\r\n    private positionService: PositioningService,\r\n    private renderer: Renderer2,\r\n    public element: ElementRef,\r\n    private changeDetectorRef: ChangeDetectorRef\r\n  ) {\r\n    this.renderer.setAttribute(this.element.nativeElement, 'id', this.popupId);\r\n    this.positionServiceSubscription.add(\r\n      this.positionService.event$?.subscribe(() => {\r\n        if (this.isAnimated) {\r\n          this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';\r\n          this.changeDetectorRef.detectChanges();\r\n\r\n          return;\r\n        }\r\n\r\n        this.animationState = 'unanimated';\r\n        this.changeDetectorRef.detectChanges();\r\n      })\r\n    );\r\n  }\r\n\r\n  get active(): TypeaheadMatch | undefined {\r\n    return this._active;\r\n  }\r\n\r\n  set active(active: TypeaheadMatch | undefined) {\r\n    this._active = active;\r\n    this.activeChanged();\r\n  }\r\n\r\n  get matches(): TypeaheadMatch[] {\r\n    return this._matches;\r\n  }\r\n\r\n  set matches(value: TypeaheadMatch[]) {\r\n    this.positionService.setOptions({\r\n      modifiers: { flip: { enabled: this.adaptivePosition } },\r\n      allowedPositions: ['top', 'bottom']\r\n    });\r\n\r\n    this._matches = value;\r\n\r\n    this.needScrollbar = this.typeaheadScrollable && this.typeaheadOptionsInScrollableView < this.matches.length;\r\n\r\n    if (this.typeaheadScrollable) {\r\n      setTimeout(() => {\r\n        this.setScrollableMode();\r\n      });\r\n    }\r\n\r\n    if (this.typeaheadIsFirstItemActive && this._matches.length > 0) {\r\n      this.setActive(this._matches[0]);\r\n\r\n      if (this._active?.isHeader()) {\r\n        this.nextActiveMatch();\r\n      }\r\n    }\r\n\r\n    if (this._active && !this.typeaheadIsFirstItemActive) {\r\n      const concurrency = this._matches.find((match) => match.value === this._active?.value);\r\n\r\n      if (concurrency) {\r\n        this.selectActive(concurrency);\r\n\r\n        return;\r\n      }\r\n\r\n      this.active = void 0;\r\n    }\r\n  }\r\n\r\n  get isTopPosition(): boolean {\r\n    return this.element.nativeElement.classList.contains('top');\r\n  }\r\n\r\n  get optionsListTemplate(): TemplateRef<TypeaheadOptionListContext> | undefined {\r\n    return this.parent ? this.parent.optionsListTemplate : undefined;\r\n  }\r\n\r\n  get isAnimated(): boolean {\r\n    return this.parent ? this.parent.isAnimated : false;\r\n  }\r\n\r\n  get adaptivePosition(): boolean {\r\n    return this.parent ? this.parent.adaptivePosition : false;\r\n  }\r\n\r\n  get typeaheadScrollable(): boolean {\r\n    return this.parent ? this.parent.typeaheadScrollable : false;\r\n  }\r\n\r\n  get typeaheadOptionsInScrollableView(): number {\r\n    return this.parent ? this.parent.typeaheadOptionsInScrollableView : 5;\r\n  }\r\n\r\n  get typeaheadIsFirstItemActive(): boolean {\r\n    return this.parent ? this.parent.typeaheadIsFirstItemActive : true;\r\n  }\r\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n  get itemTemplate(): TemplateRef<TypeaheadOptionItemContext> | undefined {\r\n    return this.parent ? this.parent.typeaheadItemTemplate : undefined;\r\n  }\r\n\r\n  get canSelectItemsOnBlur(): boolean {\r\n    return !!this.parent?.selectItemOnBlur;\r\n  }\r\n\r\n  selectActiveMatch(isActiveItemChanged?: boolean): void {\r\n    if (this._active && this.parent?.typeaheadSelectFirstItem) {\r\n      this.selectMatch(this._active);\r\n    }\r\n\r\n    if (!this.parent?.typeaheadSelectFirstItem && isActiveItemChanged) {\r\n      this.selectMatch(this._active);\r\n    }\r\n  }\r\n\r\n  activeChanged(): void {\r\n    if (!this._active) {\r\n      return;\r\n    }\r\n    const index = this.matches.indexOf(this._active);\r\n    this.activeChangeEvent.emit(`${this.popupId}-${index}`);\r\n  }\r\n\r\n  prevActiveMatch(): void {\r\n    if (!this._active) {\r\n      return;\r\n    }\r\n\r\n    const index = this.matches.indexOf(this._active);\r\n    this.setActive(this.matches[index - 1 < 0 ? this.matches.length - 1 : index - 1]);\r\n\r\n    if (this._active.isHeader()) {\r\n      this.prevActiveMatch();\r\n    }\r\n\r\n    if (this.typeaheadScrollable) {\r\n      this.scrollPrevious(index);\r\n    }\r\n  }\r\n\r\n  nextActiveMatch(): void {\r\n    const index = this._active ? this.matches.indexOf(this._active) : -1;\r\n    this.setActive(this.matches[index + 1 > this.matches.length - 1 ? 0 : index + 1]);\r\n\r\n    if (this._active?.isHeader()) {\r\n      this.nextActiveMatch();\r\n    }\r\n\r\n    if (this.typeaheadScrollable) {\r\n      this.scrollNext(index);\r\n    }\r\n  }\r\n\r\n  selectActive(value: TypeaheadMatch): void {\r\n    this.isFocused = true;\r\n    this.setActive(value);\r\n  }\r\n\r\n  highlight(match: TypeaheadMatch, query: string[] | string): string {\r\n    let itemStr: string = match.value;\r\n    let itemStrHelper: string = (\r\n      this.parent && this.parent.typeaheadLatinize ? latinize(itemStr) : itemStr\r\n    ).toLowerCase();\r\n    let startIdx: number;\r\n    let tokenLen: number;\r\n    // Replaces the capture string with the same string inside of a \"strong\" tag\r\n    if (typeof query === 'object') {\r\n      const queryLen: number = query.length;\r\n      for (let i = 0; i < queryLen; i += 1) {\r\n        // query[i] is already latinized and lower case\r\n        startIdx = itemStrHelper.indexOf(query[i]);\r\n        tokenLen = query[i].length;\r\n        if (startIdx >= 0 && tokenLen > 0) {\r\n          itemStr =\r\n            `${itemStr.substring(0, startIdx)}<strong>${itemStr.substring(startIdx, startIdx + tokenLen)}</strong>` +\r\n            `${itemStr.substring(startIdx + tokenLen)}`;\r\n          itemStrHelper =\r\n            `${itemStrHelper.substring(0, startIdx)}        ${' '.repeat(tokenLen)}         ` +\r\n            `${itemStrHelper.substring(startIdx + tokenLen)}`;\r\n        }\r\n      }\r\n    } else if (query) {\r\n      // query is already latinized and lower case\r\n      startIdx = itemStrHelper.indexOf(query);\r\n      tokenLen = query.length;\r\n      if (startIdx >= 0 && tokenLen > 0) {\r\n        itemStr =\r\n          `${itemStr.substring(0, startIdx)}<strong>${itemStr.substring(startIdx, startIdx + tokenLen)}</strong>` +\r\n          `${itemStr.substring(startIdx + tokenLen)}`;\r\n      }\r\n    }\r\n\r\n    return itemStr;\r\n  }\r\n\r\n  @HostListener('mouseleave')\r\n  @HostListener('blur')\r\n  focusLost(): void {\r\n    this.isFocused = false;\r\n    if (!this.canSelectItemsOnBlur) {\r\n      this.setActive(void 0);\r\n    }\r\n  }\r\n\r\n  isActive(value: TypeaheadMatch): boolean {\r\n    return this.active === value;\r\n  }\r\n\r\n  selectMatch(value?: TypeaheadMatch, event?: Event): boolean {\r\n    if (event) {\r\n      event.stopPropagation();\r\n      event.preventDefault();\r\n    }\r\n    this.parent?.changeModel(value);\r\n    setTimeout(() => this.parent?.typeaheadOnSelect.emit(value), 0);\r\n\r\n    return false;\r\n  }\r\n\r\n  setScrollableMode(): void {\r\n    if (!this.ulElement) {\r\n      this.ulElement = this.element;\r\n    }\r\n\r\n    if (this.liElements?.first) {\r\n      const ulStyles = Utils.getStyles(this.ulElement.nativeElement);\r\n      const liStyles = Utils.getStyles(this.liElements.first.nativeElement);\r\n      const ulPaddingBottom = parseFloat(\r\n        (ulStyles['padding-bottom'] ? ulStyles['padding-bottom'] : '').replace('px', '')\r\n      );\r\n      const ulPaddingTop = parseFloat((ulStyles['padding-top'] ? ulStyles['padding-top'] : '0').replace('px', ''));\r\n      const optionHeight = parseFloat((liStyles.height ? liStyles.height : '0').replace('px', ''));\r\n      const height = this.typeaheadOptionsInScrollableView * optionHeight;\r\n      this.guiHeight = `${height + ulPaddingTop + ulPaddingBottom}px`;\r\n    }\r\n\r\n    this.renderer.setStyle(this.element.nativeElement, 'visibility', 'visible');\r\n  }\r\n\r\n  scrollPrevious(index: number): void {\r\n    if (index === 0) {\r\n      this.scrollToBottom();\r\n\r\n      return;\r\n    }\r\n    if (this.liElements && this.ulElement) {\r\n      const liElement = this.liElements.toArray()[index - 1];\r\n      if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {\r\n        this.ulElement.nativeElement.scrollTop = liElement.nativeElement.offsetTop;\r\n      }\r\n    }\r\n  }\r\n\r\n  scrollNext(index: number): void {\r\n    if (index + 1 > this.matches.length - 1) {\r\n      this.scrollToTop();\r\n\r\n      return;\r\n    }\r\n    if (this.liElements && this.ulElement) {\r\n      const liElement = this.liElements.toArray()[index + 1];\r\n      if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {\r\n        this.ulElement.nativeElement.scrollTop =\r\n          liElement.nativeElement.offsetTop -\r\n          Number(this.ulElement.nativeElement.offsetHeight) +\r\n          Number(liElement.nativeElement.offsetHeight);\r\n      }\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.positionServiceSubscription.unsubscribe();\r\n  }\r\n\r\n  protected setActive(value?: TypeaheadMatch): void {\r\n    this._active = value;\r\n    let preview;\r\n    if (!(this._active == null || this._active.isHeader())) {\r\n      preview = value;\r\n    }\r\n    this.parent?.typeaheadOnPreview.emit(preview);\r\n  }\r\n\r\n  private isScrolledIntoView(elem: HTMLElement): boolean {\r\n    if (!this.ulElement) {\r\n      return false;\r\n    }\r\n    const containerViewTop: number = this.ulElement.nativeElement.scrollTop;\r\n    const containerViewBottom = containerViewTop + Number(this.ulElement.nativeElement.offsetHeight);\r\n    const elemTop = elem.offsetTop;\r\n    const elemBottom = elemTop + elem.offsetHeight;\r\n\r\n    return elemBottom <= containerViewBottom && elemTop >= containerViewTop;\r\n  }\r\n\r\n  private scrollToBottom(): void {\r\n    if (!this.ulElement?.nativeElement) {\r\n      return;\r\n    }\r\n    this.ulElement.nativeElement.scrollTop = this.ulElement.nativeElement.scrollHeight;\r\n  }\r\n\r\n  private scrollToTop(): void {\r\n    if (!this.ulElement?.nativeElement) {\r\n      return;\r\n    }\r\n    this.ulElement.nativeElement.scrollTop = 0;\r\n  }\r\n}\r\n","<!-- inject options list template -->\r\n<ng-template [ngTemplateOutlet]=\"optionsListTemplate || (isBs4 ? bs4Template : bs3Template)\"\r\n             [ngTemplateOutletContext]=\"{\r\n               matches: matches,\r\n               itemTemplate: itemTemplate || bsItemTemplate,\r\n               query: query,\r\n               $implicit: typeaheadTemplateMethods\r\n             }\">\r\n</ng-template>\r\n\r\n<!-- default options item template -->\r\n<ng-template #bsItemTemplate let-match=\"match\" let-query=\"query\">\r\n  <span [innerHtml]=\"highlight(match, query)\"></span>\r\n</ng-template>\r\n\r\n<!-- Bootstrap 3 options list template -->\r\n<ng-template #bs3Template>\r\n  <ul class=\"dropdown-menu\"\r\n      #ulElement\r\n      role=\"listbox\"\r\n      [style.overflow-y]=\"needScrollbar ? 'scroll': 'auto'\"\r\n      [style.height]=\"needScrollbar ? guiHeight: 'auto'\">\r\n    <ng-template ngFor let-match let-i=\"index\" [ngForOf]=\"matches\">\r\n      <li #liElements *ngIf=\"match.isHeader()\" class=\"dropdown-header\">{{ match }}</li>\r\n      <li #liElements\r\n          *ngIf=\"!match.isHeader()\"\r\n          [id]=\"popupId + '-' + i\"\r\n          role=\"option\"\r\n          [@typeaheadAnimation]=\"animationState\"\r\n          [class.active]=\"isActive(match)\"\r\n          (mouseenter)=\"selectActive(match)\">\r\n\r\n        <a href=\"#\" (click)=\"selectMatch(match, $event)\" tabindex=\"-1\">\r\n          <ng-template [ngTemplateOutlet]=\"itemTemplate || bsItemTemplate\"\r\n                       [ngTemplateOutletContext]=\"{item: match.item, index: i, match: match, query: query}\">\r\n          </ng-template>\r\n        </a>\r\n      </li>\r\n    </ng-template>\r\n  </ul>\r\n</ng-template>\r\n\r\n<!-- Bootstrap 4 options list template -->\r\n<ng-template #bs4Template>\r\n  <ng-template ngFor let-match let-i=\"index\" [ngForOf]=\"matches\">\r\n    <h6 *ngIf=\"match.isHeader()\" class=\"dropdown-header\">{{ match }}</h6>\r\n    <ng-template [ngIf]=\"!match.isHeader()\">\r\n      <button #liElements\r\n              [id]=\"popupId + '-' + i\"\r\n              role=\"option\"\r\n              [@typeaheadAnimation]=\"animationState\"\r\n              class=\"dropdown-item\"\r\n              (click)=\"selectMatch(match, $event)\"\r\n              (mouseenter)=\"selectActive(match)\"\r\n              [class.active]=\"isActive(match)\">\r\n        <ng-template [ngTemplateOutlet]=\"itemTemplate || bsItemTemplate\"\r\n                     [ngTemplateOutletContext]=\"{item: match.item, index: i, match: match, query: query}\">\r\n        </ng-template>\r\n      </button>\r\n    </ng-template>\r\n  </ng-template>\r\n</ng-template>\r\n","import { Injectable } from '@angular/core';\r\n\r\n/** Default values provider for typeahead */\r\n@Injectable({ providedIn: 'root' })\r\nexport class TypeaheadConfig {\r\n  /** sets use adaptive position */\r\n  adaptivePosition = false;\r\n  /** turn on/off animation */\r\n  isAnimated = false;\r\n  /** used to hide results on blur */\r\n  hideResultsOnBlur = true;\r\n  /** if true, typeahead will cancel async request on blur */\r\n  cancelRequestOnFocusLost = false;\r\n  /** used to choose the first item in typeahead container */\r\n  selectFirstItem = true;\r\n  /** used to active/inactive the first item in typeahead container */\r\n  isFirstItemActive = true;\r\n  /** used to choose set minimal no of characters that needs to\r\n   * be entered before typeahead kicks-in\r\n   */\r\n  minLength = 1;\r\n  /**\r\n   * used to choose item on blur event\r\n   */\r\n  selectItemOnBlur = false;\r\n}\r\n","import {\r\n  ChangeDetectorRef,\r\n  Directive,\r\n  ElementRef,\r\n  EventEmitter,\r\n  HostListener,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  Renderer2,\r\n  TemplateRef,\r\n  ViewContainerRef\r\n} from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { ComponentLoader, ComponentLoaderFactory } from '@period-year-norway/ngx-bootstrap/component-loader';\r\n\r\nimport { EMPTY, from, isObservable, Observable, Subscription } from 'rxjs';\r\nimport { debounceTime, filter, mergeMap, switchMap, tap, toArray } from 'rxjs/operators';\r\nimport { TypeaheadOptionItemContext, TypeaheadOptionListContext } from './models';\r\n\r\nimport { TypeaheadContainerComponent } from './typeahead-container.component';\r\nimport { TypeaheadMatch } from './typeahead-match.class';\r\nimport { TypeaheadOrder } from './typeahead-order.class';\r\nimport { getValueFromObject, latinize, tokenize } from './typeahead-utils';\r\nimport { TypeaheadConfig } from './typeahead.config';\r\n\r\n// eslint-disable-next-line\r\ntype TypeaheadOption = string | Record<string | number, any>;\r\ntype TypeaheadOptionArr = TypeaheadOption[] | Observable<TypeaheadOption>;\r\n\r\n@Directive({\r\n  selector: '[typeahead]',\r\n  exportAs: 'bs-typeahead',\r\n  host: {\r\n    '[attr.aria-activedescendant]': 'activeDescendant',\r\n    '[attr.aria-owns]': 'isOpen ? this._container?.popupId : null',\r\n    '[attr.aria-expanded]': 'isOpen',\r\n    '[attr.aria-autocomplete]': 'list'\r\n  },\r\n  standalone: false\r\n})\r\nexport class TypeaheadDirective implements OnInit, OnDestroy {\r\n  /** options source, can be Array of strings, objects or\r\n   * an Observable for external matching process\r\n   */\r\n  @Input() typeahead?: TypeaheadOptionArr;\r\n  /** minimal no of characters that needs to be entered before\r\n   * typeahead kicks-in. When set to 0, typeahead shows on focus with full\r\n   * list of options (limited as normal by typeaheadOptionsLimit)\r\n   */\r\n  @Input() typeaheadMinLength = 1;\r\n  /** sets use adaptive position */\r\n  @Input() adaptivePosition = false;\r\n  /** turn on/off animation */\r\n  @Input() isAnimated = false;\r\n  /** minimal wait time after last character typed before typeahead kicks-in */\r\n  @Input() typeaheadWaitMs = 0;\r\n  /** maximum length of options items list. The default value is 20 */\r\n  @Input() typeaheadOptionsLimit?: number;\r\n  /** when options source is an array of objects, the name of field\r\n   * that contains the options value, we use array item as option in case\r\n   * of this field is missing. Supports nested properties and methods.\r\n   */\r\n  @Input() typeaheadOptionField?: string;\r\n  /** when options source is an array of objects, the name of field that\r\n   * contains the group value, matches are grouped by this field when set.\r\n   */\r\n  @Input() typeaheadGroupField?: string;\r\n  /** Used to specify a custom order of matches. When options source is an array of objects\r\n   * a field for sorting has to be set up. In case of options source is an array of string,\r\n   * a field for sorting is absent. The ordering direction could be changed to ascending or descending.\r\n   */\r\n  @Input() typeaheadOrderBy?: TypeaheadOrder;\r\n  /** should be used only in case of typeahead attribute is Observable of array.\r\n   * If true - loading of options will be async, otherwise - sync.\r\n   * true make sense if options array is large.\r\n   */\r\n  @Input() typeaheadAsync?: boolean;\r\n  /** match latin symbols.\r\n   * If true the word súper would match super and vice versa.\r\n   */\r\n  @Input() typeaheadLatinize = true;\r\n  /** Can be use to search words by inserting a single white space between each characters\r\n   *  for example 'C a l i f o r n i a' will match 'California'.\r\n   */\r\n  @Input() typeaheadSingleWords = true;\r\n  /** should be used only in case typeaheadSingleWords attribute is true.\r\n   * Sets the word delimiter to break words. Defaults to space.\r\n   */\r\n  @Input() typeaheadWordDelimiters = ' ';\r\n  /** Can be used to conduct a search of multiple items and have suggestion not for the\r\n   * whole value of the input but for the value that comes after a delimiter provided via\r\n   * typeaheadMultipleSearchDelimiters attribute. This option can only be used together with\r\n   * typeaheadSingleWords option if typeaheadWordDelimiters and typeaheadPhraseDelimiters\r\n   * are different from typeaheadMultipleSearchDelimiters to avoid conflict in determining\r\n   * when to delimit multiple searches and when a single word.\r\n   */\r\n  @Input() typeaheadMultipleSearch?: boolean;\r\n  /** should be used only in case typeaheadMultipleSearch attribute is true.\r\n   * Sets the multiple search delimiter to know when to start a new search. Defaults to comma.\r\n   * If space needs to be used, then explicitly set typeaheadWordDelimiters to something else than space\r\n   * because space is used by default OR set typeaheadSingleWords attribute to false if you don't need\r\n   * to use it together with multiple search.\r\n   */\r\n  @Input() typeaheadMultipleSearchDelimiters = ',';\r\n  /** should be used only in case typeaheadSingleWords attribute is true.\r\n   * Sets the word delimiter to match exact phrase.\r\n   * Defaults to simple and double quotes.\r\n   */\r\n  @Input() typeaheadPhraseDelimiters = '\\'\"';\r\n  /** used to specify a custom item template.\r\n   * Template variables exposed are called item and index;\r\n   */\r\n  @Input() typeaheadItemTemplate?: TemplateRef<TypeaheadOptionItemContext>;\r\n  /** used to specify a custom options list template.\r\n   * Template variables: matches, itemTemplate, query\r\n   */\r\n  @Input() optionsListTemplate?: TemplateRef<TypeaheadOptionListContext>;\r\n  /** specifies if typeahead is scrollable  */\r\n  @Input() typeaheadScrollable = false;\r\n  /** specifies number of options to show in scroll view  */\r\n  @Input() typeaheadOptionsInScrollableView = 5;\r\n  /** used to hide result on blur */\r\n  @Input() typeaheadHideResultsOnBlur?: boolean;\r\n  /** fired when an options list was opened and the user clicked Tab\r\n   * If a value equal true, it will be chosen first or active item in the list\r\n   * If value equal false, it will be chosen an active item in the list or nothing\r\n   */\r\n  @Input() typeaheadSelectFirstItem = true;\r\n  /** makes active first item in a list */\r\n  @Input() typeaheadIsFirstItemActive = true;\r\n  /** fired when 'busy' state of this component was changed,\r\n   * fired on async mode only, returns boolean\r\n   */\r\n  @Output() typeaheadLoading = new EventEmitter<boolean>();\r\n  /** fired on every key event and returns true\r\n   * in case of matches are not detected\r\n   */\r\n  @Output() typeaheadNoResults = new EventEmitter<boolean>();\r\n  /** fired when option was selected, return object with data of this option. */\r\n  @Output() typeaheadOnSelect = new EventEmitter<TypeaheadMatch>();\r\n  /** fired when option was previewed, return object with data of this option. */\r\n  @Output() typeaheadOnPreview = new EventEmitter<TypeaheadMatch>();\r\n  /** fired when blur event occurs. returns the active item */\r\n  @Output() typeaheadOnBlur = new EventEmitter<TypeaheadMatch>();\r\n\r\n  /**\r\n   * A selector specifying the element the typeahead should be appended to.\r\n   */\r\n  @Input() container?: string;\r\n\r\n  /** This attribute indicates that the dropdown should be opened upwards */\r\n  @Input() dropup = false;\r\n\r\n  // not yet implemented\r\n  /** if false restrict model values to the ones selected from the popup only will be provided */\r\n  // @Input() protected typeaheadEditable:boolean;\r\n  /** if false the first match automatically will not be focused as you type */\r\n  // @Input() protected typeaheadFocusFirst:boolean;\r\n  /** format the ng-model result after selection */\r\n  // @Input() protected typeaheadInputFormatter:any;\r\n  /** if true automatically select an item when there is one option that exactly matches the user input */\r\n  // @Input() protected typeaheadSelectOnExact:boolean;\r\n  /**  if true select the currently highlighted match on blur */\r\n  // @Input() protected typeaheadSelectOnBlur:boolean;\r\n  /**  if false don't focus the input element the typeahead directive is associated with on selection */\r\n  // @Input() protected typeaheadFocusOnSelect:boolean;\r\n\r\n  activeDescendant?: string;\r\n  isOpen = false;\r\n  list = 'list';\r\n  _container?: TypeaheadContainerComponent;\r\n  isActiveItemChanged = false;\r\n  isFocused = false;\r\n  cancelRequestOnFocusLost = false;\r\n  selectItemOnBlur = false;\r\n  protected keyUpEventEmitter = new EventEmitter<string>();\r\n  protected placement = 'bottom left';\r\n  protected _matches: TypeaheadMatch[] = [];\r\n\r\n  private _typeahead: ComponentLoader<TypeaheadContainerComponent>;\r\n  private _subscriptions: Subscription[] = [];\r\n  private _allEnteredValue?: string;\r\n  private _outsideClickListener: () => void = () => void 0;\r\n\r\n  constructor(\r\n    cis: ComponentLoaderFactory,\r\n    config: TypeaheadConfig,\r\n    private changeDetection: ChangeDetectorRef,\r\n    private element: ElementRef,\r\n    private ngControl: NgControl,\r\n    private renderer: Renderer2,\r\n    viewContainerRef: ViewContainerRef\r\n  ) {\r\n    this._typeahead = cis\r\n      .createLoader<TypeaheadContainerComponent>(element, viewContainerRef, renderer)\r\n      .provide({ provide: TypeaheadConfig, useValue: config });\r\n\r\n    Object.assign(this, {\r\n      typeaheadHideResultsOnBlur: config.hideResultsOnBlur,\r\n      cancelRequestOnFocusLost: config.cancelRequestOnFocusLost,\r\n      typeaheadSelectFirstItem: config.selectFirstItem,\r\n      typeaheadIsFirstItemActive: config.isFirstItemActive,\r\n      typeaheadMinLength: config.minLength,\r\n      adaptivePosition: config.adaptivePosition,\r\n      isAnimated: config.isAnimated,\r\n      selectItemOnBlur: config.selectItemOnBlur\r\n    });\r\n  }\r\n\r\n  get matches(): TypeaheadMatch[] {\r\n    return this._matches;\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.typeaheadOptionsLimit = this.typeaheadOptionsLimit || 20;\r\n\r\n    this.typeaheadMinLength = this.typeaheadMinLength === void 0 ? 1 : this.typeaheadMinLength;\r\n\r\n    // async should be false in case of array\r\n    if (this.typeaheadAsync === undefined && !isObservable(this.typeahead)) {\r\n      this.typeaheadAsync = false;\r\n    }\r\n\r\n    if (isObservable(this.typeahead)) {\r\n      this.typeaheadAsync = true;\r\n    }\r\n\r\n    if (this.typeaheadAsync) {\r\n      this.asyncActions();\r\n    } else {\r\n      this.syncActions();\r\n    }\r\n\r\n    this.checkDelimitersConflict();\r\n  }\r\n\r\n  @HostListener('input', ['$event'])\r\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n  onInput(e: any): void {\r\n    // For `<input>`s, use the `value` property. For others that don't have a\r\n    // `value` (such as `<span contenteditable=\"true\">`), use either\r\n    // `textContent` or `innerText` (depending on which one is supported, i.e.\r\n    // Firefox or IE).\r\n    const value =\r\n      e.target.value !== undefined\r\n        ? e.target.value\r\n        : e.target.textContent !== undefined\r\n          ? e.target.textContent\r\n          : e.target.innerText;\r\n\r\n    if (value != null && value.trim().length >= this.typeaheadMinLength) {\r\n      this.typeaheadLoading.emit(true);\r\n      this.keyUpEventEmitter.emit(e.target.value);\r\n    } else {\r\n      this.typeaheadLoading.emit(false);\r\n      this.typeaheadNoResults.emit(false);\r\n      this.hide();\r\n    }\r\n  }\r\n\r\n  @HostListener('keyup', ['$event'])\r\n  onChange(event: KeyboardEvent): void {\r\n    if (this._container) {\r\n      // esc\r\n      if (event.keyCode === 27 || event.key === 'Escape') {\r\n        this.hide();\r\n\r\n        return;\r\n      }\r\n\r\n      // up\r\n      if (event.keyCode === 38 || event.key === 'ArrowUp') {\r\n        this.isActiveItemChanged = true;\r\n        this._container.prevActiveMatch();\r\n\r\n        return;\r\n      }\r\n\r\n      // down\r\n      if (event.keyCode === 40 || event.key === 'ArrowDown') {\r\n        this.isActiveItemChanged = true;\r\n        this._container.nextActiveMatch();\r\n\r\n        return;\r\n      }\r\n\r\n      // enter\r\n      if (event.keyCode === 13 || event.key === 'Enter') {\r\n        this._container.selectActiveMatch();\r\n\r\n        return;\r\n      }\r\n    }\r\n  }\r\n\r\n  @HostListener('click')\r\n  @HostListener('focus')\r\n  onFocus(): void {\r\n    this.isFocused = true;\r\n    // add setTimeout to fix issue #5251\r\n    // to get and emit updated value if it's changed on focus\r\n    setTimeout(() => {\r\n      if (this.typeaheadMinLength === 0) {\r\n        this.typeaheadLoading.emit(true);\r\n        this.keyUpEventEmitter.emit(this.element.nativeElement.value || '');\r\n      }\r\n    }, 0);\r\n  }\r\n\r\n  @HostListener('blur')\r\n  onBlur(): void {\r\n    this.isFocused = false;\r\n    if (this._container && !this._container.isFocused) {\r\n      this.typeaheadOnBlur.emit(this._container.active);\r\n    }\r\n\r\n    if (!this.container && this._matches?.length === 0) {\r\n      this.typeaheadOnBlur.emit(\r\n        new TypeaheadMatch(this.element.nativeElement.value, this.element.nativeElement.value, false)\r\n      );\r\n    }\r\n  }\r\n\r\n  @HostListener('keydown', ['$event'])\r\n  onKeydown(event: KeyboardEvent): void {\r\n    // no container - no problems\r\n    if (!this._container) {\r\n      return;\r\n    }\r\n\r\n    if (event.keyCode === 9 || event.key === 'Tab') {\r\n      this.onBlur();\r\n    }\r\n\r\n    if (event.keyCode === 9 || event.key === 'Tab' || event.keyCode === 13 || event.key === 'Enter') {\r\n      event.preventDefault();\r\n      if (this.typeaheadSelectFirstItem) {\r\n        this._container.selectActiveMatch();\r\n\r\n        return;\r\n      }\r\n\r\n      if (!this.typeaheadSelectFirstItem) {\r\n        this._container.selectActiveMatch(this.isActiveItemChanged);\r\n        this.isActiveItemChanged = false;\r\n        this.hide();\r\n      }\r\n    }\r\n  }\r\n\r\n  changeModel(match?: TypeaheadMatch): void {\r\n    if (!match) {\r\n      return;\r\n    }\r\n    let valueStr: string;\r\n    if (this.typeaheadMultipleSearch && this._allEnteredValue) {\r\n      const tokens = this._allEnteredValue.split(new RegExp(`([${this.typeaheadMultipleSearchDelimiters}]+)`));\r\n      this._allEnteredValue = tokens\r\n        .slice(0, tokens.length - 1)\r\n        .concat(match.value)\r\n        .join('');\r\n      valueStr = this._allEnteredValue;\r\n    } else {\r\n      valueStr = match.value;\r\n    }\r\n    this.ngControl.viewToModelUpdate(valueStr);\r\n    this.ngControl.control?.setValue(valueStr);\r\n    this.changeDetection.markForCheck();\r\n    this.hide();\r\n  }\r\n\r\n  show(): void {\r\n    this._typeahead\r\n      .attach(TypeaheadContainerComponent)\r\n      .to(this.container)\r\n      .position({ attachment: `${this.dropup ? 'top' : 'bottom'} left` })\r\n      .show({\r\n        typeaheadRef: this,\r\n        placement: this.placement,\r\n        animation: false,\r\n        dropup: this.dropup\r\n      });\r\n\r\n    this._outsideClickListener = this.renderer.listen('document', 'click', (event: MouseEvent) => {\r\n      if (this.typeaheadMinLength === 0 && this.element.nativeElement.contains(event.target)) {\r\n        return;\r\n      }\r\n      if (!this.typeaheadHideResultsOnBlur || this.element.nativeElement.contains(event.target)) {\r\n        return;\r\n      }\r\n      this.onOutsideClick();\r\n    });\r\n\r\n    if (!this._typeahead.instance || !this.ngControl.control) {\r\n      return;\r\n    }\r\n\r\n    this._container = this._typeahead.instance;\r\n    this._container.parent = this;\r\n    // This improves the speed as it won't have to be done for each list item\r\n\r\n    const normalizedQuery = (\r\n      this.typeaheadLatinize ? latinize(this.ngControl.control.value) : this.ngControl.control.value\r\n    )\r\n      .toString()\r\n      .toLowerCase();\r\n\r\n    this._container.query = this.tokenizeQuery(normalizedQuery);\r\n\r\n    this._container.matches = this._matches;\r\n    this.element.nativeElement.focus();\r\n\r\n    this._container.activeChangeEvent.subscribe((activeId: string) => {\r\n      this.activeDescendant = activeId;\r\n      this.changeDetection.markForCheck();\r\n    });\r\n    this.isOpen = true;\r\n  }\r\n\r\n  hide(): void {\r\n    if (this._typeahead.isShown) {\r\n      this._typeahead.hide();\r\n      this._outsideClickListener();\r\n      this._container = void 0;\r\n      this.isOpen = false;\r\n      this.changeDetection.markForCheck();\r\n    }\r\n    this.typeaheadOnPreview.emit();\r\n  }\r\n\r\n  onOutsideClick(): void {\r\n    if (this._container && !this._container.isFocused) {\r\n      this.hide();\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    // clean up subscriptions\r\n    for (const sub of this._subscriptions) {\r\n      sub.unsubscribe();\r\n    }\r\n    this._typeahead.dispose();\r\n  }\r\n\r\n  protected asyncActions(): void {\r\n    this._subscriptions.push(\r\n      this.keyUpEventEmitter\r\n        .pipe(\r\n          debounceTime<string>(this.typeaheadWaitMs),\r\n          tap((value) => (this._allEnteredValue = value)),\r\n          switchMap(() => {\r\n            if (!this.typeahead) {\r\n              return EMPTY;\r\n            }\r\n            return this.typeahead;\r\n          })\r\n        )\r\n        .subscribe((matches) => {\r\n          this.finalizeAsyncCall(matches);\r\n        })\r\n    );\r\n  }\r\n\r\n  protected syncActions(): void {\r\n    this._subscriptions.push(\r\n      this.keyUpEventEmitter\r\n        .pipe(\r\n          debounceTime<string>(this.typeaheadWaitMs),\r\n          mergeMap((value: string) => {\r\n            this._allEnteredValue = value;\r\n            const normalizedQuery = this.normalizeQuery(value);\r\n\r\n            if (!this.typeahead) {\r\n              return EMPTY;\r\n            }\r\n\r\n            const typeahead = isObservable(this.typeahead) ? this.typeahead : from(this.typeahead);\r\n\r\n            return typeahead.pipe(\r\n              filter((option: TypeaheadOption) => {\r\n                return !!option && this.testMatch(this.normalizeOption(option), normalizedQuery);\r\n              }),\r\n              toArray()\r\n            );\r\n          })\r\n        )\r\n        .subscribe((matches: TypeaheadOption[]) => {\r\n          this.finalizeAsyncCall(matches);\r\n        })\r\n    );\r\n  }\r\n\r\n  protected normalizeOption(option: TypeaheadOption): string {\r\n    const optionValue: string = getValueFromObject(option, this.typeaheadOptionField);\r\n    const normalizedOption = this.typeaheadLatinize ? latinize(optionValue) : optionValue;\r\n\r\n    return normalizedOption.toLowerCase();\r\n  }\r\n\r\n  protected tokenizeQuery(currentQuery: string | string[]): string | string[] {\r\n    let query = currentQuery;\r\n    if (this.typeaheadMultipleSearch && this.typeaheadSingleWords) {\r\n      if (\r\n        !this.haveCommonCharacters(\r\n          `${this.typeaheadPhraseDelimiters}${this.typeaheadWordDelimiters}`,\r\n          this.typeaheadMultipleSearchDelimiters\r\n        )\r\n      ) {\r\n        // single words and multiple search delimiters are different, can be used together\r\n        query = tokenize(\r\n          query as string,\r\n          this.typeaheadWordDelimiters,\r\n          this.typeaheadPhraseDelimiters,\r\n          this.typeaheadMultipleSearchDelimiters\r\n        );\r\n      }\r\n    } else if (this.typeaheadSingleWords) {\r\n      query = tokenize(query as string, this.typeaheadWordDelimiters, this.typeaheadPhraseDelimiters);\r\n    } else {\r\n      // multiple searches\r\n      query = tokenize(query as string, void 0, void 0, this.typeaheadMultipleSearchDelimiters);\r\n    }\r\n\r\n    return query;\r\n  }\r\n\r\n  protected normalizeQuery(value: string): string | string[] {\r\n    // If singleWords, break model here to not be doing extra work on each iteration\r\n    let normalizedQuery: string | string[] = (this.typeaheadLatinize ? latinize(value) : value)\r\n      .toString()\r\n      .toLowerCase();\r\n\r\n    normalizedQuery = this.tokenizeQuery(normalizedQuery);\r\n\r\n    return normalizedQuery;\r\n  }\r\n\r\n  protected testMatch(match: string, test: string[] | string): boolean {\r\n    let spaceLength: number;\r\n\r\n    if (typeof test === 'object') {\r\n      spaceLength = test.length;\r\n      for (let i = 0; i < spaceLength; i += 1) {\r\n        if (test[i].length > 0 && match.indexOf(test[i]) < 0) {\r\n          return false;\r\n        }\r\n      }\r\n\r\n      return true;\r\n    }\r\n\r\n    return match.indexOf(test) >= 0;\r\n  }\r\n\r\n  protected finalizeAsyncCall(matches?: TypeaheadOption | TypeaheadOption[]): void {\r\n    this.prepareMatches(matches || []);\r\n\r\n    this.typeaheadLoading.emit(false);\r\n    this.typeaheadNoResults.emit(!this.hasMatches());\r\n\r\n    if (!this.hasMatches()) {\r\n      this.hide();\r\n\r\n      return;\r\n    }\r\n\r\n    if (!this.isFocused && this.cancelRequestOnFocusLost) {\r\n      return;\r\n    }\r\n\r\n    if (this._container && this.ngControl.control) {\r\n      // fix: remove usage of ngControl internals\r\n      const _controlValue =\r\n        (this.typeaheadLatinize ? latinize(this.ngControl.control.value) : this.ngControl.control.value) || '';\r\n\r\n      // This improves the speed as it won't have to be done for each list item\r\n      const normalizedQuery = _controlValue.toString().toLowerCase();\r\n\r\n      this._container.query = this.tokenizeQuery(normalizedQuery);\r\n      this._container.matches = this._matches;\r\n    } else {\r\n      this.show();\r\n    }\r\n  }\r\n\r\n  protected prepareMatches(options: TypeaheadOption | TypeaheadOption[]): void {\r\n    const limited = options.slice(0, this.typeaheadOptionsLimit);\r\n    const sorted = !this.typeaheadOrderBy ? limited : this.orderMatches(limited);\r\n\r\n    if (this.typeaheadGroupField) {\r\n      let matches: TypeaheadMatch[] = [];\r\n\r\n      // extract all group names\r\n      const groups = sorted\r\n        .map((option: TypeaheadOption) => getValueFromObject(option, this.typeaheadGroupField))\r\n        .filter((v: string, i: number, a: string[]) => a.indexOf(v) === i);\r\n\r\n      groups.forEach((group: string) => {\r\n        // add group header to array of matches\r\n        matches.push(new TypeaheadMatch(group, group, true));\r\n\r\n        // add each item of group to array of matches\r\n        matches = matches.concat(\r\n          sorted\r\n            .filter((option: TypeaheadOption) => getValueFromObject(option, this.typeaheadGroupField) === group)\r\n            .map(\r\n              (option: TypeaheadOption) =>\r\n                new TypeaheadMatch(option, getValueFromObject(option, this.typeaheadOptionField))\r\n            )\r\n        );\r\n      });\r\n\r\n      this._matches = matches;\r\n    } else {\r\n      this._matches = sorted.map(\r\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n        (option: any) => new TypeaheadMatch(option, getValueFromObject(option, this.typeaheadOptionField))\r\n      );\r\n    }\r\n  }\r\n\r\n  protected orderMatches(options: TypeaheadOption[]): TypeaheadOption[] {\r\n    if (!options.length) {\r\n      return options;\r\n    }\r\n\r\n    if (\r\n      this.typeaheadOrderBy !== null &&\r\n      this.typeaheadOrderBy !== undefined &&\r\n      typeof this.typeaheadOrderBy === 'object' &&\r\n      Object.keys(this.typeaheadOrderBy).length === 0\r\n    ) {\r\n      console.error('Field and direction properties for typeaheadOrderBy have to be set according to documentation!');\r\n\r\n      return options;\r\n    }\r\n\r\n    const { field, direction } = this.typeaheadOrderBy || {};\r\n\r\n    if (!direction || !(direction === 'asc' || direction === 'desc')) {\r\n      console.error('typeaheadOrderBy direction has to equal \"asc\" or \"desc\". Please follow the documentation.');\r\n\r\n      return options;\r\n    }\r\n\r\n    if (typeof options[0] === 'string') {\r\n      return direction === 'asc' ? options.sort() : options.sort().reverse();\r\n    }\r\n\r\n    if (!field || typeof field !== 'string') {\r\n      console.error('typeaheadOrderBy field has to set according to the documentation.');\r\n\r\n      return options;\r\n    }\r\n\r\n    return options.sort((a: TypeaheadOption, b: TypeaheadOption) => {\r\n      const stringA = getValueFromObject(a, field);\r\n      const stringB = getValueFromObject(b, field);\r\n\r\n      if (stringA < stringB) {\r\n        return direction === 'asc' ? -1 : 1;\r\n      }\r\n\r\n      if (stringA > stringB) {\r\n        return direction === 'asc' ? 1 : -1;\r\n      }\r\n\r\n      return 0;\r\n    });\r\n  }\r\n\r\n  protected hasMatches(): boolean {\r\n    return this._matches.length > 0;\r\n  }\r\n\r\n  protected checkDelimitersConflict(): void {\r\n    if (\r\n      this.typeaheadMultipleSearch &&\r\n      this.typeaheadSingleWords &&\r\n      this.haveCommonCharacters(\r\n        `${this.typeaheadPhraseDelimiters}${this.typeaheadWordDelimiters}`,\r\n        this.typeaheadMultipleSearchDelimiters\r\n      )\r\n    ) {\r\n      throw new Error(`Delimiters used in typeaheadMultipleSearchDelimiters must be different\r\n          from delimiters used in typeaheadWordDelimiters (current value: ${this.typeaheadWordDelimiters}) and\r\n          typeaheadPhraseDelimiters (current value: ${this.typeaheadPhraseDelimiters}).\r\n          Please refer to the documentation`);\r\n    }\r\n  }\r\n\r\n  protected haveCommonCharacters(str1: string, str2: string) {\r\n    for (let i = 0; i < str1.length; i++) {\r\n      if (str1.charAt(i).indexOf(str2) > -1) {\r\n        return true;\r\n      }\r\n    }\r\n\r\n    return false;\r\n  }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\n\r\nimport { TypeaheadContainerComponent } from './typeahead-container.component';\r\nimport { TypeaheadDirective } from './typeahead.directive';\r\nimport { ComponentLoaderFactory } from '@period-year-norway/ngx-bootstrap/component-loader';\r\nimport { PositioningService } from '@period-year-norway/ngx-bootstrap/positioning';\r\n\r\n@NgModule({\r\n    imports: [CommonModule],\r\n    declarations: [TypeaheadContainerComponent, TypeaheadDirective],\r\n    exports: [TypeaheadContainerComponent, TypeaheadDirective]\r\n})\r\nexport class TypeaheadModule {\r\n  static forRoot(): ModuleWithProviders<TypeaheadModule> {\r\n    return {\r\n      ngModule: TypeaheadModule,\r\n      providers: [ComponentLoaderFactory, PositioningService]\r\n    };\r\n  }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.TypeaheadConfig"],"mappings":";;;;;;;;;;;;;;AAAO,MAAM,QAAQ,GAA8B;AAC/C,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,GAAG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"}