ngx-mat-intl-tel-input
Version:
An Angular Material package for entering and validating international telephone numbers. It adds a flag dropdown to any input, detects the user's country, displays a relevant placeholder and provides formatting/validation methods.
1 lines • 76.7 kB
Source Map (JSON)
{"version":3,"file":"ngx-mat-intl-tel-input.mjs","sources":["../../../projects/ngx-mat-intl-tel-input/src/lib/data/country-code.ts","../../../projects/ngx-mat-intl-tel-input/src/lib/ngx-mat-intl-tel-input.validator.ts","../../../projects/ngx-mat-intl-tel-input/src/lib/search.pipe.ts","../../../projects/ngx-mat-intl-tel-input/src/lib/ngx-mat-intl-tel-input.component.ts","../../../projects/ngx-mat-intl-tel-input/src/lib/ngx-mat-intl-tel-input.component.html","../../../projects/ngx-mat-intl-tel-input/src/public-api.ts","../../../projects/ngx-mat-intl-tel-input/src/ngx-mat-intl-tel-input.ts"],"sourcesContent":["/* eslint-disable */\r\n\r\nimport { Injectable } from '@angular/core';\r\n@Injectable()\r\nexport class CountryCode {\r\n public allCountries = [\r\n ['Afghanistan (افغانستان)', 'af', '93'],\r\n ['Albania (Shqipëri)', 'al', '355'],\r\n ['Algeria (الجزائر)', 'dz', '213'],\r\n ['American Samoa', 'as', '1684'],\r\n ['Andorra', 'ad', '376'],\r\n ['Angola', 'ao', '244'],\r\n ['Anguilla', 'ai', '1264'],\r\n ['Antigua and Barbuda', 'ag', '1268'],\r\n ['Argentina', 'ar', '54'],\r\n ['Armenia (Հայաստան)', 'am', '374'],\r\n ['Aruba', 'aw', '297'],\r\n ['Australia', 'au', '61', 0],\r\n ['Austria (Österreich)', 'at', '43'],\r\n ['Azerbaijan (Azərbaycan)', 'az', '994'],\r\n ['Bahamas', 'bs', '1242'],\r\n ['Bahrain (البحرين)', 'bh', '973'],\r\n ['Bangladesh (বাংলাদেশ)', 'bd', '880'],\r\n ['Barbados', 'bb', '1246'],\r\n ['Belarus (Беларусь)', 'by', '375'],\r\n ['Belgium (België)', 'be', '32'],\r\n ['Belize', 'bz', '501'],\r\n ['Benin (Bénin)', 'bj', '229'],\r\n ['Bermuda', 'bm', '1441'],\r\n ['Bhutan (འབྲུག)', 'bt', '975'],\r\n ['Bolivia', 'bo', '591'],\r\n ['Bosnia and Herzegovina (Босна и Херцеговина)', 'ba', '387'],\r\n ['Botswana', 'bw', '267'],\r\n ['Brazil (Brasil)', 'br', '55'],\r\n ['British Indian Ocean Territory', 'io', '246'],\r\n ['British Virgin Islands', 'vg', '1284'],\r\n ['Brunei', 'bn', '673'],\r\n ['Bulgaria (България)', 'bg', '359'],\r\n ['Burkina Faso', 'bf', '226'],\r\n ['Burundi (Uburundi)', 'bi', '257'],\r\n ['Cambodia (កម្ពុជា)', 'kh', '855'],\r\n ['Cameroon (Cameroun)', 'cm', '237'],\r\n ['Canada', 'ca', '1', 1, ['204', '226', '236', '249', '250', '289', '306', '343', '365', '387', '403', '416', '418', '431', '437',\r\n '438', '450', '506', '514', '519', '548', '579', '581', '587', '604', '613', '639', '647', '672', '705', '709', '742',\r\n '778', '780', '782', '807', '819', '825', '867', '873', '902', '905']],\r\n ['Cape Verde (Kabu Verdi)', 'cv', '238'],\r\n ['Caribbean Netherlands', 'bq', '599', 1],\r\n ['Cayman Islands', 'ky', '1345'],\r\n ['Central African Republic (République centrafricaine)', 'cf', '236'],\r\n ['Chad (Tchad)', 'td', '235'],\r\n ['Chile', 'cl', '56'],\r\n ['China (中国)', 'cn', '86'],\r\n ['Christmas Island', 'cx', '61', 2],\r\n ['Cocos (Keeling) Islands', 'cc', '61', 1],\r\n ['Colombia', 'co', '57'],\r\n ['Comoros (جزر القمر)', 'km', '269'],\r\n ['Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)', 'cd', '243'],\r\n ['Congo (Republic) (Congo-Brazzaville)', 'cg', '242'],\r\n ['Cook Islands', 'ck', '682'],\r\n ['Costa Rica', 'cr', '506'],\r\n ['Côte d’Ivoire', 'ci', '225'],\r\n ['Croatia (Hrvatska)', 'hr', '385'],\r\n ['Cuba', 'cu', '53'],\r\n ['Curaçao', 'cw', '599', 0],\r\n ['Cyprus (Κύπρος)', 'cy', '357'],\r\n ['Czech Republic (Česká republika)', 'cz', '420'],\r\n ['Denmark (Danmark)', 'dk', '45'],\r\n ['Djibouti', 'dj', '253'],\r\n ['Dominica', 'dm', '1767'],\r\n ['Dominican Republic (República Dominicana)', 'do', '1', 2, ['809', '829', '849']], ['Ecuador', 'ec', '593'],\r\n ['Egypt (مصر)', 'eg', '20'],\r\n ['El Salvador', 'sv', '503'],\r\n ['Equatorial Guinea (Guinea Ecuatorial)', 'gq', '240'],\r\n ['Eritrea', 'er', '291'],\r\n ['Estonia (Eesti)', 'ee', '372'],\r\n ['Ethiopia', 'et', '251'],\r\n ['Falkland Islands (Islas Malvinas)', 'fk', '500'],\r\n ['Faroe Islands (Føroyar)', 'fo', '298'],\r\n ['Fiji', 'fj', '679'],\r\n ['Finland (Suomi)', 'fi', '358', 0],\r\n ['France', 'fr', '33'],\r\n ['French Guiana (Guyane française)', 'gf', '594'],\r\n ['French Polynesia (Polynésie française)', 'pf', '689'],\r\n ['Gabon', 'ga', '241'],\r\n ['Gambia', 'gm', '220'],\r\n ['Georgia (საქართველო)', 'ge', '995'],\r\n ['Germany (Deutschland)', 'de', '49'],\r\n ['Ghana (Gaana)', 'gh', '233'],\r\n ['Gibraltar', 'gi', '350'],\r\n ['Greece (Ελλάδα)', 'gr', '30'],\r\n ['Greenland (Kalaallit Nunaat)', 'gl', '299'],\r\n ['Grenada', 'gd', '1473'],\r\n ['Guadeloupe', 'gp', '590', 0],\r\n ['Guam', 'gu', '1671'],\r\n ['Guatemala', 'gt', '502'],\r\n ['Guernsey', 'gg', '44', 1],\r\n ['Guinea (Guinée)', 'gn', '224'],\r\n ['Guinea-Bissau (Guiné Bissau)', 'gw', '245'],\r\n ['Guyana', 'gy', '592'],\r\n ['Haiti', 'ht', '509'],\r\n ['Honduras', 'hn', '504'],\r\n ['Hong Kong (香港)', 'hk', '852'],\r\n ['Hungary (Magyarország)', 'hu', '36'],\r\n ['Iceland (Ísland)', 'is', '354'],\r\n ['India (भारत)', 'in', '91'],\r\n ['Indonesia', 'id', '62'],\r\n ['Iran (ایران)', 'ir', '98'],\r\n ['Iraq (العراق)', 'iq', '964'],\r\n ['Ireland', 'ie', '353'],\r\n ['Isle of Man', 'im', '44', 2],\r\n ['Israel (ישראל)', 'il', '972'],\r\n ['Italy (Italia)', 'it', '39', 0],\r\n ['Jamaica', 'jm', '1', 4, ['876', '658']], ['Japan (日本)', 'jp', '81'],\r\n ['Jersey', 'je', '44', 3],\r\n ['Jordan (الأردن)', 'jo', '962'],\r\n ['Kazakhstan (Казахстан)', 'kz', '7', 1],\r\n ['Kenya', 'ke', '254'],\r\n ['Kiribati', 'ki', '686'],\r\n ['Kosovo', 'xk', '383'],\r\n ['Kuwait (الكويت)', 'kw', '965'],\r\n ['Kyrgyzstan (Кыргызстан)', 'kg', '996'],\r\n ['Laos (ລາວ)', 'la', '856'],\r\n ['Latvia (Latvija)', 'lv', '371'],\r\n ['Lebanon (لبنان)', 'lb', '961'],\r\n ['Lesotho', 'ls', '266'],\r\n ['Liberia', 'lr', '231'],\r\n ['Libya (ليبيا)', 'ly', '218'],\r\n ['Liechtenstein', 'li', '423'],\r\n ['Lithuania (Lietuva)', 'lt', '370'],\r\n ['Luxembourg', 'lu', '352'],\r\n ['Macau (澳門)', 'mo', '853'],\r\n ['Macedonia (FYROM) (Македонија)', 'mk', '389'],\r\n ['Madagascar (Madagasikara)', 'mg', '261'],\r\n ['Malawi', 'mw', '265'],\r\n ['Malaysia', 'my', '60'],\r\n ['Maldives', 'mv', '960'],\r\n ['Mali', 'ml', '223'],\r\n ['Malta', 'mt', '356'],\r\n ['Marshall Islands', 'mh', '692'],\r\n ['Martinique', 'mq', '596'],\r\n ['Mauritania (موريتانيا)', 'mr', '222'],\r\n ['Mauritius (Moris)', 'mu', '230'],\r\n ['Mayotte', 'yt', '262', 1],\r\n ['Mexico (México)', 'mx', '52'],\r\n ['Micronesia', 'fm', '691'],\r\n ['Moldova (Republica Moldova)', 'md', '373'],\r\n ['Monaco', 'mc', '377'],\r\n ['Mongolia (Монгол)', 'mn', '976'],\r\n ['Montenegro (Crna Gora)', 'me', '382'],\r\n ['Montserrat', 'ms', '1664'],\r\n ['Morocco (المغرب)', 'ma', '212', 0],\r\n ['Mozambique (Moçambique)', 'mz', '258'],\r\n ['Myanmar (Burma) (မြန်မာ)', 'mm', '95'],\r\n ['Namibia (Namibië)', 'na', '264'],\r\n ['Nauru', 'nr', '674'],\r\n ['Nepal (नेपाल)', 'np', '977'],\r\n ['Netherlands (Nederland)', 'nl', '31'],\r\n ['New Caledonia (Nouvelle-Calédonie)', 'nc', '687'],\r\n ['New Zealand', 'nz', '64'],\r\n ['Nicaragua', 'ni', '505'],\r\n ['Niger (Nijar)', 'ne', '227'],\r\n ['Nigeria', 'ng', '234'],\r\n ['Niue', 'nu', '683'],\r\n ['Norfolk Island', 'nf', '672'],\r\n ['North Korea (조선 민주주의 인민 공화국)', 'kp', '850'],\r\n ['Northern Mariana Islands', 'mp', '1670'],\r\n ['Norway (Norge)', 'no', '47', 0],\r\n ['Oman (عُمان)', 'om', '968'],\r\n ['Pakistan (پاکستان)', 'pk', '92'],\r\n ['Palau', 'pw', '680'],\r\n ['Palestine (فلسطين)', 'ps', '970'],\r\n ['Panama (Panamá)', 'pa', '507'],\r\n ['Papua New Guinea', 'pg', '675'],\r\n ['Paraguay', 'py', '595'],\r\n ['Peru (Perú)', 'pe', '51'],\r\n ['Philippines', 'ph', '63'],\r\n ['Poland (Polska)', 'pl', '48'],\r\n ['Portugal', 'pt', '351'],\r\n ['Puerto Rico', 'pr', '1', 3, ['787', '939']], ['Qatar (قطر)', 'qa', '974'],\r\n ['Réunion (La Réunion)', 're', '262', 0],\r\n ['Romania (România)', 'ro', '40'],\r\n ['Russia (Россия)', 'ru', '7', 0],\r\n ['Rwanda', 'rw', '250'],\r\n ['Saint Barthélemy', 'bl', '590', 1],\r\n ['Saint Helena', 'sh', '290'],\r\n ['Saint Kitts and Nevis', 'kn', '1869'],\r\n ['Saint Lucia', 'lc', '1758'],\r\n ['Saint Martin (Saint-Martin (partie française))', 'mf', '590', 2],\r\n ['Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)', 'pm', '508'],\r\n ['Saint Vincent and the Grenadines', 'vc', '1784'],\r\n ['Samoa', 'ws', '685'],\r\n ['San Marino', 'sm', '378'],\r\n ['São Tomé and Príncipe (São Tomé e Príncipe)', 'st', '239'],\r\n ['Saudi Arabia (المملكة العربية السعودية)', 'sa', '966'],\r\n ['Senegal (Sénégal)', 'sn', '221'],\r\n ['Serbia (Србија)', 'rs', '381'],\r\n ['Seychelles', 'sc', '248'],\r\n ['Sierra Leone', 'sl', '232'],\r\n ['Singapore', 'sg', '65'],\r\n ['Sint Maarten', 'sx', '1721'],\r\n ['Slovakia (Slovensko)', 'sk', '421'],\r\n ['Slovenia (Slovenija)', 'si', '386'],\r\n ['Solomon Islands', 'sb', '677'],\r\n ['Somalia (Soomaaliya)', 'so', '252'],\r\n ['South Africa', 'za', '27'],\r\n ['South Korea (대한민국)', 'kr', '82'],\r\n ['South Sudan (جنوب السودان)', 'ss', '211'],\r\n ['Spain (España)', 'es', '34'],\r\n ['Sri Lanka (ශ්රී ලංකාව)', 'lk', '94'],\r\n ['Sudan (السودان)', 'sd', '249'],\r\n ['Suriname', 'sr', '597'],\r\n ['Svalbard and Jan Mayen', 'sj', '47', 1],\r\n ['Swaziland', 'sz', '268'],\r\n ['Sweden (Sverige)', 'se', '46'],\r\n ['Switzerland (Schweiz)', 'ch', '41'],\r\n ['Syria (سوريا)', 'sy', '963'],\r\n ['Taiwan (台灣)', 'tw', '886'],\r\n ['Tajikistan', 'tj', '992'],\r\n ['Tanzania', 'tz', '255'],\r\n ['Thailand (ไทย)', 'th', '66'],\r\n ['Timor-Leste', 'tl', '670'],\r\n ['Togo', 'tg', '228'],\r\n ['Tokelau', 'tk', '690'],\r\n ['Tonga', 'to', '676'],\r\n ['Trinidad and Tobago', 'tt', '1868'],\r\n ['Tunisia (تونس)', 'tn', '216'],\r\n ['Turkey (Türkiye)', 'tr', '90'],\r\n ['Turkmenistan', 'tm', '993'],\r\n ['Turks and Caicos Islands', 'tc', '1649'],\r\n ['Tuvalu', 'tv', '688'],\r\n ['U.S. Virgin Islands', 'vi', '1340'],\r\n ['Uganda', 'ug', '256'],\r\n ['Ukraine (Україна)', 'ua', '380'],\r\n ['United Arab Emirates (الإمارات العربية المتحدة)', 'ae', '971'],\r\n ['United Kingdom', 'gb', '44', 0],\r\n ['United States', 'us', '1', 0],\r\n ['Uruguay', 'uy', '598'],\r\n ['Uzbekistan (Oʻzbekiston)', 'uz', '998'],\r\n ['Vanuatu', 'vu', '678'],\r\n ['Vatican City (Città del Vaticano)', 'va', '39', 1],\r\n ['Venezuela', 've', '58'],\r\n ['Vietnam (Việt Nam)', 'vn', '84'],\r\n ['Wallis and Futuna (Wallis-et-Futuna)', 'wf', '681'],\r\n ['Western Sahara (الصحراء الغربية)', 'eh', '212', 1],\r\n ['Yemen (اليمن)', 'ye', '967'],\r\n ['Zambia', 'zm', '260'],\r\n ['Zimbabwe', 'zw', '263'],\r\n ['Åland Islands', 'ax', '358', 1]];\r\n}\r\n\r\nexport const Examples: any = {\r\n '001': '001',\r\n AC: '40123',\r\n AD: '312345',\r\n AE: '501234567',\r\n AF: '701234567',\r\n AG: '2684641234',\r\n AI: '2642351234',\r\n AL: '662123456',\r\n AM: '77123456',\r\n AO: '923123456',\r\n AR: '91123456789',\r\n AS: '6847331234',\r\n AT: '664123456',\r\n AU: '412345678',\r\n AW: '5601234',\r\n AX: '412345678',\r\n AZ: '401234567',\r\n BA: '61123456',\r\n BB: '2462501234',\r\n BD: '1812345678',\r\n BE: '470123456',\r\n BF: '70123456',\r\n BG: '48123456',\r\n BH: '36001234',\r\n BI: '79561234',\r\n BJ: '90011234',\r\n BL: '690001234',\r\n BM: '4413701234',\r\n BN: '7123456',\r\n BO: '71234567',\r\n BQ: '3181234',\r\n BR: '11961234567',\r\n BS: '2423591234',\r\n BT: '17123456',\r\n BW: '71123456',\r\n BY: '294911911',\r\n BZ: '6221234',\r\n CA: '5062345678',\r\n CC: '412345678',\r\n CD: '991234567',\r\n CF: '70012345',\r\n CG: '061234567',\r\n CH: '781234567',\r\n CI: '01234567',\r\n CK: '71234',\r\n CL: '221234567',\r\n CM: '671234567',\r\n CN: '13123456789',\r\n CO: '3211234567',\r\n CR: '83123456',\r\n CU: '51234567',\r\n CV: '9911234',\r\n CW: '95181234',\r\n CX: '412345678',\r\n CY: '96123456',\r\n CZ: '601123456',\r\n DE: '15123456789',\r\n DJ: '77831001',\r\n DK: '32123456',\r\n DM: '7672251234',\r\n DO: '8092345678',\r\n DZ: '551234567',\r\n EC: '991234567',\r\n EE: '51234567',\r\n EG: '1001234567',\r\n EH: '650123456',\r\n ER: '7123456',\r\n ES: '612345678',\r\n ET: '911234567',\r\n FI: '412345678',\r\n FJ: '7012345',\r\n FK: '51234',\r\n FM: '3501234',\r\n FO: '211234',\r\n FR: '612345678',\r\n GA: '06031234',\r\n GB: '7400123456',\r\n GD: '4734031234',\r\n GE: '555123456',\r\n GF: '694201234',\r\n GG: '7781123456',\r\n GH: '231234567',\r\n GI: '57123456',\r\n GL: '221234',\r\n GM: '3012345',\r\n GN: '601123456',\r\n GP: '690001234',\r\n GQ: '222123456',\r\n GR: '6912345678',\r\n GT: '51234567',\r\n GU: '6713001234',\r\n GW: '955012345',\r\n GY: '6091234',\r\n HK: '51234567',\r\n HN: '91234567',\r\n HR: '921234567',\r\n HT: '34101234',\r\n HU: '201234567',\r\n ID: '812345678',\r\n IE: '850123456',\r\n IL: '502345678',\r\n IM: '7924123456',\r\n IN: '8123456789',\r\n IO: '3801234',\r\n IQ: '7912345678',\r\n IR: '9123456789',\r\n IS: '6111234',\r\n IT: '3123456789',\r\n JE: '7797712345',\r\n JM: '8762101234',\r\n JO: '790123456',\r\n JP: '9012345678',\r\n KE: '712123456',\r\n KG: '700123456',\r\n KH: '91234567',\r\n KI: '72001234',\r\n KM: '3212345',\r\n KN: '8697652917',\r\n KP: '1921234567',\r\n KR: '1000000000',\r\n KW: '50012345',\r\n KY: '3453231234',\r\n KZ: '7710009998',\r\n LA: '2023123456',\r\n LB: '71123456',\r\n LC: '7582845678',\r\n LI: '660234567',\r\n LK: '712345678',\r\n LR: '770123456',\r\n LS: '50123456',\r\n LT: '61234567',\r\n LU: '628123456',\r\n LV: '21234567',\r\n LY: '912345678',\r\n MA: '650123456',\r\n MC: '612345678',\r\n MD: '62112345',\r\n ME: '67622901',\r\n MF: '690001234',\r\n MG: '321234567',\r\n MH: '2351234',\r\n MK: '72345678',\r\n ML: '65012345',\r\n MM: '92123456',\r\n MN: '88123456',\r\n MO: '66123456',\r\n MP: '6702345678',\r\n MQ: '696201234',\r\n MR: '22123456',\r\n MS: '6644923456',\r\n MT: '96961234',\r\n MU: '52512345',\r\n MV: '7712345',\r\n MW: '991234567',\r\n MX: '12221234567',\r\n MY: '123456789',\r\n MZ: '821234567',\r\n NA: '811234567',\r\n NC: '751234',\r\n NE: '93123456',\r\n NF: '381234',\r\n NG: '8021234567',\r\n NI: '81234567',\r\n NL: '612345678',\r\n NO: '40612345',\r\n NP: '9841234567',\r\n NR: '5551234',\r\n NU: '8884012',\r\n NZ: '211234567',\r\n OM: '92123456',\r\n PA: '61234567',\r\n PE: '912345678',\r\n PF: '87123456',\r\n PG: '70123456',\r\n PH: '9051234567',\r\n PK: '3012345678',\r\n PL: '512345678',\r\n PM: '551234',\r\n PR: '7872345678',\r\n PS: '599123456',\r\n PT: '912345678',\r\n PW: '6201234',\r\n PY: '961456789',\r\n QA: '33123456',\r\n RE: '692123456',\r\n RO: '712034567',\r\n RS: '601234567',\r\n RU: '9123456789',\r\n RW: '720123456',\r\n SA: '512345678',\r\n SB: '7421234',\r\n SC: '2510123',\r\n SD: '911231234',\r\n SE: '701234567',\r\n SG: '81234567',\r\n SH: '51234',\r\n SI: '31234567',\r\n SJ: '41234567',\r\n SK: '912123456',\r\n SL: '25123456',\r\n SM: '66661212',\r\n SN: '701234567',\r\n SO: '71123456',\r\n SR: '7412345',\r\n SS: '977123456',\r\n ST: '9812345',\r\n SV: '70123456',\r\n SX: '7215205678',\r\n SY: '944567890',\r\n SZ: '76123456',\r\n TA: '8999',\r\n TC: '6492311234',\r\n TD: '63012345',\r\n TG: '90112345',\r\n TH: '812345678',\r\n TJ: '917123456',\r\n TK: '7290',\r\n TL: '77212345',\r\n TM: '66123456',\r\n TN: '20123456',\r\n TO: '7715123',\r\n TR: '5012345678',\r\n TT: '8682911234',\r\n TV: '901234',\r\n TW: '912345678',\r\n TZ: '621234567',\r\n UA: '501234567',\r\n UG: '712345678',\r\n US: '2015550123',\r\n UY: '94231234',\r\n UZ: '912345678',\r\n VA: '3123456789',\r\n VC: '7844301234',\r\n VE: '4121234567',\r\n VG: '2843001234',\r\n VI: '3406421234',\r\n VN: '912345678',\r\n VU: '5912345',\r\n WF: '501234',\r\n WS: '7212345',\r\n XK: '43201234',\r\n YE: '712345678',\r\n YT: '639012345',\r\n ZA: '711234567',\r\n ZM: '955123456',\r\n ZW: '712345678'\r\n};\r\n","import {UntypedFormControl} from '@angular/forms';\r\nimport {parsePhoneNumber, PhoneNumber} from 'libphonenumber-js';\r\n\r\nexport const phoneNumberValidator = (control: UntypedFormControl) => {\r\n const error = {validatePhoneNumber: true};\r\n let numberInstance: PhoneNumber;\r\n if (control.value) {\r\n try {\r\n numberInstance = parsePhoneNumber(control.value);\r\n } catch (e) {\r\n control.setValue(null);\r\n return error;\r\n }\r\n\r\n if (numberInstance && !numberInstance.isValid()) {\r\n control.setValue(null);\r\n if (!control.touched) {\r\n control.markAsTouched();\r\n }\r\n return error;\r\n }\r\n }\r\n return null;\r\n};\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { Country } from './model/country.model';\r\n\r\n@Pipe({\r\n name: 'search',\r\n standalone: true,\r\n})\r\nexport class SearchPipe implements PipeTransform {\r\n // country | search:'searchCriteria'\r\n transform(country: Country, searchCriteria?: string): boolean {\r\n if (!searchCriteria || searchCriteria === '') {\r\n return true;\r\n }\r\n\r\n return `${country.name}+${country.dialCode}`\r\n .toLowerCase()\r\n .includes(searchCriteria.toLowerCase());\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/member-ordering, no-underscore-dangle, id-blacklist,\r\nid-match, @typescript-eslint/naming-convention */\r\n\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\n\r\nimport {\r\n FormGroupDirective,\r\n FormsModule,\r\n NgControl,\r\n NgForm,\r\n NG_VALIDATORS,\r\n ReactiveFormsModule,\r\n} from '@angular/forms';\r\nimport {\r\n AsYouType,\r\n CountryCode as CC,\r\n E164Number,\r\n getExampleNumber,\r\n NationalNumber,\r\n parsePhoneNumberFromString,\r\n PhoneNumber,\r\n} from 'libphonenumber-js';\r\nimport { CountryCode, Examples } from './data/country-code';\r\nimport { Country } from './model/country.model';\r\nimport { PhoneNumberFormat } from './model/phone-number-format.model';\r\nimport { phoneNumberValidator } from './ngx-mat-intl-tel-input.validator';\r\n\r\nimport { FocusMonitor } from '@angular/cdk/a11y';\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport {\r\n CanUpdateErrorState,\r\n ErrorStateMatcher,\r\n mixinErrorState,\r\n _AbstractConstructor,\r\n _Constructor,\r\n} from '@angular/material/core';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatInput, MatInputModule } from '@angular/material/input';\r\nimport { MatMenu, MatMenuModule } from '@angular/material/menu';\r\nimport { Subject } from 'rxjs';\r\nimport { SearchPipe } from './search.pipe';\r\n\r\nclass NgxMatIntlTelInputBase {\r\n readonly stateChanges = new Subject<void>();\r\n constructor(\r\n public _defaultErrorStateMatcher: ErrorStateMatcher,\r\n public _parentForm: NgForm,\r\n public _parentFormGroup: FormGroupDirective,\r\n /** @docs-private */\r\n public ngControl: NgControl\r\n ) {}\r\n}\r\n\r\ndeclare type CanUpdateErrorStateCtor = _Constructor<CanUpdateErrorState> &\r\n _AbstractConstructor<CanUpdateErrorState>;\r\n\r\nconst _NgxMatIntlTelInputMixinBase: CanUpdateErrorStateCtor &\r\n typeof NgxMatIntlTelInputBase = mixinErrorState(NgxMatIntlTelInputBase);\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'ngx-mat-intl-tel-input',\r\n templateUrl: './ngx-mat-intl-tel-input.component.html',\r\n styleUrls: ['./ngx-mat-intl-tel-input.component.scss'],\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MatInputModule,\r\n MatMenuModule,\r\n MatButtonModule,\r\n MatDividerModule,\r\n ReactiveFormsModule,\r\n SearchPipe\r\n ],\r\n providers: [\r\n CountryCode,\r\n { provide: MatFormFieldControl, useExisting: NgxMatIntlTelInputComponent },\r\n {\r\n provide: NG_VALIDATORS,\r\n useValue: phoneNumberValidator,\r\n multi: true,\r\n },\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class NgxMatIntlTelInputComponent\r\n extends _NgxMatIntlTelInputMixinBase\r\n implements\r\n OnInit,\r\n OnDestroy,\r\n DoCheck,\r\n CanUpdateErrorState,\r\n MatFormFieldControl<any>\r\n{\r\n static nextId = 0;\r\n\r\n @Input() preferredCountries: Array<string> = [];\r\n @Input() enablePlaceholder = true;\r\n @Input() inputPlaceholder: string | undefined;\r\n @Input() cssClass: string | undefined;\r\n @Input() name: string | undefined;\r\n @Input() onlyCountries: Array<string> = [];\r\n @Input() errorStateMatcher: ErrorStateMatcher = new ErrorStateMatcher();\r\n @Input() enableSearch = false;\r\n @Input() searchPlaceholder: string | undefined;\r\n @Input() describedBy = '';\r\n\r\n @Input()\r\n get format(): PhoneNumberFormat {\r\n return this._format;\r\n }\r\n\r\n set format(value: PhoneNumberFormat) {\r\n this._format = value;\r\n this.phoneNumber = this.formattedPhoneNumber;\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n @ViewChild(MatMenu) matMenu: MatMenu | undefined;\r\n private _placeholder: string | undefined;\r\n private _required = false;\r\n private _disabled = false;\r\n stateChanges = new Subject<void>();\r\n focused = false;\r\n @HostBinding()\r\n id = `ngx-mat-intl-tel-input-${NgxMatIntlTelInputComponent.nextId++}`;\r\n phoneNumber: NationalNumber | undefined;\r\n allCountries: Array<Country> = [];\r\n preferredCountriesInDropDown: Array<Country> = [];\r\n selectedCountry: Country | undefined;\r\n numberInstance: PhoneNumber | undefined;\r\n value: E164Number | string | undefined;\r\n searchCriteria: string | undefined;\r\n @Output() countryChanged = new EventEmitter<Country>();\r\n\r\n private previousFormattedNumber: string | undefined;\r\n private _format: PhoneNumberFormat = 'default';\r\n\r\n static getPhoneNumberPlaceHolder(countryISOCode: CC): string | undefined {\r\n const result = getExampleNumber(countryISOCode, Examples);\r\n return !!result ? result.number.toString() : undefined;\r\n }\r\n\r\n onTouched = () => {};\r\n\r\n propagateChange = (_: any) => {};\r\n\r\n constructor(\r\n private _changeDetectorRef: ChangeDetectorRef,\r\n private countryCodeData: CountryCode,\r\n private fm: FocusMonitor,\r\n private elRef: ElementRef<HTMLElement>,\r\n @Optional() @Self() public ngControl: NgControl,\r\n @Optional() _parentForm: NgForm,\r\n @Optional() _parentFormGroup: FormGroupDirective,\r\n _defaultErrorStateMatcher: ErrorStateMatcher\r\n ) {\r\n super(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl);\r\n fm.monitor(elRef, true).subscribe((origin) => {\r\n if (this.focused && !origin) {\r\n this.onTouched();\r\n }\r\n this.focused = !!origin;\r\n this.stateChanges.next(undefined);\r\n });\r\n this.fetchCountryData();\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.searchPlaceholder) {\r\n this.searchPlaceholder = 'Search ...';\r\n }\r\n if (this.preferredCountries.length) {\r\n this.preferredCountries.forEach((iso2) => {\r\n const preferredCountry = this.allCountries\r\n .filter((c) => c.iso2 === iso2)\r\n .shift();\r\n if (preferredCountry) {\r\n this.preferredCountriesInDropDown.push(preferredCountry);\r\n }\r\n });\r\n }\r\n if (this.onlyCountries.length) {\r\n this.allCountries = this.allCountries.filter((c) =>\r\n this.onlyCountries.includes(c.iso2)\r\n );\r\n }\r\n if (this.numberInstance && this.numberInstance.country) {\r\n // If an existing number is present, we use it to determine selectedCountry\r\n this.selectedCountry = this.getCountry(this.numberInstance.country);\r\n } else {\r\n if (this.preferredCountriesInDropDown.length) {\r\n this.selectedCountry = this.preferredCountriesInDropDown[0];\r\n } else {\r\n this.selectedCountry = this.allCountries[0];\r\n }\r\n }\r\n this.countryChanged.emit(this.selectedCountry);\r\n this._changeDetectorRef.markForCheck();\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n ngDoCheck(): void {\r\n if (this.ngControl) {\r\n this.updateErrorState();\r\n }\r\n }\r\n\r\n public onPhoneNumberChange(): void {\r\n try {\r\n this.numberInstance = parsePhoneNumberFromString(\r\n this.phoneNumber?.toString() || '',\r\n this.selectedCountry?.iso2.toUpperCase() as CC\r\n );\r\n this.formatAsYouTypeIfEnabled();\r\n this.value = this.numberInstance?.number;\r\n if (this.numberInstance && this.numberInstance.isValid()) {\r\n if (this.phoneNumber !== this.formattedPhoneNumber) {\r\n this.phoneNumber = this.formattedPhoneNumber;\r\n }\r\n if (\r\n this.selectedCountry?.iso2 !== this.numberInstance.country &&\r\n !!this.numberInstance.country\r\n ) {\r\n this.selectedCountry = this.getCountry(this.numberInstance.country);\r\n this.countryChanged.emit(this.selectedCountry);\r\n }\r\n }\r\n } catch (e) {\r\n // if no possible numbers are there,\r\n // then the full number is passed so that validator could be triggered and proper error could be shown\r\n this.value = this.phoneNumber?.toString();\r\n }\r\n this.propagateChange(this.value);\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n public onCountrySelect(country: Country, el: MatInput): void {\r\n if (this.phoneNumber) {\r\n this.phoneNumber = this.numberInstance?.nationalNumber;\r\n }\r\n this.selectedCountry = country;\r\n this.countryChanged.emit(this.selectedCountry);\r\n this.onPhoneNumberChange();\r\n el.focus();\r\n }\r\n\r\n public getCountry(code: string): Country {\r\n return (\r\n this.allCountries.find((c) => c.iso2 === code.toLowerCase()) || {\r\n name: 'UN',\r\n iso2: 'UN',\r\n dialCode: '',\r\n priority: 0,\r\n areaCodes: undefined,\r\n flagClass: 'UN',\r\n placeHolder: '',\r\n }\r\n );\r\n }\r\n\r\n public onInputKeyPress(event: KeyboardEvent): void {\r\n const pattern = /[0-9+\\- ]/;\r\n if (!pattern.test(event.key)) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n protected fetchCountryData(): void {\r\n this.countryCodeData.allCountries.forEach((c) => {\r\n const country: Country = {\r\n name: c[0].toString(),\r\n iso2: c[1].toString(),\r\n dialCode: c[2].toString(),\r\n priority: +c[3] || 0,\r\n areaCodes: (c[4] as string[]) || undefined,\r\n flagClass: c[1].toString().toUpperCase(),\r\n placeHolder: '',\r\n };\r\n\r\n if (this.enablePlaceholder) {\r\n country.placeHolder =\r\n NgxMatIntlTelInputComponent.getPhoneNumberPlaceHolder(\r\n country.iso2.toUpperCase() as CC\r\n );\r\n }\r\n\r\n this.allCountries.push(country);\r\n });\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.propagateChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n this._changeDetectorRef.markForCheck();\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value) {\r\n this.numberInstance = parsePhoneNumberFromString(value);\r\n if (this.numberInstance) {\r\n const countryCode = this.numberInstance.country;\r\n this.phoneNumber = this.formattedPhoneNumber;\r\n if (!countryCode) {\r\n return;\r\n }\r\n setTimeout(() => {\r\n this.selectedCountry = this.getCountry(countryCode);\r\n if (\r\n this.selectedCountry.dialCode &&\r\n !this.preferredCountries.includes(this.selectedCountry.iso2)\r\n ) {\r\n this.preferredCountriesInDropDown.push(this.selectedCountry);\r\n }\r\n this.countryChanged.emit(this.selectedCountry);\r\n\r\n // Initial value is set\r\n this._changeDetectorRef.markForCheck();\r\n this.stateChanges.next(undefined);\r\n }, 1);\r\n } else {\r\n this.phoneNumber = value;\r\n }\r\n }\r\n\r\n // Value is set from outside using setValue()\r\n this._changeDetectorRef.markForCheck();\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n get empty(): boolean {\r\n return !this.phoneNumber;\r\n }\r\n\r\n @HostBinding('class.ngx-floating')\r\n get shouldLabelFloat(): boolean {\r\n return this.focused || !this.empty;\r\n }\r\n\r\n @Input()\r\n get placeholder(): string {\r\n return this._placeholder || '';\r\n }\r\n\r\n set placeholder(value: string) {\r\n this._placeholder = value;\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n @Input()\r\n get required(): boolean {\r\n return this._required;\r\n }\r\n\r\n set required(value: boolean) {\r\n this._required = coerceBooleanProperty(value);\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n setDescribedByIds(ids: string[]) {\r\n this.describedBy = ids.join(' ');\r\n }\r\n\r\n onContainerClick(event: MouseEvent): void {\r\n if ((event.target as Element).tagName.toLowerCase() !== 'input') {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n this.elRef.nativeElement.querySelector('input')!.focus();\r\n }\r\n }\r\n\r\n reset(): void {\r\n this.phoneNumber = '';\r\n this.propagateChange(null);\r\n\r\n this._changeDetectorRef.markForCheck();\r\n this.stateChanges.next(undefined);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n this.fm.stopMonitoring(this.elRef);\r\n }\r\n\r\n private get formattedPhoneNumber(): string {\r\n if (!this.numberInstance) {\r\n return this.phoneNumber?.toString() || '';\r\n }\r\n switch (this.format) {\r\n case 'national':\r\n return this.numberInstance.formatNational();\r\n case 'international':\r\n return this.numberInstance.formatInternational();\r\n default:\r\n return this.numberInstance.nationalNumber.toString();\r\n }\r\n }\r\n\r\n private formatAsYouTypeIfEnabled(): void {\r\n if (this.format === 'default') {\r\n return;\r\n }\r\n const asYouType: AsYouType = new AsYouType(\r\n this.selectedCountry?.iso2.toUpperCase() as CC\r\n );\r\n // To avoid caret positioning we apply formatting only if the caret is at the end:\r\n if (\r\n this.phoneNumber\r\n ?.toString()\r\n .startsWith(this.previousFormattedNumber || '')\r\n ) {\r\n this.phoneNumber = asYouType.input(this.phoneNumber.toString());\r\n }\r\n this.previousFormattedNumber = this.phoneNumber?.toString();\r\n }\r\n}\r\n","<div class=\"ngx-mat-tel-input-container\">\r\n <button\r\n type=\"button\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"country-selector\"\r\n [disabled]=\"disabled\"\r\n >\r\n <span\r\n class=\"country-selector-flag flag\"\r\n [ngClass]=\"selectedCountry?.flagClass\"\r\n ></span>\r\n <span class=\"country-selector-code\" *ngIf=\"selectedCountry?.dialCode\"\r\n >+{{ selectedCountry.dialCode }}</span\r\n >\r\n </button>\r\n <mat-menu #menu=\"matMenu\"\r\n class=\"ngx-mat-tel-input-mat-menu-panel\"\r\n backdropClass=\"ngx-mat-tel-input-overlay-backdrop\"\r\n overlayPanelClass=\"ngx-mat-tel-input-overlay-pane\">\r\n <input\r\n *ngIf=\"enableSearch\"\r\n class=\"country-search\"\r\n [(ngModel)]=\"searchCriteria\"\r\n type=\"text\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngFor=\"let country of preferredCountriesInDropDown\"\r\n (click)=\"onCountrySelect(country, focusable)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\" [ngClass]=\"country.flagClass\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }}\r\n <span *ngIf=\"country?.dialCode\">+{{ country.dialCode }}</span>\r\n </div>\r\n </button>\r\n <mat-divider *ngIf=\"preferredCountriesInDropDown?.length\"></mat-divider>\r\n <ng-container *ngFor=\"let country of allCountries\">\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngIf=\"country | search: searchCriteria\"\r\n (click)=\"onCountrySelect(country, focusable)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\" [ngClass]=\"country.flagClass\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }} +{{ country.dialCode }}\r\n </div>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n\r\n <input\r\n matInput\r\n type=\"tel\"\r\n autocomplete=\"off\"\r\n [ngClass]=\"cssClass\"\r\n (blur)=\"onTouched()\"\r\n (keypress)=\"onInputKeyPress($event)\"\r\n [(ngModel)]=\"phoneNumber\"\r\n (ngModelChange)=\"onPhoneNumberChange()\"\r\n [errorStateMatcher]=\"errorStateMatcher\"\r\n [placeholder]=\"inputPlaceholder\"\r\n [disabled]=\"disabled\"\r\n [aria-describedby]=\"describedBy\"\r\n #focusable\r\n />\r\n</div>\r\n","/*\r\n * Public API Surface of ngx-mat-intl-tel-input\r\n */\r\n\r\nexport * from './lib/ngx-mat-intl-tel-input.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CountryCode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;MAIa,WAAW,CAAA;AADxB,IAAA,WAAA,GAAA;QAES,IAAA,CAAA,YAAY,GAAG;AACpB,YAAA,CAAC,4BAA4B,EAAE,IAAI,EAAE,IAAI,CAAC;AAC1C,YAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,YAAA,CAAC,sBAAsB,EAAE,IAAI,EAAE,KAAK,CAAC;AACrC,YAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAC;AAChC,YAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,YAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,YAAA,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC;AAC1B,YAAA,CAAC,qBAAqB,EAAE,IAAI,EAAE,MAAM,CAAC;AACrC,YAAA,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;AACzB,YAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,YAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,YAAA,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5B,YAAA,CAAC,sBAAsB,EAAE,IAAI,EAAE,IAAI,CAAC;AACpC,YAAA,CAAC,yBAAyB,EAAE,IAAI,EAAE,KAAK,CAAC;AACxC,YAAA,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC;AACzB,YAAA,CAAC,sBAAsB,EAAE,IAAI,EAAE,KAAK,CAAC;AACrC,YAAA,CAAC,uBAAuB,EAAE,IAAI,EAAE,KAAK,CAAC;AACtC,YAAA,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC;AAC1B,YAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,YAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC;AAChC,YAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,YAAA,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9B,YAAA,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC;AACzB,YAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC;AAC/B,YAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,YAAA,CAAC,8CAA8C,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7D,YAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,YAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/B,YAAA,CAAC,gCAAgC,EAAE,IAAI,EAAE,KAAK,CAAC;AAC/C,YAAA,CAAC,wBAAwB,EAAE,IAAI,EAAE,MAAM,CAAC;AACxC,YAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,YAAA,CAAC,qBAAqB,EAAE,IAAI,EAAE,KAAK,CAAC;AACpC,YAAA,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7B,YAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,YAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,YAAA,CAAC,qBAAqB,EAAE,IAAI,EAAE,KAAK,CAAC;AACpC,YAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;AAC/H,oBAAA,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;AACrH,oBAAA,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACxE,YAAA,CAAC,yBAAyB,EAAE,IAAI,EAAE,KAAK,CAAC;AACxC,YAAA,CAAC,uBAAuB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACzC,YAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAC;AAChC,YAAA,CAAC,sDAAsD,EAAE,IAAI,EAAE,KAAK,CAAC;AACrE,YAAA,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7B,YAAA,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;AACrB,YAAA,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;AAC1B,YAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACnC,YAAA,CAAC,yBAAyB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1C,YAAA,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;AACxB,YAAA,CAAC,wBAAwB,EAAE,IAAI,EAAE,KAAK,CAAC;AACvC,YAAA,CAAC,gDAAgD,EAAE,IAAI,EAAE,KAAK,CAAC;AAC/D,YAAA,CAAC,sCAAsC,EAAE,IAAI,EAAE,KAAK,CAAC;AACrD,YAAA,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7B,YAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,YAAA,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9B,YAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,YAAA,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;AACpB,YAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3B,YAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC;AAChC,YAAA,CAAC,kCAAkC,EAAE,IAAI,EAAE,KAAK,CAAC;AACjD,YAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC;AACjC,YAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,YAAA,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC;YAC1B,CAAC,2CAA2C,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AAC5G,YAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC;AAC9B,YAAA,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC;AAC5B,YAAA,CAAC,uCAAuC,EAAE,IAAI,EAAE,KAAK,CAAC;AACtD,YAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,YAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC;AAChC,YAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,YAAA,CAAC,mCAAmC,EAAE,IAAI,EAAE,KAAK,CAAC;AAClD,YAAA,CAAC,yBAAyB,EAAE,IAAI,EAAE,KAAK,CAAC;AACxC,YAAA,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;AACrB,YAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACnC,YAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC;AACtB,YAAA,CAAC,kCAAkC,EAAE,IAAI,EAAE,KAAK,CAAC;AACjD,YAAA,CAAC,wCAAwC,EAAE,IAAI,EAAE,KAAK,CAAC;AACvD,YAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,YAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,YAAA,CAAC,sBAAsB,EAAE,IAAI,EAAE,KAAK,CAAC;AACrC,YAAA,CAAC,uBAAuB,EAAE,IAAI,EAAE,IAAI,CAAC;AACrC,YAAA,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9B,YAAA,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;AAC1B,YAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/B,YAAA,CAAC,8BAA8B,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7C,YAAA,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC;AACzB,YAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9B,YAAA,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;AACtB,YAAA,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;AAC1B,YAAA,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3B,YAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC;AAChC,YAAA,CAAC,8BAA8B,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7C,YAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,YAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,YAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,YAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC;AAC/B,YAAA,CAAC,wBAAwB,EAAE,IAAI,EAAE,IAAI,CAAC;AACtC,YAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC;AACjC,YAAA,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC;AAC5B,YAAA,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;AACzB,YAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/B,YAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC;AACjC,YAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,YAAA,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9B,YAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC;AAClC,YAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACjC,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;AACrE,YAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACzB,YAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,YAAA,CAAC,wBAAwB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AACxC,YAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,YAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,YAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,YAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,YAAA,CAAC,yBAAyB,EAAE,IAAI,EAAE,KAAK,CAAC;AACxC,YAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,YAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC;AACjC,YAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,YAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,YAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,YAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC;AACjC,YAAA,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9B,YAAA,CAAC,qBAAqB,EAAE,IAAI,EAAE,KAAK,CAAC;AACpC,YAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,YAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,YAAA,CAAC,gCAAgC,EAAE,IAAI,EAAE,KAAK,CAAC;AAC/C,YAAA,CAAC,2BAA2B,EAAE,IAAI,EAAE,KAAK,CAAC;AAC1C,YAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,YAAA,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;AACxB,YAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,YAAA,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;AACrB,YAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,YAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC;AACjC,YAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,YAAA,CAAC,2BAA2B,EAAE,IAAI,EAAE,KAAK,CAAC;AAC1C,YAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC;AAClC,YAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3B,YAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/B,YAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,YAAA,CAAC,6BAA6B,EAAE,IAAI,EAAE,KAAK,CAAC;AAC5C,YAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,YAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC;AAClC,YAAA,CAAC,wBAAwB,EAAE,IAAI,EAAE,KAAK,CAAC;AACvC,YAAA,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC;AAC5B,YAAA,CAAC,qBAAqB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACvC,YAAA,CAAC,yBAAyB,EAAE,IAAI,EAAE,KAAK,CAAC;AACxC,YAAA,CAAC,0BAA0B,EAAE,IAAI,EAAE,IAAI,CAAC;AACxC,YAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC;AAClC,YAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,YAAA,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9B,YAAA,CAAC,yBAAyB,EAAE,IAAI,EAAE,IAAI,CAAC;AACvC,YAAA,CAAC,oCAAoC,EAAE,IAAI,EAAE,KAAK,CAAC;AACnD,YAAA,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3B,YAAA,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;AAC1B,YAAA,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9B,YAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,YAAA,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;AACrB,YAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC;AAC/B,YAAA,CAAC,8BAA8B,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7C,YAAA,CAAC,0BAA0B,EAAE,IAAI,EAAE,MAAM,CAAC;AAC1C,YAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACjC,YAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC;AAChC,YAAA,CAAC,uBAAuB,EAAE,IAAI,EAAE,IAAI,CAAC;AACrC,YAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,YAAA,CAAC,uBAAuB,EAAE,IAAI,EAAE,KAAK,CAAC;AACtC,YAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC;AAChC,YAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC;AACjC,YAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,YAAA,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3B,YAAA,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3B,YAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/B,YAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;YACzB,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9E,YAAA,CAAC,sBAAsB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACxC,YAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC;AACjC,YAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AACjC,YAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,YAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACpC,YAAA,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7B,YAAA,CAAC,uBAAuB,EAAE,IAAI,EAAE,MAAM,CAAC;AACvC,YAAA,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC;AAC7B,YAAA,CAAC,gDAAgD,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAClE,YAAA,CAAC,sDAAsD,EAAE,IAAI,EAAE,KAAK,CAAC;AACrE,YAAA,CAAC,kCAAkC,EAAE,IAAI,EAAE,MAAM,CAAC;AAClD,YAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,YAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,YAAA,CAAC,6CAA6C,EAAE,IAAI,EAAE,KAAK,CAAC;AAC5D,YAAA,CAAC,4CAA4C,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3D,YAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC;AAClC,YAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC;AAChC,YAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,YAAA,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7B,YAAA,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;AACzB,YAAA,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC;AAC9B,YAAA,CAAC,sBAAsB,EAAE,IAAI,EAAE,KAAK,CAAC;AACrC,YAAA,CAAC,sBAAsB,EAAE,IAAI,EAAE,KAAK,CAAC;AACrC,YAAA,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC;AAChC,YAAA,CAAC,sBAAsB,EAAE,IAAI,EAAE,KAAK,CAAC;AACrC,YAAA,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC;AAC5B,YAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC;AAClC,YAAA,CAAC,+BAA+B,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9C,YAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC;AAC9B,YAAA,CAAC,yBAAyB,EAAE,IAAI,EAAE,IAAI,CAAC;AACvC,YAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,KAAK,CAAC;AACnC,YAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,YAAA,CAAC,wBAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACzC,YAAA,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;AAC1B,YAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC;AAChC,YAAA,CAAC,uBAAuB,EAAE,IAAI,EAAE,IAAI,CAAC;AACrC,YAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC;AACjC,YAAA,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC;AAC5B,YAAA,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3B,YAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,YAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC;AAC9B,YAAA,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC;AAC5B,YAAA,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;AACrB,YAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,YAAA,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtB,YAAA,CAAC,qBAAqB,EAAE,IAAI,EAAE,MAAM,CAAC;AACrC,YAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC;AAClC,YAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC;AAChC,YAAA,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7B,YAAA,CAAC,0BAA0B,EAAE,IAAI,EAAE,MAAM,CAAC;AAC1C,YAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,YAAA,CAAC,qBAAqB,EAAE,IAAI,EAAE,MAAM,CAAC;AACrC,YAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,YAAA,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC;AAClC,YAAA,CAAC,oDAAoD,EAAE,IAAI,EAAE,KAAK,CAAC;AACnE,YAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACjC,YAAA,CAAC,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AAC/B,YAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,YAAA,CAAC,0BAA0B,EAAE,IAAI,EAAE,KAAK,CAAC;AACzC,YAAA,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACxB,YAAA,CAAC,mCAAmC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACpD,YAAA,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;AACzB,YAAA,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC;AAClC,YAAA,CAAC,sCAAsC,EAAE,IAAI,EAAE,KAAK,CAAC;AACrD,YAAA,CAAC,qCAAqC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACvD,YAAA,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,CAAC;AACjC,YAAA,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AACvB,YAAA,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACzB,YAAA,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;SAAC,CAAC;KACtC;;sEApPY,WAAW,GAAA,CAAA,EAAA,CAAA;AAAX,WAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,WAAW,WAAX,WAAW,CAAA,IAAA,EAAA,CAAA,CAAA;;4EAAX,WAAW,EAAA,CAAA;kBADvB,UAAU;;;AAuPJ,MAAM,QAAQ,GAAQ;AAC3B,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,aAAa;AACjB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,aAAa;AACjB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,aAAa;AACjB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,aAAa;AACjB,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EAAE,EAAE,WAAW;AACf,IAAA,EA