diff --git a/.DS_Store b/.DS_Store index b8e289d..f68df18 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/CH.txt b/CH.txt new file mode 100644 index 0000000..751a1f9 --- /dev/null +++ b/CH.txt @@ -0,0 +1,4520 @@ +CH 5000 Aarau Kanton Aargau AG Bezirk Aarau 1901 Aarau 4001 47.3887 8.0483 4 +CH 5001 Aarau 1 Kanton Aargau AG Bezirk Aarau 1901 Aarau 4001 47.3888 8.0483 +CH 5004 Aarau Kanton Aargau AG Bezirk Aarau 1901 Aarau 4001 47.4007 8.0607 4 +CH 5017 Barmelweid Kanton Aargau AG Bezirk Aarau 1901 Erlinsbach (AG) 4005 47.4219 7.9722 4 +CH 5018 Erlinsbach Kanton Aargau AG Bezirk Aarau 1901 Erlinsbach (AG) 4005 47.4143 8.0077 4 +CH 5022 Rombach Kanton Aargau AG Bezirk Aarau 1901 Küttigen 4008 47.4052 8.0456 4 +CH 5023 Biberstein Kanton Aargau AG Bezirk Aarau 1901 Biberstein 4002 47.4188 8.083 4 +CH 5024 Küttigen Kanton Aargau AG Bezirk Aarau 1901 Küttigen 4008 47.4221 8.0439 4 +CH 5025 Asp Kanton Aargau AG Bezirk Aarau 1901 Densbüren 4004 47.4421 8.0506 4 +CH 5026 Densbüren Kanton Aargau AG Bezirk Aarau 1901 Densbüren 4004 47.4566 8.0599 4 +CH 5032 Aarau Rohr Kanton Aargau AG Bezirk Aarau 1901 Aarau 4001 47.4055 8.0841 4 +CH 5033 Buchs AG Kanton Aargau AG Bezirk Aarau 1901 Buchs (AG) 4003 47.3937 8.0879 4 +CH 5034 Suhr Kanton Aargau AG Bezirk Aarau 1901 Suhr 4012 47.3749 8.084 4 +CH 5035 Unterentfelden Kanton Aargau AG Bezirk Aarau 1901 Unterentfelden 4013 47.3684 8.0427 4 +CH 5036 Oberentfelden Kanton Aargau AG Bezirk Aarau 1901 Oberentfelden 4010 47.3542 8.0413 4 +CH 5037 Muhen Kanton Aargau AG Bezirk Aarau 1901 Muhen 4009 47.3329 8.0627 4 +CH 5042 Hirschthal Kanton Aargau AG Bezirk Aarau 1901 Hirschthal 4007 47.3176 8.0671 4 +CH 5722 Gränichen Kanton Aargau AG Bezirk Aarau 1901 Gränichen 4006 47.3516 8.1066 4 +CH 5300 Turgi Kanton Aargau AG Bezirk Baden 1902 Turgi 4042 47.4901 8.2561 4 +CH 5301 Siggenthal Station Kanton Aargau AG Bezirk Baden 1902 Untersiggenthal 4044 47.5152 8.238 4 +CH 5303 Würenlingen Kanton Aargau AG Bezirk Baden 1902 Würenlingen 4047 47.5321 8.2492 4 +CH 5400 Baden Kanton Aargau AG Bezirk Baden 1902 Baden 4021 47.4721 8.2914 4 +CH 5401 Baden Kanton Aargau AG Bezirk Baden 1902 Baden 4021 47.4733 8.3059 +CH 5402 Baden Kanton Aargau AG Bezirk Baden 1902 Baden 4021 47.4733 8.3059 +CH 5404 Baden Kanton Aargau AG Bezirk Baden 1902 Baden 4021 47.4549 8.2783 4 +CH 5405 Baden Kanton Aargau AG Bezirk Baden 1902 Baden 4021 47.4733 8.3059 4 +CH 5405 Dättwil AG Kanton Aargau AG Bezirk Baden 1902 Baden 4021 47.4537 8.2899 4 +CH 5406 Rütihof Kanton Aargau AG Bezirk Baden 1902 Baden 4021 47.4381 8.2659 4 +CH 5406 Baden Kanton Aargau AG Bezirk Baden 1902 Baden 4021 47.4733 8.3059 4 +CH 5408 Ennetbaden Kanton Aargau AG Bezirk Baden 1902 Ennetbaden 4026 47.4804 8.3235 4 +CH 5412 Vogelsang AG Kanton Aargau AG Bezirk Baden 1902 Gebenstorf 4029 47.4974 8.2393 4 +CH 5412 Gebenstorf Kanton Aargau AG Bezirk Baden 1902 Gebenstorf 4029 47.4782 8.2487 4 +CH 5413 Birmenstorf AG Kanton Aargau AG Bezirk Baden 1902 Birmenstorf (AG) 4024 47.4558 8.2562 4 +CH 5415 Rieden AG Kanton Aargau AG Bezirk Baden 1902 Obersiggenthal 4038 47.4839 8.304 4 +CH 5415 Nussbaumen AG Kanton Aargau AG Bezirk Baden 1902 Obersiggenthal 4038 47.4935 8.2967 4 +CH 5415 Hertenstein AG Kanton Aargau AG Bezirk Baden 1902 Obersiggenthal 4038 47.4888 8.3158 4 +CH 5416 Kirchdorf AG Kanton Aargau AG Bezirk Baden 1902 Obersiggenthal 4038 47.499 8.2801 4 +CH 5417 Untersiggenthal Kanton Aargau AG Bezirk Baden 1902 Untersiggenthal 4044 47.5067 8.2584 4 +CH 5420 Ehrendingen Kanton Aargau AG Bezirk Baden 1902 Ehrendingen 4049 47.4943 8.3468 4 +CH 5423 Freienwil Kanton Aargau AG Bezirk Baden 1902 Freienwil 4028 47.5014 8.319 4 +CH 5430 Wettingen 1 Kanton Aargau AG Bezirk Baden 1902 Wettingen 4045 47.4668 8.3412 +CH 5430 Wettingen 3 Kanton Aargau AG Bezirk Baden 1902 Wettingen 4045 47.4668 8.3412 +CH 5430 Wettingen Kanton Aargau AG Bezirk Baden 1902 Wettingen 4045 47.4666 8.3412 4 +CH 5432 Neuenhof Kanton Aargau AG Bezirk Baden 1902 Neuenhof 4034 47.4441 8.3251 4 +CH 5436 Würenlos Kanton Aargau AG Bezirk Baden 1902 Würenlos 4048 47.4473 8.3639 4 +CH 5442 Fislisbach Kanton Aargau AG Bezirk Baden 1902 Fislisbach 4027 47.4374 8.2907 4 +CH 5443 Niederrohrdorf Kanton Aargau AG Bezirk Baden 1902 Niederrohrdorf 4035 47.4201 8.3013 4 +CH 5444 Künten Kanton Aargau AG Bezirk Baden 1902 Künten 4031 47.386 8.3254 4 +CH 5452 Oberrohrdorf Kanton Aargau AG Bezirk Baden 1902 Oberrohrdorf 4037 47.4251 8.3205 4 +CH 5453 Remetschwil Kanton Aargau AG Bezirk Baden 1902 Remetschwil 4039 47.4083 8.3319 4 +CH 5454 Bellikon Kanton Aargau AG Bezirk Baden 1902 Bellikon 4022 47.3916 8.3494 4 +CH 5506 Mägenwil Kanton Aargau AG Bezirk Baden 1902 Mägenwil 4032 47.4123 8.2342 4 +CH 5507 Mellingen Kanton Aargau AG Bezirk Baden 1902 Mellingen 4033 47.4211 8.2742 4 +CH 5512 Wohlenschwil Kanton Aargau AG Bezirk Baden 1902 Wohlenschwil 4046 47.4167 8.2543 4 +CH 5608 Stetten AG Kanton Aargau AG Bezirk Baden 1902 Stetten (AG) 4041 47.4013 8.3051 4 +CH 8109 Kloster Fahr Kanton Aargau AG Bezirk Baden 1902 Würenlos 4048 47.4083 8.4391 1 +CH 8956 Killwangen Kanton Aargau AG Bezirk Baden 1902 Killwangen 4030 47.428 8.3443 4 +CH 8957 Spreitenbach Kanton Aargau AG Bezirk Baden 1902 Spreitenbach 4040 47.418 8.3672 4 +CH 8962 Bergdietikon Kanton Aargau AG Bezirk Baden 1902 Bergdietikon 4023 47.3881 8.3785 4 +CH 5445 Eggenwil Kanton Aargau AG Bezirk Bremgarten 1903 Eggenwil 4066 47.3716 8.3385 4 +CH 5522 Tägerig Kanton Aargau AG Bezirk Bremgarten 1903 Tägerig 4077 47.3992 8.2789 4 +CH 5524 Niederwil AG Kanton Aargau AG Bezirk Bremgarten 1903 Niederwil (AG) 4072 47.3763 8.2905 4 +CH 5524 Nesselnbach Kanton Aargau AG Bezirk Bremgarten 1903 Niederwil (AG) 4072 47.3906 8.2968 4 +CH 5525 Fischbach-Göslikon Kanton Aargau AG Bezirk Bremgarten 1903 Fischbach-Göslikon 4067 47.3691 8.3111 4 +CH 5605 Dottikon Kanton Aargau AG Bezirk Bremgarten 1903 Dottikon 4065 47.3779 8.2415 4 +CH 5607 Hägglingen Kanton Aargau AG Bezirk Bremgarten 1903 Hägglingen 4068 47.39 8.2576 4 +CH 5610 Wohlen AG Kanton Aargau AG Bezirk Bremgarten 1903 Wohlen (AG) 4082 47.3503 8.2836 4 +CH 5610 Wohlen AG 1 Kanton Aargau AG Bezirk Bremgarten 1903 Wohlen (AG) 4082 47.3533 8.2807 +CH 5611 Anglikon Kanton Aargau AG Bezirk Bremgarten 1903 Wohlen (AG) 4082 47.3665 8.2631 4 +CH 5612 Villmergen Kanton Aargau AG Bezirk Bremgarten 1903 Villmergen 4080 47.3475 8.2403 4 +CH 5613 Hilfikon Kanton Aargau AG Bezirk Bremgarten 1903 Villmergen 4080 47.3308 8.2453 4 +CH 5614 Sarmenstorf Kanton Aargau AG Bezirk Bremgarten 1903 Sarmenstorf 4076 47.3117 8.2524 4 +CH 5619 Büttikon AG Kanton Aargau AG Bezirk Bremgarten 1903 Büttikon 4064 47.3282 8.2683 4 +CH 5619 Uezwil Kanton Aargau AG Bezirk Bremgarten 1903 Uezwil 4078 47.315 8.2778 4 +CH 5620 Bremgarten AG Kanton Aargau AG Bezirk Bremgarten 1903 Bremgarten (AG) 4063 47.3535 8.3299 4 +CH 5620 Bremgarten AG 1 Kanton Aargau AG Bezirk Bremgarten 1903 Bremgarten (AG) 4063 47.3535 8.3298 +CH 5621 Zufikon Kanton Aargau AG Bezirk Bremgarten 1903 Zufikon 4083 47.3447 8.3582 4 +CH 5626 Hermetschwil-Staffeln Kanton Aargau AG Bezirk Bremgarten 1903 Bremgarten (AG) 4063 47.3304 8.3415 4 +CH 8905 Arni-Islisberg Kanton Aargau AG Bezirk Bremgarten 1903 Arni (AG) 4061 47.317 8.4223 6 +CH 8905 Islisberg Kanton Aargau AG Bezirk Bremgarten 1903 Islisberg 4084 47.3233 8.4412 4 +CH 8905 Arni AG Kanton Aargau AG Bezirk Bremgarten 1903 Arni (AG) 4061 47.317 8.4223 4 +CH 8916 Jonen Kanton Aargau AG Bezirk Bremgarten 1903 Jonen 4071 47.2997 8.4022 4 +CH 8917 Oberlunkhofen Kanton Aargau AG Bezirk Bremgarten 1903 Oberlunkhofen 4073 47.3125 8.3977 4 +CH 8918 Unterlunkhofen Kanton Aargau AG Bezirk Bremgarten 1903 Unterlunkhofen 4079 47.3248 8.3832 4 +CH 8964 Rudolfstetten Kanton Aargau AG Bezirk Bremgarten 1903 Rudolfstetten-Friedlisberg 4075 47.3683 8.3847 4 +CH 8965 Berikon Kanton Aargau AG Bezirk Bremgarten 1903 Berikon 4062 47.3538 8.3837 4 +CH 8966 Oberwil-Lieli Kanton Aargau AG Bezirk Bremgarten 1903 Oberwil-Lieli 4074 47.3371 8.3952 4 +CH 8967 Widen Kanton Aargau AG Bezirk Bremgarten 1903 Widen 4081 47.3705 8.3583 4 +CH 5105 Auenstein Kanton Aargau AG Bezirk Brugg 1904 Auenstein 4091 47.4185 8.1262 4 +CH 5106 Veltheim AG Kanton Aargau AG Bezirk Brugg 1904 Veltheim (AG) 4120 47.4318 8.1484 4 +CH 5107 Schinznach Dorf Kanton Aargau AG Bezirk Brugg 1904 Schinznach 4125 47.4543 8.139 4 +CH 5108 Oberflachs Kanton Aargau AG Bezirk Brugg 1904 Schinznach 4125 47.4379 8.1229 4 +CH 5112 Thalheim AG Kanton Aargau AG Bezirk Brugg 1904 Thalheim (AG) 4117 47.4392 8.0934 4 +CH 5116 Schinznach Bad Kanton Aargau AG Bezirk Brugg 1904 Brugg 4095 47.4538 8.1687 4 +CH 5200 Brugg AG Kanton Aargau AG Bezirk Brugg 1904 Brugg 4095 47.4864 8.2112 4 +CH 5201 Brugg AG Kanton Aargau AG Bezirk Brugg 1904 Brugg 4095 47.4863 8.211 +CH 5210 Windisch Kanton Aargau AG Bezirk Brugg 1904 Windisch 4123 47.4759 8.2221 4 +CH 5212 Hausen AG Kanton Aargau AG Bezirk Brugg 1904 Hausen (AG) 4100 47.4613 8.2074 4 +CH 5213 Villnachern Kanton Aargau AG Bezirk Brugg 1904 Villnachern 4122 47.4725 8.1625 4 +CH 5222 Umiken Kanton Aargau AG Bezirk Brugg 1904 Brugg 4095 47.4812 8.1867 4 +CH 5223 Riniken Kanton Aargau AG Bezirk Brugg 1904 Riniken 4111 47.4939 8.1867 4 +CH 5225 Bözberg Kanton Aargau AG Bezirk Brugg 1904 Bözberg 4124 47.4891 8.145 4 +CH 5232 Villigen PSI Kanton Aargau AG Bezirk Brugg 1904 Villigen 4121 47.5296 8.2072 +CH 5233 Stilli Kanton Aargau AG Bezirk Brugg 1904 Villigen 4121 47.5165 8.2315 4 +CH 5234 Villigen Kanton Aargau AG Bezirk Brugg 1904 Villigen 4121 47.5301 8.2063 4 +CH 5235 Rüfenach AG Kanton Aargau AG Bezirk Brugg 1904 Rüfenach 4112 47.5049 8.2127 4 +CH 5236 Remigen Kanton Aargau AG Bezirk Brugg 1904 Remigen 4110 47.5174 8.1759 4 +CH 5237 Mönthal Kanton Aargau AG Bezirk Brugg 1904 Mönthal 4106 47.5165 8.1376 4 +CH 5242 Lupfig Kanton Aargau AG Bezirk Brugg 1904 Lupfig 4104 47.4436 8.2075 4 +CH 5242 Birr Kanton Aargau AG Bezirk Brugg 1904 Birr 4092 47.4322 8.2121 4 +CH 5242 Birr-Lupfig Kanton Aargau AG Bezirk Brugg 1904 Lupfig 4104 47.4437 8.2076 6 +CH 5243 Mülligen Kanton Aargau AG Bezirk Brugg 1904 Mülligen 4107 47.4524 8.2385 4 +CH 5244 Birrhard Kanton Aargau AG Bezirk Brugg 1904 Birrhard 4093 47.4361 8.2423 4 +CH 5245 Habsburg Kanton Aargau AG Bezirk Brugg 1904 Habsburg 4099 47.4614 8.186 4 +CH 5246 Scherz Kanton Aargau AG Bezirk Brugg 1904 Lupfig 4104 47.4469 8.1842 4 +CH 5318 Mandach Kanton Aargau AG Bezirk Brugg 1904 Mandach 4105 47.5515 8.1877 4 +CH 5040 Schöftland Kanton Aargau AG Bezirk Kulm 1905 Schöftland 4144 47.3054 8.0557 4 +CH 5043 Holziken Kanton Aargau AG Bezirk Kulm 1905 Holziken 4136 47.3195 8.0343 4 +CH 5044 Schlossrued Kanton Aargau AG Bezirk Kulm 1905 Schlossrued 4142 47.2902 8.0884 4 +CH 5046 Walde AG Kanton Aargau AG Bezirk Kulm 1905 Schmiedrued 4143 47.2535 8.1161 4 +CH 5046 Schmiedrued Kanton Aargau AG Bezirk Kulm 1905 Schmiedrued 4143 47.271 8.1087 4 +CH 5046 Schmiedrued-Walde Kanton Aargau AG Bezirk Kulm 1905 Schmiedrued 4143 47.2632 8.1117 6 +CH 5708 Birrwil Kanton Aargau AG Bezirk Kulm 1905 Birrwil 4132 47.2919 8.1981 4 +CH 5712 Beinwil am See Kanton Aargau AG Bezirk Kulm 1905 Beinwil am See 4131 47.2665 8.2086 4 +CH 5723 Teufenthal AG Kanton Aargau AG Bezirk Kulm 1905 Teufenthal (AG) 4145 47.3281 8.1259 4 +CH 5724 Dürrenäsch Kanton Aargau AG Bezirk Kulm 1905 Dürrenäsch 4134 47.3186 8.1544 4 +CH 5725 Leutwil Kanton Aargau AG Bezirk Kulm 1905 Leutwil 4138 47.3056 8.1738 4 +CH 5726 Unterkulm Kanton Aargau AG Bezirk Kulm 1905 Unterkulm 4146 47.3177 8.1032 4 +CH 5727 Oberkulm Kanton Aargau AG Bezirk Kulm 1905 Oberkulm 4140 47.2984 8.1259 4 +CH 5728 Gontenschwil Kanton Aargau AG Bezirk Kulm 1905 Gontenschwil 4135 47.2676 8.1415 4 +CH 5732 Zetzwil Kanton Aargau AG Bezirk Kulm 1905 Zetzwil 4147 47.2883 8.162 4 +CH 5733 Leimbach AG Kanton Aargau AG Bezirk Kulm 1905 Leimbach (AG) 4137 47.2749 8.1701 4 +CH 5734 Reinach AG Kanton Aargau AG Bezirk Kulm 1905 Reinach (AG) 4141 47.2612 8.1793 4 +CH 5736 Burg AG Kanton Aargau AG Bezirk Kulm 1905 Burg (AG) 4133 47.2339 8.178 4 +CH 5737 Menziken Kanton Aargau AG Bezirk Kulm 1905 Menziken 4139 47.236 8.1865 4 +CH 4333 Münchwilen AG Kanton Aargau AG Bezirk Laufenburg 1906 Münchwilen (AG) 4172 47.5375 7.9642 4 +CH 4334 Sisseln AG Kanton Aargau AG Bezirk Laufenburg 1906 Sisseln 4177 47.5522 7.9853 4 +CH 5027 Herznach Kanton Aargau AG Bezirk Laufenburg 1906 Herznach 4166 47.4721 8.0465 4 +CH 5028 Ueken Kanton Aargau AG Bezirk Laufenburg 1906 Ueken 4179 47.4854 8.0434 4 +CH 5062 Oberhof Kanton Aargau AG Bezirk Laufenburg 1906 Oberhof 4173 47.4418 8.007 4 +CH 5063 Wölflinswil Kanton Aargau AG Bezirk Laufenburg 1906 Wölflinswil 4182 47.4628 8.0002 4 +CH 5064 Wittnau Kanton Aargau AG Bezirk Laufenburg 1906 Wittnau 4181 47.4771 7.9661 4 +CH 5070 Frick Kanton Aargau AG Bezirk Laufenburg 1906 Frick 4163 47.5097 8.0142 4 +CH 5072 Oeschgen Kanton Aargau AG Bezirk Laufenburg 1906 Oeschgen 4175 47.5249 8.0171 4 +CH 5073 Gipf-Oberfrick Kanton Aargau AG Bezirk Laufenburg 1906 Gipf-Oberfrick 4165 47.4931 7.9962 4 +CH 5074 Eiken Kanton Aargau AG Bezirk Laufenburg 1906 Eiken 4161 47.537 7.9892 4 +CH 5075 Hornussen Kanton Aargau AG Bezirk Laufenburg 1906 Böztal 4185 47.5016 8.0625 4 +CH 5076 Bözen Kanton Aargau AG Bezirk Laufenburg 1906 Böztal 4185 47.4964 8.0859 4 +CH 5077 Elfingen Kanton Aargau AG Bezirk Laufenburg 1906 Böztal 4185 47.51 8.1022 4 +CH 5078 Effingen Kanton Aargau AG Bezirk Laufenburg 1906 Böztal 4185 47.4928 8.1125 4 +CH 5079 Zeihen Kanton Aargau AG Bezirk Laufenburg 1906 Zeihen 4183 47.4705 8.0931 4 +CH 5080 Laufenburg Kanton Aargau AG Bezirk Laufenburg 1906 Laufenburg 4170 47.556 8.0608 4 +CH 5082 Kaisten Kanton Aargau AG Bezirk Laufenburg 1906 Kaisten 4169 47.5386 8.0448 4 +CH 5083 Ittenthal Kanton Aargau AG Bezirk Laufenburg 1906 Kaisten 4169 47.519 8.0622 4 +CH 5084 Rheinsulz Kanton Aargau AG Bezirk Laufenburg 1906 Laufenburg 4170 47.5528 8.0867 4 +CH 5085 Sulz AG Kanton Aargau AG Bezirk Laufenburg 1906 Laufenburg 4170 47.5343 8.098 4 +CH 5272 Gansingen Kanton Aargau AG Bezirk Laufenburg 1906 Gansingen 4164 47.5372 8.1317 4 +CH 5273 Oberhofen AG Kanton Aargau AG Bezirk Laufenburg 1906 Mettauertal 4184 47.5562 8.1252 4 +CH 5274 Mettau Kanton Aargau AG Bezirk Laufenburg 1906 Mettauertal 4184 47.569 8.1301 4 +CH 5275 Etzgen Kanton Aargau AG Bezirk Laufenburg 1906 Mettauertal 4184 47.5743 8.1137 4 +CH 5276 Wil AG Kanton Aargau AG Bezirk Laufenburg 1906 Mettauertal 4184 47.5662 8.1575 4 +CH 5277 Hottwil Kanton Aargau AG Bezirk Laufenburg 1906 Mettauertal 4184 47.5423 8.1638 4 +CH 5326 Schwaderloch Kanton Aargau AG Bezirk Laufenburg 1906 Schwaderloch 4176 47.5858 8.1457 4 +CH 5102 Rupperswil Kanton Aargau AG Bezirk Lenzburg 1907 Rupperswil 4206 47.4038 8.1311 4 +CH 5103 Wildegg Kanton Aargau AG Bezirk Lenzburg 1907 Möriken-Wildegg 4203 47.4159 8.1651 4 +CH 5103 Möriken AG Kanton Aargau AG Bezirk Lenzburg 1907 Möriken-Wildegg 4203 47.4165 8.191 4 +CH 5113 Holderbank AG Kanton Aargau AG Bezirk Lenzburg 1907 Holderbank (AG) 4199 47.4309 8.1707 4 +CH 5502 Hunzenschwil Kanton Aargau AG Bezirk Lenzburg 1907 Hunzenschwil 4200 47.3842 8.1229 4 +CH 5503 Schafisheim Kanton Aargau AG Bezirk Lenzburg 1907 Schafisheim 4207 47.3737 8.1391 4 +CH 5504 Othmarsingen Kanton Aargau AG Bezirk Lenzburg 1907 Othmarsingen 4205 47.4016 8.2146 4 +CH 5505 Brunegg Kanton Aargau AG Bezirk Lenzburg 1907 Brunegg 4193 47.4207 8.2199 4 +CH 5600 Lenzburg 1 Kanton Aargau AG Bezirk Lenzburg 1907 Lenzburg 4201 47.3856 8.1805 6 +CH 5600 Lenzburg Kanton Aargau AG Bezirk Lenzburg 1907 Lenzburg 4201 47.3855 8.1805 4 +CH 5600 Ammerswil AG Kanton Aargau AG Bezirk Lenzburg 1907 Ammerswil 4191 47.3682 8.2057 4 +CH 5603 Staufen Kanton Aargau AG Bezirk Lenzburg 1907 Staufen 4210 47.3788 8.16 4 +CH 5604 Hendschiken Kanton Aargau AG Bezirk Lenzburg 1907 Hendschiken 4198 47.3846 8.2159 4 +CH 5606 Dintikon Kanton Aargau AG Bezirk Lenzburg 1907 Dintikon 4194 47.3616 8.2218 4 +CH 5615 Fahrwangen Kanton Aargau AG Bezirk Lenzburg 1907 Fahrwangen 4196 47.2863 8.2392 4 +CH 5616 Meisterschwanden Kanton Aargau AG Bezirk Lenzburg 1907 Meisterschwanden 4202 47.2902 8.2258 4 +CH 5617 Tennwil Kanton Aargau AG Bezirk Lenzburg 1907 Meisterschwanden 4202 47.3062 8.2191 4 +CH 5702 Niederlenz Kanton Aargau AG Bezirk Lenzburg 1907 Niederlenz 4204 47.4034 8.1704 4 +CH 5703 Seon Kanton Aargau AG Bezirk Lenzburg 1907 Seon 4209 47.3482 8.1576 4 +CH 5704 Egliswil Kanton Aargau AG Bezirk Lenzburg 1907 Egliswil 4195 47.3517 8.1903 4 +CH 5705 Hallwil Kanton Aargau AG Bezirk Lenzburg 1907 Hallwil 4197 47.3265 8.1779 4 +CH 5706 Boniswil Kanton Aargau AG Bezirk Lenzburg 1907 Boniswil 4192 47.3118 8.1921 4 +CH 5707 Seengen Kanton Aargau AG Bezirk Lenzburg 1907 Seengen 4208 47.3283 8.2087 4 +CH 5618 Bettwil Kanton Aargau AG Bezirk Muri 1908 Bettwil 4227 47.2902 8.2717 4 +CH 5622 Waltenschwil Kanton Aargau AG Bezirk Muri 1908 Waltenschwil 4240 47.3341 8.2989 4 +CH 5623 Boswil Kanton Aargau AG Bezirk Muri 1908 Boswil 4228 47.2998 8.3092 4 +CH 5624 Bünzen Kanton Aargau AG Bezirk Muri 1908 Bünzen 4229 47.3156 8.3263 4 +CH 5624 Waldhäusern AG Kanton Aargau AG Bezirk Muri 1908 Bünzen 4229 47.3274 8.3164 4 +CH 5625 Kallern Kanton Aargau AG Bezirk Muri 1908 Kallern 4233 47.3095 8.2901 4 +CH 5627 Besenbüren Kanton Aargau AG Bezirk Muri 1908 Besenbüren 4226 47.3128 8.3449 4 +CH 5628 Aristau Kanton Aargau AG Bezirk Muri 1908 Aristau 4222 47.2912 8.3647 4 +CH 5630 Muri AG Kanton Aargau AG Bezirk Muri 1908 Muri (AG) 4236 47.272 8.3393 4 +CH 5632 Buttwil Kanton Aargau AG Bezirk Muri 1908 Buttwil 4230 47.2688 8.3063 4 +CH 5634 Merenschwand Kanton Aargau AG Bezirk Muri 1908 Merenschwand 4234 47.2627 8.3839 4 +CH 5636 Benzenschwil Kanton Aargau AG Bezirk Muri 1908 Merenschwand 4234 47.2465 8.3637 4 +CH 5637 Geltwil Kanton Aargau AG Bezirk Muri 1908 Geltwil 4232 47.249 8.326 4 +CH 5637 Beinwil (Freiamt) Kanton Aargau AG Bezirk Muri 1908 Beinwil (Freiamt) 4224 47.2295 8.3392 4 +CH 5642 Mühlau Kanton Aargau AG Bezirk Muri 1908 Mühlau 4235 47.2342 8.3891 4 +CH 5643 Alikon Kanton Aargau AG Bezirk Muri 1908 Sins 4239 47.1965 8.3524 4 +CH 5643 Meienberg Kanton Aargau AG Bezirk Muri 1908 Sins 4239 47.1976 8.3767 4 +CH 5643 Sins Kanton Aargau AG Bezirk Muri 1908 Sins 4239 47.196 8.3851 4 +CH 5643 Sins Kanton Aargau AG Bezirk Muri 1908 Sins 4239 47.196 8.3851 4 +CH 5644 Auw Kanton Aargau AG Bezirk Muri 1908 Auw 4223 47.2148 8.3627 4 +CH 5645 Fenkrieden Kanton Aargau AG Bezirk Muri 1908 Sins 4239 47.1595 8.3712 4 +CH 5645 Aettenschwil Kanton Aargau AG Bezirk Muri 1908 Sins 4239 47.1838 8.3727 4 +CH 5646 Abtwil AG Kanton Aargau AG Bezirk Muri 1908 Abtwil 4221 47.174 8.3538 4 +CH 5647 Oberrüti Kanton Aargau AG Bezirk Muri 1908 Oberrüti 4237 47.1669 8.3986 4 +CH 6042 Dietwil Kanton Aargau AG Bezirk Muri 1908 Dietwil 4231 47.1483 8.3963 4 +CH 8919 Rottenschwil Kanton Aargau AG Bezirk Muri 1908 Rottenschwil 4238 47.3144 8.3659 4 +CH 4303 Kaiseraugst Liebrüti Kanton Aargau AG Bezirk Rheinfelden 1909 Kaiseraugst 4252 47.5361 7.7421 +CH 4303 Kaiseraugst Kanton Aargau AG Bezirk Rheinfelden 1909 Kaiseraugst 4252 47.5364 7.7428 4 +CH 4305 Olsberg Kanton Aargau AG Bezirk Rheinfelden 1909 Olsberg 4257 47.526 7.7777 4 +CH 4310 Rheinfelden Kanton Aargau AG Bezirk Rheinfelden 1909 Rheinfelden 4258 47.5493 7.7982 4 +CH 4310 Rheinfelden 1 Kanton Aargau AG Bezirk Rheinfelden 1909 Rheinfelden 4258 47.5559 7.8045 +CH 4312 Magden Kanton Aargau AG Bezirk Rheinfelden 1909 Magden 4253 47.5196 7.8096 4 +CH 4313 Möhlin Kanton Aargau AG Bezirk Rheinfelden 1909 Möhlin 4254 47.5655 7.8489 4 +CH 4314 Zeiningen Kanton Aargau AG Bezirk Rheinfelden 1909 Zeiningen 4263 47.5433 7.8762 4 +CH 4315 Zuzgen Kanton Aargau AG Bezirk Rheinfelden 1909 Zuzgen 4264 47.5243 7.8999 4 +CH 4316 Hellikon Kanton Aargau AG Bezirk Rheinfelden 1909 Hellikon 4251 47.5089 7.9167 4 +CH 4317 Wegenstetten Kanton Aargau AG Bezirk Rheinfelden 1909 Wegenstetten 4262 47.4939 7.9312 4 +CH 4322 Mumpf Kanton Aargau AG Bezirk Rheinfelden 1909 Mumpf 4255 47.5451 7.9135 4 +CH 4323 Wallbach Kanton Aargau AG Bezirk Rheinfelden 1909 Wallbach 4261 47.568 7.8979 4 +CH 4324 Obermumpf Kanton Aargau AG Bezirk Rheinfelden 1909 Obermumpf 4256 47.5299 7.937 4 +CH 4325 Schupfart Kanton Aargau AG Bezirk Rheinfelden 1909 Schupfart 4259 47.5134 7.9625 4 +CH 4332 Stein AG Kanton Aargau AG Bezirk Rheinfelden 1909 Stein (AG) 4260 47.5452 7.9528 4 +CH 4663 Aarburg Kanton Aargau AG Bezirk Zofingen 1910 Aarburg 4271 47.3236 7.9057 4 +CH 4665 Oftringen 1 Kanton Aargau AG Bezirk Zofingen 1910 Oftringen 4280 47.3134 7.939 +CH 4665 Oftringen Kanton Aargau AG Bezirk Zofingen 1910 Oftringen 4280 47.313 7.9391 4 +CH 4665 Oftringen 2 Kanton Aargau AG Bezirk Zofingen 1910 Oftringen 4280 47.3134 7.939 +CH 4800 Zofingen Kanton Aargau AG Bezirk Zofingen 1910 Zofingen 4289 47.2865 7.9576 4 +CH 4801 Zofingen Kanton Aargau AG Bezirk Zofingen 1910 Zofingen 4289 47.2888 7.9633 +CH 4801 Zofingen Ringier AG Kanton Aargau AG Bezirk Zofingen 1910 Zofingen 4289 47.2888 7.9633 +CH 4802 Strengelbach Kanton Aargau AG Bezirk Zofingen 1910 Strengelbach 4285 47.2834 7.9225 4 +CH 4803 Vordemwald Kanton Aargau AG Bezirk Zofingen 1910 Vordemwald 4287 47.2694 7.8926 4 +CH 4805 Brittnau Kanton Aargau AG Bezirk Zofingen 1910 Brittnau 4274 47.2546 7.9287 4 +CH 4807 Zofingen PostFinance Kanton Aargau AG Bezirk Zofingen 1910 Zofingen 4289 47.2888 7.9633 +CH 4807 Zofingen PF Kanton Aargau AG Bezirk Zofingen 1910 Zofingen 4289 47.2888 7.9633 +CH 4808 Zofingen PF Kanton Aargau AG Bezirk Zofingen 1910 Zofingen 4289 47.2888 7.9633 +CH 4808 Zofingen PostFinance Kanton Aargau AG Bezirk Zofingen 1910 Zofingen 4289 47.2888 7.9633 +CH 4809 Zofingen PF Kanton Aargau AG Bezirk Zofingen 1910 Zofingen 4289 47.2888 7.9633 +CH 4809 Zofingen PF UBS Kanton Aargau AG Bezirk Zofingen 1910 Zofingen 4289 47.2888 7.9633 +CH 4809 Zofingen PF UBS Verarb. Kanton Aargau AG Bezirk Zofingen 1910 Zofingen 4289 47.2888 7.9633 +CH 4809 Zofingen Postfinance UBS Kanton Aargau AG Bezirk Zofingen 1910 Zofingen 4289 47.2888 7.9633 +CH 4810 Zofingen PF Kanton Aargau AG Bezirk Zofingen 1910 Zofingen 4289 47.2888 7.9633 +CH 4812 Mühlethal Kanton Aargau AG Bezirk Zofingen 1910 Zofingen 4289 47.299 7.9784 4 +CH 4813 Uerkheim Kanton Aargau AG Bezirk Zofingen 1910 Uerkheim 4286 47.3042 8.01 4 +CH 4814 Bottenwil Kanton Aargau AG Bezirk Zofingen 1910 Bottenwil 4273 47.2847 8.0021 4 +CH 4852 Rothrist Kanton Aargau AG Bezirk Zofingen 1910 Rothrist 4282 47.2983 7.8836 4 +CH 4853 Murgenthal Kanton Aargau AG Bezirk Zofingen 1910 Murgenthal 4279 47.2698 7.8388 4 +CH 4853 Riken AG Kanton Aargau AG Bezirk Zofingen 1910 Murgenthal 4279 47.2729 7.8612 4 +CH 4853 Murgenthal Kanton Aargau AG Bezirk Zofingen 1910 Murgenthal 4279 47.2698 7.8388 4 +CH 4856 Glashütten Kanton Aargau AG Bezirk Zofingen 1910 Murgenthal 4279 47.2492 7.8546 4 +CH 5053 Wittwil Kanton Aargau AG Bezirk Zofingen 1910 Staffelbach 4284 47.2931 8.0359 4 +CH 5053 Staffelbach Kanton Aargau AG Bezirk Zofingen 1910 Staffelbach 4284 47.2813 8.0391 4 +CH 5054 Moosleerau Kanton Aargau AG Bezirk Zofingen 1910 Moosleerau 4277 47.2645 8.0661 4 +CH 5054 Kirchleerau-Moosleerau Kanton Aargau AG Bezirk Zofingen 1910 Kirchleerau 4275 47.2772 8.0741 6 +CH 5054 Kirchleerau Kanton Aargau AG Bezirk Zofingen 1910 Kirchleerau 4275 47.2772 8.074 4 +CH 5056 Attelwil Kanton Aargau AG Bezirk Zofingen 1910 Reitnau 4281 47.2634 8.0397 4 +CH 5057 Reitnau Kanton Aargau AG Bezirk Zofingen 1910 Reitnau 4281 47.2515 8.0354 4 +CH 5058 Wiliberg Kanton Aargau AG Bezirk Zofingen 1910 Wiliberg 4288 47.2669 8.0166 4 +CH 5742 Kölliken Kanton Aargau AG Bezirk Zofingen 1910 Kölliken 4276 47.3347 8.021 4 +CH 5745 Safenwil Kanton Aargau AG Bezirk Zofingen 1910 Safenwil 4283 47.3197 7.9869 4 +CH 5304 Endingen Kanton Aargau AG Bezirk Zurzach 1911 Endingen 4305 47.5307 8.2901 4 +CH 5305 Unterendingen Kanton Aargau AG Bezirk Zurzach 1911 Endingen 4305 47.5461 8.289 4 +CH 5306 Tegerfelden Kanton Aargau AG Bezirk Zurzach 1911 Tegerfelden 4320 47.5619 8.2849 4 +CH 5312 Döttingen Kanton Aargau AG Bezirk Zurzach 1911 Döttingen 4304 47.56 8.253 4 +CH 5313 Klingnau Kanton Aargau AG Bezirk Zurzach 1911 Klingnau 4309 47.5886 8.2507 4 +CH 5314 Kleindöttingen Kanton Aargau AG Bezirk Zurzach 1911 Böttstein 4303 47.5692 8.238 4 +CH 5315 Böttstein Kanton Aargau AG Bezirk Zurzach 1911 Böttstein 4303 47.5529 8.2181 4 +CH 5316 Leuggern Kanton Aargau AG Bezirk Zurzach 1911 Leuggern 4313 47.584 8.2169 4 +CH 5317 Hettenschwil Kanton Aargau AG Bezirk Zurzach 1911 Leuggern 4313 47.5739 8.1939 4 +CH 5322 Koblenz Kanton Aargau AG Bezirk Zurzach 1911 Koblenz 4310 47.6044 8.2447 4 +CH 5323 Rietheim Kanton Aargau AG Bezirk Zurzach 1911 Zurzach 4324 47.6029 8.2739 4 +CH 5324 Full-Reuenthal Kanton Aargau AG Bezirk Zurzach 1911 Full-Reuenthal 4307 47.6087 8.2028 4 +CH 5325 Leibstadt Kanton Aargau AG Bezirk Zurzach 1911 Leibstadt 4311 47.5897 8.1784 4 +CH 5330 Bad Zurzach Kanton Aargau AG Bezirk Zurzach 1911 Zurzach 4324 47.5859 8.292 4 +CH 5332 Rekingen AG Kanton Aargau AG Bezirk Zurzach 1911 Zurzach 4324 47.5671 8.3218 4 +CH 5333 Baldingen Kanton Aargau AG Bezirk Zurzach 1911 Zurzach 4324 47.5548 8.3136 4 +CH 5334 Böbikon Kanton Aargau AG Bezirk Zurzach 1911 Zurzach 4324 47.5504 8.3379 4 +CH 5425 Schneisingen Kanton Aargau AG Bezirk Zurzach 1911 Schneisingen 4318 47.5249 8.3617 4 +CH 5426 Lengnau AG Kanton Aargau AG Bezirk Zurzach 1911 Lengnau (AG) 4312 47.5251 8.3241 4 +CH 5462 Siglistorf Kanton Aargau AG Bezirk Zurzach 1911 Siglistorf 4319 47.5387 8.387 4 +CH 5463 Wislikofen Kanton Aargau AG Bezirk Zurzach 1911 Zurzach 4324 47.5537 8.3667 4 +CH 5464 Rümikon AG Kanton Aargau AG Bezirk Zurzach 1911 Zurzach 4324 47.5643 8.3806 4 +CH 5465 Mellikon Kanton Aargau AG Bezirk Zurzach 1911 Mellikon 4314 47.5633 8.3472 4 +CH 5466 Kaiserstuhl AG Kanton Aargau AG Bezirk Zurzach 1911 Zurzach 4324 47.5677 8.419 4 +CH 5467 Fisibach Kanton Aargau AG Bezirk Zurzach 1911 Fisibach 4306 47.5583 8.4047 4 +CH 9050 Appenzell Kanton Appenzell Innerrhoden AI Appenzell Inner Rhodes 1600 Appenzell 3101 47.3238 9.4038 4 +CH 9050 Appenzell Eggerstanden Kanton Appenzell Innerrhoden AI Appenzell Inner Rhodes 1600 Rüte 3103 47.334 9.4797 4 +CH 9050 Appenzell Schlatt Kanton Appenzell Innerrhoden AI Appenzell Inner Rhodes 1600 Schlatt-Haslen 3104 47.3563 9.4015 4 +CH 9050 Appenzell Enggenhütten Kanton Appenzell Innerrhoden AI Appenzell Inner Rhodes 1600 Schlatt-Haslen 3104 47.3491 9.3614 4 +CH 9050 Appenzell Meistersrüte Kanton Appenzell Innerrhoden AI Appenzell Inner Rhodes 1600 Appenzell 3101 47.348 9.4364 4 +CH 9050 Appenzell Steinegg Kanton Appenzell Innerrhoden AI Appenzell Inner Rhodes 1600 Rüte 3103 47.3211 9.4522 4 +CH 9054 Haslen AI Kanton Appenzell Innerrhoden AI Appenzell Inner Rhodes 1600 Schlatt-Haslen 3104 47.3692 9.3788 4 +CH 9057 Wasserauen Kanton Appenzell Innerrhoden AI Appenzell Inner Rhodes 1600 Schwende 3105 47.2644 9.3918 4 +CH 9057 Weissbad Kanton Appenzell Innerrhoden AI Appenzell Inner Rhodes 1600 Rüte 3103 47.2868 9.3818 4 +CH 9057 Schwende Kanton Appenzell Innerrhoden AI Appenzell Inner Rhodes 1600 Schwende 3105 47.2965 9.4345 4 +CH 9058 Brülisau Kanton Appenzell Innerrhoden AI Appenzell Inner Rhodes 1600 Rüte 3103 47.2799 9.4497 4 +CH 9108 Jakobsbad Kanton Appenzell Innerrhoden AI Appenzell Inner Rhodes 1600 Gonten 3102 47.3064 9.3299 4 +CH 9108 Gontenbad Kanton Appenzell Innerrhoden AI Appenzell Inner Rhodes 1600 Gonten 3102 47.3259 9.3707 4 +CH 9108 Gonten Kanton Appenzell Innerrhoden AI Appenzell Inner Rhodes 1600 Gonten 3102 47.3237 9.3494 4 +CH 9413 Oberegg Kanton Appenzell Innerrhoden AI Appenzell Inner Rhodes 1600 Oberegg 3111 47.4165 9.5533 4 +CH 9413 Oberegg Kanton Appenzell Innerrhoden AI Appenzell Inner Rhodes 1600 Oberegg 3111 47.4165 9.5533 4 +CH 9442 Büriswilen Kanton Appenzell Innerrhoden AI Appenzell Inner Rhodes 1600 Oberegg 3111 47.4331 9.6025 4 +CH 9063 Stein AR Kanton Appenzell Ausserrhoden AR Bezirk Hinterland 1501 Stein (AR) 3005 47.3761 9.3417 4 +CH 9064 Hundwil Kanton Appenzell Ausserrhoden AR Bezirk Hinterland 1501 Hundwil 3002 47.3517 9.319 4 +CH 9100 Herisau Kanton Appenzell Ausserrhoden AR Bezirk Hinterland 1501 Herisau 3001 47.3833 9.2813 4 +CH 9102 Herisau Kanton Appenzell Ausserrhoden AR Bezirk Hinterland 1501 Herisau 3001 47.3861 9.2792 +CH 9103 Schwellbrunn Kanton Appenzell Ausserrhoden AR Bezirk Hinterland 1501 Schwellbrunn 3004 47.3516 9.2362 4 +CH 9104 Waldstatt Kanton Appenzell Ausserrhoden AR Bezirk Hinterland 1501 Waldstatt 3007 47.3567 9.2854 4 +CH 9105 Schönengrund Kanton Appenzell Ausserrhoden AR Bezirk Hinterland 1501 Schönengrund 3003 47.3254 9.2267 4 +CH 9107 Urnäsch Kanton Appenzell Ausserrhoden AR Bezirk Hinterland 1501 Urnäsch 3006 47.2948 9.2779 4 +CH 9112 Schachen b. Herisau Kanton Appenzell Ausserrhoden AR Bezirk Hinterland 1501 Herisau 3001 47.3797 9.2366 4 +CH 9037 Speicherschwendi Kanton Appenzell Ausserrhoden AR Bezirk Mittelland 1502 Speicher 3023 47.428 9.4383 4 +CH 9042 Speicher Kanton Appenzell Ausserrhoden AR Bezirk Mittelland 1502 Speicher 3023 47.4099 9.441 4 +CH 9043 Trogen Kanton Appenzell Ausserrhoden AR Bezirk Mittelland 1502 Trogen 3025 47.4003 9.4764 4 +CH 9052 Niederteufen Kanton Appenzell Ausserrhoden AR Bezirk Mittelland 1502 Teufen (AR) 3024 47.3909 9.362 4 +CH 9053 Teufen AR Kanton Appenzell Ausserrhoden AR Bezirk Mittelland 1502 Teufen (AR) 3024 47.3928 9.4 4 +CH 9055 Bühler Kanton Appenzell Ausserrhoden AR Bezirk Mittelland 1502 Bühler 3021 47.3783 9.4266 4 +CH 9056 Gais Kanton Appenzell Ausserrhoden AR Bezirk Mittelland 1502 Gais 3022 47.368 9.4714 4 +CH 9062 Lustmühle Kanton Appenzell Ausserrhoden AR Bezirk Mittelland 1502 Teufen (AR) 3024 47.3988 9.3542 4 +CH 9035 Grub AR Kanton Appenzell Ausserrhoden AR Bezirk Vorderland 1503 Grub (AR) 3031 47.4412 9.5017 4 +CH 9038 Rehetobel Kanton Appenzell Ausserrhoden AR Bezirk Vorderland 1503 Rehetobel 3034 47.4283 9.4843 4 +CH 9044 Wald AR Kanton Appenzell Ausserrhoden AR Bezirk Vorderland 1503 Wald (AR) 3036 47.4146 9.5044 4 +CH 9405 Wienacht-Tobel Kanton Appenzell Ausserrhoden AR Bezirk Vorderland 1503 Lutzenberg 3033 47.465 9.5362 4 +CH 9410 Heiden Kanton Appenzell Ausserrhoden AR Bezirk Vorderland 1503 Heiden 3032 47.4408 9.5349 4 +CH 9411 Schachen b. Reute Kanton Appenzell Ausserrhoden AR Bezirk Vorderland 1503 Reute (AR) 3035 47.4256 9.5608 4 +CH 9411 Reute AR Kanton Appenzell Ausserrhoden AR Bezirk Vorderland 1503 Reute (AR) 3035 47.4088 9.5662 4 +CH 9426 Lutzenberg Kanton Appenzell Ausserrhoden AR Bezirk Vorderland 1503 Lutzenberg 3033 47.4593 9.5748 4 +CH 9427 Wolfhalden Kanton Appenzell Ausserrhoden AR Bezirk Vorderland 1503 Wolfhalden 3038 47.4506 9.5612 4 +CH 9428 Walzenhausen Kanton Appenzell Ausserrhoden AR Bezirk Vorderland 1503 Walzenhausen 3037 47.4433 9.5971 4 +CH 2333 La Ferrière Canton de Berne BE Jura bernois 241 La Ferrière 435 47.1498 6.9105 4 +CH 2345 Le Cerneux-Veusil Canton de Berne BE Jura bernois 241 Saint-Imier 443 47.1791 6.967 4 +CH 2515 Prêles Canton de Berne BE Jura bernois 241 Plateau de Diesse 726 47.095 7.1153 4 +CH 2516 Lamboing Canton de Berne BE Jura bernois 241 Plateau de Diesse 726 47.1256 7.1575 4 +CH 2517 Diesse Canton de Berne BE Jura bernois 241 Plateau de Diesse 726 47.1201 7.118 4 +CH 2518 Nods Canton de Berne BE Jura bernois 241 Nods 724 47.1209 7.0746 4 +CH 2520 La Neuveville Canton de Berne BE Jura bernois 241 La Neuveville 723 47.0741 7.1023 4 +CH 2534 Les Prés-d'Orvin Canton de Berne BE Jura bernois 241 Orvin 438 47.1555 7.1664 4 +CH 2534 Orvin Canton de Berne BE Jura bernois 241 Orvin 438 47.157 7.2125 4 +CH 2535 Frinvillier Canton de Berne BE Jura bernois 241 Sauge 449 47.1695 7.2544 4 +CH 2536 Plagne Canton de Berne BE Jura bernois 241 Sauge 449 47.1905 7.2848 4 +CH 2537 Vauffelin Canton de Berne BE Jura bernois 241 Sauge 449 47.1841 7.298 4 +CH 2538 Romont BE Canton de Berne BE Jura bernois 241 Romont (BE) 442 47.1932 7.3318 4 +CH 2603 Péry Canton de Berne BE Jura bernois 241 Péry-La Heutte 450 47.1998 7.2694 4 +CH 2604 La Heutte Canton de Berne BE Jura bernois 241 Péry-La Heutte 450 47.1887 7.2178 4 +CH 2605 Sonceboz-Sombeval Canton de Berne BE Jura bernois 241 Sonceboz-Sombeval 444 47.1884 7.1806 4 +CH 2606 Corgémont Canton de Berne BE Jura bernois 241 Corgémont 431 47.1927 7.1413 4 +CH 2607 Cortébert Canton de Berne BE Jura bernois 241 Cortébert 433 47.1893 7.1071 4 +CH 2608 Courtelary Canton de Berne BE Jura bernois 241 Courtelary 434 47.1857 7.074 4 +CH 2608 Montagne-de-Courtelary Canton de Berne BE Jura bernois 241 Cortébert 433 47.1599 7.0959 3 +CH 2610 St-Imier Canton de Berne BE Jura bernois 241 Saint-Imier 443 47.1559 6.9933 3 +CH 2610 Mont-Crosin Canton de Berne BE Jura bernois 241 Cormoret 432 47.1862 7.0307 4 +CH 2610 Mont-Soleil Canton de Berne BE Jura bernois 241 Saint-Imier 443 47.1529 6.9593 4 +CH 2610 Les Pontins Canton de Berne BE Jura bernois 241 Saint-Imier 443 47.1308 7.0049 4 +CH 2612 Cormoret Canton de Berne BE Jura bernois 241 Cormoret 432 47.1679 7.0484 4 +CH 2613 Villeret Canton de Berne BE Jura bernois 241 Villeret 448 47.1491 7.0309 4 +CH 2615 Sonvilier Canton de Berne BE Jura bernois 241 Sonvilier 445 47.1336 6.9619 4 +CH 2615 Montagne-de-Sonvilier Canton de Berne BE Jura bernois 241 Sonvilier 445 47.1207 6.9579 3 +CH 2616 Renan BE Canton de Berne BE Jura bernois 241 Renan (BE) 441 47.1072 6.9012 4 +CH 2710 Tavannes Canton de Berne BE Jura bernois 241 Tavannes 713 47.2216 7.1893 4 +CH 2712 Le Fuet Canton de Berne BE Jura bernois 241 Saicourt 706 47.2485 7.1751 4 +CH 2713 Bellelay Canton de Berne BE Jura bernois 241 Saicourt 706 47.264 7.1637 4 +CH 2715 Monible Canton de Berne BE Jura bernois 241 Petit-Val 716 47.2797 7.1994 4 +CH 2715 Châtelat Canton de Berne BE Jura bernois 241 Petit-Val 716 47.2683 7.1895 4 +CH 2716 Sornetan Canton de Berne BE Jura bernois 241 Petit-Val 716 47.2728 7.2179 4 +CH 2717 Fornet-Dessous Canton de Berne BE Jura bernois 241 Petit-Val 716 47.2771 7.1761 3 +CH 2717 Rebévelier Canton de Berne BE Jura bernois 241 Rebévelier 715 47.2899 7.1861 4 +CH 2720 Tramelan Canton de Berne BE Jura bernois 241 Tramelan 446 47.23 7.1173 4 +CH 2720 La Tanne Canton de Berne BE Jura bernois 241 Tavannes 713 47.2137 7.1413 4 +CH 2722 Les Reussilles Canton de Berne BE Jura bernois 241 Tramelan 446 47.228 7.0711 4 +CH 2723 Mont-Tramelan Canton de Berne BE Jura bernois 241 Mont-Tramelan 437 47.2071 7.0657 1 +CH 2732 Loveresse Canton de Berne BE Jura bernois 241 Loveresse 696 47.2408 7.2411 4 +CH 2732 Saicourt Canton de Berne BE Jura bernois 241 Saicourt 706 47.2462 7.2027 4 +CH 2732 Saules BE Canton de Berne BE Jura bernois 241 Saules (BE) 707 47.2533 7.2221 4 +CH 2732 Reconvilier Canton de Berne BE Jura bernois 241 Reconvilier 703 47.2248 7.2242 4 +CH 2733 Pontenet Canton de Berne BE Jura bernois 241 Valbirse 717 47.2498 7.2542 4 +CH 2735 Malleray-Bévilard Canton de Berne BE Jura bernois 241 Valbirse 717 47.2391 7.2714 6 +CH 2735 Bévilard Canton de Berne BE Jura bernois 241 Valbirse 717 47.2312 7.2855 4 +CH 2735 Champoz Canton de Berne BE Jura bernois 241 Champoz 683 47.2598 7.3107 4 +CH 2735 Malleray Canton de Berne BE Jura bernois 241 Valbirse 717 47.2377 7.2661 4 +CH 2736 Sorvilier Canton de Berne BE Jura bernois 241 Sorvilier 711 47.2315 7.3076 4 +CH 2738 Court Canton de Berne BE Jura bernois 241 Court 690 47.239 7.3609 4 +CH 2740 Moutier Canton de Berne BE Jura bernois 241 Moutier 700 47.2778 7.3602 4 +CH 2742 Perrefitte Canton de Berne BE Jura bernois 241 Perrefitte 701 47.2774 7.3182 4 +CH 2743 Eschert Canton de Berne BE Jura bernois 241 Eschert 692 47.2655 7.4076 4 +CH 2744 Belprahon Canton de Berne BE Jura bernois 241 Belprahon 681 47.2905 7.4041 4 +CH 2745 Grandval Canton de Berne BE Jura bernois 241 Grandval 694 47.2836 7.428 4 +CH 2746 Crémines Canton de Berne BE Jura bernois 241 Crémines 691 47.285 7.4514 4 +CH 2747 Corcelles BE Canton de Berne BE Jura bernois 241 Corcelles (BE) 687 47.2916 7.4714 4 +CH 2747 Seehof Canton de Berne BE Jura bernois 241 Seehof 709 47.3048 7.5253 4 +CH 2748 Souboz Canton de Berne BE Jura bernois 241 Petit-Val 716 47.2722 7.2558 4 +CH 2748 Les Ecorcheresses Canton de Berne BE Jura bernois 241 Petit-Val 716 47.2836 7.2637 4 +CH 2762 Roches BE Canton de Berne BE Jura bernois 241 Roches (BE) 704 47.3039 7.3818 4 +CH 2827 Schelten Canton de Berne BE Jura bernois 241 Schelten 708 47.3327 7.5531 4 +CH 2500 Biel/Bienne 4 Canton de Berne BE Biel/Bienne District 242 Biel/Bienne 371 47.1492 7.2611 +CH 2500 Biel/Bienne Canton de Berne BE Biel/Bienne District 242 Biel/Bienne 371 47.1371 7.2461 +CH 2500 Biel/Bienne 6 Canton de Berne BE Biel/Bienne District 242 Biel/Bienne 371 47.1492 7.2611 +CH 2501 Biel/Bienne Canton de Berne BE Biel/Bienne District 242 Biel/Bienne 371 47.1371 7.2461 +CH 2502 Biel/Bienne Canton de Berne BE Biel/Bienne District 242 Biel/Bienne 371 47.1489 7.2473 4 +CH 2503 Biel/Bienne Canton de Berne BE Biel/Bienne District 242 Biel/Bienne 371 47.1324 7.2551 4 +CH 2504 Biel/Bienne Canton de Berne BE Biel/Bienne District 242 Biel/Bienne 371 47.1574 7.2809 4 +CH 2505 Biel/Bienne Canton de Berne BE Biel/Bienne District 242 Biel/Bienne 371 47.1338 7.2171 4 +CH 2512 Tüscherz-Alfermée Canton de Berne BE Biel/Bienne District 242 Twann-Tüscherz 756 47.1217 7.1964 4 +CH 2513 Twann Canton de Berne BE Biel/Bienne District 242 Twann-Tüscherz 756 47.1053 7.1637 4 +CH 2514 Ligerz Canton de Berne BE Biel/Bienne District 242 Ligerz 740 47.0905 7.1388 4 +CH 2532 Macolin Canton de Berne BE Biel/Bienne District 242 Evilard 372 47.139 7.2141 4 +CH 2532 Magglingen/Macolin Canton de Berne BE Biel/Bienne District 242 Evilard 372 47.142 7.2115 +CH 2533 Evilard Canton de Berne BE Biel/Bienne District 242 Evilard 372 47.1509 7.2359 4 +CH 2542 Pieterlen Canton de Berne BE Biel/Bienne District 242 Pieterlen 392 47.1739 7.328 4 +CH 2543 Lengnau BE Canton de Berne BE Biel/Bienne District 242 Lengnau (BE) 387 47.182 7.3659 4 +CH 2552 Orpund Canton de Berne BE Biel/Bienne District 242 Orpund 744 47.1417 7.3031 4 +CH 2553 Safnern Canton de Berne BE Biel/Bienne District 242 Safnern 746 47.1523 7.322 4 +CH 2554 Meinisberg Canton de Berne BE Biel/Bienne District 242 Meinisberg 390 47.1614 7.3527 4 +CH 2555 Brügg BE Canton de Berne BE Biel/Bienne District 242 Brügg 733 47.128 7.2781 4 +CH 2556 Scheuren Canton de Berne BE Biel/Bienne District 242 Scheuren 747 47.1323 7.3269 4 +CH 2556 Schwadernau Canton de Berne BE Biel/Bienne District 242 Schwadernau 748 47.1239 7.3173 4 +CH 2558 Aegerten Canton de Berne BE Biel/Bienne District 242 Aegerten 731 47.1172 7.2851 4 +CH 2560 Nidau Canton de Berne BE Biel/Bienne District 242 Nidau 743 47.1244 7.2409 4 +CH 2562 Port Canton de Berne BE Biel/Bienne District 242 Port 745 47.1135 7.2591 4 +CH 2563 Ipsach Canton de Berne BE Biel/Bienne District 242 Ipsach 739 47.1149 7.2314 4 +CH 2564 Bellmund Canton de Berne BE Biel/Bienne District 242 Bellmund 732 47.1024 7.2436 4 +CH 2572 Mörigen Canton de Berne BE Biel/Bienne District 242 Mörigen 742 47.0843 7.2116 4 +CH 2572 Sutz Canton de Berne BE Biel/Bienne District 242 Sutz-Lattrigen 750 47.0992 7.2188 4 +CH 2557 Studen BE Canton de Berne BE Seeland District 243 Studen (BE) 749 47.1126 7.3029 4 +CH 2565 Jens Canton de Berne BE Seeland District 243 Jens 738 47.0981 7.2691 4 +CH 2575 Gerolfingen Canton de Berne BE Seeland District 243 Täuffelen 751 47.0759 7.2001 4 +CH 2575 Hagneck Canton de Berne BE Seeland District 243 Hagneck 736 47.0532 7.1872 4 +CH 2575 Täuffelen Canton de Berne BE Seeland District 243 Täuffelen 751 47.0621 7.1957 4 +CH 2576 Lüscherz Canton de Berne BE Seeland District 243 Lüscherz 497 47.0441 7.1615 4 +CH 2577 Siselen BE Canton de Berne BE Seeland District 243 Siselen 499 47.0325 7.196 4 +CH 2577 Finsterhennen Canton de Berne BE Seeland District 243 Finsterhennen 493 47.0206 7.1792 4 +CH 3035 Frieswil Canton de Berne BE Seeland District 243 Seedorf (BE) 312 46.9924 7.2934 4 +CH 3036 Detligen Canton de Berne BE Seeland District 243 Radelfingen 309 46.994 7.268 4 +CH 3053 Lätti Canton de Berne BE Seeland District 243 Rapperswil (BE) 310 47.038 7.4314 4 +CH 3054 Schüpfen Canton de Berne BE Seeland District 243 Schüpfen 311 47.0358 7.3733 4 +CH 3225 Müntschemier Canton de Berne BE Seeland District 243 Müntschemier 498 46.9949 7.1464 4 +CH 3226 Treiten Canton de Berne BE Seeland District 243 Treiten 500 47.0062 7.1656 4 +CH 3232 Ins Canton de Berne BE Seeland District 243 Ins 496 47.0025 7.1093 4 +CH 3233 Tschugg Canton de Berne BE Seeland District 243 Tschugg 501 47.0239 7.0779 4 +CH 3234 Vinelz Canton de Berne BE Seeland District 243 Vinelz 502 47.0326 7.1188 4 +CH 3235 Erlach Canton de Berne BE Seeland District 243 Erlach 492 47.0468 7.104 4 +CH 3236 Gampelen Canton de Berne BE Seeland District 243 Gampelen 495 46.9964 7.0593 4 +CH 3237 Brüttelen Canton de Berne BE Seeland District 243 Brüttelen 491 47.024 7.1512 4 +CH 3238 Gals Canton de Berne BE Seeland District 243 Gals 494 47.0339 7.0563 4 +CH 3250 Lyss Canton de Berne BE Seeland District 243 Lyss 306 47.0763 7.3152 4 +CH 3251 Wengi b. Büren Canton de Berne BE Seeland District 243 Wengi 394 47.0861 7.3954 3 +CH 3251 Ruppoldsried Canton de Berne BE Seeland District 243 Rapperswil (BE) 310 47.0904 7.4271 4 +CH 3252 Worben Canton de Berne BE Seeland District 243 Worben 755 47.0991 7.2968 4 +CH 3255 Rapperswil BE Canton de Berne BE Seeland District 243 Rapperswil (BE) 310 47.0662 7.4111 4 +CH 3256 Seewil Canton de Berne BE Seeland District 243 Rapperswil (BE) 310 47.0463 7.4108 4 +CH 3256 Dieterswil Canton de Berne BE Seeland District 243 Rapperswil (BE) 310 47.0503 7.4305 4 +CH 3256 Bangerten b. Dieterswil Canton de Berne BE Seeland District 243 Rapperswil (BE) 310 47.0563 7.447 3 +CH 3257 Grossaffoltern Canton de Berne BE Seeland District 243 Grossaffoltern 303 47.0711 7.3652 4 +CH 3257 Ammerzwil BE Canton de Berne BE Seeland District 243 Grossaffoltern 303 47.0736 7.3425 4 +CH 3262 Suberg Canton de Berne BE Seeland District 243 Grossaffoltern 303 47.0559 7.3389 4 +CH 3263 Büetigen Canton de Berne BE Seeland District 243 Büetigen 382 47.106 7.338 4 +CH 3264 Diessbach b. Büren Canton de Berne BE Seeland District 243 Diessbach bei Büren 385 47.1044 7.3639 4 +CH 3266 Wiler b. Seedorf Canton de Berne BE Seeland District 243 Seedorf (BE) 312 47.0494 7.3209 4 +CH 3267 Seedorf BE Canton de Berne BE Seeland District 243 Seedorf (BE) 312 47.0265 7.3231 4 +CH 3268 Lobsigen Canton de Berne BE Seeland District 243 Seedorf (BE) 312 47.0187 7.2998 4 +CH 3270 Aarberg Canton de Berne BE Seeland District 243 Aarberg 301 47.0461 7.2829 4 +CH 3271 Radelfingen b. Aarberg Canton de Berne BE Seeland District 243 Radelfingen 309 47.0186 7.2729 4 +CH 3272 Walperswil Canton de Berne BE Seeland District 243 Walperswil 754 47.0522 7.2238 4 +CH 3272 Epsach Canton de Berne BE Seeland District 243 Epsach 735 47.0704 7.2201 4 +CH 3273 Kappelen Canton de Berne BE Seeland District 243 Kappelen 305 47.0713 7.2744 4 +CH 3274 Merzligen Canton de Berne BE Seeland District 243 Merzligen 741 47.0873 7.2537 4 +CH 3274 Hermrigen Canton de Berne BE Seeland District 243 Hermrigen 737 47.0814 7.2408 4 +CH 3274 Bühl b. Aarberg Canton de Berne BE Seeland District 243 Bühl 734 47.067 7.2465 4 +CH 3282 Bargen BE Canton de Berne BE Seeland District 243 Bargen (BE) 302 47.0362 7.2449 4 +CH 3283 Kallnach Canton de Berne BE Seeland District 243 Kallnach 304 47.0166 7.2168 4 +CH 3283 Niederried b. Kallnach Canton de Berne BE Seeland District 243 Kallnach 304 47.0063 7.2314 4 +CH 3292 Busswil BE Canton de Berne BE Seeland District 243 Lyss 306 47.0995 7.3211 4 +CH 3293 Dotzigen Canton de Berne BE Seeland District 243 Dotzigen 386 47.1242 7.3479 4 +CH 3294 Meienried Canton de Berne BE Seeland District 243 Meienried 389 47.1372 7.3417 4 +CH 3294 Büren an der Aare Canton de Berne BE Seeland District 243 Büren an der Aare 383 47.1417 7.3701 4 +CH 3295 Rüti b. Büren Canton de Berne BE Seeland District 243 Rüti bei Büren 393 47.1513 7.4113 1 +CH 3296 Arch Canton de Berne BE Seeland District 243 Arch 381 47.1656 7.4342 4 +CH 3297 Leuzigen Canton de Berne BE Seeland District 243 Leuzigen 388 47.1709 7.4666 4 +CH 3298 Oberwil b. Büren Canton de Berne BE Seeland District 243 Oberwil bei Büren 391 47.1307 7.4114 1 +CH 3360 Herzogenbuchsee Canton de Berne BE Oberaargau 244 Herzogenbuchsee 979 47.1946 7.7138 4 +CH 3362 Niederönz Canton de Berne BE Oberaargau 244 Niederönz 982 47.1861 7.684 4 +CH 3363 Oberönz Canton de Berne BE Oberaargau 244 Herzogenbuchsee 979 47.1739 7.6887 4 +CH 3365 Seeberg Canton de Berne BE Oberaargau 244 Seeberg 988 47.159 7.6643 4 +CH 3365 Grasswil Canton de Berne BE Oberaargau 244 Seeberg 988 47.1408 7.669 4 +CH 3366 Bettenhausen Canton de Berne BE Oberaargau 244 Bettenhausen 973 47.1743 7.7128 4 +CH 3366 Bollodingen Canton de Berne BE Oberaargau 244 Bettenhausen 973 47.1659 7.7047 4 +CH 3367 Ochlenberg Canton de Berne BE Oberaargau 244 Ochlenberg 985 47.1535 7.7421 4 +CH 3367 Thörigen Canton de Berne BE Oberaargau 244 Thörigen 989 47.173 7.7307 4 +CH 3368 Bleienbach Canton de Berne BE Oberaargau 244 Bleienbach 324 47.1822 7.7569 4 +CH 3372 Wanzwil Canton de Berne BE Oberaargau 244 Heimenhausen 977 47.199 7.6916 4 +CH 3373 Röthenbach Herzogenbuchsee Canton de Berne BE Oberaargau 244 Heimenhausen 977 47.2067 7.6833 4 +CH 3373 Heimenhausen Canton de Berne BE Oberaargau 244 Heimenhausen 977 47.2137 7.6969 4 +CH 3374 Wangenried Canton de Berne BE Oberaargau 244 Wangenried 993 47.2177 7.659 4 +CH 3375 Inkwil Canton de Berne BE Oberaargau 244 Inkwil 980 47.2035 7.6665 4 +CH 3376 Berken Canton de Berne BE Oberaargau 244 Berken 972 47.2256 7.7055 4 +CH 3376 Graben Canton de Berne BE Oberaargau 244 Graben 976 47.2183 7.7205 4 +CH 3377 Walliswil b. Wangen Canton de Berne BE Oberaargau 244 Walliswil bei Wangen 991 47.2271 7.6835 4 +CH 3380 Wangen an der Aare Canton de Berne BE Oberaargau 244 Wangen an der Aare 992 47.2315 7.6515 4 +CH 3380 Walliswil b. Niederbipp Canton de Berne BE Oberaargau 244 Walliswil bei Niederbipp 990 47.2362 7.6953 3 +CH 3464 Schmidigen-Mühleweg Canton de Berne BE Oberaargau 244 Walterswil (BE) 959 47.0939 7.7377 4 +CH 3475 Hermiswil Canton de Berne BE Oberaargau 244 Seeberg 988 47.1558 7.6998 4 +CH 3475 Riedtwil Canton de Berne BE Oberaargau 244 Seeberg 988 47.1411 7.6927 4 +CH 3476 Oschwand Canton de Berne BE Oberaargau 244 Ochlenberg 985 47.137 7.7217 4 +CH 4536 Attiswil Canton de Berne BE Oberaargau 244 Attiswil 971 47.2527 7.611 4 +CH 4537 Wiedlisbach Canton de Berne BE Oberaargau 244 Wiedlisbach 995 47.2459 7.6517 4 +CH 4538 Oberbipp Canton de Berne BE Oberaargau 244 Oberbipp 983 47.254 7.6776 4 +CH 4539 Rumisberg Canton de Berne BE Oberaargau 244 Rumisberg 987 47.2716 7.6346 4 +CH 4539 Farnern Canton de Berne BE Oberaargau 244 Farnern 975 47.2705 7.6104 4 +CH 4704 Niederbipp Canton de Berne BE Oberaargau 244 Niederbipp 981 47.2662 7.7037 4 +CH 4704 Wolfisberg Canton de Berne BE Oberaargau 244 Niederbipp 981 47.2771 7.6586 4 +CH 4900 Langenthal Canton de Berne BE Oberaargau 244 Langenthal 329 47.2158 7.7946 4 +CH 4901 Langenthal Canton de Berne BE Oberaargau 244 Langenthal 329 47.2153 7.7961 +CH 4911 Schwarzhäusern Canton de Berne BE Oberaargau 244 Schwarzhäusern 341 47.2557 7.7669 4 +CH 4912 Aarwangen Canton de Berne BE Oberaargau 244 Aarwangen 321 47.2357 7.7643 4 +CH 4913 Bannwil Canton de Berne BE Oberaargau 244 Bannwil 323 47.2385 7.7303 4 +CH 4914 Roggwil BE Canton de Berne BE Oberaargau 244 Roggwil (BE) 337 47.2366 7.8185 4 +CH 4916 Untersteckholz Canton de Berne BE Oberaargau 244 Langenthal 329 47.2069 7.844 4 +CH 4917 Melchnau Canton de Berne BE Oberaargau 244 Melchnau 333 47.1771 7.856 4 +CH 4917 Busswil b. Melchnau Canton de Berne BE Oberaargau 244 Busswil bei Melchnau 325 47.1876 7.8295 3 +CH 4919 Reisiswil Canton de Berne BE Oberaargau 244 Reisiswil 336 47.1613 7.8424 4 +CH 4922 Thunstetten Canton de Berne BE Oberaargau 244 Thunstetten 342 47.1991 7.7478 4 +CH 4922 Bützberg Canton de Berne BE Oberaargau 244 Thunstetten 342 47.215 7.7442 4 +CH 4923 Wynau Canton de Berne BE Oberaargau 244 Wynau 345 47.256 7.8048 4 +CH 4924 Obersteckholz Canton de Berne BE Oberaargau 244 Langenthal 329 47.2019 7.8254 4 +CH 4932 Lotzwil Canton de Berne BE Oberaargau 244 Lotzwil 331 47.1902 7.7922 4 +CH 4932 Gutenburg Canton de Berne BE Oberaargau 244 Madiswil 332 47.1822 7.7998 4 +CH 4933 Rütschelen Canton de Berne BE Oberaargau 244 Rütschelen 340 47.1712 7.7709 4 +CH 4934 Madiswil Canton de Berne BE Oberaargau 244 Madiswil 332 47.1618 7.8111 4 +CH 4935 Leimiswil Canton de Berne BE Oberaargau 244 Madiswil 332 47.1489 7.7657 4 +CH 4936 Kleindietwil Canton de Berne BE Oberaargau 244 Madiswil 332 47.1423 7.791 4 +CH 4937 Ursenbach Canton de Berne BE Oberaargau 244 Ursenbach 344 47.13 7.7644 4 +CH 4938 Rohrbach Canton de Berne BE Oberaargau 244 Rohrbach 338 47.1331 7.811 4 +CH 4938 Rohrbachgraben Canton de Berne BE Oberaargau 244 Rohrbachgraben 339 47.113 7.803 4 +CH 4942 Walterswil BE Canton de Berne BE Oberaargau 244 Walterswil (BE) 959 47.1064 7.7747 4 +CH 4943 Oeschenbach Canton de Berne BE Oberaargau 244 Oeschenbach 335 47.1105 7.7463 4 +CH 4944 Auswil Canton de Berne BE Oberaargau 244 Auswil 322 47.1358 7.8383 4 +CH 4950 Huttwil Canton de Berne BE Oberaargau 244 Huttwil 954 47.1098 7.8546 4 +CH 4952 Eriswil Canton de Berne BE Oberaargau 244 Eriswil 953 47.0707 7.8587 4 +CH 4953 Schwarzenbach (Huttwil) Canton de Berne BE Oberaargau 244 Huttwil 954 47.1023 7.826 4 +CH 4954 Wyssachen Canton de Berne BE Oberaargau 244 Wyssachen 960 47.0732 7.8216 4 +CH 4955 Gondiswil Canton de Berne BE Oberaargau 244 Gondiswil 326 47.1434 7.8683 4 +CH 3309 Kernenried Canton de Berne BE Emmental District 245 Kernenried 411 47.0663 7.5498 4 +CH 3315 Kräiligen Canton de Berne BE Emmental District 245 Bätterkinden 533 47.1506 7.5358 4 +CH 3315 Bätterkinden Canton de Berne BE Emmental District 245 Bätterkinden 533 47.1283 7.5262 4 +CH 3324 Hindelbank Canton de Berne BE Emmental District 245 Hindelbank 409 47.0418 7.5432 4 +CH 3324 Mötschwil Canton de Berne BE Emmental District 245 Hindelbank 409 47.0459 7.569 4 +CH 3325 Hettiswil b. Hindelbank Canton de Berne BE Emmental District 245 Krauchthal 414 47.0267 7.5569 1 +CH 3326 Krauchthal Canton de Berne BE Emmental District 245 Krauchthal 414 47.0041 7.5641 4 +CH 3400 Burgdorf Canton de Berne BE Emmental District 245 Burgdorf 404 47.0561 7.6184 4 +CH 3401 Burgdorf Canton de Berne BE Emmental District 245 Burgdorf 404 47.059 7.6279 +CH 3412 Heimiswil Canton de Berne BE Emmental District 245 Heimiswil 407 47.0515 7.6611 4 +CH 3413 Kaltacker Canton de Berne BE Emmental District 245 Heimiswil 407 47.0751 7.6744 4 +CH 3414 Oberburg Canton de Berne BE Emmental District 245 Oberburg 418 47.0202 7.6085 4 +CH 3415 Schafhausen im Emmental Canton de Berne BE Emmental District 245 Hasle bei Burgdorf 406 46.9912 7.6463 3 +CH 3415 Rüegsauschachen Canton de Berne BE Emmental District 245 Rüegsau 956 47.0225 7.6568 4 +CH 3415 Hasle-Rüegsau Canton de Berne BE Emmental District 245 Hasle bei Burgdorf 406 46.9983 7.6431 6 +CH 3415 Hasle b. Burgdorf Canton de Berne BE Emmental District 245 Hasle bei Burgdorf 406 47.0124 7.6442 4 +CH 3416 Affoltern im Emmental Canton de Berne BE Emmental District 245 Affoltern im Emmental 951 47.0688 7.7255 4 +CH 3417 Rüegsau Canton de Berne BE Emmental District 245 Rüegsau 956 47.0275 7.6773 4 +CH 3418 Rüegsbach Canton de Berne BE Emmental District 245 Rüegsau 956 47.0468 7.6991 4 +CH 3419 Biembach im Emmental Canton de Berne BE Emmental District 245 Hasle bei Burgdorf 406 46.9938 7.6161 4 +CH 3421 Lyssach Canton de Berne BE Emmental District 245 Lyssach 415 47.0633 7.5812 4 +CH 3421 Lyssach Canton de Berne BE Emmental District 245 Oberburg 418 47.0633 7.5812 4 +CH 3421 Rüti b. Lyssach Canton de Berne BE Emmental District 245 Rüti bei Lyssach 422 47.055 7.5822 3 +CH 3422 Kirchberg BE Canton de Berne BE Emmental District 245 Kirchberg (BE) 412 47.0846 7.6015 4 +CH 3422 Rüdtligen Canton de Berne BE Emmental District 245 Rüdtligen-Alchenflüh 420 47.0855 7.5661 4 +CH 3422 Alchenflüh Canton de Berne BE Emmental District 245 Rüdtligen-Alchenflüh 420 47.0824 7.5774 4 +CH 3423 Ersigen Canton de Berne BE Emmental District 245 Ersigen 405 47.0976 7.6043 4 +CH 3424 Niederösch Canton de Berne BE Emmental District 245 Ersigen 405 47.116 7.6153 4 +CH 3424 Oberösch Canton de Berne BE Emmental District 245 Ersigen 405 47.1071 7.6106 4 +CH 3425 Willadingen Canton de Berne BE Emmental District 245 Willadingen 423 47.147 7.6149 4 +CH 3425 Koppigen Canton de Berne BE Emmental District 245 Koppigen 413 47.1359 7.6027 4 +CH 3426 Aefligen Canton de Berne BE Emmental District 245 Aefligen 401 47.0966 7.5495 4 +CH 3427 Utzenstorf Canton de Berne BE Emmental District 245 Utzenstorf 552 47.124 7.5635 4 +CH 3428 Wiler b. Utzenstorf Canton de Berne BE Emmental District 245 Wiler bei Utzenstorf 554 47.1529 7.5582 4 +CH 3429 Hellsau Canton de Berne BE Emmental District 245 Hellsau 408 47.1437 7.6483 4 +CH 3429 Höchstetten Canton de Berne BE Emmental District 245 Höchstetten 410 47.1437 7.6334 4 +CH 3432 Lützelflüh-Goldbach Canton de Berne BE Emmental District 245 Lützelflüh 955 47.001 7.6821 4 +CH 3433 Schwanden im Emmental Canton de Berne BE Emmental District 245 Rüderswil 905 46.9779 7.695 4 +CH 3435 Ramsei Canton de Berne BE Emmental District 245 Lützelflüh 955 46.9994 7.7121 4 +CH 3436 Zollbrück Canton de Berne BE Emmental District 245 Rüderswil 905 46.9751 7.7663 4 +CH 3437 Rüderswil Canton de Berne BE Emmental District 245 Rüderswil 905 46.9827 7.7167 4 +CH 3438 Lauperswil Canton de Berne BE Emmental District 245 Lauperswil 903 46.9603 7.7268 4 +CH 3439 Ranflüh Canton de Berne BE Emmental District 245 Lützelflüh 955 46.9901 7.7472 4 +CH 3452 Grünenmatt Canton de Berne BE Emmental District 245 Lützelflüh 955 47.0149 7.7247 4 +CH 3453 Heimisbach Canton de Berne BE Emmental District 245 Trachselwald 958 47.0091 7.7838 4 +CH 3454 Sumiswald Canton de Berne BE Emmental District 245 Sumiswald 957 47.0376 7.7502 4 +CH 3455 Grünen Canton de Berne BE Emmental District 245 Sumiswald 957 47.0222 7.7391 4 +CH 3456 Trachselwald Canton de Berne BE Emmental District 245 Trachselwald 958 47.0154 7.7448 4 +CH 3457 Wasen im Emmental Canton de Berne BE Emmental District 245 Sumiswald 957 47.029 7.8386 4 +CH 3462 Weier im Emmental Canton de Berne BE Emmental District 245 Affoltern im Emmental 951 47.0601 7.7616 4 +CH 3463 Häusernmoos im Emmental Canton de Berne BE Emmental District 245 Affoltern im Emmental 951 47.0806 7.7527 4 +CH 3465 Dürrenroth Canton de Berne BE Emmental District 245 Dürrenroth 952 47.0796 7.7867 4 +CH 3472 Rumendingen Canton de Berne BE Emmental District 245 Rumendingen 421 47.1054 7.6432 4 +CH 3472 Wynigen Canton de Berne BE Emmental District 245 Wynigen 424 47.0991 7.6819 4 +CH 3473 Alchenstorf Canton de Berne BE Emmental District 245 Alchenstorf 402 47.1245 7.6437 4 +CH 3474 Rüedisbach Canton de Berne BE Emmental District 245 Wynigen 424 47.1184 7.7028 4 +CH 3534 Signau Canton de Berne BE Emmental District 245 Signau 907 46.9089 7.7339 4 +CH 3535 Schüpbach Canton de Berne BE Emmental District 245 Signau 907 46.9292 7.7483 4 +CH 3536 Aeschau Canton de Berne BE Emmental District 245 Eggiwil 901 46.9041 7.7853 4 +CH 3537 Eggiwil Canton de Berne BE Emmental District 245 Eggiwil 901 46.8613 7.812 4 +CH 3538 Röthenbach im Emmental Canton de Berne BE Emmental District 245 Röthenbach im Emmental 904 46.8574 7.7413 4 +CH 3543 Emmenmatt Canton de Berne BE Emmental District 245 Lauperswil 903 46.9444 7.7269 4 +CH 3550 Langnau im Emmental Canton de Berne BE Emmental District 245 Langnau im Emmental 902 46.9333 7.7854 4 +CH 3551 Oberfrittenbach Canton de Berne BE Emmental District 245 Langnau im Emmental 902 46.9744 7.7959 4 +CH 3552 Bärau Canton de Berne BE Emmental District 245 Langnau im Emmental 902 46.94 7.8265 4 +CH 3553 Gohl Canton de Berne BE Emmental District 245 Langnau im Emmental 902 46.9762 7.826 4 +CH 3555 Trubschachen Canton de Berne BE Emmental District 245 Trubschachen 909 46.9101 7.8523 4 +CH 3556 Trub Canton de Berne BE Emmental District 245 Trub 908 46.9648 7.8769 4 +CH 3557 Fankhaus (Trub) Canton de Berne BE Emmental District 245 Trub 908 46.9824 7.9244 4 +CH 3618 Süderen Canton de Berne BE Emmental District 245 Röthenbach im Emmental 904 46.8198 7.7713 4 +CH 4564 Zielebach Canton de Berne BE Emmental District 245 Zielebach 556 47.158 7.573 4 +CH 6197 Schangnau Canton de Berne BE Emmental District 245 Schangnau 906 46.8106 7.8871 4 +CH 1595 Clavaleyres Canton de Berne BE Bern-Mittelland District 246 Murten 2275 46.8976 7.0917 4 +CH 1738 Sangernboden Canton de Berne BE Bern-Mittelland District 246 Guggisberg 852 46.6993 7.371 4 +CH 1797 Münchenwiler Canton de Berne BE Bern-Mittelland District 246 Münchenwiler 669 46.9111 7.1255 4 +CH 3000 Bern 9 Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3000 Bern 5 Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3000 Bern 31 Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3000 Bern 65 Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3000 Bern 94 Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3000 Bern 13 Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3000 Bern 8 Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3000 Bern 6 Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3000 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9481 7.4474 +CH 3000 Bern 60 UPD Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3000 Bern 14 Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3000 Bern 22 Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3000 Bern 65 SBB Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3000 Bern 16 Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3000 Bern 15 Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3001 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9481 7.4474 +CH 3002 Bern PostFinance Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3003 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9481 7.4474 +CH 3004 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9753 7.45 4 +CH 3005 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9398 7.4502 4 +CH 3006 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9462 7.4707 4 +CH 3007 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9385 7.4339 4 +CH 3008 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.944 7.4156 4 +CH 3010 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.947 7.4237 4 +CH 3011 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9477 7.4458 4 +CH 3011 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9477 7.4458 4 +CH 3012 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9608 7.4262 4 +CH 3013 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9547 7.4507 4 +CH 3014 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9635 7.4591 4 +CH 3015 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9397 7.4841 4 +CH 3018 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9364 7.3906 4 +CH 3019 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.932 7.348 4 +CH 3020 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9369 7.3243 4 +CH 3024 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9481 7.4474 +CH 3027 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9528 7.3844 4 +CH 3029 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9481 7.4474 +CH 3030 Bern Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9481 7.4474 +CH 3032 Hinterkappelen Canton de Berne BE Bern-Mittelland District 246 Wohlen bei Bern 360 46.9673 7.3816 4 +CH 3033 Wohlen b. Bern Canton de Berne BE Bern-Mittelland District 246 Wohlen bei Bern 360 46.974 7.3512 1 +CH 3034 Murzelen Canton de Berne BE Bern-Mittelland District 246 Wohlen bei Bern 360 46.9765 7.3104 4 +CH 3037 Herrenschwanden Canton de Berne BE Bern-Mittelland District 246 Kirchlindach 354 46.9761 7.4179 4 +CH 3038 Kirchlindach Canton de Berne BE Bern-Mittelland District 246 Kirchlindach 354 47.0016 7.4155 4 +CH 3039 Bern PF OC Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3039 Bern PF Operations Center Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3040 Bern Verarb.zentr. Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3040 Bern Verarbeitungszentrum Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3041 Bern UBS Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3042 Ortschwaben Canton de Berne BE Bern-Mittelland District 246 Meikirch 307 46.9923 7.3992 4 +CH 3043 Uettligen Canton de Berne BE Bern-Mittelland District 246 Wohlen bei Bern 360 46.9864 7.3809 4 +CH 3044 Innerberg Canton de Berne BE Bern-Mittelland District 246 Wohlen bei Bern 360 46.9959 7.3122 4 +CH 3045 Meikirch Canton de Berne BE Bern-Mittelland District 246 Meikirch 307 47.0093 7.3723 4 +CH 3046 Wahlendorf Canton de Berne BE Bern-Mittelland District 246 Meikirch 307 47.0081 7.3342 4 +CH 3047 Bremgarten b. Bern Canton de Berne BE Bern-Mittelland District 246 Bremgarten bei Bern 353 46.9781 7.4355 4 +CH 3048 Worblaufen Canton de Berne BE Bern-Mittelland District 246 Ittigen 362 46.9796 7.4643 4 +CH 3049 Säriswil Canton de Berne BE Bern-Mittelland District 246 Wohlen bei Bern 360 46.9935 7.3363 4 +CH 3050 Bern Swisscom Canton de Berne BE Bern-Mittelland District 246 Bern 351 46.9476 7.4065 +CH 3052 Zollikofen Canton de Berne BE Bern-Mittelland District 246 Zollikofen 361 46.9959 7.4548 4 +CH 3053 Diemerswil Canton de Berne BE Bern-Mittelland District 246 Diemerswil 536 47.0201 7.4205 4 +CH 3053 Münchenbuchsee Canton de Berne BE Bern-Mittelland District 246 Münchenbuchsee 546 47.0208 7.445 4 +CH 3053 Wiggiswil Canton de Berne BE Bern-Mittelland District 246 Wiggiswil 553 47.0313 7.4711 4 +CH 3053 Deisswil b. Münchenbuchsee Canton de Berne BE Bern-Mittelland District 246 Deisswil bei Münchenbuchsee 535 47.0372 7.4533 3 +CH 3063 Ittigen Canton de Berne BE Bern-Mittelland District 246 Ittigen 362 46.9803 7.4782 4 +CH 3065 Bolligen Canton de Berne BE Bern-Mittelland District 246 Bolligen 352 46.9858 7.5077 4 +CH 3066 Stettlen Canton de Berne BE Bern-Mittelland District 246 Stettlen 358 46.9634 7.5286 4 +CH 3067 Boll Canton de Berne BE Bern-Mittelland District 246 Vechigen 359 46.9613 7.5519 4 +CH 3068 Utzigen Canton de Berne BE Bern-Mittelland District 246 Vechigen 359 46.9667 7.5823 4 +CH 3071 Ostermundigen KATA Canton de Berne BE Bern-Mittelland District 246 Ostermundigen 363 46.9559 7.4956 +CH 3072 Ostermundigen 1 Canton de Berne BE Bern-Mittelland District 246 Ostermundigen 363 46.9559 7.4956 +CH 3072 Ostermundigen Canton de Berne BE Bern-Mittelland District 246 Ostermundigen 363 46.9564 7.4939 4 +CH 3073 Gümligen Canton de Berne BE Bern-Mittelland District 246 Muri bei Bern 356 46.9356 7.5081 4 +CH 3074 Muri b. Bern Canton de Berne BE Bern-Mittelland District 246 Muri bei Bern 356 46.928 7.4885 4 +CH 3075 Vielbringen b. Worb Canton de Berne BE Bern-Mittelland District 246 Worb 627 46.9169 7.543 3 +CH 3075 Rüfenacht BE Canton de Berne BE Bern-Mittelland District 246 Worb 627 46.928 7.5368 4 +CH 3076 Worb Canton de Berne BE Bern-Mittelland District 246 Worb 627 46.9336 7.5618 4 +CH 3077 Enggistein Canton de Berne BE Bern-Mittelland District 246 Worb 627 46.9296 7.6004 4 +CH 3078 Richigen Canton de Berne BE Bern-Mittelland District 246 Worb 627 46.9171 7.585 4 +CH 3082 Schlosswil Canton de Berne BE Bern-Mittelland District 246 Grosshöchstetten 608 46.9113 7.6112 4 +CH 3083 Trimstein Canton de Berne BE Bern-Mittelland District 246 Münsingen 616 46.9029 7.5769 4 +CH 3084 Wabern Canton de Berne BE Bern-Mittelland District 246 Köniz 355 46.923 7.453 4 +CH 3085 Wabern Weihnachten Canton de Berne BE Bern-Mittelland District 246 Köniz 355 46.9043 7.3978 +CH 3085 Wabern 2 x Weihnachten Canton de Berne BE Bern-Mittelland District 246 Köniz 355 46.9043 7.3978 +CH 3086 Englisberg Canton de Berne BE Bern-Mittelland District 246 Wald (BE) 888 46.8955 7.4635 4 +CH 3086 Zimmerwald Canton de Berne BE Bern-Mittelland District 246 Wald (BE) 888 46.8801 7.4616 4 +CH 3087 Niedermuhlern Canton de Berne BE Bern-Mittelland District 246 Niedermuhlern 877 46.8587 7.4579 4 +CH 3088 Rüeggisberg Canton de Berne BE Bern-Mittelland District 246 Rüeggisberg 880 46.8241 7.4383 4 +CH 3088 Oberbütschel Canton de Berne BE Bern-Mittelland District 246 Rüeggisberg 880 46.8409 7.4534 4 +CH 3089 Hinterfultigen Canton de Berne BE Bern-Mittelland District 246 Rüeggisberg 880 46.8391 7.4052 4 +CH 3095 Spiegel b. Bern Canton de Berne BE Bern-Mittelland District 246 Köniz 355 46.9247 7.4342 4 +CH 3096 Oberbalm Canton de Berne BE Bern-Mittelland District 246 Oberbalm 357 46.8655 7.4093 4 +CH 3097 Liebefeld Canton de Berne BE Bern-Mittelland District 246 Köniz 355 46.9304 7.4192 4 +CH 3098 Schliern b. Köniz Canton de Berne BE Bern-Mittelland District 246 Köniz 355 46.907 7.4219 3 +CH 3098 Köniz Canton de Berne BE Bern-Mittelland District 246 Köniz 355 46.916 7.4181 4 +CH 3099 Rüti b. Riggisberg Canton de Berne BE Bern-Mittelland District 246 Riggisberg 879 46.7631 7.4568 1 +CH 3110 Münsingen Canton de Berne BE Bern-Mittelland District 246 Münsingen 616 46.8761 7.5607 4 +CH 3111 Tägertschi Canton de Berne BE Bern-Mittelland District 246 Münsingen 616 46.8726 7.5869 4 +CH 3112 Allmendingen b. Bern Canton de Berne BE Bern-Mittelland District 246 Allmendingen 630 46.9167 7.5211 4 +CH 3113 Rubigen Canton de Berne BE Bern-Mittelland District 246 Rubigen 623 46.8997 7.545 4 +CH 3114 Wichtrach Canton de Berne BE Bern-Mittelland District 246 Wichtrach 632 46.8451 7.5789 4 +CH 3115 Gerzensee Canton de Berne BE Bern-Mittelland District 246 Gerzensee 866 46.8463 7.5418 4 +CH 3116 Noflen BE Canton de Berne BE Bern-Mittelland District 246 Kirchdorf 872 46.8027 7.5449 4 +CH 3116 Kirchdorf BE Canton de Berne BE Bern-Mittelland District 246 Kirchdorf 872 46.8172 7.5453 4 +CH 3116 Mühledorf BE Canton de Berne BE Bern-Mittelland District 246 Kirchdorf 872 46.8275 7.5303 4 +CH 3122 Kehrsatz Canton de Berne BE Bern-Mittelland District 246 Kehrsatz 870 46.9114 7.472 4 +CH 3123 Belp Canton de Berne BE Bern-Mittelland District 246 Belp 861 46.8933 7.5077 4 +CH 3124 Belpberg Canton de Berne BE Bern-Mittelland District 246 Belp 861 46.8669 7.5211 4 +CH 3125 Toffen Canton de Berne BE Bern-Mittelland District 246 Toffen 884 46.8593 7.4935 4 +CH 3126 Kaufdorf Canton de Berne BE Bern-Mittelland District 246 Kaufdorf 869 46.8397 7.4965 4 +CH 3126 Gelterfingen Canton de Berne BE Bern-Mittelland District 246 Kirchdorf 872 46.8436 7.516 4 +CH 3127 Lohnstorf Canton de Berne BE Bern-Mittelland District 246 Thurnen 889 46.8066 7.5131 4 +CH 3127 Mühlethurnen Canton de Berne BE Bern-Mittelland District 246 Thurnen 889 46.8159 7.5103 4 +CH 3128 Kirchenthurnen Canton de Berne BE Bern-Mittelland District 246 Thurnen 889 46.8243 7.5058 4 +CH 3128 Rümligen Canton de Berne BE Bern-Mittelland District 246 Riggisberg 879 46.8287 7.4934 4 +CH 3132 Riggisberg Canton de Berne BE Bern-Mittelland District 246 Riggisberg 879 46.8098 7.4675 4 +CH 3144 Gasel Canton de Berne BE Bern-Mittelland District 246 Köniz 355 46.8971 7.4099 4 +CH 3145 Niederscherli Canton de Berne BE Bern-Mittelland District 246 Köniz 355 46.8857 7.394 4 +CH 3147 Mittelhäusern Canton de Berne BE Bern-Mittelland District 246 Köniz 355 46.8724 7.3699 4 +CH 3148 Lanzenhäusern Canton de Berne BE Bern-Mittelland District 246 Schwarzenburg 855 46.8466 7.3629 4 +CH 3150 Schwarzenburg Canton de Berne BE Bern-Mittelland District 246 Schwarzenburg 855 46.811 7.3335 4 +CH 3152 Mamishaus Canton de Berne BE Bern-Mittelland District 246 Schwarzenburg 855 46.8152 7.3801 4 +CH 3153 Rüschegg Gambach Canton de Berne BE Bern-Mittelland District 246 Rüschegg 853 46.7726 7.3774 4 +CH 3154 Rüschegg Heubach Canton de Berne BE Bern-Mittelland District 246 Rüschegg 853 46.7682 7.4174 4 +CH 3155 Helgisried-Rohrbach Canton de Berne BE Bern-Mittelland District 246 Rüeggisberg 880 46.8109 7.4184 4 +CH 3156 Riffenmatt Canton de Berne BE Bern-Mittelland District 246 Guggisberg 852 46.7507 7.3621 4 +CH 3157 Milken Canton de Berne BE Bern-Mittelland District 246 Schwarzenburg 855 46.794 7.3617 4 +CH 3158 Guggisberg Canton de Berne BE Bern-Mittelland District 246 Guggisberg 852 46.7591 7.3182 4 +CH 3159 Riedstätt Canton de Berne BE Bern-Mittelland District 246 Guggisberg 852 46.7841 7.3218 4 +CH 3172 Niederwangen b. Bern Canton de Berne BE Bern-Mittelland District 246 Köniz 355 46.9213 7.3786 1 +CH 3173 Oberwangen b. Bern Canton de Berne BE Bern-Mittelland District 246 Köniz 355 46.9136 7.3568 1 +CH 3174 Thörishaus Canton de Berne BE Bern-Mittelland District 246 Köniz 355 46.8967 7.35 4 +CH 3176 Neuenegg Canton de Berne BE Bern-Mittelland District 246 Neuenegg 670 46.9065 7.2997 4 +CH 3177 Laupen BE Canton de Berne BE Bern-Mittelland District 246 Laupen 667 46.9105 7.2433 4 +CH 3179 Kriechenwil Canton de Berne BE Bern-Mittelland District 246 Kriechenwil 666 46.9112 7.2159 4 +CH 3183 Albligen Canton de Berne BE Bern-Mittelland District 246 Schwarzenburg 855 46.8486 7.3229 4 +CH 3202 Frauenkappelen Canton de Berne BE Bern-Mittelland District 246 Frauenkappelen 663 46.9556 7.3319 4 +CH 3203 Mühleberg Canton de Berne BE Bern-Mittelland District 246 Mühleberg 668 46.9618 7.2718 4 +CH 3204 Rosshäusern Canton de Berne BE Bern-Mittelland District 246 Mühleberg 668 46.9313 7.2759 4 +CH 3205 Gümmenen Canton de Berne BE Bern-Mittelland District 246 Mühleberg 668 46.9431 7.2526 4 +CH 3206 Ferenbalm Canton de Berne BE Bern-Mittelland District 246 Ferenbalm 662 46.9551 7.2148 4 +CH 3206 Gammen Canton de Berne BE Bern-Mittelland District 246 Ferenbalm 662 46.9215 7.2264 4 +CH 3206 Biberen Canton de Berne BE Bern-Mittelland District 246 Ferenbalm 662 46.9375 7.2128 4 +CH 3206 Rizenbach Canton de Berne BE Bern-Mittelland District 246 Ferenbalm 662 46.9489 7.2259 4 +CH 3207 Wileroltigen Canton de Berne BE Bern-Mittelland District 246 Wileroltigen 671 46.9709 7.238 4 +CH 3207 Golaten Canton de Berne BE Bern-Mittelland District 246 Kallnach 304 46.9867 7.2393 4 +CH 3208 Gurbrü Canton de Berne BE Bern-Mittelland District 246 Gurbrü 665 46.9654 7.2145 4 +CH 3302 Moosseedorf Canton de Berne BE Bern-Mittelland District 246 Moosseedorf 544 47.0101 7.4845 4 +CH 3303 Jegenstorf Canton de Berne BE Bern-Mittelland District 246 Jegenstorf 540 47.0522 7.5036 4 +CH 3303 Münchringen Canton de Berne BE Bern-Mittelland District 246 Jegenstorf 540 47.0484 7.5249 4 +CH 3303 Zuzwil BE Canton de Berne BE Bern-Mittelland District 246 Zuzwil (BE) 557 47.0498 7.4673 4 +CH 3303 Ballmoos Canton de Berne BE Bern-Mittelland District 246 Jegenstorf 540 47.0409 7.4753 4 +CH 3305 Iffwil Canton de Berne BE Bern-Mittelland District 246 Iffwil 541 47.0651 7.4771 4 +CH 3305 Scheunen Canton de Berne BE Bern-Mittelland District 246 Jegenstorf 540 47.0705 7.4549 4 +CH 3306 Etzelkofen Canton de Berne BE Bern-Mittelland District 246 Fraubrunnen 538 47.0835 7.4806 4 +CH 3308 Grafenried Canton de Berne BE Bern-Mittelland District 246 Fraubrunnen 538 47.0784 7.5055 4 +CH 3309 Zauggenried Canton de Berne BE Bern-Mittelland District 246 Fraubrunnen 538 47.0709 7.5322 4 +CH 3312 Fraubrunnen Canton de Berne BE Bern-Mittelland District 246 Fraubrunnen 538 47.0879 7.5386 4 +CH 3313 Büren zum Hof Canton de Berne BE Bern-Mittelland District 246 Fraubrunnen 538 47.0972 7.5116 4 +CH 3314 Schalunen Canton de Berne BE Bern-Mittelland District 246 Fraubrunnen 538 47.1102 7.5257 4 +CH 3317 Limpach Canton de Berne BE Bern-Mittelland District 246 Fraubrunnen 538 47.1102 7.4987 4 +CH 3317 Mülchi Canton de Berne BE Bern-Mittelland District 246 Fraubrunnen 538 47.1013 7.4761 4 +CH 3321 Schönbühl Einkaufszentrum Canton de Berne BE Bern-Mittelland District 246 Moosseedorf 544 47.0168 7.4839 +CH 3321 Schönbühl EKZ Canton de Berne BE Bern-Mittelland District 246 Moosseedorf 544 47.0168 7.4839 +CH 3322 Urtenen-Schönbühl Canton de Berne BE Bern-Mittelland District 246 Urtenen-Schönbühl 551 47.0216 7.4996 4 +CH 3322 Mattstetten Canton de Berne BE Bern-Mittelland District 246 Mattstetten 543 47.0232 7.5205 4 +CH 3323 Bäriswil BE Canton de Berne BE Bern-Mittelland District 246 Bäriswil 403 47.0169 7.532 4 +CH 3434 Landiswil Canton de Berne BE Bern-Mittelland District 246 Landiswil 613 46.9541 7.6886 4 +CH 3434 Obergoldbach Canton de Berne BE Bern-Mittelland District 246 Landiswil 613 46.9585 7.664 4 +CH 3503 Gysenstein Canton de Berne BE Bern-Mittelland District 246 Konolfingen 612 46.8935 7.5955 4 +CH 3504 Oberhünigen Canton de Berne BE Bern-Mittelland District 246 Oberhünigen 629 46.8733 7.6693 4 +CH 3504 Niederhünigen Canton de Berne BE Bern-Mittelland District 246 Niederhünigen 617 46.8711 7.6465 4 +CH 3506 Grosshöchstetten Canton de Berne BE Bern-Mittelland District 246 Grosshöchstetten 608 46.9068 7.6354 4 +CH 3507 Biglen Canton de Berne BE Bern-Mittelland District 246 Biglen 603 46.9286 7.6288 4 +CH 3508 Arni BE Canton de Berne BE Bern-Mittelland District 246 Arni (BE) 602 46.9349 7.6601 4 +CH 3510 Häutligen Canton de Berne BE Bern-Mittelland District 246 Häutligen 609 46.8576 7.6047 4 +CH 3510 Konolfingen Canton de Berne BE Bern-Mittelland District 246 Konolfingen 612 46.8813 7.6179 4 +CH 3510 Freimettigen Canton de Berne BE Bern-Mittelland District 246 Freimettigen 607 46.8634 7.6325 4 +CH 3512 Walkringen Canton de Berne BE Bern-Mittelland District 246 Walkringen 626 46.9491 7.6199 4 +CH 3513 Bigenthal Canton de Berne BE Bern-Mittelland District 246 Walkringen 626 46.9721 7.6345 4 +CH 3531 Oberthal Canton de Berne BE Bern-Mittelland District 246 Oberthal 620 46.9187 7.6835 4 +CH 3532 Zäziwil Canton de Berne BE Bern-Mittelland District 246 Zäziwil 628 46.8956 7.6676 4 +CH 3532 Mirchel Canton de Berne BE Bern-Mittelland District 246 Mirchel 615 46.8915 7.6503 4 +CH 3533 Bowil Canton de Berne BE Bern-Mittelland District 246 Bowil 605 46.8891 7.7009 4 +CH 3629 Kiesen Canton de Berne BE Bern-Mittelland District 246 Kiesen 611 46.8124 7.5794 4 +CH 3629 Jaberg Canton de Berne BE Bern-Mittelland District 246 Jaberg 868 46.8202 7.5657 4 +CH 3629 Oppligen Canton de Berne BE Bern-Mittelland District 246 Oppligen 622 46.8172 7.5966 4 +CH 3671 Herbligen Canton de Berne BE Bern-Mittelland District 246 Herbligen 610 46.8271 7.611 4 +CH 3671 Brenzikofen Canton de Berne BE Bern-Mittelland District 246 Brenzikofen 606 46.8148 7.6165 4 +CH 3672 Oberdiessbach Canton de Berne BE Bern-Mittelland District 246 Oberdiessbach 619 46.8426 7.6273 4 +CH 3672 Aeschlen b. Oberdiessbach Canton de Berne BE Bern-Mittelland District 246 Oberdiessbach 619 46.8329 7.652 3 +CH 3673 Linden Canton de Berne BE Bern-Mittelland District 246 Linden 614 46.8497 7.6867 4 +CH 3674 Bleiken b. Oberdiessbach Canton de Berne BE Bern-Mittelland District 246 Oberdiessbach 619 46.8168 7.6401 1 +CH 3600 Thun Canton de Berne BE Thun District 247 Thun 942 46.7554 7.6234 4 +CH 3602 Thun Canton de Berne BE Thun District 247 Thun 942 46.7512 7.6217 +CH 3603 Thun Canton de Berne BE Thun District 247 Thun 942 46.7624 7.5991 4 +CH 3604 Thun Canton de Berne BE Thun District 247 Thun 942 46.7403 7.6201 4 +CH 3607 Thun Canton de Berne BE Thun District 247 Thun 942 46.7512 7.6217 +CH 3608 Thun Canton de Berne BE Thun District 247 Thun 942 46.7387 7.5974 4 +CH 3609 Thun Canton de Berne BE Thun District 247 Thun 942 46.7512 7.6217 +CH 3612 Steffisburg Canton de Berne BE Thun District 247 Steffisburg 939 46.7825 7.6336 4 +CH 3613 Steffisburg Canton de Berne BE Thun District 247 Steffisburg 939 46.7713 7.6157 4 +CH 3614 Unterlangenegg Canton de Berne BE Thun District 247 Unterlangenegg 945 46.7989 7.6936 4 +CH 3615 Heimenschwand Canton de Berne BE Thun District 247 Buchholterberg 923 46.821 7.6913 4 +CH 3616 Schwarzenegg Canton de Berne BE Thun District 247 Unterlangenegg 945 46.8 7.7343 4 +CH 3617 Fahrni b. Thun Canton de Berne BE Thun District 247 Fahrni 925 46.7978 7.6549 4 +CH 3619 Eriz Canton de Berne BE Thun District 247 Eriz 924 46.7805 7.8048 4 +CH 3619 Innereriz Canton de Berne BE Thun District 247 Eriz 924 46.7883 7.8239 4 +CH 3622 Homberg b. Thun Canton de Berne BE Thun District 247 Homberg 931 46.7764 7.6833 4 +CH 3623 Horrenbach Canton de Berne BE Thun District 247 Horrenbach-Buchen 932 46.7775 7.7467 1 +CH 3623 Teuffenthal b. Thun Canton de Berne BE Thun District 247 Teuffenthal (BE) 940 46.7669 7.7192 1 +CH 3623 Buchen BE Canton de Berne BE Thun District 247 Horrenbach-Buchen 932 46.7821 7.7084 1 +CH 3624 Schwendibach Canton de Berne BE Thun District 247 Steffisburg 939 46.7699 7.661 4 +CH 3624 Goldiwil (Thun) Canton de Berne BE Thun District 247 Thun 942 46.7614 7.6654 4 +CH 3625 Heiligenschwendi Canton de Berne BE Thun District 247 Heiligenschwendi 927 46.752 7.6822 4 +CH 3626 Hünibach Canton de Berne BE Thun District 247 Hilterfingen 929 46.7477 7.6487 4 +CH 3627 Heimberg Canton de Berne BE Thun District 247 Heimberg 928 46.7944 7.6032 4 +CH 3628 Uttigen Canton de Berne BE Thun District 247 Uttigen 885 46.795 7.5732 4 +CH 3631 Höfen b. Thun Canton de Berne BE Thun District 247 Stocken-Höfen 770 46.7225 7.5666 1 +CH 3632 Niederstocken Canton de Berne BE Thun District 247 Stocken-Höfen 770 46.7021 7.5712 4 +CH 3632 Oberstocken Canton de Berne BE Thun District 247 Stocken-Höfen 770 46.7068 7.5502 4 +CH 3633 Amsoldingen Canton de Berne BE Thun District 247 Amsoldingen 921 46.7261 7.5854 4 +CH 3634 Thierachern Canton de Berne BE Thun District 247 Thierachern 941 46.7519 7.5719 4 +CH 3635 Uebeschi Canton de Berne BE Thun District 247 Uebeschi 943 46.7395 7.5473 4 +CH 3636 Längenbühl Canton de Berne BE Thun District 247 Forst-Längenbühl 948 46.7579 7.5385 4 +CH 3636 Forst b. Längenbühl Canton de Berne BE Thun District 247 Forst-Längenbühl 948 46.7647 7.524 4 +CH 3638 Pohlern Canton de Berne BE Thun District 247 Pohlern 936 46.7157 7.5229 4 +CH 3638 Blumenstein Canton de Berne BE Thun District 247 Blumenstein 922 46.7281 7.4955 4 +CH 3645 Zwieselberg Canton de Berne BE Thun District 247 Zwieselberg 947 46.7097 7.615 4 +CH 3647 Reutigen Canton de Berne BE Thun District 247 Reutigen 767 46.6927 7.6055 4 +CH 3652 Hilterfingen Canton de Berne BE Thun District 247 Hilterfingen 929 46.7408 7.6628 4 +CH 3653 Oberhofen am Thunersee Canton de Berne BE Thun District 247 Oberhofen am Thunersee 934 46.7332 7.6771 4 +CH 3654 Gunten Canton de Berne BE Thun District 247 Sigriswil 938 46.7145 7.7023 4 +CH 3655 Sigriswil Canton de Berne BE Thun District 247 Sigriswil 938 46.7193 7.7344 4 +CH 3656 Tschingel ob Gunten Canton de Berne BE Thun District 247 Sigriswil 938 46.7257 7.7088 3 +CH 3656 Aeschlen ob Gunten Canton de Berne BE Thun District 247 Sigriswil 938 46.7216 7.6966 4 +CH 3656 Ringoldswil Canton de Berne BE Thun District 247 Sigriswil 938 46.7375 7.6948 4 +CH 3657 Schwanden (Sigriswil) Canton de Berne BE Thun District 247 Sigriswil 938 46.7443 7.7572 4 +CH 3658 Merligen Canton de Berne BE Thun District 247 Sigriswil 938 46.704 7.753 4 +CH 3661 Uetendorf Canton de Berne BE Thun District 247 Uetendorf 944 46.775 7.5746 4 +CH 3662 Seftigen Canton de Berne BE Thun District 247 Seftigen 883 46.7904 7.5392 4 +CH 3663 Gurzelen Canton de Berne BE Thun District 247 Gurzelen 867 46.7753 7.5357 4 +CH 3664 Burgistein Canton de Berne BE Thun District 247 Burgistein 863 46.792 7.5032 4 +CH 3665 Wattenwil Canton de Berne BE Thun District 247 Wattenwil 886 46.7594 7.4929 4 +CH 1657 Abländschen Canton de Berne BE Obersimmental-Saanen District 248 Saanen 843 46.5662 7.2768 4 +CH 3766 Boltigen Canton de Berne BE Obersimmental-Saanen District 248 Boltigen 791 46.6052 7.3582 4 +CH 3770 Zweisimmen Canton de Berne BE Obersimmental-Saanen District 248 Zweisimmen 794 46.562 7.3903 4 +CH 3771 Blankenburg Canton de Berne BE Obersimmental-Saanen District 248 Zweisimmen 794 46.542 7.4183 4 +CH 3772 St. Stephan Canton de Berne BE Obersimmental-Saanen District 248 St. Stephan 793 46.4964 7.3917 4 +CH 3773 Matten (St. Stephan) Canton de Berne BE Obersimmental-Saanen District 248 St. Stephan 793 46.5104 7.4622 4 +CH 3775 Lenk im Simmental Canton de Berne BE Obersimmental-Saanen District 248 Lenk 792 46.4251 7.4565 4 +CH 3776 Oeschseite Canton de Berne BE Obersimmental-Saanen District 248 Zweisimmen 794 46.5268 7.3277 4 +CH 3777 Saanenmöser Canton de Berne BE Obersimmental-Saanen District 248 Saanen 843 46.5157 7.305 4 +CH 3778 Schönried Canton de Berne BE Obersimmental-Saanen District 248 Saanen 843 46.52 7.2714 4 +CH 3780 Gstaad Canton de Berne BE Obersimmental-Saanen District 248 Saanen 843 46.4707 7.2946 4 +CH 3781 Turbach Canton de Berne BE Obersimmental-Saanen District 248 Saanen 843 46.4629 7.3509 4 +CH 3782 Lauenen b. Gstaad Canton de Berne BE Obersimmental-Saanen District 248 Lauenen 842 46.3981 7.3386 4 +CH 3783 Grund b. Gstaad Canton de Berne BE Obersimmental-Saanen District 248 Saanen 843 46.4375 7.2524 4 +CH 3784 Feutersoey Canton de Berne BE Obersimmental-Saanen District 248 Gsteig 841 46.4044 7.2444 4 +CH 3785 Gsteig b. Gstaad Canton de Berne BE Obersimmental-Saanen District 248 Gsteig 841 46.3691 7.2591 4 +CH 3792 Saanen Canton de Berne BE Obersimmental-Saanen District 248 Saanen 843 46.4775 7.2495 4 +CH 3645 Gwatt (Thun) Canton de Berne BE Frutigen-Niedersimmental District 249 Spiez 768 46.7235 7.6213 4 +CH 3646 Einigen Canton de Berne BE Frutigen-Niedersimmental District 249 Spiez 768 46.7071 7.6453 4 +CH 3700 Spiez Canton de Berne BE Frutigen-Niedersimmental District 249 Spiez 768 46.6857 7.6698 4 +CH 3702 Hondrich Canton de Berne BE Frutigen-Niedersimmental District 249 Spiez 768 46.6718 7.6818 4 +CH 3703 Aeschiried Canton de Berne BE Frutigen-Niedersimmental District 249 Aeschi bei Spiez 562 46.6135 7.7685 4 +CH 3703 Aeschi b. Spiez Canton de Berne BE Frutigen-Niedersimmental District 249 Aeschi bei Spiez 562 46.6543 7.6988 3 +CH 3704 Krattigen Canton de Berne BE Frutigen-Niedersimmental District 249 Krattigen 566 46.6508 7.7393 4 +CH 3705 Faulensee Canton de Berne BE Frutigen-Niedersimmental District 249 Spiez 768 46.6721 7.7074 4 +CH 3711 Mülenen Canton de Berne BE Frutigen-Niedersimmental District 249 Reichenbach im Kandertal 567 46.6396 7.675 4 +CH 3711 Emdthal Canton de Berne BE Frutigen-Niedersimmental District 249 Aeschi bei Spiez 562 46.6505 7.6807 4 +CH 3713 Reichenbach im Kandertal Canton de Berne BE Frutigen-Niedersimmental District 249 Reichenbach im Kandertal 567 46.618 7.6918 4 +CH 3714 Wengi b. Frutigen Canton de Berne BE Frutigen-Niedersimmental District 249 Reichenbach im Kandertal 567 46.6225 7.6464 3 +CH 3714 Frutigen Canton de Berne BE Frutigen-Niedersimmental District 249 Frutigen 563 46.5854 7.6383 4 +CH 3715 Adelboden Canton de Berne BE Frutigen-Niedersimmental District 249 Adelboden 561 46.4736 7.5552 4 +CH 3716 Kandergrund Canton de Berne BE Frutigen-Niedersimmental District 249 Kandergrund 564 46.5515 7.6677 4 +CH 3717 Blausee-Mitholz Canton de Berne BE Frutigen-Niedersimmental District 249 Kandergrund 564 46.525 7.6837 4 +CH 3718 Kandersteg Canton de Berne BE Frutigen-Niedersimmental District 249 Kandersteg 565 46.4692 7.7083 4 +CH 3722 Scharnachtal Canton de Berne BE Frutigen-Niedersimmental District 249 Reichenbach im Kandertal 567 46.6148 7.7159 4 +CH 3723 Kiental Canton de Berne BE Frutigen-Niedersimmental District 249 Reichenbach im Kandertal 567 46.5561 7.7608 4 +CH 3724 Ried (Frutigen) Canton de Berne BE Frutigen-Niedersimmental District 249 Frutigen 563 46.5604 7.5942 4 +CH 3725 Achseten Canton de Berne BE Frutigen-Niedersimmental District 249 Frutigen 563 46.5291 7.6046 4 +CH 3752 Wimmis Canton de Berne BE Frutigen-Niedersimmental District 249 Wimmis 769 46.6616 7.6412 4 +CH 3753 Oey Canton de Berne BE Frutigen-Niedersimmental District 249 Diemtigen 762 46.6477 7.5971 4 +CH 3754 Diemtigen Canton de Berne BE Frutigen-Niedersimmental District 249 Diemtigen 762 46.6466 7.5579 4 +CH 3755 Horboden Canton de Berne BE Frutigen-Niedersimmental District 249 Diemtigen 762 46.6038 7.572 4 +CH 3756 Zwischenflüh Canton de Berne BE Frutigen-Niedersimmental District 249 Diemtigen 762 46.6022 7.5015 4 +CH 3757 Schwenden im Diemtigtal Canton de Berne BE Frutigen-Niedersimmental District 249 Diemtigen 762 46.5563 7.5001 4 +CH 3758 Latterbach Canton de Berne BE Frutigen-Niedersimmental District 249 Erlenbach im Simmental 763 46.6721 7.5895 4 +CH 3762 Erlenbach im Simmental Canton de Berne BE Frutigen-Niedersimmental District 249 Erlenbach im Simmental 763 46.6585 7.5302 4 +CH 3763 Därstetten Canton de Berne BE Frutigen-Niedersimmental District 249 Därstetten 761 46.6804 7.5051 4 +CH 3764 Weissenburg Canton de Berne BE Frutigen-Niedersimmental District 249 Därstetten 761 46.6661 7.477 4 +CH 3765 Oberwil im Simmental Canton de Berne BE Frutigen-Niedersimmental District 249 Oberwil im Simmental 766 46.6559 7.4312 4 +CH 3706 Leissigen Canton de Berne BE Interlaken-Oberhasli District 250 Leissigen 585 46.6428 7.7789 4 +CH 3707 Därligen Canton de Berne BE Interlaken-Oberhasli District 250 Därligen 575 46.6539 7.8128 4 +CH 3800 Sundlauenen Canton de Berne BE Interlaken-Oberhasli District 250 Beatenberg 571 46.6857 7.7818 4 +CH 3800 Interlaken Canton de Berne BE Interlaken-Oberhasli District 250 Interlaken 581 46.6867 7.866 4 +CH 3800 Unterseen Canton de Berne BE Interlaken-Oberhasli District 250 Unterseen 593 46.6945 7.8405 4 +CH 3800 Interlaken Canton de Berne BE Interlaken-Oberhasli District 250 Gündlischwand 578 46.6867 7.866 4 +CH 3800 Matten b. Interlaken Canton de Berne BE Interlaken-Oberhasli District 250 Matten bei Interlaken 587 46.6763 7.8649 4 +CH 3802 Interlaken Ost Canton de Berne BE Interlaken-Oberhasli District 250 Interlaken 581 46.6871 7.8649 +CH 3803 Beatenberg Canton de Berne BE Interlaken-Oberhasli District 250 Beatenberg 571 46.717 7.8063 4 +CH 3804 Habkern Canton de Berne BE Interlaken-Oberhasli District 250 Habkern 579 46.755 7.8899 4 +CH 3805 Goldswil b. Interlaken Canton de Berne BE Interlaken-Oberhasli District 250 Ringgenberg (BE) 590 46.7005 7.8745 4 +CH 3806 Bönigen b. Interlaken Canton de Berne BE Interlaken-Oberhasli District 250 Bönigen 572 46.6804 7.9238 4 +CH 3807 Iseltwald Canton de Berne BE Interlaken-Oberhasli District 250 Iseltwald 582 46.7011 7.9899 4 +CH 3812 Wilderswil Canton de Berne BE Interlaken-Oberhasli District 250 Wilderswil 594 46.6488 7.8691 4 +CH 3813 Saxeten Canton de Berne BE Interlaken-Oberhasli District 250 Saxeten 591 46.6251 7.8275 4 +CH 3814 Gsteigwiler Canton de Berne BE Interlaken-Oberhasli District 250 Gsteigwiler 577 46.6522 7.889 4 +CH 3815 Gündlischwand Canton de Berne BE Interlaken-Oberhasli District 250 Gündlischwand 578 46.6552 7.9369 4 +CH 3815 Zweilütschinen Canton de Berne BE Interlaken-Oberhasli District 250 Gündlischwand 578 46.626 7.9068 4 +CH 3816 Lütschental Canton de Berne BE Interlaken-Oberhasli District 250 Lütschental 586 46.6439 7.9522 4 +CH 3816 Burglauenen Canton de Berne BE Interlaken-Oberhasli District 250 Grindelwald 576 46.6331 7.9739 4 +CH 3818 Grindelwald Canton de Berne BE Interlaken-Oberhasli District 250 Grindelwald 576 46.6186 8.0535 4 +CH 3822 Isenfluh Canton de Berne BE Interlaken-Oberhasli District 250 Lauterbrunnen 584 46.5967 7.8565 4 +CH 3822 Lauterbrunnen Canton de Berne BE Interlaken-Oberhasli District 250 Lauterbrunnen 584 46.5952 7.9072 4 +CH 3823 Wengen Canton de Berne BE Interlaken-Oberhasli District 250 Lauterbrunnen 584 46.5751 7.9498 4 +CH 3823 Eigergletscher Canton de Berne BE Interlaken-Oberhasli District 250 Lauterbrunnen 584 46.5748 7.9744 4 +CH 3823 Kleine Scheidegg Canton de Berne BE Interlaken-Oberhasli District 250 Lauterbrunnen 584 46.5844 7.9602 4 +CH 3824 Stechelberg Canton de Berne BE Interlaken-Oberhasli District 250 Lauterbrunnen 584 46.515 7.8979 4 +CH 3825 Mürren Canton de Berne BE Interlaken-Oberhasli District 250 Lauterbrunnen 584 46.5766 7.8827 4 +CH 3826 Gimmelwald Canton de Berne BE Interlaken-Oberhasli District 250 Lauterbrunnen 584 46.538 7.8517 4 +CH 3852 Ringgenberg BE Canton de Berne BE Interlaken-Oberhasli District 250 Ringgenberg (BE) 590 46.7114 7.8968 4 +CH 3853 Niederried b. Interlaken Canton de Berne BE Interlaken-Oberhasli District 250 Niederried bei Interlaken 588 46.7249 7.9263 4 +CH 3854 Oberried am Brienzersee Canton de Berne BE Interlaken-Oberhasli District 250 Oberried am Brienzersee 589 46.7563 7.9571 4 +CH 3855 Brienz BE Canton de Berne BE Interlaken-Oberhasli District 250 Brienz (BE) 573 46.7321 8.0379 4 +CH 3855 Axalp Canton de Berne BE Interlaken-Oberhasli District 250 Brienz (BE) 573 46.7215 8.0399 4 +CH 3855 Schwanden b. Brienz Canton de Berne BE Interlaken-Oberhasli District 250 Schwanden bei Brienz 592 46.7711 8.0557 3 +CH 3856 Brienzwiler Canton de Berne BE Interlaken-Oberhasli District 250 Brienzwiler 574 46.7586 8.106 4 +CH 3857 Unterbach BE Canton de Berne BE Interlaken-Oberhasli District 250 Meiringen 785 46.7378 8.119 4 +CH 3858 Hofstetten b. Brienz Canton de Berne BE Interlaken-Oberhasli District 250 Hofstetten bei Brienz 580 46.7669 8.0799 4 +CH 3860 Rosenlaui Canton de Berne BE Interlaken-Oberhasli District 250 Schattenhalb 786 46.6796 8.1537 4 +CH 3860 Brünig Canton de Berne BE Interlaken-Oberhasli District 250 Meiringen 785 46.7587 8.133 3 +CH 3860 Meiringen Canton de Berne BE Interlaken-Oberhasli District 250 Meiringen 785 46.7108 8.1255 4 +CH 3860 Schattenhalb Canton de Berne BE Interlaken-Oberhasli District 250 Schattenhalb 786 46.6942 8.17 4 +CH 3862 Innertkirchen Canton de Berne BE Interlaken-Oberhasli District 250 Innertkirchen 784 46.6717 8.2371 4 +CH 3863 Gadmen Canton de Berne BE Interlaken-Oberhasli District 250 Innertkirchen 784 46.7112 8.3757 4 +CH 3864 Guttannen Canton de Berne BE Interlaken-Oberhasli District 250 Guttannen 782 46.5965 8.2578 4 +CH 6083 Hasliberg Hohfluh Canton de Berne BE Interlaken-Oberhasli District 250 Hasliberg 783 46.7543 8.1733 4 +CH 6084 Hasliberg Wasserwendi Canton de Berne BE Interlaken-Oberhasli District 250 Hasliberg 783 46.7559 8.2104 4 +CH 6085 Hasliberg Goldern Canton de Berne BE Interlaken-Oberhasli District 250 Hasliberg 783 46.7385 8.1963 4 +CH 6086 Hasliberg Reuti Canton de Berne BE Interlaken-Oberhasli District 250 Hasliberg 783 46.7418 8.2522 4 +CH 4040 Basel Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Münchenstein 2769 47.5186 7.6174 +CH 4042 Basel PF OC Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Münchenstein 2769 47.5186 7.6174 +CH 4042 Basel PF Operations Center Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Münchenstein 2769 47.5186 7.6174 +CH 4101 Bruderholz Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Binningen 2765 47.528 7.5812 4 +CH 4102 Binningen 1 Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Binningen 2765 47.5367 7.5678 +CH 4102 Binningen Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Binningen 2765 47.5367 7.5676 4 +CH 4103 Bottmingen Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Bottmingen 2767 47.522 7.5765 4 +CH 4104 Oberwil BL Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Oberwil (BL) 2771 47.5169 7.5508 4 +CH 4105 Biel-Benken BL Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Biel-Benken 2764 47.5077 7.5209 4 +CH 4106 Therwil Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Therwil 2775 47.4976 7.5589 4 +CH 4107 Ettingen Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Ettingen 2768 47.4745 7.5459 4 +CH 4123 Allschwil 1 Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Allschwil 2762 47.5451 7.5375 +CH 4123 Allschwil Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Allschwil 2762 47.545 7.5375 4 +CH 4124 Schönenbuch Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Schönenbuch 2774 47.5352 7.5061 4 +CH 4127 Birsfelden Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Birsfelden 2766 47.5508 7.6363 4 +CH 4132 Muttenz 1 Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Muttenz 2770 47.5248 7.6491 +CH 4132 Muttenz Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Muttenz 2770 47.5234 7.6481 4 +CH 4142 Münchenstein 1 Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Münchenstein 2769 47.5186 7.6174 +CH 4142 Münchenstein Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Münchenstein 2769 47.5169 7.6175 4 +CH 4144 Arlesheim Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Arlesheim 2763 47.4955 7.6283 4 +CH 4147 Aesch BL Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Aesch (BL) 2761 47.4728 7.584 4 +CH 4148 Pfeffingen Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Pfeffingen 2772 47.4562 7.582 4 +CH 4153 Reinach BL Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Reinach (BL) 2773 47.4973 7.5909 4 +CH 4153 Reinach BL 1 Kanton Basel-Landschaft BL Bezirk Arlesheim 1301 Reinach (BL) 2773 47.4975 7.5912 +CH 2814 Roggenburg Kanton Basel-Landschaft BL Bezirk Laufen 1302 Roggenburg 2790 47.4277 7.3567 4 +CH 4117 Burg im Leimental Kanton Basel-Landschaft BL Bezirk Laufen 1302 Burg im Leimental 2783 47.4523 7.4368 4 +CH 4202 Duggingen Kanton Basel-Landschaft BL Bezirk Laufen 1302 Duggingen 2785 47.4513 7.6096 4 +CH 4203 Grellingen Kanton Basel-Landschaft BL Bezirk Laufen 1302 Grellingen 2786 47.439 7.5866 4 +CH 4222 Zwingen Kanton Basel-Landschaft BL Bezirk Laufen 1302 Zwingen 2793 47.436 7.5279 4 +CH 4223 Blauen Kanton Basel-Landschaft BL Bezirk Laufen 1302 Blauen 2781 47.4527 7.5233 4 +CH 4224 Nenzlingen Kanton Basel-Landschaft BL Bezirk Laufen 1302 Nenzlingen 2789 47.4493 7.5609 4 +CH 4225 Brislach Kanton Basel-Landschaft BL Bezirk Laufen 1302 Brislach 2782 47.4252 7.5496 4 +CH 4242 Laufen Kanton Basel-Landschaft BL Bezirk Laufen 1302 Laufen 2787 47.4105 7.4911 4 +CH 4243 Dittingen Kanton Basel-Landschaft BL Bezirk Laufen 1302 Dittingen 2784 47.4415 7.4927 4 +CH 4244 Röschenz Kanton Basel-Landschaft BL Bezirk Laufen 1302 Röschenz 2791 47.4329 7.4649 4 +CH 4246 Wahlen b. Laufen Kanton Basel-Landschaft BL Bezirk Laufen 1302 Wahlen 2792 47.398 7.5115 1 +CH 4253 Liesberg Kanton Basel-Landschaft BL Bezirk Laufen 1302 Liesberg 2788 47.3952 7.4298 4 +CH 4254 Liesberg Dorf Kanton Basel-Landschaft BL Bezirk Laufen 1302 Liesberg 2788 47.4074 7.4156 4 +CH 4133 Pratteln Kanton Basel-Landschaft BL Bezirk Liestal 1303 Pratteln 2831 47.5192 7.6913 4 +CH 4133 Pratteln 1 Kanton Basel-Landschaft BL Bezirk Liestal 1303 Pratteln 2831 47.5185 7.6927 +CH 4302 Augst BL Kanton Basel-Landschaft BL Bezirk Liestal 1303 Augst 2822 47.5321 7.7176 4 +CH 4304 Giebenach Kanton Basel-Landschaft BL Bezirk Liestal 1303 Giebenach 2826 47.5234 7.7383 4 +CH 4402 Frenkendorf Kanton Basel-Landschaft BL Bezirk Liestal 1303 Frenkendorf 2824 47.5009 7.6971 4 +CH 4410 Liestal Kanton Basel-Landschaft BL Bezirk Liestal 1303 Liestal 2829 47.4853 7.7255 4 +CH 4411 Seltisberg Kanton Basel-Landschaft BL Bezirk Liestal 1303 Seltisberg 2833 47.462 7.7157 4 +CH 4414 Füllinsdorf Kanton Basel-Landschaft BL Bezirk Liestal 1303 Füllinsdorf 2825 47.5109 7.732 4 +CH 4415 Lausen Kanton Basel-Landschaft BL Bezirk Liestal 1303 Lausen 2828 47.4706 7.7656 4 +CH 4416 Bubendorf Kanton Basel-Landschaft BL Bezirk Liestal 1303 Bubendorf 2823 47.4458 7.737 4 +CH 4417 Ziefen Kanton Basel-Landschaft BL Bezirk Liestal 1303 Ziefen 2834 47.429 7.7027 4 +CH 4419 Lupsingen Kanton Basel-Landschaft BL Bezirk Liestal 1303 Lupsingen 2830 47.4463 7.6961 4 +CH 4422 Arisdorf Kanton Basel-Landschaft BL Bezirk Liestal 1303 Arisdorf 2821 47.5093 7.7665 4 +CH 4423 Hersberg Kanton Basel-Landschaft BL Bezirk Liestal 1303 Hersberg 2827 47.4922 7.7833 4 +CH 4433 Ramlinsburg Kanton Basel-Landschaft BL Bezirk Liestal 1303 Ramlinsburg 2832 47.4502 7.7682 4 +CH 4441 Thürnen Kanton Basel-Landschaft BL Bezirk Sissach 1304 Thürnen 2864 47.4531 7.8289 4 +CH 4442 Diepflingen Kanton Basel-Landschaft BL Bezirk Sissach 1304 Diepflingen 2845 47.445 7.8404 4 +CH 4443 Wittinsburg Kanton Basel-Landschaft BL Bezirk Sissach 1304 Wittinsburg 2867 47.4297 7.8386 4 +CH 4444 Rümlingen Kanton Basel-Landschaft BL Bezirk Sissach 1304 Rümlingen 2859 47.428 7.856 4 +CH 4445 Häfelfingen Kanton Basel-Landschaft BL Bezirk Sissach 1304 Häfelfingen 2847 47.4139 7.8704 4 +CH 4446 Buckten Kanton Basel-Landschaft BL Bezirk Sissach 1304 Buckten 2843 47.4116 7.8467 4 +CH 4447 Känerkinden Kanton Basel-Landschaft BL Bezirk Sissach 1304 Känerkinden 2850 47.4116 7.8324 4 +CH 4448 Läufelfingen Kanton Basel-Landschaft BL Bezirk Sissach 1304 Läufelfingen 2852 47.3942 7.856 4 +CH 4450 Sissach Kanton Basel-Landschaft BL Bezirk Sissach 1304 Sissach 2861 47.4722 7.8076 4 +CH 4451 Wintersingen Kanton Basel-Landschaft BL Bezirk Sissach 1304 Wintersingen 2866 47.4961 7.8271 4 +CH 4452 Itingen Kanton Basel-Landschaft BL Bezirk Sissach 1304 Itingen 2849 47.4647 7.7847 4 +CH 4453 Nusshof Kanton Basel-Landschaft BL Bezirk Sissach 1304 Nusshof 2854 47.4915 7.7985 4 +CH 4455 Zunzgen Kanton Basel-Landschaft BL Bezirk Sissach 1304 Zunzgen 2869 47.4451 7.7986 4 +CH 4456 Tenniken Kanton Basel-Landschaft BL Bezirk Sissach 1304 Tenniken 2863 47.4325 7.8146 4 +CH 4460 Gelterkinden Kanton Basel-Landschaft BL Bezirk Sissach 1304 Gelterkinden 2846 47.4571 7.8586 4 +CH 4461 Böckten Kanton Basel-Landschaft BL Bezirk Sissach 1304 Böckten 2842 47.4673 7.8344 4 +CH 4462 Rickenbach BL Kanton Basel-Landschaft BL Bezirk Sissach 1304 Rickenbach (BL) 2857 47.4847 7.8492 4 +CH 4463 Buus Kanton Basel-Landschaft BL Bezirk Sissach 1304 Buus 2844 47.5047 7.8661 4 +CH 4464 Maisprach Kanton Basel-Landschaft BL Bezirk Sissach 1304 Maisprach 2853 47.5223 7.8458 4 +CH 4465 Hemmiken Kanton Basel-Landschaft BL Bezirk Sissach 1304 Hemmiken 2848 47.4902 7.8917 4 +CH 4466 Ormalingen Kanton Basel-Landschaft BL Bezirk Sissach 1304 Ormalingen 2856 47.4731 7.8784 4 +CH 4467 Rothenfluh Kanton Basel-Landschaft BL Bezirk Sissach 1304 Rothenfluh 2858 47.4703 7.9177 4 +CH 4469 Anwil Kanton Basel-Landschaft BL Bezirk Sissach 1304 Anwil 2841 47.453 7.942 4 +CH 4492 Tecknau Kanton Basel-Landschaft BL Bezirk Sissach 1304 Tecknau 2862 47.4454 7.8897 4 +CH 4493 Wenslingen Kanton Basel-Landschaft BL Bezirk Sissach 1304 Wenslingen 2865 47.4432 7.91 4 +CH 4494 Oltingen Kanton Basel-Landschaft BL Bezirk Sissach 1304 Oltingen 2855 47.4302 7.9373 4 +CH 4495 Zeglingen Kanton Basel-Landschaft BL Bezirk Sissach 1304 Zeglingen 2868 47.4121 7.9123 4 +CH 4496 Kilchberg BL Kanton Basel-Landschaft BL Bezirk Sissach 1304 Kilchberg (BL) 2851 47.4257 7.8969 4 +CH 4497 Rünenberg Kanton Basel-Landschaft BL Bezirk Sissach 1304 Rünenberg 2860 47.432 7.8804 4 +CH 4207 Bretzwil Kanton Basel-Landschaft BL Bezirk Waldenburg 1305 Bretzwil 2883 47.3961 7.6501 4 +CH 4418 Reigoldswil Kanton Basel-Landschaft BL Bezirk Waldenburg 1305 Reigoldswil 2893 47.3948 7.6904 4 +CH 4424 Arboldswil Kanton Basel-Landschaft BL Bezirk Waldenburg 1305 Arboldswil 2881 47.4148 7.7185 4 +CH 4425 Titterten Kanton Basel-Landschaft BL Bezirk Waldenburg 1305 Titterten 2894 47.402 7.7148 4 +CH 4426 Lauwil Kanton Basel-Landschaft BL Bezirk Waldenburg 1305 Lauwil 2889 47.3802 7.6679 4 +CH 4431 Bennwil Kanton Basel-Landschaft BL Bezirk Waldenburg 1305 Bennwil 2882 47.3963 7.7821 4 +CH 4432 Lampenberg Kanton Basel-Landschaft BL Bezirk Waldenburg 1305 Lampenberg 2887 47.4267 7.7539 4 +CH 4434 Hölstein Kanton Basel-Landschaft BL Bezirk Waldenburg 1305 Hölstein 2886 47.4259 7.7749 4 +CH 4435 Niederdorf Kanton Basel-Landschaft BL Bezirk Waldenburg 1305 Niederdorf 2891 47.4105 7.7475 4 +CH 4436 Oberdorf BL Kanton Basel-Landschaft BL Bezirk Waldenburg 1305 Oberdorf (BL) 2892 47.3928 7.7526 4 +CH 4436 Liedertswil Kanton Basel-Landschaft BL Bezirk Waldenburg 1305 Liedertswil 2890 47.3887 7.7206 4 +CH 4437 Waldenburg Kanton Basel-Landschaft BL Bezirk Waldenburg 1305 Waldenburg 2895 47.3771 7.7402 4 +CH 4438 Langenbruck Kanton Basel-Landschaft BL Bezirk Waldenburg 1305 Langenbruck 2888 47.3577 7.7711 4 +CH 4457 Diegten Kanton Basel-Landschaft BL Bezirk Waldenburg 1305 Diegten 2884 47.4093 7.8097 4 +CH 4458 Eptingen Kanton Basel-Landschaft BL Bezirk Waldenburg 1305 Eptingen 2885 47.3797 7.8173 4 +CH 4000 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5584 7.5733 +CH 4001 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5568 7.5887 4 +CH 4002 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5584 7.5733 +CH 4005 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5584 7.5733 +CH 4009 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5584 7.5733 +CH 4010 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5584 7.5733 +CH 4018 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5584 7.5733 +CH 4019 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5584 7.5733 +CH 4020 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5584 7.5733 +CH 4030 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5584 7.5733 +CH 4031 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5619 7.5823 +CH 4039 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5577 7.5936 +CH 4039 Basel SSF Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5577 7.5936 +CH 4041 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5577 7.5936 +CH 4041 Basel UBS Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5577 7.5936 +CH 4051 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.554 7.5865 4 +CH 4052 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5457 7.6096 4 +CH 4052 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5457 7.6096 4 +CH 4053 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5406 7.5964 4 +CH 4054 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5497 7.5696 4 +CH 4055 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5626 7.5667 4 +CH 4056 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5698 7.5749 4 +CH 4057 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5767 7.5947 4 +CH 4058 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.566 7.6112 4 +CH 4059 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5309 7.5939 4 +CH 4070 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5584 7.5733 +CH 4075 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5584 7.5733 +CH 4089 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5577 7.5936 +CH 4089 Basel SPI GLS Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5577 7.5936 +CH 4089 Basel SPILOG Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5577 7.5936 +CH 4089 Basel SPI GLS Retour Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5577 7.5936 +CH 4091 Basel Kanton Basel-Stadt BS Basel-Stadt 1200 Basel 2701 47.5584 7.5733 +CH 4125 Riehen Kanton Basel-Stadt BS Basel-Stadt 1200 Riehen 2703 47.5795 7.6512 4 +CH 4125 Riehen 1 Kanton Basel-Stadt BS Basel-Stadt 1200 Riehen 2703 47.5794 7.6512 +CH 4126 Bettingen Kanton Basel-Stadt BS Basel-Stadt 1200 Bettingen 2702 47.5704 7.6722 4 +CH 1410 Prévondavaux Canton de Fribourg FR Broye District 1001 Prévondavaux 2038 46.7313 6.8026 4 +CH 1468 Cheyres Canton de Fribourg FR Broye District 1001 Cheyres-Châbles 2055 46.8207 6.7756 4 +CH 1470 Bollion Canton de Fribourg FR Broye District 1001 Lully (FR) 2025 46.8215 6.832 4 +CH 1470 Seiry Canton de Fribourg FR Broye District 1001 Lully (FR) 2025 46.8146 6.835 4 +CH 1470 Lully FR Canton de Fribourg FR Broye District 1001 Lully (FR) 2025 46.8317 6.85 4 +CH 1470 Estavayer-le-Lac Canton de Fribourg FR Broye District 1001 Estavayer 2054 46.861 6.8415 4 +CH 1473 Font Canton de Fribourg FR Broye District 1001 Estavayer 2054 46.8483 6.8109 4 +CH 1473 Châtillon FR Canton de Fribourg FR Broye District 1001 Châtillon (FR) 2008 46.83 6.8302 4 +CH 1474 Châbles FR Canton de Fribourg FR Broye District 1001 Cheyres-Châbles 2055 46.8313 6.8002 4 +CH 1475 Forel FR Canton de Fribourg FR Broye District 1001 Estavayer 2054 46.884 6.88 4 +CH 1475 Montbrelloz Canton de Fribourg FR Broye District 1001 Estavayer 2054 46.854 6.8872 4 +CH 1475 Autavaux Canton de Fribourg FR Broye District 1001 Estavayer 2054 46.8762 6.8606 4 +CH 1482 Cugy FR Canton de Fribourg FR Broye District 1001 Cugy (FR) 2011 46.8109 6.8939 4 +CH 1483 Vesin Canton de Fribourg FR Broye District 1001 Cugy (FR) 2011 46.8052 6.8723 4 +CH 1483 Frasses Canton de Fribourg FR Broye District 1001 Les Montets 2050 46.8262 6.8668 4 +CH 1483 Montet (Broye) Canton de Fribourg FR Broye District 1001 Les Montets 2050 46.8172 6.8648 4 +CH 1484 Aumont Canton de Fribourg FR Broye District 1001 Les Montets 2050 46.7975 6.8551 4 +CH 1484 Granges-de-Vesin Canton de Fribourg FR Broye District 1001 Les Montets 2050 46.8107 6.842 3 +CH 1485 Nuvilly Canton de Fribourg FR Broye District 1001 Nuvilly 2035 46.7841 6.8339 4 +CH 1486 Vuissens Canton de Fribourg FR Broye District 1001 Estavayer 2054 46.7346 6.7692 4 +CH 1489 Murist Canton de Fribourg FR Broye District 1001 Estavayer 2054 46.796 6.8112 4 +CH 1527 Villeneuve FR Canton de Fribourg FR Broye District 1001 Surpierre 2044 46.7421 6.8668 4 +CH 1528 Praratoud Canton de Fribourg FR Broye District 1001 Surpierre 2044 46.736 6.8435 4 +CH 1528 Surpierre Canton de Fribourg FR Broye District 1001 Surpierre 2044 46.7474 6.8553 4 +CH 1529 Cheiry Canton de Fribourg FR Broye District 1001 Surpierre 2044 46.7502 6.8383 4 +CH 1532 Fétigny Canton de Fribourg FR Broye District 1001 Fétigny 2016 46.7967 6.9138 4 +CH 1533 Ménières Canton de Fribourg FR Broye District 1001 Ménières 2027 46.7853 6.8861 4 +CH 1534 Chapelle (Broye) Canton de Fribourg FR Broye District 1001 Surpierre 2044 46.7661 6.8499 4 +CH 1541 Morens FR Canton de Fribourg FR Broye District 1001 Estavayer 2054 46.8456 6.9047 4 +CH 1541 Sévaz Canton de Fribourg FR Broye District 1001 Sévaz 2043 46.8394 6.8736 4 +CH 1541 Bussy FR Canton de Fribourg FR Broye District 1001 Estavayer 2054 46.8346 6.8921 4 +CH 1542 Rueyres-les-Prés Canton de Fribourg FR Broye District 1001 Estavayer 2054 46.8571 6.9109 4 +CH 1544 Gletterens Canton de Fribourg FR Broye District 1001 Gletterens 2022 46.9113 6.9241 4 +CH 1563 Dompierre FR Canton de Fribourg FR Broye District 1001 Belmont-Broye 2053 46.8564 6.9906 4 +CH 1564 Domdidier Canton de Fribourg FR Broye District 1001 Belmont-Broye 2053 46.8622 7.0145 4 +CH 1565 Vallon Canton de Fribourg FR Broye District 1001 Vallon 2045 46.8849 6.9533 4 +CH 1566 St-Aubin FR Canton de Fribourg FR Broye District 1001 Saint-Aubin (FR) 2041 46.8912 6.9795 4 +CH 1566 Les Friques Canton de Fribourg FR Broye District 1001 Saint-Aubin (FR) 2041 46.8966 6.9942 4 +CH 1567 Delley Canton de Fribourg FR Broye District 1001 Delley-Portalban 2051 46.9132 6.9717 4 +CH 1568 Portalban Canton de Fribourg FR Broye District 1001 Delley-Portalban 2051 46.9262 6.9392 4 +CH 1773 Russy Canton de Fribourg FR Broye District 1001 Belmont-Broye 2053 46.8408 7.0052 4 +CH 1773 Chandon Canton de Fribourg FR Broye District 1001 Belmont-Broye 2053 46.8411 7.0436 4 +CH 1773 Léchelles Canton de Fribourg FR Broye District 1001 Belmont-Broye 2053 46.8289 7.0204 4 +CH 1774 Cousset Canton de Fribourg FR Broye District 1001 Montagny (FR) 2029 46.8139 6.98 4 +CH 1774 Montagny-les-Monts Canton de Fribourg FR Broye District 1001 Montagny (FR) 2029 46.8016 6.9928 4 +CH 1774 Cousset Canton de Fribourg FR Broye District 1001 Montagny (FR) 2029 46.8139 6.98 4 +CH 1775 Mannens Canton de Fribourg FR Broye District 1001 Montagny (FR) 2029 46.7969 6.9702 4 +CH 1775 Grandsivaz Canton de Fribourg FR Broye District 1001 Montagny (FR) 2029 46.787 6.9823 4 +CH 1776 Montagny-la-Ville Canton de Fribourg FR Broye District 1001 Montagny (FR) 2029 46.8207 6.9989 4 +CH 1553 Châtonnaye Canton de Fribourg FR Glâne District 1002 Châtonnaye 2068 46.7531 6.9382 4 +CH 1608 Chapelle (Glâne) Canton de Fribourg FR Glâne District 1002 Chapelle (Glâne) 2066 46.5879 6.8377 4 +CH 1670 Bionnens Canton de Fribourg FR Glâne District 1002 Ursy 2102 46.635 6.8564 4 +CH 1670 Ursy Canton de Fribourg FR Glâne District 1002 Ursy 2102 46.6333 6.8358 4 +CH 1670 Esmonts Canton de Fribourg FR Glâne District 1002 Ursy 2102 46.6445 6.8469 4 +CH 1673 Ecublens FR Canton de Fribourg FR Glâne District 1002 Ecublens (FR) 2072 46.6153 6.807 4 +CH 1673 Gillarens Canton de Fribourg FR Glâne District 1002 Rue 2097 46.5879 6.825 4 +CH 1673 Promasens Canton de Fribourg FR Glâne District 1002 Rue 2097 46.6022 6.8226 4 +CH 1673 Rue Canton de Fribourg FR Glâne District 1002 Rue 2097 46.6219 6.8237 4 +CH 1673 Auboranges Canton de Fribourg FR Glâne District 1002 Auboranges 2061 46.5838 6.8051 4 +CH 1674 Montet (Glâne) Canton de Fribourg FR Glâne District 1002 Montet (Glâne) 2089 46.6413 6.813 4 +CH 1674 Morlens Canton de Fribourg FR Glâne District 1002 Ursy 2102 46.6554 6.8381 4 +CH 1674 Vuarmarens Canton de Fribourg FR Glâne District 1002 Ursy 2102 46.6476 6.8284 4 +CH 1675 Blessens Canton de Fribourg FR Glâne District 1002 Rue 2097 46.6077 6.8395 4 +CH 1675 Vauderens Canton de Fribourg FR Glâne District 1002 Ursy 2102 46.6236 6.8511 4 +CH 1675 Mossel Canton de Fribourg FR Glâne District 1002 Ursy 2102 46.6139 6.8614 4 +CH 1676 Chavannes-les-Forts Canton de Fribourg FR Glâne District 1002 Siviriez 2099 46.6465 6.8948 4 +CH 1677 Prez-vers-Siviriez Canton de Fribourg FR Glâne District 1002 Siviriez 2099 46.6352 6.8745 4 +CH 1678 Siviriez Canton de Fribourg FR Glâne District 1002 Siviriez 2099 46.6604 6.8774 4 +CH 1679 Villaraboud Canton de Fribourg FR Glâne District 1002 Siviriez 2099 46.66 6.9128 4 +CH 1680 Berlens Canton de Fribourg FR Glâne District 1002 Mézières (FR) 2087 46.6953 6.9514 4 +CH 1680 Romont FR Canton de Fribourg FR Glâne District 1002 Romont (FR) 2096 46.7 6.9186 4 +CH 1681 Hennens Canton de Fribourg FR Glâne District 1002 Billens-Hennens 2063 46.6816 6.8786 4 +CH 1681 Billens Canton de Fribourg FR Glâne District 1002 Billens-Hennens 2063 46.6897 6.8962 4 +CH 1684 Mézières FR Canton de Fribourg FR Glâne District 1002 Mézières (FR) 2087 46.679 6.9272 4 +CH 1685 Villariaz Canton de Fribourg FR Glâne District 1002 Vuisternens-devant-Romont 2113 46.6633 6.9442 4 +CH 1686 Grangettes-près-Romont Canton de Fribourg FR Glâne District 1002 Grangettes 2079 46.6717 6.9753 3 +CH 1686 La Neirigue Canton de Fribourg FR Glâne District 1002 Vuisternens-devant-Romont 2113 46.684 6.9543 4 +CH 1687 Estévenens Canton de Fribourg FR Glâne District 1002 Vuisternens-devant-Romont 2113 46.6661 6.9651 4 +CH 1687 La Magne Canton de Fribourg FR Glâne District 1002 Vuisternens-devant-Romont 2113 46.6379 6.9299 4 +CH 1687 Vuisternens-devant-Romont Canton de Fribourg FR Glâne District 1002 Vuisternens-devant-Romont 2113 46.6502 6.9325 4 +CH 1688 Lieffrens Canton de Fribourg FR Glâne District 1002 Vuisternens-devant-Romont 2113 46.6329 6.8988 4 +CH 1688 Sommentier Canton de Fribourg FR Glâne District 1002 Vuisternens-devant-Romont 2113 46.6361 6.9144 4 +CH 1689 Le Châtelard-près-Romont Canton de Fribourg FR Glâne District 1002 Le Châtelard 2067 46.6755 6.9949 4 +CH 1690 Lussy FR Canton de Fribourg FR Glâne District 1002 Villaz 2117 46.7179 6.9385 4 +CH 1690 Villaz-St-Pierre Canton de Fribourg FR Glâne District 1002 Villaz 2117 46.7209 6.9621 4 +CH 1691 Villarimboud Canton de Fribourg FR Glâne District 1002 Villaz 2117 46.7409 6.9661 4 +CH 1692 Massonnens Canton de Fribourg FR Glâne District 1002 Massonnens 2086 46.6966 6.9761 4 +CH 1694 Orsonnens Canton de Fribourg FR Glâne District 1002 Villorsonnens 2114 46.7145 6.9947 4 +CH 1694 Villargiroud Canton de Fribourg FR Glâne District 1002 Villorsonnens 2114 46.6953 7.0011 4 +CH 1694 Villarsiviriaux Canton de Fribourg FR Glâne District 1002 Villorsonnens 2114 46.6904 7.0186 4 +CH 1694 Chavannes-sous-Orsonnens Canton de Fribourg FR Glâne District 1002 Villorsonnens 2114 46.728 6.9891 4 +CH 1697 La Joux FR Canton de Fribourg FR Glâne District 1002 Vuisternens-devant-Romont 2113 46.6259 6.9364 4 +CH 1697 Les Ecasseys Canton de Fribourg FR Glâne District 1002 Vuisternens-devant-Romont 2113 46.6213 6.9098 4 +CH 1748 Torny-le-Grand Canton de Fribourg FR Glâne District 1002 Torny 2115 46.7676 6.9678 4 +CH 1749 Middes Canton de Fribourg FR Glâne District 1002 Torny 2115 46.7741 6.9485 4 +CH 1625 Sâles (Gruyère) Canton de Fribourg FR Gruyère District 1003 Sâles 2152 46.6287 6.9639 4 +CH 1625 Maules Canton de Fribourg FR Gruyère District 1003 Sâles 2152 46.643 6.9968 4 +CH 1626 Rueyres-Treyfayes Canton de Fribourg FR Gruyère District 1003 Sâles 2152 46.6444 6.9534 3 +CH 1626 Romanens Canton de Fribourg FR Gruyère District 1003 Sâles 2152 46.6528 6.9766 4 +CH 1626 Treyfayes Canton de Fribourg FR Gruyère District 1003 Sâles 2152 46.6552 6.9575 4 +CH 1627 Vaulruz Canton de Fribourg FR Gruyère District 1003 Vaulruz 2155 46.6186 6.985 4 +CH 1628 Vuadens Canton de Fribourg FR Gruyère District 1003 Vuadens 2160 46.6106 7.0049 4 +CH 1630 Bulle Canton de Fribourg FR Gruyère District 1003 Bulle 2125 46.6021 7.0223 4 +CH 1631 Bulle centre de traitement Canton de Fribourg FR Gruyère District 1003 Bulle 2125 46.6075 7.0462 +CH 1632 Riaz Canton de Fribourg FR Gruyère District 1003 Riaz 2148 46.6428 7.0432 4 +CH 1633 Vuippens Canton de Fribourg FR Gruyère District 1003 Marsens 2140 46.6632 7.0812 4 +CH 1633 Marsens Canton de Fribourg FR Gruyère District 1003 Marsens 2140 46.6566 7.039 4 +CH 1634 La Roche FR Canton de Fribourg FR Gruyère District 1003 La Roche 2149 46.6925 7.1606 4 +CH 1635 La Tour-de-Trême Canton de Fribourg FR Gruyère District 1003 Bulle 2125 46.5889 7.0354 4 +CH 1636 Broc Canton de Fribourg FR Gruyère District 1003 Broc 2124 46.5985 7.1245 4 +CH 1637 Charmey (Gruyère) Canton de Fribourg FR Gruyère District 1003 Val-de-Charmey 2163 46.594 7.1959 4 +CH 1638 Morlon Canton de Fribourg FR Gruyère District 1003 Morlon 2143 46.6247 7.0917 4 +CH 1642 Sorens Canton de Fribourg FR Gruyère District 1003 Sorens 2153 46.6713 7.0437 4 +CH 1643 Gumefens Canton de Fribourg FR Gruyère District 1003 Pont-en-Ogoz 2122 46.6778 7.0722 4 +CH 1644 Avry-devant-Pont Canton de Fribourg FR Gruyère District 1003 Pont-en-Ogoz 2122 46.6865 7.0835 4 +CH 1645 Le Bry Canton de Fribourg FR Gruyère District 1003 Pont-en-Ogoz 2122 46.6986 7.0826 4 +CH 1646 Echarlens Canton de Fribourg FR Gruyère District 1003 Echarlens 2131 46.6472 7.0839 4 +CH 1647 Corbières Canton de Fribourg FR Gruyère District 1003 Corbières 2129 46.6567 7.1175 4 +CH 1648 Hauteville Canton de Fribourg FR Gruyère District 1003 Hauteville 2137 46.6699 7.1308 4 +CH 1649 Pont-la-Ville Canton de Fribourg FR Gruyère District 1003 Pont-la-Ville 2147 46.7026 7.1117 4 +CH 1651 Villarvolard Canton de Fribourg FR Gruyère District 1003 Corbières 2129 46.6435 7.118 4 +CH 1652 Villarbeney Canton de Fribourg FR Gruyère District 1003 Botterens 2123 46.6306 7.1157 4 +CH 1652 Botterens Canton de Fribourg FR Gruyère District 1003 Botterens 2123 46.6185 7.1133 4 +CH 1653 Crésuz Canton de Fribourg FR Gruyère District 1003 Crésuz 2130 46.6225 7.1413 4 +CH 1653 Châtel-sur-Montsalvens Canton de Fribourg FR Gruyère District 1003 Châtel-sur-Montsalvens 2128 46.6177 7.1275 4 +CH 1654 Cerniat FR Canton de Fribourg FR Gruyère District 1003 Val-de-Charmey 2163 46.6657 7.2019 4 +CH 1656 Im Fang Canton de Fribourg FR Gruyère District 1003 Jaun 2138 46.5913 7.2374 4 +CH 1656 Jaun Canton de Fribourg FR Gruyère District 1003 Jaun 2138 46.6075 7.2873 4 +CH 1661 Le Pâquier-Montbarry Canton de Fribourg FR Gruyère District 1003 Le Pâquier (FR) 2145 46.5904 7.0519 4 +CH 1663 Gruyères Canton de Fribourg FR Gruyère District 1003 Gruyères 2135 46.5807 7.085 4 +CH 1663 Pringy Canton de Fribourg FR Gruyère District 1003 Gruyères 2135 46.577 7.0594 4 +CH 1663 Moléson-sur-Gruyères Canton de Fribourg FR Gruyère District 1003 Gruyères 2135 46.5567 7.0281 3 +CH 1663 Epagny Canton de Fribourg FR Gruyère District 1003 Gruyères 2135 46.5883 7.0939 4 +CH 1665 Estavannens Canton de Fribourg FR Gruyère District 1003 Bas-Intyamon 2162 46.5638 7.1304 4 +CH 1666 Villars-sous-Mont Canton de Fribourg FR Gruyère District 1003 Bas-Intyamon 2162 46.5442 7.0578 4 +CH 1666 Grandvillard Canton de Fribourg FR Gruyère District 1003 Grandvillard 2134 46.5281 7.1095 4 +CH 1667 Enney Canton de Fribourg FR Gruyère District 1003 Bas-Intyamon 2162 46.562 7.07 4 +CH 1669 Albeuve Canton de Fribourg FR Gruyère District 1003 Haut-Intyamon 2121 46.508 7.0266 4 +CH 1669 Les Sciernes-d'Albeuve Canton de Fribourg FR Gruyère District 1003 Haut-Intyamon 2121 46.4975 7.0365 4 +CH 1669 Lessoc Canton de Fribourg FR Gruyère District 1003 Haut-Intyamon 2121 46.5051 7.0789 4 +CH 1669 Neirivue Canton de Fribourg FR Gruyère District 1003 Haut-Intyamon 2121 46.5291 7.0303 4 +CH 1669 Montbovon Canton de Fribourg FR Gruyère District 1003 Haut-Intyamon 2121 46.4723 7.012 4 +CH 1695 Rueyres-St-Laurent Canton de Fribourg FR Sarine District 1004 Gibloux 2236 46.7133 7.0377 4 +CH 1695 Villarlod Canton de Fribourg FR Sarine District 1004 Gibloux 2236 46.6975 7.0309 4 +CH 1695 Estavayer-le-Gibloux Canton de Fribourg FR Sarine District 1004 Gibloux 2236 46.7244 7.0244 4 +CH 1695 Villarsel-le-Gibloux Canton de Fribourg FR Sarine District 1004 Gibloux 2236 46.7133 7.0151 4 +CH 1696 Vuisternens-en-Ogoz Canton de Fribourg FR Sarine District 1004 Gibloux 2236 46.7042 7.0561 4 +CH 1700 Fribourg Canton de Fribourg FR Sarine District 1004 Fribourg 2196 46.8067 7.1636 4 +CH 1701 Fribourg Canton de Fribourg FR Sarine District 1004 Fribourg 2196 46.8024 7.1513 4 +CH 1708 Fribourg Canton de Fribourg FR Sarine District 1004 Fribourg 2196 46.8024 7.1513 4 +CH 1720 Chésopelloz Canton de Fribourg FR Sarine District 1004 Corminboeuf 2183 46.8059 7.0769 4 +CH 1720 Corminboeuf Canton de Fribourg FR Sarine District 1004 Corminboeuf 2183 46.8049 7.0973 4 +CH 1722 Bourguillon Canton de Fribourg FR Sarine District 1004 Fribourg 2196 46.7988 7.1748 4 +CH 1723 Marly Canton de Fribourg FR Sarine District 1004 Marly 2206 46.776 7.1494 4 +CH 1723 Marly 1 Canton de Fribourg FR Sarine District 1004 Marly 2206 46.776 7.1492 6 +CH 1723 Villarsel-sur-Marly Canton de Fribourg FR Sarine District 1004 Villarsel-sur-Marly 2230 46.7624 7.1727 4 +CH 1723 Pierrafortscha Canton de Fribourg FR Sarine District 1004 Pierrafortscha 2216 46.7812 7.1807 4 +CH 1724 Ferpicloz Canton de Fribourg FR Sarine District 1004 Ferpicloz 2194 46.7475 7.1637 4 +CH 1724 Montévraz Canton de Fribourg FR Sarine District 1004 Le Mouret 2220 46.7214 7.1807 4 +CH 1724 Bonnefontaine Canton de Fribourg FR Sarine District 1004 Le Mouret 2220 46.7309 7.2048 4 +CH 1724 Le Mouret Canton de Fribourg FR Sarine District 1004 Le Mouret 2220 46.7514 7.1812 4 +CH 1724 Senèdes Canton de Fribourg FR Sarine District 1004 Bois d'Amont 2238 46.742 7.1432 4 +CH 1724 Essert FR Canton de Fribourg FR Sarine District 1004 Le Mouret 2220 46.7361 7.1624 4 +CH 1724 Oberried FR Canton de Fribourg FR Sarine District 1004 Le Mouret 2220 46.7264 7.1938 4 +CH 1724 Zénauva Canton de Fribourg FR Sarine District 1004 Le Mouret 2220 46.7229 7.1868 4 +CH 1725 Posieux Canton de Fribourg FR Sarine District 1004 Hauterive (FR) 2233 46.7715 7.108 4 +CH 1726 Grenilles Canton de Fribourg FR Sarine District 1004 Gibloux 2236 46.7274 7.0487 4 +CH 1726 Farvagny Canton de Fribourg FR Sarine District 1004 Gibloux 2236 46.7277 7.0663 4 +CH 1726 Posat Canton de Fribourg FR Sarine District 1004 Gibloux 2236 46.7406 7.061 4 +CH 1726 Farvagny-le-Grand Canton de Fribourg FR Sarine District 1004 Gibloux 2236 46.7183 7.0717 6 +CH 1726 Farvagny-le-Petit Canton de Fribourg FR Sarine District 1004 Gibloux 2236 46.7309 7.0743 4 +CH 1727 Corpataux Canton de Fribourg FR Sarine District 1004 Gibloux 2236 46.7427 7.0982 4 +CH 1727 Magnedens Canton de Fribourg FR Sarine District 1004 Gibloux 2236 46.7411 7.0794 4 +CH 1728 Rossens FR Canton de Fribourg FR Sarine District 1004 Gibloux 2236 46.723 7.1 4 +CH 1730 Ecuvillens Canton de Fribourg FR Sarine District 1004 Hauterive (FR) 2233 46.7555 7.0784 4 +CH 1731 Ependes FR Canton de Fribourg FR Sarine District 1004 Bois d'Amont 2238 46.7571 7.1488 4 +CH 1732 Arconciel Canton de Fribourg FR Sarine District 1004 Bois d'Amont 2238 46.7512 7.1212 4 +CH 1733 Treyvaux Canton de Fribourg FR Sarine District 1004 Treyvaux 2226 46.7241 7.1438 4 +CH 1740 Neyruz FR Canton de Fribourg FR Sarine District 1004 Neyruz (FR) 2211 46.768 7.0649 4 +CH 1741 Cottens FR Canton de Fribourg FR Sarine District 1004 Cottens (FR) 2186 46.7532 7.0362 4 +CH 1742 Autigny Canton de Fribourg FR Sarine District 1004 Autigny 2173 46.7393 7.0283 4 +CH 1744 Chénens Canton de Fribourg FR Sarine District 1004 Chénens 2177 46.7432 6.9966 4 +CH 1745 Lentigny Canton de Fribourg FR Sarine District 1004 La Brillaz 2234 46.7599 7.0019 4 +CH 1746 Prez-vers-Noréaz Canton de Fribourg FR Sarine District 1004 Prez 2237 46.7857 7.0128 4 +CH 1747 Corserey Canton de Fribourg FR Sarine District 1004 Prez 2237 46.7719 6.989 4 +CH 1752 Villars-sur-Glâne Canton de Fribourg FR Sarine District 1004 Villars-sur-Glâne 2228 46.7943 7.1252 4 +CH 1752 Villars-sur-Glâne 1 Canton de Fribourg FR Sarine District 1004 Villars-sur-Glâne 2228 46.7944 7.1251 +CH 1753 Matran Canton de Fribourg FR Sarine District 1004 Matran 2208 46.7869 7.0916 4 +CH 1754 Rosé Canton de Fribourg FR Sarine District 1004 Avry 2174 46.784 7.0629 4 +CH 1754 Avry-sur-Matran Canton de Fribourg FR Sarine District 1004 Avry 2174 46.7886 7.066 4 +CH 1754 Corjolens Canton de Fribourg FR Sarine District 1004 Avry 2174 46.7863 7.0425 4 +CH 1754 Avry-Centre FR Canton de Fribourg FR Sarine District 1004 Avry 2174 46.7881 7.0603 6 +CH 1756 Onnens FR Canton de Fribourg FR Sarine District 1004 La Brillaz 2234 46.7724 7.0377 4 +CH 1756 Lovens Canton de Fribourg FR Sarine District 1004 La Brillaz 2234 46.7726 7.0189 4 +CH 1757 Noréaz Canton de Fribourg FR Sarine District 1004 Prez 2237 46.8019 7.0365 4 +CH 1762 Givisiez Canton de Fribourg FR Sarine District 1004 Givisiez 2197 46.8127 7.1255 4 +CH 1763 Granges-Paccot Canton de Fribourg FR Sarine District 1004 Granges-Paccot 2198 46.8236 7.1483 4 +CH 1772 Nierlet-les-Bois Canton de Fribourg FR Sarine District 1004 Ponthaux 2217 46.8169 7.0581 4 +CH 1772 Grolley Canton de Fribourg FR Sarine District 1004 Grolley 2200 46.8347 7.0658 4 +CH 1772 Ponthaux Canton de Fribourg FR Sarine District 1004 Ponthaux 2217 46.817 7.0411 4 +CH 1782 Formangueires Canton de Fribourg FR Sarine District 1004 La Sonnaz 2235 46.8279 7.1224 4 +CH 1782 Autafond Canton de Fribourg FR Sarine District 1004 Belfaux 2175 46.8162 7.0759 4 +CH 1782 Lossy Canton de Fribourg FR Sarine District 1004 La Sonnaz 2235 46.8347 7.1061 4 +CH 1782 Belfaux Canton de Fribourg FR Sarine District 1004 Belfaux 2175 46.8288 7.095 4 +CH 1782 Cormagens Canton de Fribourg FR Sarine District 1004 La Sonnaz 2235 46.8359 7.1377 4 +CH 1782 La Corbaz Canton de Fribourg FR Sarine District 1004 La Sonnaz 2235 46.8412 7.1161 4 +CH 1583 Villarepos Canton de Fribourg FR Lake District 1005 Courtepin 2254 46.8823 7.08 4 +CH 1721 Cournillens Canton de Fribourg FR Lake District 1005 Misery-Courtion 2272 46.8555 7.1002 4 +CH 1721 Misery-Courtion Canton de Fribourg FR Lake District 1005 Misery-Courtion 2272 46.8582 7.0849 6 +CH 1721 Misery Canton de Fribourg FR Lake District 1005 Misery-Courtion 2272 46.851 7.0682 4 +CH 1721 Cormérod Canton de Fribourg FR Lake District 1005 Misery-Courtion 2272 46.8667 7.0857 4 +CH 1721 Courtion Canton de Fribourg FR Lake District 1005 Misery-Courtion 2272 46.8595 7.0705 4 +CH 1783 Pensier Canton de Fribourg FR Lake District 1005 Courtepin 2254 46.8471 7.1292 4 +CH 1783 Barberêche Canton de Fribourg FR Lake District 1005 Courtepin 2254 46.8638 7.1604 4 +CH 1784 Courtepin Canton de Fribourg FR Lake District 1005 Courtepin 2254 46.8615 7.1242 4 +CH 1784 Wallenried Canton de Fribourg FR Lake District 1005 Courtepin 2254 46.876 7.1116 4 +CH 1785 Cressier FR Canton de Fribourg FR Lake District 1005 Cressier (FR) 2257 46.898 7.1379 4 +CH 1786 Sugiez Canton de Fribourg FR Lake District 1005 Mont-Vully 2284 46.9687 7.112 4 +CH 1787 Môtier (Vully) Canton de Fribourg FR Lake District 1005 Mont-Vully 2284 46.9393 7.0807 4 +CH 1787 Mur (Vully) FR Canton de Fribourg FR Lake District 1005 Mont-Vully 2284 46.9456 7.0643 4 +CH 1788 Praz (Vully) Canton de Fribourg FR Lake District 1005 Mont-Vully 2284 46.9495 7.1032 4 +CH 1789 Lugnorre Canton de Fribourg FR Lake District 1005 Mont-Vully 2284 46.9586 7.0733 4 +CH 1791 Courtaman Canton de Fribourg FR Lake District 1005 Courtepin 2254 46.8711 7.1316 4 +CH 1792 Cordast Canton de Fribourg FR Lake District 1005 Gurmels 2262 46.8733 7.1512 4 +CH 1792 Guschelmuth Canton de Fribourg FR Lake District 1005 Gurmels 2262 46.8848 7.1397 4 +CH 1793 Jeuss Canton de Fribourg FR Lake District 1005 Murten 2275 46.9124 7.1744 4 +CH 1794 Salvenach Canton de Fribourg FR Lake District 1005 Murten 2275 46.9141 7.1523 4 +CH 1795 Courlevon Canton de Fribourg FR Lake District 1005 Murten 2275 46.891 7.1105 4 +CH 1796 Courgevaux Canton de Fribourg FR Lake District 1005 Courgevaux 2250 46.9043 7.1047 4 +CH 3206 Wallenbuch Canton de Fribourg FR Lake District 1005 Gurmels 2262 46.9318 7.2249 4 +CH 3210 Kerzers Canton de Fribourg FR Lake District 1005 Kerzers 2265 46.9806 7.1959 4 +CH 3212 Gurmels Canton de Fribourg FR Lake District 1005 Gurmels 2262 46.8903 7.1725 4 +CH 3212 Kleingurmels Canton de Fribourg FR Lake District 1005 Gurmels 2262 46.8845 7.187 4 +CH 3213 Kleinbösingen Canton de Fribourg FR Lake District 1005 Kleinbösingen 2266 46.893 7.2024 3 +CH 3213 Liebistorf Canton de Fribourg FR Lake District 1005 Gurmels 2262 46.9113 7.1931 4 +CH 3214 Ulmiz Canton de Fribourg FR Lake District 1005 Ulmiz 2278 46.9299 7.1986 4 +CH 3215 Gempenach Canton de Fribourg FR Lake District 1005 Murten 2275 46.9432 7.1986 4 +CH 3215 Lurtigen Canton de Fribourg FR Lake District 1005 Murten 2275 46.9284 7.1722 4 +CH 3215 Büchslen Canton de Fribourg FR Lake District 1005 Murten 2275 46.9449 7.1787 4 +CH 3216 Agriswil Canton de Fribourg FR Lake District 1005 Ried bei Kerzers 2276 46.9544 7.2013 4 +CH 3216 Ried b. Kerzers Canton de Fribourg FR Lake District 1005 Ried bei Kerzers 2276 46.9653 7.1762 3 +CH 3280 Greng Canton de Fribourg FR Lake District 1005 Greng 2261 46.9191 7.0865 4 +CH 3280 Murten Canton de Fribourg FR Lake District 1005 Murten 2275 46.9304 7.1335 4 +CH 3280 Meyriez Canton de Fribourg FR Lake District 1005 Meyriez 2271 46.9288 7.1007 4 +CH 3284 Fräschels Canton de Fribourg FR Lake District 1005 Fräschels 2258 46.9979 7.2082 4 +CH 3285 Galmiz Canton de Fribourg FR Lake District 1005 Murten 2275 46.9599 7.1466 4 +CH 3286 Muntelier Canton de Fribourg FR Lake District 1005 Muntelier 2274 46.9424 7.128 4 +CH 1712 Tafers Canton de Fribourg FR Sense District 1006 Tafers 2306 46.8126 7.2246 4 +CH 1713 St. Antoni Canton de Fribourg FR Sense District 1006 Tafers 2306 46.8192 7.2671 4 +CH 1714 Heitenried Canton de Fribourg FR Sense District 1006 Heitenried 2296 46.8279 7.3 4 +CH 1715 Alterswil FR Canton de Fribourg FR Sense District 1006 Tafers 2306 46.7892 7.274 4 +CH 1716 Plaffeien Canton de Fribourg FR Sense District 1006 Plaffeien 2299 46.7271 7.2874 4 +CH 1716 Oberschrot Canton de Fribourg FR Sense District 1006 Plaffeien 2299 46.7369 7.2697 4 +CH 1716 Schwarzsee Canton de Fribourg FR Sense District 1006 Plaffeien 2299 46.6724 7.2892 4 +CH 1717 St. Ursen Canton de Fribourg FR Sense District 1006 St. Ursen 2304 46.7884 7.2194 4 +CH 1718 Rechthalten Canton de Fribourg FR Sense District 1006 Rechthalten 2301 46.7653 7.2482 4 +CH 1719 Brünisried Canton de Fribourg FR Sense District 1006 Brünisried 2292 46.7573 7.2764 4 +CH 1719 Zumholz Canton de Fribourg FR Sense District 1006 Plaffeien 2299 46.7566 7.2937 4 +CH 1734 Tentlingen Canton de Fribourg FR Sense District 1006 Tentlingen 2307 46.7676 7.2 4 +CH 1735 Giffers Canton de Fribourg FR Sense District 1006 Giffers 2294 46.7549 7.2246 4 +CH 1736 St. Silvester Canton de Fribourg FR Sense District 1006 St. Silvester 2303 46.738 7.2209 4 +CH 1737 Plasselb Canton de Fribourg FR Sense District 1006 Plasselb 2300 46.7116 7.2436 4 +CH 3175 Flamatt Canton de Fribourg FR Sense District 1006 Wünnewil-Flamatt 2309 46.889 7.3199 4 +CH 3178 Bösingen Canton de Fribourg FR Sense District 1006 Bösingen 2295 46.8853 7.234 4 +CH 3182 Ueberstorf Canton de Fribourg FR Sense District 1006 Ueberstorf 2308 46.8694 7.3262 4 +CH 3184 Wünnewil Canton de Fribourg FR Sense District 1006 Wünnewil-Flamatt 2309 46.8757 7.2791 4 +CH 3185 Schmitten FR Canton de Fribourg FR Sense District 1006 Schmitten (FR) 2305 46.8504 7.247 4 +CH 3186 Düdingen Canton de Fribourg FR Sense District 1006 Düdingen 2293 46.8462 7.1915 4 +CH 1609 St-Martin FR Canton de Fribourg FR Veveyse District 1007 Saint-Martin (FR) 2335 46.5742 6.882 4 +CH 1609 Besencens Canton de Fribourg FR Veveyse District 1007 Saint-Martin (FR) 2335 46.5878 6.8685 4 +CH 1609 Fiaugères Canton de Fribourg FR Veveyse District 1007 Saint-Martin (FR) 2335 46.5894 6.8914 4 +CH 1609 Fiaugères Canton de Fribourg FR Veveyse District 1007 Saint-Martin (FR) 2335 46.5894 6.8914 4 +CH 1611 Le Crêt-près-Semsales Canton de Fribourg FR Veveyse District 1007 La Verrerie 2338 46.607 6.919 4 +CH 1614 Granges (Veveyse) Canton de Fribourg FR Veveyse District 1007 Granges (Veveyse) 2328 46.523 6.8263 4 +CH 1615 Bossonnens Canton de Fribourg FR Veveyse District 1007 Bossonnens 2323 46.5289 6.8481 4 +CH 1616 Attalens Canton de Fribourg FR Veveyse District 1007 Attalens 2321 46.5078 6.8541 4 +CH 1617 Tatroz Canton de Fribourg FR Veveyse District 1007 Attalens 2321 46.5285 6.8671 4 +CH 1617 Remaufens Canton de Fribourg FR Veveyse District 1007 Remaufens 2333 46.5371 6.8826 4 +CH 1618 Châtel-St-Denis Canton de Fribourg FR Veveyse District 1007 Châtel-Saint-Denis 2325 46.5344 6.937 4 +CH 1619 Les Paccots Canton de Fribourg FR Veveyse District 1007 Châtel-Saint-Denis 2325 46.5073 6.9663 4 +CH 1623 Semsales Canton de Fribourg FR Veveyse District 1007 Semsales 2336 46.5699 6.9517 4 +CH 1624 La Verrerie Canton de Fribourg FR Veveyse District 1007 La Verrerie 2338 46.5878 6.9211 4 +CH 1624 Progens Canton de Fribourg FR Veveyse District 1007 Semsales 2336 46.5857 6.9184 4 +CH 1624 Progens Canton de Fribourg FR Veveyse District 1007 La Verrerie 2338 46.5857 6.9184 4 +CH 1624 Grattavache Canton de Fribourg FR Veveyse District 1007 La Verrerie 2338 46.5964 6.9267 4 +CH 1699 Porsel Canton de Fribourg FR Veveyse District 1007 Le Flon 2337 46.6018 6.8706 4 +CH 1699 Pont (Veveyse) Canton de Fribourg FR Veveyse District 1007 Le Flon 2337 46.5913 6.8522 4 +CH 1699 Bouloz Canton de Fribourg FR Veveyse District 1007 Le Flon 2337 46.6148 6.8877 4 +CH 1699 Porsel Canton de Fribourg FR Veveyse District 1007 Le Flon 2337 46.6018 6.8706 4 +CH 1200 Genève Genève GE Geneva 2500 Genève 6621 46.2022 6.1457 4 +CH 1201 Genève Genève GE Geneva 2500 Genève 6621 46.2107 6.1469 4 +CH 1202 Genève Genève GE Geneva 2500 Genève 6621 46.221 6.1432 4 +CH 1203 Genève Genève GE Geneva 2500 Genève 6621 46.2079 6.1221 4 +CH 1204 Genève Genève GE Geneva 2500 Genève 6621 46.2027 6.1457 4 +CH 1205 Genève Genève GE Geneva 2500 Genève 6621 46.1961 6.1403 4 +CH 1206 Genève Genève GE Geneva 2500 Genève 6621 46.1894 6.1574 4 +CH 1207 Genève Genève GE Geneva 2500 Genève 6621 46.2066 6.1624 4 +CH 1208 Genève Genève GE Geneva 2500 Genève 6621 46.1984 6.1676 4 +CH 1209 Genève Genève GE Geneva 2500 Genève 6621 46.2215 6.1232 4 +CH 1211 Genève 70 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 84 Votations Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 14 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 20 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 5 Genève GE Geneva 2500 Le Grand-Saconnex 6623 46.2358 6.1192 +CH 1211 Genève 22 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 28 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 27 Genève GE Geneva 2500 Pregny-Chambésy 6634 46.2379 6.1424 +CH 1211 Genève 1 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 11 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 26 Genève GE Geneva 2500 Lancy 6628 46.1897 6.1158 +CH 1211 Genève 23 Genève GE Geneva 2500 Meyrin 6630 46.2322 6.0791 +CH 1211 Genève 71 CS CP Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 80 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 73 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 84 Votation Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 4 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 6 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 2 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 19 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 12 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 13 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 10 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 3 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1211 Genève 8 Genève GE Geneva 2500 Genève 6621 46.2058 6.1416 +CH 1212 Grand-Lancy Genève GE Geneva 2500 Lancy 6628 46.178 6.122 4 +CH 1212 Grand-Lancy 1 Genève GE Geneva 2500 Lancy 6628 46.1897 6.1158 +CH 1213 Onex Genève GE Geneva 2500 Onex 6631 46.1854 6.1002 4 +CH 1213 Petit-Lancy 1 Genève GE Geneva 2500 Lancy 6628 46.1897 6.1158 6 +CH 1213 Petit-Lancy Genève GE Geneva 2500 Lancy 6628 46.1939 6.1159 4 +CH 1214 Vernier Genève GE Geneva 2500 Vernier 6643 46.2139 6.0796 4 +CH 1215 Genève 15 Aéroport Genève GE Geneva 2500 Meyrin 6630 46.2347 6.1064 +CH 1215 Genève Genève GE Geneva 2500 Le Grand-Saconnex 6623 46.2358 6.1192 4 +CH 1216 Cointrin Genève GE Geneva 2500 Meyrin 6630 46.224 6.1062 4 +CH 1217 Meyrin Genève GE Geneva 2500 Meyrin 6630 46.2339 6.0743 4 +CH 1217 Meyrin 1 Genève GE Geneva 2500 Meyrin 6630 46.2322 6.0791 +CH 1218 Le Grand-Saconnex Genève GE Geneva 2500 Le Grand-Saconnex 6623 46.2338 6.1221 4 +CH 1219 Aïre Genève GE Geneva 2500 Vernier 6643 46.1986 6.0985 4 +CH 1219 Le Lignon Genève GE Geneva 2500 Vernier 6643 46.2067 6.0984 4 +CH 1219 Châtelaine Genève GE Geneva 2500 Vernier 6643 46.2138 6.1087 4 +CH 1220 Les Avanchets Genève GE Geneva 2500 Vernier 6643 46.2207 6.1091 4 +CH 1222 Vésenaz Genève GE Geneva 2500 Collonge-Bellerive 6616 46.2454 6.2008 4 +CH 1223 Cologny Genève GE Geneva 2500 Cologny 6617 46.2228 6.1808 4 +CH 1224 Chêne-Bougeries Genève GE Geneva 2500 Chêne-Bougeries 6612 46.1995 6.1858 4 +CH 1225 Chêne-Bourg Genève GE Geneva 2500 Chêne-Bourg 6613 46.1974 6.197 4 +CH 1226 Thônex Genève GE Geneva 2500 Thônex 6640 46.1961 6.2046 4 +CH 1227 Les Acacias Genève GE Geneva 2500 Genève 6621 46.1926 6.1321 4 +CH 1227 Carouge GE Genève GE Geneva 2500 Carouge (GE) 6608 46.1817 6.1403 3 +CH 1228 Plan-les-Ouates Genève GE Geneva 2500 Plan-les-Ouates 6633 46.1642 6.118 4 +CH 1231 Conches Genève GE Geneva 2500 Chêne-Bougeries 6612 46.1855 6.1759 4 +CH 1232 Confignon Genève GE Geneva 2500 Confignon 6618 46.1743 6.0888 4 +CH 1233 Bernex Genève GE Geneva 2500 Bernex 6607 46.1785 6.0686 4 +CH 1234 Vessy Genève GE Geneva 2500 Veyrier 6645 46.1742 6.159 4 +CH 1236 Cartigny Genève GE Geneva 2500 Cartigny 6609 46.1759 6.0309 4 +CH 1237 Avully Genève GE Geneva 2500 Avully 6603 46.1675 5.9985 4 +CH 1239 Collex Genève GE Geneva 2500 Collex-Bossy 6615 46.2796 6.1212 4 +CH 1240 Genève Genève GE Geneva 2500 Genève 6621 46.2022 6.1457 +CH 1241 Puplinge Genève GE Geneva 2500 Puplinge 6636 46.2108 6.2322 4 +CH 1242 Satigny Genève GE Geneva 2500 Satigny 6638 46.2143 6.035 4 +CH 1243 Presinge Genève GE Geneva 2500 Presinge 6635 46.218 6.2602 4 +CH 1244 Choulex Genève GE Geneva 2500 Choulex 6614 46.2263 6.2238 4 +CH 1245 Collonge-Bellerive Genève GE Geneva 2500 Collonge-Bellerive 6616 46.2587 6.1965 4 +CH 1246 Corsier GE Genève GE Geneva 2500 Corsier (GE) 6619 46.2659 6.2191 4 +CH 1247 Anières Genève GE Geneva 2500 Anières 6602 46.2808 6.2226 4 +CH 1248 Hermance Genève GE Geneva 2500 Hermance 6625 46.2988 6.2325 4 +CH 1251 Gy Genève GE Geneva 2500 Gy 6624 46.2519 6.27 4 +CH 1252 Meinier Genève GE Geneva 2500 Meinier 6629 46.243 6.2351 4 +CH 1253 Vandoeuvres Genève GE Geneva 2500 Vandoeuvres 6642 46.219 6.2037 4 +CH 1254 Jussy Genève GE Geneva 2500 Jussy 6626 46.2372 6.2791 4 +CH 1255 Veyrier Genève GE Geneva 2500 Veyrier 6645 46.1684 6.1769 4 +CH 1256 Troinex Genève GE Geneva 2500 Troinex 6641 46.1593 6.1506 4 +CH 1257 La Croix-de-Rozon Genève GE Geneva 2500 Bardonnex 6605 46.149 6.1207 4 +CH 1258 Perly Genève GE Geneva 2500 Perly-Certoux 6632 46.1575 6.0889 4 +CH 1281 Russin Genève GE Geneva 2500 Russin 6637 46.1939 6.0139 4 +CH 1283 Dardagny Genève GE Geneva 2500 Dardagny 6620 46.2002 5.9878 4 +CH 1283 La Plaine Genève GE Geneva 2500 Dardagny 6620 46.1792 6.0032 4 +CH 1284 Chancy Genève GE Geneva 2500 Chancy 6611 46.1475 5.9787 4 +CH 1285 Athenaz (Avusy) Genève GE Geneva 2500 Avusy 6604 46.1496 6.0086 4 +CH 1286 Soral Genève GE Geneva 2500 Soral 6639 46.1481 6.0474 4 +CH 1287 Laconnex Genève GE Geneva 2500 Laconnex 6627 46.1589 6.0341 4 +CH 1288 Aire-la-Ville Genève GE Geneva 2500 Aire-la-Ville 6601 46.1902 6.0422 4 +CH 1290 Versoix Genève GE Geneva 2500 Versoix 6644 46.2877 6.1559 4 +CH 1292 Chambésy Genève GE Geneva 2500 Pregny-Chambésy 6634 46.2375 6.1511 4 +CH 1293 Bellevue Genève GE Geneva 2500 Bellevue 6606 46.2545 6.1455 4 +CH 1294 Genthod Genève GE Geneva 2500 Genthod 6622 46.2637 6.1614 4 +CH 1298 Céligny Genève GE Geneva 2500 Céligny 6610 46.3473 6.2052 4 +CH 8750 Klöntal Kanton Glarus GL Glarus 800 Glarus 1632 47.019 8.9682 4 +CH 8750 Glarus Kanton Glarus GL Glarus 800 Glarus 1632 47.0369 9.0546 4 +CH 8750 Riedern Kanton Glarus GL Glarus 800 Glarus 1632 47.0496 9.0394 4 +CH 8752 Näfels Kanton Glarus GL Glarus 800 Glarus Nord 1630 47.0865 9.0053 4 +CH 8753 Mollis Kanton Glarus GL Glarus 800 Glarus Nord 1630 47.0938 9.0914 4 +CH 8754 Netstal Kanton Glarus GL Glarus 800 Glarus 1632 47.0638 9.0417 4 +CH 8755 Ennenda Kanton Glarus GL Glarus 800 Glarus 1632 47.0445 9.0986 4 +CH 8756 Mitlödi Kanton Glarus GL Glarus 800 Glarus Süd 1631 47.0154 9.0805 4 +CH 8757 Filzbach Kanton Glarus GL Glarus 800 Glarus Nord 1630 47.1015 9.1253 4 +CH 8758 Obstalden Kanton Glarus GL Glarus 800 Glarus Nord 1630 47.0772 9.1536 4 +CH 8759 Netstal Kanton Glarus GL Glarus 800 Glarus 1632 47.0634 9.0573 +CH 8762 Sool Kanton Glarus GL Glarus 800 Glarus Süd 1631 47.0125 9.1249 4 +CH 8762 Schwanden GL Kanton Glarus GL Glarus 800 Glarus Süd 1631 46.9738 9.0849 4 +CH 8762 Schwändi b. Schwanden Kanton Glarus GL Glarus 800 Glarus Süd 1631 47.0131 9.0564 3 +CH 8765 Engi Kanton Glarus GL Glarus 800 Glarus Süd 1631 46.9983 9.1692 4 +CH 8766 Matt Kanton Glarus GL Glarus 800 Glarus Süd 1631 46.9713 9.198 4 +CH 8767 Elm Kanton Glarus GL Glarus 800 Glarus Süd 1631 46.9061 9.1564 4 +CH 8772 Nidfurn Kanton Glarus GL Glarus 800 Glarus Süd 1631 46.9876 9.0435 4 +CH 8773 Haslen GL Kanton Glarus GL Glarus 800 Glarus Süd 1631 46.9595 9.0726 4 +CH 8774 Leuggelbach Kanton Glarus GL Glarus 800 Glarus Süd 1631 46.9787 9.0363 4 +CH 8775 Luchsingen Kanton Glarus GL Glarus 800 Glarus Süd 1631 46.9764 9.0012 4 +CH 8775 Luchsingen-Hätzingen Kanton Glarus GL Glarus 800 Glarus Süd 1631 46.9271 9.0779 +CH 8775 Hätzingen Kanton Glarus GL Glarus 800 Glarus Süd 1631 46.9603 9.0493 4 +CH 8777 Betschwanden Kanton Glarus GL Glarus 800 Glarus Süd 1631 46.9283 9.0549 4 +CH 8777 Diesbach GL Kanton Glarus GL Glarus 800 Glarus Süd 1631 46.944 9.0511 4 +CH 8782 Rüti GL Kanton Glarus GL Glarus 800 Glarus Süd 1631 46.9316 9.0211 4 +CH 8783 Linthal Kanton Glarus GL Glarus 800 Glarus Süd 1631 46.8631 8.979 4 +CH 8784 Braunwald Kanton Glarus GL Glarus 800 Glarus Süd 1631 46.9458 8.9845 4 +CH 8865 Bilten Kanton Glarus GL Glarus 800 Glarus Nord 1630 47.1479 9.0078 4 +CH 8867 Niederurnen Kanton Glarus GL Glarus 800 Glarus Nord 1630 47.1265 9.0208 4 +CH 8868 Oberurnen Kanton Glarus GL Glarus 800 Glarus Nord 1630 47.1153 9.0366 4 +CH 8874 Mühlehorn Kanton Glarus GL Glarus 800 Glarus Nord 1630 47.1027 9.1749 4 +CH 7077 Valbella Kanton Graubünden GR Region Albula 1841 Vaz/Obervaz 3506 46.7522 9.5502 4 +CH 7078 Lenzerheide/Lai Kanton Graubünden GR Region Albula 1841 Vaz/Obervaz 3506 46.7317 9.5481 4 +CH 7082 Vaz/Obervaz Kanton Graubünden GR Region Albula 1841 Vaz/Obervaz 3506 46.6974 9.5183 4 +CH 7083 Lantsch/Lenz Kanton Graubünden GR Region Albula 1841 Lantsch/Lenz 3513 46.707 9.5794 4 +CH 7084 Brienz/Brinzauls GR Kanton Graubünden GR Region Albula 1841 Albula/Alvra 3542 46.6837 9.6028 4 +CH 7450 Tiefencastel Kanton Graubünden GR Region Albula 1841 Albula/Alvra 3542 46.6483 9.6037 4 +CH 7450 Tiefencastel Kanton Graubünden GR Region Albula 1841 Vaz/Obervaz 3506 46.6483 9.6037 4 +CH 7451 Alvaschein Kanton Graubünden GR Region Albula 1841 Albula/Alvra 3542 46.6778 9.5467 4 +CH 7452 Cunter Kanton Graubünden GR Region Albula 1841 Surses 3543 46.6202 9.6043 4 +CH 7453 Tinizong Kanton Graubünden GR Region Albula 1841 Surses 3543 46.5868 9.6608 4 +CH 7454 Rona Kanton Graubünden GR Region Albula 1841 Surses 3543 46.5567 9.6608 4 +CH 7455 Mulegns Kanton Graubünden GR Region Albula 1841 Surses 3543 46.5044 9.5795 4 +CH 7456 Marmorera Kanton Graubünden GR Region Albula 1841 Surses 3543 46.4997 9.6473 4 +CH 7456 Sur Kanton Graubünden GR Region Albula 1841 Surses 3543 46.528 9.6632 4 +CH 7457 Bivio Kanton Graubünden GR Region Albula 1841 Surses 3543 46.4578 9.6618 4 +CH 7458 Mon Kanton Graubünden GR Region Albula 1841 Albula/Alvra 3542 46.6487 9.5484 4 +CH 7459 Stierva Kanton Graubünden GR Region Albula 1841 Albula/Alvra 3542 46.657 9.5204 4 +CH 7460 Savognin Kanton Graubünden GR Region Albula 1841 Surses 3543 46.5814 9.6024 4 +CH 7462 Salouf Kanton Graubünden GR Region Albula 1841 Surses 3543 46.6124 9.533 4 +CH 7463 Riom Kanton Graubünden GR Region Albula 1841 Surses 3543 46.6224 9.5892 4 +CH 7463 Riom Kanton Graubünden GR Region Albula 1841 Surses 3543 46.6224 9.5892 4 +CH 7464 Parsonz Kanton Graubünden GR Region Albula 1841 Surses 3543 46.5567 9.5423 4 +CH 7472 Surava Kanton Graubünden GR Region Albula 1841 Albula/Alvra 3542 46.6572 9.6172 4 +CH 7473 Alvaneu Bad Kanton Graubünden GR Region Albula 1841 Albula/Alvra 3542 46.6686 9.6491 4 +CH 7477 Filisur Kanton Graubünden GR Region Albula 1841 Bergün Filisur 3544 46.6488 9.6882 4 +CH 7482 Stugl/Stuls Kanton Graubünden GR Region Albula 1841 Bergün Filisur 3544 46.6575 9.7426 4 +CH 7482 Bergün/Bravuogn Kanton Graubünden GR Region Albula 1841 Bergün Filisur 3544 46.6389 9.8055 4 +CH 7482 Preda Kanton Graubünden GR Region Albula 1841 Bergün Filisur 3544 46.587 9.7729 4 +CH 7484 Latsch Kanton Graubünden GR Region Albula 1841 Bergün Filisur 3544 46.6377 9.7553 4 +CH 7492 Alvaneu Dorf Kanton Graubünden GR Region Albula 1841 Albula/Alvra 3542 46.7156 9.6443 4 +CH 7493 Schmitten (Albula) Kanton Graubünden GR Region Albula 1841 Schmitten (GR) 3514 46.7042 9.6778 4 +CH 7710 Alp Grüm Kanton Graubünden GR Region Bernina 1842 Poschiavo 3561 46.375 10.0326 4 +CH 7710 Ospizio Bernina Kanton Graubünden GR Region Bernina 1842 Poschiavo 3561 46.3952 10.0196 4 +CH 7741 S. Carlo (Poschiavo) Kanton Graubünden GR Region Bernina 1842 Poschiavo 3561 46.3567 10.082 4 +CH 7742 Sfazù Kanton Graubünden GR Region Bernina 1842 Poschiavo 3561 46.3989 10.1197 4 +CH 7742 Poschiavo Kanton Graubünden GR Region Bernina 1842 Poschiavo 3561 46.3379 10.0388 4 +CH 7742 La Rösa Kanton Graubünden GR Region Bernina 1842 Poschiavo 3561 46.4087 10.0774 4 +CH 7743 Brusio Kanton Graubünden GR Region Bernina 1842 Brusio 3551 46.2753 10.1232 4 +CH 7743 Miralago Kanton Graubünden GR Region Bernina 1842 Poschiavo 3561 46.2731 10.1009 4 +CH 7744 Campocologno Kanton Graubünden GR Region Bernina 1842 Brusio 3551 46.2362 10.142 4 +CH 7745 Li Curt Kanton Graubünden GR Region Bernina 1842 Poschiavo 3561 46.2988 10.0336 4 +CH 7746 Le Prese Kanton Graubünden GR Region Bernina 1842 Poschiavo 3561 46.2834 10.0863 4 +CH 7747 Viano Kanton Graubünden GR Region Bernina 1842 Brusio 3551 46.2612 10.1523 4 +CH 7748 Campascio Kanton Graubünden GR Region Bernina 1842 Brusio 3551 46.2381 10.0953 4 +CH 7527 Brail Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Zernez 3746 46.6765 10.0189 4 +CH 7530 Zernez Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Zernez 3746 46.6705 10.1404 4 +CH 7532 Tschierv Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Val Müstair 3847 46.6422 10.2981 4 +CH 7533 Fuldera Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Val Müstair 3847 46.6048 10.3451 4 +CH 7534 Lü Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Val Müstair 3847 46.6355 10.3724 4 +CH 7535 Valchava Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Val Müstair 3847 46.6022 10.3859 4 +CH 7536 Sta. Maria Val Müstair Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Val Müstair 3847 46.5785 10.3704 4 +CH 7537 Müstair Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Val Müstair 3847 46.615 10.4555 4 +CH 7542 Susch Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Zernez 3746 46.751 10.0223 4 +CH 7543 Lavin Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Zernez 3746 46.7828 10.1073 4 +CH 7545 Guarda Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Scuol 3762 46.8081 10.1422 4 +CH 7546 Ardez Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Scuol 3762 46.7698 10.1857 4 +CH 7550 Scuol Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Scuol 3762 46.7346 10.3263 4 +CH 7551 Ftan Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Scuol 3762 46.8259 10.2279 4 +CH 7552 Vulpera Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Scuol 3762 46.7873 10.286 4 +CH 7553 Tarasp Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Scuol 3762 46.7396 10.2465 4 +CH 7554 Sent Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Scuol 3762 46.8251 10.3404 4 +CH 7554 Crusch Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Scuol 3762 46.7346 10.3264 4 +CH 7556 Ramosch Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Valsot 3764 46.8583 10.33 4 +CH 7556 Ramosch Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Valsot 3764 46.8583 10.33 4 +CH 7557 Vnà Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Valsot 3764 46.8802 10.3512 4 +CH 7558 Strada Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Valsot 3764 46.8407 10.4386 4 +CH 7559 Tschlin Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Valsot 3764 46.9061 10.4097 4 +CH 7560 Martina Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Valsot 3764 46.9159 10.4553 4 +CH 7562 Samnaun-Compatsch Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Samnaun 3752 46.9633 10.4023 4 +CH 7563 Samnaun Dorf Kanton Graubünden GR Region Engiadina Bassa / Val Müstair 1843 Samnaun 3752 46.9496 10.358 4 +CH 7012 Felsberg Kanton Graubünden GR Region Imboden 1844 Felsberg 3731 46.8564 9.4625 4 +CH 7013 Domat/Ems Kanton Graubünden GR Region Imboden 1844 Domat/Ems 3722 46.8197 9.4547 4 +CH 7014 Trin Kanton Graubünden GR Region Imboden 1844 Trin 3734 46.8686 9.3291 4 +CH 7015 Tamins Kanton Graubünden GR Region Imboden 1844 Tamins 3733 46.844 9.4086 4 +CH 7016 Trin Mulin Kanton Graubünden GR Region Imboden 1844 Trin 3734 46.8224 9.3327 4 +CH 7017 Flims Dorf Kanton Graubünden GR Region Imboden 1844 Flims 3732 46.864 9.2694 4 +CH 7018 Flims Waldhaus Kanton Graubünden GR Region Imboden 1844 Flims 3732 46.8248 9.2871 4 +CH 7019 Fidaz Kanton Graubünden GR Region Imboden 1844 Flims 3732 46.8455 9.319 4 +CH 7402 Bonaduz Kanton Graubünden GR Region Imboden 1844 Bonaduz 3721 46.7939 9.3699 4 +CH 7403 Rhäzüns Kanton Graubünden GR Region Imboden 1844 Rhäzüns 3723 46.7862 9.3922 4 +CH 7202 Says Kanton Graubünden GR Region Landquart 1845 Trimmis 3945 46.9013 9.597 4 +CH 7203 Trimmis Kanton Graubünden GR Region Landquart 1845 Trimmis 3945 46.8892 9.5728 4 +CH 7204 Untervaz Kanton Graubünden GR Region Landquart 1845 Untervaz 3946 46.9206 9.5159 4 +CH 7205 Zizers Kanton Graubünden GR Region Landquart 1845 Zizers 3947 46.9343 9.5726 4 +CH 7206 Igis Kanton Graubünden GR Region Landquart 1845 Landquart 3955 46.9452 9.5807 4 +CH 7208 Malans GR Kanton Graubünden GR Region Landquart 1845 Malans 3954 46.9888 9.5803 4 +CH 7302 Landquart Kanton Graubünden GR Region Landquart 1845 Landquart 3955 46.9616 9.5772 4 +CH 7303 Mastrils Kanton Graubünden GR Region Landquart 1845 Landquart 3955 46.9589 9.5295 4 +CH 7304 Maienfeld Kanton Graubünden GR Region Landquart 1845 Maienfeld 3953 47.0305 9.5629 4 +CH 7306 Fläsch Kanton Graubünden GR Region Landquart 1845 Fläsch 3951 47.0395 9.5053 4 +CH 7307 Jenins Kanton Graubünden GR Region Landquart 1845 Jenins 3952 47.0117 9.5744 4 +CH 7500 St. Moritz Kanton Graubünden GR Region Maloja 1846 St. Moritz 3787 46.4905 9.8174 4 +CH 7500 St. Moritz 3 Kanton Graubünden GR Region Maloja 1846 St. Moritz 3787 46.4903 9.8169 +CH 7500 St. Moritz 1 Kanton Graubünden GR Region Maloja 1846 St. Moritz 3787 46.4903 9.8169 +CH 7502 Bever Kanton Graubünden GR Region Maloja 1846 Bever 3781 46.543 9.8005 4 +CH 7502 Bever Kanton Graubünden GR Region Maloja 1846 Bever 3781 46.543 9.8005 4 +CH 7503 Samedan Kanton Graubünden GR Region Maloja 1846 Samedan 3786 46.5332 9.8492 4 +CH 7504 Pontresina Kanton Graubünden GR Region Maloja 1846 Pontresina 3784 46.4311 9.9249 4 +CH 7505 Celerina/Schlarigna Kanton Graubünden GR Region Maloja 1846 Celerina/Schlarigna 3782 46.5097 9.8436 4 +CH 7512 Champfèr Kanton Graubünden GR Region Maloja 1846 Silvaplana 3790 46.4766 9.8058 4 +CH 7513 Silvaplana-Surlej Kanton Graubünden GR Region Maloja 1846 Silvaplana 3790 46.4447 9.82 4 +CH 7513 Silvaplana Kanton Graubünden GR Region Maloja 1846 Silvaplana 3790 46.474 9.7609 4 +CH 7514 Sils/Segl Maria Kanton Graubünden GR Region Maloja 1846 Sils im Engadin/Segl 3789 46.4347 9.7786 4 +CH 7514 Fex Kanton Graubünden GR Region Maloja 1846 Sils im Engadin/Segl 3789 46.3835 9.7899 4 +CH 7515 Sils/Segl Baselgia Kanton Graubünden GR Region Maloja 1846 Sils im Engadin/Segl 3789 46.4371 9.7424 4 +CH 7516 Maloja Kanton Graubünden GR Region Maloja 1846 Bregaglia 3792 46.3649 9.7199 4 +CH 7517 Plaun da Lej Kanton Graubünden GR Region Maloja 1846 Sils im Engadin/Segl 3789 46.4271 9.7091 4 +CH 7522 La Punt Chamues-ch Kanton Graubünden GR Region Maloja 1846 La Punt-Chamues-ch 3785 46.5508 9.9302 4 +CH 7522 La Punt-Chamues-ch Kanton Graubünden GR Region Maloja 1846 La Punt-Chamues-ch 3785 46.5789 9.9201 4 +CH 7523 Madulain Kanton Graubünden GR Region Maloja 1846 Madulain 3783 46.546 9.9659 4 +CH 7523 Madulain Kanton Graubünden GR Region Maloja 1846 Madulain 3783 46.546 9.9659 4 +CH 7524 Zuoz Kanton Graubünden GR Region Maloja 1846 Zuoz 3791 46.5631 9.9802 4 +CH 7524 Zuoz Kanton Graubünden GR Region Maloja 1846 Zuoz 3791 46.5631 9.9802 4 +CH 7525 S-chanf Kanton Graubünden GR Region Maloja 1846 S-chanf 3788 46.5971 10.0385 4 +CH 7526 Cinuos-chel Kanton Graubünden GR Region Maloja 1846 S-chanf 3788 46.6429 10.0222 4 +CH 7526 Chapella Kanton Graubünden GR Region Maloja 1846 S-chanf 3788 46.6557 9.9374 +CH 7602 Casaccia Kanton Graubünden GR Region Maloja 1846 Bregaglia 3792 46.3882 9.6568 4 +CH 7603 Vicosoprano Kanton Graubünden GR Region Maloja 1846 Bregaglia 3792 46.3505 9.6285 4 +CH 7604 Borgonovo Kanton Graubünden GR Region Maloja 1846 Bregaglia 3792 46.3477 9.6062 4 +CH 7605 Stampa Kanton Graubünden GR Region Maloja 1846 Bregaglia 3792 46.3396 9.5922 4 +CH 7606 Promontogno Kanton Graubünden GR Region Maloja 1846 Bregaglia 3792 46.3393 9.5573 4 +CH 7606 Bondo Kanton Graubünden GR Region Maloja 1846 Bregaglia 3792 46.3147 9.5798 4 +CH 7608 Castasegna Kanton Graubünden GR Region Maloja 1846 Bregaglia 3792 46.335 9.5234 4 +CH 7610 Soglio Kanton Graubünden GR Region Maloja 1846 Bregaglia 3792 46.357 9.5381 4 +CH 6534 S. Vittore Kanton Graubünden GR Region Moesa 1847 San Vittore 3835 46.2444 9.0981 4 +CH 6534 S. Vittore Kanton Graubünden GR Region Moesa 1847 San Vittore 3835 46.2444 9.0981 4 +CH 6535 Roveredo GR Kanton Graubünden GR Region Moesa 1847 Roveredo (GR) 3834 46.208 9.1525 4 +CH 6537 Grono Kanton Graubünden GR Region Moesa 1847 Grono 3832 46.2327 9.1814 4 +CH 6538 Verdabbio Kanton Graubünden GR Region Moesa 1847 Grono 3832 46.2731 9.2032 4 +CH 6538 Verdabbio Kanton Graubünden GR Region Moesa 1847 Grono 3832 46.2731 9.2032 4 +CH 6540 Castaneda Kanton Graubünden GR Region Moesa 1847 Castaneda 3805 46.2609 9.1301 4 +CH 6541 Sta. Maria in Calanca Kanton Graubünden GR Region Moesa 1847 Santa Maria in Calanca 3810 46.2835 9.148 4 +CH 6542 Buseno Kanton Graubünden GR Region Moesa 1847 Buseno 3804 46.2759 9.1034 4 +CH 6543 Arvigo Kanton Graubünden GR Region Moesa 1847 Calanca 3837 46.3011 9.0946 4 +CH 6544 Braggio Kanton Graubünden GR Region Moesa 1847 Calanca 3837 46.302 9.1333 4 +CH 6545 Selma Kanton Graubünden GR Region Moesa 1847 Calanca 3837 46.3221 9.1032 4 +CH 6546 Cauco Kanton Graubünden GR Region Moesa 1847 Calanca 3837 46.3336 9.1221 4 +CH 6548 Rossa Kanton Graubünden GR Region Moesa 1847 Rossa 3808 46.404 9.127 4 +CH 6549 Laura Kanton Graubünden GR Region Moesa 1847 Roveredo (GR) 3834 46.2108 9.1047 4 +CH 6556 Leggia Kanton Graubünden GR Region Moesa 1847 Grono 3832 46.2502 9.1872 4 +CH 6557 Cama Kanton Graubünden GR Region Moesa 1847 Cama 3831 46.2607 9.2064 4 +CH 6558 Lostallo Kanton Graubünden GR Region Moesa 1847 Lostallo 3821 46.3068 9.2247 4 +CH 6562 Soazza Kanton Graubünden GR Region Moesa 1847 Soazza 3823 46.3515 9.2259 4 +CH 6563 Mesocco Kanton Graubünden GR Region Moesa 1847 Mesocco 3822 46.4025 9.226 4 +CH 6565 S. Bernardino Kanton Graubünden GR Region Moesa 1847 Mesocco 3822 46.4713 9.1888 1 +CH 7000 Chur Kanton Graubünden GR Region Plessur 1848 Chur 3901 46.8528 9.5299 4 +CH 7001 Chur Kanton Graubünden GR Region Plessur 1848 Chur 3901 46.8499 9.5329 +CH 7004 Chur Kanton Graubünden GR Region Plessur 1848 Chur 3901 46.8499 9.5329 +CH 7006 Chur Kanton Graubünden GR Region Plessur 1848 Chur 3901 46.8499 9.5329 +CH 7007 Chur Kanton Graubünden GR Region Plessur 1848 Chur 3901 46.8499 9.5329 +CH 7023 Haldenstein Kanton Graubünden GR Region Plessur 1848 Chur 3901 46.8816 9.5009 4 +CH 7026 Maladers Kanton Graubünden GR Region Plessur 1848 Chur 3901 46.8447 9.5723 4 +CH 7027 Lüen Kanton Graubünden GR Region Plessur 1848 Arosa 3921 46.8409 9.6237 4 +CH 7027 Castiel Kanton Graubünden GR Region Plessur 1848 Arosa 3921 46.8484 9.6143 4 +CH 7027 Calfreisen Kanton Graubünden GR Region Plessur 1848 Arosa 3921 46.8544 9.6005 3 +CH 7028 St. Peter Kanton Graubünden GR Region Plessur 1848 Arosa 3921 46.8483 9.6586 4 +CH 7028 Pagig Kanton Graubünden GR Region Plessur 1848 Arosa 3921 46.8497 9.6376 4 +CH 7029 Peist Kanton Graubünden GR Region Plessur 1848 Arosa 3921 46.8427 9.6882 4 +CH 7050 Arosa Kanton Graubünden GR Region Plessur 1848 Arosa 3921 46.7699 9.6683 4 +CH 7056 Molinis Kanton Graubünden GR Region Plessur 1848 Arosa 3921 46.8141 9.6465 4 +CH 7057 Langwies Kanton Graubünden GR Region Plessur 1848 Arosa 3921 46.8235 9.7455 4 +CH 7058 Litzirüti Kanton Graubünden GR Region Plessur 1848 Arosa 3921 46.7988 9.7014 4 +CH 7062 Passugg Kanton Graubünden GR Region Plessur 1848 Churwalden 3911 46.8212 9.5573 4 +CH 7063 Praden Kanton Graubünden GR Region Plessur 1848 Tschiertschen-Praden 3932 46.821 9.5824 4 +CH 7064 Tschiertschen Kanton Graubünden GR Region Plessur 1848 Tschiertschen-Praden 3932 46.7929 9.6067 4 +CH 7074 Malix Kanton Graubünden GR Region Plessur 1848 Churwalden 3911 46.8117 9.518 4 +CH 7075 Churwalden Kanton Graubünden GR Region Plessur 1848 Churwalden 3911 46.7826 9.5323 4 +CH 7076 Parpan Kanton Graubünden GR Region Plessur 1848 Churwalden 3911 46.7762 9.5703 4 +CH 7212 Seewis Dorf Kanton Graubünden GR Region Prättigau / Davos 1849 Seewis im Prättigau 3972 47.023 9.6603 4 +CH 7212 Seewis-Pardisla Kanton Graubünden GR Region Prättigau / Davos 1849 Seewis im Prättigau 3972 46.978 9.633 4 +CH 7212 Seewis-Schmitten Kanton Graubünden GR Region Prättigau / Davos 1849 Seewis im Prättigau 3972 46.9815 9.6421 4 +CH 7213 Valzeina Kanton Graubünden GR Region Prättigau / Davos 1849 Grüsch 3961 46.9163 9.6237 4 +CH 7214 Grüsch Kanton Graubünden GR Region Prättigau / Davos 1849 Grüsch 3961 46.9627 9.6397 4 +CH 7215 Fanas Kanton Graubünden GR Region Prättigau / Davos 1849 Grüsch 3961 47.0072 9.6875 4 +CH 7220 Schiers Kanton Graubünden GR Region Prättigau / Davos 1849 Schiers 3962 46.9811 9.7189 4 +CH 7220 Schiers Kanton Graubünden GR Region Prättigau / Davos 1849 Schiers 3962 46.9811 9.7189 4 +CH 7222 Lunden Kanton Graubünden GR Region Prättigau / Davos 1849 Schiers 3962 46.9517 9.7116 4 +CH 7223 Buchen im Prättigau Kanton Graubünden GR Region Prättigau / Davos 1849 Luzein 3891 46.9388 9.7244 4 +CH 7224 Putz Kanton Graubünden GR Region Prättigau / Davos 1849 Luzein 3891 46.9269 9.7407 4 +CH 7226 Fajauna Kanton Graubünden GR Region Prättigau / Davos 1849 Schiers 3962 46.9714 9.7065 4 +CH 7226 Stels Kanton Graubünden GR Region Prättigau / Davos 1849 Schiers 3962 46.9885 9.769 4 +CH 7226 Stels Kanton Graubünden GR Region Prättigau / Davos 1849 Schiers 3962 46.9885 9.769 4 +CH 7228 Pusserein Kanton Graubünden GR Region Prättigau / Davos 1849 Schiers 3962 46.9922 9.7129 4 +CH 7228 Schuders Kanton Graubünden GR Region Prättigau / Davos 1849 Schiers 3962 47.0089 9.7482 4 +CH 7231 Pragg-Jenaz Kanton Graubünden GR Region Prättigau / Davos 1849 Jenaz 3863 46.9426 9.6953 4 +CH 7232 Furna Kanton Graubünden GR Region Prättigau / Davos 1849 Furna 3862 46.9136 9.6615 4 +CH 7233 Jenaz Kanton Graubünden GR Region Prättigau / Davos 1849 Jenaz 3863 46.8981 9.7035 4 +CH 7235 Fideris Kanton Graubünden GR Region Prättigau / Davos 1849 Fideris 3861 46.8866 9.7395 4 +CH 7240 Küblis Kanton Graubünden GR Region Prättigau / Davos 1849 Küblis 3882 46.9253 9.7955 4 +CH 7241 Conters im Prättigau Kanton Graubünden GR Region Prättigau / Davos 1849 Conters im Prättigau 3881 46.8858 9.7876 4 +CH 7242 Luzein Kanton Graubünden GR Region Prättigau / Davos 1849 Luzein 3891 46.9212 9.7623 4 +CH 7243 Pany Kanton Graubünden GR Region Prättigau / Davos 1849 Luzein 3891 46.9482 9.7675 4 +CH 7244 Gadenstätt Kanton Graubünden GR Region Prättigau / Davos 1849 Luzein 3891 46.9448 9.7904 4 +CH 7245 Ascharina Kanton Graubünden GR Region Prättigau / Davos 1849 Luzein 3891 46.9495 9.8203 4 +CH 7246 St. Antönien Kanton Graubünden GR Region Prättigau / Davos 1849 Luzein 3891 46.9802 9.8459 4 +CH 7247 Saas im Prättigau Kanton Graubünden GR Region Prättigau / Davos 1849 Klosters-Serneus 3871 46.9151 9.8524 4 +CH 7249 Serneus Kanton Graubünden GR Region Prättigau / Davos 1849 Klosters-Serneus 3871 46.8871 9.8339 4 +CH 7250 Klosters Kanton Graubünden GR Region Prättigau / Davos 1849 Klosters-Serneus 3871 46.8475 9.9649 4 +CH 7252 Klosters Dorf Kanton Graubünden GR Region Prättigau / Davos 1849 Klosters-Serneus 3871 46.9013 9.9155 4 +CH 7260 Davos Dorf Kanton Graubünden GR Region Prättigau / Davos 1849 Davos 3851 46.7674 9.8969 4 +CH 7265 Davos Wolfgang Kanton Graubünden GR Region Prättigau / Davos 1849 Davos 3851 46.8389 9.8534 4 +CH 7270 Davos Platz Kanton Graubünden GR Region Prättigau / Davos 1849 Davos 3851 46.7874 9.8181 4 +CH 7270 Davos Platz 1 Kanton Graubünden GR Region Prättigau / Davos 1849 Davos 3851 46.8048 9.8372 +CH 7272 Davos Clavadel Kanton Graubünden GR Region Prättigau / Davos 1849 Davos 3851 46.7227 9.8447 4 +CH 7276 Davos Frauenkirch Kanton Graubünden GR Region Prättigau / Davos 1849 Davos 3851 46.7756 9.7698 4 +CH 7277 Davos Glaris Kanton Graubünden GR Region Prättigau / Davos 1849 Davos 3851 46.7398 9.7705 4 +CH 7278 Davos Monstein Kanton Graubünden GR Region Prättigau / Davos 1849 Davos 3851 46.6983 9.7849 4 +CH 7494 Davos Wiesen Kanton Graubünden GR Region Prättigau / Davos 1849 Davos 3851 46.7163 9.7204 4 +CH 7031 Laax GR Kanton Graubünden GR Region Surselva 1850 Laax 3575 46.8095 9.2635 1 +CH 7032 Laax GR 2 Kanton Graubünden GR Region Surselva 1850 Laax 3575 46.8515 9.2121 1 +CH 7104 Arezen Kanton Graubünden GR Region Surselva 1850 Safiental 3672 46.7823 9.3344 4 +CH 7104 Versam Kanton Graubünden GR Region Surselva 1850 Safiental 3672 46.7773 9.3365 4 +CH 7104 Versam Kanton Graubünden GR Region Surselva 1850 Safiental 3672 46.7773 9.3365 4 +CH 7106 Tenna Kanton Graubünden GR Region Surselva 1850 Safiental 3672 46.7465 9.3251 4 +CH 7107 Safien Platz Kanton Graubünden GR Region Surselva 1850 Safiental 3672 46.7127 9.3222 4 +CH 7109 Thalkirch Kanton Graubünden GR Region Surselva 1850 Safiental 3672 46.6321 9.2815 4 +CH 7110 Peiden Kanton Graubünden GR Region Surselva 1850 Lumnezia 3618 46.7158 9.1981 4 +CH 7111 Pitasch Kanton Graubünden GR Region Surselva 1850 Ilanz/Glion 3619 46.7219 9.2458 4 +CH 7112 Duvin Kanton Graubünden GR Region Surselva 1850 Ilanz/Glion 3619 46.6963 9.248 4 +CH 7113 Camuns Kanton Graubünden GR Region Surselva 1850 Lumnezia 3618 46.6891 9.2216 4 +CH 7114 Uors (Lumnezia) Kanton Graubünden GR Region Surselva 1850 Lumnezia 3618 46.7038 9.188 4 +CH 7115 Surcasti Kanton Graubünden GR Region Surselva 1850 Lumnezia 3618 46.6808 9.1692 4 +CH 7116 St. Martin (Lugnez) Kanton Graubünden GR Region Surselva 1850 Vals 3603 46.6543 9.206 4 +CH 7116 Tersnaus Kanton Graubünden GR Region Surselva 1850 Lumnezia 3618 46.6863 9.1951 4 +CH 7122 Valendas Kanton Graubünden GR Region Surselva 1850 Safiental 3672 46.773 9.2947 4 +CH 7122 Carrera Kanton Graubünden GR Region Surselva 1850 Safiental 3672 46.7885 9.2961 4 +CH 7126 Castrisch Kanton Graubünden GR Region Surselva 1850 Ilanz/Glion 3619 46.7726 9.243 4 +CH 7127 Sevgein Kanton Graubünden GR Region Surselva 1850 Ilanz/Glion 3619 46.7575 9.2226 4 +CH 7128 Riein Kanton Graubünden GR Region Surselva 1850 Ilanz/Glion 3619 46.7422 9.2606 4 +CH 7130 Schnaus Kanton Graubünden GR Region Surselva 1850 Ilanz/Glion 3619 46.8056 9.1789 4 +CH 7130 Ilanz Kanton Graubünden GR Region Surselva 1850 Ilanz/Glion 3619 46.7707 9.1927 4 +CH 7130 Schnaus Kanton Graubünden GR Region Surselva 1850 Ilanz/Glion 3619 46.8056 9.1789 4 +CH 7132 Vals Kanton Graubünden GR Region Surselva 1850 Vals 3603 46.5737 9.1308 4 +CH 7134 Obersaxen Kanton Graubünden GR Region Surselva 1850 Obersaxen Mundaun 3988 46.7197 9.0712 4 +CH 7137 Flond Kanton Graubünden GR Region Surselva 1850 Obersaxen Mundaun 3988 46.7664 9.161 4 +CH 7138 Surcuolm Kanton Graubünden GR Region Surselva 1850 Obersaxen Mundaun 3988 46.7529 9.1513 4 +CH 7141 Luven Kanton Graubünden GR Region Surselva 1850 Ilanz/Glion 3619 46.7548 9.1906 4 +CH 7142 Cumbel Kanton Graubünden GR Region Surselva 1850 Lumnezia 3618 46.7345 9.2011 4 +CH 7143 Morissen Kanton Graubünden GR Region Surselva 1850 Lumnezia 3618 46.7348 9.1737 4 +CH 7144 Vella Kanton Graubünden GR Region Surselva 1850 Lumnezia 3618 46.7213 9.159 4 +CH 7145 Degen Kanton Graubünden GR Region Surselva 1850 Lumnezia 3618 46.7059 9.1709 4 +CH 7146 Vattiz Kanton Graubünden GR Region Surselva 1850 Lumnezia 3618 46.7118 9.1384 4 +CH 7147 Vignogn Kanton Graubünden GR Region Surselva 1850 Lumnezia 3618 46.694 9.1413 4 +CH 7148 Lumbrein Kanton Graubünden GR Region Surselva 1850 Lumnezia 3618 46.6683 9.1035 4 +CH 7149 Vrin Kanton Graubünden GR Region Surselva 1850 Lumnezia 3618 46.6241 9.0564 4 +CH 7151 Schluein Kanton Graubünden GR Region Surselva 1850 Schluein 3582 46.7889 9.2224 4 +CH 7152 Sagogn Kanton Graubünden GR Region Surselva 1850 Sagogn 3581 46.7983 9.2755 4 +CH 7153 Falera Kanton Graubünden GR Region Surselva 1850 Falera 3572 46.813 9.22 4 +CH 7154 Ruschein Kanton Graubünden GR Region Surselva 1850 Ilanz/Glion 3619 46.8291 9.1686 4 +CH 7155 Ladir Kanton Graubünden GR Region Surselva 1850 Ilanz/Glion 3619 46.8114 9.1906 4 +CH 7155 Ladir Kanton Graubünden GR Region Surselva 1850 Ilanz/Glion 3619 46.8114 9.1906 4 +CH 7156 Pigniu Kanton Graubünden GR Region Surselva 1850 Ilanz/Glion 3619 46.8423 9.1091 3 +CH 7156 Rueun Kanton Graubünden GR Region Surselva 1850 Ilanz/Glion 3619 46.795 9.1406 4 +CH 7157 Siat Kanton Graubünden GR Region Surselva 1850 Ilanz/Glion 3619 46.8152 9.1545 4 +CH 7158 Waltensburg/Vuorz Kanton Graubünden GR Region Surselva 1850 Breil/Brigels 3981 46.8116 9.0777 4 +CH 7159 Andiast Kanton Graubünden GR Region Surselva 1850 Breil/Brigels 3981 46.8179 9.0975 4 +CH 7162 Tavanasa Kanton Graubünden GR Region Surselva 1850 Breil/Brigels 3981 46.7567 9.0749 4 +CH 7163 Danis Kanton Graubünden GR Region Surselva 1850 Breil/Brigels 3981 46.7561 9.0534 4 +CH 7164 Dardin Kanton Graubünden GR Region Surselva 1850 Breil/Brigels 3981 46.7606 9.0364 4 +CH 7165 Breil/Brigels Kanton Graubünden GR Region Surselva 1850 Breil/Brigels 3981 46.7924 9.0289 4 +CH 7166 Trun Kanton Graubünden GR Region Surselva 1850 Trun 3987 46.7411 8.9786 4 +CH 7167 Zignau Kanton Graubünden GR Region Surselva 1850 Trun 3987 46.734 9.0104 4 +CH 7168 Schlans Kanton Graubünden GR Region Surselva 1850 Trun 3987 46.7653 9.0009 4 +CH 7172 Rabius Kanton Graubünden GR Region Surselva 1850 Sumvitg 3985 46.7419 8.9547 4 +CH 7173 Surrein Kanton Graubünden GR Region Surselva 1850 Sumvitg 3985 46.6738 8.9654 4 +CH 7174 S. Benedetg Kanton Graubünden GR Region Surselva 1850 Sumvitg 3985 46.7371 8.9435 4 +CH 7175 Sumvitg Kanton Graubünden GR Region Surselva 1850 Sumvitg 3985 46.7622 8.9153 4 +CH 7176 Cumpadials Kanton Graubünden GR Region Surselva 1850 Sumvitg 3985 46.7087 8.9161 4 +CH 7180 Disentis/Mustér Kanton Graubünden GR Region Surselva 1850 Disentis/Mustér 3982 46.7456 8.8481 4 +CH 7182 Cavardiras Kanton Graubünden GR Region Surselva 1850 Disentis/Mustér 3982 46.6995 8.8819 4 +CH 7183 Mumpé Medel Kanton Graubünden GR Region Surselva 1850 Disentis/Mustér 3982 46.6811 8.8313 1 +CH 7184 Curaglia Kanton Graubünden GR Region Surselva 1850 Medel (Lucmagn) 3983 46.6525 8.8851 4 +CH 7185 Platta Kanton Graubünden GR Region Surselva 1850 Medel (Lucmagn) 3983 46.6065 8.8364 4 +CH 7186 Segnas Kanton Graubünden GR Region Surselva 1850 Disentis/Mustér 3982 46.6937 8.8169 4 +CH 7187 Camischolas Kanton Graubünden GR Region Surselva 1850 Tujetsch 3986 46.6814 8.7615 4 +CH 7188 Sedrun Kanton Graubünden GR Region Surselva 1850 Tujetsch 3986 46.6377 8.7502 4 +CH 7189 Rueras Kanton Graubünden GR Region Surselva 1850 Tujetsch 3986 46.6662 8.709 4 +CH 7404 Feldis/Veulden Kanton Graubünden GR Region Viamala 1851 Domleschg 3673 46.7968 9.4422 4 +CH 7405 Rothenbrunnen Kanton Graubünden GR Region Viamala 1851 Rothenbrunnen 3637 46.7769 9.4208 4 +CH 7407 Trans Kanton Graubünden GR Region Viamala 1851 Domleschg 3673 46.7624 9.4817 4 +CH 7408 Realta Kanton Graubünden GR Region Viamala 1851 Cazis 3661 46.7319 9.4277 4 +CH 7408 Cazis Kanton Graubünden GR Region Viamala 1851 Cazis 3661 46.7391 9.4258 4 +CH 7411 Sils im Domleschg Kanton Graubünden GR Region Viamala 1851 Sils im Domleschg 3640 46.6908 9.465 4 +CH 7412 Scharans Kanton Graubünden GR Region Viamala 1851 Scharans 3638 46.7183 9.4825 4 +CH 7413 Fürstenaubruck Kanton Graubünden GR Region Viamala 1851 Fürstenau 3633 46.715 9.4498 4 +CH 7414 Fürstenau Kanton Graubünden GR Region Viamala 1851 Fürstenau 3633 46.7231 9.4481 4 +CH 7415 Rodels Kanton Graubünden GR Region Viamala 1851 Domleschg 3673 46.7406 9.4391 4 +CH 7415 Pratval Kanton Graubünden GR Region Viamala 1851 Domleschg 3673 46.7312 9.4458 4 +CH 7416 Almens Kanton Graubünden GR Region Viamala 1851 Domleschg 3673 46.7426 9.4826 4 +CH 7417 Paspels Kanton Graubünden GR Region Viamala 1851 Domleschg 3673 46.7513 9.4509 4 +CH 7418 Tumegl/Tomils Kanton Graubünden GR Region Viamala 1851 Domleschg 3673 46.764 9.4447 4 +CH 7419 Scheid Kanton Graubünden GR Region Viamala 1851 Domleschg 3673 46.7834 9.4663 4 +CH 7421 Summaprada Kanton Graubünden GR Region Viamala 1851 Cazis 3661 46.713 9.4312 4 +CH 7422 Tartar Kanton Graubünden GR Region Viamala 1851 Cazis 3661 46.7221 9.4193 4 +CH 7423 Portein Kanton Graubünden GR Region Viamala 1851 Cazis 3661 46.7121 9.3848 4 +CH 7423 Sarn Kanton Graubünden GR Region Viamala 1851 Cazis 3661 46.7234 9.3879 4 +CH 7424 Präz Kanton Graubünden GR Region Viamala 1851 Cazis 3661 46.7486 9.3965 4 +CH 7424 Dalin Kanton Graubünden GR Region Viamala 1851 Cazis 3661 46.7347 9.4058 4 +CH 7425 Masein Kanton Graubünden GR Region Viamala 1851 Masein 3663 46.6954 9.4226 4 +CH 7426 Flerden Kanton Graubünden GR Region Viamala 1851 Flerden 3662 46.6941 9.3926 4 +CH 7426 Flerden Kanton Graubünden GR Region Viamala 1851 Flerden 3662 46.6941 9.3926 4 +CH 7427 Urmein Kanton Graubünden GR Region Viamala 1851 Urmein 3670 46.686 9.4019 4 +CH 7428 Tschappina Kanton Graubünden GR Region Viamala 1851 Tschappina 3669 46.6767 9.3607 4 +CH 7428 Glaspass Kanton Graubünden GR Region Viamala 1851 Tschappina 3669 46.677 9.3474 4 +CH 7430 Thusis Kanton Graubünden GR Region Viamala 1851 Thusis 3668 46.6885 9.4328 4 +CH 7430 Rongellen Kanton Graubünden GR Region Viamala 1851 Rongellen 3711 46.6739 9.4406 4 +CH 7431 Obermutten Kanton Graubünden GR Region Viamala 1851 Thusis 3668 46.6682 9.4876 4 +CH 7431 Mutten Kanton Graubünden GR Region Viamala 1851 Thusis 3668 46.6773 9.5018 4 +CH 7432 Zillis Kanton Graubünden GR Region Viamala 1851 Zillis-Reischen 3712 46.6381 9.47 4 +CH 7433 Wergenstein Kanton Graubünden GR Region Viamala 1851 Muntogna da Schons 3715 46.6156 9.3519 4 +CH 7433 Farden Kanton Graubünden GR Region Viamala 1851 Muntogna da Schons 3715 46.6327 9.4241 4 +CH 7433 Lohn GR Kanton Graubünden GR Region Viamala 1851 Muntogna da Schons 3715 46.6574 9.4232 3 +CH 7433 Donat Kanton Graubünden GR Region Viamala 1851 Muntogna da Schons 3715 46.6312 9.4247 4 +CH 7433 Mathon Kanton Graubünden GR Region Viamala 1851 Muntogna da Schons 3715 46.6406 9.3803 4 +CH 7434 Sufers Kanton Graubünden GR Region Viamala 1851 Sufers 3695 46.5573 9.3703 4 +CH 7435 Splügen Kanton Graubünden GR Region Viamala 1851 Rheinwald 3714 46.5371 9.329 4 +CH 7436 Medels im Rheinwald Kanton Graubünden GR Region Viamala 1851 Rheinwald 3714 46.5522 9.2853 4 +CH 7437 Nufenen Kanton Graubünden GR Region Viamala 1851 Rheinwald 3714 46.5404 9.2385 4 +CH 7438 Hinterrhein Kanton Graubünden GR Region Viamala 1851 Rheinwald 3714 46.5137 9.1351 4 +CH 7440 Andeer Kanton Graubünden GR Region Viamala 1851 Andeer 3701 46.5859 9.4178 4 +CH 7442 Clugin Kanton Graubünden GR Region Viamala 1851 Andeer 3701 46.6127 9.4121 4 +CH 7443 Pignia Kanton Graubünden GR Region Viamala 1851 Andeer 3701 46.6035 9.4665 4 +CH 7444 Ausserferrera Kanton Graubünden GR Region Viamala 1851 Ferrera 3713 46.5516 9.4606 4 +CH 7445 Innerferrera Kanton Graubünden GR Region Viamala 1851 Ferrera 3713 46.5058 9.4399 4 +CH 7445 Innerferrera Kanton Graubünden GR Region Viamala 1851 Ferrera 3713 46.5058 9.4399 4 +CH 7446 Campsut-Cröt Kanton Graubünden GR Region Viamala 1851 Avers 3681 46.4246 9.491 4 +CH 7447 Am Bach (Avers) Kanton Graubünden GR Region Viamala 1851 Avers 3681 46.4272 9.5449 4 +CH 7447 Cresta (Avers) Kanton Graubünden GR Region Viamala 1851 Avers 3681 46.4738 9.5246 4 +CH 7448 Juf Kanton Graubünden GR Region Viamala 1851 Avers 3681 46.4329 9.5864 4 +CH 2800 Delémont 2 Jura JU Delémont District 2601 Delémont 6711 47.3751 7.3329 +CH 2800 Delémont Jura JU Delémont District 2601 Delémont 6711 47.3718 7.3341 4 +CH 2800 Delémont 1 Jura JU Delémont District 2601 Delémont 6711 47.3751 7.3329 +CH 2802 Develier Jura JU Delémont District 2601 Develier 6712 47.3648 7.2813 4 +CH 2803 Bourrignon Jura JU Delémont District 2601 Bourrignon 6703 47.3932 7.2556 4 +CH 2805 Soyhières Jura JU Delémont District 2601 Soyhières 6724 47.3955 7.3822 4 +CH 2806 Mettembert Jura JU Delémont District 2601 Mettembert 6716 47.3943 7.3276 4 +CH 2807 Pleigne Jura JU Delémont District 2601 Pleigne 6719 47.4151 7.2807 4 +CH 2807 Lucelle Jura JU Delémont District 2601 Pleigne 6719 47.4174 7.2411 3 +CH 2812 Movelier Jura JU Delémont District 2601 Movelier 6718 47.4089 7.3281 4 +CH 2813 Ederswiler Jura JU Delémont District 2601 Ederswiler 6713 47.4264 7.324 4 +CH 2822 Courroux Jura JU Delémont District 2601 Courroux 6709 47.3672 7.3788 4 +CH 2823 Courcelon Jura JU Delémont District 2601 Courroux 6709 47.3674 7.407 4 +CH 2824 Vicques Jura JU Delémont District 2601 Val Terb 6730 47.3516 7.4268 4 +CH 2825 Courchapoix Jura JU Delémont District 2601 Courchapoix 6706 47.3488 7.4522 4 +CH 2826 Corban Jura JU Delémont District 2601 Val Terb 6730 47.3534 7.4742 4 +CH 2827 Mervelier Jura JU Delémont District 2601 Mervelier 6715 47.3402 7.516 4 +CH 2828 Montsevelier Jura JU Delémont District 2601 Val Terb 6730 47.3602 7.512 4 +CH 2829 Vermes Jura JU Delémont District 2601 Val Terb 6730 47.3192 7.4849 4 +CH 2830 Vellerat Jura JU Delémont District 2601 Courrendlin 6708 47.3155 7.3654 4 +CH 2830 Courrendlin Jura JU Delémont District 2601 Courrendlin 6708 47.3343 7.3769 4 +CH 2832 Rebeuvelier Jura JU Delémont District 2601 Courrendlin 6708 47.3209 7.4189 4 +CH 2842 Rossemaison Jura JU Delémont District 2601 Rossemaison 6721 47.3439 7.3443 4 +CH 2843 Châtillon JU Jura JU Delémont District 2601 Châtillon (JU) 6704 47.322 7.3449 4 +CH 2852 Courtételle Jura JU Delémont District 2601 Courtételle 6710 47.3313 7.318 4 +CH 2853 Courfaivre Jura JU Delémont District 2601 Haute-Sorne 6729 47.3298 7.2802 4 +CH 2854 Bassecourt Jura JU Delémont District 2601 Haute-Sorne 6729 47.3365 7.2418 4 +CH 2855 Glovelier Jura JU Delémont District 2601 Haute-Sorne 6729 47.3269 7.1844 4 +CH 2856 Boécourt Jura JU Delémont District 2601 Boécourt 6702 47.3547 7.2168 4 +CH 2857 Montavon Jura JU Delémont District 2601 Boécourt 6702 47.3717 7.2335 4 +CH 2863 Undervelier Jura JU Delémont District 2601 Haute-Sorne 6729 47.3034 7.2194 4 +CH 2864 Soulce Jura JU Delémont District 2601 Haute-Sorne 6729 47.3002 7.2871 4 +CH 2873 Saulcy Jura JU Delémont District 2601 Saulcy 6722 47.3031 7.1606 4 +CH 2336 Les Bois Jura JU Franches-Montagnes District 2602 Les Bois 6742 47.1796 6.8983 4 +CH 2338 Muriaux Jura JU Franches-Montagnes District 2602 Muriaux 6753 47.2442 6.9802 4 +CH 2338 Les Emibois Jura JU Franches-Montagnes District 2602 Muriaux 6753 47.2318 6.9944 4 +CH 2340 Le Noirmont Jura JU Franches-Montagnes District 2602 Le Noirmont 6754 47.2152 6.9438 4 +CH 2345 Les Breuleux Jura JU Franches-Montagnes District 2602 Les Breuleux 6743 47.203 6.9928 4 +CH 2345 La Chaux-des-Breuleux Jura JU Franches-Montagnes District 2602 La Chaux-des-Breuleux 6744 47.2227 7.0287 4 +CH 2350 Saignelégier Jura JU Franches-Montagnes District 2602 Saignelégier 6757 47.2458 7.02 4 +CH 2353 Les Pommerats Jura JU Franches-Montagnes District 2602 Saignelégier 6757 47.2801 6.9908 4 +CH 2354 Goumois Jura JU Franches-Montagnes District 2602 Saignelégier 6757 47.2674 6.9594 4 +CH 2360 Le Bémont JU Jura JU Franches-Montagnes District 2602 Le Bémont (JU) 6741 47.2625 7.0334 4 +CH 2362 Montfaucon Jura JU Franches-Montagnes District 2602 Montfaucon 6751 47.2749 7.0714 4 +CH 2362 Montfavergier Jura JU Franches-Montagnes District 2602 Montfaucon 6751 47.3064 7.0852 4 +CH 2363 Les Enfers Jura JU Franches-Montagnes District 2602 Les Enfers 6745 47.2904 7.0455 4 +CH 2364 St-Brais Jura JU Franches-Montagnes District 2602 Saint-Brais 6758 47.3062 7.1177 4 +CH 2714 Les Genevez JU Jura JU Franches-Montagnes District 2602 Les Genevez (JU) 6748 47.2531 7.1275 3 +CH 2714 Le Prédame Jura JU Franches-Montagnes District 2602 Les Genevez (JU) 6748 47.2557 7.0965 4 +CH 2718 Fornet-Dessus Jura JU Franches-Montagnes District 2602 Lajoux (JU) 6750 47.285 7.16 3 +CH 2718 Lajoux JU Jura JU Franches-Montagnes District 2602 Lajoux (JU) 6750 47.2778 7.1269 4 +CH 2882 St-Ursanne Jura JU Franches-Montagnes District 2602 Saint-Brais 6758 47.3628 7.1459 4 +CH 2887 Soubey Jura JU Franches-Montagnes District 2602 Soubey 6759 47.3101 7.0405 4 +CH 2882 St-Ursanne Jura JU Porrentruy District 2603 Clos du Doubs 6808 47.3628 7.1459 4 +CH 2883 Montmelon Jura JU Porrentruy District 2603 Clos du Doubs 6808 47.3499 7.1729 4 +CH 2884 Montenol Jura JU Porrentruy District 2603 Clos du Doubs 6808 47.3517 7.1448 4 +CH 2885 Epauvillers Jura JU Porrentruy District 2603 Clos du Doubs 6808 47.3366 7.1176 4 +CH 2886 Epiquerez Jura JU Porrentruy District 2603 Clos du Doubs 6808 47.3267 7.0757 4 +CH 2888 Seleute Jura JU Porrentruy District 2603 Clos du Doubs 6808 47.368 7.1118 4 +CH 2889 Ocourt Jura JU Porrentruy District 2603 Clos du Doubs 6808 47.3549 7.0701 4 +CH 2900 Porrentruy 1 Jura JU Porrentruy District 2603 Porrentruy 6800 47.4213 7.071 +CH 2900 Porrentruy Jura JU Porrentruy District 2603 Porrentruy 6800 47.4212 7.071 4 +CH 2900 Porrentruy 2 Jura JU Porrentruy District 2603 Porrentruy 6800 47.4213 7.071 +CH 2902 Fontenais Jura JU Porrentruy District 2603 Fontenais 6790 47.3998 7.0793 4 +CH 2903 Villars-sur-Fontenais Jura JU Porrentruy District 2603 Fontenais 6790 47.3811 7.0754 4 +CH 2904 Bressaucourt Jura JU Porrentruy District 2603 Fontenais 6790 47.3842 7.039 4 +CH 2905 Courtedoux Jura JU Porrentruy District 2603 Courtedoux 6785 47.4129 7.028 4 +CH 2906 Chevenez Jura JU Porrentruy District 2603 Haute-Ajoie 6809 47.3925 6.9934 4 +CH 2907 Rocourt Jura JU Porrentruy District 2603 Haute-Ajoie 6809 47.3865 6.9602 4 +CH 2908 Grandfontaine Jura JU Porrentruy District 2603 Grandfontaine 6792 47.3919 6.9336 4 +CH 2912 Roche-d'Or Jura JU Porrentruy District 2603 Haute-Ajoie 6809 47.3653 6.9587 4 +CH 2912 Réclère Jura JU Porrentruy District 2603 Haute-Ajoie 6809 47.369 6.9241 4 +CH 2914 Damvant Jura JU Porrentruy District 2603 Haute-Ajoie 6809 47.3681 6.8957 4 +CH 2915 Bure Jura JU Porrentruy District 2603 Bure 6778 47.4386 6.9971 4 +CH 2916 Fahy Jura JU Porrentruy District 2603 Fahy 6789 47.42 6.9567 4 +CH 2922 Courchavon Jura JU Porrentruy District 2603 Courchavon 6783 47.4382 7.0463 4 +CH 2923 Courtemaîche Jura JU Porrentruy District 2603 Basse-Allaine 6807 47.4578 7.0469 4 +CH 2924 Montignez Jura JU Porrentruy District 2603 Basse-Allaine 6807 47.4835 7.0587 4 +CH 2925 Buix Jura JU Porrentruy District 2603 Basse-Allaine 6807 47.4756 7.0263 4 +CH 2926 Boncourt Jura JU Porrentruy District 2603 Boncourt 6774 47.488 7.0076 4 +CH 2932 Coeuve Jura JU Porrentruy District 2603 Coeuve 6781 47.4524 7.0953 4 +CH 2933 Damphreux Jura JU Porrentruy District 2603 Damphreux 6787 47.4734 7.1013 4 +CH 2933 Lugnez Jura JU Porrentruy District 2603 Lugnez 6793 47.4854 7.094 4 +CH 2935 Beurnevésin Jura JU Porrentruy District 2603 Beurnevésin 6773 47.4924 7.1328 4 +CH 2942 Alle Jura JU Porrentruy District 2603 Alle 6771 47.4284 7.1262 4 +CH 2943 Vendlincourt Jura JU Porrentruy District 2603 Vendlincourt 6806 47.4519 7.1485 4 +CH 2944 Bonfol Jura JU Porrentruy District 2603 Bonfol 6775 47.4759 7.1568 4 +CH 2946 Miécourt Jura JU Porrentruy District 2603 La Baroche 6810 47.4311 7.1713 4 +CH 2947 Charmoille Jura JU Porrentruy District 2603 La Baroche 6810 47.4274 7.2138 4 +CH 2950 Courtemautruy Jura JU Porrentruy District 2603 Courgenay 6784 47.3867 7.141 4 +CH 2950 Courgenay Jura JU Porrentruy District 2603 Courgenay 6784 47.3933 7.1207 4 +CH 2952 Cornol Jura JU Porrentruy District 2603 Cornol 6782 47.4048 7.1631 4 +CH 2953 Fregiécourt Jura JU Porrentruy District 2603 La Baroche 6810 47.4108 7.1924 4 +CH 2953 Pleujouse Jura JU Porrentruy District 2603 La Baroche 6810 47.4124 7.2203 4 +CH 2954 Asuel Jura JU Porrentruy District 2603 La Baroche 6810 47.3911 7.2051 4 +CH 6000 Luzern 14 Kanton Luzern LU Lucerne-Stadt District 311 Luzern 1061 47.0471 8.3252 +CH 6000 Luzern 6 Kanton Luzern LU Lucerne-Stadt District 311 Luzern 1061 47.0471 8.3252 +CH 6000 Luzern 7 Kanton Luzern LU Lucerne-Stadt District 311 Luzern 1061 47.0471 8.3252 +CH 6000 Luzern 15 Kanton Luzern LU Lucerne-Stadt District 311 Luzern 1061 47.0471 8.3252 +CH 6000 Luzern 30 AAL Kanton Luzern LU Lucerne-Stadt District 311 Luzern 1061 47.0471 8.3252 +CH 6000 Luzern Kanton Luzern LU Lucerne-Stadt District 311 Luzern 1061 47.0505 8.3064 +CH 6000 Luzern 16 Kanton Luzern LU Lucerne-Stadt District 311 Luzern 1061 47.0471 8.3252 +CH 6002 Luzern Kanton Luzern LU Lucerne-Stadt District 311 Luzern 1061 47.0505 8.3064 +CH 6003 Luzern Kanton Luzern LU Lucerne-Stadt District 311 Luzern 1061 47.0491 8.296 4 +CH 6004 Luzern Kanton Luzern LU Lucerne-Stadt District 311 Luzern 1061 47.0594 8.3008 4 +CH 6005 Luzern Kanton Luzern LU Lucerne-Stadt District 311 Luzern 1061 47.0382 8.3134 4 +CH 6006 Luzern Kanton Luzern LU Lucerne-Stadt District 311 Luzern 1061 47.0538 8.3345 4 +CH 6007 Luzern Kanton Luzern LU Lucerne-Stadt District 311 Luzern 1061 47.0505 8.3064 +CH 6014 Luzern Kanton Luzern LU Lucerne-Stadt District 311 Luzern 1061 47.0568 8.247 4 +CH 6015 Luzern Kanton Luzern LU Lucerne-Stadt District 311 Luzern 1061 47.0631 8.2778 4 +CH 6005 St. Niklausen LU Kanton Luzern LU Lucerne-Land District 312 Horw 1058 47.0264 8.3405 4 +CH 6009 Luzern Kanton Luzern LU Lucerne-Land District 312 Kriens 1059 47.0208 8.2589 +CH 6010 Kriens Kanton Luzern LU Lucerne-Land District 312 Kriens 1059 47.0199 8.2682 4 +CH 6010 Kriens 2 Kanton Luzern LU Lucerne-Land District 312 Kriens 1059 47.0208 8.2589 6 +CH 6011 Kriens Kanton Luzern LU Lucerne-Land District 312 Kriens 1059 47.0311 8.2855 +CH 6012 Obernau Kanton Luzern LU Lucerne-Land District 312 Kriens 1059 47.0269 8.2366 4 +CH 6013 Eigenthal Kanton Luzern LU Lucerne-Land District 312 Schwarzenberg 1066 46.9926 8.2154 4 +CH 6030 Ebikon Kanton Luzern LU Lucerne-Land District 312 Ebikon 1054 47.0799 8.3417 4 +CH 6031 Ebikon Kanton Luzern LU Lucerne-Land District 312 Ebikon 1054 47.0794 8.3404 +CH 6033 Buchrain Kanton Luzern LU Lucerne-Land District 312 Buchrain 1052 47.1007 8.3463 4 +CH 6035 Perlen Kanton Luzern LU Lucerne-Land District 312 Buchrain 1052 47.1115 8.3649 4 +CH 6036 Dierikon Kanton Luzern LU Lucerne-Land District 312 Dierikon 1053 47.0942 8.3726 4 +CH 6037 Root Kanton Luzern LU Lucerne-Land District 312 Root 1065 47.1113 8.3928 4 +CH 6038 Honau Kanton Luzern LU Lucerne-Land District 312 Honau 1057 47.1328 8.4093 4 +CH 6038 Gisikon Kanton Luzern LU Lucerne-Land District 312 Gisikon 1055 47.1275 8.3997 4 +CH 6039 Root D4 Kanton Luzern LU Lucerne-Land District 312 Root 1065 47.1031 8.3733 1 +CH 6043 Adligenswil Kanton Luzern LU Lucerne-Land District 312 Adligenswil 1051 47.0723 8.3685 4 +CH 6044 Udligenswil Kanton Luzern LU Lucerne-Land District 312 Udligenswil 1067 47.0928 8.3998 4 +CH 6045 Meggen Kanton Luzern LU Lucerne-Land District 312 Meggen 1063 47.0449 8.3745 4 +CH 6047 Kastanienbaum Kanton Luzern LU Lucerne-Land District 312 Horw 1058 47.0074 8.3402 4 +CH 6048 Horw Kanton Luzern LU Lucerne-Land District 312 Horw 1058 47.0108 8.3039 4 +CH 6102 Malters Kanton Luzern LU Lucerne-Land District 312 Malters 1062 47.0378 8.1845 4 +CH 6103 Schwarzenberg LU Kanton Luzern LU Lucerne-Land District 312 Schwarzenberg 1066 46.9983 8.1738 4 +CH 6344 Meierskappel Kanton Luzern LU Lucerne-Land District 312 Meierskappel 1064 47.1151 8.4527 4 +CH 6353 Weggis Kanton Luzern LU Lucerne-Land District 312 Weggis 1069 47.0313 8.4242 4 +CH 6354 Vitznau Kanton Luzern LU Lucerne-Land District 312 Vitznau 1068 47.0162 8.4859 4 +CH 6356 Rigi Kaltbad Kanton Luzern LU Lucerne-Land District 312 Weggis 1069 47.0366 8.4882 4 +CH 6404 Greppen Kanton Luzern LU Lucerne-Land District 312 Greppen 1056 47.0563 8.4313 4 +CH 6020 Emmenbrücke Kanton Luzern LU Hochdorf District 313 Emmen 1024 47.0771 8.2667 4 +CH 6020 Emmenbrücke 2 Kanton Luzern LU Hochdorf District 313 Emmen 1024 47.0866 8.2862 +CH 6021 Emmenbrücke 1 Kanton Luzern LU Hochdorf District 313 Emmen 1024 47.0866 8.2862 +CH 6023 Rothenburg Kanton Luzern LU Hochdorf District 313 Rothenburg 1040 47.1046 8.2625 4 +CH 6026 Rain Kanton Luzern LU Hochdorf District 313 Rain 1037 47.1319 8.2636 4 +CH 6027 Römerswil LU Kanton Luzern LU Hochdorf District 313 Römerswil 1039 47.1697 8.2489 4 +CH 6028 Herlisberg Kanton Luzern LU Hochdorf District 313 Römerswil 1039 47.1979 8.2303 4 +CH 6032 Emmen Kanton Luzern LU Hochdorf District 313 Emmen 1024 47.0901 8.3101 4 +CH 6034 Inwil Kanton Luzern LU Hochdorf District 313 Inwil 1033 47.1287 8.3623 4 +CH 6274 Eschenbach LU Kanton Luzern LU Hochdorf District 313 Eschenbach (LU) 1026 47.1282 8.3125 4 +CH 6275 Ballwil Kanton Luzern LU Hochdorf District 313 Ballwil 1023 47.1544 8.3348 4 +CH 6276 Hohenrain Kanton Luzern LU Hochdorf District 313 Hohenrain 1032 47.1784 8.3203 4 +CH 6277 Kleinwangen Kanton Luzern LU Hochdorf District 313 Hohenrain 1032 47.197 8.3041 3 +CH 6277 Lieli LU Kanton Luzern LU Hochdorf District 313 Hohenrain 1032 47.2122 8.3058 4 +CH 6280 Urswil Kanton Luzern LU Hochdorf District 313 Hochdorf 1031 47.1496 8.2867 4 +CH 6280 Hochdorf Kanton Luzern LU Hochdorf District 313 Hochdorf 1031 47.1666 8.2847 4 +CH 6281 Hochdorf Kanton Luzern LU Hochdorf District 313 Hochdorf 1031 47.1684 8.2918 +CH 6283 Baldegg Kanton Luzern LU Hochdorf District 313 Hochdorf 1031 47.1848 8.2713 4 +CH 6284 Sulz LU Kanton Luzern LU Hochdorf District 313 Hitzkirch 1030 47.2228 8.2942 4 +CH 6284 Gelfingen Kanton Luzern LU Hochdorf District 313 Hitzkirch 1030 47.2076 8.2679 4 +CH 6285 Hitzkirch Kanton Luzern LU Hochdorf District 313 Hitzkirch 1030 47.2226 8.2578 4 +CH 6285 Retschwil Kanton Luzern LU Hochdorf District 313 Hitzkirch 1030 47.1986 8.2451 4 +CH 6286 Altwis Kanton Luzern LU Hochdorf District 313 Hitzkirch 1030 47.2406 8.2522 4 +CH 6287 Aesch LU Kanton Luzern LU Hochdorf District 313 Aesch (LU) 1021 47.2583 8.2386 4 +CH 6288 Schongau Kanton Luzern LU Hochdorf District 313 Schongau 1041 47.267 8.2715 4 +CH 6289 Hämikon Kanton Luzern LU Hochdorf District 313 Hitzkirch 1030 47.2418 8.2794 4 +CH 6289 Müswangen Kanton Luzern LU Hochdorf District 313 Hitzkirch 1030 47.2384 8.2979 4 +CH 6289 Hämikon Kanton Luzern LU Hochdorf District 313 Hitzkirch 1030 47.2418 8.2794 4 +CH 6294 Ermensee Kanton Luzern LU Hochdorf District 313 Ermensee 1025 47.2254 8.2344 4 +CH 6295 Mosen Kanton Luzern LU Hochdorf District 313 Hitzkirch 1030 47.2419 8.227 4 +CH 5735 Pfeffikon LU Kanton Luzern LU Sursee District 314 Rickenbach (LU) 1097 47.2459 8.165 4 +CH 6016 Hellbühl Kanton Luzern LU Sursee District 314 Neuenkirch 1093 47.0693 8.1974 4 +CH 6017 Ruswil Kanton Luzern LU Sursee District 314 Ruswil 1098 47.0859 8.1338 4 +CH 6018 Buttisholz Kanton Luzern LU Sursee District 314 Buttisholz 1083 47.1141 8.0923 4 +CH 6019 Sigigen Kanton Luzern LU Sursee District 314 Ruswil 1098 47.0591 8.139 4 +CH 6022 Grosswangen Kanton Luzern LU Sursee District 314 Grosswangen 1086 47.1335 8.0549 4 +CH 6024 Hildisrieden Kanton Luzern LU Sursee District 314 Hildisrieden 1088 47.1475 8.2316 4 +CH 6025 Neudorf Kanton Luzern LU Sursee District 314 Beromünster 1081 47.176 8.2102 4 +CH 6203 Sempach Station Kanton Luzern LU Sursee District 314 Neuenkirch 1093 47.1172 8.2006 4 +CH 6204 Sempach Kanton Luzern LU Sursee District 314 Sempach 1102 47.1374 8.1982 4 +CH 6205 Eich Kanton Luzern LU Sursee District 314 Eich 1084 47.1567 8.1654 4 +CH 6206 Neuenkirch Kanton Luzern LU Sursee District 314 Neuenkirch 1093 47.0968 8.201 4 +CH 6207 Nottwil Paraplegikerzentrum Kanton Luzern LU Sursee District 314 Nottwil 1094 47.1279 8.1355 +CH 6207 Nottwil Kanton Luzern LU Sursee District 314 Nottwil 1094 47.1303 8.141 4 +CH 6208 Oberkirch LU Kanton Luzern LU Sursee District 314 Oberkirch 1095 47.1541 8.1078 4 +CH 6210 Sursee Kanton Luzern LU Sursee District 314 Sursee 1103 47.1765 8.1046 4 +CH 6212 Kaltbach Kanton Luzern LU Sursee District 314 Mauensee 1091 47.1824 8.0575 4 +CH 6212 St. Erhard Kanton Luzern LU Sursee District 314 Knutwil 1089 47.1848 8.0721 4 +CH 6213 Knutwil Kanton Luzern LU Sursee District 314 Knutwil 1089 47.2011 8.0703 4 +CH 6214 Schenkon Kanton Luzern LU Sursee District 314 Schenkon 1099 47.1794 8.1333 4 +CH 6215 Beromünster Kanton Luzern LU Sursee District 314 Beromünster 1081 47.2092 8.2032 4 +CH 6215 Schwarzenbach LU Kanton Luzern LU Sursee District 314 Beromünster 1081 47.237 8.2129 4 +CH 6216 Mauensee Kanton Luzern LU Sursee District 314 Mauensee 1091 47.1685 8.0723 4 +CH 6221 Rickenbach LU Kanton Luzern LU Sursee District 314 Rickenbach (LU) 1097 47.2197 8.149 4 +CH 6222 Gunzwil Kanton Luzern LU Sursee District 314 Beromünster 1081 47.1917 8.1716 4 +CH 6231 Schlierbach Kanton Luzern LU Sursee District 314 Schlierbach 1100 47.2274 8.1191 4 +CH 6232 Geuensee Kanton Luzern LU Sursee District 314 Geuensee 1085 47.2018 8.1165 4 +CH 6233 Büron Kanton Luzern LU Sursee District 314 Büron 1082 47.2136 8.0953 4 +CH 6234 Triengen Kanton Luzern LU Sursee District 314 Triengen 1104 47.2374 8.0808 4 +CH 6234 Kulmerau Kanton Luzern LU Sursee District 314 Triengen 1104 47.2531 8.0894 4 +CH 6235 Winikon Kanton Luzern LU Sursee District 314 Triengen 1104 47.2335 8.0419 4 +CH 6236 Wilihof Kanton Luzern LU Sursee District 314 Triengen 1104 47.2206 8.0628 4 +CH 4806 Wikon Kanton Luzern LU Willisau District 315 Wikon 1147 47.2664 7.9679 4 +CH 4915 St. Urban Kanton Luzern LU Willisau District 315 Pfaffnau 1139 47.2236 7.8563 4 +CH 6122 Menznau Kanton Luzern LU Willisau District 315 Menznau 1136 47.0775 8.0373 4 +CH 6123 Geiss Kanton Luzern LU Willisau District 315 Menznau 1136 47.0912 8.062 4 +CH 6125 Menzberg Kanton Luzern LU Willisau District 315 Menznau 1136 47.0403 7.9916 4 +CH 6126 Daiwil Kanton Luzern LU Willisau District 315 Willisau 1151 47.0858 8.0124 4 +CH 6130 Willisau Kanton Luzern LU Willisau District 315 Willisau 1151 47.1078 7.984 4 +CH 6132 Rohrmatt Kanton Luzern LU Willisau District 315 Willisau 1151 47.079 7.9838 4 +CH 6133 Hergiswil b. Willisau Kanton Luzern LU Willisau District 315 Hergiswil bei Willisau 1132 47.0659 7.9528 4 +CH 6142 Gettnau Kanton Luzern LU Willisau District 315 Willisau 1151 47.1385 7.9666 4 +CH 6143 Ohmstal Kanton Luzern LU Willisau District 315 Schötz 1143 47.1592 7.9544 4 +CH 6144 Zell LU Kanton Luzern LU Willisau District 315 Zell (LU) 1150 47.1393 7.9317 4 +CH 6145 Fischbach LU Kanton Luzern LU Willisau District 315 Fischbach 1129 47.1527 7.9069 4 +CH 6146 Grossdietwil Kanton Luzern LU Willisau District 315 Grossdietwil 1131 47.1672 7.8939 4 +CH 6147 Altbüron Kanton Luzern LU Willisau District 315 Altbüron 1122 47.1912 7.8901 4 +CH 6152 Hüswil Kanton Luzern LU Willisau District 315 Zell (LU) 1150 47.1262 7.9066 4 +CH 6153 Ufhusen Kanton Luzern LU Willisau District 315 Ufhusen 1145 47.1077 7.8933 4 +CH 6154 Hofstatt Kanton Luzern LU Willisau District 315 Luthern 1135 47.0777 7.898 4 +CH 6156 Luthern Kanton Luzern LU Willisau District 315 Luthern 1135 47.0559 7.9072 4 +CH 6156 Luthern Bad Kanton Luzern LU Willisau District 315 Luthern 1135 47.0247 7.9209 3 +CH 6211 Buchs LU Kanton Luzern LU Willisau District 315 Dagmersellen 1125 47.2017 8.0386 4 +CH 6217 Kottwil Kanton Luzern LU Willisau District 315 Ettiswil 1128 47.1632 8.0414 4 +CH 6218 Ettiswil Kanton Luzern LU Willisau District 315 Ettiswil 1128 47.1488 8.0184 4 +CH 6242 Wauwil Kanton Luzern LU Willisau District 315 Wauwil 1146 47.1837 8.0315 4 +CH 6243 Egolzwil Kanton Luzern LU Willisau District 315 Egolzwil 1127 47.184 8.0036 4 +CH 6244 Nebikon Kanton Luzern LU Willisau District 315 Nebikon 1137 47.1909 7.9792 4 +CH 6245 Ebersecken Kanton Luzern LU Willisau District 315 Altishofen 1123 47.1813 7.9377 4 +CH 6246 Altishofen Kanton Luzern LU Willisau District 315 Altishofen 1123 47.2023 7.9599 4 +CH 6247 Schötz Kanton Luzern LU Willisau District 315 Schötz 1143 47.1682 7.987 4 +CH 6248 Alberswil Kanton Luzern LU Willisau District 315 Alberswil 1121 47.1472 7.9952 4 +CH 6252 Dagmersellen Kanton Luzern LU Willisau District 315 Dagmersellen 1125 47.2159 7.9951 4 +CH 6253 Uffikon Kanton Luzern LU Willisau District 315 Dagmersellen 1125 47.2157 8.0245 4 +CH 6260 Reiden Kanton Luzern LU Willisau District 315 Reiden 1140 47.2435 7.9767 4 +CH 6260 Hintermoos Kanton Luzern LU Willisau District 315 Wikon 1147 47.2691 7.9962 4 +CH 6260 Reidermoos Kanton Luzern LU Willisau District 315 Reiden 1140 47.2485 7.999 4 +CH 6260 Mehlsecken Kanton Luzern LU Willisau District 315 Reiden 1140 47.2451 7.958 4 +CH 6262 Langnau b. Reiden Kanton Luzern LU Willisau District 315 Reiden 1140 47.2298 7.9489 4 +CH 6263 Richenthal Kanton Luzern LU Willisau District 315 Reiden 1140 47.2105 7.932 4 +CH 6264 Pfaffnau Kanton Luzern LU Willisau District 315 Pfaffnau 1139 47.2297 7.9009 4 +CH 6265 Roggliswil Kanton Luzern LU Willisau District 315 Roggliswil 1142 47.2114 7.8859 4 +CH 6105 Schachen LU Kanton Luzern LU Entlebuch District 316 Werthenstein 1009 47.0292 8.1289 4 +CH 6106 Werthenstein Kanton Luzern LU Entlebuch District 316 Werthenstein 1009 47.0472 8.1044 4 +CH 6110 Fontannen b. Wolhusen Kanton Luzern LU Entlebuch District 316 Wolhusen 1107 47.0203 7.9771 4 +CH 6110 Wolhusen Kanton Luzern LU Entlebuch District 316 Wolhusen 1107 47.0547 8.0726 4 +CH 6112 Doppleschwand Kanton Luzern LU Entlebuch District 316 Doppleschwand 1001 47.0119 8.0508 4 +CH 6113 Romoos Kanton Luzern LU Entlebuch District 316 Romoos 1007 47.007 8.0052 4 +CH 6114 Steinhuserberg Kanton Luzern LU Entlebuch District 316 Wolhusen 1107 47.046 8.0446 4 +CH 6160 Entlebuch Businesszentrum Kanton Luzern LU Entlebuch District 316 Entlebuch 1002 46.9762 8.1079 +CH 6160 Entlebuch Kanton Luzern LU Entlebuch District 316 Entlebuch 1002 46.9762 8.1079 +CH 6162 Rengg Kanton Luzern LU Entlebuch District 316 Entlebuch 1002 47.0003 8.1102 4 +CH 6162 Finsterwald b. Entlebuch Kanton Luzern LU Entlebuch District 316 Entlebuch 1002 46.9418 8.1178 3 +CH 6162 Entlebuch Kanton Luzern LU Entlebuch District 316 Entlebuch 1002 46.9882 8.0746 4 +CH 6163 Ebnet Kanton Luzern LU Entlebuch District 316 Entlebuch 1002 47.0211 8.0831 4 +CH 6166 Hasle LU Kanton Luzern LU Entlebuch District 316 Hasle (LU) 1005 46.9592 8.067 4 +CH 6167 Bramboden Kanton Luzern LU Entlebuch District 316 Romoos 1007 46.9851 7.9727 4 +CH 6170 Schüpfheim Kanton Luzern LU Entlebuch District 316 Schüpfheim 1008 46.9462 8.0121 4 +CH 6173 Flühli LU Kanton Luzern LU Entlebuch District 316 Flühli 1004 46.8826 8.0249 4 +CH 6174 Sörenberg Kanton Luzern LU Entlebuch District 316 Flühli 1004 46.8161 8.0089 4 +CH 6182 Escholzmatt Kanton Luzern LU Entlebuch District 316 Escholzmatt-Marbach 1010 46.9238 7.9427 4 +CH 6192 Wiggen Kanton Luzern LU Entlebuch District 316 Escholzmatt-Marbach 1010 46.8779 7.944 4 +CH 6196 Marbach LU Kanton Luzern LU Entlebuch District 316 Escholzmatt-Marbach 1010 46.8557 7.9091 4 +CH 2012 Auvernier Neuchâtel NE Boudry District 2401 Milvignes 6416 46.9702 6.8926 4 +CH 2013 Colombier NE Neuchâtel NE Boudry District 2401 Milvignes 6416 46.9645 6.8726 4 +CH 2014 Bôle Neuchâtel NE Boudry District 2401 Milvignes 6416 46.9688 6.8372 4 +CH 2015 Areuse Neuchâtel NE Boudry District 2401 Boudry 6404 46.9462 6.8898 4 +CH 2016 Cortaillod Neuchâtel NE Boudry District 2401 Cortaillod 6408 46.9329 6.8617 4 +CH 2017 Boudry Neuchâtel NE Boudry District 2401 Boudry 6404 46.9532 6.8133 4 +CH 2019 Chambrelien Neuchâtel NE Boudry District 2401 Rochefort 6413 46.9702 6.8137 4 +CH 2019 Rochefort Neuchâtel NE Boudry District 2401 Rochefort 6413 46.9894 6.8002 4 +CH 2022 Bevaix Neuchâtel NE Boudry District 2401 La Grande-Béroche 6417 46.9228 6.8195 4 +CH 2023 Gorgier Neuchâtel NE Boudry District 2401 La Grande-Béroche 6417 46.9236 6.7675 4 +CH 2024 St-Aubin-Sauges Neuchâtel NE Boudry District 2401 La Grande-Béroche 6417 46.8993 6.7648 4 +CH 2025 Chez-le-Bart Neuchâtel NE Boudry District 2401 La Grande-Béroche 6417 46.8966 6.8092 4 +CH 2027 Montalchez Neuchâtel NE Boudry District 2401 La Grande-Béroche 6417 46.9092 6.7345 4 +CH 2027 Fresens Neuchâtel NE Boudry District 2401 La Grande-Béroche 6417 46.8886 6.7479 4 +CH 2028 Vaumarcus Neuchâtel NE Boudry District 2401 La Grande-Béroche 6417 46.8705 6.7727 4 +CH 2034 Peseux Neuchâtel NE Boudry District 2401 Neuchâtel 6458 46.9956 6.8894 4 +CH 2035 Corcelles NE Neuchâtel NE Boudry District 2401 Neuchâtel 6458 46.9865 6.8602 4 +CH 2036 Cormondrèche Neuchâtel NE Boudry District 2401 Neuchâtel 6458 46.9808 6.8692 4 +CH 2037 Montezillon Neuchâtel NE Boudry District 2401 Rochefort 6413 46.9863 6.837 4 +CH 2149 Champ-du-Moulin Neuchâtel NE Boudry District 2401 Rochefort 6413 46.9524 6.7683 3 +CH 2149 Brot-Dessous Neuchâtel NE Boudry District 2401 Rochefort 6413 46.9631 6.759 4 +CH 2149 Fretereules Neuchâtel NE Boudry District 2401 Rochefort 6413 46.9605 6.7641 4 +CH 2300 La Chaux-de-Fonds Neuchâtel NE La Chaux-de-Fonds District 2402 La Chaux-de-Fonds 6421 47.1135 6.8347 4 +CH 2300 La Cibourg Neuchâtel NE La Chaux-de-Fonds District 2402 La Chaux-de-Fonds 6421 47.119 6.877 4 +CH 2301 La Chaux-de-Fonds Neuchâtel NE La Chaux-de-Fonds District 2402 La Chaux-de-Fonds 6421 47.0999 6.8259 +CH 2303 La Chaux-de-Fonds Neuchâtel NE La Chaux-de-Fonds District 2402 La Chaux-de-Fonds 6421 47.0999 6.8259 +CH 2304 La Chaux-de-Fonds Neuchâtel NE La Chaux-de-Fonds District 2402 La Chaux-de-Fonds 6421 47.0999 6.8259 +CH 2314 La Sagne NE Neuchâtel NE La Chaux-de-Fonds District 2402 La Sagne 6423 47.0474 6.8021 4 +CH 2322 Le Crêt-du-Locle Neuchâtel NE La Chaux-de-Fonds District 2402 La Chaux-de-Fonds 6421 47.0805 6.7818 4 +CH 2325 Les Planchettes Neuchâtel NE La Chaux-de-Fonds District 2402 Les Planchettes 6422 47.1082 6.7714 4 +CH 2333 La Cibourg Neuchâtel NE La Chaux-de-Fonds District 2402 La Chaux-de-Fonds 6421 47.1242 6.8958 4 +CH 2616 La Cibourg Neuchâtel NE La Chaux-de-Fonds District 2402 La Chaux-de-Fonds 6421 47.1156 6.8903 4 +CH 2316 Les Ponts-de-Martel Neuchâtel NE Le Locle District 2403 Les Ponts-de-Martel 6437 46.9872 6.7111 4 +CH 2316 Petit-Martel Neuchâtel NE Le Locle District 2403 Les Ponts-de-Martel 6437 47.0132 6.7516 4 +CH 2318 Brot-Plamboz Neuchâtel NE Le Locle District 2403 Brot-Plamboz 6433 46.9831 6.7486 4 +CH 2400 Le Prévoux Neuchâtel NE Le Locle District 2403 Le Locle 6436 47.0352 6.7127 4 +CH 2400 Le Locle Neuchâtel NE Le Locle District 2403 Le Locle 6436 47.0548 6.7513 4 +CH 2400 Le Locle Neuchâtel NE Le Locle District 2403 Le Locle 6436 47.0548 6.7513 4 +CH 2405 La Chaux-du-Milieu Neuchâtel NE Le Locle District 2403 La Chaux-du-Milieu 6435 47.0058 6.6981 4 +CH 2406 Les Taillères Neuchâtel NE Le Locle District 2403 La Brévine 6432 46.9728 6.5759 4 +CH 2406 La Brévine Neuchâtel NE Le Locle District 2403 La Brévine 6432 46.9719 6.6029 4 +CH 2406 Le Brouillet Neuchâtel NE Le Locle District 2403 La Brévine 6432 46.9559 6.5247 4 +CH 2406 La Châtagne Neuchâtel NE Le Locle District 2403 La Brévine 6432 46.9784 6.6424 4 +CH 2414 Le Cerneux-Péquignot Neuchâtel NE Le Locle District 2403 Le Cerneux-Péquignot 6434 47.017 6.6702 4 +CH 2416 Les Brenets Neuchâtel NE Le Locle District 2403 Le Locle 6436 47.0745 6.7242 4 +CH 2000 Neuchâtel Neuchâtel NE Neuchâtel District 2404 Neuchâtel 6458 46.9884 6.9413 4 +CH 2001 Neuchâtel 1 Neuchâtel NE Neuchâtel District 2404 Neuchâtel 6458 47.0094 6.9381 +CH 2002 Neuchâtel 2 Neuchâtel NE Neuchâtel District 2404 Neuchâtel 6458 47.0094 6.9381 +CH 2010 Neuchâtel OFS Neuchâtel NE Neuchâtel District 2404 Neuchâtel 6458 47.0094 6.9381 +CH 2067 Chaumont Neuchâtel NE Neuchâtel District 2404 Neuchâtel 6458 47.0404 6.9636 4 +CH 2068 Hauterive NE Neuchâtel NE Neuchâtel District 2404 Hauterive (NE) 6454 47.0104 6.9757 4 +CH 2072 St-Blaise Neuchâtel NE Neuchâtel District 2404 Saint-Blaise 6459 47.0351 6.9969 4 +CH 2073 Enges Neuchâtel NE Neuchâtel District 2404 Enges 6453 47.0722 7.0136 4 +CH 2074 Marin-Centre Neuchâtel NE Neuchâtel District 2404 La Tène 6461 47.0137 7.0165 +CH 2074 Marin-Epagnier Neuchâtel NE Neuchâtel District 2404 La Tène 6461 46.9992 7.0132 4 +CH 2075 Thielle Neuchâtel NE Neuchâtel District 2404 La Tène 6461 47.0183 7.0263 4 +CH 2075 Wavre Neuchâtel NE Neuchâtel District 2404 La Tène 6461 47.0235 7.0202 4 +CH 2087 Cornaux NE Neuchâtel NE Neuchâtel District 2404 Cornaux 6451 47.0348 7.0204 4 +CH 2088 Cressier NE Neuchâtel NE Neuchâtel District 2404 Cressier (NE) 6452 47.0491 7.0367 4 +CH 2523 Lignières Neuchâtel NE Neuchâtel District 2404 Lignières 6456 47.0899 7.0475 4 +CH 2525 Le Landeron Neuchâtel NE Neuchâtel District 2404 Le Landeron 6455 47.0604 7.0651 4 +CH 2037 Montmollin Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 46.9988 6.8432 4 +CH 2042 Valangin Neuchâtel NE Val-de-Ruz District 2405 Neuchâtel 6458 47.0138 6.8995 4 +CH 2043 Boudevilliers Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.0289 6.8837 4 +CH 2046 Fontaines NE Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.0427 6.9018 4 +CH 2052 La Vue-des-Alpes Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.0655 6.8685 4 +CH 2052 Fontainemelon Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.0555 6.8877 4 +CH 2053 Cernier Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.0588 6.904 4 +CH 2054 Les Vieux-Prés Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.0904 6.9297 1 +CH 2054 Chézard-St-Martin Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.0638 6.9274 1 +CH 2056 Dombresson Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.0699 6.9569 4 +CH 2057 Villiers Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.081 6.9846 4 +CH 2058 Le Pâquier NE Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.1059 6.9821 4 +CH 2063 Saules Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.0384 6.9388 4 +CH 2063 Engollon Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.0444 6.9246 4 +CH 2063 Vilars NE Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.0325 6.9308 4 +CH 2063 Fenin Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.0233 6.9192 4 +CH 2065 Savagnier Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.0509 6.9568 4 +CH 2206 Les Geneveys-sur-Coffrane Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.0186 6.8341 4 +CH 2207 Coffrane Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.0088 6.8663 4 +CH 2208 Les Hauts-Geneveys Neuchâtel NE Val-de-Ruz District 2405 Val-de-Ruz 6487 47.0417 6.861 4 +CH 2103 Noiraigue Neuchâtel NE Val-de-Travers District 2406 Val-de-Travers 6512 46.949 6.7247 4 +CH 2105 Travers Neuchâtel NE Val-de-Travers District 2406 Val-de-Travers 6512 46.9471 6.6757 4 +CH 2108 Couvet Neuchâtel NE Val-de-Travers District 2406 Val-de-Travers 6512 46.9189 6.6543 4 +CH 2112 Môtiers NE Neuchâtel NE Val-de-Travers District 2406 Val-de-Travers 6512 46.9044 6.6176 4 +CH 2113 Boveresse Neuchâtel NE Val-de-Travers District 2406 Val-de-Travers 6512 46.9168 6.5996 4 +CH 2114 Fleurier Neuchâtel NE Val-de-Travers District 2406 Val-de-Travers 6512 46.8949 6.5893 4 +CH 2115 Buttes Neuchâtel NE Val-de-Travers District 2406 Val-de-Travers 6512 46.8795 6.5432 4 +CH 2116 Mont-de-Buttes Neuchâtel NE Val-de-Travers District 2406 Val-de-Travers 6512 46.888 6.5197 4 +CH 2117 La Côte-aux-Fées Neuchâtel NE Val-de-Travers District 2406 La Côte-aux-Fées 6504 46.8634 6.4853 4 +CH 2123 St-Sulpice NE Neuchâtel NE Val-de-Travers District 2406 Val-de-Travers 6512 46.9088 6.56 4 +CH 2124 Les Sagnettes Neuchâtel NE Val-de-Travers District 2406 Val-de-Travers 6512 46.9392 6.5957 4 +CH 2126 Les Verrières Neuchâtel NE Val-de-Travers District 2406 Les Verrières 6511 46.9144 6.4748 4 +CH 2127 Les Bayards Neuchâtel NE Val-de-Travers District 2406 Val-de-Travers 6512 46.9254 6.5382 4 +CH 6052 Hergiswil NW Kanton Nidwalden NW Nidwalden 700 Hergiswil (NW) 1507 46.9859 8.2813 4 +CH 6362 Stansstad Kanton Nidwalden NW Nidwalden 700 Stansstad 1510 46.974 8.3314 4 +CH 6363 Fürigen Kanton Nidwalden NW Nidwalden 700 Stansstad 1510 46.9837 8.349 3 +CH 6363 Bürgenstock Kanton Nidwalden NW Nidwalden 700 Ennetbürgen 1505 46.9963 8.3846 3 +CH 6363 Obbürgen Kanton Nidwalden NW Nidwalden 700 Stansstad 1510 46.9854 8.3712 4 +CH 6365 Kehrsiten Kanton Nidwalden NW Nidwalden 700 Stansstad 1510 47.0046 8.3827 4 +CH 6370 Stans Kanton Nidwalden NW Nidwalden 700 Stans 1509 46.9588 8.3633 4 +CH 6370 Oberdorf NW Kanton Nidwalden NW Nidwalden 700 Oberdorf (NW) 1508 46.9518 8.386 3 +CH 6371 Stans Kanton Nidwalden NW Nidwalden 700 Stans 1509 46.9581 8.3661 +CH 6372 Ennetmoos Kanton Nidwalden NW Nidwalden 700 Ennetmoos 1506 46.9448 8.3225 4 +CH 6373 Ennetbürgen Kanton Nidwalden NW Nidwalden 700 Ennetbürgen 1505 46.9945 8.4308 4 +CH 6374 Buochs Kanton Nidwalden NW Nidwalden 700 Buochs 1502 46.9672 8.4227 4 +CH 6375 Beckenried Kanton Nidwalden NW Nidwalden 700 Beckenried 1501 46.9502 8.4716 4 +CH 6376 Emmetten Kanton Nidwalden NW Nidwalden 700 Emmetten 1504 46.946 8.5203 4 +CH 6382 Büren NW Kanton Nidwalden NW Nidwalden 700 Oberdorf (NW) 1508 46.9407 8.408 4 +CH 6383 Wiesenberg Kanton Nidwalden NW Nidwalden 700 Dallenwil 1503 46.915 8.3551 4 +CH 6383 Wirzweli Kanton Nidwalden NW Nidwalden 700 Dallenwil 1503 46.9121 8.3632 4 +CH 6383 Dallenwil Kanton Nidwalden NW Nidwalden 700 Dallenwil 1503 46.9223 8.3836 4 +CH 6383 Niederrickenbach Kanton Nidwalden NW Nidwalden 700 Oberdorf (NW) 1508 46.9193 8.4391 4 +CH 6386 Wolfenschiessen Kanton Nidwalden NW Nidwalden 700 Wolfenschiessen 1511 46.8996 8.3825 4 +CH 6387 Oberrickenbach Kanton Nidwalden NW Nidwalden 700 Wolfenschiessen 1511 46.8787 8.4401 4 +CH 6010 Kriens Kanton Obwalden OW Obwalden 600 Alpnach 1401 47.0199 8.2682 4 +CH 6010 Pilatus Kulm Kanton Obwalden OW Obwalden 600 Alpnach 1401 46.979 8.2548 6 +CH 6053 Alpnachstad Kanton Obwalden OW Obwalden 600 Alpnach 1401 46.961 8.291 4 +CH 6055 Alpnach Dorf Kanton Obwalden OW Obwalden 600 Alpnach 1401 46.949 8.2264 4 +CH 6056 Kägiswil Kanton Obwalden OW Obwalden 600 Sarnen 1407 46.917 8.2553 4 +CH 6060 Ramersberg Kanton Obwalden OW Obwalden 600 Sarnen 1407 46.9136 8.2083 4 +CH 6060 Sarnen Kanton Obwalden OW Obwalden 600 Sarnen 1407 46.8958 8.2474 4 +CH 6060 Sarnen 2 Kanton Obwalden OW Obwalden 600 Sarnen 1407 46.8985 8.1765 +CH 6061 Sarnen 1 Kanton Obwalden OW Obwalden 600 Sarnen 1407 46.8985 8.1765 +CH 6062 Wilen (Sarnen) Kanton Obwalden OW Obwalden 600 Sarnen 1407 46.8705 8.207 4 +CH 6063 Stalden (Sarnen) Kanton Obwalden OW Obwalden 600 Sarnen 1407 46.8944 8.1489 4 +CH 6064 Kerns Kanton Obwalden OW Obwalden 600 Kerns 1404 46.9071 8.3028 4 +CH 6066 St. Niklausen OW Kanton Obwalden OW Obwalden 600 Kerns 1404 46.8732 8.3026 4 +CH 6067 Melchtal Kanton Obwalden OW Obwalden 600 Kerns 1404 46.8235 8.3012 4 +CH 6068 Melchsee-Frutt Kanton Obwalden OW Obwalden 600 Kerns 1404 46.7821 8.2988 4 +CH 6072 Sachseln Kanton Obwalden OW Obwalden 600 Sachseln 1406 46.8319 8.2424 4 +CH 6073 Flüeli-Ranft Kanton Obwalden OW Obwalden 600 Sachseln 1406 46.874 8.2596 4 +CH 6074 Giswil Kanton Obwalden OW Obwalden 600 Giswil 1403 46.8375 8.122 4 +CH 6078 Bürglen OW Kanton Obwalden OW Obwalden 600 Lungern 1405 46.8113 8.1674 4 +CH 6078 Lungern Kanton Obwalden OW Obwalden 600 Lungern 1405 46.7848 8.1673 4 +CH 6388 Grafenort Kanton Obwalden OW Obwalden 600 Engelberg 1402 46.8634 8.3692 4 +CH 6390 Engelberg Kanton Obwalden OW Obwalden 600 Engelberg 1402 46.8145 8.4412 4 +CH 6391 Engelberg Kanton Obwalden OW Obwalden 600 Engelberg 1402 46.8211 8.4013 +CH 9000 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.424 9.3685 4 +CH 9001 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4221 9.3755 +CH 9004 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4221 9.3755 +CH 9006 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4221 9.3755 +CH 9007 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4221 9.3755 +CH 9008 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4413 9.3918 4 +CH 9010 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4419 9.3736 4 +CH 9011 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4154 9.4021 4 +CH 9012 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4096 9.3636 4 +CH 9013 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4221 9.3755 +CH 9014 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4081 9.3356 4 +CH 9015 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.408 9.3072 4 +CH 9016 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4418 9.4154 4 +CH 9020 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4221 9.3755 +CH 9021 St. Gallen MS Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4221 9.3755 +CH 9023 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4221 9.3755 +CH 9024 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4221 9.3755 +CH 9024 St. Gallen Presse-Serv.Güll Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4221 9.3755 +CH 9026 St. Gallen K AG Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4221 9.3755 +CH 9026 St. Gallen Künzler AG Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4221 9.3755 +CH 9027 St. Gallen Mona Versand Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4221 9.3755 +CH 9027 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4221 9.3755 +CH 9028 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4221 9.3755 +CH 9029 St. Gallen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4221 9.3755 +CH 9029 St. Gallen Sonderdienste Kanton St. Gallen SG Wahlkreis St. Gallen 1721 St. Gallen 3203 47.4221 9.3755 +CH 9030 St. Josefen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 Gaiserwald 3442 47.426 9.3373 4 +CH 9030 Abtwil SG Kanton St. Gallen SG Wahlkreis St. Gallen 1721 Gaiserwald 3442 47.4283 9.3204 4 +CH 9032 Engelburg Kanton St. Gallen SG Wahlkreis St. Gallen 1721 Gaiserwald 3442 47.443 9.3415 4 +CH 9034 Eggersriet Kanton St. Gallen SG Wahlkreis St. Gallen 1721 Eggersriet 3212 47.4414 9.4623 4 +CH 9036 Grub SG Kanton St. Gallen SG Wahlkreis St. Gallen 1721 Eggersriet 3212 47.4543 9.5098 4 +CH 9200 Gossau SG Kanton St. Gallen SG Wahlkreis St. Gallen 1721 Gossau (SG) 3443 47.4178 9.2492 4 +CH 9200 Gossau SG 2 Kanton St. Gallen SG Wahlkreis St. Gallen 1721 Gossau (SG) 3443 47.421 9.2536 +CH 9201 Gossau SG Kanton St. Gallen SG Wahlkreis St. Gallen 1721 Gossau (SG) 3443 47.421 9.2536 +CH 9204 Andwil SG Kanton St. Gallen SG Wahlkreis St. Gallen 1721 Andwil (SG) 3441 47.4372 9.279 4 +CH 9205 Waldkirch Kanton St. Gallen SG Wahlkreis St. Gallen 1721 Waldkirch 3444 47.463 9.2879 4 +CH 9212 Arnegg Kanton St. Gallen SG Wahlkreis St. Gallen 1721 Gossau (SG) 3443 47.4425 9.2524 4 +CH 9300 Wittenbach Kanton St. Gallen SG Wahlkreis St. Gallen 1721 Wittenbach 3204 47.4661 9.3798 4 +CH 9301 Wittenbach Kanton St. Gallen SG Wahlkreis St. Gallen 1721 Wittenbach 3204 47.4611 9.386 +CH 9304 Bernhardzell Kanton St. Gallen SG Wahlkreis St. Gallen 1721 Waldkirch 3444 47.4669 9.3409 4 +CH 9308 Lömmenschwil Kanton St. Gallen SG Wahlkreis St. Gallen 1721 Häggenschwil 3201 47.4966 9.3455 4 +CH 9312 Häggenschwil Kanton St. Gallen SG Wahlkreis St. Gallen 1721 Häggenschwil 3201 47.4907 9.3353 4 +CH 9313 Muolen Kanton St. Gallen SG Wahlkreis St. Gallen 1721 Muolen 3202 47.5171 9.3179 4 +CH 9033 Untereggen Kanton St. Gallen SG Wahlkreis Rorschach 1722 Untereggen 3219 47.4538 9.4543 4 +CH 9305 Berg SG Kanton St. Gallen SG Wahlkreis Rorschach 1722 Berg (SG) 3211 47.4862 9.4122 4 +CH 9323 Steinach Kanton St. Gallen SG Wahlkreis Rorschach 1722 Steinach 3217 47.5065 9.4497 4 +CH 9327 Tübach Kanton St. Gallen SG Wahlkreis Rorschach 1722 Tübach 3218 47.4825 9.4538 4 +CH 9400 Rorschach Kanton St. Gallen SG Wahlkreis Rorschach 1722 Rorschach 3215 47.4972 9.5037 4 +CH 9401 Rorschach Kanton St. Gallen SG Wahlkreis Rorschach 1722 Rorschach 3215 47.478 9.4903 +CH 9402 Mörschwil Kanton St. Gallen SG Wahlkreis Rorschach 1722 Mörschwil 3214 47.4675 9.426 4 +CH 9403 Goldach Kanton St. Gallen SG Wahlkreis Rorschach 1722 Goldach 3213 47.4859 9.4782 4 +CH 9404 Rorschacherberg Kanton St. Gallen SG Wahlkreis Rorschach 1722 Rorschacherberg 3216 47.4803 9.5104 4 +CH 9422 Staad SG Kanton St. Gallen SG Wahlkreis Rorschach 1722 Thal 3237 47.492 9.5371 4 +CH 9423 Altenrhein Kanton St. Gallen SG Wahlkreis Rorschach 1722 Thal 3237 47.5158 9.5473 4 +CH 9425 Thal Kanton St. Gallen SG Wahlkreis Rorschach 1722 Thal 3237 47.4732 9.5649 4 +CH 9411 Reute AR Kanton St. Gallen SG Wahlkreis Rheintal 1723 Berneck 3233 47.4088 9.5662 3 +CH 9424 Rheineck Kanton St. Gallen SG Wahlkreis Rheintal 1723 Rheineck 3235 47.4688 9.585 4 +CH 9430 St. Margrethen SG Kanton St. Gallen SG Wahlkreis Rheintal 1723 St. Margrethen 3236 47.4529 9.6276 4 +CH 9434 Au SG Kanton St. Gallen SG Wahlkreis Rheintal 1723 Au (SG) 3231 47.4297 9.639 4 +CH 9435 Heerbrugg Kanton St. Gallen SG Wahlkreis Rheintal 1723 Au (SG) 3231 47.4126 9.6266 4 +CH 9436 Balgach Kanton St. Gallen SG Wahlkreis Rheintal 1723 Balgach 3232 47.3935 9.612 4 +CH 9437 Marbach SG Kanton St. Gallen SG Wahlkreis Rheintal 1723 Marbach (SG) 3253 47.3865 9.579 4 +CH 9442 Berneck Kanton St. Gallen SG Wahlkreis Rheintal 1723 Berneck 3233 47.4244 9.6118 4 +CH 9443 Widnau Kanton St. Gallen SG Wahlkreis Rheintal 1723 Widnau 3238 47.4007 9.6376 4 +CH 9444 Diepoldsau Kanton St. Gallen SG Wahlkreis Rheintal 1723 Diepoldsau 3234 47.3823 9.6518 4 +CH 9445 Rebstein Kanton St. Gallen SG Wahlkreis Rheintal 1723 Rebstein 3255 47.3942 9.5898 4 +CH 9450 Altstätten SG 2 Kanton St. Gallen SG Wahlkreis Rheintal 1723 Altstätten 3251 47.378 9.5487 6 +CH 9450 Altstätten SG Kanton St. Gallen SG Wahlkreis Rheintal 1723 Altstätten 3251 47.3706 9.5419 4 +CH 9450 Lüchingen Kanton St. Gallen SG Wahlkreis Rheintal 1723 Altstätten 3251 47.3897 9.5549 4 +CH 9451 Kriessern Kanton St. Gallen SG Wahlkreis Rheintal 1723 Oberriet (SG) 3254 47.3639 9.6059 4 +CH 9452 Hinterforst Kanton St. Gallen SG Wahlkreis Rheintal 1723 Altstätten 3251 47.3579 9.5278 4 +CH 9453 Eichberg Kanton St. Gallen SG Wahlkreis Rheintal 1723 Eichberg 3252 47.3442 9.5209 4 +CH 9462 Montlingen Kanton St. Gallen SG Wahlkreis Rheintal 1723 Oberriet (SG) 3254 47.3412 9.5842 4 +CH 9462 Montlingen Kanton St. Gallen SG Wahlkreis Rheintal 1723 Oberriet (SG) 3254 47.3412 9.5842 4 +CH 9463 Oberriet SG Kanton St. Gallen SG Wahlkreis Rheintal 1723 Oberriet (SG) 3254 47.3228 9.5411 4 +CH 9464 Rüthi (Rheintal) Kanton St. Gallen SG Wahlkreis Rheintal 1723 Rüthi (SG) 3256 47.2949 9.5335 4 +CH 9464 Lienz Kanton St. Gallen SG Wahlkreis Rheintal 1723 Altstätten 3251 47.2866 9.5073 4 +CH 9465 Salez Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Sennwald 3274 47.2337 9.495 4 +CH 9466 Sennwald Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Sennwald 3274 47.2623 9.5013 4 +CH 9467 Frümsen Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Sennwald 3274 47.2505 9.4685 4 +CH 9468 Sax Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Sennwald 3274 47.235 9.4431 4 +CH 9469 Haag (Rheintal) Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Sennwald 3274 47.2094 9.4875 4 +CH 9470 Werdenberg Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Grabs 3273 47.1706 9.458 4 +CH 9470 Buchs SG Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Buchs (SG) 3271 47.1592 9.4622 4 +CH 9471 Buchs SG 3 Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Buchs (SG) 3271 47.166 9.4627 +CH 9471 Buchs SG 1 Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Buchs (SG) 3271 47.166 9.4627 +CH 9472 Grabs Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Grabs 3273 47.1811 9.4465 4 +CH 9472 Grabserberg Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Grabs 3273 47.165 9.3793 4 +CH 9473 Gams Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Gams 3272 47.2117 9.4297 4 +CH 9475 Sevelen Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Sevelen 3275 47.1292 9.4585 4 +CH 9476 Weite Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Wartau 3276 47.0986 9.5026 4 +CH 9476 Fontnas Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Wartau 3276 47.0906 9.4885 4 +CH 9477 Trübbach Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Wartau 3276 47.076 9.4861 4 +CH 9478 Azmoos Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Wartau 3276 47.0886 9.4318 4 +CH 9479 Malans SG Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Wartau 3276 47.0902 9.4756 4 +CH 9479 Oberschan Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Wartau 3276 47.102 9.4579 4 +CH 9479 Gretschins Kanton St. Gallen SG Wahlkreis Werdenberg 1724 Wartau 3276 47.0971 9.486 4 +CH 7310 Bad Ragaz Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Bad Ragaz 3291 46.9969 9.4731 4 +CH 7310 Bad Ragaz Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Pfäfers 3294 46.9969 9.4731 4 +CH 7312 Pfäfers Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Pfäfers 3294 46.9844 9.5075 4 +CH 7313 St. Margrethenberg Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Pfäfers 3294 46.9682 9.5101 4 +CH 7314 Vadura Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Pfäfers 3294 46.9562 9.4916 4 +CH 7315 Vättis Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Pfäfers 3294 46.9132 9.385 4 +CH 7317 Vasön Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Pfäfers 3294 46.9549 9.46 4 +CH 7317 Valens Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Pfäfers 3294 46.977 9.4672 4 +CH 7320 Sargans Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Sargans 3296 47.0556 9.4489 4 +CH 7323 Wangs Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Vilters-Wangs 3297 47.0061 9.4138 4 +CH 7324 Vilters Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Vilters-Wangs 3297 47.0198 9.4573 4 +CH 7325 Schwendi im Weisstannental Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Mels 3293 46.9966 9.3682 4 +CH 7326 Weisstannen Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Mels 3293 46.9719 9.3047 4 +CH 8877 Murg Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Quarten 3295 47.0696 9.1964 4 +CH 8878 Quinten Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Quarten 3295 47.1329 9.221 4 +CH 8879 Pizolpark (Mels) Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Mels 3293 47.0008 9.3374 +CH 8880 Walenstadt Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Walenstadt 3298 47.1224 9.3107 4 +CH 8881 Tscherlach Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Walenstadt 3298 47.1298 9.3402 4 +CH 8881 Walenstadtberg Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Walenstadt 3298 47.1406 9.2785 4 +CH 8882 Unterterzen Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Quarten 3295 47.1161 9.2484 4 +CH 8883 Quarten Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Quarten 3295 47.1029 9.2344 4 +CH 8884 Oberterzen Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Quarten 3295 47.0863 9.2458 4 +CH 8885 Mols Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Quarten 3295 47.1123 9.2824 4 +CH 8886 Mädris-Vermol Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Mels 3293 47.0371 9.3462 4 +CH 8887 Mels Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Mels 3293 47.0327 9.4166 4 +CH 8888 Heiligkreuz (Mels) Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Mels 3293 47.0684 9.4085 4 +CH 8889 Plons Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Mels 3293 47.0618 9.3833 4 +CH 8890 Flums Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Flums 3292 47.0935 9.3416 4 +CH 8892 Berschis Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Walenstadt 3298 47.1136 9.3721 4 +CH 8893 Flums Hochwiese Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Flums 3292 47.0837 9.3781 4 +CH 8894 Flumserberg Saxli Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Flums 3292 47.0597 9.3302 4 +CH 8895 Flumserberg Portels Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Flums 3292 47.0712 9.3208 4 +CH 8896 Flumserberg Bergheim Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Flums 3292 47.0925 9.309 4 +CH 8897 Flumserberg Tannenheim Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Flums 3292 47.046 9.266 4 +CH 8898 Flumserberg Tannenbodenalp Kanton St. Gallen SG Wahlkreis Sarganserland 1725 Flums 3292 47.0805 9.2683 4 +CH 8638 Goldingen Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Eschenbach (SG) 3342 47.2847 8.9739 4 +CH 8640 Rapperswil SG Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Rapperswil-Jona 3340 47.225 8.8188 4 +CH 8645 Jona Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Rapperswil-Jona 3340 47.232 8.84 4 +CH 8646 Wagen Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Rapperswil-Jona 3340 47.2321 8.8862 4 +CH 8715 Bollingen Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Rapperswil-Jona 3340 47.2199 8.8909 4 +CH 8716 Schmerikon Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Schmerikon 3338 47.2245 8.9419 4 +CH 8717 Benken SG Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Benken (SG) 3312 47.1924 8.9958 4 +CH 8718 Schänis Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Schänis 3315 47.1604 9.0585 4 +CH 8722 Kaltbrunn Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Kaltbrunn 3313 47.2096 9.0494 4 +CH 8723 Rufi Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Schänis 3315 47.1835 9.079 4 +CH 8723 Maseltrangen Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Schänis 3315 47.1963 9.0537 4 +CH 8725 Ernetschwil Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Gommiswald 3341 47.2414 8.9985 4 +CH 8725 Gebertingen Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Gommiswald 3341 47.2556 9.0052 4 +CH 8726 Ricken SG Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Gommiswald 3341 47.2594 9.0491 4 +CH 8727 Walde SG Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Eschenbach (SG) 3342 47.2743 9.0227 4 +CH 8730 Uznach Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Uznach 3339 47.2256 8.9811 4 +CH 8732 Neuhaus SG Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Eschenbach (SG) 3342 47.2418 8.9447 4 +CH 8733 Eschenbach SG Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Eschenbach (SG) 3342 47.245 8.922 4 +CH 8734 Ermenswil Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Eschenbach (SG) 3342 47.247 8.8897 4 +CH 8735 St. Gallenkappel Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Eschenbach (SG) 3342 47.246 8.9713 4 +CH 8735 Rüeterswil Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Eschenbach (SG) 3342 47.274 8.9952 4 +CH 8737 Gommiswald Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Gommiswald 3341 47.2315 9.0203 4 +CH 8738 Uetliburg SG Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Gommiswald 3341 47.2412 9.046 4 +CH 8739 Rieden SG Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Gommiswald 3341 47.2258 9.0772 4 +CH 8740 Uznach Vögele AG Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Uznach 3339 47.2265 8.9813 +CH 8740 Uznach Vögele Versandhaus Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Uznach 3339 47.2265 8.9813 +CH 8866 Ziegelbrücke Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Schänis 3315 47.136 9.0625 4 +CH 8872 Weesen Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Weesen 3316 47.1372 9.1115 4 +CH 8873 Amden Kanton St. Gallen SG Wahlkreis See-Gaster 1726 Amden 3311 47.1599 9.1679 4 +CH 9114 Hoffeld Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Neckertal 3378 47.3559 9.1726 4 +CH 9115 Dicken Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Neckertal 3378 47.3366 9.1932 4 +CH 9122 Mogelsberg Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Neckertal 3378 47.3604 9.1372 4 +CH 9122 Ebersol Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Neckertal 3378 47.3414 9.1574 4 +CH 9123 Nassen Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Neckertal 3378 47.3793 9.1493 4 +CH 9125 Brunnadern Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Neckertal 3378 47.324 9.1417 4 +CH 9126 Necker Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Oberhelfenschwil 3375 47.3462 9.1279 4 +CH 9127 St. Peterzell Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Neckertal 3378 47.3212 9.1793 4 +CH 9500 Wil SG Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Kirchberg (SG) 3392 47.4622 9.0517 4 +CH 9533 Dietschwil Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Kirchberg (SG) 3392 47.4253 9.0118 4 +CH 9533 Kirchberg SG Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Kirchberg (SG) 3392 47.4183 9.0341 4 +CH 9534 Gähwil Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Kirchberg (SG) 3392 47.3939 8.9982 4 +CH 9601 Lütisburg Station Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Lütisburg 3393 47.3814 9.0669 4 +CH 9602 Müselbach Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Kirchberg (SG) 3392 47.3883 9.0406 4 +CH 9602 Bazenheid Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Kirchberg (SG) 3392 47.4127 9.0654 4 +CH 9604 Lütisburg Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Lütisburg 3393 47.3954 9.106 4 +CH 9604 Unterrindal Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Lütisburg 3393 47.4091 9.0935 4 +CH 9606 Bütschwil Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Bütschwil-Ganterschwil 3395 47.3563 9.0691 4 +CH 9607 Mosnang Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Mosnang 3394 47.3592 9.0387 4 +CH 9608 Ganterschwil Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Bütschwil-Ganterschwil 3395 47.3743 9.0965 4 +CH 9612 Dreien Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Mosnang 3394 47.3552 9.0047 4 +CH 9613 Mühlrüti Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Mosnang 3394 47.3672 8.9784 4 +CH 9614 Libingen Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Mosnang 3394 47.3228 9.0173 4 +CH 9615 Dietfurt Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Bütschwil-Ganterschwil 3395 47.3365 9.0677 4 +CH 9620 Lichtensteig Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Lichtensteig 3374 47.3187 9.0877 4 +CH 9621 Oberhelfenschwil Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Oberhelfenschwil 3375 47.3483 9.1066 4 +CH 9622 Krinau Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Wattwil 3379 47.3178 9.0521 4 +CH 9630 Wattwil Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Wattwil 3379 47.2939 9.0881 4 +CH 9631 Ulisbach Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Wattwil 3379 47.2851 9.1173 4 +CH 9633 Hemberg Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Hemberg 3372 47.2892 9.1756 4 +CH 9633 Bächli (Hemberg) Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Hemberg 3372 47.3005 9.2016 4 +CH 9642 Ebnat-Kappel Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Ebnat-Kappel 3352 47.245 9.1299 4 +CH 9643 Krummenau Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Nesslau 3360 47.258 9.1869 4 +CH 9650 Nesslau Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Nesslau 3360 47.2123 9.1831 4 +CH 9651 Ennetbühl Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Nesslau 3360 47.2455 9.2592 4 +CH 9652 Neu St. Johann Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Nesslau 3360 47.242 9.1901 4 +CH 9655 Stein SG Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Nesslau 3360 47.2017 9.2298 4 +CH 9656 Alt St. Johann Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Wildhaus-Alt St. Johann 3359 47.1773 9.2647 4 +CH 9657 Unterwasser Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Wildhaus-Alt St. Johann 3359 47.1964 9.3065 4 +CH 9658 Wildhaus Kanton St. Gallen SG Wahlkreis Toggenburg 1727 Wildhaus-Alt St. Johann 3359 47.2165 9.3527 4 +CH 9113 Degersheim Kanton St. Gallen SG Wahlkreis Wil 1728 Degersheim 3401 47.3734 9.1981 4 +CH 9116 Wolfertswil Kanton St. Gallen SG Wahlkreis Wil 1728 Degersheim 3401 47.3957 9.1692 4 +CH 9203 Niederwil SG Kanton St. Gallen SG Wahlkreis Wil 1728 Oberbüren 3424 47.4323 9.2016 4 +CH 9230 Flawil 1 Kanton St. Gallen SG Wahlkreis Wil 1728 Flawil 3402 47.4053 9.1977 +CH 9230 Flawil 2 Botsberg Kanton St. Gallen SG Wahlkreis Wil 1728 Flawil 3402 47.4053 9.1977 +CH 9230 Flawil Kanton St. Gallen SG Wahlkreis Wil 1728 Flawil 3402 47.4086 9.1895 4 +CH 9231 Egg (Flawil) Kanton St. Gallen SG Wahlkreis Wil 1728 Flawil 3402 47.3943 9.2222 4 +CH 9240 Uzwil Kanton St. Gallen SG Wahlkreis Wil 1728 Uzwil 3408 47.4358 9.1356 4 +CH 9240 Niederglatt SG Kanton St. Gallen SG Wahlkreis Wil 1728 Oberuzwil 3407 47.4278 9.163 4 +CH 9242 Oberuzwil Kanton St. Gallen SG Wahlkreis Wil 1728 Oberuzwil 3407 47.4292 9.1217 4 +CH 9243 Jonschwil Kanton St. Gallen SG Wahlkreis Wil 1728 Jonschwil 3405 47.423 9.0951 4 +CH 9244 Niederuzwil Kanton St. Gallen SG Wahlkreis Wil 1728 Uzwil 3408 47.4463 9.1427 4 +CH 9245 Oberbüren Kanton St. Gallen SG Wahlkreis Wil 1728 Oberbüren 3424 47.4505 9.1675 4 +CH 9245 Sonnental Kanton St. Gallen SG Wahlkreis Wil 1728 Oberbüren 3424 47.4584 9.1348 4 +CH 9246 Niederbüren Kanton St. Gallen SG Wahlkreis Wil 1728 Niederbüren 3422 47.4625 9.2147 4 +CH 9247 Henau Kanton St. Gallen SG Wahlkreis Wil 1728 Uzwil 3408 47.4557 9.114 4 +CH 9248 Bichwil Kanton St. Gallen SG Wahlkreis Wil 1728 Oberuzwil 3407 47.4157 9.1376 4 +CH 9249 Niederstetten Kanton St. Gallen SG Wahlkreis Wil 1728 Uzwil 3408 47.4535 9.0823 4 +CH 9249 Algetshausen Kanton St. Gallen SG Wahlkreis Wil 1728 Uzwil 3408 47.4443 9.1101 4 +CH 9249 Oberstetten Kanton St. Gallen SG Wahlkreis Wil 1728 Uzwil 3408 47.4464 9.0914 3 +CH 9500 Wil SG Kanton St. Gallen SG Wahlkreis Wil 1728 Wil (SG) 3427 47.4622 9.0517 4 +CH 9501 Wil SG 1 Kanton St. Gallen SG Wahlkreis Wil 1728 Wil (SG) 3427 47.4757 9.0518 +CH 9512 Rossrüti Kanton St. Gallen SG Wahlkreis Wil 1728 Wil (SG) 3427 47.4817 9.0721 4 +CH 9523 Züberwangen Kanton St. Gallen SG Wahlkreis Wil 1728 Zuzwil (SG) 3426 47.4652 9.0888 4 +CH 9524 Zuzwil SG Kanton St. Gallen SG Wahlkreis Wil 1728 Zuzwil (SG) 3426 47.475 9.1112 4 +CH 9525 Lenggenwil Kanton St. Gallen SG Wahlkreis Wil 1728 Niederhelfenschwil 3423 47.4713 9.1422 4 +CH 9526 Zuckenriet Kanton St. Gallen SG Wahlkreis Wil 1728 Niederhelfenschwil 3423 47.4868 9.1641 4 +CH 9527 Niederhelfenschwil Kanton St. Gallen SG Wahlkreis Wil 1728 Niederhelfenschwil 3423 47.4786 9.1855 4 +CH 9532 Rickenbach b. Wil Kanton St. Gallen SG Wahlkreis Wil 1728 Jonschwil 3405 47.4457 9.0487 3 +CH 9536 Schwarzenbach SG Kanton St. Gallen SG Wahlkreis Wil 1728 Jonschwil 3405 47.4406 9.0728 4 +CH 9552 Bronschhofen Kanton St. Gallen SG Wahlkreis Wil 1728 Wil (SG) 3427 47.481 9.0301 4 +CH 9604 Oberrindal Kanton St. Gallen SG Wahlkreis Wil 1728 Jonschwil 3405 47.4054 9.126 4 +CH 8213 Neunkirch Kanton Schaffhausen SH Bezirk Oberklettgau 1401 Neunkirch 2904 47.682 8.5118 4 +CH 8214 Gächlingen Kanton Schaffhausen SH Bezirk Oberklettgau 1401 Gächlingen 2901 47.7111 8.4965 4 +CH 8224 Löhningen Kanton Schaffhausen SH Bezirk Oberklettgau 1401 Löhningen 2903 47.7035 8.5465 4 +CH 8234 Stetten SH Kanton Schaffhausen SH Bezirk Reiat 1402 Stetten (SH) 2919 47.7384 8.6582 4 +CH 8235 Lohn SH Kanton Schaffhausen SH Bezirk Reiat 1402 Lohn (SH) 2917 47.7558 8.6704 4 +CH 8236 Opfertshofen SH Kanton Schaffhausen SH Bezirk Reiat 1402 Thayngen 2920 47.7725 8.6592 4 +CH 8236 Büttenhardt Kanton Schaffhausen SH Bezirk Reiat 1402 Büttenhardt 2914 47.7533 8.6445 4 +CH 8239 Dörflingen Kanton Schaffhausen SH Bezirk Reiat 1402 Dörflingen 2915 47.7101 8.717 4 +CH 8240 Thayngen Kanton Schaffhausen SH Bezirk Reiat 1402 Thayngen 2920 47.7431 8.7062 4 +CH 8241 Barzheim Kanton Schaffhausen SH Bezirk Reiat 1402 Thayngen 2920 47.7601 8.7176 4 +CH 8242 Hofen SH Kanton Schaffhausen SH Bezirk Reiat 1402 Thayngen 2920 47.7806 8.677 4 +CH 8242 Bibern SH Kanton Schaffhausen SH Bezirk Reiat 1402 Thayngen 2920 47.7689 8.6791 4 +CH 8243 Altdorf SH Kanton Schaffhausen SH Bezirk Reiat 1402 Thayngen 2920 47.7875 8.6568 4 +CH 8200 Schaffhausen Kanton Schaffhausen SH Bezirk Schaffhausen 1403 Schaffhausen 2939 47.7148 8.625 4 +CH 8201 Schaffhausen Kanton Schaffhausen SH Bezirk Schaffhausen 1403 Schaffhausen 2939 47.6973 8.6349 +CH 8203 Schaffhausen Kanton Schaffhausen SH Bezirk Schaffhausen 1403 Schaffhausen 2939 47.6992 8.6634 4 +CH 8207 Schaffhausen Kanton Schaffhausen SH Bezirk Schaffhausen 1403 Schaffhausen 2939 47.7228 8.673 4 +CH 8208 Schaffhausen Kanton Schaffhausen SH Bezirk Schaffhausen 1403 Schaffhausen 2939 47.7122 8.6354 4 +CH 8212 Neuhausen am Rheinfall Kanton Schaffhausen SH Bezirk Schaffhausen 1403 Neuhausen am Rheinfall 2937 47.6791 8.5992 4 +CH 8212 Neuhausen am Rheinfall 1 Kanton Schaffhausen SH Bezirk Schaffhausen 1403 Neuhausen am Rheinfall 2937 47.6792 8.5994 6 +CH 8222 Beringen Kanton Schaffhausen SH Bezirk Schaffhausen 1403 Beringen 2932 47.7044 8.5769 4 +CH 8223 Guntmadingen Kanton Schaffhausen SH Bezirk Schaffhausen 1403 Beringen 2932 47.6814 8.5572 4 +CH 8231 Hemmental Kanton Schaffhausen SH Bezirk Schaffhausen 1403 Schaffhausen 2939 47.7377 8.578 4 +CH 8232 Merishausen Kanton Schaffhausen SH Bezirk Schaffhausen 1403 Merishausen 2936 47.7629 8.5998 4 +CH 8233 Bargen SH Kanton Schaffhausen SH Bezirk Schaffhausen 1403 Bargen (SH) 2931 47.7934 8.5919 4 +CH 8454 Buchberg Kanton Schaffhausen SH Bezirk Schaffhausen 1403 Buchberg 2933 47.571 8.5526 4 +CH 8455 Rüdlingen Kanton Schaffhausen SH Bezirk Schaffhausen 1403 Rüdlingen 2938 47.5871 8.5669 4 +CH 8225 Siblingen Kanton Schaffhausen SH Bezirk Schleitheim 1404 Siblingen 2953 47.7234 8.5225 4 +CH 8226 Schleitheim Kanton Schaffhausen SH Bezirk Schleitheim 1404 Schleitheim 2952 47.7485 8.4948 4 +CH 8228 Beggingen Kanton Schaffhausen SH Bezirk Schleitheim 1404 Beggingen 2951 47.7652 8.5444 4 +CH 8260 Stein am Rhein 2 Stadt Kanton Schaffhausen SH Bezirk Stein 1405 Stein am Rhein 2964 47.6666 8.8578 +CH 8260 Stein am Rhein 1 Kanton Schaffhausen SH Bezirk Stein 1405 Stein am Rhein 2964 47.6666 8.8578 +CH 8260 Stein am Rhein Kanton Schaffhausen SH Bezirk Stein 1405 Stein am Rhein 2964 47.6661 8.8582 4 +CH 8261 Hemishofen Kanton Schaffhausen SH Bezirk Stein 1405 Hemishofen 2962 47.6883 8.841 4 +CH 8262 Ramsen Kanton Schaffhausen SH Bezirk Stein 1405 Ramsen 2963 47.7048 8.8147 4 +CH 8263 Buch SH Kanton Schaffhausen SH Bezirk Stein 1405 Buch (SH) 2961 47.7158 8.7846 4 +CH 8215 Hallau Kanton Schaffhausen SH Bezirk Unterklettgau 1406 Hallau 2971 47.7005 8.4432 4 +CH 8216 Oberhallau Kanton Schaffhausen SH Bezirk Unterklettgau 1406 Oberhallau 2972 47.7139 8.4734 4 +CH 8217 Wilchingen Kanton Schaffhausen SH Bezirk Unterklettgau 1406 Wilchingen 2974 47.665 8.4713 4 +CH 8218 Osterfingen Kanton Schaffhausen SH Bezirk Unterklettgau 1406 Wilchingen 2974 47.658 8.4971 4 +CH 8219 Trasadingen Kanton Schaffhausen SH Bezirk Unterklettgau 1406 Trasadingen 2973 47.67 8.4259 4 +CH 4622 Egerkingen Kanton Solothurn SO Bezirk Gäu 1101 Egerkingen 2401 47.3258 7.7964 4 +CH 4623 Neuendorf Kanton Solothurn SO Bezirk Gäu 1101 Neuendorf 2404 47.2971 7.8008 4 +CH 4624 Härkingen Kanton Solothurn SO Bezirk Gäu 1101 Härkingen 2402 47.3046 7.8214 4 +CH 4625 Oberbuchsiten Kanton Solothurn SO Bezirk Gäu 1101 Oberbuchsiten 2406 47.3122 7.7598 4 +CH 4626 Niederbuchsiten Kanton Solothurn SO Bezirk Gäu 1101 Niederbuchsiten 2405 47.2887 7.7782 4 +CH 4628 Wolfwil Kanton Solothurn SO Bezirk Gäu 1101 Wolfwil 2408 47.2701 7.7982 4 +CH 4702 Oensingen Kanton Solothurn SO Bezirk Gäu 1101 Oensingen 2407 47.2879 7.7228 4 +CH 4703 Kestenholz Kanton Solothurn SO Bezirk Gäu 1101 Kestenholz 2403 47.2763 7.7533 4 +CH 4710 Balsthal Kanton Solothurn SO Bezirk Thal 1102 Balsthal 2422 47.3143 7.7003 4 +CH 4712 Laupersdorf Kanton Solothurn SO Bezirk Thal 1102 Laupersdorf 2426 47.3128 7.6569 4 +CH 4713 Matzendorf Kanton Solothurn SO Bezirk Thal 1102 Matzendorf 2427 47.302 7.6282 4 +CH 4714 Aedermannsdorf Kanton Solothurn SO Bezirk Thal 1102 Aedermannsdorf 2421 47.306 7.6 4 +CH 4715 Herbetswil Kanton Solothurn SO Bezirk Thal 1102 Herbetswil 2424 47.2919 7.5735 4 +CH 4716 Gänsbrunnen Kanton Solothurn SO Bezirk Thal 1102 Welschenrohr-Gänsbrunnen 2430 47.2622 7.4669 4 +CH 4716 Welschenrohr Kanton Solothurn SO Bezirk Thal 1102 Welschenrohr-Gänsbrunnen 2430 47.2792 7.5232 4 +CH 4717 Mümliswil Kanton Solothurn SO Bezirk Thal 1102 Mümliswil-Ramiswil 2428 47.3456 7.6844 4 +CH 4718 Holderbank SO Kanton Solothurn SO Bezirk Thal 1102 Holderbank (SO) 2425 47.3327 7.7513 4 +CH 4719 Ramiswil Kanton Solothurn SO Bezirk Thal 1102 Mümliswil-Ramiswil 2428 47.3463 7.6337 4 +CH 3253 Schnottwil Kanton Solothurn SO Bezirk Bucheggberg 1103 Schnottwil 2461 47.1088 7.3912 4 +CH 3254 Messen Kanton Solothurn SO Bezirk Bucheggberg 1103 Messen 2457 47.0909 7.4496 4 +CH 3254 Balm b. Messen Kanton Solothurn SO Bezirk Bucheggberg 1103 Messen 2457 47.1045 7.4347 3 +CH 3307 Brunnenthal Kanton Solothurn SO Bezirk Bucheggberg 1103 Messen 2457 47.0853 7.4664 4 +CH 4571 Lüterkofen Kanton Solothurn SO Bezirk Bucheggberg 1103 Lüterkofen-Ichertswil 2455 47.1648 7.509 4 +CH 4571 Ichertswil Kanton Solothurn SO Bezirk Bucheggberg 1103 Lüterkofen-Ichertswil 2455 47.1598 7.4939 4 +CH 4574 Nennigkofen Kanton Solothurn SO Bezirk Bucheggberg 1103 Lüsslingen-Nennigkofen 2464 47.1829 7.4889 4 +CH 4574 Lüsslingen Kanton Solothurn SO Bezirk Bucheggberg 1103 Lüsslingen-Nennigkofen 2464 47.1914 7.5016 4 +CH 4576 Tscheppach Kanton Solothurn SO Bezirk Bucheggberg 1103 Buchegg 2465 47.1484 7.4818 4 +CH 4577 Hessigkofen Kanton Solothurn SO Bezirk Bucheggberg 1103 Buchegg 2465 47.139 7.4597 4 +CH 4578 Bibern SO Kanton Solothurn SO Bezirk Bucheggberg 1103 Buchegg 2465 47.1479 7.454 4 +CH 4579 Gossliwil Kanton Solothurn SO Bezirk Bucheggberg 1103 Buchegg 2465 47.1367 7.4345 4 +CH 4581 Küttigkofen Kanton Solothurn SO Bezirk Bucheggberg 1103 Buchegg 2465 47.1516 7.513 4 +CH 4582 Brügglen Kanton Solothurn SO Bezirk Bucheggberg 1103 Buchegg 2465 47.1439 7.4955 4 +CH 4583 Aetigkofen Kanton Solothurn SO Bezirk Bucheggberg 1103 Buchegg 2465 47.1235 7.4642 4 +CH 4583 Mühledorf SO Kanton Solothurn SO Bezirk Bucheggberg 1103 Buchegg 2465 47.1331 7.4755 4 +CH 4584 Gächliwil Kanton Solothurn SO Bezirk Bucheggberg 1103 Lüterswil-Gächliwil 2456 47.1273 7.4453 4 +CH 4584 Lüterswil Kanton Solothurn SO Bezirk Bucheggberg 1103 Lüterswil-Gächliwil 2456 47.1177 7.4407 4 +CH 4585 Biezwil Kanton Solothurn SO Bezirk Bucheggberg 1103 Biezwil 2445 47.1118 7.4191 4 +CH 4586 Kyburg-Buchegg Kanton Solothurn SO Bezirk Bucheggberg 1103 Buchegg 2465 47.1423 7.5137 4 +CH 4587 Aetingen Kanton Solothurn SO Bezirk Bucheggberg 1103 Buchegg 2465 47.1295 7.5009 4 +CH 4588 Unterramsern Kanton Solothurn SO Bezirk Bucheggberg 1103 Unterramsern 2463 47.1189 7.4808 4 +CH 4588 Oberramsern Kanton Solothurn SO Bezirk Bucheggberg 1103 Messen 2457 47.1134 7.4618 3 +CH 4588 Brittern Kanton Solothurn SO Bezirk Bucheggberg 1103 Buchegg 2465 47.121 7.494 4 +CH 4108 Witterswil Kanton Solothurn SO Bezirk Dorneck 1104 Witterswil 2481 47.4873 7.5261 4 +CH 4112 Bättwil-Flüh Kanton Solothurn SO Bezirk Dorneck 1104 Bättwil 2471 47.4916 7.51 6 +CH 4112 Flüh Kanton Solothurn SO Bezirk Dorneck 1104 Hofstetten-Flüh 2476 47.483 7.4984 4 +CH 4112 Bättwil Kanton Solothurn SO Bezirk Dorneck 1104 Bättwil 2471 47.4918 7.5105 4 +CH 4114 Hofstetten SO Kanton Solothurn SO Bezirk Dorneck 1104 Hofstetten-Flüh 2476 47.4703 7.51 4 +CH 4115 Mariastein Kanton Solothurn SO Bezirk Dorneck 1104 Metzerlen-Mariastein 2477 47.4759 7.4844 4 +CH 4116 Metzerlen Kanton Solothurn SO Bezirk Dorneck 1104 Metzerlen-Mariastein 2477 47.4637 7.4682 4 +CH 4118 Rodersdorf Kanton Solothurn SO Bezirk Dorneck 1104 Rodersdorf 2479 47.4846 7.4463 4 +CH 4143 Dornach Kanton Solothurn SO Bezirk Dorneck 1104 Dornach 2473 47.4766 7.6243 4 +CH 4145 Gempen Kanton Solothurn SO Bezirk Dorneck 1104 Gempen 2474 47.4784 7.6591 4 +CH 4146 Hochwald Kanton Solothurn SO Bezirk Dorneck 1104 Hochwald 2475 47.4545 7.6396 4 +CH 4206 Seewen SO Kanton Solothurn SO Bezirk Dorneck 1104 Seewen 2480 47.4263 7.6475 4 +CH 4412 Nuglar Kanton Solothurn SO Bezirk Dorneck 1104 Nuglar-St. Pantaleon 2478 47.4721 7.6887 4 +CH 4413 Büren SO Kanton Solothurn SO Bezirk Dorneck 1104 Büren (SO) 2472 47.4478 7.6733 4 +CH 4421 St. Pantaleon Kanton Solothurn SO Bezirk Dorneck 1104 Nuglar-St. Pantaleon 2478 47.459 7.689 4 +CH 4468 Kienberg Kanton Solothurn SO Bezirk Gösgen 1105 Kienberg 2492 47.4403 7.9672 4 +CH 4632 Trimbach Kanton Solothurn SO Bezirk Gösgen 1105 Trimbach 2500 47.3687 7.8889 4 +CH 4633 Hauenstein Kanton Solothurn SO Bezirk Gösgen 1105 Hauenstein-Ifenthal 2491 47.3713 7.8558 4 +CH 4634 Wisen SO Kanton Solothurn SO Bezirk Gösgen 1105 Wisen (SO) 2502 47.3938 7.8936 4 +CH 4652 Winznau Kanton Solothurn SO Bezirk Gösgen 1105 Winznau 2501 47.3682 7.9288 4 +CH 4653 Obergösgen Kanton Solothurn SO Bezirk Gösgen 1105 Obergösgen 2497 47.3642 7.9541 4 +CH 4654 Lostorf Kanton Solothurn SO Bezirk Gösgen 1105 Lostorf 2493 47.3872 7.9349 4 +CH 4655 Rohr b. Olten Kanton Solothurn SO Bezirk Gösgen 1105 Stüsslingen 2499 47.4108 7.9531 3 +CH 4655 Stüsslingen Kanton Solothurn SO Bezirk Gösgen 1105 Stüsslingen 2499 47.3948 7.9699 4 +CH 5013 Niedergösgen Kanton Solothurn SO Bezirk Gösgen 1105 Niedergösgen 2495 47.3736 7.984 4 +CH 5015 Erlinsbach SO Kanton Solothurn SO Bezirk Gösgen 1105 Erlinsbach (SO) 2503 47.3983 7.9959 4 +CH 4528 Zuchwil Kanton Solothurn SO Bezirk Wasseramt 1106 Zuchwil 2534 47.2047 7.5634 4 +CH 4542 Luterbach Kanton Solothurn SO Bezirk Wasseramt 1106 Luterbach 2527 47.2175 7.5881 4 +CH 4543 Deitingen Kanton Solothurn SO Bezirk Wasseramt 1106 Deitingen 2516 47.2177 7.6223 4 +CH 4552 Derendingen Kanton Solothurn SO Bezirk Wasseramt 1106 Derendingen 2517 47.192 7.5897 4 +CH 4553 Subingen Kanton Solothurn SO Bezirk Wasseramt 1106 Subingen 2532 47.2001 7.6237 4 +CH 4554 Hüniken Kanton Solothurn SO Bezirk Wasseramt 1106 Hüniken 2524 47.1834 7.6357 4 +CH 4554 Etziken Kanton Solothurn SO Bezirk Wasseramt 1106 Etziken 2518 47.1879 7.6458 4 +CH 4556 Steinhof SO Kanton Solothurn SO Bezirk Wasseramt 1106 Aeschi (SO) 2511 47.1591 7.6864 4 +CH 4556 Aeschi SO Kanton Solothurn SO Bezirk Wasseramt 1106 Aeschi (SO) 2511 47.1759 7.6604 4 +CH 4556 Burgäschi Kanton Solothurn SO Bezirk Wasseramt 1106 Aeschi (SO) 2511 47.1725 7.67 3 +CH 4556 Bolken Kanton Solothurn SO Bezirk Wasseramt 1106 Bolken 2514 47.1931 7.6619 4 +CH 4557 Horriwil Kanton Solothurn SO Bezirk Wasseramt 1106 Horriwil 2523 47.1803 7.6256 4 +CH 4558 Heinrichswil Kanton Solothurn SO Bezirk Wasseramt 1106 Drei Höfe 2535 47.1582 7.6307 4 +CH 4558 Hersiwil Kanton Solothurn SO Bezirk Wasseramt 1106 Drei Höfe 2535 47.1663 7.6351 4 +CH 4558 Winistorf Kanton Solothurn SO Bezirk Wasseramt 1106 Drei Höfe 2535 47.1578 7.6466 4 +CH 4562 Biberist Kanton Solothurn SO Bezirk Wasseramt 1106 Biberist 2513 47.1827 7.5498 4 +CH 4563 Gerlafingen Kanton Solothurn SO Bezirk Wasseramt 1106 Gerlafingen 2519 47.1706 7.5725 4 +CH 4564 Obergerlafingen Kanton Solothurn SO Bezirk Wasseramt 1106 Obergerlafingen 2528 47.1611 7.5841 4 +CH 4565 Recherswil Kanton Solothurn SO Bezirk Wasseramt 1106 Recherswil 2530 47.1598 7.6015 4 +CH 4566 Kriegstetten Kanton Solothurn SO Bezirk Wasseramt 1106 Kriegstetten 2525 47.1749 7.595 4 +CH 4566 Halten Kanton Solothurn SO Bezirk Wasseramt 1106 Halten 2520 47.1682 7.6119 4 +CH 4566 Oekingen Kanton Solothurn SO Bezirk Wasseramt 1106 Oekingen 2529 47.1787 7.6119 4 +CH 4573 Lohn-Ammannsegg Kanton Solothurn SO Bezirk Wasseramt 1106 Lohn-Ammannsegg 2526 47.1724 7.5278 4 +CH 2540 Grenchen 1 Kanton Solothurn SO Bezirk Lebern 1107 Grenchen 2546 47.1972 7.3875 +CH 2540 Grenchen Kanton Solothurn SO Bezirk Lebern 1107 Grenchen 2546 47.1972 7.3876 4 +CH 2544 Bettlach Kanton Solothurn SO Bezirk Lebern 1107 Bettlach 2543 47.2085 7.4189 4 +CH 2545 Selzach Kanton Solothurn SO Bezirk Lebern 1107 Selzach 2556 47.2175 7.4481 4 +CH 4512 Bellach Kanton Solothurn SO Bezirk Lebern 1107 Bellach 2542 47.211 7.4947 4 +CH 4513 Langendorf Kanton Solothurn SO Bezirk Lebern 1107 Langendorf 2550 47.2216 7.5153 4 +CH 4514 Lommiswil Kanton Solothurn SO Bezirk Lebern 1107 Lommiswil 2551 47.2284 7.4679 4 +CH 4515 Oberdorf SO Kanton Solothurn SO Bezirk Lebern 1107 Oberdorf (SO) 2553 47.2324 7.4984 4 +CH 4515 Weissenstein b. Solothurn Kanton Solothurn SO Bezirk Lebern 1107 Oberdorf (SO) 2553 47.2472 7.4852 3 +CH 4522 Rüttenen Kanton Solothurn SO Bezirk Lebern 1107 Rüttenen 2555 47.2408 7.5317 4 +CH 4523 Niederwil SO Kanton Solothurn SO Bezirk Lebern 1107 Riedholz 2554 47.247 7.569 4 +CH 4524 Oberbalmberg Kanton Solothurn SO Bezirk Lebern 1107 Balm bei Günsberg 2541 47.2649 7.5385 3 +CH 4524 Günsberg Kanton Solothurn SO Bezirk Lebern 1107 Günsberg 2547 47.2622 7.5746 4 +CH 4524 Balmberg Kanton Solothurn SO Bezirk Lebern 1107 Balm bei Günsberg 2541 47.2685 7.5515 4 +CH 4525 Balm b. Günsberg Kanton Solothurn SO Bezirk Lebern 1107 Balm bei Günsberg 2541 47.2582 7.5432 4 +CH 4532 Feldbrunnen Kanton Solothurn SO Bezirk Lebern 1107 Feldbrunnen-St. Niklaus 2544 47.2249 7.5521 4 +CH 4533 Riedholz Kanton Solothurn SO Bezirk Lebern 1107 Riedholz 2554 47.2319 7.5701 4 +CH 4534 Flumenthal Kanton Solothurn SO Bezirk Lebern 1107 Flumenthal 2545 47.2351 7.6007 4 +CH 4535 Hubersdorf Kanton Solothurn SO Bezirk Lebern 1107 Hubersdorf 2548 47.245 7.5887 4 +CH 4535 Kammersrohr Kanton Solothurn SO Bezirk Lebern 1107 Kammersrohr 2549 47.2567 7.5923 4 +CH 4600 Olten Kanton Solothurn SO Bezirk Olten 1108 Olten 2581 47.3458 7.9009 4 +CH 4601 Olten 1 Fächer Kanton Solothurn SO Bezirk Olten 1108 Olten 2581 47.3448 7.9001 +CH 4605 Olten Kanton Solothurn SO Bezirk Olten 1108 Olten 2581 47.35 7.9033 4 +CH 4609 Olten Sonderdienste Kanton Solothurn SO Bezirk Olten 1108 Olten 2581 47.3448 7.9001 +CH 4609 Olten Kanton Solothurn SO Bezirk Olten 1108 Olten 2581 47.3448 7.9001 +CH 4612 Wangen b. Olten Kanton Solothurn SO Bezirk Olten 1108 Wangen bei Olten 2586 47.3421 7.8717 4 +CH 4613 Rickenbach SO Kanton Solothurn SO Bezirk Olten 1108 Rickenbach (SO) 2582 47.3426 7.8552 4 +CH 4614 Hägendorf Kanton Solothurn SO Bezirk Olten 1108 Hägendorf 2579 47.3446 7.8264 4 +CH 4615 Allerheiligenberg Kanton Solothurn SO Bezirk Olten 1108 Hägendorf 2579 47.3523 7.8149 4 +CH 4616 Kappel SO Kanton Solothurn SO Bezirk Olten 1108 Kappel (SO) 2580 47.321 7.8573 4 +CH 4617 Gunzgen Kanton Solothurn SO Bezirk Olten 1108 Gunzgen 2578 47.3121 7.8355 4 +CH 4618 Boningen Kanton Solothurn SO Bezirk Olten 1108 Boningen 2571 47.3036 7.8543 4 +CH 4629 Fulenbach Kanton Solothurn SO Bezirk Olten 1108 Fulenbach 2575 47.2808 7.8327 4 +CH 4656 Starrkirch-Wil Kanton Solothurn SO Bezirk Olten 1108 Starrkirch-Wil 2584 47.3419 7.927 4 +CH 4657 Dulliken Kanton Solothurn SO Bezirk Olten 1108 Dulliken 2573 47.3473 7.9454 4 +CH 4658 Däniken SO Kanton Solothurn SO Bezirk Olten 1108 Däniken 2572 47.3488 7.9777 4 +CH 5012 Schönenwerd Kanton Solothurn SO Bezirk Olten 1108 Schönenwerd 2583 47.3732 8.0095 4 +CH 5012 Wöschnau Kanton Solothurn SO Bezirk Olten 1108 Eppenberg-Wöschnau 2574 47.3844 8.0251 4 +CH 5012 Eppenberg Kanton Solothurn SO Bezirk Olten 1108 Eppenberg-Wöschnau 2574 47.3741 8.0238 4 +CH 5014 Gretzenbach Kanton Solothurn SO Bezirk Olten 1108 Gretzenbach 2576 47.3541 7.9996 4 +CH 5746 Walterswil SO Kanton Solothurn SO Bezirk Olten 1108 Walterswil (SO) 2585 47.3305 7.9632 4 +CH 4500 Solothurn Kanton Solothurn SO Bezirk Solothurn 1109 Solothurn 2601 47.2062 7.5295 4 +CH 4501 Solothurn Kanton Solothurn SO Bezirk Solothurn 1109 Solothurn 2601 47.2084 7.5301 +CH 4502 Solothurn Kanton Solothurn SO Bezirk Solothurn 1109 Solothurn 2601 47.2079 7.5371 +CH 4503 Solothurn Kanton Solothurn SO Bezirk Solothurn 1109 Solothurn 2601 47.2079 7.5371 +CH 4509 Solothurn Kanton Solothurn SO Bezirk Solothurn 1109 Solothurn 2601 47.2079 7.5371 +CH 4204 Himmelried Kanton Solothurn SO Bezirk Thierstein 1110 Himmelried 2618 47.423 7.5939 4 +CH 4208 Nunningen Kanton Solothurn SO Bezirk Thierstein 1110 Nunningen 2621 47.3977 7.6166 4 +CH 4226 Breitenbach Kanton Solothurn SO Bezirk Thierstein 1110 Breitenbach 2613 47.4061 7.5512 4 +CH 4227 Büsserach Kanton Solothurn SO Bezirk Thierstein 1110 Büsserach 2614 47.3897 7.5447 4 +CH 4228 Erschwil Kanton Solothurn SO Bezirk Thierstein 1110 Erschwil 2615 47.3716 7.5445 4 +CH 4229 Beinwil SO Kanton Solothurn SO Bezirk Thierstein 1110 Beinwil (SO) 2612 47.3578 7.5951 4 +CH 4232 Fehren Kanton Solothurn SO Bezirk Thierstein 1110 Fehren 2616 47.4027 7.5786 4 +CH 4233 Meltingen Kanton Solothurn SO Bezirk Thierstein 1110 Meltingen 2620 47.3795 7.5884 4 +CH 4234 Zullwil Kanton Solothurn SO Bezirk Thierstein 1110 Zullwil 2622 47.388 7.6036 4 +CH 4245 Kleinlützel Kanton Solothurn SO Bezirk Thierstein 1110 Kleinlützel 2619 47.4266 7.4179 4 +CH 4247 Grindel Kanton Solothurn SO Bezirk Thierstein 1110 Grindel 2617 47.3797 7.5073 4 +CH 4252 Bärschwil Kanton Solothurn SO Bezirk Thierstein 1110 Bärschwil 2611 47.3851 7.4659 4 +CH 4252 Bärschwil Dorf Kanton Solothurn SO Bezirk Thierstein 1110 Bärschwil 2611 47.385 7.4657 +CH 8836 Bennau Kanton Schwyz SZ Bezirk Einsiedeln 501 Einsiedeln 1301 47.1506 8.7145 4 +CH 8840 Einsiedeln Kanton Schwyz SZ Bezirk Einsiedeln 501 Einsiedeln 1301 47.1316 8.7441 4 +CH 8840 Trachslau Kanton Schwyz SZ Bezirk Einsiedeln 501 Einsiedeln 1301 47.1033 8.7274 4 +CH 8841 Gross Kanton Schwyz SZ Bezirk Einsiedeln 501 Einsiedeln 1301 47.0969 8.7628 4 +CH 8844 Euthal Kanton Schwyz SZ Bezirk Einsiedeln 501 Einsiedeln 1301 47.0903 8.8293 4 +CH 8846 Willerzell Kanton Schwyz SZ Bezirk Einsiedeln 501 Einsiedeln 1301 47.1299 8.8105 4 +CH 8847 Egg SZ Kanton Schwyz SZ Bezirk Einsiedeln 501 Einsiedeln 1301 47.161 8.7773 4 +CH 6410 Rigi Scheidegg Kanton Schwyz SZ Bezirk Gersau 502 Gersau 1311 47.0257 8.5187 4 +CH 6442 Gersau Kanton Schwyz SZ Bezirk Gersau 502 Gersau 1311 46.9977 8.5198 4 +CH 8640 Hurden Kanton Schwyz SZ Bezirk Höfe 503 Freienbach 1322 47.2129 8.8026 4 +CH 8806 Bäch SZ Kanton Schwyz SZ Bezirk Höfe 503 Freienbach 1322 47.2043 8.7308 4 +CH 8807 Freienbach Kanton Schwyz SZ Bezirk Höfe 503 Freienbach 1322 47.207 8.7571 4 +CH 8808 Pfäffikon SZ Kanton Schwyz SZ Bezirk Höfe 503 Freienbach 1322 47.1976 8.7832 4 +CH 8832 Wilen b. Wollerau Kanton Schwyz SZ Bezirk Höfe 503 Freienbach 1322 47.1958 8.7349 3 +CH 8832 Wollerau Kanton Schwyz SZ Bezirk Höfe 503 Wollerau 1323 47.1907 8.7051 4 +CH 8832 Wollerau Kanton Schwyz SZ Bezirk Höfe 503 Freienbach 1322 47.1907 8.7051 4 +CH 8834 Schindellegi Kanton Schwyz SZ Bezirk Höfe 503 Feusisberg 1321 47.1736 8.711 4 +CH 8835 Feusisberg Kanton Schwyz SZ Bezirk Höfe 503 Feusisberg 1321 47.1812 8.7516 4 +CH 6402 Merlischachen Kanton Schwyz SZ Bezirk Küssnacht 504 Küssnacht (SZ) 1331 47.0704 8.4065 4 +CH 6403 Küssnacht am Rigi Kanton Schwyz SZ Bezirk Küssnacht 504 Küssnacht (SZ) 1331 47.0789 8.4457 4 +CH 6405 Immensee Kanton Schwyz SZ Bezirk Küssnacht 504 Küssnacht (SZ) 1331 47.094 8.4748 4 +CH 8852 Altendorf Kanton Schwyz SZ Bezirk March 505 Altendorf 1341 47.1765 8.8278 4 +CH 8853 Lachen SZ Kanton Schwyz SZ Bezirk March 505 Lachen 1344 47.197 8.8542 4 +CH 8854 Siebnen Kanton Schwyz SZ Bezirk March 505 Schübelbach 1346 47.1486 8.9229 4 +CH 8854 Galgenen Kanton Schwyz SZ Bezirk March 505 Galgenen 1342 47.1673 8.8678 4 +CH 8855 Wangen SZ Kanton Schwyz SZ Bezirk March 505 Wangen (SZ) 1349 47.1988 8.8911 4 +CH 8856 Tuggen Kanton Schwyz SZ Bezirk March 505 Tuggen 1347 47.2014 8.9385 4 +CH 8857 Vorderthal Kanton Schwyz SZ Bezirk March 505 Vorderthal 1348 47.1263 8.8893 4 +CH 8858 Innerthal Kanton Schwyz SZ Bezirk March 505 Innerthal 1343 47.0756 8.9172 4 +CH 8862 Schübelbach Kanton Schwyz SZ Bezirk March 505 Schübelbach 1346 47.1746 8.9271 4 +CH 8863 Buttikon SZ Kanton Schwyz SZ Bezirk March 505 Schübelbach 1346 47.1674 8.9471 4 +CH 8864 Reichenburg Kanton Schwyz SZ Bezirk March 505 Reichenburg 1345 47.161 8.9733 4 +CH 6410 Rigi Klösterli Kanton Schwyz SZ Bezirk Schwyz 506 Arth 1362 47.0432 8.4982 4 +CH 6410 Goldau Kanton Schwyz SZ Bezirk Schwyz 506 Arth 1362 47.0433 8.5468 4 +CH 6410 Rigi Kulm Kanton Schwyz SZ Bezirk Schwyz 506 Arth 1362 47.0562 8.4904 4 +CH 6410 Rigi Staffel Kanton Schwyz SZ Bezirk Schwyz 506 Arth 1362 47.05 8.476 4 +CH 6414 Oberarth Kanton Schwyz SZ Bezirk Schwyz 506 Arth 1362 47.0543 8.5335 4 +CH 6415 Arth Kanton Schwyz SZ Bezirk Schwyz 506 Arth 1362 47.0749 8.5245 4 +CH 6416 Steinerberg Kanton Schwyz SZ Bezirk Schwyz 506 Steinerberg 1374 47.0674 8.5808 4 +CH 6417 Sattel Kanton Schwyz SZ Bezirk Schwyz 506 Sattel 1371 47.08 8.6312 4 +CH 6418 Rothenthurm Kanton Schwyz SZ Bezirk Schwyz 506 Rothenthurm 1370 47.1019 8.6804 4 +CH 6422 Steinen Kanton Schwyz SZ Bezirk Schwyz 506 Steinen 1373 47.0517 8.6095 4 +CH 6423 Seewen SZ Kanton Schwyz SZ Bezirk Schwyz 506 Schwyz 1372 47.0328 8.6281 4 +CH 6424 Lauerz Kanton Schwyz SZ Bezirk Schwyz 506 Lauerz 1365 47.0248 8.5805 4 +CH 6430 Schwyz Kanton Schwyz SZ Bezirk Schwyz 506 Schwyz 1372 47.0346 8.6667 4 +CH 6431 Schwyz Kanton Schwyz SZ Bezirk Schwyz 506 Schwyz 1372 47.0208 8.6541 +CH 6432 Rickenbach b. Schwyz Kanton Schwyz SZ Bezirk Schwyz 506 Schwyz 1372 47.011 8.6928 1 +CH 6433 Stoos SZ Kanton Schwyz SZ Bezirk Schwyz 506 Morschach 1366 46.97 8.6717 4 +CH 6434 Illgau Kanton Schwyz SZ Bezirk Schwyz 506 Illgau 1363 46.9965 8.7399 4 +CH 6436 Bisisthal Kanton Schwyz SZ Bezirk Schwyz 506 Muotathal 1367 46.9296 8.8692 4 +CH 6436 Muotathal Kanton Schwyz SZ Bezirk Schwyz 506 Muotathal 1367 46.9636 8.8079 4 +CH 6436 Ried (Muotathal) Kanton Schwyz SZ Bezirk Schwyz 506 Muotathal 1367 46.982 8.71 4 +CH 6438 Ibach Kanton Schwyz SZ Bezirk Schwyz 506 Schwyz 1372 47.0025 8.6469 4 +CH 6440 Brunnen Kanton Schwyz SZ Bezirk Schwyz 506 Ingenbohl 1364 47.0009 8.5956 4 +CH 6443 Morschach Kanton Schwyz SZ Bezirk Schwyz 506 Morschach 1366 46.9748 8.621 4 +CH 6452 Riemenstalden Kanton Schwyz SZ Bezirk Schwyz 506 Riemenstalden 1369 46.938 8.6855 4 +CH 8842 Unteriberg Kanton Schwyz SZ Bezirk Schwyz 506 Unteriberg 1375 47.0415 8.8079 4 +CH 8843 Oberiberg Kanton Schwyz SZ Bezirk Schwyz 506 Oberiberg 1368 47.0308 8.7617 4 +CH 8845 Studen SZ Kanton Schwyz SZ Bezirk Schwyz 506 Unteriberg 1375 47.0436 8.8589 4 +CH 8849 Alpthal Kanton Schwyz SZ Bezirk Schwyz 506 Alpthal 1361 47.0578 8.7145 4 +CH 8580 Hefenhofen Kanton Thurgau TG Arbon District 2011 Hefenhofen 4416 47.5613 9.3131 4 +CH 8580 Biessenhofen Kanton Thurgau TG Arbon District 2011 Amriswil 4461 47.5454 9.2584 4 +CH 8580 Hagenwil b. Amriswil Kanton Thurgau TG Arbon District 2011 Amriswil 4461 47.5292 9.3065 3 +CH 8580 Amriswil Kanton Thurgau TG Arbon District 2011 Amriswil 4461 47.5411 9.2981 4 +CH 8580 Sommeri Kanton Thurgau TG Arbon District 2011 Sommeri 4446 47.5713 9.2839 4 +CH 8581 Schocherswil Kanton Thurgau TG Arbon District 2011 Amriswil 4461 47.5361 9.2644 4 +CH 8582 Dozwil Kanton Thurgau TG Arbon District 2011 Dozwil 4406 47.5761 9.3191 4 +CH 8587 Oberaach Kanton Thurgau TG Arbon District 2011 Amriswil 4461 47.5597 9.2726 4 +CH 8590 Romanshorn Kanton Thurgau TG Arbon District 2011 Romanshorn 4436 47.5805 9.3897 4 +CH 8592 Uttwil Kanton Thurgau TG Arbon District 2011 Uttwil 4451 47.5994 9.3554 4 +CH 8593 Kesswil Kanton Thurgau TG Arbon District 2011 Kesswil 4426 47.6029 9.3264 4 +CH 8599 Salmsach Kanton Thurgau TG Arbon District 2011 Salmsach 4441 47.5544 9.3736 4 +CH 9306 Freidorf TG Kanton Thurgau TG Arbon District 2011 Roggwil (TG) 4431 47.4854 9.3858 4 +CH 9314 Steinebrunn Kanton Thurgau TG Arbon District 2011 Egnach 4411 47.5338 9.3438 4 +CH 9315 Winden Kanton Thurgau TG Arbon District 2011 Egnach 4411 47.5097 9.3577 4 +CH 9315 Neukirch (Egnach) Kanton Thurgau TG Arbon District 2011 Egnach 4411 47.5263 9.3716 4 +CH 9320 Arbon Kanton Thurgau TG Arbon District 2011 Arbon 4401 47.5331 9.4531 4 +CH 9320 Stachen Kanton Thurgau TG Arbon District 2011 Arbon 4401 47.5088 9.4108 4 +CH 9320 Frasnacht Kanton Thurgau TG Arbon District 2011 Arbon 4401 47.5444 9.4333 4 +CH 9322 Egnach Kanton Thurgau TG Arbon District 2011 Egnach 4411 47.5529 9.4079 4 +CH 9325 Roggwil TG Kanton Thurgau TG Arbon District 2011 Roggwil (TG) 4431 47.5057 9.3928 4 +CH 9326 Horn Kanton Thurgau TG Arbon District 2011 Horn 4421 47.5159 9.4839 4 +CH 8252 Schlatt TG Kanton Thurgau TG Frauenfeld District 2012 Schlatt (TG) 4546 47.6672 8.6989 4 +CH 8253 Diessenhofen Kanton Thurgau TG Frauenfeld District 2012 Diessenhofen 4545 47.6812 8.746 4 +CH 8253 Willisdorf Kanton Thurgau TG Frauenfeld District 2012 Diessenhofen 4545 47.6798 8.7378 4 +CH 8254 Basadingen Kanton Thurgau TG Frauenfeld District 2012 Basadingen-Schlattingen 4536 47.6607 8.7403 4 +CH 8255 Schlattingen Kanton Thurgau TG Frauenfeld District 2012 Basadingen-Schlattingen 4536 47.6605 8.7691 4 +CH 8259 Wagenhausen Kanton Thurgau TG Frauenfeld District 2012 Wagenhausen 4871 47.6629 8.8381 4 +CH 8259 Rheinklingen Kanton Thurgau TG Frauenfeld District 2012 Wagenhausen 4871 47.6709 8.8144 4 +CH 8259 Etzwilen Kanton Thurgau TG Frauenfeld District 2012 Wagenhausen 4871 47.6571 8.8169 4 +CH 8259 Kaltenbach Kanton Thurgau TG Frauenfeld District 2012 Wagenhausen 4871 47.6459 8.8376 4 +CH 8264 Eschenz Kanton Thurgau TG Frauenfeld District 2012 Eschenz 4806 47.6365 8.8756 4 +CH 8265 Mammern Kanton Thurgau TG Frauenfeld District 2012 Mammern 4826 47.6467 8.9214 4 +CH 8266 Steckborn Kanton Thurgau TG Frauenfeld District 2012 Steckborn 4864 47.6604 8.9866 4 +CH 8267 Berlingen Kanton Thurgau TG Frauenfeld District 2012 Berlingen 4801 47.6733 9.0259 4 +CH 8500 Gerlikon Kanton Thurgau TG Frauenfeld District 2012 Frauenfeld 4566 47.5353 8.8801 4 +CH 8500 Frauenfeld Kanton Thurgau TG Frauenfeld District 2012 Frauenfeld 4566 47.5598 8.8977 4 +CH 8501 Frauenfeld Kanton Thurgau TG Frauenfeld District 2012 Frauenfeld 4566 47.5578 8.8989 +CH 8502 Frauenfeld Kanton Thurgau TG Frauenfeld District 2012 Frauenfeld 4566 47.558 8.8964 +CH 8503 Frauenfeld Kanton Thurgau TG Frauenfeld District 2012 Frauenfeld 4566 47.558 8.8964 +CH 8505 Pfyn Kanton Thurgau TG Frauenfeld District 2012 Pfyn 4841 47.599 8.9519 4 +CH 8505 Dettighofen Kanton Thurgau TG Frauenfeld District 2012 Pfyn 4841 47.618 8.9553 4 +CH 8506 Lanzenneunforn Kanton Thurgau TG Frauenfeld District 2012 Herdern 4811 47.6239 8.9336 4 +CH 8507 Hörhausen Kanton Thurgau TG Frauenfeld District 2012 Homburg 4816 47.6416 8.9714 4 +CH 8508 Homburg Kanton Thurgau TG Frauenfeld District 2012 Homburg 4816 47.6292 8.9995 4 +CH 8509 Frauenfeld Kanton Thurgau TG Frauenfeld District 2012 Frauenfeld 4566 47.5578 8.8989 +CH 8510 Frauenfeld Kant. Verwaltung Kanton Thurgau TG Frauenfeld District 2012 Frauenfeld 4566 47.558 8.8964 +CH 8510 Frauenfeld Kanton Thurgau TG Frauenfeld District 2012 Frauenfeld 4566 47.558 8.8964 +CH 8512 Thundorf Kanton Thurgau TG Frauenfeld District 2012 Thundorf 4611 47.5472 8.9642 4 +CH 8512 Wetzikon TG Kanton Thurgau TG Frauenfeld District 2012 Thundorf 4611 47.5385 8.9982 4 +CH 8512 Lustdorf Kanton Thurgau TG Frauenfeld District 2012 Thundorf 4611 47.5548 8.9882 4 +CH 8524 Buch b. Frauenfeld Kanton Thurgau TG Frauenfeld District 2012 Uesslingen-Buch 4616 47.5973 8.8378 4 +CH 8524 Uesslingen Kanton Thurgau TG Frauenfeld District 2012 Uesslingen-Buch 4616 47.5822 8.824 4 +CH 8525 Wilen b. Neunforn Kanton Thurgau TG Frauenfeld District 2012 Neunforn 4601 47.6013 8.7972 3 +CH 8525 Niederneunforn Kanton Thurgau TG Frauenfeld District 2012 Neunforn 4601 47.5944 8.7781 4 +CH 8526 Oberneunforn Kanton Thurgau TG Frauenfeld District 2012 Neunforn 4601 47.6083 8.7627 4 +CH 8532 Weiningen TG Kanton Thurgau TG Frauenfeld District 2012 Warth-Weiningen 4621 47.5905 8.8983 4 +CH 8532 Warth Kanton Thurgau TG Frauenfeld District 2012 Warth-Weiningen 4621 47.5857 8.8697 4 +CH 8535 Herdern Kanton Thurgau TG Frauenfeld District 2012 Herdern 4811 47.6105 8.9102 4 +CH 8536 Hüttwilen Kanton Thurgau TG Frauenfeld District 2012 Hüttwilen 4821 47.6109 8.8696 4 +CH 8537 Uerschhausen Kanton Thurgau TG Frauenfeld District 2012 Hüttwilen 4821 47.6089 8.8169 4 +CH 8537 Nussbaumen TG Kanton Thurgau TG Frauenfeld District 2012 Hüttwilen 4821 47.624 8.8299 4 +CH 8546 Kefikon TG Kanton Thurgau TG Frauenfeld District 2012 Gachnang 4571 47.5527 8.8348 3 +CH 8546 Islikon Kanton Thurgau TG Frauenfeld District 2012 Gachnang 4571 47.5509 8.8449 4 +CH 8547 Gachnang Kanton Thurgau TG Frauenfeld District 2012 Gachnang 4571 47.5381 8.8552 4 +CH 8552 Felben-Wellhausen Kanton Thurgau TG Frauenfeld District 2012 Felben-Wellhausen 4561 47.577 8.94 4 +CH 8553 Eschikofen Kanton Thurgau TG Frauenfeld District 2012 Hüttlingen 4590 47.5804 9.0047 4 +CH 8553 Hüttlingen Kanton Thurgau TG Frauenfeld District 2012 Hüttlingen 4590 47.5785 8.9844 4 +CH 8553 Mettendorf TG Kanton Thurgau TG Frauenfeld District 2012 Hüttlingen 4590 47.5777 8.9664 4 +CH 8553 Harenwilen Kanton Thurgau TG Frauenfeld District 2012 Hüttlingen 4590 47.5683 9.0013 4 +CH 8555 Müllheim Dorf Kanton Thurgau TG Frauenfeld District 2012 Müllheim 4831 47.6028 9.0037 4 +CH 9507 Stettfurt Kanton Thurgau TG Frauenfeld District 2012 Stettfurt 4606 47.525 8.9585 4 +CH 9548 Matzingen Kanton Thurgau TG Frauenfeld District 2012 Matzingen 4591 47.5253 8.9285 4 +CH 8268 Mannenbach-Salenstein Kanton Thurgau TG Kreuzlingen District 2013 Salenstein 4851 47.6758 9.0539 4 +CH 8268 Salenstein Kanton Thurgau TG Kreuzlingen District 2013 Salenstein 4851 47.6627 9.051 4 +CH 8269 Fruthwilen Kanton Thurgau TG Kreuzlingen District 2013 Salenstein 4851 47.654 9.0647 4 +CH 8272 Ermatingen Kanton Thurgau TG Kreuzlingen District 2013 Ermatingen 4646 47.6604 9.0861 4 +CH 8273 Triboltingen Kanton Thurgau TG Kreuzlingen District 2013 Ermatingen 4646 47.6599 9.1078 4 +CH 8274 Gottlieben Kanton Thurgau TG Kreuzlingen District 2013 Gottlieben 4651 47.6654 9.126 4 +CH 8274 Tägerwilen Kanton Thurgau TG Kreuzlingen District 2013 Tägerwilen 4696 47.6481 9.1318 4 +CH 8280 Kreuzlingen Kanton Thurgau TG Kreuzlingen District 2013 Kreuzlingen 4671 47.6415 9.1752 4 +CH 8280 Kreuzlingen 1 Kanton Thurgau TG Kreuzlingen District 2013 Kreuzlingen 4671 47.6398 9.1727 +CH 8280 Kreuzlingen 3 Kanton Thurgau TG Kreuzlingen District 2013 Kreuzlingen 4671 47.6398 9.1727 +CH 8285 Kreuzlingen Ifolor Kanton Thurgau TG Kreuzlingen District 2013 Kreuzlingen 4671 47.6398 9.1727 +CH 8285 Kreuzlingen Ifolor AG Kanton Thurgau TG Kreuzlingen District 2013 Kreuzlingen 4671 47.6398 9.1727 +CH 8558 Raperswilen Kanton Thurgau TG Kreuzlingen District 2013 Raperswilen 4846 47.6367 9.047 4 +CH 8564 Engwilen Kanton Thurgau TG Kreuzlingen District 2013 Wäldi 4701 47.6161 9.0959 4 +CH 8564 Sonterswil Kanton Thurgau TG Kreuzlingen District 2013 Wäldi 4701 47.6221 9.0814 4 +CH 8564 Gunterswilen Kanton Thurgau TG Kreuzlingen District 2013 Wäldi 4701 47.6355 9.077 4 +CH 8564 Hefenhausen Kanton Thurgau TG Kreuzlingen District 2013 Wäldi 4701 47.6161 9.0688 4 +CH 8564 Lipperswil Kanton Thurgau TG Kreuzlingen District 2013 Wäldi 4701 47.6172 9.055 4 +CH 8564 Hattenhausen Kanton Thurgau TG Kreuzlingen District 2013 Wäldi 4701 47.6267 9.0679 4 +CH 8564 Wäldi Kanton Thurgau TG Kreuzlingen District 2013 Wäldi 4701 47.6322 9.0953 4 +CH 8565 Hugelshofen Kanton Thurgau TG Kreuzlingen District 2013 Kemmental 4666 47.5953 9.1175 4 +CH 8566 Ellighausen Kanton Thurgau TG Kreuzlingen District 2013 Kemmental 4666 47.6145 9.1388 4 +CH 8566 Neuwilen Kanton Thurgau TG Kreuzlingen District 2013 Kemmental 4666 47.6238 9.1301 4 +CH 8566 Lippoldswilen Kanton Thurgau TG Kreuzlingen District 2013 Kemmental 4666 47.6106 9.1139 4 +CH 8566 Dotnacht Kanton Thurgau TG Kreuzlingen District 2013 Kemmental 4666 47.5972 9.143 4 +CH 8573 Siegershausen Kanton Thurgau TG Kreuzlingen District 2013 Kemmental 4666 47.6167 9.1689 4 +CH 8573 Alterswilen Kanton Thurgau TG Kreuzlingen District 2013 Kemmental 4666 47.6108 9.1536 4 +CH 8573 Altishausen Kanton Thurgau TG Kreuzlingen District 2013 Kemmental 4666 47.5986 9.1694 4 +CH 8574 Illighausen Kanton Thurgau TG Kreuzlingen District 2013 Lengwil 4683 47.6031 9.2098 4 +CH 8574 Lengwil Kanton Thurgau TG Kreuzlingen District 2013 Lengwil 4683 47.6219 9.1969 4 +CH 8574 Lengwil Kanton Thurgau TG Kreuzlingen District 2013 Lengwil 4683 47.6219 9.1969 4 +CH 8574 Dettighofen (Lengwil) Kanton Thurgau TG Kreuzlingen District 2013 Lengwil 4683 47.6225 9.2043 4 +CH 8574 Oberhofen TG Kanton Thurgau TG Kreuzlingen District 2013 Lengwil 4683 47.6125 9.1914 4 +CH 8585 Langrickenbach Kanton Thurgau TG Kreuzlingen District 2013 Langrickenbach 4681 47.583 9.2506 4 +CH 8585 Schönenbaumgarten Kanton Thurgau TG Kreuzlingen District 2013 Langrickenbach 4681 47.6129 9.2268 4 +CH 8585 Zuben Kanton Thurgau TG Kreuzlingen District 2013 Langrickenbach 4681 47.6026 9.2312 4 +CH 8585 Herrenhof Kanton Thurgau TG Kreuzlingen District 2013 Langrickenbach 4681 47.5973 9.2421 4 +CH 8594 Güttingen Kanton Thurgau TG Kreuzlingen District 2013 Güttingen 4656 47.6118 9.3003 4 +CH 8595 Altnau Kanton Thurgau TG Kreuzlingen District 2013 Altnau 4641 47.6196 9.272 4 +CH 8596 Scherzingen Kanton Thurgau TG Kreuzlingen District 2013 Münsterlingen 4691 47.6285 9.2247 4 +CH 8596 Münsterlingen Kanton Thurgau TG Kreuzlingen District 2013 Münsterlingen 4691 47.6457 9.2374 4 +CH 8597 Landschlacht Kanton Thurgau TG Kreuzlingen District 2013 Münsterlingen 4691 47.6373 9.258 4 +CH 8598 Bottighofen Kanton Thurgau TG Kreuzlingen District 2013 Bottighofen 4643 47.6403 9.2129 4 +CH 8355 Aadorf Kanton Thurgau TG Münchwilen District 2014 Aadorf 4551 47.492 8.9075 4 +CH 8356 Ettenhausen TG Kanton Thurgau TG Münchwilen District 2014 Aadorf 4551 47.4743 8.8967 4 +CH 8357 Guntershausen b. Aadorf Kanton Thurgau TG Münchwilen District 2014 Aadorf 4551 47.4717 8.9207 4 +CH 8360 Eschlikon TG Kanton Thurgau TG Münchwilen District 2014 Eschlikon 4724 47.4638 8.9671 4 +CH 8360 Wallenwil Kanton Thurgau TG Münchwilen District 2014 Eschlikon 4724 47.4532 8.9547 4 +CH 8362 Balterswil Kanton Thurgau TG Münchwilen District 2014 Bichelsee-Balterswil 4721 47.454 8.9368 4 +CH 8363 Bichelsee Kanton Thurgau TG Münchwilen District 2014 Bichelsee-Balterswil 4721 47.4462 8.9178 4 +CH 8370 Sirnach Kanton Thurgau TG Münchwilen District 2014 Sirnach 4761 47.4624 8.9983 4 +CH 8371 Busswil TG Kanton Thurgau TG Münchwilen District 2014 Sirnach 4761 47.4533 9.0172 4 +CH 8372 Wiezikon b. Sirnach Kanton Thurgau TG Münchwilen District 2014 Sirnach 4761 47.4466 8.9872 4 +CH 8374 Dussnang Kanton Thurgau TG Münchwilen District 2014 Fischingen 4726 47.422 8.9427 4 +CH 8374 Oberwangen TG Kanton Thurgau TG Münchwilen District 2014 Fischingen 4726 47.4294 8.9813 4 +CH 8376 Fischingen Kanton Thurgau TG Münchwilen District 2014 Fischingen 4726 47.411 8.973 4 +CH 8376 Au TG Kanton Thurgau TG Münchwilen District 2014 Fischingen 4726 47.3944 8.9512 4 +CH 8522 Aawangen Kanton Thurgau TG Münchwilen District 2014 Aadorf 4551 47.5118 8.9022 4 +CH 8522 Häuslenen Kanton Thurgau TG Münchwilen District 2014 Aadorf 4551 47.5273 8.9021 4 +CH 9502 Braunau Kanton Thurgau TG Münchwilen District 2014 Braunau 4723 47.5044 9.0689 4 +CH 9506 Lommis Kanton Thurgau TG Münchwilen District 2014 Lommis 4741 47.5148 8.9976 4 +CH 9508 Weingarten-Kalthäusern Kanton Thurgau TG Münchwilen District 2014 Lommis 4741 47.5253 8.9872 4 +CH 9532 Rickenbach b. Wil Kanton Thurgau TG Münchwilen District 2014 Rickenbach (TG) 4751 47.4457 9.0487 4 +CH 9535 Wilen b. Wil Kanton Thurgau TG Münchwilen District 2014 Wilen (TG) 4786 47.4471 9.0321 4 +CH 9542 Münchwilen TG Kanton Thurgau TG Münchwilen District 2014 Münchwilen (TG) 4746 47.4794 8.991 4 +CH 9543 St. Margarethen TG Kanton Thurgau TG Münchwilen District 2014 Münchwilen (TG) 4746 47.4906 9.0028 4 +CH 9545 Wängi Kanton Thurgau TG Münchwilen District 2014 Wängi 4781 47.4988 8.9618 4 +CH 9546 Tuttwil Kanton Thurgau TG Münchwilen District 2014 Wängi 4781 47.4808 8.9482 4 +CH 9547 Wittenwil Kanton Thurgau TG Münchwilen District 2014 Aadorf 4551 47.5033 8.9227 4 +CH 9553 Bettwiesen Kanton Thurgau TG Münchwilen District 2014 Bettwiesen 4716 47.4977 9.0187 4 +CH 9554 Tägerschen Kanton Thurgau TG Münchwilen District 2014 Tobel-Tägerschen 4776 47.5062 9.0279 4 +CH 9555 Tobel Kanton Thurgau TG Münchwilen District 2014 Tobel-Tägerschen 4776 47.5167 9.0442 4 +CH 9573 Littenheid Kanton Thurgau TG Münchwilen District 2014 Sirnach 4761 47.4414 9.0079 4 +CH 8514 Amlikon-Bissegg Kanton Thurgau TG Weinfelden District 2015 Amlikon-Bissegg 4881 47.5588 9.0353 4 +CH 8554 Bonau Kanton Thurgau TG Weinfelden District 2015 Wigoltingen 4951 47.5827 9.0355 4 +CH 8554 Müllheim-Wigoltingen Kanton Thurgau TG Weinfelden District 2015 Wigoltingen 4951 47.5901 9.0133 3 +CH 8556 Illhart Kanton Thurgau TG Weinfelden District 2015 Wigoltingen 4951 47.6182 9.0361 4 +CH 8556 Lamperswil TG Kanton Thurgau TG Weinfelden District 2015 Wigoltingen 4951 47.6107 9.0372 4 +CH 8556 Engwang Kanton Thurgau TG Weinfelden District 2015 Wigoltingen 4951 47.6012 9.0524 4 +CH 8556 Wigoltingen Kanton Thurgau TG Weinfelden District 2015 Wigoltingen 4951 47.5974 9.0314 4 +CH 8560 Märstetten Kanton Thurgau TG Weinfelden District 2015 Märstetten 4941 47.5913 9.068 4 +CH 8561 Ottoberg Kanton Thurgau TG Weinfelden District 2015 Märstetten 4941 47.59 9.09 4 +CH 8564 Wagerswil Kanton Thurgau TG Weinfelden District 2015 Wigoltingen 4951 47.6092 9.0635 4 +CH 8570 Weinfelden Kanton Thurgau TG Weinfelden District 2015 Weinfelden 4946 47.5698 9.1122 4 +CH 8572 Graltshausen Kanton Thurgau TG Weinfelden District 2015 Berg (TG) 4891 47.5961 9.1831 4 +CH 8572 Andhausen Kanton Thurgau TG Weinfelden District 2015 Berg (TG) 4891 47.5772 9.1793 4 +CH 8572 Guntershausen b. Berg Kanton Thurgau TG Weinfelden District 2015 Berg (TG) 4891 47.572 9.1869 3 +CH 8572 Berg TG Kanton Thurgau TG Weinfelden District 2015 Berg (TG) 4891 47.5831 9.1672 4 +CH 8572 Berg TG Kanton Thurgau TG Weinfelden District 2015 Berg (TG) 4891 47.5831 9.1672 4 +CH 8575 Bürglen TG Kanton Thurgau TG Weinfelden District 2015 Bürglen (TG) 4911 47.5505 9.1536 4 +CH 8575 Istighofen Kanton Thurgau TG Weinfelden District 2015 Bürglen (TG) 4911 47.5393 9.1431 4 +CH 8576 Mauren TG Kanton Thurgau TG Weinfelden District 2015 Berg (TG) 4891 47.5658 9.1541 4 +CH 8577 Schönholzerswilen Kanton Thurgau TG Weinfelden District 2015 Schönholzerswilen 4756 47.5151 9.1331 4 +CH 8583 Donzhausen Kanton Thurgau TG Weinfelden District 2015 Sulgen 4506 47.5543 9.1976 4 +CH 8583 Sulgen Kanton Thurgau TG Weinfelden District 2015 Sulgen 4506 47.5409 9.1865 4 +CH 8583 Götighofen Kanton Thurgau TG Weinfelden District 2015 Sulgen 4506 47.5349 9.2125 4 +CH 8584 Opfershofen TG Kanton Thurgau TG Weinfelden District 2015 Bürglen (TG) 4911 47.5618 9.1735 4 +CH 8584 Leimbach TG Kanton Thurgau TG Weinfelden District 2015 Bürglen (TG) 4911 47.5624 9.1901 4 +CH 8585 Klarsreuti Kanton Thurgau TG Weinfelden District 2015 Birwinken 4901 47.5882 9.2141 4 +CH 8585 Happerswil Kanton Thurgau TG Weinfelden District 2015 Birwinken 4901 47.5799 9.2272 4 +CH 8585 Birwinken Kanton Thurgau TG Weinfelden District 2015 Birwinken 4901 47.5849 9.1966 3 +CH 8585 Mattwil Kanton Thurgau TG Weinfelden District 2015 Birwinken 4901 47.5794 9.2121 4 +CH 8586 Buchackern Kanton Thurgau TG Weinfelden District 2015 Erlen 4476 47.5364 9.2391 4 +CH 8586 Andwil TG Kanton Thurgau TG Weinfelden District 2015 Birwinken 4901 47.5654 9.2151 4 +CH 8586 Ennetaach Kanton Thurgau TG Weinfelden District 2015 Erlen 4476 47.5527 9.2151 4 +CH 8586 Buch b. Kümmertshausen Kanton Thurgau TG Weinfelden District 2015 Birwinken 4901 47.5716 9.2353 3 +CH 8586 Riedt b. Erlen Kanton Thurgau TG Weinfelden District 2015 Erlen 4476 47.5428 9.2141 3 +CH 8586 Engishofen Kanton Thurgau TG Weinfelden District 2015 Erlen 4476 47.5572 9.2507 4 +CH 8586 Kümmertshausen Kanton Thurgau TG Weinfelden District 2015 Erlen 4476 47.5659 9.2466 4 +CH 8586 Erlen Kanton Thurgau TG Weinfelden District 2015 Erlen 4476 47.5485 9.2346 4 +CH 8588 Zihlschlacht Kanton Thurgau TG Weinfelden District 2015 Zihlschlacht-Sitterdorf 4511 47.521 9.2614 4 +CH 8589 Sitterdorf Kanton Thurgau TG Weinfelden District 2015 Zihlschlacht-Sitterdorf 4511 47.5071 9.2488 4 +CH 9213 Hauptwil Kanton Thurgau TG Weinfelden District 2015 Hauptwil-Gottshaus 4486 47.4823 9.2558 4 +CH 9214 Kradolf Kanton Thurgau TG Weinfelden District 2015 Kradolf-Schönenberg 4501 47.5265 9.1984 4 +CH 9215 Buhwil Kanton Thurgau TG Weinfelden District 2015 Kradolf-Schönenberg 4501 47.5255 9.166 4 +CH 9215 Schönenberg an der Thur Kanton Thurgau TG Weinfelden District 2015 Kradolf-Schönenberg 4501 47.5185 9.1969 4 +CH 9216 Hohentannen Kanton Thurgau TG Weinfelden District 2015 Hohentannen 4495 47.5088 9.2224 4 +CH 9216 Heldswil Kanton Thurgau TG Weinfelden District 2015 Hohentannen 4495 47.5256 9.2274 4 +CH 9217 Neukirch an der Thur Kanton Thurgau TG Weinfelden District 2015 Kradolf-Schönenberg 4501 47.5097 9.1729 4 +CH 9220 Bischofszell Kanton Thurgau TG Weinfelden District 2015 Bischofszell 4471 47.497 9.2568 4 +CH 9223 Schweizersholz Kanton Thurgau TG Weinfelden District 2015 Bischofszell 4471 47.4999 9.1954 4 +CH 9223 Halden Kanton Thurgau TG Weinfelden District 2015 Bischofszell 4471 47.5043 9.2074 4 +CH 9225 Wilen (Gottshaus) Kanton Thurgau TG Weinfelden District 2015 Hauptwil-Gottshaus 4486 47.4896 9.2777 4 +CH 9225 St. Pelagiberg Kanton Thurgau TG Weinfelden District 2015 Hauptwil-Gottshaus 4486 47.4894 9.3048 4 +CH 9503 Lanterswil Kanton Thurgau TG Weinfelden District 2015 Bussnang 4921 47.5167 9.0979 4 +CH 9503 Stehrenberg Kanton Thurgau TG Weinfelden District 2015 Bussnang 4921 47.5233 9.09 4 +CH 9504 Friltschen Kanton Thurgau TG Weinfelden District 2015 Bussnang 4921 47.5353 9.0894 4 +CH 9514 Wuppenau Kanton Thurgau TG Weinfelden District 2015 Wuppenau 4791 47.4972 9.1058 4 +CH 9515 Hosenruck Kanton Thurgau TG Weinfelden District 2015 Wuppenau 4791 47.4916 9.1372 4 +CH 9517 Mettlen Kanton Thurgau TG Weinfelden District 2015 Bussnang 4921 47.5341 9.1195 4 +CH 9556 Zezikon Kanton Thurgau TG Weinfelden District 2015 Affeltrangen 4711 47.5347 9.0174 4 +CH 9556 Affeltrangen Kanton Thurgau TG Weinfelden District 2015 Affeltrangen 4711 47.5277 9.0303 4 +CH 9562 Märwil Kanton Thurgau TG Weinfelden District 2015 Affeltrangen 4711 47.5302 9.0694 4 +CH 9562 Buch b. Märwil Kanton Thurgau TG Weinfelden District 2015 Affeltrangen 4711 47.537 9.0554 3 +CH 9565 Schmidshof Kanton Thurgau TG Weinfelden District 2015 Bussnang 4921 47.5448 9.0549 4 +CH 9565 Rothenhausen Kanton Thurgau TG Weinfelden District 2015 Bussnang 4921 47.5485 9.1056 4 +CH 9565 Oberbussnang Kanton Thurgau TG Weinfelden District 2015 Bussnang 4921 47.5439 9.0922 3 +CH 9565 Oppikon Kanton Thurgau TG Weinfelden District 2015 Bussnang 4921 47.5497 9.0601 4 +CH 9565 Bussnang Kanton Thurgau TG Weinfelden District 2015 Bussnang 4921 47.5567 9.0796 4 +CH 6500 Bellinzona 4 Ticino TI Bellinzona District 2101 Bellinzona 5002 46.1999 9.0225 +CH 6500 Bellinzona Ticino TI Bellinzona District 2101 Bellinzona 5002 46.1926 9.0364 4 +CH 6500 Bellinzona 2 Ticino TI Bellinzona District 2101 Bellinzona 5002 46.1999 9.0225 +CH 6500 Bellinzona 5 Ticino TI Bellinzona District 2101 Bellinzona 5002 46.1999 9.0225 +CH 6500 Bellinzona VZ Ticino TI Bellinzona District 2101 Bellinzona 5002 46.1999 9.0225 +CH 6501 Bellinzona Ticino TI Bellinzona District 2101 Bellinzona 5002 46.1928 9.017 +CH 6503 Bellinzona Ticino TI Bellinzona District 2101 Bellinzona 5002 46.2109 9.0017 4 +CH 6512 Giubiasco Ticino TI Bellinzona District 2101 Bellinzona 5002 46.1733 9.0046 4 +CH 6513 Monte Carasso Ticino TI Bellinzona District 2101 Bellinzona 5002 46.2048 8.9744 4 +CH 6514 Sementina Ticino TI Bellinzona District 2101 Bellinzona 5002 46.1901 8.9702 4 +CH 6515 Gudo Ticino TI Bellinzona District 2101 Bellinzona 5002 46.1818 8.9452 4 +CH 6517 Arbedo Ticino TI Bellinzona District 2101 Arbedo-Castione 5001 46.1987 9.086 4 +CH 6518 Gorduno Ticino TI Bellinzona District 2101 Bellinzona 5002 46.2253 8.9954 4 +CH 6523 Preonzo Ticino TI Bellinzona District 2101 Bellinzona 5002 46.2489 8.9667 4 +CH 6524 Moleno Ticino TI Bellinzona District 2101 Bellinzona 5002 46.2662 8.9684 4 +CH 6525 Gnosca Ticino TI Bellinzona District 2101 Bellinzona 5002 46.2382 9.0038 4 +CH 6528 Camorino Ticino TI Bellinzona District 2101 Bellinzona 5002 46.1577 9.0119 4 +CH 6532 Castione Ticino TI Bellinzona District 2101 Arbedo-Castione 5001 46.23 9.0433 4 +CH 6533 Lumino Ticino TI Bellinzona District 2101 Lumino 5010 46.2384 9.0681 4 +CH 6582 Pianezzo Ticino TI Bellinzona District 2101 Bellinzona 5002 46.1611 9.0487 4 +CH 6583 S. Antonio (Val Morobbia) Ticino TI Bellinzona District 2101 Bellinzona 5002 46.1683 9.0699 4 +CH 6584 Carena Ticino TI Bellinzona District 2101 Bellinzona 5002 46.1556 9.1077 4 +CH 6592 S. Antonino Ticino TI Bellinzona District 2101 Sant'Antonino 5017 46.1554 8.973 4 +CH 6593 Cadenazzo Ticino TI Bellinzona District 2101 Cadenazzo 5003 46.1507 8.9495 4 +CH 6599 Robasacco Ticino TI Bellinzona District 2101 Cadenazzo 5003 46.1384 8.9497 4 +CH 6702 Claro Ticino TI Bellinzona District 2101 Bellinzona 5002 46.2659 9.0372 4 +CH 6809 Medeglia Ticino TI Bellinzona District 2101 Comunanza Cadenazzo/Montecener 5391 46.1285 8.9892 4 +CH 6810 Isone Ticino TI Bellinzona District 2101 Isone 5009 46.1335 9.0144 4 +CH 6713 Malvaglia Ticino TI Blenio District 2102 Serravalle 5050 46.4349 9.0386 4 +CH 6714 Semione Ticino TI Blenio District 2102 Serravalle 5050 46.4019 8.954 4 +CH 6715 Dongio Ticino TI Blenio District 2102 Acquarossa 5048 46.4525 8.9717 4 +CH 6716 Acquarossa Ticino TI Blenio District 2102 Acquarossa 5048 46.4569 8.9378 4 +CH 6716 Leontica Ticino TI Blenio District 2102 Acquarossa 5048 46.4528 8.9032 4 +CH 6716 Lottigna Ticino TI Blenio District 2102 Acquarossa 5048 46.4637 8.9555 4 +CH 6717 Dangio Ticino TI Blenio District 2102 Blenio 5049 46.4955 8.955 4 +CH 6717 Torre Ticino TI Blenio District 2102 Blenio 5049 46.4831 8.9738 4 +CH 6718 Camperio Ticino TI Blenio District 2102 Blenio 5049 46.5169 8.9089 4 +CH 6718 Olivone Ticino TI Blenio District 2102 Blenio 5049 46.5349 8.8778 4 +CH 6719 Aquila Ticino TI Blenio District 2102 Blenio 5049 46.5406 8.9881 4 +CH 6719 Aquila Ticino TI Blenio District 2102 Blenio 5049 46.5406 8.9881 4 +CH 6719 Aquila Ticino TI Blenio District 2102 Blenio 5049 46.5406 8.9881 4 +CH 6720 Ghirone Ticino TI Blenio District 2102 Blenio 5049 46.5906 8.9439 4 +CH 6720 Campo (Blenio) Ticino TI Blenio District 2102 Blenio 5049 46.5598 8.8894 4 +CH 6721 Motto (Blenio) Ticino TI Blenio District 2102 Acquarossa 5048 46.4397 8.9822 4 +CH 6721 Ludiano Ticino TI Blenio District 2102 Serravalle 5050 46.4208 8.9482 4 +CH 6722 Corzoneso Ticino TI Blenio District 2102 Acquarossa 5048 46.4364 8.9256 4 +CH 6723 Prugiasco Ticino TI Blenio District 2102 Acquarossa 5048 46.4716 8.8925 4 +CH 6723 Castro Ticino TI Blenio District 2102 Acquarossa 5048 46.4696 8.9303 4 +CH 6723 Marolta Ticino TI Blenio District 2102 Acquarossa 5048 46.4786 8.9171 4 +CH 6724 Largario Ticino TI Blenio District 2102 Acquarossa 5048 46.4928 8.9383 4 +CH 6724 Ponto Valentino Ticino TI Blenio District 2102 Acquarossa 5048 46.4904 8.8992 4 +CH 6742 Pollegio Ticino TI Leventina District 2103 Pollegio 5077 46.3709 8.9456 4 +CH 6743 Bodio TI Ticino TI Leventina District 2103 Bodio 5064 46.386 8.9205 4 +CH 6744 Personico Ticino TI Leventina District 2103 Personico 5076 46.3463 8.894 4 +CH 6745 Giornico Ticino TI Leventina District 2103 Giornico 5073 46.3892 8.8624 4 +CH 6746 Calonico Ticino TI Leventina District 2103 Faido 5072 46.4536 8.8462 4 +CH 6746 Lavorgo Ticino TI Leventina District 2103 Faido 5072 46.4426 8.8409 4 +CH 6746 Nivo Ticino TI Leventina District 2103 Faido 5072 46.4364 8.8426 4 +CH 6747 Chironico Ticino TI Leventina District 2103 Faido 5072 46.4233 8.7932 4 +CH 6748 Anzonico Ticino TI Leventina District 2103 Faido 5072 46.4412 8.8679 4 +CH 6749 Sobrio Ticino TI Leventina District 2103 Faido 5072 46.403 8.9069 4 +CH 6749 Cavagnago Ticino TI Leventina District 2103 Faido 5072 46.4188 8.8887 4 +CH 6760 Calpiogna Ticino TI Leventina District 2103 Faido 5072 46.485 8.805 4 +CH 6760 Campello Ticino TI Leventina District 2103 Faido 5072 46.4985 8.8148 3 +CH 6760 Rossura Ticino TI Leventina District 2103 Faido 5072 46.4741 8.844 4 +CH 6760 Faido Ticino TI Leventina District 2103 Faido 5072 46.4736 8.8011 4 +CH 6760 Carì Ticino TI Leventina District 2103 Faido 5072 46.5036 8.8264 4 +CH 6760 Molare Ticino TI Leventina District 2103 Faido 5072 46.4941 8.8447 4 +CH 6763 Mairengo Ticino TI Leventina District 2103 Faido 5072 46.5032 8.7969 4 +CH 6763 Osco Ticino TI Leventina District 2103 Faido 5072 46.5038 8.7682 4 +CH 6764 Chiggiogna Ticino TI Leventina District 2103 Faido 5072 46.4613 8.824 4 +CH 6764 Chiggiogna Ticino TI Leventina District 2103 Faido 5072 46.4613 8.824 4 +CH 6772 Rodi-Fiesso Ticino TI Leventina District 2103 Prato (Leventina) 5078 46.481 8.7221 4 +CH 6773 Prato (Leventina) Ticino TI Leventina District 2103 Prato (Leventina) 5078 46.4714 8.7458 4 +CH 6774 Dalpe Ticino TI Leventina District 2103 Dalpe 5071 46.4572 8.7621 4 +CH 6775 Ambrì Ticino TI Leventina District 2103 Quinto 5079 46.4956 8.6951 4 +CH 6776 Piotta Ticino TI Leventina District 2103 Quinto 5079 46.5375 8.7113 4 +CH 6777 Varenzo Ticino TI Leventina District 2103 Quinto 5079 46.5031 8.7251 4 +CH 6777 Quinto Ticino TI Leventina District 2103 Quinto 5079 46.5154 8.7303 4 +CH 6780 Madrano Ticino TI Leventina District 2103 Airolo 5061 46.5272 8.6306 4 +CH 6780 Airolo Ticino TI Leventina District 2103 Airolo 5061 46.542 8.5992 4 +CH 6781 Bedretto Ticino TI Leventina District 2103 Bedretto 5063 46.489 8.478 4 +CH 6781 Villa Bedretto Ticino TI Leventina District 2103 Bedretto 5063 46.5221 8.5168 4 +CH 6516 Cugnasco Ticino TI Locarno District 2104 Cugnasco-Gerra 5138 46.1955 8.9135 4 +CH 6571 Indemini Ticino TI Locarno District 2104 Gambarogno 5398 46.0954 8.8421 4 +CH 6572 Quartino Ticino TI Locarno District 2104 Gambarogno 5398 46.1521 8.8971 4 +CH 6573 Magadino Ticino TI Locarno District 2104 Gambarogno 5398 46.144 8.8713 4 +CH 6574 Vira (Gambarogno) Ticino TI Locarno District 2104 Gambarogno 5398 46.1307 8.8563 4 +CH 6575 S. Nazzaro Ticino TI Locarno District 2104 Gambarogno 5398 46.1364 8.8026 4 +CH 6575 Vairano Ticino TI Locarno District 2104 Gambarogno 5398 46.1206 8.8157 4 +CH 6576 Gerra (Gambarogno) Ticino TI Locarno District 2104 Gambarogno 5398 46.122 8.7889 4 +CH 6577 Ranzo Ticino TI Locarno District 2104 Gambarogno 5398 46.1152 8.7762 4 +CH 6578 Caviano Ticino TI Locarno District 2104 Gambarogno 5398 46.1061 8.7703 4 +CH 6579 Piazzogna Ticino TI Locarno District 2104 Gambarogno 5398 46.1303 8.831 4 +CH 6594 Contone Ticino TI Locarno District 2104 Gambarogno 5398 46.1522 8.9232 4 +CH 6595 Riazzino Ticino TI Locarno District 2104 Lavertezzo 5112 46.1696 8.8953 4 +CH 6596 Gordola Ticino TI Locarno District 2104 Gordola 5108 46.175 8.8649 4 +CH 6597 Agarone Ticino TI Locarno District 2104 Cugnasco-Gerra 5138 46.1799 8.908 4 +CH 6598 Tenero Ticino TI Locarno District 2104 Tenero-Contra 5131 46.1713 8.8461 4 +CH 6600 Muralto Ticino TI Locarno District 2104 Muralto 5120 46.1729 8.8043 4 +CH 6600 Locarno Ticino TI Locarno District 2104 Locarno 5113 46.1608 8.803 4 +CH 6600 Locarno Ticino TI Locarno District 2104 Locarno 5113 46.1608 8.803 4 +CH 6600 Solduno Ticino TI Locarno District 2104 Locarno 5113 46.1744 8.7712 4 +CH 6601 Locarno Ticino TI Locarno District 2104 Locarno 5113 46.1709 8.7995 +CH 6602 Muralto Ticino TI Locarno District 2104 Muralto 5120 46.1732 8.8022 +CH 6604 Locarno Ticino TI Locarno District 2104 Locarno 5113 46.1709 8.7995 +CH 6605 Locarno Ticino TI Locarno District 2104 Locarno 5113 46.1847 8.7788 4 +CH 6611 Crana Ticino TI Locarno District 2104 Onsernone 5136 46.1963 8.6028 4 +CH 6611 Mosogno Ticino TI Locarno District 2104 Onsernone 5136 46.196 8.6351 4 +CH 6611 Gresso Ticino TI Locarno District 2104 Onsernone 5136 46.2394 8.614 4 +CH 6612 Ascona Ticino TI Locarno District 2104 Ascona 5091 46.1477 8.772 4 +CH 6613 Porto Ronco Ticino TI Locarno District 2104 Ronco sopra Ascona 5125 46.1353 8.736 4 +CH 6614 Isole di Brissago Ticino TI Locarno District 2104 Brissago 5097 46.133 8.7354 3 +CH 6614 Brissago Ticino TI Locarno District 2104 Brissago 5097 46.1237 8.6936 4 +CH 6616 Losone Ticino TI Locarno District 2104 Losone 5115 46.1692 8.742 4 +CH 6618 Arcegno Ticino TI Locarno District 2104 Losone 5115 46.1605 8.7403 4 +CH 6622 Ronco sopra Ascona Ticino TI Locarno District 2104 Ronco sopra Ascona 5125 46.1478 8.7196 4 +CH 6631 Corippo Ticino TI Locarno District 2104 Verzasca 5399 46.2357 8.8239 4 +CH 6632 Vogorno Ticino TI Locarno District 2104 Verzasca 5399 46.2246 8.8845 4 +CH 6633 Lavertezzo Ticino TI Locarno District 2104 Lavertezzo 5112 46.2753 8.8632 4 +CH 6634 Brione (Verzasca) Ticino TI Locarno District 2104 Verzasca 5399 46.3017 8.7577 4 +CH 6635 Gerra (Verzasca) Ticino TI Locarno District 2104 Cugnasco-Gerra 5138 46.3175 8.8065 4 +CH 6636 Frasco Ticino TI Locarno District 2104 Verzasca 5399 46.3542 8.8188 4 +CH 6637 Sonogno Ticino TI Locarno District 2104 Verzasca 5399 46.3648 8.7574 4 +CH 6644 Orselina Ticino TI Locarno District 2104 Orselina 5121 46.183 8.7953 4 +CH 6645 Brione sopra Minusio Ticino TI Locarno District 2104 Brione sopra Minusio 5096 46.1944 8.8107 4 +CH 6646 Contra Ticino TI Locarno District 2104 Tenero-Contra 5131 46.1922 8.8385 4 +CH 6647 Mergoscia Ticino TI Locarno District 2104 Mergoscia 5117 46.2143 8.8265 4 +CH 6648 Minusio Ticino TI Locarno District 2104 Minusio 5118 46.1733 8.8244 4 +CH 6652 Tegna Ticino TI Locarno District 2104 Terre di Pedemonte 5396 46.1908 8.7458 4 +CH 6653 Verscio Ticino TI Locarno District 2104 Terre di Pedemonte 5396 46.1931 8.728 4 +CH 6654 Cavigliano Ticino TI Locarno District 2104 Terre di Pedemonte 5396 46.1905 8.7089 4 +CH 6655 Rasa Ticino TI Locarno District 2104 Centovalli 5397 46.157 8.6566 4 +CH 6655 Intragna Ticino TI Locarno District 2104 Centovalli 5397 46.1691 8.6867 4 +CH 6655 Verdasio Ticino TI Locarno District 2104 Centovalli 5397 46.1725 8.6443 4 +CH 6656 Golino Ticino TI Locarno District 2104 Centovalli 5397 46.1785 8.7132 4 +CH 6657 Palagnedra Ticino TI Locarno District 2104 Centovalli 5397 46.1422 8.6463 4 +CH 6658 Borgnone Ticino TI Locarno District 2104 Centovalli 5397 46.1704 8.6008 4 +CH 6659 Camedo Ticino TI Locarno District 2104 Centovalli 5397 46.1554 8.6098 4 +CH 6659 Moneto Ticino TI Locarno District 2104 Centovalli 5397 46.138 8.6183 4 +CH 6661 Berzona Ticino TI Locarno District 2104 Onsernone 5136 46.2082 8.6566 4 +CH 6661 Loco Ticino TI Locarno District 2104 Onsernone 5136 46.2114 8.6755 4 +CH 6661 Auressio Ticino TI Locarno District 2104 Onsernone 5136 46.2043 8.6925 4 +CH 6662 Russo Ticino TI Locarno District 2104 Onsernone 5136 46.2164 8.6265 4 +CH 6663 Spruga Ticino TI Locarno District 2104 Onsernone 5136 46.2034 8.5554 4 +CH 6663 Comologno Ticino TI Locarno District 2104 Onsernone 5136 46.2056 8.5797 4 +CH 6664 Vergeletto Ticino TI Locarno District 2104 Onsernone 5136 46.241 8.5425 4 +CH 6802 Rivera Ticino TI Lugano District 2105 Monteceneri 5238 46.1239 8.9045 4 +CH 6803 Camignolo Ticino TI Lugano District 2105 Monteceneri 5238 46.105 8.9506 4 +CH 6804 Bironico Ticino TI Lugano District 2105 Monteceneri 5238 46.1259 8.9332 4 +CH 6805 Mezzovico Ticino TI Lugano District 2105 Mezzovico-Vira 5199 46.096 8.9082 4 +CH 6805 Mezzovico Ticino TI Lugano District 2105 Mezzovico-Vira 5199 46.096 8.9082 4 +CH 6806 Sigirino Ticino TI Lugano District 2105 Monteceneri 5238 46.0852 8.9 4 +CH 6807 Taverne Ticino TI Lugano District 2105 Torricella-Taverne 5227 46.063 8.9306 4 +CH 6807 Taverne Ticino TI Lugano District 2105 Capriasca 5226 46.063 8.9306 4 +CH 6808 Torricella Ticino TI Lugano District 2105 Torricella-Taverne 5227 46.07 8.9064 4 +CH 6809 Medeglia Ticino TI Lugano District 2105 Monteceneri 5238 46.1285 8.9892 4 +CH 6814 Cadempino Ticino TI Lugano District 2105 Cadempino 5162 46.0339 8.9338 4 +CH 6814 Lamone Ticino TI Lugano District 2105 Lamone 5189 46.0451 8.9315 4 +CH 6814 Lamone-Cadempino Ticino TI Lugano District 2105 Cadempino 5162 46.0342 8.9339 6 +CH 6815 Melide Ticino TI Lugano District 2105 Melide 5198 45.9564 8.9488 4 +CH 6816 Bissone Ticino TI Lugano District 2105 Bissone 5154 45.951 8.9655 4 +CH 6817 Maroggia Ticino TI Lugano District 2105 Maroggia 5195 45.9365 8.9711 4 +CH 6818 Melano Ticino TI Lugano District 2105 Melano 5197 45.9209 8.9911 4 +CH 6821 Rovio Ticino TI Lugano District 2105 Rovio 5219 45.9356 9.0003 4 +CH 6822 Arogno Ticino TI Lugano District 2105 Arogno 5144 45.9571 8.9929 4 +CH 6823 Pugerna Ticino TI Lugano District 2105 Arogno 5144 45.9902 8.9987 4 +CH 6825 Capolago Ticino TI Lugano District 2105 Rovio 5219 45.9043 8.9845 4 +CH 6827 Brusino Arsizio Ticino TI Lugano District 2105 Brusino Arsizio 5160 45.9254 8.9376 4 +CH 6867 Serpiano Ticino TI Lugano District 2105 Brusino Arsizio 5160 45.9163 8.9419 4 +CH 6900 Paradiso Ticino TI Lugano District 2105 Paradiso 5210 45.9891 8.955 4 +CH 6900 Lugano Ticino TI Lugano District 2105 Lugano 5192 46.0054 8.9545 4 +CH 6900 Massagno Ticino TI Lugano District 2105 Massagno 5196 46.0126 8.9437 4 +CH 6901 Lugano Ticino TI Lugano District 2105 Lugano 5192 46.0101 8.96 +CH 6902 Lugano 2 Caselle Ticino TI Lugano District 2105 Paradiso 5210 45.988 8.9483 +CH 6902 Lugano 2 Paradiso Caselle Ticino TI Lugano District 2105 Paradiso 5210 45.988 8.9483 +CH 6903 Lugano Ticino TI Lugano District 2105 Lugano 5192 46.0101 8.96 +CH 6904 Lugano 4 Caselle Ticino TI Lugano District 2105 Lugano 5192 46.0055 8.9714 +CH 6904 Lugano 4 Molino Nuovo Casel Ticino TI Lugano District 2105 Lugano 5192 46.0055 8.9714 +CH 6906 Lugano 6 Caselle Ticino TI Lugano District 2105 Lugano 5192 46.0055 8.9714 +CH 6906 Lugano 6 Cassarate Caselle Ticino TI Lugano District 2105 Lugano 5192 46.0055 8.9714 +CH 6907 Lugano 7 Caselle Ticino TI Lugano District 2105 Lugano 5192 46.0055 8.9714 +CH 6908 Massagno Caselle Ticino TI Lugano District 2105 Massagno 5196 46.0126 8.9437 +CH 6912 Pazzallo Ticino TI Lugano District 2105 Lugano 5192 45.981 8.9473 4 +CH 6913 Carabbia Ticino TI Lugano District 2105 Lugano 5192 45.9704 8.9344 4 +CH 6914 Carona Ticino TI Lugano District 2105 Lugano 5192 45.9567 8.9322 4 +CH 6915 Pambio-Noranco Ticino TI Lugano District 2105 Lugano 5192 45.9855 8.9307 4 +CH 6916 Grancia Ticino TI Lugano District 2105 Grancia 5186 45.9684 8.9276 4 +CH 6917 Barbengo Ticino TI Lugano District 2105 Lugano 5192 45.9604 8.916 4 +CH 6918 Figino Ticino TI Lugano District 2105 Lugano 5192 45.9557 8.9077 4 +CH 6919 Carabietta Ticino TI Lugano District 2105 Collina d'Oro 5236 45.9687 8.8996 4 +CH 6921 Vico Morcote Ticino TI Lugano District 2105 Vico Morcote 5233 45.9347 8.9252 4 +CH 6922 Morcote Ticino TI Lugano District 2105 Morcote 5203 45.9324 8.9082 4 +CH 6924 Sorengo Ticino TI Lugano District 2105 Sorengo 5225 45.9998 8.9355 4 +CH 6925 Gentilino Ticino TI Lugano District 2105 Collina d'Oro 5236 45.9917 8.9261 4 +CH 6926 Montagnola Ticino TI Lugano District 2105 Collina d'Oro 5236 45.9794 8.9143 4 +CH 6927 Agra Ticino TI Lugano District 2105 Collina d'Oro 5236 45.9682 8.9116 4 +CH 6928 Manno Ticino TI Lugano District 2105 Manno 5194 46.0308 8.9194 4 +CH 6929 Gravesano Ticino TI Lugano District 2105 Gravesano 5187 46.0421 8.9187 4 +CH 6930 Bedano Ticino TI Lugano District 2105 Bedano 5148 46.0531 8.9181 4 +CH 6932 Breganzona Ticino TI Lugano District 2105 Lugano 5192 46.009 8.9274 4 +CH 6933 Muzzano Ticino TI Lugano District 2105 Muzzano 5205 45.9971 8.917 4 +CH 6934 Bioggio Ticino TI Lugano District 2105 Bioggio 5151 46.0151 8.9127 4 +CH 6935 Bosco Luganese Ticino TI Lugano District 2105 Bioggio 5151 46.0301 8.9055 4 +CH 6936 Cademario Ticino TI Lugano District 2105 Cademario 5161 46.0226 8.8918 4 +CH 6937 Breno Ticino TI Lugano District 2105 Alto Malcantone 5237 46.0436 8.8587 4 +CH 6938 Fescoggia Ticino TI Lugano District 2105 Alto Malcantone 5237 46.0496 8.8711 4 +CH 6938 Vezio Ticino TI Lugano District 2105 Alto Malcantone 5237 46.0605 8.8711 4 +CH 6939 Mugena Ticino TI Lugano District 2105 Alto Malcantone 5237 46.0566 8.8821 4 +CH 6939 Arosio-Mugena Ticino TI Lugano District 2105 Alto Malcantone 5237 46.0542 8.8764 +CH 6939 Arosio Ticino TI Lugano District 2105 Alto Malcantone 5237 46.0598 8.8935 4 +CH 6942 Savosa Ticino TI Lugano District 2105 Savosa 5221 46.0193 8.9447 4 +CH 6943 Vezia Ticino TI Lugano District 2105 Vezia 5231 46.0248 8.935 4 +CH 6944 Cureglia Ticino TI Lugano District 2105 Cureglia 5180 46.0375 8.9441 4 +CH 6945 Origlio Ticino TI Lugano District 2105 Origlio 5208 46.0514 8.9448 4 +CH 6946 Ponte Capriasca Ticino TI Lugano District 2105 Ponte Capriasca 5212 46.106 9.0219 4 +CH 6946 Ponte Capriasca Ticino TI Lugano District 2105 Ponte Capriasca 5212 46.106 9.0219 4 +CH 6947 Vaglio Ticino TI Lugano District 2105 Capriasca 5226 46.0557 8.96 4 +CH 6948 Porza Ticino TI Lugano District 2105 Porza 5214 46.027 8.9532 4 +CH 6949 Comano Ticino TI Lugano District 2105 Comano 5176 46.04 8.9567 4 +CH 6950 Tesserete Ticino TI Lugano District 2105 Capriasca 5226 46.0699 8.9682 4 +CH 6951 Insone Ticino TI Lugano District 2105 Lugano 5192 46.0901 9.029 4 +CH 6951 Scareglia Ticino TI Lugano District 2105 Lugano 5192 46.0975 9.036 4 +CH 6951 Bogno Ticino TI Lugano District 2105 Lugano 5192 46.0911 9.075 4 +CH 6951 Cozzo Ticino TI Lugano District 2105 Lugano 5192 46.0972 9.0619 4 +CH 6951 Signôra Ticino TI Lugano District 2105 Lugano 5192 46.1035 9.0447 4 +CH 6951 Colla Ticino TI Lugano District 2105 Lugano 5192 46.1057 9.0627 4 +CH 6952 Canobbio Ticino TI Lugano District 2105 Canobbio 5167 46.0365 8.9676 4 +CH 6953 Lugaggia Ticino TI Lugano District 2105 Capriasca 5226 46.0562 8.9707 4 +CH 6954 Sala Capriasca Ticino TI Lugano District 2105 Capriasca 5226 46.0663 8.9552 4 +CH 6954 Bigorio Ticino TI Lugano District 2105 Capriasca 5226 46.0801 8.9488 4 +CH 6955 Oggio Ticino TI Lugano District 2105 Capriasca 5226 46.0715 8.9871 4 +CH 6955 Cagiallo Ticino TI Lugano District 2105 Capriasca 5226 46.0654 8.9752 4 +CH 6955 Oggio Ticino TI Lugano District 2105 Capriasca 5226 46.0715 8.9871 4 +CH 6956 Lopagno Ticino TI Lugano District 2105 Capriasca 5226 46.0699 8.978 4 +CH 6957 Roveredo TI Ticino TI Lugano District 2105 Capriasca 5226 46.0746 8.9827 4 +CH 6958 Corticiasca Ticino TI Lugano District 2105 Capriasca 5226 46.0901 9.0181 4 +CH 6958 Corticiasca Ticino TI Lugano District 2105 Capriasca 5226 46.0901 9.0181 4 +CH 6958 Bidogno Ticino TI Lugano District 2105 Capriasca 5226 46.0892 9.0062 4 +CH 6959 Piandera Paese Ticino TI Lugano District 2105 Lugano 5192 46.0832 9.0427 3 +CH 6959 Cimadera Ticino TI Lugano District 2105 Lugano 5192 46.0718 9.052 4 +CH 6959 Piandera Paese Ticino TI Lugano District 2105 Lugano 5192 46.0832 9.0427 3 +CH 6959 Curtina Ticino TI Lugano District 2105 Lugano 5192 46.0821 9.0217 4 +CH 6959 Certara Ticino TI Lugano District 2105 Lugano 5192 46.0791 9.0668 4 +CH 6959 Maglio di Colla Ticino TI Lugano District 2105 Lugano 5192 46.0869 9.0421 3 +CH 6960 Odogno Ticino TI Lugano District 2105 Capriasca 5226 46.1026 8.9923 4 +CH 6962 Viganello Ticino TI Lugano District 2105 Lugano 5192 46.0129 8.9706 4 +CH 6963 Cureggia Ticino TI Lugano District 2105 Lugano 5192 46.0198 8.9858 4 +CH 6963 Pregassona Ticino TI Lugano District 2105 Lugano 5192 46.0228 8.9753 4 +CH 6964 Davesco-Soragno Ticino TI Lugano District 2105 Lugano 5192 46.0325 8.9862 4 +CH 6965 Cadro Ticino TI Lugano District 2105 Lugano 5192 46.0423 8.9945 4 +CH 6966 Villa Luganese Ticino TI Lugano District 2105 Lugano 5192 46.0521 9.0053 4 +CH 6967 Dino Ticino TI Lugano District 2105 Lugano 5192 46.054 8.9802 4 +CH 6968 Sonvico Ticino TI Lugano District 2105 Lugano 5192 46.0651 9.0144 4 +CH 6974 Aldesago Ticino TI Lugano District 2105 Lugano 5192 46.0094 8.9798 4 +CH 6976 Castagnola Ticino TI Lugano District 2105 Lugano 5192 45.9991 8.9815 4 +CH 6977 Ruvigliana Ticino TI Lugano District 2105 Lugano 5192 46.0053 8.98 4 +CH 6978 Gandria Ticino TI Lugano District 2105 Lugano 5192 46.0093 9.0099 4 +CH 6979 Brè sopra Lugano Ticino TI Lugano District 2105 Lugano 5192 46.0174 8.9989 4 +CH 6980 Castelrotto Ticino TI Lugano District 2105 Tresa 5239 45.9954 8.839 4 +CH 6981 Beride di Bedigliora Ticino TI Lugano District 2105 Bedigliora 5149 46.0033 8.8327 6 +CH 6981 Biogno-Beride Ticino TI Lugano District 2105 Tresa 5239 45.9884 8.8423 3 +CH 6981 Bedigliora Ticino TI Lugano District 2105 Bedigliora 5149 46.0017 8.8455 4 +CH 6981 Banco Ticino TI Lugano District 2105 Bedigliora 5149 46.01 8.8402 4 +CH 6981 Bedigliora Ticino TI Lugano District 2105 Bedigliora 5149 46.0017 8.8455 4 +CH 6981 Bombinasco Ticino TI Lugano District 2105 Curio 5181 46.0162 8.8328 4 +CH 6982 Agno Ticino TI Lugano District 2105 Agno 5141 46.0005 8.9028 4 +CH 6983 Magliaso Ticino TI Lugano District 2105 Magliaso 5193 45.982 8.8914 4 +CH 6984 Pura Ticino TI Lugano District 2105 Pura 5216 45.9833 8.8652 4 +CH 6986 Curio Ticino TI Lugano District 2105 Curio 5181 46.0008 8.8622 4 +CH 6986 Novaggio Ticino TI Lugano District 2105 Novaggio 5207 46.0185 8.8449 4 +CH 6986 Miglieglia Ticino TI Lugano District 2105 Miglieglia 5200 46.0313 8.8494 4 +CH 6987 Caslano Ticino TI Lugano District 2105 Caslano 5171 45.9681 8.8804 4 +CH 6988 Ponte Tresa Ticino TI Lugano District 2105 Tresa 5239 45.9707 8.8593 4 +CH 6989 Purasca Ticino TI Lugano District 2105 Tresa 5239 45.9814 8.8493 4 +CH 6990 Cassina d'Agno Ticino TI Lugano District 2105 Agno 5141 45.9914 8.8933 4 +CH 6991 Neggio Ticino TI Lugano District 2105 Neggio 5206 45.9895 8.8779 4 +CH 6992 Cimo Ticino TI Lugano District 2105 Bioggio 5151 46.0053 8.8908 4 +CH 6992 Vernate Ticino TI Lugano District 2105 Vernate 5230 45.9958 8.8803 4 +CH 6993 Iseo Ticino TI Lugano District 2105 Bioggio 5151 46.0053 8.8786 4 +CH 6994 Aranno Ticino TI Lugano District 2105 Aranno 5143 46.0185 8.874 4 +CH 6995 Molinazzo di Monteggio Ticino TI Lugano District 2105 Tresa 5239 45.9924 8.8194 4 +CH 6995 Madonna del Piano Ticino TI Lugano District 2105 Tresa 5239 45.9891 8.8321 4 +CH 6997 Sessa Ticino TI Lugano District 2105 Tresa 5239 46.0032 8.8156 4 +CH 6998 Monteggio 2 Ticino TI Lugano District 2105 Tresa 5239 45.982 8.8514 +CH 6998 Monteggio Ticino TI Lugano District 2105 Tresa 5239 45.9961 8.8036 +CH 6998 Termine Ticino TI Lugano District 2105 Tresa 5239 45.9998 8.7921 4 +CH 6999 Astano Ticino TI Lugano District 2105 Astano 5146 46.0153 8.8163 4 +CH 6825 Capolago Ticino TI Mendrisio District 2106 Mendrisio 5254 45.9043 8.9845 4 +CH 6826 Riva San Vitale Ticino TI Mendrisio District 2106 Riva San Vitale 5263 45.9129 8.9645 4 +CH 6828 Balerna Ticino TI Mendrisio District 2106 Balerna 5242 45.8432 9.0077 4 +CH 6830 Chiasso 3 Ticino TI Mendrisio District 2106 Chiasso 5250 45.8288 9.0166 +CH 6830 Chiasso 1 Ticino TI Mendrisio District 2106 Chiasso 5250 45.8288 9.0166 +CH 6830 Chiasso Ticino TI Mendrisio District 2106 Chiasso 5250 45.8338 9.0256 4 +CH 6832 Seseglio Ticino TI Mendrisio District 2106 Chiasso 5250 45.8283 8.9998 4 +CH 6832 Pedrinate Ticino TI Mendrisio District 2106 Chiasso 5250 45.8251 9.0158 4 +CH 6833 Vacallo Ticino TI Mendrisio District 2106 Vacallo 5268 45.847 9.0364 4 +CH 6834 Morbio Inferiore Ticino TI Mendrisio District 2106 Morbio Inferiore 5257 45.8497 9.0215 4 +CH 6835 Morbio Superiore Ticino TI Mendrisio District 2106 Breggia 5269 45.867 9.0397 4 +CH 6836 Serfontana Ticino TI Mendrisio District 2106 Morbio Inferiore 5257 45.8497 9.0216 +CH 6837 Bruzella Ticino TI Mendrisio District 2106 Breggia 5269 45.8871 9.0568 4 +CH 6837 Caneggio Ticino TI Mendrisio District 2106 Breggia 5269 45.8764 9.0479 4 +CH 6838 Muggio Ticino TI Mendrisio District 2106 Breggia 5269 45.9115 9.0354 4 +CH 6838 Cabbio Ticino TI Mendrisio District 2106 Breggia 5269 45.9009 9.0604 4 +CH 6838 Scudellate Ticino TI Mendrisio District 2106 Breggia 5269 45.9229 9.0415 4 +CH 6839 Sagno Ticino TI Mendrisio District 2106 Breggia 5269 45.8612 9.0446 4 +CH 6850 Mendrisio Stazione Ticino TI Mendrisio District 2106 Mendrisio 5254 45.8862 8.9929 +CH 6850 Mendrisio Ticino TI Mendrisio District 2106 Mendrisio 5254 45.8748 8.9811 4 +CH 6850 Mendrisio Borgo Ticino TI Mendrisio District 2106 Mendrisio 5254 45.8862 8.9929 +CH 6852 Genestrerio Ticino TI Mendrisio District 2106 Mendrisio 5254 45.8501 8.9573 4 +CH 6853 Ligornetto Ticino TI Mendrisio District 2106 Mendrisio 5254 45.8631 8.9546 4 +CH 6854 S. Pietro Ticino TI Mendrisio District 2106 Stabio 5266 45.8579 8.9354 4 +CH 6855 Stabio Ticino TI Mendrisio District 2106 Stabio 5266 45.8456 8.9324 4 +CH 6862 Rancate Ticino TI Mendrisio District 2106 Mendrisio 5254 45.8755 8.9705 4 +CH 6863 Besazio Ticino TI Mendrisio District 2106 Mendrisio 5254 45.8714 8.9539 4 +CH 6864 Arzo Ticino TI Mendrisio District 2106 Mendrisio 5254 45.88 8.9399 4 +CH 6865 Tremona Ticino TI Mendrisio District 2106 Mendrisio 5254 45.8808 8.959 4 +CH 6866 Meride Ticino TI Mendrisio District 2106 Mendrisio 5254 45.8992 8.9429 4 +CH 6872 Somazzo Ticino TI Mendrisio District 2106 Mendrisio 5254 45.9017 9.0061 4 +CH 6872 Salorino Ticino TI Mendrisio District 2106 Mendrisio 5254 45.8873 9.003 4 +CH 6873 Corteglia Ticino TI Mendrisio District 2106 Castel San Pietro 5249 45.8621 8.9934 4 +CH 6874 Castel San Pietro Ticino TI Mendrisio District 2106 Castel San Pietro 5249 45.8654 9.0085 4 +CH 6875 Campora Ticino TI Mendrisio District 2106 Castel San Pietro 5249 45.8745 9.0187 4 +CH 6875 Monte Ticino TI Mendrisio District 2106 Castel San Pietro 5249 45.8831 9.0225 4 +CH 6875 Casima Ticino TI Mendrisio District 2106 Castel San Pietro 5249 45.893 9.0354 4 +CH 6877 Coldrerio Ticino TI Mendrisio District 2106 Coldrerio 5251 45.854 8.986 4 +CH 6883 Novazzano Ticino TI Mendrisio District 2106 Novazzano 5260 45.8428 8.9785 4 +CH 6526 Prosito Ticino TI Riviera District 2107 Riviera 5287 46.281 8.9411 4 +CH 6527 Lodrino Ticino TI Riviera District 2107 Riviera 5287 46.305 8.9686 4 +CH 6703 Osogna Ticino TI Riviera District 2107 Riviera 5287 46.3262 9.0212 4 +CH 6705 Cresciano Ticino TI Riviera District 2107 Riviera 5287 46.3027 9.0324 4 +CH 6707 Iragna Ticino TI Riviera District 2107 Riviera 5287 46.3248 8.9395 4 +CH 6710 Biasca Ticino TI Riviera District 2107 Biasca 5281 46.3665 9.0226 4 +CH 6710 Biasca Stazione Ticino TI Riviera District 2107 Biasca 5281 46.3597 8.9697 +CH 6670 Avegno Ticino TI Vallemaggia District 2108 Avegno Gordevio 5324 46.2037 8.7645 4 +CH 6672 Gordevio Ticino TI Vallemaggia District 2108 Avegno Gordevio 5324 46.2325 8.7665 4 +CH 6673 Maggia Ticino TI Vallemaggia District 2108 Maggia 5317 46.2661 8.7331 4 +CH 6674 Someo Ticino TI Vallemaggia District 2108 Maggia 5317 46.288 8.641 4 +CH 6674 Riveo Ticino TI Vallemaggia District 2108 Maggia 5317 46.2803 8.6049 4 +CH 6675 Cevio Ticino TI Vallemaggia District 2108 Cevio 5310 46.3042 8.5955 4 +CH 6676 Bignasco Ticino TI Vallemaggia District 2108 Cevio 5310 46.3422 8.594 4 +CH 6677 Aurigeno Ticino TI Vallemaggia District 2108 Maggia 5317 46.2225 8.7175 4 +CH 6677 Moghegno Ticino TI Vallemaggia District 2108 Maggia 5317 46.2391 8.6869 4 +CH 6678 Lodano Ticino TI Vallemaggia District 2108 Maggia 5317 46.2522 8.6581 4 +CH 6678 Coglio Ticino TI Vallemaggia District 2108 Maggia 5317 46.288 8.7071 4 +CH 6678 Giumaglio Ticino TI Vallemaggia District 2108 Maggia 5317 46.2958 8.6819 4 +CH 6682 Linescio Ticino TI Vallemaggia District 2108 Linescio 5315 46.3122 8.5768 4 +CH 6683 Niva (Vallemaggia) Ticino TI Vallemaggia District 2108 Campo (Vallemaggia) 5307 46.2763 8.542 4 +CH 6683 Cerentino Ticino TI Vallemaggia District 2108 Cerentino 5309 46.3099 8.5437 4 +CH 6684 Cimalmotto Ticino TI Vallemaggia District 2108 Campo (Vallemaggia) 5307 46.2748 8.4683 4 +CH 6684 Campo (Vallemaggia) Ticino TI Vallemaggia District 2108 Campo (Vallemaggia) 5307 46.2842 8.5061 4 +CH 6685 Bosco/Gurin Ticino TI Vallemaggia District 2108 Bosco/Gurin 5304 46.3203 8.484 4 +CH 6690 S. Carlo (Val Bavona) Ticino TI Vallemaggia District 2108 Cevio 5310 46.4277 8.5021 3 +CH 6690 Cavergno Ticino TI Vallemaggia District 2108 Cevio 5310 46.3733 8.5357 4 +CH 6692 Brontallo Ticino TI Vallemaggia District 2108 Lavizzara 5323 46.3581 8.6192 4 +CH 6692 Menzonio Ticino TI Vallemaggia District 2108 Lavizzara 5323 46.3554 8.6557 4 +CH 6693 Broglio Ticino TI Vallemaggia District 2108 Lavizzara 5323 46.3715 8.6747 4 +CH 6694 Prato-Sornico Ticino TI Vallemaggia District 2108 Lavizzara 5323 46.3976 8.6942 4 +CH 6695 Peccia Ticino TI Vallemaggia District 2108 Lavizzara 5323 46.4061 8.6407 4 +CH 6695 Piano di Peccia Ticino TI Vallemaggia District 2108 Lavizzara 5323 46.4294 8.5874 4 +CH 6696 Fusio Ticino TI Vallemaggia District 2108 Lavizzara 5323 46.4576 8.6418 4 +CH 6377 Seelisberg Kanton Uri UR Uri 400 Seelisberg 1215 46.9634 8.5748 4 +CH 6441 Rütli Kanton Uri UR Uri 400 Seelisberg 1215 46.9696 8.5983 4 +CH 6452 Sisikon Kanton Uri UR Uri 400 Sisikon 1217 46.941 8.6267 4 +CH 6454 Flüelen Kanton Uri UR Uri 400 Flüelen 1207 46.9143 8.6391 4 +CH 6460 Altdorf UR 2 Kanton Uri UR Uri 400 Altdorf (UR) 1201 46.8883 8.6409 +CH 6460 Altdorf UR Kanton Uri UR Uri 400 Altdorf (UR) 1201 46.8877 8.6414 4 +CH 6460 Altdorf UR 1 Kanton Uri UR Uri 400 Altdorf (UR) 1201 46.8883 8.6409 +CH 6461 Isenthal Kanton Uri UR Uri 400 Isenthal 1211 46.8866 8.5253 4 +CH 6462 Seedorf UR Kanton Uri UR Uri 400 Seedorf (UR) 1214 46.8825 8.5882 4 +CH 6463 Bürglen UR Kanton Uri UR Uri 400 Bürglen (UR) 1205 46.8854 8.6897 4 +CH 6464 Spiringen Kanton Uri UR Uri 400 Spiringen 1218 46.876 8.7352 4 +CH 6465 Unterschächen Kanton Uri UR Uri 400 Unterschächen 1219 46.8476 8.7868 4 +CH 6466 Bauen Kanton Uri UR Uri 400 Seedorf (UR) 1214 46.9299 8.5819 4 +CH 6467 Schattdorf Kanton Uri UR Uri 400 Schattdorf 1213 46.8565 8.6521 4 +CH 6468 Attinghausen Kanton Uri UR Uri 400 Attinghausen 1203 46.8535 8.5985 4 +CH 6469 Haldi b. Schattdorf Kanton Uri UR Uri 400 Schattdorf 1213 46.8451 8.6862 4 +CH 6472 Erstfeld Kanton Uri UR Uri 400 Erstfeld 1206 46.8124 8.6023 4 +CH 6473 Silenen Kanton Uri UR Uri 400 Silenen 1216 46.8042 8.6915 4 +CH 6474 Amsteg Kanton Uri UR Uri 400 Silenen 1216 46.7793 8.6544 4 +CH 6475 Bristen Kanton Uri UR Uri 400 Silenen 1216 46.7724 8.7632 4 +CH 6476 Intschi Kanton Uri UR Uri 400 Gurtnellen 1209 46.7712 8.6323 4 +CH 6482 Gurtnellen Kanton Uri UR Uri 400 Gurtnellen 1209 46.7352 8.6205 4 +CH 6484 Wassen UR Kanton Uri UR Uri 400 Wassen 1220 46.6974 8.597 4 +CH 6485 Meien Kanton Uri UR Uri 400 Wassen 1220 46.7338 8.5119 4 +CH 6487 Göschenen Kanton Uri UR Uri 400 Göschenen 1208 46.6639 8.4988 4 +CH 6490 Andermatt Kanton Uri UR Uri 400 Andermatt 1202 46.6205 8.6314 4 +CH 6491 Realp Kanton Uri UR Uri 400 Realp 1212 46.5803 8.4701 4 +CH 6493 Hospental Kanton Uri UR Uri 400 Hospental 1210 46.6066 8.5617 4 +CH 8751 Urnerboden Kanton Uri UR Uri 400 Spiringen 1218 46.8796 8.9019 4 +CH 1844 Villeneuve VD Canton de Vaud VD Aigle District 2221 Villeneuve (VD) 5414 46.4062 6.9685 4 +CH 1845 Noville Canton de Vaud VD Aigle District 2221 Noville 5408 46.3939 6.883 4 +CH 1846 Chessel Canton de Vaud VD Aigle District 2221 Chessel 5403 46.3534 6.8958 4 +CH 1847 Rennaz Canton de Vaud VD Aigle District 2221 Rennaz 5412 46.3758 6.9184 4 +CH 1852 Roche VD Canton de Vaud VD Aigle District 2221 Roche (VD) 5413 46.3598 6.9252 4 +CH 1853 Yvorne Canton de Vaud VD Aigle District 2221 Yvorne 5415 46.339 6.9458 4 +CH 1854 Leysin Canton de Vaud VD Aigle District 2221 Leysin 5407 46.3525 7.0111 4 +CH 1856 Corbeyrier Canton de Vaud VD Aigle District 2221 Corbeyrier 5404 46.3736 6.9855 4 +CH 1860 Aigle Canton de Vaud VD Aigle District 2221 Aigle 5401 46.3147 6.9716 4 +CH 1862 Les Mosses Canton de Vaud VD Aigle District 2221 Ormont-Dessous 5410 46.3943 7.1052 4 +CH 1862 La Comballaz Canton de Vaud VD Aigle District 2221 Ormont-Dessous 5410 46.3769 7.0778 4 +CH 1863 Le Sépey Canton de Vaud VD Aigle District 2221 Ormont-Dessous 5410 46.3731 7.0478 4 +CH 1864 Vers-l'Eglise Canton de Vaud VD Aigle District 2221 Ormont-Dessus 5411 46.3589 7.1178 4 +CH 1865 Les Diablerets Canton de Vaud VD Aigle District 2221 Ormont-Dessus 5411 46.3439 7.1757 4 +CH 1866 La Forclaz VD Canton de Vaud VD Aigle District 2221 Ormont-Dessous 5410 46.3425 7.0799 4 +CH 1867 Panex Canton de Vaud VD Aigle District 2221 Ollon 5409 46.3164 7.0267 4 +CH 1867 Ollon VD Canton de Vaud VD Aigle District 2221 Ollon 5409 46.2875 7.0022 4 +CH 1867 St-Triphon Canton de Vaud VD Aigle District 2221 Ollon 5409 46.2848 6.9717 4 +CH 1880 Les Posses-sur-Bex Canton de Vaud VD Aigle District 2221 Bex 5402 46.2742 7.0458 3 +CH 1880 Fenalet-sur-Bex Canton de Vaud VD Aigle District 2221 Bex 5402 46.2756 7.0316 4 +CH 1880 Frenières-sur-Bex Canton de Vaud VD Aigle District 2221 Bex 5402 46.2427 7.065 3 +CH 1880 Bex Canton de Vaud VD Aigle District 2221 Bex 5402 46.2479 7.0182 4 +CH 1880 Les Plans-sur-Bex Canton de Vaud VD Aigle District 2221 Bex 5402 46.2446 7.1149 4 +CH 1882 Gryon Canton de Vaud VD Aigle District 2221 Gryon 5405 46.2868 7.1252 4 +CH 1884 Arveyes Canton de Vaud VD Aigle District 2221 Ollon 5409 46.2879 7.0593 4 +CH 1884 Villars-sur-Ollon Canton de Vaud VD Aigle District 2221 Ollon 5409 46.3161 7.0871 4 +CH 1884 Huémoz Canton de Vaud VD Aigle District 2221 Ollon 5409 46.2955 7.0191 4 +CH 1885 Chesières Canton de Vaud VD Aigle District 2221 Ollon 5409 46.3047 7.0418 4 +CH 1892 Morcles Canton de Vaud VD Aigle District 2221 Lavey-Morcles 5406 46.2056 7.048 4 +CH 1892 Lavey-Village Canton de Vaud VD Aigle District 2221 Lavey-Morcles 5406 46.2149 7.0287 4 +CH 1892 Lavey-les-Bains Canton de Vaud VD Aigle District 2221 Lavey-Morcles 5406 46.2042 7.0179 4 +CH 1082 Corcelles-le-Jorat Canton de Vaud VD Broye-Vully District 2222 Corcelles-le-Jorat 5785 46.6013 6.7308 4 +CH 1085 Vulliens Canton de Vaud VD Broye-Vully District 2222 Vulliens 5803 46.6227 6.7936 4 +CH 1088 Ropraz Canton de Vaud VD Broye-Vully District 2222 Ropraz 5798 46.6109 6.7537 4 +CH 1509 Vucherens Canton de Vaud VD Broye-Vully District 2222 Vucherens 5692 46.6269 6.7759 4 +CH 1510 Syens Canton de Vaud VD Broye-Vully District 2222 Syens 5688 46.6429 6.7782 4 +CH 1510 Moudon Canton de Vaud VD Broye-Vully District 2222 Moudon 5678 46.672 6.7921 4 +CH 1512 Chavannes-sur-Moudon Canton de Vaud VD Broye-Vully District 2222 Chavannes-sur-Moudon 5665 46.6597 6.8188 4 +CH 1513 Rossenges Canton de Vaud VD Broye-Vully District 2222 Rossenges 5684 46.6543 6.775 4 +CH 1513 Hermenches Canton de Vaud VD Broye-Vully District 2222 Hermenches 5673 46.6374 6.7546 4 +CH 1514 Bussy-sur-Moudon Canton de Vaud VD Broye-Vully District 2222 Bussy-sur-Moudon 5663 46.6904 6.8096 4 +CH 1515 Villars-le-Comte Canton de Vaud VD Broye-Vully District 2222 Villars-le-Comte 5690 46.7135 6.8018 4 +CH 1521 Curtilles Canton de Vaud VD Broye-Vully District 2222 Curtilles 5669 46.7005 6.8506 4 +CH 1522 Lucens Canton de Vaud VD Broye-Vully District 2222 Lucens 5675 46.7093 6.8375 4 +CH 1522 Oulens-sur-Lucens Canton de Vaud VD Broye-Vully District 2222 Lucens 5675 46.7076 6.8142 3 +CH 1523 Granges-près-Marnand Canton de Vaud VD Broye-Vully District 2222 Valbroye 5831 46.7672 6.887 1 +CH 1524 Marnand Canton de Vaud VD Broye-Vully District 2222 Valbroye 5831 46.7611 6.9046 4 +CH 1525 Henniez Canton de Vaud VD Broye-Vully District 2222 Henniez 5819 46.7426 6.8848 4 +CH 1525 Seigneux Canton de Vaud VD Broye-Vully District 2222 Valbroye 5831 46.7283 6.8779 4 +CH 1526 Forel-sur-Lucens Canton de Vaud VD Broye-Vully District 2222 Lucens 5675 46.7264 6.8242 4 +CH 1526 Cremin Canton de Vaud VD Broye-Vully District 2222 Lucens 5675 46.7235 6.8406 4 +CH 1530 Payerne Canton de Vaud VD Broye-Vully District 2222 Payerne 5822 46.825 6.9299 4 +CH 1534 Sassel Canton de Vaud VD Broye-Vully District 2222 Valbroye 5831 46.777 6.8593 4 +CH 1535 Combremont-le-Grand Canton de Vaud VD Broye-Vully District 2222 Valbroye 5831 46.765 6.8225 4 +CH 1536 Combremont-le-Petit Canton de Vaud VD Broye-Vully District 2222 Valbroye 5831 46.7461 6.8037 4 +CH 1537 Champtauroz Canton de Vaud VD Broye-Vully District 2222 Champtauroz 5812 46.759 6.7863 4 +CH 1538 Treytorrens (Payerne) Canton de Vaud VD Broye-Vully District 2222 Treytorrens (Payerne) 5828 46.7748 6.8024 4 +CH 1543 Grandcour Canton de Vaud VD Broye-Vully District 2222 Grandcour 5817 46.8724 6.9324 4 +CH 1545 Chevroux Canton de Vaud VD Broye-Vully District 2222 Chevroux 5813 46.902 6.8992 4 +CH 1551 Vers-chez-Perrin Canton de Vaud VD Broye-Vully District 2222 Payerne 5822 46.798 6.9479 4 +CH 1552 Trey Canton de Vaud VD Broye-Vully District 2222 Trey 5827 46.7749 6.9232 4 +CH 1554 Rossens VD Canton de Vaud VD Broye-Vully District 2222 Villarzel 5830 46.7331 6.9227 4 +CH 1554 Sédeilles Canton de Vaud VD Broye-Vully District 2222 Villarzel 5830 46.7428 6.9302 4 +CH 1555 Villarzel Canton de Vaud VD Broye-Vully District 2222 Villarzel 5830 46.7438 6.9091 4 +CH 1562 Corcelles-près-Payerne Canton de Vaud VD Broye-Vully District 2222 Corcelles-près-Payerne 5816 46.8425 6.9661 4 +CH 1565 Missy Canton de Vaud VD Broye-Vully District 2222 Missy 5821 46.8761 6.9739 4 +CH 1580 Avenches Canton de Vaud VD Broye-Vully District 2222 Avenches 5451 46.8876 7.0387 4 +CH 1580 Donatyre Canton de Vaud VD Broye-Vully District 2222 Avenches 5451 46.8726 7.0601 3 +CH 1580 Oleyres Canton de Vaud VD Broye-Vully District 2222 Avenches 5451 46.855 7.0409 4 +CH 1584 Villars-le-Grand Canton de Vaud VD Broye-Vully District 2222 Vully-les-Lacs 5464 46.9054 6.9986 4 +CH 1585 Salavaux Canton de Vaud VD Broye-Vully District 2222 Vully-les-Lacs 5464 46.9149 7.0361 4 +CH 1585 Cotterd Canton de Vaud VD Broye-Vully District 2222 Vully-les-Lacs 5464 46.9232 7.0273 4 +CH 1585 Bellerive VD Canton de Vaud VD Broye-Vully District 2222 Vully-les-Lacs 5464 46.9255 7.022 4 +CH 1586 Vallamand Canton de Vaud VD Broye-Vully District 2222 Vully-les-Lacs 5464 46.9303 7.0426 4 +CH 1587 Constantine Canton de Vaud VD Broye-Vully District 2222 Vully-les-Lacs 5464 46.9103 7.0119 4 +CH 1587 Montmagny Canton de Vaud VD Broye-Vully District 2222 Vully-les-Lacs 5464 46.9265 7.006 4 +CH 1588 Cudrefin Canton de Vaud VD Broye-Vully District 2222 Cudrefin 5456 46.9597 7.0127 4 +CH 1589 Chabrey Canton de Vaud VD Broye-Vully District 2222 Vully-les-Lacs 5464 46.942 6.9647 4 +CH 1595 Faoug Canton de Vaud VD Broye-Vully District 2222 Faoug 5458 46.9068 7.0726 4 +CH 1682 Lovatens Canton de Vaud VD Broye-Vully District 2222 Lovatens 5674 46.6921 6.8659 4 +CH 1682 Prévonloup Canton de Vaud VD Broye-Vully District 2222 Prévonloup 5683 46.6979 6.8828 4 +CH 1682 Villars-Bramard Canton de Vaud VD Broye-Vully District 2222 Valbroye 5831 46.7202 6.9046 4 +CH 1682 Cerniaz VD Canton de Vaud VD Broye-Vully District 2222 Valbroye 5831 46.7291 6.8983 4 +CH 1682 Dompierre VD Canton de Vaud VD Broye-Vully District 2222 Dompierre (VD) 5671 46.7113 6.8801 4 +CH 1683 Brenles Canton de Vaud VD Broye-Vully District 2222 Lucens 5675 46.6678 6.8562 4 +CH 1683 Sarzens Canton de Vaud VD Broye-Vully District 2222 Lucens 5675 46.6825 6.8495 4 +CH 1683 Chesalles-sur-Moudon Canton de Vaud VD Broye-Vully District 2222 Lucens 5675 46.6747 6.8366 3 +CH 1787 Mur (Vully) VD Canton de Vaud VD Broye-Vully District 2222 Vully-les-Lacs 5464 46.9388 7.0554 3 +CH 1031 Mex VD Canton de Vaud VD Gros-de-Vaud District 2223 Mex (VD) 5489 46.5771 6.559 4 +CH 1034 Boussens Canton de Vaud VD Gros-de-Vaud District 2223 Boussens 5473 46.6033 6.586 4 +CH 1035 Bournens Canton de Vaud VD Gros-de-Vaud District 2223 Bournens 5472 46.6089 6.564 4 +CH 1036 Sullens Canton de Vaud VD Gros-de-Vaud District 2223 Sullens 5501 46.5912 6.5674 4 +CH 1037 Etagnières Canton de Vaud VD Gros-de-Vaud District 2223 Etagnières 5521 46.6014 6.6085 4 +CH 1038 Bercher Canton de Vaud VD Gros-de-Vaud District 2223 Bercher 5512 46.6916 6.7063 4 +CH 1040 Echallens Canton de Vaud VD Gros-de-Vaud District 2223 Echallens 5518 46.6384 6.6353 4 +CH 1040 Villars-le-Terroir Canton de Vaud VD Gros-de-Vaud District 2223 Villars-le-Terroir 5537 46.6618 6.6426 4 +CH 1040 St-Barthélemy VD Canton de Vaud VD Gros-de-Vaud District 2223 Saint-Barthélemy (VD) 5535 46.6348 6.6021 4 +CH 1041 Montaubion-Chardonney Canton de Vaud VD Gros-de-Vaud District 2223 Jorat-Menthue 5804 46.6458 6.713 4 +CH 1041 Poliez-le-Grand Canton de Vaud VD Gros-de-Vaud District 2223 Montilliez 5540 46.6397 6.6703 4 +CH 1041 Poliez-Pittet Canton de Vaud VD Gros-de-Vaud District 2223 Poliez-Pittet 5533 46.6235 6.6887 4 +CH 1041 Bottens Canton de Vaud VD Gros-de-Vaud District 2223 Bottens 5514 46.6151 6.6621 4 +CH 1041 Naz Canton de Vaud VD Gros-de-Vaud District 2223 Montilliez 5540 46.6594 6.694 4 +CH 1041 Dommartin Canton de Vaud VD Gros-de-Vaud District 2223 Montilliez 5540 46.6438 6.6973 4 +CH 1042 Assens Canton de Vaud VD Gros-de-Vaud District 2223 Assens 5511 46.6178 6.6273 4 +CH 1042 Bioley-Orjulaz Canton de Vaud VD Gros-de-Vaud District 2223 Assens 5511 46.6193 6.6009 4 +CH 1042 Bettens Canton de Vaud VD Gros-de-Vaud District 2223 Bettens 5471 46.6242 6.5751 4 +CH 1043 Sugnens Canton de Vaud VD Gros-de-Vaud District 2223 Montilliez 5540 46.6544 6.6729 4 +CH 1044 Fey Canton de Vaud VD Gros-de-Vaud District 2223 Fey 5522 46.6729 6.6801 4 +CH 1045 Ogens Canton de Vaud VD Gros-de-Vaud District 2223 Ogens 5680 46.7093 6.7236 4 +CH 1046 Rueyres Canton de Vaud VD Gros-de-Vaud District 2223 Rueyres 5534 46.6975 6.6939 4 +CH 1047 Oppens Canton de Vaud VD Gros-de-Vaud District 2223 Oppens 5923 46.7153 6.695 4 +CH 1053 Cugy VD Canton de Vaud VD Gros-de-Vaud District 2223 Cugy (VD) 5516 46.5856 6.658 4 +CH 1053 Bretigny-sur-Morrens Canton de Vaud VD Gros-de-Vaud District 2223 Bretigny-sur-Morrens 5515 46.601 6.6443 4 +CH 1054 Morrens VD Canton de Vaud VD Gros-de-Vaud District 2223 Morrens (VD) 5527 46.5923 6.6271 4 +CH 1055 Froideville Canton de Vaud VD Gros-de-Vaud District 2223 Froideville 5523 46.5982 6.6917 4 +CH 1058 Villars-Tiercelin Canton de Vaud VD Gros-de-Vaud District 2223 Jorat-Menthue 5804 46.6199 6.7109 4 +CH 1059 Peney-le-Jorat Canton de Vaud VD Gros-de-Vaud District 2223 Jorat-Menthue 5804 46.6301 6.729 4 +CH 1061 Villars-Mendraz Canton de Vaud VD Gros-de-Vaud District 2223 Jorat-Menthue 5804 46.6453 6.7268 4 +CH 1062 Sottens Canton de Vaud VD Gros-de-Vaud District 2223 Jorat-Menthue 5804 46.6536 6.7399 4 +CH 1063 Boulens Canton de Vaud VD Gros-de-Vaud District 2223 Boulens 5661 46.6789 6.7183 4 +CH 1063 Chapelle-sur-Moudon Canton de Vaud VD Gros-de-Vaud District 2223 Montanaire 5693 46.6692 6.7359 4 +CH 1063 Martherenges Canton de Vaud VD Gros-de-Vaud District 2223 Montanaire 5693 46.6613 6.7558 4 +CH 1063 Peyres-Possens Canton de Vaud VD Gros-de-Vaud District 2223 Montanaire 5693 46.6628 6.7069 3 +CH 1302 Vufflens-la-Ville Canton de Vaud VD Gros-de-Vaud District 2223 Vufflens-la-Ville 5503 46.5754 6.5373 4 +CH 1303 Penthaz Canton de Vaud VD Gros-de-Vaud District 2223 Penthaz 5496 46.5988 6.5414 4 +CH 1305 Penthalaz Canton de Vaud VD Gros-de-Vaud District 2223 Penthalaz 5495 46.6128 6.5291 4 +CH 1306 Daillens Canton de Vaud VD Gros-de-Vaud District 2223 Daillens 5480 46.6286 6.5497 4 +CH 1307 Lussery-Villars Canton de Vaud VD Gros-de-Vaud District 2223 Lussery-Villars 5487 46.6328 6.5255 4 +CH 1375 Penthéréaz Canton de Vaud VD Gros-de-Vaud District 2223 Penthéréaz 5531 46.6828 6.6065 4 +CH 1376 Eclagnens Canton de Vaud VD Gros-de-Vaud District 2223 Goumoëns 5541 46.6491 6.592 4 +CH 1376 Goumoens-la-Ville Canton de Vaud VD Gros-de-Vaud District 2223 Goumoëns 5541 46.6602 6.6111 4 +CH 1376 Goumoens-le-Jux Canton de Vaud VD Gros-de-Vaud District 2223 Goumoëns 5541 46.6677 6.588 3 +CH 1377 Oulens-sous-Echallens Canton de Vaud VD Gros-de-Vaud District 2223 Oulens-sous-Echallens 5529 46.6467 6.573 4 +CH 1409 Chanéaz Canton de Vaud VD Gros-de-Vaud District 2223 Montanaire 5693 46.7276 6.7445 4 +CH 1410 Correvon Canton de Vaud VD Gros-de-Vaud District 2223 Montanaire 5693 46.7184 6.7414 4 +CH 1410 Thierrens Canton de Vaud VD Gros-de-Vaud District 2223 Montanaire 5693 46.7038 6.7589 4 +CH 1410 Denezy Canton de Vaud VD Gros-de-Vaud District 2223 Montanaire 5693 46.7222 6.7857 4 +CH 1410 St-Cierges Canton de Vaud VD Gros-de-Vaud District 2223 Montanaire 5693 46.6878 6.7447 4 +CH 1416 Pailly Canton de Vaud VD Gros-de-Vaud District 2223 Pailly 5530 46.6997 6.6735 4 +CH 1417 Epautheyres Canton de Vaud VD Gros-de-Vaud District 2223 Essertines-sur-Yverdon 5520 46.7348 6.6454 4 +CH 1417 Essertines-sur-Yverdon Canton de Vaud VD Gros-de-Vaud District 2223 Essertines-sur-Yverdon 5520 46.7142 6.6445 4 +CH 1418 Vuarrens Canton de Vaud VD Gros-de-Vaud District 2223 Vuarrens 5539 46.6858 6.6459 4 +CH 1515 Neyruz-sur-Moudon Canton de Vaud VD Gros-de-Vaud District 2223 Montanaire 5693 46.6972 6.7876 3 +CH 1148 La Praz Canton de Vaud VD Jura-Nord vaudois District 2224 La Praz 5758 46.6698 6.4243 4 +CH 1321 Arnex-sur-Orbe Canton de Vaud VD Jura-Nord vaudois District 2224 Arnex-sur-Orbe 5743 46.69 6.5168 4 +CH 1322 Croy Canton de Vaud VD Jura-Nord vaudois District 2224 Croy 5752 46.6859 6.4859 4 +CH 1323 Romainmôtier Canton de Vaud VD Jura-Nord vaudois District 2224 Romainmôtier-Envy 5761 46.6869 6.4618 4 +CH 1324 Premier Canton de Vaud VD Jura-Nord vaudois District 2224 Premier 5759 46.7092 6.4419 4 +CH 1325 Vaulion Canton de Vaud VD Jura-Nord vaudois District 2224 Vaulion 5765 46.6848 6.3832 4 +CH 1326 Juriens Canton de Vaud VD Jura-Nord vaudois District 2224 Juriens 5754 46.6828 6.4301 4 +CH 1329 Bretonnières Canton de Vaud VD Jura-Nord vaudois District 2224 Bretonnières 5748 46.7159 6.4704 4 +CH 1337 Vallorbe Canton de Vaud VD Jura-Nord vaudois District 2224 Vallorbe 5764 46.7078 6.3714 4 +CH 1338 Ballaigues Canton de Vaud VD Jura-Nord vaudois District 2224 Ballaigues 5744 46.7349 6.4104 4 +CH 1341 Orient Canton de Vaud VD Jura-Nord vaudois District 2224 Le Chenit 5872 46.6015 6.2394 4 +CH 1341 L'Orient Canton de Vaud VD Jura-Nord vaudois District 2224 Le Chenit 5872 46.5912 6.2577 4 +CH 1342 Le Pont Canton de Vaud VD Jura-Nord vaudois District 2224 L'Abbaye 5871 46.6681 6.3377 4 +CH 1343 Les Charbonnières Canton de Vaud VD Jura-Nord vaudois District 2224 Le Lieu 5873 46.6785 6.3026 4 +CH 1344 L'Abbaye Canton de Vaud VD Jura-Nord vaudois District 2224 L'Abbaye 5871 46.6405 6.324 4 +CH 1345 Le Séchey Canton de Vaud VD Jura-Nord vaudois District 2224 Le Lieu 5873 46.656 6.2997 4 +CH 1345 Le Lieu Canton de Vaud VD Jura-Nord vaudois District 2224 Le Lieu 5873 46.6487 6.2605 4 +CH 1346 Les Bioux Canton de Vaud VD Jura-Nord vaudois District 2224 L'Abbaye 5871 46.615 6.2908 4 +CH 1347 Le Solliat Canton de Vaud VD Jura-Nord vaudois District 2224 Le Chenit 5872 46.6259 6.2202 4 +CH 1347 Le Sentier Canton de Vaud VD Jura-Nord vaudois District 2224 Le Chenit 5872 46.6106 6.2143 4 +CH 1348 Le Brassus Canton de Vaud VD Jura-Nord vaudois District 2224 Le Chenit 5872 46.5685 6.1906 4 +CH 1350 Orbe Canton de Vaud VD Jura-Nord vaudois District 2224 Orbe 5757 46.727 6.5431 4 +CH 1352 Agiez Canton de Vaud VD Jura-Nord vaudois District 2224 Agiez 5742 46.7182 6.5077 4 +CH 1353 Bofflens Canton de Vaud VD Jura-Nord vaudois District 2224 Bofflens 5747 46.7036 6.4953 4 +CH 1354 Montcherand Canton de Vaud VD Jura-Nord vaudois District 2224 Montcherand 5756 46.734 6.5108 4 +CH 1355 Sergey Canton de Vaud VD Jura-Nord vaudois District 2224 Sergey 5762 46.7512 6.501 4 +CH 1355 L'Abergement Canton de Vaud VD Jura-Nord vaudois District 2224 L'Abergement 5741 46.7547 6.4832 4 +CH 1356 La Russille Canton de Vaud VD Jura-Nord vaudois District 2224 Les Clées 5750 46.7392 6.4879 4 +CH 1356 Les Clées Canton de Vaud VD Jura-Nord vaudois District 2224 Les Clées 5750 46.7297 6.4624 4 +CH 1357 Lignerolle Canton de Vaud VD Jura-Nord vaudois District 2224 Lignerolle 5755 46.7498 6.4488 4 +CH 1358 Valeyres-sous-Rances Canton de Vaud VD Jura-Nord vaudois District 2224 Valeyres-sous-Rances 5763 46.7482 6.5354 4 +CH 1372 Bavois Canton de Vaud VD Jura-Nord vaudois District 2224 Bavois 5746 46.6793 6.566 4 +CH 1373 Chavornay Canton de Vaud VD Jura-Nord vaudois District 2224 Chavornay 5749 46.705 6.5684 4 +CH 1374 Corcelles-sur-Chavornay Canton de Vaud VD Jura-Nord vaudois District 2224 Chavornay 5749 46.7027 6.6046 4 +CH 1400 Yverdon 2 Canton de Vaud VD Jura-Nord vaudois District 2224 Yverdon-les-Bains 5938 46.7743 6.6371 6 +CH 1400 Yverdon-les-Bains Canton de Vaud VD Jura-Nord vaudois District 2224 Yverdon-les-Bains 5938 46.7762 6.6385 4 +CH 1400 Cheseaux-Noréaz Canton de Vaud VD Jura-Nord vaudois District 2224 Cheseaux-Noréaz 5909 46.7969 6.6878 3 +CH 1401 Yverdon-les-Bains Canton de Vaud VD Jura-Nord vaudois District 2224 Yverdon-les-Bains 5938 46.7785 6.6411 +CH 1404 Villars-Epeney Canton de Vaud VD Jura-Nord vaudois District 2224 Villars-Epeney 5935 46.7832 6.6991 4 +CH 1404 Cuarny Canton de Vaud VD Jura-Nord vaudois District 2224 Cuarny 5911 46.7708 6.692 4 +CH 1405 Pomy Canton de Vaud VD Jura-Nord vaudois District 2224 Pomy 5926 46.7583 6.6692 4 +CH 1406 Cronay Canton de Vaud VD Jura-Nord vaudois District 2224 Cronay 5910 46.7568 6.7029 4 +CH 1407 Donneloye Canton de Vaud VD Jura-Nord vaudois District 2224 Donneloye 5913 46.7519 6.7198 4 +CH 1407 Mézery-près-Donneloye Canton de Vaud VD Jura-Nord vaudois District 2224 Donneloye 5913 46.7531 6.7308 3 +CH 1407 Bioley-Magnoux Canton de Vaud VD Jura-Nord vaudois District 2224 Bioley-Magnoux 5903 46.7267 6.7144 4 +CH 1407 Gossens Canton de Vaud VD Jura-Nord vaudois District 2224 Donneloye 5913 46.7398 6.699 4 +CH 1408 Prahins Canton de Vaud VD Jura-Nord vaudois District 2224 Donneloye 5913 46.7365 6.733 4 +CH 1412 Ursins Canton de Vaud VD Jura-Nord vaudois District 2224 Ursins 5932 46.7345 6.6693 4 +CH 1412 Valeyres-sous-Ursins Canton de Vaud VD Jura-Nord vaudois District 2224 Valeyres-sous-Ursins 5934 46.7453 6.6533 4 +CH 1413 Orzens Canton de Vaud VD Jura-Nord vaudois District 2224 Orzens 5925 46.7263 6.683 4 +CH 1415 Démoret Canton de Vaud VD Jura-Nord vaudois District 2224 Démoret 5912 46.7479 6.7578 4 +CH 1415 Molondin Canton de Vaud VD Jura-Nord vaudois District 2224 Molondin 5921 46.7631 6.7478 4 +CH 1420 Fiez Canton de Vaud VD Jura-Nord vaudois District 2224 Fiez 5556 46.8272 6.6266 4 +CH 1421 Fontaines-sur-Grandson Canton de Vaud VD Jura-Nord vaudois District 2224 Fontaines-sur-Grandson 5557 46.834 6.6188 4 +CH 1421 Grandevent Canton de Vaud VD Jura-Nord vaudois District 2224 Grandevent 5560 46.8419 6.6055 4 +CH 1422 Grandson Canton de Vaud VD Jura-Nord vaudois District 2224 Grandson 5561 46.8122 6.6529 4 +CH 1423 Villars-Burquin Canton de Vaud VD Jura-Nord vaudois District 2224 Tévenon 5571 46.8472 6.6262 4 +CH 1423 Romairon Canton de Vaud VD Jura-Nord vaudois District 2224 Tévenon 5571 46.8506 6.6422 4 +CH 1423 Vaugondry Canton de Vaud VD Jura-Nord vaudois District 2224 Tévenon 5571 46.8448 6.6365 4 +CH 1423 Fontanezier Canton de Vaud VD Jura-Nord vaudois District 2224 Tévenon 5571 46.8641 6.6577 4 +CH 1424 Champagne Canton de Vaud VD Jura-Nord vaudois District 2224 Champagne 5553 46.8358 6.6516 4 +CH 1425 Onnens VD Canton de Vaud VD Jura-Nord vaudois District 2224 Onnens (VD) 5565 46.8429 6.6899 4 +CH 1426 Corcelles-près-Concise Canton de Vaud VD Jura-Nord vaudois District 2224 Corcelles-près-Concise 5555 46.8425 6.7101 4 +CH 1426 Concise Canton de Vaud VD Jura-Nord vaudois District 2224 Concise 5554 46.8558 6.737 4 +CH 1427 Bonvillars Canton de Vaud VD Jura-Nord vaudois District 2224 Bonvillars 5551 46.8376 6.6746 4 +CH 1428 Mutrux Canton de Vaud VD Jura-Nord vaudois District 2224 Mutrux 5563 46.8817 6.7247 4 +CH 1428 Provence Canton de Vaud VD Jura-Nord vaudois District 2224 Provence 5566 46.8915 6.6932 4 +CH 1429 Giez Canton de Vaud VD Jura-Nord vaudois District 2224 Giez 5559 46.8145 6.6098 4 +CH 1430 Orges Canton de Vaud VD Jura-Nord vaudois District 2224 Orges 5924 46.8122 6.5831 4 +CH 1431 Vugelles-La Mothe Canton de Vaud VD Jura-Nord vaudois District 2224 Vugelles-La Mothe 5937 46.825 6.5738 4 +CH 1431 Novalles Canton de Vaud VD Jura-Nord vaudois District 2224 Novalles 5564 46.8319 6.5925 4 +CH 1432 Gressy Canton de Vaud VD Jura-Nord vaudois District 2224 Yverdon-les-Bains 5938 46.7525 6.6386 4 +CH 1432 Belmont-sur-Yverdon Canton de Vaud VD Jura-Nord vaudois District 2224 Belmont-sur-Yverdon 5902 46.7379 6.6255 4 +CH 1433 Suchy Canton de Vaud VD Jura-Nord vaudois District 2224 Suchy 5929 46.7213 6.6051 4 +CH 1434 Ependes VD Canton de Vaud VD Jura-Nord vaudois District 2224 Ependes (VD) 5914 46.7448 6.6027 4 +CH 1435 Essert-Pittet Canton de Vaud VD Jura-Nord vaudois District 2224 Chavornay 5749 46.7288 6.5789 4 +CH 1436 Treycovagnes Canton de Vaud VD Jura-Nord vaudois District 2224 Treycovagnes 5931 46.7695 6.6067 4 +CH 1436 Chamblon Canton de Vaud VD Jura-Nord vaudois District 2224 Chamblon 5904 46.778 6.5987 4 +CH 1437 Suscévaz Canton de Vaud VD Jura-Nord vaudois District 2224 Suscévaz 5930 46.7621 6.5868 4 +CH 1438 Mathod Canton de Vaud VD Jura-Nord vaudois District 2224 Mathod 5919 46.7596 6.565 4 +CH 1439 Rances Canton de Vaud VD Jura-Nord vaudois District 2224 Rances 5760 46.7659 6.5076 4 +CH 1440 Montagny-Chamard Canton de Vaud VD Jura-Nord vaudois District 2224 Montagny-près-Yverdon 5922 46.7904 6.6098 +CH 1441 Valeyres-sous-Montagny Canton de Vaud VD Jura-Nord vaudois District 2224 Valeyres-sous-Montagny 5933 46.8005 6.6037 4 +CH 1442 Montagny-près-Yverdon Canton de Vaud VD Jura-Nord vaudois District 2224 Montagny-près-Yverdon 5922 46.7904 6.6098 4 +CH 1443 Essert-sous-Champvent Canton de Vaud VD Jura-Nord vaudois District 2224 Champvent 5905 46.7938 6.5845 3 +CH 1443 Villars-sous-Champvent Canton de Vaud VD Jura-Nord vaudois District 2224 Champvent 5905 46.7854 6.5847 3 +CH 1443 Champvent Canton de Vaud VD Jura-Nord vaudois District 2224 Champvent 5905 46.7838 6.5622 4 +CH 1445 Vuiteboeuf Canton de Vaud VD Jura-Nord vaudois District 2224 Vuiteboeuf 5766 46.8047 6.5542 4 +CH 1446 Baulmes Canton de Vaud VD Jura-Nord vaudois District 2224 Baulmes 5745 46.7864 6.5048 4 +CH 1450 La Sagne (Ste-Croix) Canton de Vaud VD Jura-Nord vaudois District 2224 Sainte-Croix 5568 46.8085 6.4984 4 +CH 1450 Le Château-de-Ste-Croix Canton de Vaud VD Jura-Nord vaudois District 2224 Sainte-Croix 5568 46.8168 6.5359 4 +CH 1450 Ste-Croix Canton de Vaud VD Jura-Nord vaudois District 2224 Sainte-Croix 5568 46.8236 6.5036 3 +CH 1452 Les Rasses Canton de Vaud VD Jura-Nord vaudois District 2224 Bullet 5552 46.8382 6.5353 4 +CH 1453 Mauborget Canton de Vaud VD Jura-Nord vaudois District 2224 Mauborget 5562 46.8687 6.609 4 +CH 1453 Bullet Canton de Vaud VD Jura-Nord vaudois District 2224 Bullet 5552 46.8491 6.5608 4 +CH 1454 L'Auberson Canton de Vaud VD Jura-Nord vaudois District 2224 Sainte-Croix 5568 46.8177 6.46 4 +CH 1454 La Vraconnaz Canton de Vaud VD Jura-Nord vaudois District 2224 Sainte-Croix 5568 46.8434 6.481 4 +CH 1462 Yvonand Canton de Vaud VD Jura-Nord vaudois District 2224 Yvonand 5939 46.7989 6.7367 4 +CH 1463 Rovray Canton de Vaud VD Jura-Nord vaudois District 2224 Rovray 5928 46.7889 6.7667 4 +CH 1464 Chêne-Pâquier Canton de Vaud VD Jura-Nord vaudois District 2224 Chêne-Pâquier 5908 46.7659 6.7706 4 +CH 1464 Chavannes-le-Chêne Canton de Vaud VD Jura-Nord vaudois District 2224 Chavannes-le-Chêne 5907 46.7801 6.7809 4 +CH 1000 Lausanne 22 Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5218 6.633 +CH 1000 Lausanne 14 Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5218 6.633 +CH 1000 Lausanne 26 Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5557 6.6962 1 +CH 1000 Lausanne 12 Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5218 6.633 +CH 1000 Lausanne 27 Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5416 6.682 1 +CH 1000 Lausanne 18 Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5218 6.633 +CH 1000 Lausanne 10 Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5218 6.633 +CH 1000 Lausanne 16 Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5218 6.633 +CH 1000 Lausanne 25 Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5726 6.694 1 +CH 1001 Lausanne Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.516 6.6328 +CH 1002 Lausanne Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.516 6.6328 +CH 1003 Lausanne Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.52 6.6305 4 +CH 1004 Lausanne Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5289 6.6178 4 +CH 1005 Lausanne Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5217 6.6432 4 +CH 1006 Lausanne Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.4912 6.6349 4 +CH 1007 Lausanne Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.488 6.607 4 +CH 1008 Jouxtens-Mézery Canton de Vaud VD Lausanne District 2225 Jouxtens-Mézery 5585 46.5519 6.596 3 +CH 1010 Lausanne Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5377 6.6553 4 +CH 1011 Lausanne Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5256 6.6433 4 +CH 1012 Lausanne Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5271 6.6566 4 +CH 1014 Lausanne Adm cant Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5218 6.633 +CH 1014 Lausanne Adm cant VD Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5218 6.633 +CH 1015 Lausanne Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5192 6.5762 4 +CH 1018 Lausanne Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5381 6.6279 4 +CH 1019 Lausanne Services spéciaux Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5218 6.633 +CH 1019 Lausanne Canton de Vaud VD Lausanne District 2225 Lausanne 5586 46.5218 6.633 +CH 1032 Romanel-sur-Lausanne Canton de Vaud VD Lausanne District 2225 Romanel-sur-Lausanne 5592 46.5659 6.6091 4 +CH 1033 Cheseaux-sur-Lausanne Canton de Vaud VD Lausanne District 2225 Cheseaux-sur-Lausanne 5582 46.5822 6.5958 4 +CH 1039 Cheseaux Polyval Canton de Vaud VD Lausanne District 2225 Cheseaux-sur-Lausanne 5582 46.5845 6.5955 +CH 1052 Le Mont-sur-Lausanne Canton de Vaud VD Lausanne District 2225 Le Mont-sur-Lausanne 5587 46.5616 6.6445 4 +CH 1066 Epalinges Canton de Vaud VD Lausanne District 2225 Epalinges 5584 46.5507 6.6685 4 +CH 1009 Pully Canton de Vaud VD Lavaux-Oron District 2226 Pully 5590 46.4884 6.6557 4 +CH 1068 Les Monts-de-Pully Canton de Vaud VD Lavaux-Oron District 2226 Pully 5590 46.5346 6.6852 4 +CH 1070 Puidoux Canton de Vaud VD Lavaux-Oron District 2226 Puidoux 5607 46.4945 6.7779 4 +CH 1071 Rivaz Canton de Vaud VD Lavaux-Oron District 2226 Rivaz 5609 46.458 6.7747 4 +CH 1071 Chexbres Canton de Vaud VD Lavaux-Oron District 2226 Chexbres 5601 46.4835 6.784 4 +CH 1071 St-Saphorin (Lavaux) Canton de Vaud VD Lavaux-Oron District 2226 Saint-Saphorin (Lavaux) 5610 46.4554 6.789 4 +CH 1072 Forel (Lavaux) Canton de Vaud VD Lavaux-Oron District 2226 Forel (Lavaux) 5604 46.5381 6.7631 4 +CH 1073 Savigny Canton de Vaud VD Lavaux-Oron District 2226 Savigny 5611 46.5447 6.723 4 +CH 1073 Mollie-Margot Canton de Vaud VD Lavaux-Oron District 2226 Savigny 5611 46.56 6.7377 4 +CH 1076 Ferlens VD Canton de Vaud VD Lavaux-Oron District 2226 Jorat-Mézières 5806 46.589 6.7891 4 +CH 1077 Servion Canton de Vaud VD Lavaux-Oron District 2226 Servion 5799 46.5737 6.7801 4 +CH 1078 Essertes Canton de Vaud VD Lavaux-Oron District 2226 Oron 5805 46.5645 6.789 4 +CH 1080 Les Cullayes Canton de Vaud VD Lavaux-Oron District 2226 Servion 5799 46.5728 6.7558 4 +CH 1081 Montpreveyres Canton de Vaud VD Lavaux-Oron District 2226 Montpreveyres 5792 46.5813 6.7305 4 +CH 1083 Mézières VD Canton de Vaud VD Lavaux-Oron District 2226 Jorat-Mézières 5806 46.5871 6.7656 4 +CH 1084 Carrouge VD Canton de Vaud VD Lavaux-Oron District 2226 Jorat-Mézières 5806 46.6027 6.7728 4 +CH 1090 La Croix (Lutry) Canton de Vaud VD Lavaux-Oron District 2226 Lutry 5606 46.5215 6.7054 4 +CH 1091 Aran Canton de Vaud VD Lavaux-Oron District 2226 Bourg-en-Lavaux 5613 46.5081 6.7154 4 +CH 1091 Chenaux Canton de Vaud VD Lavaux-Oron District 2226 Bourg-en-Lavaux 5613 46.4954 6.7307 4 +CH 1091 Grandvaux Canton de Vaud VD Lavaux-Oron District 2226 Bourg-en-Lavaux 5613 46.5045 6.7261 4 +CH 1092 Belmont-sur-Lausanne Canton de Vaud VD Lavaux-Oron District 2226 Belmont-sur-Lausanne 5581 46.5265 6.6876 4 +CH 1093 La Conversion Canton de Vaud VD Lavaux-Oron District 2226 Lutry 5606 46.5141 6.6858 4 +CH 1094 Paudex Canton de Vaud VD Lavaux-Oron District 2226 Paudex 5588 46.4828 6.6715 4 +CH 1095 Lutry Canton de Vaud VD Lavaux-Oron District 2226 Lutry 5606 46.4875 6.6881 4 +CH 1096 Cully Canton de Vaud VD Lavaux-Oron District 2226 Bourg-en-Lavaux 5613 46.4699 6.7261 4 +CH 1096 Villette (Lavaux) Canton de Vaud VD Lavaux-Oron District 2226 Bourg-en-Lavaux 5613 46.4744 6.7009 4 +CH 1097 Riex Canton de Vaud VD Lavaux-Oron District 2226 Bourg-en-Lavaux 5613 46.5008 6.7406 4 +CH 1098 Epesses Canton de Vaud VD Lavaux-Oron District 2226 Bourg-en-Lavaux 5613 46.4966 6.7497 4 +CH 1607 Les Tavernes Canton de Vaud VD Lavaux-Oron District 2226 Oron 5805 46.5533 6.8097 4 +CH 1607 Les Thioleyres Canton de Vaud VD Lavaux-Oron District 2226 Oron 5805 46.5384 6.8148 4 +CH 1607 Palézieux Canton de Vaud VD Lavaux-Oron District 2226 Oron 5805 46.5441 6.8402 4 +CH 1607 Palézieux-Village Canton de Vaud VD Lavaux-Oron District 2226 Oron 5805 46.5536 6.8358 4 +CH 1608 Oron-le-Châtel Canton de Vaud VD Lavaux-Oron District 2226 Oron 5805 46.5724 6.8413 4 +CH 1608 Chesalles-sur-Oron Canton de Vaud VD Lavaux-Oron District 2226 Oron 5805 46.5748 6.8527 4 +CH 1608 Bussigny-sur-Oron Canton de Vaud VD Lavaux-Oron District 2226 Oron 5805 46.5693 6.8629 4 +CH 1610 Vuibroye Canton de Vaud VD Lavaux-Oron District 2226 Oron 5805 46.5711 6.8052 4 +CH 1610 Oron-la-Ville Canton de Vaud VD Lavaux-Oron District 2226 Oron 5805 46.5715 6.8236 4 +CH 1610 Châtillens Canton de Vaud VD Lavaux-Oron District 2226 Oron 5805 46.5619 6.8054 4 +CH 1612 Ecoteaux Canton de Vaud VD Lavaux-Oron District 2226 Oron 5805 46.5494 6.8578 4 +CH 1613 Maracon Canton de Vaud VD Lavaux-Oron District 2226 Maracon 5790 46.5585 6.879 4 +CH 1026 Echandens-Denges Canton de Vaud VD Morges District 2227 Echandens 5633 46.5397 6.5379 6 +CH 1026 Echandens Canton de Vaud VD Morges District 2227 Echandens 5633 46.5397 6.5379 4 +CH 1026 Denges Canton de Vaud VD Morges District 2227 Denges 5632 46.5234 6.539 4 +CH 1027 Lonay Canton de Vaud VD Morges District 2227 Lonay 5638 46.5299 6.517 4 +CH 1028 Préverenges Canton de Vaud VD Morges District 2227 Préverenges 5643 46.4941 6.5291 4 +CH 1110 Morges 1 Canton de Vaud VD Morges District 2227 Morges 5642 46.514 6.4932 +CH 1110 Morges Canton de Vaud VD Morges District 2227 Morges 5642 46.495 6.5055 4 +CH 1110 Morges 2 Canton de Vaud VD Morges District 2227 Morges 5642 46.514 6.4932 +CH 1112 Echichens Canton de Vaud VD Morges District 2227 Echichens 5634 46.5303 6.4968 4 +CH 1113 St-Saphorin-sur-Morges Canton de Vaud VD Morges District 2227 Echichens 5634 46.5462 6.4917 4 +CH 1114 Colombier VD Canton de Vaud VD Morges District 2227 Echichens 5634 46.5552 6.4678 4 +CH 1115 Vullierens Canton de Vaud VD Morges District 2227 Vullierens 5654 46.5734 6.4808 4 +CH 1116 Cottens VD Canton de Vaud VD Morges District 2227 Hautemorges 5656 46.5743 6.4533 4 +CH 1117 Grancy Canton de Vaud VD Morges District 2227 Grancy 5485 46.5936 6.4609 4 +CH 1121 Bremblens Canton de Vaud VD Morges District 2227 Bremblens 5622 46.5483 6.5194 4 +CH 1122 Romanel-sur-Morges Canton de Vaud VD Morges District 2227 Romanel-sur-Morges 5645 46.5566 6.5106 4 +CH 1123 Aclens Canton de Vaud VD Morges District 2227 Aclens 5621 46.5683 6.5109 4 +CH 1124 Gollion Canton de Vaud VD Morges District 2227 Gollion 5484 46.586 6.512 4 +CH 1125 Monnaz Canton de Vaud VD Morges District 2227 Echichens 5634 46.533 6.4798 4 +CH 1126 Vaux-sur-Morges Canton de Vaud VD Morges District 2227 Vaux-sur-Morges 5650 46.5385 6.4639 4 +CH 1127 Clarmont Canton de Vaud VD Morges District 2227 Clarmont 5629 46.5486 6.4496 4 +CH 1128 Reverolle Canton de Vaud VD Morges District 2227 Hautemorges 5656 46.5417 6.44 4 +CH 1131 Tolochenaz Canton de Vaud VD Morges District 2227 Tolochenaz 5649 46.4849 6.4921 4 +CH 1132 Lully VD Canton de Vaud VD Morges District 2227 Lully (VD) 5639 46.5063 6.4644 4 +CH 1134 Chigny Canton de Vaud VD Morges District 2227 Chigny 5628 46.5162 6.4767 4 +CH 1134 Vufflens-le-Château Canton de Vaud VD Morges District 2227 Vufflens-le-Château 5653 46.5258 6.4667 4 +CH 1135 Denens Canton de Vaud VD Morges District 2227 Denens 5631 46.5174 6.4526 4 +CH 1136 Bussy-Chardonney Canton de Vaud VD Morges District 2227 Hautemorges 5656 46.5309 6.441 4 +CH 1141 Sévery Canton de Vaud VD Morges District 2227 Hautemorges 5656 46.5707 6.4421 4 +CH 1142 Pampigny Canton de Vaud VD Morges District 2227 Hautemorges 5656 46.5862 6.422 4 +CH 1143 Apples Canton de Vaud VD Morges District 2227 Hautemorges 5656 46.555 6.4166 4 +CH 1144 Ballens Canton de Vaud VD Morges District 2227 Ballens 5423 46.5535 6.378 4 +CH 1145 Bière Canton de Vaud VD Morges District 2227 Bière 5425 46.5474 6.3185 4 +CH 1146 Mollens VD Canton de Vaud VD Morges District 2227 Mollens (VD) 5431 46.5787 6.3553 4 +CH 1147 Montricher Canton de Vaud VD Morges District 2227 Montricher 5492 46.6033 6.3588 4 +CH 1148 Cuarnens Canton de Vaud VD Morges District 2227 Cuarnens 5479 46.6311 6.4359 4 +CH 1148 L'Isle Canton de Vaud VD Morges District 2227 L'Isle 5486 46.6245 6.3905 4 +CH 1148 Moiry VD Canton de Vaud VD Morges District 2227 Moiry 5490 46.6534 6.4528 4 +CH 1148 Villars-Bozon Canton de Vaud VD Morges District 2227 L'Isle 5486 46.6079 6.4094 4 +CH 1148 Mont-la-Ville Canton de Vaud VD Morges District 2227 Mont-la-Ville 5491 46.6532 6.3876 4 +CH 1148 Mauraz Canton de Vaud VD Morges District 2227 Mauraz 5488 46.603 6.4165 4 +CH 1148 La Coudre Canton de Vaud VD Morges District 2227 L'Isle 5486 46.6342 6.3987 4 +CH 1148 Chavannes-le-Veyron Canton de Vaud VD Morges District 2227 Chavannes-le-Veyron 5475 46.6089 6.447 4 +CH 1149 Berolle Canton de Vaud VD Morges District 2227 Berolle 5424 46.5682 6.3286 4 +CH 1162 St-Prex Canton de Vaud VD Morges District 2227 Saint-Prex 5646 46.4683 6.4693 4 +CH 1163 Etoy Canton de Vaud VD Morges District 2227 Etoy 5636 46.4841 6.4217 4 +CH 1164 Buchillon Canton de Vaud VD Morges District 2227 Buchillon 5623 46.4468 6.4286 4 +CH 1165 Allaman Canton de Vaud VD Morges District 2227 Allaman 5851 46.442 6.3983 4 +CH 1167 Lussy-sur-Morges Canton de Vaud VD Morges District 2227 Lussy-sur-Morges 5640 46.501 6.4481 4 +CH 1168 Villars-sous-Yens Canton de Vaud VD Morges District 2227 Villars-sous-Yens 5652 46.5069 6.4301 4 +CH 1169 Yens Canton de Vaud VD Morges District 2227 Yens 5655 46.527 6.4067 4 +CH 1170 Aubonne Canton de Vaud VD Morges District 2227 Aubonne 5422 46.491 6.3856 4 +CH 1172 Bougy-Villars Canton de Vaud VD Morges District 2227 Bougy-Villars 5426 46.4838 6.3508 4 +CH 1173 Féchy Canton de Vaud VD Morges District 2227 Féchy 5427 46.479 6.3727 4 +CH 1174 Pizy Canton de Vaud VD Morges District 2227 Aubonne 5422 46.4935 6.3467 4 +CH 1174 Montherod Canton de Vaud VD Morges District 2227 Aubonne 5422 46.5059 6.3541 4 +CH 1175 Lavigny Canton de Vaud VD Morges District 2227 Lavigny 5637 46.5015 6.4081 4 +CH 1176 St-Livres Canton de Vaud VD Morges District 2227 Saint-Livres 5435 46.5176 6.3812 4 +CH 1187 St-Oyens Canton de Vaud VD Morges District 2227 Saint-Oyens 5436 46.4949 6.2983 4 +CH 1188 Gimel Canton de Vaud VD Morges District 2227 Gimel 5428 46.5267 6.2895 4 +CH 1189 Saubraz Canton de Vaud VD Morges District 2227 Saubraz 5437 46.5184 6.3268 4 +CH 1304 Dizy Canton de Vaud VD Morges District 2227 Dizy 5481 46.6344 6.4949 4 +CH 1304 Senarclens Canton de Vaud VD Morges District 2227 Senarclens 5499 46.5992 6.4847 4 +CH 1304 Allens Canton de Vaud VD Morges District 2227 Cossonay 5477 46.5985 6.5078 4 +CH 1304 Cossonay-Ville Canton de Vaud VD Morges District 2227 Cossonay 5477 46.6158 6.5025 4 +CH 1308 La Chaux (Cossonay) Canton de Vaud VD Morges District 2227 La Chaux (Cossonay) 5474 46.6225 6.4682 4 +CH 1312 Eclépens Canton de Vaud VD Morges District 2227 Eclépens 5482 46.6516 6.5431 4 +CH 1313 Ferreyres Canton de Vaud VD Morges District 2227 Ferreyres 5483 46.6602 6.4795 4 +CH 1315 La Sarraz Canton de Vaud VD Morges District 2227 La Sarraz 5498 46.6545 6.5048 4 +CH 1316 Chevilly Canton de Vaud VD Morges District 2227 Chevilly 5476 46.6433 6.4751 4 +CH 1317 Orny Canton de Vaud VD Morges District 2227 Orny 5493 46.6707 6.5366 4 +CH 1318 Pompaples Canton de Vaud VD Morges District 2227 Pompaples 5497 46.6768 6.5213 4 +CH 1166 Perroy Canton de Vaud VD Nyon District 2228 Perroy 5860 46.4427 6.3706 4 +CH 1180 Tartegnin Canton de Vaud VD Nyon District 2228 Tartegnin 5862 46.468 6.3133 4 +CH 1180 Rolle Canton de Vaud VD Nyon District 2228 Rolle 5861 46.4416 6.3406 4 +CH 1182 Gilly Canton de Vaud VD Nyon District 2228 Gilly 5857 46.4631 6.2983 4 +CH 1183 Bursins Canton de Vaud VD Nyon District 2228 Bursins 5853 46.4477 6.2899 4 +CH 1184 Vinzel Canton de Vaud VD Nyon District 2228 Vinzel 5863 46.4481 6.279 4 +CH 1184 Luins Canton de Vaud VD Nyon District 2228 Luins 5858 46.4415 6.2754 4 +CH 1185 Mont-sur-Rolle Canton de Vaud VD Nyon District 2228 Mont-sur-Rolle 5859 46.4754 6.3364 4 +CH 1186 Essertines-sur-Rolle Canton de Vaud VD Nyon District 2228 Essertines-sur-Rolle 5856 46.4851 6.3105 4 +CH 1188 St-George Canton de Vaud VD Nyon District 2228 Saint-George 5434 46.5226 6.2577 4 +CH 1195 Dully Canton de Vaud VD Nyon District 2228 Dully 5855 46.4201 6.31 4 +CH 1195 Bursinel Canton de Vaud VD Nyon District 2228 Bursinel 5852 46.4266 6.3248 4 +CH 1196 Gland Canton de Vaud VD Nyon District 2228 Gland 5721 46.4104 6.2867 4 +CH 1197 Prangins Canton de Vaud VD Nyon District 2228 Prangins 5725 46.3922 6.2625 4 +CH 1260 Nyon 2 Canton de Vaud VD Nyon District 2228 Nyon 5724 46.3863 6.2264 +CH 1260 Nyon 1 Canton de Vaud VD Nyon District 2228 Nyon 5724 46.3863 6.2264 +CH 1260 Nyon Canton de Vaud VD Nyon District 2228 Nyon 5724 46.3803 6.2352 4 +CH 1261 Marchissy Canton de Vaud VD Nyon District 2228 Marchissy 5430 46.4981 6.226 4 +CH 1261 Le Vaud Canton de Vaud VD Nyon District 2228 Le Vaud 5731 46.4774 6.2337 4 +CH 1261 Longirod Canton de Vaud VD Nyon District 2228 Longirod 5429 46.5041 6.2522 4 +CH 1262 Eysins Canton de Vaud VD Nyon District 2228 Eysins 5716 46.3813 6.2051 4 +CH 1263 Crassier Canton de Vaud VD Nyon District 2228 Crassier 5714 46.376 6.1681 4 +CH 1264 St-Cergue Canton de Vaud VD Nyon District 2228 Saint-Cergue 5727 46.451 6.1414 4 +CH 1265 La Cure Canton de Vaud VD Nyon District 2228 Saint-Cergue 5727 46.4611 6.0935 4 +CH 1266 Duillier Canton de Vaud VD Nyon District 2228 Duillier 5715 46.4092 6.2297 4 +CH 1267 Vich Canton de Vaud VD Nyon District 2228 Vich 5732 46.4281 6.2494 4 +CH 1267 Coinsins Canton de Vaud VD Nyon District 2228 Coinsins 5710 46.4234 6.2374 4 +CH 1268 Begnins Canton de Vaud VD Nyon District 2228 Begnins 5704 46.4468 6.2533 4 +CH 1268 Burtigny Canton de Vaud VD Nyon District 2228 Burtigny 5854 46.4695 6.2675 4 +CH 1269 Bassins Canton de Vaud VD Nyon District 2228 Bassins 5703 46.4895 6.199 4 +CH 1270 Trélex Canton de Vaud VD Nyon District 2228 Trélex 5730 46.4189 6.1966 4 +CH 1271 Givrins Canton de Vaud VD Nyon District 2228 Givrins 5720 46.4328 6.1962 4 +CH 1272 Genolier Canton de Vaud VD Nyon District 2228 Genolier 5718 46.4362 6.2204 4 +CH 1273 Arzier-Le Muids Canton de Vaud VD Nyon District 2228 Arzier-Le Muids 5702 46.4883 6.1599 4 +CH 1274 Signy-Centre Canton de Vaud VD Nyon District 2228 Signy-Avenex 5728 46.3926 6.2042 6 +CH 1274 Signy Canton de Vaud VD Nyon District 2228 Signy-Avenex 5728 46.3928 6.2039 4 +CH 1274 Grens Canton de Vaud VD Nyon District 2228 Grens 5722 46.3966 6.1917 4 +CH 1275 Chéserex Canton de Vaud VD Nyon District 2228 Chéserex 5709 46.4109 6.1479 4 +CH 1276 Gingins Canton de Vaud VD Nyon District 2228 Gingins 5719 46.4262 6.1393 4 +CH 1277 Borex Canton de Vaud VD Nyon District 2228 Borex 5706 46.381 6.1792 4 +CH 1277 Arnex-sur-Nyon Canton de Vaud VD Nyon District 2228 Arnex-sur-Nyon 5701 46.3729 6.1898 3 +CH 1278 La Rippe Canton de Vaud VD Nyon District 2228 La Rippe 5726 46.407 6.1167 4 +CH 1279 Bogis-Bossey Canton de Vaud VD Nyon District 2228 Bogis-Bossey 5705 46.3538 6.1716 4 +CH 1279 Chavannes-de-Bogis Canton de Vaud VD Nyon District 2228 Chavannes-de-Bogis 5707 46.34 6.1545 4 +CH 1290 Chavannes-des-Bois Canton de Vaud VD Nyon District 2228 Chavannes-des-Bois 5708 46.3169 6.1367 4 +CH 1291 Commugny Canton de Vaud VD Nyon District 2228 Commugny 5711 46.3236 6.1609 4 +CH 1295 Tannay Canton de Vaud VD Nyon District 2228 Tannay 5729 46.3072 6.1811 4 +CH 1295 Mies Canton de Vaud VD Nyon District 2228 Mies 5723 46.2995 6.1746 4 +CH 1296 Coppet Canton de Vaud VD Nyon District 2228 Coppet 5712 46.316 6.2006 4 +CH 1297 Founex Canton de Vaud VD Nyon District 2228 Founex 5717 46.3331 6.1976 4 +CH 1299 Crans VD Canton de Vaud VD Nyon District 2228 Crans-près-Céligny 5713 46.36 6.2196 +CH 1299 Crans-près-Céligny Canton de Vaud VD Nyon District 2228 Crans-près-Céligny 5713 46.3591 6.2058 4 +CH 1008 Prilly Canton de Vaud VD Ouest Lausannois District 2229 Prilly 5589 46.5389 6.605 4 +CH 1020 Renens VD Canton de Vaud VD Ouest Lausannois District 2229 Renens (VD) 5591 46.5353 6.5897 4 +CH 1020 Renens VD 1 Canton de Vaud VD Ouest Lausannois District 2229 Renens (VD) 5591 46.5353 6.5897 +CH 1022 Chavannes-près-Renens Canton de Vaud VD Ouest Lausannois District 2229 Chavannes-près-Renens 5627 46.5285 6.5758 4 +CH 1023 Crissier Canton de Vaud VD Ouest Lausannois District 2229 Crissier 5583 46.5563 6.5777 4 +CH 1023 Crissier 1 Canton de Vaud VD Ouest Lausannois District 2229 Crissier 5583 46.5585 6.5774 +CH 1024 Ecublens VD Canton de Vaud VD Ouest Lausannois District 2229 Ecublens (VD) 5635 46.5288 6.5586 4 +CH 1025 St-Sulpice VD Canton de Vaud VD Ouest Lausannois District 2229 Saint-Sulpice (VD) 5648 46.4855 6.5626 4 +CH 1029 Villars-Ste-Croix Canton de Vaud VD Ouest Lausannois District 2229 Villars-Sainte-Croix 5651 46.5674 6.5632 4 +CH 1030 Bussigny Canton de Vaud VD Ouest Lausannois District 2229 Bussigny 5624 46.5534 6.5508 4 +CH 1658 Rossinière Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Rossinière 5842 46.4642 7.0639 4 +CH 1658 La Tine Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Rossinière 5842 46.4712 7.0479 4 +CH 1659 Rougemont Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Rougemont 5843 46.4959 7.2146 4 +CH 1659 Flendruz Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Rougemont 5843 46.5139 7.1743 4 +CH 1660 La Lécherette Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Château-d'Oex 5841 46.4237 7.0752 4 +CH 1660 Les Moulins Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Château-d'Oex 5841 46.4531 7.0998 4 +CH 1660 L'Etivaz Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Château-d'Oex 5841 46.4117 7.1644 4 +CH 1660 Château-d'Oex Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Château-d'Oex 5841 46.4703 7.1501 4 +CH 1800 Vevey 1 Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Vevey 5890 46.4642 6.8481 +CH 1800 Vevey Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Vevey 5890 46.4496 6.8373 4 +CH 1801 Le Mont-Pèlerin Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Chardonne 5882 46.492 6.8239 1 +CH 1802 Corseaux Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Corseaux 5883 46.4523 6.817 4 +CH 1803 Chardonne Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Chardonne 5882 46.4649 6.8109 4 +CH 1804 Corsier-sur-Vevey Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Corsier-sur-Vevey 5884 46.4767 6.8505 4 +CH 1805 Jongny Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Jongny 5885 46.4877 6.8464 4 +CH 1806 St-Légier-La Chiésaz Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Blonay-Saint-Légier 5892 46.4899 6.8982 4 +CH 1807 Blonay Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Blonay-Saint-Légier 5892 46.4778 6.922 4 +CH 1808 Les Monts-de-Corsier Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Corsier-sur-Vevey 5884 46.5016 6.8776 4 +CH 1809 Fenil-sur-Corsier Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Corsier-sur-Vevey 5884 46.4851 6.8675 4 +CH 1811 Vevey Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Vevey 5890 46.4642 6.8481 +CH 1811 Vevey Services spéciaux Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Vevey 5890 46.4642 6.8481 +CH 1814 La Tour-de-Peilz Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 La Tour-de-Peilz 5889 46.4405 6.859 4 +CH 1815 Clarens Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Montreux 5886 46.4315 6.8825 4 +CH 1816 Chailly-Montreux Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Montreux 5886 46.4528 6.8921 4 +CH 1817 Brent Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Montreux 5886 46.4547 6.9035 4 +CH 1818 Montreux Redoute Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Montreux 5886 46.4518 6.9408 +CH 1818 Montreux La Redoute Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Montreux 5886 46.4518 6.9408 +CH 1820 Montreux 2 Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Montreux 5886 46.4518 6.9408 +CH 1820 Territet Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Montreux 5886 46.4243 6.9205 4 +CH 1820 Veytaux Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Veytaux 5891 46.4231 6.9485 4 +CH 1820 Montreux Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Montreux 5886 46.4268 6.9026 4 +CH 1820 Montreux 1 Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Montreux 5886 46.4518 6.9408 +CH 1822 Chernex Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Montreux 5886 46.4425 6.9163 4 +CH 1823 Glion Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Montreux 5886 46.4375 6.9367 4 +CH 1824 Caux Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Montreux 5886 46.4425 6.9648 4 +CH 1832 Chamby Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Montreux 5886 46.4524 6.9192 4 +CH 1832 Villard-sur-Chamby Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Montreux 5886 46.4664 6.9311 4 +CH 1833 Les Avants Canton de Vaud VD Riviera-Pays-d'Enhaut District 2230 Montreux 5886 46.4648 6.9542 4 +CH 3900 Brig Canton du Valais VS Brig District 2301 Brig-Glis 6002 46.2837 7.9866 4 +CH 3900 Brigerbad Canton du Valais VS Brig District 2301 Brig-Glis 6002 46.3021 7.9255 4 +CH 3900 Gamsen Canton du Valais VS Brig District 2301 Brig-Glis 6002 46.2996 7.9443 4 +CH 3901 Rothwald Canton du Valais VS Brig District 2301 Ried-Brig 6008 46.277 8.0802 4 +CH 3902 Glis Canton du Valais VS Brig District 2301 Brig-Glis 6002 46.3087 7.9792 4 +CH 3903 Mund Canton du Valais VS Brig District 2301 Naters 6007 46.3508 7.9229 4 +CH 3903 Birgisch Canton du Valais VS Brig District 2301 Naters 6007 46.3306 7.9617 4 +CH 3904 Naters Canton du Valais VS Brig District 2301 Naters 6007 46.3367 7.9852 4 +CH 3907 Simplon Dorf Canton du Valais VS Brig District 2301 Simplon 6009 46.2007 8.0368 4 +CH 3907 Gabi (Simplon) Canton du Valais VS Brig District 2301 Simplon 6009 46.1838 8.0786 4 +CH 3907 Gondo Canton du Valais VS Brig District 2301 Zwischbergen 6011 46.163 8.0992 4 +CH 3911 Ried-Brig Canton du Valais VS Brig District 2301 Ried-Brig 6008 46.302 8.039 4 +CH 3912 Termen Canton du Valais VS Brig District 2301 Termen 6010 46.33 8.0431 4 +CH 3913 Rosswald Canton du Valais VS Brig District 2301 Termen 6010 46.3128 8.0752 4 +CH 3914 Blatten b. Naters Canton du Valais VS Brig District 2301 Naters 6007 46.364 7.9762 3 +CH 3914 Belalp Canton du Valais VS Brig District 2301 Naters 6007 46.4208 7.9835 4 +CH 3939 Eggerberg Canton du Valais VS Brig District 2301 Eggerberg 6004 46.3159 7.8888 4 +CH 1911 Mayens-de-Chamoson Canton du Valais VS Conthey District 2302 Chamoson 6022 46.2034 7.1843 4 +CH 1955 Mayens-de-Chamoson Canton du Valais VS Conthey District 2302 Chamoson 6022 46.2232 7.1659 4 +CH 1955 Némiaz (Chamoson) Canton du Valais VS Conthey District 2302 Chamoson 6022 46.2141 7.226 4 +CH 1955 Les Vérines (Chamoson) Canton du Valais VS Conthey District 2302 Chamoson 6022 46.2235 7.202 4 +CH 1955 Grugnay (Chamoson) Canton du Valais VS Conthey District 2302 Chamoson 6022 46.2083 7.2148 4 +CH 1955 Chamoson Canton du Valais VS Conthey District 2302 Chamoson 6022 46.2016 7.2204 4 +CH 1955 St-Pierre-de-Clages Canton du Valais VS Conthey District 2302 Chamoson 6022 46.1898 7.2408 4 +CH 1957 Ardon Canton du Valais VS Conthey District 2302 Ardon 6021 46.23 7.2379 4 +CH 1963 Vétroz Canton du Valais VS Conthey District 2302 Vétroz 6025 46.2163 7.2806 4 +CH 1964 Conthey Canton du Valais VS Conthey District 2302 Conthey 6023 46.2214 7.303 4 +CH 1975 St-Séverin Canton du Valais VS Conthey District 2302 Conthey 6023 46.2393 7.304 4 +CH 1976 Aven Canton du Valais VS Conthey District 2302 Conthey 6023 46.2745 7.2252 4 +CH 1976 Daillon Canton du Valais VS Conthey District 2302 Conthey 6023 46.2562 7.3096 4 +CH 1976 Erde Canton du Valais VS Conthey District 2302 Conthey 6023 46.275 7.2929 4 +CH 1993 Clèbes (Nendaz) Canton du Valais VS Conthey District 2302 Nendaz 6024 46.1838 7.3486 4 +CH 1994 Aproz (Nendaz) Canton du Valais VS Conthey District 2302 Nendaz 6024 46.2038 7.307 4 +CH 1996 Condémines (Nendaz) Canton du Valais VS Conthey District 2302 Nendaz 6024 46.1772 7.2597 4 +CH 1996 Beuson (Nendaz) Canton du Valais VS Conthey District 2302 Nendaz 6024 46.1743 7.3335 4 +CH 1996 Baar (Nendaz) Canton du Valais VS Conthey District 2302 Nendaz 6024 46.2047 7.3289 4 +CH 1996 Bieudron (Nendaz) Canton du Valais VS Conthey District 2302 Nendaz 6024 46.1924 7.2715 4 +CH 1996 Brignon (Nendaz) Canton du Valais VS Conthey District 2302 Nendaz 6024 46.1949 7.3264 4 +CH 1996 Saclentse Canton du Valais VS Conthey District 2302 Nendaz 6024 46.1735 7.3176 4 +CH 1996 Fey (Nendaz) Canton du Valais VS Conthey District 2302 Nendaz 6024 46.1874 7.2737 4 +CH 1996 Basse-Nendaz Canton du Valais VS Conthey District 2302 Nendaz 6024 46.1929 7.3105 4 +CH 1997 Haute-Nendaz Canton du Valais VS Conthey District 2302 Nendaz 6024 46.1661 7.295 4 +CH 1997 Sornard (Nendaz) Canton du Valais VS Conthey District 2302 Nendaz 6024 46.1882 7.3033 4 +CH 1997 Siviez (Nendaz) Canton du Valais VS Conthey District 2302 Nendaz 6024 46.1148 7.3268 4 +CH 1927 Chemin Canton du Valais VS Entremont District 2303 Val de Bagnes 6037 46.0896 7.0936 4 +CH 1933 La Garde (Sembrancher) Canton du Valais VS Entremont District 2303 Sembrancher 6035 46.0663 7.1451 4 +CH 1933 Vens (Sembrancher) Canton du Valais VS Entremont District 2303 Val de Bagnes 6037 46.0859 7.1302 3 +CH 1933 Sembrancher Canton du Valais VS Entremont District 2303 Sembrancher 6035 46.0701 7.1452 4 +CH 1933 Chamoille (Sembrancher) Canton du Valais VS Entremont District 2303 Sembrancher 6035 46.0611 7.157 4 +CH 1934 Le Châble VS Canton du Valais VS Entremont District 2303 Val de Bagnes 6037 46.082 7.209 3 +CH 1934 Bruson Canton du Valais VS Entremont District 2303 Val de Bagnes 6037 46.0506 7.2066 4 +CH 1936 Verbier Canton du Valais VS Entremont District 2303 Val de Bagnes 6037 46.1008 7.2297 4 +CH 1937 Orsières Canton du Valais VS Entremont District 2303 Orsières 6034 46.0286 7.1481 4 +CH 1938 Champex-Lac Canton du Valais VS Entremont District 2303 Orsières 6034 46.0296 7.0887 1 +CH 1941 Vollèges Canton du Valais VS Entremont District 2303 Val de Bagnes 6037 46.0847 7.162 4 +CH 1941 Cries (Vollèges) Canton du Valais VS Entremont District 2303 Val de Bagnes 6037 46.0928 7.1739 4 +CH 1942 Levron Canton du Valais VS Entremont District 2303 Val de Bagnes 6037 46.1032 7.1618 4 +CH 1943 Praz-de-Fort Canton du Valais VS Entremont District 2303 Orsières 6034 45.9832 7.0799 4 +CH 1944 La Fouly VS Canton du Valais VS Entremont District 2303 Orsières 6034 45.9227 7.098 4 +CH 1945 Chez Petit (Liddes) Canton du Valais VS Entremont District 2303 Liddes 6033 45.9503 7.1531 4 +CH 1945 Vichères (Liddes) Canton du Valais VS Entremont District 2303 Liddes 6033 45.9995 7.1643 4 +CH 1945 Palasuit (Liddes) Canton du Valais VS Entremont District 2303 Liddes 6033 45.9711 7.188 4 +CH 1945 Dranse (Liddes) Canton du Valais VS Entremont District 2303 Liddes 6033 45.9863 7.1824 4 +CH 1945 Chandonne (Liddes) Canton du Valais VS Entremont District 2303 Liddes 6033 46.0104 7.1863 4 +CH 1945 Rive Haute (Liddes) Canton du Valais VS Entremont District 2303 Liddes 6033 46.0061 7.1712 4 +CH 1945 Fontaine Dessus (Liddes) Canton du Valais VS Entremont District 2303 Liddes 6033 46.0088 7.1715 4 +CH 1945 Petit Vichères (Liddes) Canton du Valais VS Entremont District 2303 Liddes 6033 45.9877 7.1557 3 +CH 1945 Liddes Canton du Valais VS Entremont District 2303 Liddes 6033 45.9858 7.2254 4 +CH 1945 Fontaine Dessous (Liddes) Canton du Valais VS Entremont District 2303 Liddes 6033 46.013 7.1657 3 +CH 1945 Les Moulins VS (Liddes) Canton du Valais VS Entremont District 2303 Liddes 6033 46.0048 7.168 4 +CH 1945 Fornex (Liddes) Canton du Valais VS Entremont District 2303 Liddes 6033 46.0094 7.1605 4 +CH 1946 Bourg-St-Pierre Canton du Valais VS Entremont District 2303 Bourg-Saint-Pierre 6032 45.9196 7.2128 4 +CH 1947 Versegères Canton du Valais VS Entremont District 2303 Val de Bagnes 6037 46.0646 7.2324 4 +CH 1947 Champsec Canton du Valais VS Entremont District 2303 Val de Bagnes 6037 46.0342 7.2296 4 +CH 1948 Fionnay Canton du Valais VS Entremont District 2303 Val de Bagnes 6037 45.9742 7.3593 4 +CH 1948 Lourtier Canton du Valais VS Entremont District 2303 Val de Bagnes 6037 46.0299 7.265 4 +CH 1948 Sarreyer Canton du Valais VS Entremont District 2303 Val de Bagnes 6037 46.0766 7.2728 4 +CH 3801 Jungfraujoch Canton du Valais VS Goms District 2304 Fieschertal 6058 46.5465 7.9827 4 +CH 3984 Fiesch Canton du Valais VS Goms District 2304 Bellwald 6052 46.4158 8.1147 4 +CH 3984 Fieschertal Canton du Valais VS Goms District 2304 Fieschertal 6058 46.5008 8.0654 4 +CH 3984 Fiesch Canton du Valais VS Goms District 2304 Fiesch 6057 46.4158 8.1147 4 +CH 3985 Münster VS Canton du Valais VS Goms District 2304 Goms 6077 46.4901 8.2589 4 +CH 3985 Geschinen Canton du Valais VS Goms District 2304 Goms 6077 46.4949 8.2996 4 +CH 3988 Obergesteln Canton du Valais VS Goms District 2304 Obergoms 6076 46.5278 8.3167 4 +CH 3988 Ulrichen Canton du Valais VS Goms District 2304 Obergoms 6076 46.4814 8.3385 4 +CH 3989 Selkingen Canton du Valais VS Goms District 2304 Goms 6077 46.4703 8.1845 4 +CH 3989 Ritzingen Canton du Valais VS Goms District 2304 Goms 6077 46.451 8.2346 4 +CH 3989 Blitzingen Canton du Valais VS Goms District 2304 Goms 6077 46.4434 8.2002 4 +CH 3989 Niederwald Canton du Valais VS Goms District 2304 Goms 6077 46.4274 8.1989 4 +CH 3989 Biel VS Canton du Valais VS Goms District 2304 Goms 6077 46.4651 8.2073 4 +CH 3989 Grafschaft Canton du Valais VS Goms District 2304 Goms 6077 46.4707 8.2475 +CH 3994 Lax Canton du Valais VS Goms District 2304 Lax 6061 46.3934 8.1107 4 +CH 3995 Steinhaus Canton du Valais VS Goms District 2304 Ernen 6056 46.4187 8.1879 4 +CH 3995 Steinhaus Canton du Valais VS Goms District 2304 Ernen 6056 46.4187 8.1879 4 +CH 3995 Mühlebach (Goms) Canton du Valais VS Goms District 2304 Ernen 6056 46.4083 8.1721 4 +CH 3995 Ernen Canton du Valais VS Goms District 2304 Ernen 6056 46.399 8.1922 4 +CH 3995 Mühlebach (Goms) Canton du Valais VS Goms District 2304 Ernen 6056 46.4083 8.1721 4 +CH 3995 Ausserbinn Canton du Valais VS Goms District 2304 Ernen 6056 46.3811 8.1625 4 +CH 3996 Binn Canton du Valais VS Goms District 2304 Binn 6054 46.3682 8.2356 4 +CH 3997 Bellwald Canton du Valais VS Goms District 2304 Bellwald 6052 46.4443 8.157 4 +CH 3998 Reckingen VS Canton du Valais VS Goms District 2304 Goms 6077 46.4536 8.2619 4 +CH 3998 Gluringen Canton du Valais VS Goms District 2304 Goms 6077 46.4769 8.2175 4 +CH 3999 Oberwald Canton du Valais VS Goms District 2304 Obergoms 6076 46.5576 8.3936 4 +CH 1961 Vernamiège Canton du Valais VS Hérens District 2305 Mont-Noble 6090 46.2105 7.4358 4 +CH 1966 Saxonne (Ayent) Canton du Valais VS Hérens District 2305 Ayent 6082 46.2823 7.4023 4 +CH 1966 Botyre (Ayent) Canton du Valais VS Hérens District 2305 Ayent 6082 46.2765 7.4068 4 +CH 1966 Luc (Ayent) Canton du Valais VS Hérens District 2305 Ayent 6082 46.2849 7.4237 4 +CH 1966 Villa (Ayent) Canton du Valais VS Hérens District 2305 Ayent 6082 46.2759 7.4167 4 +CH 1966 Argnou (Ayent) Canton du Valais VS Hérens District 2305 Ayent 6082 46.2641 7.4008 4 +CH 1966 La Place (Ayent) Canton du Valais VS Hérens District 2305 Ayent 6082 46.2737 7.4114 3 +CH 1966 Fortunau (Ayent) Canton du Valais VS Hérens District 2305 Ayent 6082 46.3097 7.4295 4 +CH 1966 Blignou (Ayent) Canton du Valais VS Hérens District 2305 Ayent 6082 46.2707 7.3974 4 +CH 1966 Ayent Canton du Valais VS Hérens District 2305 Ayent 6082 46.2825 7.4103 6 +CH 1966 Signèse (Ayent) Canton du Valais VS Hérens District 2305 Ayent 6082 46.2628 7.4087 3 +CH 1966 St-Romain (Ayent) Canton du Valais VS Hérens District 2305 Ayent 6082 46.2835 7.4114 4 +CH 1968 Mase Canton du Valais VS Hérens District 2305 Mont-Noble 6090 46.1954 7.4607 4 +CH 1969 Eison (St-Martin) Canton du Valais VS Hérens District 2305 Saint-Martin (VS) 6087 46.154 7.4881 3 +CH 1969 Liez (St-Martin) Canton du Valais VS Hérens District 2305 Saint-Martin (VS) 6087 46.1614 7.4518 4 +CH 1969 St-Martin VS Canton du Valais VS Hérens District 2305 Saint-Martin (VS) 6087 46.1711 7.4426 4 +CH 1969 Trogne (St-Martin) Canton du Valais VS Hérens District 2305 Saint-Martin (VS) 6087 46.1749 7.4699 3 +CH 1969 Suen (St-Martin) Canton du Valais VS Hérens District 2305 Saint-Martin (VS) 6087 46.1829 7.4387 3 +CH 1972 Anzère Canton du Valais VS Hérens District 2305 Ayent 6082 46.3424 7.4064 4 +CH 1973 Nax Canton du Valais VS Hérens District 2305 Mont-Noble 6090 46.2068 7.4783 4 +CH 1981 Vex Canton du Valais VS Hérens District 2305 Vex 6089 46.2087 7.401 4 +CH 1982 Euseigne Canton du Valais VS Hérens District 2305 Hérémence 6084 46.1522 7.4305 4 +CH 1983 Evolène Canton du Valais VS Hérens District 2305 Evolène 6083 46.1285 7.4895 4 +CH 1983 Lanna Canton du Valais VS Hérens District 2305 Evolène 6083 46.1118 7.4563 4 +CH 1984 La Tour VS Canton du Valais VS Hérens District 2305 Evolène 6083 46.0989 7.5045 4 +CH 1984 Les Haudères Canton du Valais VS Hérens District 2305 Evolène 6083 46.0778 7.4799 4 +CH 1985 La Forclaz VS Canton du Valais VS Hérens District 2305 Evolène 6083 46.0428 7.561 4 +CH 1985 Villa (Evolène) Canton du Valais VS Hérens District 2305 Evolène 6083 46.117 7.5236 4 +CH 1985 La Sage Canton du Valais VS Hérens District 2305 Evolène 6083 46.0987 7.517 4 +CH 1986 Arolla Canton du Valais VS Hérens District 2305 Evolène 6083 46.0119 7.4863 4 +CH 1987 Hérémence Canton du Valais VS Hérens District 2305 Hérémence 6084 46.0843 7.3948 4 +CH 1988 Thyon Canton du Valais VS Hérens District 2305 Vex 6089 46.1734 7.3736 4 +CH 1988 Les Collons Canton du Valais VS Hérens District 2305 Vex 6089 46.1849 7.3843 4 +CH 3945 Niedergampel Canton du Valais VS Leuk District 2306 Gampel-Bratsch 6118 46.3122 7.6943 4 +CH 3945 Gampel Canton du Valais VS Leuk District 2306 Gampel-Bratsch 6118 46.3398 7.7338 4 +CH 3946 Turtmann Canton du Valais VS Leuk District 2306 Turtmann-Unterems 6119 46.303 7.7088 4 +CH 3946 Gruben Canton du Valais VS Leuk District 2306 Turtmann-Unterems 6119 46.1842 7.7051 4 +CH 3947 Ergisch Canton du Valais VS Leuk District 2306 Ergisch 6104 46.2726 7.726 4 +CH 3948 Unterems Canton du Valais VS Leuk District 2306 Turtmann-Unterems 6119 46.2887 7.6898 4 +CH 3948 Oberems Canton du Valais VS Leuk District 2306 Oberems 6112 46.2583 7.6866 4 +CH 3951 Agarn Canton du Valais VS Leuk District 2306 Agarn 6101 46.2845 7.6673 4 +CH 3952 Susten Canton du Valais VS Leuk District 2306 Leuk 6110 46.284 7.6307 4 +CH 3953 Inden Canton du Valais VS Leuk District 2306 Inden 6109 46.36 7.5982 4 +CH 3953 Leuk Stadt Canton du Valais VS Leuk District 2306 Leuk 6110 46.3222 7.6485 4 +CH 3953 Varen Canton du Valais VS Leuk District 2306 Varen 6116 46.338 7.5927 4 +CH 3954 Leukerbad Canton du Valais VS Leuk District 2306 Leukerbad 6111 46.4021 7.6277 4 +CH 3955 Albinen Canton du Valais VS Leuk District 2306 Albinen 6102 46.354 7.6447 4 +CH 3956 Guttet-Feschel Canton du Valais VS Leuk District 2306 Guttet-Feschel 6117 46.3491 7.6766 4 +CH 3957 Bratsch Canton du Valais VS Leuk District 2306 Gampel-Bratsch 6118 46.3242 7.7122 4 +CH 3957 Erschmatt Canton du Valais VS Leuk District 2306 Leuk 6110 46.3461 7.6964 4 +CH 3970 Salgesch Canton du Valais VS Leuk District 2306 Salgesch 6113 46.3114 7.5753 4 +CH 1906 Charrat Canton du Valais VS Martigny District 2307 Martigny 6136 46.1214 7.1361 4 +CH 1907 Saxon Canton du Valais VS Martigny District 2307 Saxon 6141 46.1362 7.1844 4 +CH 1908 Riddes Canton du Valais VS Martigny District 2307 Riddes 6139 46.1688 7.2201 4 +CH 1911 Ovronnaz Canton du Valais VS Martigny District 2307 Leytron 6135 46.2018 7.1364 4 +CH 1912 Produit (Leytron) Canton du Valais VS Martigny District 2307 Leytron 6135 46.1854 7.191 4 +CH 1912 Dugny (Leytron) Canton du Valais VS Martigny District 2307 Leytron 6135 46.191 7.1806 3 +CH 1912 Leytron Canton du Valais VS Martigny District 2307 Leytron 6135 46.1868 7.2104 4 +CH 1912 Montagnon (Leytron) Canton du Valais VS Martigny District 2307 Leytron 6135 46.1914 7.1918 4 +CH 1913 Saillon Canton du Valais VS Martigny District 2307 Saillon 6140 46.1705 7.1777 4 +CH 1913 Saillon Canton du Valais VS Martigny District 2307 Saillon 6140 46.1705 7.1777 4 +CH 1914 Auddes-sur-Riddes Canton du Valais VS Martigny District 2307 Riddes 6139 46.1536 7.2413 3 +CH 1914 Isérables Canton du Valais VS Martigny District 2307 Isérables 6134 46.1468 7.2688 4 +CH 1918 La Tzoumaz Canton du Valais VS Martigny District 2307 Riddes 6139 46.1302 7.2461 4 +CH 1919 Martigny Groupe Mutuel Canton du Valais VS Martigny District 2307 Martigny 6136 46.1072 7.081 +CH 1919 Martigny Mutuel Canton du Valais VS Martigny District 2307 Martigny 6136 46.1072 7.081 +CH 1920 Martigny Canton du Valais VS Martigny District 2307 Martigny 6136 46.1095 7.0745 4 +CH 1920 Martigny 1 Canton du Valais VS Martigny District 2307 Martigny 6136 46.1072 7.081 +CH 1921 Martigny-Croix Canton du Valais VS Martigny District 2307 Martigny-Combe 6137 46.0657 7.0319 4 +CH 1926 Fully Canton du Valais VS Martigny District 2307 Fully 6133 46.1575 7.1119 4 +CH 1928 Ravoire Canton du Valais VS Martigny District 2307 Martigny-Combe 6137 46.0994 7.043 4 +CH 1929 Trient Canton du Valais VS Martigny District 2307 Trient 6142 46.03 6.9995 4 +CH 1932 Bovernier Canton du Valais VS Martigny District 2307 Bovernier 6131 46.0622 7.0821 4 +CH 1932 Les Valettes (Bovernier) Canton du Valais VS Martigny District 2307 Bovernier 6131 46.0747 7.0724 4 +CH 1868 Collombey Canton du Valais VS Monthey District 2308 Collombey-Muraz 6152 46.2722 6.9428 4 +CH 1870 Monthey 2 Canton du Valais VS Monthey District 2308 Monthey 6153 46.2436 6.9545 +CH 1870 Monthey Canton du Valais VS Monthey District 2308 Monthey 6153 46.2388 6.8972 4 +CH 1870 Monthey Canton du Valais VS Monthey District 2308 Monthey 6153 46.2388 6.8972 4 +CH 1870 Monthey 1 Canton du Valais VS Monthey District 2308 Monthey 6153 46.2436 6.9545 +CH 1871 Les Giettes Canton du Valais VS Monthey District 2308 Monthey 6153 46.2224 6.9524 4 +CH 1871 Choëx Canton du Valais VS Monthey District 2308 Monthey 6153 46.2396 6.9522 4 +CH 1872 Troistorrents Canton du Valais VS Monthey District 2308 Troistorrents 6156 46.2291 6.9084 4 +CH 1873 Val-d'Illiez Canton du Valais VS Monthey District 2308 Val-d'Illiez 6157 46.1902 6.9063 4 +CH 1873 Les Crosets Canton du Valais VS Monthey District 2308 Val-d'Illiez 6157 46.1885 6.8335 4 +CH 1873 Champoussin Canton du Valais VS Monthey District 2308 Val-d'Illiez 6157 46.207 6.8606 4 +CH 1874 Champéry Canton du Valais VS Monthey District 2308 Champéry 6151 46.1588 6.846 4 +CH 1875 Morgins Canton du Valais VS Monthey District 2308 Troistorrents 6156 46.2364 6.8644 4 +CH 1893 Muraz (Collombey) Canton du Valais VS Monthey District 2308 Collombey-Muraz 6152 46.2826 6.9017 1 +CH 1895 Vionnaz Canton du Valais VS Monthey District 2308 Vionnaz 6158 46.309 6.899 4 +CH 1896 Vouvry Canton du Valais VS Monthey District 2308 Vouvry 6159 46.3329 6.9024 4 +CH 1896 Miex Canton du Valais VS Monthey District 2308 Vouvry 6159 46.3373 6.8319 4 +CH 1897 Les Evouettes Canton du Valais VS Monthey District 2308 Port-Valais 6154 46.3615 6.8597 4 +CH 1897 Bouveret Canton du Valais VS Monthey District 2308 Port-Valais 6154 46.3791 6.856 4 +CH 1898 St-Gingolph Canton du Valais VS Monthey District 2308 Saint-Gingolph 6155 46.3823 6.817 4 +CH 1899 Torgon Canton du Valais VS Monthey District 2308 Vionnaz 6158 46.3084 6.8596 4 +CH 3916 Ferden Canton du Valais VS Raron District 2309 Ferden 6195 46.3882 7.7341 4 +CH 3917 Goppenstein Canton du Valais VS Raron District 2309 Ferden 6195 46.3657 7.7557 4 +CH 3917 Kippel Canton du Valais VS Raron District 2309 Kippel 6197 46.3963 7.7682 4 +CH 3918 Wiler (Lötschen) Canton du Valais VS Raron District 2309 Wiler (Lötschen) 6202 46.4074 7.787 4 +CH 3919 Blatten (Lötschen) Canton du Valais VS Raron District 2309 Blatten 6192 46.4447 7.8646 4 +CH 3935 Bürchen Canton du Valais VS Raron District 2309 Bürchen 6193 46.2693 7.8183 4 +CH 3938 Ausserberg Canton du Valais VS Raron District 2309 Ausserberg 6191 46.3276 7.8554 4 +CH 3940 Steg VS Canton du Valais VS Raron District 2309 Steg-Hohtenn 6204 46.3381 7.7637 4 +CH 3942 Niedergesteln Canton du Valais VS Raron District 2309 Niedergesteln 6198 46.3488 7.8147 4 +CH 3942 St. German Canton du Valais VS Raron District 2309 Raron 6199 46.3146 7.822 4 +CH 3942 Raron Canton du Valais VS Raron District 2309 Raron 6199 46.3029 7.815 4 +CH 3943 Eischoll Canton du Valais VS Raron District 2309 Eischoll 6194 46.2828 7.7611 4 +CH 3944 Unterbäch VS Canton du Valais VS Raron District 2309 Unterbäch 6201 46.2534 7.7774 4 +CH 3949 Hohtenn Canton du Valais VS Raron District 2309 Steg-Hohtenn 6204 46.3314 7.7701 4 +CH 3982 Bitsch Canton du Valais VS Raron District 2309 Bitsch 6173 46.3421 8.0131 4 +CH 3983 Filet Canton du Valais VS Raron District 2309 Mörel-Filet 6203 46.3475 8.0592 4 +CH 3983 Mörel Canton du Valais VS Raron District 2309 Mörel-Filet 6203 46.3549 8.0405 4 +CH 3983 Bister Canton du Valais VS Raron District 2309 Bister 6172 46.3496 8.0787 4 +CH 3983 Greich Canton du Valais VS Raron District 2309 Riederalp 6181 46.3669 8.0394 4 +CH 3983 Goppisberg Canton du Valais VS Raron District 2309 Riederalp 6181 46.372 8.049 4 +CH 3986 Ried-Mörel Canton du Valais VS Raron District 2309 Riederalp 6181 46.3571 8.0278 4 +CH 3987 Riederalp Canton du Valais VS Raron District 2309 Riederalp 6181 46.3818 8.0282 4 +CH 3991 Betten Canton du Valais VS Raron District 2309 Bettmeralp 6205 46.38 8.0725 4 +CH 3992 Bettmeralp Canton du Valais VS Raron District 2309 Bettmeralp 6205 46.4316 8.0564 4 +CH 3993 Grengiols Canton du Valais VS Raron District 2309 Grengiols 6177 46.3402 8.137 4 +CH 3994 Martisberg Canton du Valais VS Raron District 2309 Bettmeralp 6205 46.3914 8.0961 4 +CH 1869 Massongex Canton du Valais VS Saint-Maurice District 2310 Massongex 6215 46.2363 6.9846 4 +CH 1890 St-Maurice Canton du Valais VS Saint-Maurice District 2310 Saint-Maurice 6217 46.1988 7.0103 4 +CH 1890 Mex VS Canton du Valais VS Saint-Maurice District 2310 Saint-Maurice 6217 46.1825 6.981 4 +CH 1891 Vérossaz Canton du Valais VS Saint-Maurice District 2310 Vérossaz 6220 46.2011 6.9685 4 +CH 1902 Evionnaz Canton du Valais VS Saint-Maurice District 2310 Evionnaz 6213 46.1483 6.9486 4 +CH 1903 Collonges Canton du Valais VS Saint-Maurice District 2310 Collonges 6211 46.1804 7.0559 4 +CH 1904 Vernayaz Canton du Valais VS Saint-Maurice District 2310 Vernayaz 6219 46.1412 7.0329 4 +CH 1905 Dorénaz Canton du Valais VS Saint-Maurice District 2310 Dorénaz 6212 46.1517 7.0617 4 +CH 1922 Les Granges (Salvan) Canton du Valais VS Saint-Maurice District 2310 Salvan 6218 46.1272 7.0201 4 +CH 1922 Salvan Canton du Valais VS Saint-Maurice District 2310 Salvan 6218 46.1354 7.0074 4 +CH 1923 Les Marécottes Canton du Valais VS Saint-Maurice District 2310 Salvan 6218 46.1046 6.9434 4 +CH 1923 Le Trétien Canton du Valais VS Saint-Maurice District 2310 Salvan 6218 46.0986 6.9921 4 +CH 1925 Le Châtelard VS Canton du Valais VS Saint-Maurice District 2310 Finhaut 6214 46.0594 6.9563 4 +CH 1925 Finhaut Canton du Valais VS Saint-Maurice District 2310 Finhaut 6214 46.0699 6.9308 4 +CH 1958 St-Léonard Canton du Valais VS Sierre District 2311 Saint-Léonard 6246 46.2565 7.4271 4 +CH 1977 Icogne Canton du Valais VS Sierre District 2311 Icogne 6239 46.3418 7.456 4 +CH 1978 Lens Canton du Valais VS Sierre District 2311 Lens 6240 46.2811 7.449 4 +CH 3960 Loc Canton du Valais VS Sierre District 2311 Crans-Montana 6253 46.2935 7.5096 4 +CH 3960 Niouc Canton du Valais VS Sierre District 2311 Anniviers 6252 46.2689 7.5605 4 +CH 3960 Sierre Canton du Valais VS Sierre District 2311 Sierre 6248 46.2876 7.5457 4 +CH 3960 Corin-de-la-Crête Canton du Valais VS Sierre District 2311 Crans-Montana 6253 46.2859 7.5008 3 +CH 3960 Muraz (Sierre) Canton du Valais VS Sierre District 2311 Sierre 6248 46.2973 7.5289 4 +CH 3961 St-Jean VS Canton du Valais VS Sierre District 2311 Anniviers 6252 46.2044 7.5573 4 +CH 3961 Chandolin Canton du Valais VS Sierre District 2311 Anniviers 6252 46.2563 7.5998 4 +CH 3961 Zinal Canton du Valais VS Sierre District 2311 Anniviers 6252 46.103 7.6455 4 +CH 3961 Ayer Canton du Valais VS Sierre District 2311 Anniviers 6252 46.1787 7.6153 4 +CH 3961 St-Luc Canton du Valais VS Sierre District 2311 Anniviers 6252 46.2186 7.6272 4 +CH 3961 Mission Canton du Valais VS Sierre District 2311 Anniviers 6252 46.1956 7.5966 4 +CH 3961 Grimentz Canton du Valais VS Sierre District 2311 Anniviers 6252 46.1366 7.5647 4 +CH 3961 Vissoie Canton du Valais VS Sierre District 2311 Anniviers 6252 46.2282 7.5747 4 +CH 3963 Crans-Montana 1 Canton du Valais VS Sierre District 2311 Crans-Montana 6253 46.3355 7.5182 6 +CH 3963 Crans-Montana Canton du Valais VS Sierre District 2311 Crans-Montana 6253 46.3282 7.4858 4 +CH 3963 Montana Canton du Valais VS Sierre District 2311 Crans-Montana 6253 46.2954 7.4918 4 +CH 3963 Crans-Montana 2 Canton du Valais VS Sierre District 2311 Lens 6240 46.2947 7.458 6 +CH 3963 Aminona Canton du Valais VS Sierre District 2311 Crans-Montana 6253 46.3595 7.5375 4 +CH 3965 Chippis Canton du Valais VS Sierre District 2311 Chippis 6235 46.2771 7.5406 4 +CH 3966 Réchy Canton du Valais VS Sierre District 2311 Chalais 6232 46.2657 7.4943 4 +CH 3966 Chalais Canton du Valais VS Sierre District 2311 Chalais 6232 46.2645 7.5167 4 +CH 3967 Vercorin Canton du Valais VS Sierre District 2311 Chalais 6232 46.2431 7.5357 4 +CH 3968 Veyras Canton du Valais VS Sierre District 2311 Noble-Contrée 6254 46.3038 7.5384 4 +CH 3971 Chermignon Canton du Valais VS Sierre District 2311 Crans-Montana 6253 46.2876 7.4735 4 +CH 3971 Chermignon-d'en-Bas Canton du Valais VS Sierre District 2311 Crans-Montana 6253 46.2827 7.4822 4 +CH 3971 Ollon VS Canton du Valais VS Sierre District 2311 Crans-Montana 6253 46.2771 7.4849 4 +CH 3972 Miège Canton du Valais VS Sierre District 2311 Noble-Contrée 6254 46.3311 7.5551 4 +CH 3973 Venthône Canton du Valais VS Sierre District 2311 Noble-Contrée 6254 46.3048 7.5237 4 +CH 3974 Mollens VS Canton du Valais VS Sierre District 2311 Crans-Montana 6253 46.3164 7.5209 4 +CH 3975 Randogne Canton du Valais VS Sierre District 2311 Crans-Montana 6253 46.3105 7.5029 4 +CH 3976 Noës Canton du Valais VS Sierre District 2311 Sierre 6248 46.2777 7.5059 4 +CH 3976 Champzabé Canton du Valais VS Sierre District 2311 Crans-Montana 6253 46.2791 7.4983 4 +CH 3977 Granges VS Canton du Valais VS Sierre District 2311 Sierre 6248 46.2629 7.4653 4 +CH 3978 Flanthey Canton du Valais VS Sierre District 2311 Lens 6240 46.2704 7.4516 4 +CH 3979 Grône Canton du Valais VS Sierre District 2311 Grône 6238 46.2335 7.4865 4 +CH 1950 Sion Canton du Valais VS Sion District 2312 Sion 6266 46.2273 7.3547 4 +CH 1950 Sion 2 Canton du Valais VS Sion District 2312 Sion 6266 46.2304 7.3661 +CH 1950 Sion 4 Canton du Valais VS Sion District 2312 Sion 6266 46.2304 7.3661 +CH 1951 Sion Canton du Valais VS Sion District 2312 Sion 6266 46.2304 7.3661 +CH 1958 Uvrier Canton du Valais VS Sion District 2312 Sion 6266 46.2476 7.4087 4 +CH 1962 Pont-de-la-Morge (Sion) Canton du Valais VS Sion District 2312 Sion 6266 46.2325 7.3165 4 +CH 1965 Chandolin (Savièse) Canton du Valais VS Sion District 2312 Savièse 6265 46.2494 7.3193 4 +CH 1965 Granois (Savièse) Canton du Valais VS Sion District 2312 Savièse 6265 46.2489 7.3369 4 +CH 1965 Diolly (Savièse) Canton du Valais VS Sion District 2312 Savièse 6265 46.2531 7.3478 3 +CH 1965 Mayens-de-la-Zour (Savièse) Canton du Valais VS Sion District 2312 Savièse 6265 46.2698 7.3569 4 +CH 1965 La Muraz (Savièse) Canton du Valais VS Sion District 2312 Savièse 6265 46.2531 7.3478 3 +CH 1965 Ormône (Savièse) Canton du Valais VS Sion District 2312 Savièse 6265 46.2431 7.3469 4 +CH 1965 Drône (Savièse) Canton du Valais VS Sion District 2312 Savièse 6265 46.2612 7.3681 4 +CH 1965 Savièse Canton du Valais VS Sion District 2312 Savièse 6265 46.3105 7.3112 6 +CH 1965 Monteiller (Savièse) Canton du Valais VS Sion District 2312 Savièse 6265 46.2571 7.3565 4 +CH 1965 St-Germain (Savièse) Canton du Valais VS Sion District 2312 Savièse 6265 46.2496 7.3526 4 +CH 1965 Roumaz (Savièse) Canton du Valais VS Sion District 2312 Savièse 6265 46.2453 7.3456 4 +CH 1967 Bramois Canton du Valais VS Sion District 2312 Sion 6266 46.2352 7.4032 4 +CH 1971 Grimisuat Canton du Valais VS Sion District 2312 Grimisuat 6263 46.2588 7.3815 4 +CH 1971 Champlan (Grimisuat) Canton du Valais VS Sion District 2312 Grimisuat 6263 46.2486 7.3777 4 +CH 1974 Arbaz Canton du Valais VS Sion District 2312 Arbaz 6261 46.3002 7.3731 4 +CH 1991 Arvillard (Salins) Canton du Valais VS Sion District 2312 Sion 6266 46.2112 7.3464 4 +CH 1991 Salins Canton du Valais VS Sion District 2312 Sion 6266 46.2074 7.3535 4 +CH 1991 Turin (Salins) Canton du Valais VS Sion District 2312 Sion 6266 46.2164 7.3576 4 +CH 1991 Misériez (Salins) Canton du Valais VS Sion District 2312 Sion 6266 46.2071 7.3448 3 +CH 1991 Pravidondaz (Salins) Canton du Valais VS Sion District 2312 Sion 6266 46.2122 7.3548 4 +CH 1992 Crête-à-l'Oeil(Les Agettes) Canton du Valais VS Sion District 2312 Sion 6266 46.2131 7.373 6 +CH 1992 Les Mayens-de-Sion Canton du Valais VS Sion District 2312 Sion 6266 46.1962 7.3754 4 +CH 1992 La Vernaz (Les Agettes) Canton du Valais VS Sion District 2312 Sion 6266 46.2104 7.3733 4 +CH 1992 Crête-à-l'Oeil (Les Agettes) Canton du Valais VS Sion District 2312 Sion 6266 46.212 7.3715 4 +CH 1992 Les Agettes Canton du Valais VS Sion District 2312 Sion 6266 46.205 7.3653 4 +CH 1993 Veysonnaz Canton du Valais VS Sion District 2312 Veysonnaz 6267 46.1963 7.3424 4 +CH 3905 Saas-Almagell Canton du Valais VS Visp District 2313 Saas-Almagell 6288 46.054 7.9669 4 +CH 3906 Saas-Fee Canton du Valais VS Visp District 2313 Saas-Fee 6290 46.0894 7.8996 4 +CH 3908 Saas-Balen Canton du Valais VS Visp District 2313 Saas-Balen 6289 46.1528 7.9352 4 +CH 3910 Saas-Grund Canton du Valais VS Visp District 2313 Saas-Grund 6291 46.135 7.9724 4 +CH 3920 Zermatt Canton du Valais VS Visp District 2313 Zermatt 6300 45.9897 7.7527 4 +CH 3922 Eisten Canton du Valais VS Visp District 2313 Eisten 6282 46.1792 7.9075 4 +CH 3922 Stalden VS Canton du Valais VS Visp District 2313 Stalden (VS) 6293 46.2335 7.8771 4 +CH 3922 Kalpetran Canton du Valais VS Visp District 2313 Embd 6283 46.2139 7.8347 4 +CH 3923 Törbel Canton du Valais VS Visp District 2313 Törbel 6296 46.2421 7.836 4 +CH 3924 St. Niklaus VS Canton du Valais VS Visp District 2313 St. Niklaus 6292 46.1678 7.8092 4 +CH 3925 Grächen Canton du Valais VS Visp District 2313 Grächen 6285 46.1967 7.8489 4 +CH 3926 Embd Canton du Valais VS Visp District 2313 Embd 6283 46.2169 7.7942 4 +CH 3927 Herbriggen Canton du Valais VS Visp District 2313 St. Niklaus 6292 46.1371 7.7836 4 +CH 3928 Randa Canton du Valais VS Visp District 2313 Randa 6287 46.097 7.7793 4 +CH 3929 Täsch Canton du Valais VS Visp District 2313 Täsch 6295 46.054 7.8112 4 +CH 3930 Visp Canton du Valais VS Visp District 2313 Visp 6297 46.2912 7.867 4 +CH 3930 Eyholz Canton du Valais VS Visp District 2313 Visp 6297 46.2889 7.9152 4 +CH 3931 Lalden Canton du Valais VS Visp District 2313 Lalden 6286 46.3 7.8999 4 +CH 3932 Visperterminen Canton du Valais VS Visp District 2313 Visperterminen 6298 46.2426 7.941 4 +CH 3933 Staldenried Canton du Valais VS Visp District 2313 Staldenried 6294 46.2176 7.9101 4 +CH 3934 Zeneggen Canton du Valais VS Visp District 2313 Zeneggen 6299 46.2738 7.861 4 +CH 3937 Baltschieder Canton du Valais VS Visp District 2313 Baltschieder 6281 46.3771 7.8812 4 +CH 3937 Baltschieder Canton du Valais VS Visp District 2313 Baltschieder 6281 46.3771 7.8812 4 +CH 6300 Zug Kanton Zug ZG Zug 900 Zug 1711 47.1685 8.5035 4 +CH 6300 Zugerberg Kanton Zug ZG Zug 900 Zug 1711 47.1413 8.532 4 +CH 6301 Zug Kanton Zug ZG Zug 900 Zug 1711 47.1724 8.5174 +CH 6302 Zug Kanton Zug ZG Zug 900 Zug 1711 47.1724 8.5174 +CH 6303 Zug Kanton Zug ZG Zug 900 Zug 1711 47.1724 8.5174 +CH 6312 Steinhausen Kanton Zug ZG Zug 900 Steinhausen 1708 47.1985 8.4873 4 +CH 6313 Edlibach Kanton Zug ZG Zug 900 Menzingen 1704 47.1758 8.57 4 +CH 6313 Finstersee Kanton Zug ZG Zug 900 Menzingen 1704 47.1627 8.6359 4 +CH 6313 Menzingen Kanton Zug ZG Zug 900 Menzingen 1704 47.172 8.5988 4 +CH 6314 Unterägeri Kanton Zug ZG Zug 900 Unterägeri 1709 47.1202 8.5808 4 +CH 6314 Neuägeri Kanton Zug ZG Zug 900 Unterägeri 1709 47.1518 8.5587 4 +CH 6315 Morgarten Kanton Zug ZG Zug 900 Oberägeri 1706 47.108 8.6349 4 +CH 6315 Oberägeri Kanton Zug ZG Zug 900 Oberägeri 1706 47.1356 8.6243 4 +CH 6315 Alosen Kanton Zug ZG Zug 900 Oberägeri 1706 47.1446 8.6558 4 +CH 6317 Oberwil b. Zug Kanton Zug ZG Zug 900 Zug 1711 47.1354 8.5001 4 +CH 6318 Walchwil Kanton Zug ZG Zug 900 Walchwil 1710 47.1064 8.5303 4 +CH 6319 Allenwinden Kanton Zug ZG Zug 900 Baar 1701 47.1647 8.5498 4 +CH 6330 Cham Kanton Zug ZG Zug 900 Cham 1702 47.1945 8.4562 4 +CH 6331 Hünenberg Kanton Zug ZG Zug 900 Hünenberg 1703 47.193 8.4169 4 +CH 6332 Hagendorn Kanton Zug ZG Zug 900 Cham 1702 47.2106 8.4297 4 +CH 6333 Hünenberg See Kanton Zug ZG Zug 900 Hünenberg 1703 47.1709 8.4468 4 +CH 6340 Baar Kanton Zug ZG Zug 900 Baar 1701 47.1996 8.536 4 +CH 6340 Sihlbrugg Kanton Zug ZG Zug 900 Neuheim 1705 47.229 8.5728 4 +CH 6341 Baar Kanton Zug ZG Zug 900 Baar 1701 47.1963 8.5295 +CH 6343 Buonas Kanton Zug ZG Zug 900 Risch 1707 47.1383 8.4591 4 +CH 6343 Holzhäusern ZG Kanton Zug ZG Zug 900 Risch 1707 47.1521 8.4411 4 +CH 6343 Rotkreuz Kanton Zug ZG Zug 900 Risch 1707 47.1446 8.451 4 +CH 6343 Risch Kanton Zug ZG Zug 900 Risch 1707 47.125 8.4588 4 +CH 6345 Neuheim Kanton Zug ZG Zug 900 Neuheim 1705 47.1996 8.584 4 +CH 8143 Stallikon Kanton Zürich ZH Bezirk Affoltern 101 Stallikon 13 47.318 8.4921 4 +CH 8143 Uetliberg Kanton Zürich ZH Bezirk Affoltern 101 Stallikon 13 47.35 8.49 4 +CH 8906 Bonstetten Kanton Zürich ZH Bezirk Affoltern 101 Bonstetten 3 47.3166 8.4663 4 +CH 8907 Wettswil Kanton Zürich ZH Bezirk Affoltern 101 Wettswil am Albis 14 47.3373 8.4699 1 +CH 8908 Hedingen Kanton Zürich ZH Bezirk Affoltern 101 Hedingen 5 47.3015 8.4509 4 +CH 8909 Zwillikon Kanton Zürich ZH Bezirk Affoltern 101 Affoltern am Albis 2 47.2895 8.4311 4 +CH 8910 Affoltern am Albis Kanton Zürich ZH Bezirk Affoltern 101 Affoltern am Albis 2 47.2784 8.4582 4 +CH 8911 Rifferswil Kanton Zürich ZH Bezirk Affoltern 101 Rifferswil 12 47.245 8.499 4 +CH 8912 Obfelden Kanton Zürich ZH Bezirk Affoltern 101 Obfelden 10 47.2615 8.422 4 +CH 8913 Ottenbach Kanton Zürich ZH Bezirk Affoltern 101 Ottenbach 11 47.2815 8.4094 4 +CH 8914 Aeugstertal Kanton Zürich ZH Bezirk Affoltern 101 Aeugst am Albis 1 47.2822 8.4923 3 +CH 8914 Aeugst am Albis Kanton Zürich ZH Bezirk Affoltern 101 Aeugst am Albis 1 47.2681 8.487 4 +CH 8915 Hausen am Albis Kanton Zürich ZH Bezirk Affoltern 101 Hausen am Albis 4 47.2507 8.5289 4 +CH 8925 Ebertswil Kanton Zürich ZH Bezirk Affoltern 101 Hausen am Albis 4 47.2273 8.5562 4 +CH 8926 Hauptikon Kanton Zürich ZH Bezirk Affoltern 101 Kappel am Albis 6 47.2326 8.4935 4 +CH 8926 Uerzlikon Kanton Zürich ZH Bezirk Affoltern 101 Kappel am Albis 6 47.2186 8.499 4 +CH 8926 Kappel am Albis Kanton Zürich ZH Bezirk Affoltern 101 Kappel am Albis 6 47.2273 8.5219 4 +CH 8932 Mettmenstetten Kanton Zürich ZH Bezirk Affoltern 101 Mettmenstetten 9 47.2478 8.464 4 +CH 8933 Maschwanden Kanton Zürich ZH Bezirk Affoltern 101 Maschwanden 8 47.2348 8.4292 4 +CH 8934 Knonau Kanton Zürich ZH Bezirk Affoltern 101 Knonau 7 47.2245 8.4626 4 +CH 8212 Nohl Kanton Zürich ZH Bezirk Andelfingen 102 Laufen-Uhwiesen 34 47.6666 8.609 4 +CH 8245 Feuerthalen Kanton Zürich ZH Bezirk Andelfingen 102 Feuerthalen 27 47.688 8.6452 4 +CH 8246 Langwiesen Kanton Zürich ZH Bezirk Andelfingen 102 Feuerthalen 27 47.6825 8.6611 4 +CH 8247 Flurlingen Kanton Zürich ZH Bezirk Andelfingen 102 Flurlingen 29 47.6824 8.6367 4 +CH 8248 Uhwiesen Kanton Zürich ZH Bezirk Andelfingen 102 Laufen-Uhwiesen 34 47.6702 8.6465 4 +CH 8414 Buch am Irchel Kanton Zürich ZH Bezirk Andelfingen 102 Buch am Irchel 24 47.5481 8.6274 4 +CH 8415 Gräslikon Kanton Zürich ZH Bezirk Andelfingen 102 Berg am Irchel 23 47.5566 8.6055 4 +CH 8415 Berg am Irchel Kanton Zürich ZH Bezirk Andelfingen 102 Berg am Irchel 23 47.5648 8.5875 4 +CH 8416 Flaach Kanton Zürich ZH Bezirk Andelfingen 102 Flaach 28 47.5847 8.6052 4 +CH 8444 Henggart Kanton Zürich ZH Bezirk Andelfingen 102 Henggart 31 47.5625 8.6837 4 +CH 8447 Dachsen Kanton Zürich ZH Bezirk Andelfingen 102 Dachsen 25 47.662 8.6235 4 +CH 8450 Andelfingen Kanton Zürich ZH Bezirk Andelfingen 102 Andelfingen 30 47.5928 8.6755 4 +CH 8451 Kleinandelfingen Kanton Zürich ZH Bezirk Andelfingen 102 Kleinandelfingen 33 47.6075 8.6845 4 +CH 8452 Adlikon b. Andelfingen Kanton Zürich ZH Bezirk Andelfingen 102 Adlikon 21 47.5851 8.7071 4 +CH 8453 Alten Kanton Zürich ZH Bezirk Andelfingen 102 Kleinandelfingen 33 47.5992 8.6453 4 +CH 8457 Humlikon Kanton Zürich ZH Bezirk Andelfingen 102 Humlikon 32 47.5753 8.6753 4 +CH 8458 Dorf Kanton Zürich ZH Bezirk Andelfingen 102 Dorf 26 47.5712 8.6501 4 +CH 8459 Volken Kanton Zürich ZH Bezirk Andelfingen 102 Volken 43 47.5764 8.63 4 +CH 8460 Marthalen Kanton Zürich ZH Bezirk Andelfingen 102 Marthalen 35 47.6201 8.6424 4 +CH 8461 Oerlingen Kanton Zürich ZH Bezirk Andelfingen 102 Kleinandelfingen 33 47.6229 8.6777 4 +CH 8462 Rheinau Kanton Zürich ZH Bezirk Andelfingen 102 Rheinau 38 47.6294 8.6144 4 +CH 8463 Benken ZH Kanton Zürich ZH Bezirk Andelfingen 102 Benken (ZH) 22 47.6541 8.6539 4 +CH 8464 Ellikon am Rhein Kanton Zürich ZH Bezirk Andelfingen 102 Marthalen 35 47.6021 8.6034 4 +CH 8465 Wildensbuch Kanton Zürich ZH Bezirk Andelfingen 102 Trüllikon 40 47.6526 8.6781 4 +CH 8465 Rudolfingen Kanton Zürich ZH Bezirk Andelfingen 102 Trüllikon 40 47.6379 8.6718 4 +CH 8466 Trüllikon Kanton Zürich ZH Bezirk Andelfingen 102 Trüllikon 40 47.6368 8.6975 4 +CH 8467 Truttikon Kanton Zürich ZH Bezirk Andelfingen 102 Truttikon 41 47.633 8.73 4 +CH 8468 Waltalingen Kanton Zürich ZH Bezirk Andelfingen 102 Stammheim 292 47.6209 8.7725 4 +CH 8468 Guntalingen Kanton Zürich ZH Bezirk Andelfingen 102 Stammheim 292 47.6355 8.7603 4 +CH 8475 Ossingen Kanton Zürich ZH Bezirk Andelfingen 102 Ossingen 37 47.6126 8.7216 4 +CH 8476 Unterstammheim Kanton Zürich ZH Bezirk Andelfingen 102 Stammheim 292 47.6469 8.7895 4 +CH 8477 Oberstammheim Kanton Zürich ZH Bezirk Andelfingen 102 Stammheim 292 47.6283 8.8046 4 +CH 8478 Thalheim an der Thur Kanton Zürich ZH Bezirk Andelfingen 102 Thalheim an der Thur 39 47.5825 8.7456 4 +CH 8058 Zürich Kanton Zürich ZH Bezirk Bülach 103 Kloten 62 47.458 8.5853 +CH 8060 Zürich Kanton Zürich ZH Bezirk Bülach 103 Kloten 62 47.458 8.5853 +CH 8152 Glattbrugg Kanton Zürich ZH Bezirk Bülach 103 Opfikon 66 47.4332 8.5629 4 +CH 8152 Opfikon Kanton Zürich ZH Bezirk Bülach 103 Opfikon 66 47.4311 8.5808 4 +CH 8152 Glattpark (Opfikon) Kanton Zürich ZH Bezirk Bülach 103 Opfikon 66 47.4217 8.5633 3 +CH 8180 Bülach Kanton Zürich ZH Bezirk Bülach 103 Bülach 53 47.5274 8.5415 4 +CH 8181 Höri Kanton Zürich ZH Bezirk Bülach 103 Höri 60 47.5075 8.5025 4 +CH 8182 Hochfelden Kanton Zürich ZH Bezirk Bülach 103 Hochfelden 59 47.5279 8.5094 4 +CH 8184 Bachenbülach Kanton Zürich ZH Bezirk Bülach 103 Bachenbülach 51 47.5016 8.5451 4 +CH 8185 Winkel Kanton Zürich ZH Bezirk Bülach 103 Winkel 72 47.4849 8.5579 4 +CH 8192 Zweidlen Kanton Zürich ZH Bezirk Bülach 103 Glattfelden 58 47.5681 8.4743 3 +CH 8192 Glattfelden Kanton Zürich ZH Bezirk Bülach 103 Glattfelden 58 47.5573 8.5022 4 +CH 8193 Eglisau Kanton Zürich ZH Bezirk Bülach 103 Eglisau 55 47.5733 8.5245 4 +CH 8194 Hüntwangen Kanton Zürich ZH Bezirk Bülach 103 Hüntwangen 61 47.5919 8.4984 4 +CH 8195 Wasterkingen Kanton Zürich ZH Bezirk Bülach 103 Wasterkingen 70 47.5954 8.4716 4 +CH 8196 Wil ZH Kanton Zürich ZH Bezirk Bülach 103 Wil (ZH) 71 47.6085 8.5091 4 +CH 8197 Rafz Kanton Zürich ZH Bezirk Bülach 103 Rafz 67 47.6115 8.543 4 +CH 8302 Kloten Kanton Zürich ZH Bezirk Bülach 103 Kloten 62 47.458 8.5849 4 +CH 8303 Bassersdorf Kanton Zürich ZH Bezirk Bülach 103 Bassersdorf 52 47.4404 8.6304 4 +CH 8304 Wallisellen Kanton Zürich ZH Bezirk Bülach 103 Wallisellen 69 47.4174 8.5949 4 +CH 8305 Dietlikon Kanton Zürich ZH Bezirk Bülach 103 Dietlikon 54 47.4245 8.615 4 +CH 8309 Nürensdorf Kanton Zürich ZH Bezirk Bülach 103 Nürensdorf 64 47.4576 8.6489 4 +CH 8424 Embrach Kanton Zürich ZH Bezirk Bülach 103 Embrach 56 47.509 8.5957 4 +CH 8425 Oberembrach Kanton Zürich ZH Bezirk Bülach 103 Oberembrach 65 47.4895 8.6329 4 +CH 8426 Lufingen Kanton Zürich ZH Bezirk Bülach 103 Lufingen 63 47.4834 8.5934 4 +CH 8427 Freienstein Kanton Zürich ZH Bezirk Bülach 103 Freienstein-Teufen 57 47.534 8.595 4 +CH 8427 Rorbas Kanton Zürich ZH Bezirk Bülach 103 Rorbas 68 47.534 8.5683 4 +CH 8428 Teufen ZH Kanton Zürich ZH Bezirk Bülach 103 Freienstein-Teufen 57 47.5503 8.576 4 +CH 8105 Regensdorf Kanton Zürich ZH Bezirk Dielsdorf 104 Regensdorf 96 47.4339 8.4639 4 +CH 8105 Watt Kanton Zürich ZH Bezirk Dielsdorf 104 Regensdorf 96 47.4458 8.4847 4 +CH 8106 Adlikon b. Regensdorf Kanton Zürich ZH Bezirk Dielsdorf 104 Regensdorf 96 47.4527 8.4634 4 +CH 8107 Buchs ZH Kanton Zürich ZH Bezirk Dielsdorf 104 Buchs (ZH) 83 47.4588 8.437 4 +CH 8108 Dällikon Kanton Zürich ZH Bezirk Dielsdorf 104 Dällikon 84 47.4394 8.4324 4 +CH 8112 Otelfingen Kanton Zürich ZH Bezirk Dielsdorf 104 Otelfingen 94 47.4645 8.3897 4 +CH 8113 Boppelsen Kanton Zürich ZH Bezirk Dielsdorf 104 Boppelsen 82 47.4718 8.4069 4 +CH 8114 Dänikon ZH Kanton Zürich ZH Bezirk Dielsdorf 104 Dänikon 85 47.4447 8.4058 4 +CH 8115 Hüttikon Kanton Zürich ZH Bezirk Dielsdorf 104 Hüttikon 87 47.4418 8.3897 4 +CH 8153 Rümlang Kanton Zürich ZH Bezirk Dielsdorf 104 Rümlang 97 47.4475 8.5288 4 +CH 8154 Oberglatt ZH Kanton Zürich ZH Bezirk Dielsdorf 104 Oberglatt 92 47.4779 8.5239 4 +CH 8155 Nassenwil Kanton Zürich ZH Bezirk Dielsdorf 104 Niederhasli 90 47.4653 8.4704 4 +CH 8155 Niederhasli Kanton Zürich ZH Bezirk Dielsdorf 104 Niederhasli 90 47.478 8.4844 4 +CH 8156 Oberhasli Kanton Zürich ZH Bezirk Dielsdorf 104 Niederhasli 90 47.4607 8.4999 4 +CH 8157 Dielsdorf Kanton Zürich ZH Bezirk Dielsdorf 104 Dielsdorf 86 47.4765 8.4544 4 +CH 8158 Regensberg Kanton Zürich ZH Bezirk Dielsdorf 104 Regensberg 95 47.4782 8.4283 4 +CH 8162 Steinmaur Kanton Zürich ZH Bezirk Dielsdorf 104 Steinmaur 101 47.501 8.4483 4 +CH 8162 Sünikon Kanton Zürich ZH Bezirk Dielsdorf 104 Steinmaur 101 47.49 8.4309 4 +CH 8164 Bachs Kanton Zürich ZH Bezirk Dielsdorf 104 Bachs 81 47.5284 8.4293 4 +CH 8165 Oberweningen Kanton Zürich ZH Bezirk Dielsdorf 104 Oberweningen 93 47.504 8.4065 4 +CH 8165 Schleinikon Kanton Zürich ZH Bezirk Dielsdorf 104 Schleinikon 98 47.4982 8.3921 4 +CH 8165 Schöfflisdorf Kanton Zürich ZH Bezirk Dielsdorf 104 Schöfflisdorf 99 47.5037 8.4191 4 +CH 8166 Niederweningen Kanton Zürich ZH Bezirk Dielsdorf 104 Niederweningen 91 47.5029 8.375 4 +CH 8172 Niederglatt ZH Kanton Zürich ZH Bezirk Dielsdorf 104 Niederglatt 89 47.4932 8.5004 4 +CH 8173 Neerach Kanton Zürich ZH Bezirk Dielsdorf 104 Neerach 88 47.5094 8.4762 4 +CH 8174 Stadel b. Niederglatt Kanton Zürich ZH Bezirk Dielsdorf 104 Stadel 100 47.5293 8.4688 4 +CH 8175 Windlach Kanton Zürich ZH Bezirk Dielsdorf 104 Stadel 100 47.5459 8.4716 4 +CH 8187 Weiach Kanton Zürich ZH Bezirk Dielsdorf 104 Weiach 102 47.5561 8.4397 4 +CH 8340 Hinwil Kanton Zürich ZH Bezirk Hinwil 105 Hinwil 117 47.3033 8.8457 4 +CH 8342 Wernetshausen Kanton Zürich ZH Bezirk Hinwil 105 Hinwil 117 47.2923 8.8766 4 +CH 8344 Bäretswil Kanton Zürich ZH Bezirk Hinwil 105 Bäretswil 111 47.3389 8.8715 4 +CH 8345 Adetswil Kanton Zürich ZH Bezirk Hinwil 105 Bäretswil 111 47.3419 8.837 4 +CH 8496 Steg im Tösstal Kanton Zürich ZH Bezirk Hinwil 105 Fischenthal 114 47.3411 8.9514 4 +CH 8497 Fischenthal Kanton Zürich ZH Bezirk Hinwil 105 Fischenthal 114 47.3317 8.9255 4 +CH 8498 Gibswil Kanton Zürich ZH Bezirk Hinwil 105 Fischenthal 114 47.3218 8.9043 4 +CH 8607 Aathal-Seegräben Kanton Zürich ZH Bezirk Hinwil 105 Seegräben 119 47.3409 8.7669 4 +CH 8608 Bubikon Kanton Zürich ZH Bezirk Hinwil 105 Bubikon 112 47.2699 8.8118 4 +CH 8614 Bertschikon (Gossau ZH) Kanton Zürich ZH Bezirk Hinwil 105 Gossau (ZH) 115 47.321 8.7591 3 +CH 8620 Wetzikon ZH Kanton Zürich ZH Bezirk Hinwil 105 Wetzikon (ZH) 121 47.3226 8.8014 4 +CH 8620 Wetzikon ZH 1 Kanton Zürich ZH Bezirk Hinwil 105 Wetzikon (ZH) 121 47.3243 8.8047 +CH 8623 Wetzikon ZH Kanton Zürich ZH Bezirk Hinwil 105 Wetzikon (ZH) 121 47.3325 8.8194 4 +CH 8624 Grüt (Gossau ZH) Kanton Zürich ZH Bezirk Hinwil 105 Gossau (ZH) 115 47.3088 8.7819 4 +CH 8625 Gossau ZH Kanton Zürich ZH Bezirk Hinwil 105 Gossau (ZH) 115 47.3041 8.7531 4 +CH 8626 Ottikon (Gossau ZH) Kanton Zürich ZH Bezirk Hinwil 105 Gossau (ZH) 115 47.2912 8.789 4 +CH 8627 Grüningen Kanton Zürich ZH Bezirk Hinwil 105 Grüningen 116 47.2794 8.7619 4 +CH 8630 Rüti ZH Kanton Zürich ZH Bezirk Hinwil 105 Rüti (ZH) 118 47.2582 8.865 4 +CH 8632 Tann Kanton Zürich ZH Bezirk Hinwil 105 Dürnten 113 47.2679 8.8502 4 +CH 8633 Wolfhausen Kanton Zürich ZH Bezirk Hinwil 105 Bubikon 112 47.2566 8.7985 4 +CH 8635 Dürnten Kanton Zürich ZH Bezirk Hinwil 105 Dürnten 113 47.2771 8.8544 4 +CH 8636 Wald ZH Kanton Zürich ZH Bezirk Hinwil 105 Wald (ZH) 120 47.2888 8.9231 4 +CH 8637 Laupen ZH Kanton Zürich ZH Bezirk Hinwil 105 Wald (ZH) 120 47.2662 8.931 4 +CH 8134 Adliswil Kanton Zürich ZH Bezirk Horgen 106 Adliswil 131 47.3093 8.5213 4 +CH 8134 Adliswil 1 Kanton Zürich ZH Bezirk Horgen 106 Adliswil 131 47.3093 8.5213 +CH 8135 Sihlwald Kanton Zürich ZH Bezirk Horgen 106 Horgen 133 47.268 8.5567 4 +CH 8135 Sihlbrugg Station Kanton Zürich ZH Bezirk Horgen 106 Horgen 133 47.2419 8.575 4 +CH 8135 Langnau am Albis Kanton Zürich ZH Bezirk Horgen 106 Langnau am Albis 136 47.2707 8.5387 4 +CH 8136 Gattikon Kanton Zürich ZH Bezirk Horgen 106 Thalwil 141 47.2825 8.552 4 +CH 8800 Thalwil Kanton Zürich ZH Bezirk Horgen 106 Thalwil 141 47.2917 8.5676 4 +CH 8802 Kilchberg ZH Kanton Zürich ZH Bezirk Horgen 106 Kilchberg (ZH) 135 47.3249 8.5488 4 +CH 8803 Rüschlikon Kanton Zürich ZH Bezirk Horgen 106 Rüschlikon 139 47.3063 8.5526 4 +CH 8804 Au ZH Kanton Zürich ZH Bezirk Horgen 106 Wädenswil 293 47.2478 8.6491 4 +CH 8805 Richterswil Kanton Zürich ZH Bezirk Horgen 106 Richterswil 138 47.213 8.7063 4 +CH 8810 Horgen Kanton Zürich ZH Bezirk Horgen 106 Horgen 133 47.2524 8.608 4 +CH 8810 Horgen 1 Kanton Zürich ZH Bezirk Horgen 106 Horgen 295 47.2487 8.5848 +CH 8815 Horgenberg Kanton Zürich ZH Bezirk Horgen 106 Horgen 133 47.2499 8.5807 4 +CH 8816 Hirzel Kanton Zürich ZH Bezirk Horgen 106 Horgen 295 47.2198 8.6005 4 +CH 8820 Wädenswil Kanton Zürich ZH Bezirk Horgen 106 Wädenswil 293 47.2239 8.6596 4 +CH 8824 Schönenberg ZH Kanton Zürich ZH Bezirk Horgen 106 Wädenswil 293 47.194 8.64 4 +CH 8825 Hütten Kanton Zürich ZH Bezirk Horgen 106 Wädenswil 293 47.173 8.666 4 +CH 8833 Samstagern Kanton Zürich ZH Bezirk Horgen 106 Richterswil 138 47.1938 8.6789 4 +CH 8942 Oberrieden Kanton Zürich ZH Bezirk Horgen 106 Oberrieden 137 47.2746 8.5778 4 +CH 8125 Zollikerberg Kanton Zürich ZH Bezirk Meilen 107 Zollikon 161 47.3462 8.6087 4 +CH 8126 Zumikon Kanton Zürich ZH Bezirk Meilen 107 Zumikon 160 47.3341 8.6262 4 +CH 8127 Forch Kanton Zürich ZH Bezirk Meilen 107 Küsnacht (ZH) 154 47.3216 8.6462 4 +CH 8618 Oetwil am See Kanton Zürich ZH Bezirk Meilen 107 Oetwil am See 157 47.2739 8.7235 4 +CH 8634 Hombrechtikon Kanton Zürich ZH Bezirk Meilen 107 Hombrechtikon 153 47.2558 8.7634 4 +CH 8700 Küsnacht ZH Kanton Zürich ZH Bezirk Meilen 107 Küsnacht (ZH) 154 47.3201 8.5893 4 +CH 8702 Zollikon Dorf Kanton Zürich ZH Bezirk Meilen 107 Zollikon 161 47.3433 8.5947 +CH 8702 Zollikon Kanton Zürich ZH Bezirk Meilen 107 Zollikon 161 47.34 8.5783 4 +CH 8703 Erlenbach ZH Kanton Zürich ZH Bezirk Meilen 107 Erlenbach (ZH) 151 47.3023 8.5998 4 +CH 8704 Herrliberg Kanton Zürich ZH Bezirk Meilen 107 Herrliberg 152 47.2954 8.6254 4 +CH 8706 Meilen Kanton Zürich ZH Bezirk Meilen 107 Meilen 156 47.2765 8.6462 4 +CH 8707 Uetikon am See Kanton Zürich ZH Bezirk Meilen 107 Uetikon am See 159 47.2673 8.6792 4 +CH 8708 Männedorf Kanton Zürich ZH Bezirk Meilen 107 Männedorf 155 47.2543 8.6949 4 +CH 8712 Stäfa Kanton Zürich ZH Bezirk Meilen 107 Stäfa 158 47.2409 8.7254 4 +CH 8713 Uerikon Kanton Zürich ZH Bezirk Meilen 107 Stäfa 158 47.2263 8.7554 4 +CH 8714 Feldbach Kanton Zürich ZH Bezirk Meilen 107 Hombrechtikon 153 47.2344 8.7879 4 +CH 8307 Effretikon Kanton Zürich ZH Bezirk Pfäffikon 108 Illnau-Effretikon 296 47.4238 8.6928 4 +CH 8307 Ottikon b. Kemptthal Kanton Zürich ZH Bezirk Pfäffikon 108 Illnau-Effretikon 296 47.4374 8.7222 3 +CH 8308 Illnau Kanton Zürich ZH Bezirk Pfäffikon 108 Illnau-Effretikon 296 47.4086 8.7194 4 +CH 8308 Agasul Kanton Zürich ZH Bezirk Pfäffikon 108 Illnau-Effretikon 296 47.4198 8.7433 4 +CH 8310 Kemptthal Kanton Zürich ZH Bezirk Pfäffikon 108 Lindau 176 47.4574 8.7116 4 +CH 8310 Grafstal Kanton Zürich ZH Bezirk Pfäffikon 108 Lindau 176 47.4441 8.6983 4 +CH 8312 Winterberg ZH Kanton Zürich ZH Bezirk Pfäffikon 108 Lindau 176 47.4586 8.691 4 +CH 8314 Kyburg Kanton Zürich ZH Bezirk Pfäffikon 108 Illnau-Effretikon 296 47.4521 8.7428 4 +CH 8315 Lindau Kanton Zürich ZH Bezirk Pfäffikon 108 Lindau 176 47.4433 8.6764 4 +CH 8317 Tagelswangen Kanton Zürich ZH Bezirk Pfäffikon 108 Lindau 176 47.4273 8.6692 4 +CH 8320 Fehraltorf Kanton Zürich ZH Bezirk Pfäffikon 108 Fehraltorf 172 47.387 8.75 4 +CH 8322 Madetswil Kanton Zürich ZH Bezirk Pfäffikon 108 Russikon 178 47.4132 8.7945 4 +CH 8322 Gündisau Kanton Zürich ZH Bezirk Pfäffikon 108 Russikon 178 47.398 8.806 4 +CH 8330 Pfäffikon ZH Kanton Zürich ZH Bezirk Pfäffikon 108 Pfäffikon 177 47.3701 8.7914 4 +CH 8331 Auslikon Kanton Zürich ZH Bezirk Pfäffikon 108 Pfäffikon 177 47.3449 8.8079 4 +CH 8332 Rumlikon Kanton Zürich ZH Bezirk Pfäffikon 108 Russikon 178 47.408 8.7612 4 +CH 8332 Russikon Kanton Zürich ZH Bezirk Pfäffikon 108 Russikon 178 47.3954 8.7806 4 +CH 8335 Hittnau Kanton Zürich ZH Bezirk Pfäffikon 108 Hittnau 173 47.3663 8.8292 4 +CH 8484 Neschwil Kanton Zürich ZH Bezirk Pfäffikon 108 Weisslingen 180 47.428 8.7932 4 +CH 8484 Weisslingen Kanton Zürich ZH Bezirk Pfäffikon 108 Weisslingen 180 47.4338 8.7704 4 +CH 8484 Theilingen Kanton Zürich ZH Bezirk Pfäffikon 108 Weisslingen 180 47.417 8.767 4 +CH 8489 Wildberg Kanton Zürich ZH Bezirk Pfäffikon 108 Wildberg 182 47.4279 8.8229 4 +CH 8489 Schalchen Kanton Zürich ZH Bezirk Pfäffikon 108 Wildberg 182 47.4052 8.8331 4 +CH 8489 Ehrikon Kanton Zürich ZH Bezirk Pfäffikon 108 Wildberg 182 47.4163 8.8115 4 +CH 8492 Wila Kanton Zürich ZH Bezirk Pfäffikon 108 Wila 181 47.4098 8.8653 4 +CH 8493 Saland Kanton Zürich ZH Bezirk Pfäffikon 108 Bauma 297 47.3874 8.8601 4 +CH 8494 Bauma Kanton Zürich ZH Bezirk Pfäffikon 108 Bauma 297 47.368 8.8916 4 +CH 8499 Sternenberg Kanton Zürich ZH Bezirk Pfäffikon 108 Bauma 297 47.3888 8.914 4 +CH 8044 Gockhausen Kanton Zürich ZH Bezirk Uster 109 Dübendorf 191 47.3776 8.6049 4 +CH 8117 Fällanden Kanton Zürich ZH Bezirk Uster 109 Fällanden 193 47.3709 8.6421 4 +CH 8118 Pfaffhausen Kanton Zürich ZH Bezirk Uster 109 Fällanden 193 47.3658 8.6247 4 +CH 8121 Benglen Kanton Zürich ZH Bezirk Uster 109 Fällanden 193 47.3609 8.6375 4 +CH 8122 Binz Kanton Zürich ZH Bezirk Uster 109 Maur 195 47.357 8.6269 4 +CH 8123 Ebmatingen Kanton Zürich ZH Bezirk Uster 109 Maur 195 47.3514 8.6405 4 +CH 8124 Maur Kanton Zürich ZH Bezirk Uster 109 Maur 195 47.3376 8.6726 4 +CH 8132 Egg b. Zürich Kanton Zürich ZH Bezirk Uster 109 Egg 192 47.2938 8.6895 3 +CH 8132 Hinteregg Kanton Zürich ZH Bezirk Uster 109 Egg 192 47.3111 8.6853 4 +CH 8133 Esslingen Kanton Zürich ZH Bezirk Uster 109 Egg 192 47.2906 8.7137 4 +CH 8306 Brüttisellen Kanton Zürich ZH Bezirk Uster 109 Wangen-Brüttisellen 200 47.4219 8.6342 4 +CH 8600 Dübendorf 1 Kanton Zürich ZH Bezirk Uster 109 Dübendorf 191 47.3905 8.6172 +CH 8600 Dübendorf Kanton Zürich ZH Bezirk Uster 109 Dübendorf 191 47.3937 8.6202 4 +CH 8602 Wangen b. Dübendorf Kanton Zürich ZH Bezirk Uster 109 Wangen-Brüttisellen 200 47.4096 8.6508 4 +CH 8603 Schwerzenbach Kanton Zürich ZH Bezirk Uster 109 Schwerzenbach 197 47.3811 8.6562 4 +CH 8604 Volketswil Kanton Zürich ZH Bezirk Uster 109 Volketswil 199 47.3942 8.6815 4 +CH 8605 Gutenswil Kanton Zürich ZH Bezirk Uster 109 Volketswil 199 47.3867 8.7177 4 +CH 8606 Greifensee Kanton Zürich ZH Bezirk Uster 109 Greifensee 194 47.3635 8.6777 4 +CH 8606 Nänikon Kanton Zürich ZH Bezirk Uster 109 Uster 198 47.3715 8.6955 4 +CH 8610 Uster Kanton Zürich ZH Bezirk Uster 109 Uster 198 47.3478 8.721 4 +CH 8610 Uster 1 Kanton Zürich ZH Bezirk Uster 109 Uster 198 47.3532 8.7216 +CH 8613 Uster 3 Kanton Zürich ZH Bezirk Uster 109 Uster 198 47.3532 8.7216 +CH 8614 Sulzbach Kanton Zürich ZH Bezirk Uster 109 Uster 198 47.3278 8.7465 4 +CH 8615 Wermatswil Kanton Zürich ZH Bezirk Uster 109 Uster 198 47.365 8.7379 4 +CH 8615 Freudwil Kanton Zürich ZH Bezirk Uster 109 Uster 198 47.3759 8.7328 4 +CH 8616 Riedikon Kanton Zürich ZH Bezirk Uster 109 Uster 198 47.3299 8.7088 4 +CH 8617 Mönchaltorf Kanton Zürich ZH Bezirk Uster 109 Mönchaltorf 196 47.3122 8.7219 4 +CH 8311 Brütten Kanton Zürich ZH Bezirk Winterthur 110 Brütten 213 47.4748 8.6724 4 +CH 8352 Elsau Kanton Zürich ZH Bezirk Winterthur 110 Elsau 219 47.5026 8.8079 4 +CH 8352 Ricketwil (Winterthur) Kanton Zürich ZH Bezirk Winterthur 110 Winterthur 230 47.487 8.7977 4 +CH 8353 Elgg Kanton Zürich ZH Bezirk Winterthur 110 Elgg 217 47.4918 8.863 4 +CH 8354 Hofstetten ZH Kanton Zürich ZH Bezirk Winterthur 110 Elgg 294 47.4692 8.8588 4 +CH 8354 Dickbuch Kanton Zürich ZH Bezirk Winterthur 110 Elgg 294 47.4958 8.8324 4 +CH 8400 Winterthur Kanton Zürich ZH Bezirk Winterthur 110 Winterthur 230 47.4931 8.7297 4 +CH 8401 Winterthur Kanton Zürich ZH Bezirk Winterthur 110 Winterthur 230 47.5056 8.7241 +CH 8403 Winterthur Kanton Zürich ZH Bezirk Winterthur 110 Winterthur 230 47.5056 8.7241 +CH 8404 Stadel (Winterthur) Kanton Zürich ZH Bezirk Winterthur 110 Winterthur 230 47.5388 8.7656 4 +CH 8404 Reutlingen (Winterthur) Kanton Zürich ZH Bezirk Winterthur 110 Winterthur 230 47.527 8.7493 4 +CH 8404 Winterthur Kanton Zürich ZH Bezirk Winterthur 110 Winterthur 230 47.5094 8.7581 4 +CH 8405 Winterthur Kanton Zürich ZH Bezirk Winterthur 110 Winterthur 230 47.478 8.776 4 +CH 8406 Winterthur Kanton Zürich ZH Bezirk Winterthur 110 Winterthur 230 47.4829 8.7021 4 +CH 8408 Winterthur Kanton Zürich ZH Bezirk Winterthur 110 Winterthur 230 47.5074 8.6831 4 +CH 8409 Winterthur Kanton Zürich ZH Bezirk Winterthur 110 Winterthur 230 47.5051 8.7786 4 +CH 8412 Hünikon (Neftenbach) Kanton Zürich ZH Bezirk Winterthur 110 Neftenbach 223 47.5534 8.6634 4 +CH 8412 Aesch (Neftenbach) Kanton Zürich ZH Bezirk Winterthur 110 Neftenbach 223 47.5441 8.6794 4 +CH 8412 Riet (Neftenbach) Kanton Zürich ZH Bezirk Winterthur 110 Neftenbach 223 47.5364 8.6893 4 +CH 8413 Neftenbach Kanton Zürich ZH Bezirk Winterthur 110 Neftenbach 223 47.5298 8.6605 4 +CH 8418 Schlatt ZH Kanton Zürich ZH Bezirk Winterthur 110 Schlatt (ZH) 226 47.4703 8.8272 4 +CH 8421 Dättlikon Kanton Zürich ZH Bezirk Winterthur 110 Dättlikon 215 47.5274 8.6221 4 +CH 8422 Pfungen Kanton Zürich ZH Bezirk Winterthur 110 Pfungen 224 47.5112 8.6425 4 +CH 8442 Hettlingen Kanton Zürich ZH Bezirk Winterthur 110 Hettlingen 221 47.5495 8.7062 4 +CH 8471 Berg (Dägerlen) Kanton Zürich ZH Bezirk Winterthur 110 Dägerlen 214 47.5664 8.7351 4 +CH 8471 Dägerlen Kanton Zürich ZH Bezirk Winterthur 110 Dägerlen 214 47.5616 8.7177 4 +CH 8471 Bänk (Dägerlen) Kanton Zürich ZH Bezirk Winterthur 110 Dägerlen 214 47.5495 8.7388 4 +CH 8471 Oberwil (Dägerlen) Kanton Zürich ZH Bezirk Winterthur 110 Dägerlen 214 47.5704 8.7118 4 +CH 8471 Rutschwil (Dägerlen) Kanton Zürich ZH Bezirk Winterthur 110 Dägerlen 214 47.5561 8.7315 4 +CH 8472 Seuzach Kanton Zürich ZH Bezirk Winterthur 110 Seuzach 227 47.5343 8.7261 4 +CH 8474 Dinhard Kanton Zürich ZH Bezirk Winterthur 110 Dinhard 216 47.5578 8.7631 4 +CH 8479 Altikon Kanton Zürich ZH Bezirk Winterthur 110 Altikon 211 47.5773 8.7841 4 +CH 8482 Sennhof (Winterthur) Kanton Zürich ZH Bezirk Winterthur 110 Winterthur 230 47.4669 8.7551 4 +CH 8483 Kollbrunn Kanton Zürich ZH Bezirk Winterthur 110 Zell (ZH) 231 47.4557 8.7783 4 +CH 8486 Rikon im Tösstal Kanton Zürich ZH Bezirk Winterthur 110 Zell (ZH) 231 47.4505 8.8041 4 +CH 8487 Rämismühle Kanton Zürich ZH Bezirk Winterthur 110 Zell (ZH) 231 47.4399 8.8166 4 +CH 8487 Zell ZH Kanton Zürich ZH Bezirk Winterthur 110 Zell (ZH) 231 47.4513 8.8297 4 +CH 8488 Turbenthal Kanton Zürich ZH Bezirk Winterthur 110 Turbenthal 228 47.4373 8.8744 4 +CH 8495 Schmidrüti Kanton Zürich ZH Bezirk Winterthur 110 Turbenthal 228 47.4202 8.91 4 +CH 8523 Hagenbuch ZH Kanton Zürich ZH Bezirk Winterthur 110 Hagenbuch 220 47.5159 8.8759 4 +CH 8542 Wiesendangen Kanton Zürich ZH Bezirk Winterthur 110 Wiesendangen 298 47.5222 8.7949 4 +CH 8543 Gundetswil Kanton Zürich ZH Bezirk Winterthur 110 Wiesendangen 298 47.5387 8.8197 4 +CH 8543 Kefikon ZH Kanton Zürich ZH Bezirk Winterthur 110 Wiesendangen 298 47.5479 8.8281 4 +CH 8543 Bertschikon Kanton Zürich ZH Bezirk Winterthur 110 Wiesendangen 298 47.5254 8.8371 4 +CH 8544 Attikon Kanton Zürich ZH Bezirk Winterthur 110 Wiesendangen 298 47.5361 8.8004 4 +CH 8545 Rickenbach ZH Kanton Zürich ZH Bezirk Winterthur 110 Rickenbach (ZH) 225 47.5548 8.7957 4 +CH 8545 Rickenbach Sulz Kanton Zürich ZH Bezirk Winterthur 110 Rickenbach (ZH) 225 47.5408 8.7865 4 +CH 8546 Menzengrüt Kanton Zürich ZH Bezirk Winterthur 110 Wiesendangen 298 47.5487 8.8166 4 +CH 8548 Ellikon an der Thur Kanton Zürich ZH Bezirk Winterthur 110 Ellikon an der Thur 218 47.5631 8.8241 4 +CH 8010 Zürich Kanton Zürich ZH Bezirk Dietikon 111 Schlieren 247 47.395 8.4488 +CH 8011 Zürich Mülligen SC Kanton Zürich ZH Bezirk Dietikon 111 Schlieren 247 47.395 8.4488 +CH 8012 Zürich Kanton Zürich ZH Bezirk Dietikon 111 Schlieren 247 47.395 8.4488 +CH 8102 Oberengstringen Kanton Zürich ZH Bezirk Dietikon 111 Oberengstringen 245 47.4102 8.466 4 +CH 8103 Unterengstringen Kanton Zürich ZH Bezirk Dietikon 111 Unterengstringen 249 47.4112 8.4429 4 +CH 8104 Weiningen ZH Kanton Zürich ZH Bezirk Dietikon 111 Weiningen (ZH) 251 47.4217 8.4322 4 +CH 8142 Uitikon Waldegg Kanton Zürich ZH Bezirk Dietikon 111 Uitikon 248 47.367 8.4593 4 +CH 8901 Urdorf Kanton Zürich ZH Bezirk Dietikon 111 Urdorf 250 47.3798 8.4224 +CH 8901 Urdorf Tessi Kanton Zürich ZH Bezirk Dietikon 111 Urdorf 250 47.3798 8.4224 +CH 8902 Urdorf Kanton Zürich ZH Bezirk Dietikon 111 Urdorf 250 47.3799 8.4224 4 +CH 8903 Birmensdorf ZH Kanton Zürich ZH Bezirk Dietikon 111 Birmensdorf (ZH) 242 47.3539 8.4344 4 +CH 8904 Aesch ZH Kanton Zürich ZH Bezirk Dietikon 111 Aesch (ZH) 241 47.3354 8.433 4 +CH 8951 Fahrweid Kanton Zürich ZH Bezirk Dietikon 111 Geroldswil 244 47.4095 8.415 4 +CH 8952 Schlieren Kanton Zürich ZH Bezirk Dietikon 111 Schlieren 247 47.395 8.449 4 +CH 8953 Dietikon 2 Kanton Zürich ZH Bezirk Dietikon 111 Dietikon 243 47.402 8.3982 +CH 8953 Dietikon Kanton Zürich ZH Bezirk Dietikon 111 Dietikon 243 47.402 8.3981 4 +CH 8953 Dietikon 1 Kanton Zürich ZH Bezirk Dietikon 111 Dietikon 243 47.402 8.3982 +CH 8954 Geroldswil Kanton Zürich ZH Bezirk Dietikon 111 Geroldswil 244 47.4234 8.4127 4 +CH 8955 Oetwil an der Limmat Kanton Zürich ZH Bezirk Dietikon 111 Oetwil an der Limmat 246 47.431 8.3979 4 +CH 8000 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 +CH 8001 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3721 8.5417 4 +CH 8002 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3601 8.5327 4 +CH 8003 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3733 8.5139 4 +CH 8004 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3789 8.5204 4 +CH 8005 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3876 8.5207 4 +CH 8006 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3873 8.5499 4 +CH 8008 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3538 8.5587 4 +CH 8017 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 4 +CH 8018 Zürich PF Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8021 Zürich 1 Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8022 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 +CH 8024 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 +CH 8027 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 +CH 8031 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 +CH 8032 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.368 8.5665 4 +CH 8034 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 +CH 8036 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 +CH 8037 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3978 8.5242 4 +CH 8038 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.342 8.5352 4 +CH 8040 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 +CH 8041 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3339 8.5139 4 +CH 8042 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 +CH 8044 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3807 8.5753 4 +CH 8045 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3531 8.5089 4 +CH 8046 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.4221 8.5092 4 +CH 8047 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3739 8.4861 4 +CH 8048 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3862 8.4793 4 +CH 8049 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.4085 8.4944 4 +CH 8050 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.4119 8.5512 4 +CH 8051 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.4006 8.5781 4 +CH 8052 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.4243 8.5403 4 +CH 8053 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3609 8.5975 4 +CH 8055 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.364 8.4944 4 +CH 8057 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.4 8.5445 4 +CH 8063 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 +CH 8064 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3983 8.4855 4 +CH 8070 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 +CH 8071 Zürich CS PZ Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8074 Zürich Voice Pub Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8074 Zürich Voice Publishing Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8075 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 +CH 8080 Zürich 80 Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8081 Zürich Helsana Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8081 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8085 Zürich Versicherung Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8085 Zürich Versich. Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8086 Zürich R Digest Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8086 Zürich Reader's Digest Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8087 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 +CH 8088 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 +CH 8090 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 +CH 8091 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 +CH 8092 Zürich ETH-Zentrum Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8092 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8093 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8093 Zürich ETH-Hönggerberg Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8096 Zürich IBRS local Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8098 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3667 8.55 +CH 8099 Zürich Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 +CH 8099 Zürich Sonderdienste Kanton Zürich ZH Bezirk Zürich 112 Zürich 261 47.3828 8.5307 diff --git a/README.md b/README.md index e69de29..25dde2c 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,3 @@ +# taxorganizer + +test \ No newline at end of file diff --git a/app/.DS_Store b/app/.DS_Store new file mode 100644 index 0000000..ff529a2 Binary files /dev/null and b/app/.DS_Store differ diff --git a/app/.editorconfig b/app/.editorconfig new file mode 100644 index 0000000..f654551 --- /dev/null +++ b/app/.editorconfig @@ -0,0 +1,7 @@ +[*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue}] +charset = utf-8 +indent_size = 2 +indent_style = space +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/app/.eslintignore b/app/.eslintignore new file mode 100644 index 0000000..2d4bc7b --- /dev/null +++ b/app/.eslintignore @@ -0,0 +1,3 @@ +node_modules +dist +.quasar diff --git a/app/.eslintrc.cjs b/app/.eslintrc.cjs new file mode 100644 index 0000000..0200d4f --- /dev/null +++ b/app/.eslintrc.cjs @@ -0,0 +1,21 @@ +module.exports = { + root: true, + env: { + browser: true, + node: true + }, + parser: 'vue-eslint-parser', + parserOptions: { + parser: '@typescript-eslint/parser', + extraFileExtensions: ['.vue'] + }, + plugins: ['@typescript-eslint'], + extends: [ + 'plugin:vue/vue3-recommended', + 'plugin:@typescript-eslint/recommended' + ], + rules: { + // Allow usage of `any` when necessary + '@typescript-eslint/no-explicit-any': 'off' + } +} diff --git a/app/.npmrc b/app/.npmrc new file mode 100644 index 0000000..eb19082 --- /dev/null +++ b/app/.npmrc @@ -0,0 +1,5 @@ +# pnpm-related options +shamefully-hoist=true +strict-peer-dependencies=false +# to get the latest compatible packages when creating the project https://github.com/pnpm/pnpm/issues/6463 +resolution-mode=highest diff --git a/app/.prettierrc.json b/app/.prettierrc.json new file mode 100644 index 0000000..4ab7f6d --- /dev/null +++ b/app/.prettierrc.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://json.schemastore.org/prettierrc", + "singleQuote": true, + "printWidth": 100 +} diff --git a/app/.quasar/dev-spa/app.js b/app/.quasar/dev-spa/app.js new file mode 100644 index 0000000..608c77d --- /dev/null +++ b/app/.quasar/dev-spa/app.js @@ -0,0 +1,77 @@ +/* eslint-disable */ +/** + * THIS FILE IS GENERATED AUTOMATICALLY. + * DO NOT EDIT. + * + * You are probably looking on adding startup/initialization code. + * Use "quasar new boot " and add it there. + * One boot file per concern. Then reference the file(s) in quasar.config file > boot: + * boot: ['file', ...] // do not add ".js" extension to it. + * + * Boot files are your "main.js" + **/ + + + + + +import { Quasar } from 'quasar' +import { markRaw } from 'vue' +import RootComponent from 'app/src/App.vue' + +import createStore from 'app/src/stores/index' +import createRouter from 'app/src/router/index' + + + + + +export default async function (createAppFn, quasarUserOptions) { + + + // Create the app instance. + // Here we inject into it the Quasar UI, the router & possibly the store. + const app = createAppFn(RootComponent) + + + app.config.performance = true + + + app.use(Quasar, quasarUserOptions) + + + + + const store = typeof createStore === 'function' + ? await createStore({}) + : createStore + + + app.use(store) + + + + + + const router = markRaw( + typeof createRouter === 'function' + ? await createRouter({store}) + : createRouter + ) + + + // make router instance available in store + + store.use(({ store }) => { store.router = router }) + + + + // Expose the app, the router and the store. + // Note that we are not mounting the app here, since bootstrapping will be + // different depending on whether we are in a browser or on the server. + return { + app, + store, + router + } +} diff --git a/app/.quasar/dev-spa/client-entry.js b/app/.quasar/dev-spa/client-entry.js new file mode 100644 index 0000000..4c8b303 --- /dev/null +++ b/app/.quasar/dev-spa/client-entry.js @@ -0,0 +1,154 @@ +/* eslint-disable */ +/** + * THIS FILE IS GENERATED AUTOMATICALLY. + * DO NOT EDIT. + * + * You are probably looking on adding startup/initialization code. + * Use "quasar new boot " and add it there. + * One boot file per concern. Then reference the file(s) in quasar.config file > boot: + * boot: ['file', ...] // do not add ".js" extension to it. + * + * Boot files are your "main.js" + **/ + + +import { createApp } from 'vue' + + + + + + + +import '@quasar/extras/roboto-font/roboto-font.css' + +import '@quasar/extras/material-icons/material-icons.css' + + + + +// We load Quasar stylesheet file +import 'quasar/dist/quasar.sass' + + + + +import 'src/css/app.scss' + + +import createQuasarApp from './app.js' +import quasarUserOptions from './quasar-user-options.js' + + + + + + +console.info('[Quasar] Running SPA.') + + +const publicPath = `/` + +async function start ({ + app, + router + , store +}, bootFiles) { + + let hasRedirected = false + const getRedirectUrl = url => { + try { return router.resolve(url).href } + catch (err) {} + + return Object(url) === url + ? null + : url + } + const redirect = url => { + hasRedirected = true + + if (typeof url === 'string' && /^https?:\/\//.test(url)) { + window.location.href = url + return + } + + const href = getRedirectUrl(url) + + // continue if we didn't fail to resolve the url + if (href !== null) { + window.location.href = href + window.location.reload() + } + } + + const urlPath = window.location.href.replace(window.location.origin, '') + + for (let i = 0; hasRedirected === false && i < bootFiles.length; i++) { + try { + await bootFiles[i]({ + app, + router, + store, + ssrContext: null, + redirect, + urlPath, + publicPath + }) + } + catch (err) { + if (err && err.url) { + redirect(err.url) + return + } + + console.error('[Quasar] boot error:', err) + return + } + } + + if (hasRedirected === true) return + + + app.use(router) + + + + + + + app.mount('#q-app') + + + +} + +createQuasarApp(createApp, quasarUserOptions) + + .then(app => { + // eventually remove this when Cordova/Capacitor/Electron support becomes old + const [ method, mapFn ] = Promise.allSettled !== void 0 + ? [ + 'allSettled', + bootFiles => bootFiles.map(result => { + if (result.status === 'rejected') { + console.error('[Quasar] boot error:', result.reason) + return + } + return result.value.default + }) + ] + : [ + 'all', + bootFiles => bootFiles.map(entry => entry.default) + ] + + return Promise[ method ]([ + + import('boot/i18n') + + ]).then(bootFiles => { + const boot = mapFn(bootFiles).filter(entry => typeof entry === 'function') + start(app, boot) + }) + }) + diff --git a/app/.quasar/dev-spa/client-prefetch.js b/app/.quasar/dev-spa/client-prefetch.js new file mode 100644 index 0000000..9bbe3c5 --- /dev/null +++ b/app/.quasar/dev-spa/client-prefetch.js @@ -0,0 +1,116 @@ +/* eslint-disable */ +/** + * THIS FILE IS GENERATED AUTOMATICALLY. + * DO NOT EDIT. + * + * You are probably looking on adding startup/initialization code. + * Use "quasar new boot " and add it there. + * One boot file per concern. Then reference the file(s) in quasar.config file > boot: + * boot: ['file', ...] // do not add ".js" extension to it. + * + * Boot files are your "main.js" + **/ + + + +import App from 'app/src/App.vue' +let appPrefetch = typeof App.preFetch === 'function' + ? App.preFetch + : ( + // Class components return the component options (and the preFetch hook) inside __c property + App.__c !== void 0 && typeof App.__c.preFetch === 'function' + ? App.__c.preFetch + : false + ) + + +function getMatchedComponents (to, router) { + const route = to + ? (to.matched ? to : router.resolve(to).route) + : router.currentRoute.value + + if (!route) { return [] } + + const matched = route.matched.filter(m => m.components !== void 0) + + if (matched.length === 0) { return [] } + + return Array.prototype.concat.apply([], matched.map(m => { + return Object.keys(m.components).map(key => { + const comp = m.components[key] + return { + path: m.path, + c: comp + } + }) + })) +} + +export function addPreFetchHooks ({ router, store, publicPath }) { + // Add router hook for handling preFetch. + // Doing it after initial route is resolved so that we don't double-fetch + // the data that we already have. Using router.beforeResolve() so that all + // async components are resolved. + router.beforeResolve((to, from, next) => { + const + urlPath = window.location.href.replace(window.location.origin, ''), + matched = getMatchedComponents(to, router), + prevMatched = getMatchedComponents(from, router) + + let diffed = false + const preFetchList = matched + .filter((m, i) => { + return diffed || (diffed = ( + !prevMatched[i] || + prevMatched[i].c !== m.c || + m.path.indexOf('/:') > -1 // does it has params? + )) + }) + .filter(m => m.c !== void 0 && ( + typeof m.c.preFetch === 'function' + // Class components return the component options (and the preFetch hook) inside __c property + || (m.c.__c !== void 0 && typeof m.c.__c.preFetch === 'function') + )) + .map(m => m.c.__c !== void 0 ? m.c.__c.preFetch : m.c.preFetch) + + + if (appPrefetch !== false) { + preFetchList.unshift(appPrefetch) + appPrefetch = false + } + + + if (preFetchList.length === 0) { + return next() + } + + let hasRedirected = false + const redirect = url => { + hasRedirected = true + next(url) + } + const proceed = () => { + + if (hasRedirected === false) { next() } + } + + + + preFetchList.reduce( + (promise, preFetch) => promise.then(() => hasRedirected === false && preFetch({ + store, + currentRoute: to, + previousRoute: from, + redirect, + urlPath, + publicPath + })), + Promise.resolve() + ) + .then(proceed) + .catch(e => { + console.error(e) + proceed() + }) + }) +} diff --git a/app/.quasar/dev-spa/quasar-user-options.js b/app/.quasar/dev-spa/quasar-user-options.js new file mode 100644 index 0000000..d65d0d6 --- /dev/null +++ b/app/.quasar/dev-spa/quasar-user-options.js @@ -0,0 +1,21 @@ +/* eslint-disable */ +/** + * THIS FILE IS GENERATED AUTOMATICALLY. + * DO NOT EDIT. + * + * You are probably looking on adding startup/initialization code. + * Use "quasar new boot " and add it there. + * One boot file per concern. Then reference the file(s) in quasar.config file > boot: + * boot: ['file', ...] // do not add ".js" extension to it. + * + * Boot files are your "main.js" + **/ + + + +import {Dialog,Notify} from 'quasar' + + + +export default { config: {"notify":{"position":"top-right"}},plugins: {Dialog,Notify} } + diff --git a/app/.quasar/feature-flags.d.ts b/app/.quasar/feature-flags.d.ts new file mode 100644 index 0000000..dab07b3 --- /dev/null +++ b/app/.quasar/feature-flags.d.ts @@ -0,0 +1,8 @@ +/* eslint-disable */ +import "quasar/dist/types/feature-flag.d.ts"; + +declare module "quasar/dist/types/feature-flag.d.ts" { + interface QuasarFeatureFlags { + store: true; + } +} diff --git a/app/.quasar/pinia.d.ts b/app/.quasar/pinia.d.ts new file mode 100644 index 0000000..5bc0a53 --- /dev/null +++ b/app/.quasar/pinia.d.ts @@ -0,0 +1,8 @@ +/* eslint-disable */ +import { Router } from 'vue-router'; + +declare module 'pinia' { + export interface PiniaCustomProperties { + readonly router: Router; + } +} diff --git a/app/.quasar/prod-spa/app.js b/app/.quasar/prod-spa/app.js new file mode 100644 index 0000000..caeaac1 --- /dev/null +++ b/app/.quasar/prod-spa/app.js @@ -0,0 +1,75 @@ +/* eslint-disable */ +/** + * THIS FILE IS GENERATED AUTOMATICALLY. + * DO NOT EDIT. + * + * You are probably looking on adding startup/initialization code. + * Use "quasar new boot " and add it there. + * One boot file per concern. Then reference the file(s) in quasar.config file > boot: + * boot: ['file', ...] // do not add ".js" extension to it. + * + * Boot files are your "main.js" + **/ + + + + + +import { Quasar } from 'quasar' +import { markRaw } from 'vue' +import RootComponent from 'app/src/App.vue' + +import createStore from 'app/src/stores/index' +import createRouter from 'app/src/router/index' + + + + + +export default async function (createAppFn, quasarUserOptions) { + + + // Create the app instance. + // Here we inject into it the Quasar UI, the router & possibly the store. + const app = createAppFn(RootComponent) + + + + app.use(Quasar, quasarUserOptions) + + + + + const store = typeof createStore === 'function' + ? await createStore({}) + : createStore + + + app.use(store) + + + + + + const router = markRaw( + typeof createRouter === 'function' + ? await createRouter({store}) + : createRouter + ) + + + // make router instance available in store + + store.use(({ store }) => { store.router = router }) + + + + // Expose the app, the router and the store. + // Note that we are not mounting the app here, since bootstrapping will be + // different depending on whether we are in a browser or on the server. + return { + app, + store, + router + } +} diff --git a/app/.quasar/prod-spa/client-entry.js b/app/.quasar/prod-spa/client-entry.js new file mode 100644 index 0000000..2b0a52b --- /dev/null +++ b/app/.quasar/prod-spa/client-entry.js @@ -0,0 +1,152 @@ +/* eslint-disable */ +/** + * THIS FILE IS GENERATED AUTOMATICALLY. + * DO NOT EDIT. + * + * You are probably looking on adding startup/initialization code. + * Use "quasar new boot " and add it there. + * One boot file per concern. Then reference the file(s) in quasar.config file > boot: + * boot: ['file', ...] // do not add ".js" extension to it. + * + * Boot files are your "main.js" + **/ + + +import { createApp } from 'vue' + + + + + + + +import '@quasar/extras/roboto-font/roboto-font.css' + +import '@quasar/extras/material-icons/material-icons.css' + + + + +// We load Quasar stylesheet file +import 'quasar/dist/quasar.sass' + + + + +import 'src/css/app.scss' + + +import createQuasarApp from './app.js' +import quasarUserOptions from './quasar-user-options.js' + + + + + + + +const publicPath = `/` + +async function start ({ + app, + router + , store +}, bootFiles) { + + let hasRedirected = false + const getRedirectUrl = url => { + try { return router.resolve(url).href } + catch (err) {} + + return Object(url) === url + ? null + : url + } + const redirect = url => { + hasRedirected = true + + if (typeof url === 'string' && /^https?:\/\//.test(url)) { + window.location.href = url + return + } + + const href = getRedirectUrl(url) + + // continue if we didn't fail to resolve the url + if (href !== null) { + window.location.href = href + window.location.reload() + } + } + + const urlPath = window.location.href.replace(window.location.origin, '') + + for (let i = 0; hasRedirected === false && i < bootFiles.length; i++) { + try { + await bootFiles[i]({ + app, + router, + store, + ssrContext: null, + redirect, + urlPath, + publicPath + }) + } + catch (err) { + if (err && err.url) { + redirect(err.url) + return + } + + console.error('[Quasar] boot error:', err) + return + } + } + + if (hasRedirected === true) return + + + app.use(router) + + + + + + + app.mount('#q-app') + + + +} + +createQuasarApp(createApp, quasarUserOptions) + + .then(app => { + // eventually remove this when Cordova/Capacitor/Electron support becomes old + const [ method, mapFn ] = Promise.allSettled !== void 0 + ? [ + 'allSettled', + bootFiles => bootFiles.map(result => { + if (result.status === 'rejected') { + console.error('[Quasar] boot error:', result.reason) + return + } + return result.value.default + }) + ] + : [ + 'all', + bootFiles => bootFiles.map(entry => entry.default) + ] + + return Promise[ method ]([ + + import('boot/i18n') + + ]).then(bootFiles => { + const boot = mapFn(bootFiles).filter(entry => typeof entry === 'function') + start(app, boot) + }) + }) + diff --git a/app/.quasar/prod-spa/client-prefetch.js b/app/.quasar/prod-spa/client-prefetch.js new file mode 100644 index 0000000..9bbe3c5 --- /dev/null +++ b/app/.quasar/prod-spa/client-prefetch.js @@ -0,0 +1,116 @@ +/* eslint-disable */ +/** + * THIS FILE IS GENERATED AUTOMATICALLY. + * DO NOT EDIT. + * + * You are probably looking on adding startup/initialization code. + * Use "quasar new boot " and add it there. + * One boot file per concern. Then reference the file(s) in quasar.config file > boot: + * boot: ['file', ...] // do not add ".js" extension to it. + * + * Boot files are your "main.js" + **/ + + + +import App from 'app/src/App.vue' +let appPrefetch = typeof App.preFetch === 'function' + ? App.preFetch + : ( + // Class components return the component options (and the preFetch hook) inside __c property + App.__c !== void 0 && typeof App.__c.preFetch === 'function' + ? App.__c.preFetch + : false + ) + + +function getMatchedComponents (to, router) { + const route = to + ? (to.matched ? to : router.resolve(to).route) + : router.currentRoute.value + + if (!route) { return [] } + + const matched = route.matched.filter(m => m.components !== void 0) + + if (matched.length === 0) { return [] } + + return Array.prototype.concat.apply([], matched.map(m => { + return Object.keys(m.components).map(key => { + const comp = m.components[key] + return { + path: m.path, + c: comp + } + }) + })) +} + +export function addPreFetchHooks ({ router, store, publicPath }) { + // Add router hook for handling preFetch. + // Doing it after initial route is resolved so that we don't double-fetch + // the data that we already have. Using router.beforeResolve() so that all + // async components are resolved. + router.beforeResolve((to, from, next) => { + const + urlPath = window.location.href.replace(window.location.origin, ''), + matched = getMatchedComponents(to, router), + prevMatched = getMatchedComponents(from, router) + + let diffed = false + const preFetchList = matched + .filter((m, i) => { + return diffed || (diffed = ( + !prevMatched[i] || + prevMatched[i].c !== m.c || + m.path.indexOf('/:') > -1 // does it has params? + )) + }) + .filter(m => m.c !== void 0 && ( + typeof m.c.preFetch === 'function' + // Class components return the component options (and the preFetch hook) inside __c property + || (m.c.__c !== void 0 && typeof m.c.__c.preFetch === 'function') + )) + .map(m => m.c.__c !== void 0 ? m.c.__c.preFetch : m.c.preFetch) + + + if (appPrefetch !== false) { + preFetchList.unshift(appPrefetch) + appPrefetch = false + } + + + if (preFetchList.length === 0) { + return next() + } + + let hasRedirected = false + const redirect = url => { + hasRedirected = true + next(url) + } + const proceed = () => { + + if (hasRedirected === false) { next() } + } + + + + preFetchList.reduce( + (promise, preFetch) => promise.then(() => hasRedirected === false && preFetch({ + store, + currentRoute: to, + previousRoute: from, + redirect, + urlPath, + publicPath + })), + Promise.resolve() + ) + .then(proceed) + .catch(e => { + console.error(e) + proceed() + }) + }) +} diff --git a/app/.quasar/prod-spa/quasar-user-options.js b/app/.quasar/prod-spa/quasar-user-options.js new file mode 100644 index 0000000..d65d0d6 --- /dev/null +++ b/app/.quasar/prod-spa/quasar-user-options.js @@ -0,0 +1,21 @@ +/* eslint-disable */ +/** + * THIS FILE IS GENERATED AUTOMATICALLY. + * DO NOT EDIT. + * + * You are probably looking on adding startup/initialization code. + * Use "quasar new boot " and add it there. + * One boot file per concern. Then reference the file(s) in quasar.config file > boot: + * boot: ['file', ...] // do not add ".js" extension to it. + * + * Boot files are your "main.js" + **/ + + + +import {Dialog,Notify} from 'quasar' + + + +export default { config: {"notify":{"position":"top-right"}},plugins: {Dialog,Notify} } + diff --git a/app/.quasar/quasar.d.ts b/app/.quasar/quasar.d.ts new file mode 100644 index 0000000..d7de5f1 --- /dev/null +++ b/app/.quasar/quasar.d.ts @@ -0,0 +1,4 @@ +/* eslint-disable */ +/// + +/// diff --git a/app/.quasar/shims-vue.d.ts b/app/.quasar/shims-vue.d.ts new file mode 100644 index 0000000..18bd132 --- /dev/null +++ b/app/.quasar/shims-vue.d.ts @@ -0,0 +1,6 @@ +/* eslint-disable */ +declare module '*.vue' { + import { DefineComponent } from 'vue'; + const component: DefineComponent; + export default component; +} diff --git a/app/.quasar/tsconfig.json b/app/.quasar/tsconfig.json new file mode 100644 index 0000000..b163283 --- /dev/null +++ b/app/.quasar/tsconfig.json @@ -0,0 +1,100 @@ +{ + "compilerOptions": { + "esModuleInterop": true, + "skipLibCheck": true, + "target": "esnext", + "allowJs": true, + "resolveJsonModule": true, + "moduleDetection": "force", + "isolatedModules": true, + "module": "preserve", + "noEmit": true, + "lib": [ + "esnext", + "dom", + "dom.iterable" + ], + "strict": true, + "allowUnreachableCode": false, + "allowUnusedLabels": false, + "noImplicitOverride": true, + "exactOptionalPropertyTypes": true, + "noUncheckedIndexedAccess": true, + "paths": { + "src": [ + "./../src" + ], + "src/*": [ + "./../src/*" + ], + "app": [ + "./.." + ], + "app/*": [ + "./../*" + ], + "components": [ + "./../src/components" + ], + "components/*": [ + "./../src/components/*" + ], + "layouts": [ + "./../src/layouts" + ], + "layouts/*": [ + "./../src/layouts/*" + ], + "pages": [ + "./../src/pages" + ], + "pages/*": [ + "./../src/pages/*" + ], + "assets": [ + "./../src/assets" + ], + "assets/*": [ + "./../src/assets/*" + ], + "boot": [ + "./../src/boot" + ], + "boot/*": [ + "./../src/boot/*" + ], + "stores": [ + "./../src/stores" + ], + "stores/*": [ + "./../src/stores/*" + ], + "#q-app": [ + "./../node_modules/.pnpm/@quasar+app-vite@2.4.0_@types+node@20.19.27_eslint@9.39.2_pinia@3.0.4_typescript@5.9.3__8e27baa73f7298cb84f0516a9a74f12e/node_modules/@quasar/app-vite/types/index.d.ts" + ], + "#q-app/wrappers": [ + "./../node_modules/.pnpm/@quasar+app-vite@2.4.0_@types+node@20.19.27_eslint@9.39.2_pinia@3.0.4_typescript@5.9.3__8e27baa73f7298cb84f0516a9a74f12e/node_modules/@quasar/app-vite/types/app-wrappers.d.ts" + ], + "#q-app/bex/background": [ + "./../node_modules/.pnpm/@quasar+app-vite@2.4.0_@types+node@20.19.27_eslint@9.39.2_pinia@3.0.4_typescript@5.9.3__8e27baa73f7298cb84f0516a9a74f12e/node_modules/@quasar/app-vite/types/bex/entrypoints/background.d.ts" + ], + "#q-app/bex/content": [ + "./../node_modules/.pnpm/@quasar+app-vite@2.4.0_@types+node@20.19.27_eslint@9.39.2_pinia@3.0.4_typescript@5.9.3__8e27baa73f7298cb84f0516a9a74f12e/node_modules/@quasar/app-vite/types/bex/entrypoints/content.d.ts" + ], + "#q-app/bex/private/bex-bridge": [ + "./../node_modules/.pnpm/@quasar+app-vite@2.4.0_@types+node@20.19.27_eslint@9.39.2_pinia@3.0.4_typescript@5.9.3__8e27baa73f7298cb84f0516a9a74f12e/node_modules/@quasar/app-vite/types/bex/bex-bridge.d.ts" + ] + } + }, + "include": [ + "./**/*.d.ts", + "./../**/*" + ], + "exclude": [ + "./../dist", + "./../node_modules", + "./../src-capacitor", + "./../src-cordova", + "./../quasar.config.*.temporary.compiled*" + ] +} \ No newline at end of file diff --git a/app/.vscode/extensions.json b/app/.vscode/extensions.json new file mode 100644 index 0000000..b6a2eb9 --- /dev/null +++ b/app/.vscode/extensions.json @@ -0,0 +1,15 @@ +{ + "recommendations": [ + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "editorconfig.editorconfig", + "vue.volar", + "wayou.vscode-todo-highlight" + ], + "unwantedRecommendations": [ + "octref.vetur", + "hookyqr.beautify", + "dbaeumer.jshint", + "ms-vscode.vscode-typescript-tslint-plugin" + ] +} diff --git a/app/.vscode/settings.json b/app/.vscode/settings.json new file mode 100644 index 0000000..fa9e6d6 --- /dev/null +++ b/app/.vscode/settings.json @@ -0,0 +1,9 @@ +{ + "editor.bracketPairColorization.enabled": true, + "editor.guides.bracketPairs": true, + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.codeActionsOnSave": ["source.fixAll.eslint"], + "eslint.validate": ["javascript", "javascriptreact", "typescript", "vue"], + "typescript.tsdk": "node_modules/typescript/lib" +} diff --git a/app/README.md b/app/README.md new file mode 100644 index 0000000..f635f05 --- /dev/null +++ b/app/README.md @@ -0,0 +1,43 @@ +# dichiarazione fiscale (app) + +Dichiarazione fiscale automatizzata + +## Install the dependencies + +```bash +yarn +# or +npm install +``` + +### Start the app in development mode (hot-code reloading, error reporting, etc.) + +```bash +quasar dev +``` + +### Lint the files + +```bash +yarn lint +# or +npm run lint +``` + +### Format the files + +```bash +yarn format +# or +npm run format +``` + +### Build the app for production + +```bash +quasar build +``` + +### Customize the configuration + +See [Configuring quasar.config.js](https://v2.quasar.dev/quasar-cli-vite/quasar-config-js). diff --git a/app/Reports/2026-01-07.md b/app/Reports/2026-01-07.md new file mode 100644 index 0000000..5adcd36 --- /dev/null +++ b/app/Reports/2026-01-07.md @@ -0,0 +1,48 @@ +# Report Giornaliero — 2026-01-07 + +## Sommario rapido +- Aggiornamenti allo schema, tipi e componenti per il flusso stepper. +- Aggiunta integrazione Pinia per i dati `taxpayer` e UI per editing/visualizzazione. +- Configurazione linter/TypeScript aggiornata per ridurre errori. + +## Dettagli attività +- Schema + - Aggiunta del campo `description` a ogni step in `schema.json`. + +- Tipi TypeScript + - Creato/aggiornato `app/src/types/schema.ts` con i tipi per lo schema (StepDescriptor, FieldDescriptor, TaxpayerForm, ecc.). + - Sostituiti alcuni `any` con `unknown` per soddisfare le regole ESLint. + +- Componenti + - `app/src/components/steps/WelcomeStep.vue`: ora riceve `step` come prop; `q-card` flat e full-width. + - `app/src/components/StepsStepper.vue`: stepper verticale con lista di navigazione a sinistra; separazione navigazione/contenuto; caricamento dinamico del componente `WelcomeStep`. + - `app/src/components/steps/TaxpayerStep.vue`: form statico per lo step `taxpayer` (usa `q-input`, `q-toggle`, `q-file` con `multiple` e `use-chips`), inizializzazione dei valori e binding a store. + +- Store + - Creato `app/src/stores/taxpayer.ts` (Pinia) con `data: TaxpayerForm` e azioni `set`, `replace`, `reset`. + - `TaxpayerStep.vue` carica i dati dallo store al mount e salva nello store prima di navigare avanti. + +- Layout + - `app/src/layouts/MainLayout.vue`: drawer che mostra il JSON completo dello store `taxpayer.data` per debugging/visualizzazione. + +- Configurazione + - `app/tsconfig.json` aggiornato per sovrascrivere `noImplicitAny` (override locale). + - Creata `app/.eslintrc.cjs` per disabilitare `@typescript-eslint/no-explicit-any` globalmente nel progetto `app` (opzione scelta temporanea). + - Aggiunta `.eslintignore` (menzione: ESLint avvisa che `.eslintignore` è deprecato per la configurazione nuova). + +## Stato attuale +- Codice modificato e componenti aggiunti nel workspace. +- Linter ha segnalato errori `no-explicit-any` inizialmente; ho adattato i tipi e rimosso gli errori noti. +- Il dev server locale non è stato eseguito qui (ultimo tentativo: `pnpm run dev` exit code 130). Non ho avviato il server dopo tutte le modifiche. + +## Prossimi passi suggeriti +- Avviare `pnpm run lint` e `pnpm run dev` nella cartella `app` per verificare runtime e UI. +- Collegare altri step allo store in modo simile a `taxpayer` (caricamento/salvataggio automatico). +- Implementare validazione campi e persistenza file (upload a backend), preview e rimozione file. +- Aggiungere test e/o snapshot per i componenti chiave. + +--- + +Se vuoi, posso: +- Avviare il dev server ora (devo eseguire comandi in `/Users/fabio/CODE/BRUNO/frontend/app`). +- Salvare anche eventuali altri report o cambiare il nome/file. diff --git a/app/Reports/report-2026-01-10.md b/app/Reports/report-2026-01-10.md new file mode 100644 index 0000000..5279025 --- /dev/null +++ b/app/Reports/report-2026-01-10.md @@ -0,0 +1,41 @@ +# Report di Lavoro — 10 gennaio 2026 + +## Sommario +Breve resoconto delle modifiche fatte oggi sul progetto frontend (Quasar + Vue 3 + Pinia + TypeScript). + +## Modifiche principali +- `MaritalStep.vue`: + - Rimosso `await` non necessario su `resetValidation()` per risolvere l'errore `@typescript-eslint/await-thenable`. + - Il pulsante `Prev` ora salva i dati (`store.setMarital`) prima di emettere l'evento `prev`. + - `buildPayload()` espone tramite `defineExpose` e la logica pulisce i campi spouse quando `maritalStatus` è `SINGLE`. +- `TaxpayerStep.vue`: + - Aggiunta struttura `QForm` con `formRef` e regole `rules` condizionali (simili a `MaritalStep`). + - `goNext()` ora esegue la validazione prima di salvare e navigare; `goPrev()` salva prima di emettere `prev`. + - Risolti errori ESLint/TypeScript: `no-floating-promises` (await su validate), rimozione di variabili non usate nel `catch`. + +## File modificati oggi +- `app/src/components/steps/MaritalStep.vue` +- `app/src/components/steps/TaxpayerStep.vue` +- (varie patch correlate a `app/src/stores/schema.ts`, `app/src/i18n/*` durante il work-in-progress) + +## Stato attuale controlli +- `pnpm run lint`: exit code 0 (ultimo eseguito) +- `pnpm run tsc`: exit code 1 (ci sono ancora errori TypeScript da risolvere) +- `pnpm run dev`: exit code 130 (dev server non avviato in questo ambiente) + +## Comandi utili +Esegui questi comandi nella cartella `app` per verificare lo stato: + +```bash +pnpm run lint +pnpm run tsc +pnpm run dev +``` + +## Prossimi passi suggeriti +- Eseguire `pnpm run tsc` e correggere gli errori TypeScript rimanenti. +- Applicare lo stesso pattern di `QForm`/`rules` ad altri step se si desidera coerenza UX. +- Decidere se centralizzare il salvataggio nel `StepsStepper` (parent) o mantenerlo per-step; posso implementarne una delle due. + +--- +File salvato: `app/Reports/report-2026-01-10.md` diff --git a/app/dist/.DS_Store b/app/dist/.DS_Store new file mode 100644 index 0000000..bfcdd7d Binary files /dev/null and b/app/dist/.DS_Store differ diff --git a/app/dist/spa/assets/AddressInput-Brku8Gup.js b/app/dist/spa/assets/AddressInput-Brku8Gup.js new file mode 100644 index 0000000..e09cad2 --- /dev/null +++ b/app/dist/spa/assets/AddressInput-Brku8Gup.js @@ -0,0 +1 @@ +import{b as q}from"./userstore-DBCughIu.js";import{$ as F,r as v,a as i,a9 as d,a3 as u,a5 as s,a4 as m,a1 as _,a7 as S,a8 as c,ac as p,a6 as j}from"./index-0B2sgEyA.js";import{A as I}from"./CommentAttachment-BuVtM3GK.js";import{u as N}from"./vue-i18n.runtime-DPKkE7zN.js";import{_ as z}from"./IndexPage-CwM_myNb.js";const T={class:"row items-center q-gutter-sm q-mb-sm q-mt-md"},E={class:"col-auto"},H={class:"col"},M={class:"text-caption"},O={class:"q-pa-sm bg-grey-2 q-mb-sm"},Q={key:0,class:"text-negative"},D={key:1},U=F({__name:"AddressInput",props:{modelValue:{},label:{},allowForeign:{type:Boolean},hint:{}},emits:["update:modelValue","save","cancel"],setup(g,{emit:h}){const o=g,r=h,{t:l}=N(),n=v(!1),y=v(null),V=o.label||l("address"),b=o.allowForeign??!0,x=i(()=>{const e=o.modelValue;if(console.log("address input formatted",e),!e)return"";const t=e.country?.name||"";return e.country.code==="CH"?[e.street,String(e.cap||""),e.city,e.canton].filter(Boolean).join(", "):[e.street,String(e.cap||""),e.city,t].filter(Boolean).join(", ")}),A=i(()=>{const e=o.modelValue;return e?!(e.street||e.city||e.cap||e.country&&e.country.code):!0}),w=i(()=>o.hint||l("validation.insertAddress"));function B(){const e=o.modelValue;y.value=e?{street:e.street||"",zip:String(e.cap||""),city:e.city||"",country:e.country&&e.country.code||"",canton:e.canton||"",foreign:!!(e.country&&e.country.code&&e.country.code!=="CH")}:{street:"",zip:"",city:"",country:"",canton:"",foreign:!0},n.value=!0}function C(e){let t={code:"",name:""};if(!e.country)t={code:"",name:""};else if(typeof e.country=="string")t={code:e.country,name:e.country};else if(typeof e.country=="object"&&e.country!==null){const f=e.country;t={code:f.code||"",name:f.name||""}}const a={street:e.street||"",cap:e.zip||"",city:e.city||"",country:t,canton:e.canton||""};r("update:modelValue",a),r("save",a),n.value=!1}function k(){r("cancel"),n.value=!1}return(e,t)=>(u(),d("div",null,[s("div",T,[s("div",E,[m(j,{dense:"",flat:"",round:"",icon:"edit",onClick:B},{default:_(()=>[m(q,{class:"bg-primary text-white"},{default:_(()=>[S(c(p(l)("children.editAddress")),1)]),_:1})]),_:1})]),s("div",H,[s("div",M,c(p(V)),1)])]),s("div",O,[A.value?(u(),d("div",Q,c(w.value),1)):(u(),d("div",D,c(x.value),1))]),m(I,{modelValue:n.value,"onUpdate:modelValue":t[0]||(t[0]=a=>n.value=a),modelAddress:y.value,allowForeign:p(b),onSave:C,onCancel:k},null,8,["modelValue","modelAddress","allowForeign"])]))}}),P=z(U,[["__scopeId","data-v-b68f19ad"]]);export{P as A}; diff --git a/app/dist/spa/assets/AddressInput-DTjVpzGz.css b/app/dist/spa/assets/AddressInput-DTjVpzGz.css new file mode 100644 index 0000000..3a56c99 --- /dev/null +++ b/app/dist/spa/assets/AddressInput-DTjVpzGz.css @@ -0,0 +1 @@ +.q-card[data-v-b68f19ad]{width:100%;margin:0} diff --git a/app/dist/spa/assets/ChildrenStep-BaJwTfaC.js b/app/dist/spa/assets/ChildrenStep-BaJwTfaC.js new file mode 100644 index 0000000..9f96a70 --- /dev/null +++ b/app/dist/spa/assets/ChildrenStep-BaJwTfaC.js @@ -0,0 +1 @@ +import{$ as Ve,a as H,r as y,Z as O,o as Ne,f as S,w as R,a0 as q,a3 as c,a1 as i,a4 as s,ae as I,a5 as u,a8 as m,ac as r,a6 as h,am as z,a9 as g,af as b,an as F,aa as qe,ab as ke,a7 as M,ao as k,ap as we,ah as E,aq as xe,ar as Ae}from"./index-0B2sgEyA.js";import{Q as J,c as P,b as Y}from"./userstore-DBCughIu.js";import{Q as Fe,a as Te,b as Z}from"./QList-CHwmSUjA.js";import{C as De,A as Qe}from"./CommentAttachment-BuVtM3GK.js";import{u as Se}from"./children-ChLzVyp9.js";import{u as Me}from"./taxstore-oR45_mFg.js";import{u as $e}from"./vue-i18n.runtime-DPKkE7zN.js";import{_ as Ue}from"./IndexPage-CwM_myNb.js";import"./LocalStorage-7Uw3xG9P.js";const Le={class:"row items-center"},Be={class:"col"},je={class:"text-h6"},He={class:"col-auto"},Oe={class:"row items-center"},Re={class:"col"},Ie={class:"col-auto"},ze={key:0,class:"q-mt-md"},Ee={class:"text-subtitle2 q-mb-sm"},Je={class:"text-weight-bold"},Pe={key:1,class:"q-mt-md"},Ye={class:"text-h6"},Ze={class:"row items-center q-gutter-sm q-mt-none"},Ge={class:"col"},Ke={key:0,class:"q-mt-none"},We={key:0,class:"q-ml-lg q-mt-none"},Xe={class:"row items-center q-gutter-sm q-mb-xs"},et={class:"col-auto"},tt={class:"col"},lt={class:"text-caption"},at={class:"q-pa-xs bg-grey-2 q-px-md"},st={key:0,class:"text-negative"},nt={key:1,class:"q-pa-xs"},ot={class:"row"},rt=Ve({__name:"ChildrenStep",props:{step:{}},emits:["next","prev"],setup(G,{expose:K,emit:W}){const $=G,U=W,{t:n}=$e(),f=Se(),X=Me(),L=H(()=>{const t=X.getTaxpayer()?.lastName;return typeof t=="string"?t.trim():""}),T=y(null),ee=(t="Required")=>{const e=n("validation.required");return e&&e!=="validation.required"?e:t},D=t=>e=>{const l=ee();return e==null?l:typeof e=="string"?e.trim()!==""||l:Array.isArray(e)?e.length>0||l:!0},B=(t,e)=>l=>{const d=`${n("validation.minLength")||`Minimum ${t} chars`}`;return l==null?!0:typeof l=="string"?l.trim().length>=t||d:!0},te=(t,e)=>l=>{const d=n("validation.maxAgeFromJan1"),C=typeof d=="string"?d:`Age must be at most ${t} years from Jan 1 of this year`;if(!l)return!0;let A;if(l instanceof Date)A=l;else if(typeof l=="string")A=new Date(l);else return C;if(isNaN(A.getTime()))return C;const be=new Date,_e=new Date(be.getFullYear()-t,0,1);return A>=_e||C},le=t=>{if(!t)return"";const e=t.country,l=typeof e=="object"&&e!==null?e.code:e,d=typeof e=="object"&&e!==null?e.name:"";return l==="CH"?[t.street,String(t.zip||""),t.city,t.canton||""].filter(Boolean).join(", "):[t.street,String(t.zip||""),t.city,d].filter(Boolean).join(", ")};function j(t){const e=a[t]??"",l=typeof e=="string"?e.trim():String(e);if(!l){a[t]="";return}a[t]=l.charAt(0).toUpperCase()+l.slice(1)}function ae(){const t=L.value;t&&(a.lastName=t)}function se(t){if(!t)return"";const e=new Date(t);if(isNaN(e.getTime()))return"";const l=new Date;let d=l.getFullYear()-e.getFullYear();const C=l.getMonth()-e.getMonth();return(C<0||C===0&&l.getDate()({firstName:"",lastName:"",birthDate:"",sameHousehold:!0,school:"",hasCareCost:!1,careCosts:{comments:"",attachments:[]},address:null,alimentiVersati:!1}),o=O({hasChildren:!1,children:[],moreThanFiveChildrenNote:""}),w=y(!1),p=y(!1),_=y(null),a=O({...Q()}),x=y(null),N=y(!1),V=y(null),ne=H(()=>{const t=V.value;return t?fe(t):""}),oe=[D(),B(2)],re=[D(),B(2)],ie=[D(),te(25)];async function de(){_.value=null,Object.assign(a,Q()),a.address=null,p.value=!0,await S(),x.value?.resetValidation?.()}async function ue(t){const e=o.children[t];e&&(_.value=t,Object.assign(a,{...Q(),...e}),a.address=e.address||null,V.value=a.address||null,p.value=!0,await S(),x.value?.resetValidation?.())}function ce(){p.value=!1}function me(){a.address?V.value=a.address:V.value=null,N.value=!0}function he(){N.value=!1}function fe(t){function e(d){return typeof d=="object"&&d!==null&&Object.prototype.hasOwnProperty.call(d,"name")}const l=t.country&&typeof t.country=="object"&&e(t.country)?t.country.name:t.country||"";return`${t.street||""} ${t.zip||""} ${t.city||""} ${l||""}`}function pe(t){V.value=t,a.address=t,N.value=!1}async function ve(){try{if(await(x.value?.validate?.()??!0)===!1)return}catch{return}if(_.value===null){if(o.children.length>=5){p.value=!1,w.value=!0;return}if(o.children.push({...a}),f.setChildren(v()),o.children.length===5){p.value=!1,w.value=!0;return}}else o.children[_.value]={...a},f.setChildren(v());p.value=!1}function Ce(t){o.children.splice(t,1),f.setChildren(v())}Ne(async()=>{const t=f.getChildren();if(t){if(o.hasChildren=!!t.hasChildren,Array.isArray(t.children)&&t.children.length)for(let e=0;e<5;e++)t.children[e]&&(o.children[e]={...o.children[e],...t.children[e]});o.moreThanFiveChildrenNote=t.moreThanFiveChildrenNote||"",(t.moreThanFiveChildrenNote||Array.isArray(t.children)&&t.children.length>=5)&&(w.value=!0)}await S(),T.value?.resetValidation?.()}),R(()=>o.hasChildren,()=>{f.setChildren(v())}),R(()=>o.moreThanFiveChildrenNote,()=>{f.setChildren(v())});function v(){const t={hasChildren:o.hasChildren,children:o.children.filter(e=>e.firstName||e.lastName||e.birthDate),moreThanFiveChildrenNote:o.moreThanFiveChildrenNote};return t.children=t.children.slice(0,5),t}async function ye(){try{if(await(T.value?.validate?.()??!0)===!1)return}catch{return}const t=v();f.setChildren(t),U("next",$.step?.next)}function ge(){const t=v();f.setChildren(t),U("prev",$.step?.prev)}return K({buildPayload:v}),(t,e)=>(c(),q(E,{flat:"",class:"full-width q-pa-none"},{default:i(()=>[s(I,{class:"full-width"},{default:i(()=>[u("div",Le,[u("div",Be,[u("div",je,m(r(n)("CHD")),1)]),u("div",He,[s(h,{flat:"",label:r(n)("button.prev"),onClick:ge,class:"q-mr-sm"},null,8,["label"]),s(h,{color:"primary",label:r(n)("button.next"),onClick:ye},null,8,["label"])])]),s(z,{class:"q-my-sm"}),s(J,{ref_key:"formRef",ref:T,class:"q-gutter-md q-mt-md"},{default:i(()=>[u("div",Oe,[u("div",Re,[s(F,{modelValue:o.hasChildren,"onUpdate:modelValue":e[0]||(e[0]=l=>o.hasChildren=l),label:r(n)("children.hasChildren")},null,8,["modelValue","label"])]),u("div",Ie,[o.hasChildren?(c(),q(h,{key:0,disable:o.children.length>=5,color:"primary",label:`+ ${r(n)("children.addChild")}`,onClick:de},null,8,["disable","label"])):b("",!0)])]),o.hasChildren?(c(),g("div",ze,[u("div",Ee,m(r(n)("children.listTitle")),1),s(Fe,{bordered:""},{default:i(()=>[(c(!0),g(qe,null,ke(o.children,(l,d)=>(c(),q(Te,{key:d,clickable:""},{default:i(()=>[s(Z,null,{default:i(()=>[s(P,null,{default:i(()=>[u("span",Je,m(l.firstName||"-")+" "+m(l.lastName||"")+" ("+m(se(l.birthDate))+")",1)]),_:2},1024),a.sameHousehold?b("",!0):(c(),q(P,{key:0},{default:i(()=>[M(m(le(l.address)),1)]),_:2},1024))]),_:2},1024),s(Z,{side:"",class:"row items-center q-gutter-sm"},{default:i(()=>[s(h,{dense:"",flat:"",round:"",icon:"edit",onClick:C=>ue(d)},null,8,["onClick"]),s(h,{dense:"",flat:"",round:"",icon:"delete",color:"negative",onClick:C=>Ce(d)},null,8,["onClick"])]),_:2},1024)]),_:2},1024))),128))]),_:1})])):b("",!0),w.value||o.children.length>=5?(c(),g("div",Pe,[s(k,{type:"textarea",modelValue:o.moreThanFiveChildrenNote,"onUpdate:modelValue":e[1]||(e[1]=l=>o.moreThanFiveChildrenNote=l),label:r(n)("children.moreThanFiveChildrenNote"),autogrow:""},null,8,["modelValue","label"])])):b("",!0)]),_:1},512),s(we,{modelValue:p.value,"onUpdate:modelValue":e[13]||(e[13]=l=>p.value=l),persistent:""},{default:i(()=>[s(E,{class:"contained-card child-modal"},{default:i(()=>[s(I,null,{default:i(()=>[u("div",Ye,m(_.value===null?r(n)("children.addChild"):r(n)("children.editChild")),1),s(z,{class:"q-my-sm"}),s(J,{ref_key:"modalFormRef",ref:x,class:"q-gutter-md q-mt-md"},{default:i(()=>[s(k,{class:"q-mt-none",dense:"",modelValue:a.firstName,"onUpdate:modelValue":e[2]||(e[2]=l=>a.firstName=l),label:r(n)("children.firstName"),rules:oe,onBlur:e[3]||(e[3]=l=>j("firstName"))},null,8,["modelValue","label"]),s(k,{class:"q-mt-none",dense:"",modelValue:a.lastName,"onUpdate:modelValue":e[4]||(e[4]=l=>a.lastName=l),label:r(n)("children.lastName"),rules:re,onBlur:e[5]||(e[5]=l=>j("lastName"))},{prepend:i(()=>[s(h,{dense:"",flat:"",round:"",color:"primary",icon:"family_restroom",disable:!L.value,onClick:xe(ae,["stop","prevent"])},{default:i(()=>[s(Y,{class:"bg-primary text-white"},{default:i(()=>[M(m(r(n)("children.copyLastNameFromTaxpayer")),1)]),_:1})]),_:1},8,["disable"])]),_:1},8,["modelValue","label"]),s(k,{class:"q-mt-none",dense:"",modelValue:a.birthDate,"onUpdate:modelValue":e[6]||(e[6]=l=>a.birthDate=l),type:"date",label:r(n)("children.birthDate"),rules:ie},null,8,["modelValue","label"]),u("div",Ze,[u("div",Ge,[s(F,{class:"q-mt-none",modelValue:a.sameHousehold,"onUpdate:modelValue":e[7]||(e[7]=l=>a.sameHousehold=l),label:r(n)("children.sameHousehold")},null,8,["modelValue","label"]),a.sameHousehold?b("",!0):(c(),g("div",Ke,[s(F,{class:"q-mt-none",modelValue:a.alimentiVersati,"onUpdate:modelValue":e[8]||(e[8]=l=>a.alimentiVersati=l),label:r(n)("children.alimentiVersati")},null,8,["modelValue","label"])]))])]),a.sameHousehold?b("",!0):(c(),g("div",We,[u("div",Xe,[u("div",et,[s(h,{dense:"",flat:"",round:"",icon:"edit",onClick:me},{default:i(()=>[s(Y,{class:"bg-primary text-white"},{default:i(()=>[M(m(r(n)("children.editAddress")),1)]),_:1})]),_:1})]),u("div",tt,[u("div",lt,m(r(n)("children.addressLabel")),1)])]),u("div",at,[a.address?(c(),g("div",nt,m(ne.value),1)):(c(),g("div",st,m(r(n)("validation.insertAddress")),1))])])),s(k,{class:"q-mt-none",dense:"",modelValue:a.school,"onUpdate:modelValue":e[9]||(e[9]=l=>a.school=l),label:r(n)("children.school")},null,8,["modelValue","label"]),u("div",ot,[s(F,{class:"q-mt-none",modelValue:a.hasCareCost,"onUpdate:modelValue":e[10]||(e[10]=l=>a.hasCareCost=l),label:r(n)("children.hasCareCost")},null,8,["modelValue","label"]),a.hasCareCost?(c(),q(De,{key:0,class:"q-mt-none",modelValue:a.careCosts,"onUpdate:modelValue":e[11]||(e[11]=l=>a.careCosts=l),label:r(n)("children.careCosts"),id:"children"},null,8,["modelValue","label"])):b("",!0)])]),_:1},512)]),_:1}),s(Qe,{modelValue:N.value,"onUpdate:modelValue":e[12]||(e[12]=l=>N.value=l),modelAddress:V.value,allowForeign:!1,onSave:pe,onCancel:he},null,8,["modelValue","modelAddress"]),s(Ae,{align:"right"},{default:i(()=>[s(h,{flat:"",label:r(n)("button.cancel"),onClick:ce},null,8,["label"]),s(h,{color:"primary",label:_.value===null?r(n)("button.add"):r(n)("button.save"),onClick:ve},null,8,["label"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}))}}),Ct=Ue(rt,[["__scopeId","data-v-aa36bd22"]]);export{Ct as default}; diff --git a/app/dist/spa/assets/ChildrenStep-CyFMlGKq.css b/app/dist/spa/assets/ChildrenStep-CyFMlGKq.css new file mode 100644 index 0000000..1859bc0 --- /dev/null +++ b/app/dist/spa/assets/ChildrenStep-CyFMlGKq.css @@ -0,0 +1 @@ +.full-width[data-v-aa36bd22]{width:100%}.contained-card[data-v-aa36bd22]{min-width:480px;max-width:720px}.contained-card .q-card-section[data-v-aa36bd22]{padding:16px}.contained-card .q-card-actions[data-v-aa36bd22]{padding:12px 16px}.child-modal[data-v-aa36bd22]{min-width:480px} diff --git a/app/dist/spa/assets/CommentAttachment-BuVtM3GK.js b/app/dist/spa/assets/CommentAttachment-BuVtM3GK.js new file mode 100644 index 0000000..9e2d0df --- /dev/null +++ b/app/dist/spa/assets/CommentAttachment-BuVtM3GK.js @@ -0,0 +1 @@ +import{$ as pe,at as re,r as E,w as H,Z as Ce,a as x,f as oe,a0 as I,a3 as B,ap as ie,a1 as R,a4 as m,ah as Ge,ae as ue,a5 as i,a8 as f,ac as N,a9 as F,af as J,ao as O,an as Se,ar as Be,a6 as k,o as he,aq as Y,a7 as ne,aa as le,ab as ge}from"./index-0B2sgEyA.js";import{Q as Ve,a as te,u as Ee,d as Re,b as Le,e as Te,f as be}from"./userstore-DBCughIu.js";import{u as se}from"./vue-i18n.runtime-DPKkE7zN.js";import{_ as me}from"./IndexPage-CwM_myNb.js";const ce=["IT","US","DE","FR","ES","GB","CH","AT","BE","NL","PT","PL","RO","RU","CN","JP","IN","BR","AR","MX","ZA","SE","NO","DK","FI","IE","GR","HU","CZ","SK","SI","HR","BG","TR","IL","EG","AU","NZ","KR","VN","TH","MY","SG","ID","PH"],ee=[{postalCode:"5000",placeName:"Aarau",cantonCode:"AG"},{postalCode:"5001",placeName:"Aarau 1",cantonCode:"AG"},{postalCode:"5004",placeName:"Aarau",cantonCode:"AG"},{postalCode:"5017",placeName:"Barmelweid",cantonCode:"AG"},{postalCode:"5018",placeName:"Erlinsbach",cantonCode:"AG"},{postalCode:"5022",placeName:"Rombach",cantonCode:"AG"},{postalCode:"5023",placeName:"Biberstein",cantonCode:"AG"},{postalCode:"5024",placeName:"Küttigen",cantonCode:"AG"},{postalCode:"5025",placeName:"Asp",cantonCode:"AG"},{postalCode:"5026",placeName:"Densbüren",cantonCode:"AG"},{postalCode:"5032",placeName:"Aarau Rohr",cantonCode:"AG"},{postalCode:"5033",placeName:"Buchs AG",cantonCode:"AG"},{postalCode:"5034",placeName:"Suhr",cantonCode:"AG"},{postalCode:"5035",placeName:"Unterentfelden",cantonCode:"AG"},{postalCode:"5036",placeName:"Oberentfelden",cantonCode:"AG"},{postalCode:"5037",placeName:"Muhen",cantonCode:"AG"},{postalCode:"5042",placeName:"Hirschthal",cantonCode:"AG"},{postalCode:"5722",placeName:"Gränichen",cantonCode:"AG"},{postalCode:"5300",placeName:"Turgi",cantonCode:"AG"},{postalCode:"5301",placeName:"Siggenthal Station",cantonCode:"AG"},{postalCode:"5303",placeName:"Würenlingen",cantonCode:"AG"},{postalCode:"5400",placeName:"Baden",cantonCode:"AG"},{postalCode:"5401",placeName:"Baden",cantonCode:"AG"},{postalCode:"5402",placeName:"Baden",cantonCode:"AG"},{postalCode:"5404",placeName:"Baden",cantonCode:"AG"},{postalCode:"5405",placeName:"Baden",cantonCode:"AG"},{postalCode:"5405",placeName:"Dättwil AG",cantonCode:"AG"},{postalCode:"5406",placeName:"Rütihof",cantonCode:"AG"},{postalCode:"5406",placeName:"Baden",cantonCode:"AG"},{postalCode:"5408",placeName:"Ennetbaden",cantonCode:"AG"},{postalCode:"5412",placeName:"Vogelsang AG",cantonCode:"AG"},{postalCode:"5412",placeName:"Gebenstorf",cantonCode:"AG"},{postalCode:"5413",placeName:"Birmenstorf AG",cantonCode:"AG"},{postalCode:"5415",placeName:"Rieden AG",cantonCode:"AG"},{postalCode:"5415",placeName:"Nussbaumen AG",cantonCode:"AG"},{postalCode:"5415",placeName:"Hertenstein AG",cantonCode:"AG"},{postalCode:"5416",placeName:"Kirchdorf AG",cantonCode:"AG"},{postalCode:"5417",placeName:"Untersiggenthal",cantonCode:"AG"},{postalCode:"5420",placeName:"Ehrendingen",cantonCode:"AG"},{postalCode:"5423",placeName:"Freienwil",cantonCode:"AG"},{postalCode:"5430",placeName:"Wettingen 1",cantonCode:"AG"},{postalCode:"5430",placeName:"Wettingen 3",cantonCode:"AG"},{postalCode:"5430",placeName:"Wettingen",cantonCode:"AG"},{postalCode:"5432",placeName:"Neuenhof",cantonCode:"AG"},{postalCode:"5436",placeName:"Würenlos",cantonCode:"AG"},{postalCode:"5442",placeName:"Fislisbach",cantonCode:"AG"},{postalCode:"5443",placeName:"Niederrohrdorf",cantonCode:"AG"},{postalCode:"5444",placeName:"Künten",cantonCode:"AG"},{postalCode:"5452",placeName:"Oberrohrdorf",cantonCode:"AG"},{postalCode:"5453",placeName:"Remetschwil",cantonCode:"AG"},{postalCode:"5454",placeName:"Bellikon",cantonCode:"AG"},{postalCode:"5506",placeName:"Mägenwil",cantonCode:"AG"},{postalCode:"5507",placeName:"Mellingen",cantonCode:"AG"},{postalCode:"5512",placeName:"Wohlenschwil",cantonCode:"AG"},{postalCode:"5608",placeName:"Stetten AG",cantonCode:"AG"},{postalCode:"8109",placeName:"Kloster Fahr",cantonCode:"AG"},{postalCode:"8956",placeName:"Killwangen",cantonCode:"AG"},{postalCode:"8957",placeName:"Spreitenbach",cantonCode:"AG"},{postalCode:"8962",placeName:"Bergdietikon",cantonCode:"AG"},{postalCode:"5445",placeName:"Eggenwil",cantonCode:"AG"},{postalCode:"5522",placeName:"Tägerig",cantonCode:"AG"},{postalCode:"5524",placeName:"Niederwil AG",cantonCode:"AG"},{postalCode:"5524",placeName:"Nesselnbach",cantonCode:"AG"},{postalCode:"5525",placeName:"Fischbach-Göslikon",cantonCode:"AG"},{postalCode:"5605",placeName:"Dottikon",cantonCode:"AG"},{postalCode:"5607",placeName:"Hägglingen",cantonCode:"AG"},{postalCode:"5610",placeName:"Wohlen AG",cantonCode:"AG"},{postalCode:"5610",placeName:"Wohlen AG 1",cantonCode:"AG"},{postalCode:"5611",placeName:"Anglikon",cantonCode:"AG"},{postalCode:"5612",placeName:"Villmergen",cantonCode:"AG"},{postalCode:"5613",placeName:"Hilfikon",cantonCode:"AG"},{postalCode:"5614",placeName:"Sarmenstorf",cantonCode:"AG"},{postalCode:"5619",placeName:"Büttikon AG",cantonCode:"AG"},{postalCode:"5619",placeName:"Uezwil",cantonCode:"AG"},{postalCode:"5620",placeName:"Bremgarten AG",cantonCode:"AG"},{postalCode:"5620",placeName:"Bremgarten AG 1",cantonCode:"AG"},{postalCode:"5621",placeName:"Zufikon",cantonCode:"AG"},{postalCode:"5626",placeName:"Hermetschwil-Staffeln",cantonCode:"AG"},{postalCode:"8905",placeName:"Arni-Islisberg",cantonCode:"AG"},{postalCode:"8905",placeName:"Islisberg",cantonCode:"AG"},{postalCode:"8905",placeName:"Arni AG",cantonCode:"AG"},{postalCode:"8916",placeName:"Jonen",cantonCode:"AG"},{postalCode:"8917",placeName:"Oberlunkhofen",cantonCode:"AG"},{postalCode:"8918",placeName:"Unterlunkhofen",cantonCode:"AG"},{postalCode:"8964",placeName:"Rudolfstetten",cantonCode:"AG"},{postalCode:"8965",placeName:"Berikon",cantonCode:"AG"},{postalCode:"8966",placeName:"Oberwil-Lieli",cantonCode:"AG"},{postalCode:"8967",placeName:"Widen",cantonCode:"AG"},{postalCode:"5105",placeName:"Auenstein",cantonCode:"AG"},{postalCode:"5106",placeName:"Veltheim AG",cantonCode:"AG"},{postalCode:"5107",placeName:"Schinznach Dorf",cantonCode:"AG"},{postalCode:"5108",placeName:"Oberflachs",cantonCode:"AG"},{postalCode:"5112",placeName:"Thalheim AG",cantonCode:"AG"},{postalCode:"5116",placeName:"Schinznach Bad",cantonCode:"AG"},{postalCode:"5200",placeName:"Brugg AG",cantonCode:"AG"},{postalCode:"5201",placeName:"Brugg AG",cantonCode:"AG"},{postalCode:"5210",placeName:"Windisch",cantonCode:"AG"},{postalCode:"5212",placeName:"Hausen AG",cantonCode:"AG"},{postalCode:"5213",placeName:"Villnachern",cantonCode:"AG"},{postalCode:"5222",placeName:"Umiken",cantonCode:"AG"},{postalCode:"5223",placeName:"Riniken",cantonCode:"AG"},{postalCode:"5225",placeName:"Bözberg",cantonCode:"AG"},{postalCode:"5232",placeName:"Villigen PSI",cantonCode:"AG"},{postalCode:"5233",placeName:"Stilli",cantonCode:"AG"},{postalCode:"5234",placeName:"Villigen",cantonCode:"AG"},{postalCode:"5235",placeName:"Rüfenach AG",cantonCode:"AG"},{postalCode:"5236",placeName:"Remigen",cantonCode:"AG"},{postalCode:"5237",placeName:"Mönthal",cantonCode:"AG"},{postalCode:"5242",placeName:"Lupfig",cantonCode:"AG"},{postalCode:"5242",placeName:"Birr",cantonCode:"AG"},{postalCode:"5242",placeName:"Birr-Lupfig",cantonCode:"AG"},{postalCode:"5243",placeName:"Mülligen",cantonCode:"AG"},{postalCode:"5244",placeName:"Birrhard",cantonCode:"AG"},{postalCode:"5245",placeName:"Habsburg",cantonCode:"AG"},{postalCode:"5246",placeName:"Scherz",cantonCode:"AG"},{postalCode:"5318",placeName:"Mandach",cantonCode:"AG"},{postalCode:"5040",placeName:"Schöftland",cantonCode:"AG"},{postalCode:"5043",placeName:"Holziken",cantonCode:"AG"},{postalCode:"5044",placeName:"Schlossrued",cantonCode:"AG"},{postalCode:"5046",placeName:"Walde AG",cantonCode:"AG"},{postalCode:"5046",placeName:"Schmiedrued",cantonCode:"AG"},{postalCode:"5046",placeName:"Schmiedrued-Walde",cantonCode:"AG"},{postalCode:"5708",placeName:"Birrwil",cantonCode:"AG"},{postalCode:"5712",placeName:"Beinwil am See",cantonCode:"AG"},{postalCode:"5723",placeName:"Teufenthal AG",cantonCode:"AG"},{postalCode:"5724",placeName:"Dürrenäsch",cantonCode:"AG"},{postalCode:"5725",placeName:"Leutwil",cantonCode:"AG"},{postalCode:"5726",placeName:"Unterkulm",cantonCode:"AG"},{postalCode:"5727",placeName:"Oberkulm",cantonCode:"AG"},{postalCode:"5728",placeName:"Gontenschwil",cantonCode:"AG"},{postalCode:"5732",placeName:"Zetzwil",cantonCode:"AG"},{postalCode:"5733",placeName:"Leimbach AG",cantonCode:"AG"},{postalCode:"5734",placeName:"Reinach AG",cantonCode:"AG"},{postalCode:"5736",placeName:"Burg AG",cantonCode:"AG"},{postalCode:"5737",placeName:"Menziken",cantonCode:"AG"},{postalCode:"4333",placeName:"Münchwilen AG",cantonCode:"AG"},{postalCode:"4334",placeName:"Sisseln AG",cantonCode:"AG"},{postalCode:"5027",placeName:"Herznach",cantonCode:"AG"},{postalCode:"5028",placeName:"Ueken",cantonCode:"AG"},{postalCode:"5062",placeName:"Oberhof",cantonCode:"AG"},{postalCode:"5063",placeName:"Wölflinswil",cantonCode:"AG"},{postalCode:"5064",placeName:"Wittnau",cantonCode:"AG"},{postalCode:"5070",placeName:"Frick",cantonCode:"AG"},{postalCode:"5072",placeName:"Oeschgen",cantonCode:"AG"},{postalCode:"5073",placeName:"Gipf-Oberfrick",cantonCode:"AG"},{postalCode:"5074",placeName:"Eiken",cantonCode:"AG"},{postalCode:"5075",placeName:"Hornussen",cantonCode:"AG"},{postalCode:"5076",placeName:"Bözen",cantonCode:"AG"},{postalCode:"5077",placeName:"Elfingen",cantonCode:"AG"},{postalCode:"5078",placeName:"Effingen",cantonCode:"AG"},{postalCode:"5079",placeName:"Zeihen",cantonCode:"AG"},{postalCode:"5080",placeName:"Laufenburg",cantonCode:"AG"},{postalCode:"5082",placeName:"Kaisten",cantonCode:"AG"},{postalCode:"5083",placeName:"Ittenthal",cantonCode:"AG"},{postalCode:"5084",placeName:"Rheinsulz",cantonCode:"AG"},{postalCode:"5085",placeName:"Sulz AG",cantonCode:"AG"},{postalCode:"5272",placeName:"Gansingen",cantonCode:"AG"},{postalCode:"5273",placeName:"Oberhofen AG",cantonCode:"AG"},{postalCode:"5274",placeName:"Mettau",cantonCode:"AG"},{postalCode:"5275",placeName:"Etzgen",cantonCode:"AG"},{postalCode:"5276",placeName:"Wil AG",cantonCode:"AG"},{postalCode:"5277",placeName:"Hottwil",cantonCode:"AG"},{postalCode:"5326",placeName:"Schwaderloch",cantonCode:"AG"},{postalCode:"5102",placeName:"Rupperswil",cantonCode:"AG"},{postalCode:"5103",placeName:"Wildegg",cantonCode:"AG"},{postalCode:"5103",placeName:"Möriken AG",cantonCode:"AG"},{postalCode:"5113",placeName:"Holderbank AG",cantonCode:"AG"},{postalCode:"5502",placeName:"Hunzenschwil",cantonCode:"AG"},{postalCode:"5503",placeName:"Schafisheim",cantonCode:"AG"},{postalCode:"5504",placeName:"Othmarsingen",cantonCode:"AG"},{postalCode:"5505",placeName:"Brunegg",cantonCode:"AG"},{postalCode:"5600",placeName:"Lenzburg 1",cantonCode:"AG"},{postalCode:"5600",placeName:"Lenzburg",cantonCode:"AG"},{postalCode:"5600",placeName:"Ammerswil AG",cantonCode:"AG"},{postalCode:"5603",placeName:"Staufen",cantonCode:"AG"},{postalCode:"5604",placeName:"Hendschiken",cantonCode:"AG"},{postalCode:"5606",placeName:"Dintikon",cantonCode:"AG"},{postalCode:"5615",placeName:"Fahrwangen",cantonCode:"AG"},{postalCode:"5616",placeName:"Meisterschwanden",cantonCode:"AG"},{postalCode:"5617",placeName:"Tennwil",cantonCode:"AG"},{postalCode:"5702",placeName:"Niederlenz",cantonCode:"AG"},{postalCode:"5703",placeName:"Seon",cantonCode:"AG"},{postalCode:"5704",placeName:"Egliswil",cantonCode:"AG"},{postalCode:"5705",placeName:"Hallwil",cantonCode:"AG"},{postalCode:"5706",placeName:"Boniswil",cantonCode:"AG"},{postalCode:"5707",placeName:"Seengen",cantonCode:"AG"},{postalCode:"5618",placeName:"Bettwil",cantonCode:"AG"},{postalCode:"5622",placeName:"Waltenschwil",cantonCode:"AG"},{postalCode:"5623",placeName:"Boswil",cantonCode:"AG"},{postalCode:"5624",placeName:"Bünzen",cantonCode:"AG"},{postalCode:"5624",placeName:"Waldhäusern AG",cantonCode:"AG"},{postalCode:"5625",placeName:"Kallern",cantonCode:"AG"},{postalCode:"5627",placeName:"Besenbüren",cantonCode:"AG"},{postalCode:"5628",placeName:"Aristau",cantonCode:"AG"},{postalCode:"5630",placeName:"Muri AG",cantonCode:"AG"},{postalCode:"5632",placeName:"Buttwil",cantonCode:"AG"},{postalCode:"5634",placeName:"Merenschwand",cantonCode:"AG"},{postalCode:"5636",placeName:"Benzenschwil",cantonCode:"AG"},{postalCode:"5637",placeName:"Geltwil",cantonCode:"AG"},{postalCode:"5637",placeName:"Beinwil (Freiamt)",cantonCode:"AG"},{postalCode:"5642",placeName:"Mühlau",cantonCode:"AG"},{postalCode:"5643",placeName:"Alikon",cantonCode:"AG"},{postalCode:"5643",placeName:"Meienberg",cantonCode:"AG"},{postalCode:"5643",placeName:"Sins",cantonCode:"AG"},{postalCode:"5643",placeName:"Sins",cantonCode:"AG"},{postalCode:"5644",placeName:"Auw",cantonCode:"AG"},{postalCode:"5645",placeName:"Fenkrieden",cantonCode:"AG"},{postalCode:"5645",placeName:"Aettenschwil",cantonCode:"AG"},{postalCode:"5646",placeName:"Abtwil AG",cantonCode:"AG"},{postalCode:"5647",placeName:"Oberrüti",cantonCode:"AG"},{postalCode:"6042",placeName:"Dietwil",cantonCode:"AG"},{postalCode:"8919",placeName:"Rottenschwil",cantonCode:"AG"},{postalCode:"4303",placeName:"Kaiseraugst Liebrüti",cantonCode:"AG"},{postalCode:"4303",placeName:"Kaiseraugst",cantonCode:"AG"},{postalCode:"4305",placeName:"Olsberg",cantonCode:"AG"},{postalCode:"4310",placeName:"Rheinfelden",cantonCode:"AG"},{postalCode:"4310",placeName:"Rheinfelden 1",cantonCode:"AG"},{postalCode:"4312",placeName:"Magden",cantonCode:"AG"},{postalCode:"4313",placeName:"Möhlin",cantonCode:"AG"},{postalCode:"4314",placeName:"Zeiningen",cantonCode:"AG"},{postalCode:"4315",placeName:"Zuzgen",cantonCode:"AG"},{postalCode:"4316",placeName:"Hellikon",cantonCode:"AG"},{postalCode:"4317",placeName:"Wegenstetten",cantonCode:"AG"},{postalCode:"4322",placeName:"Mumpf",cantonCode:"AG"},{postalCode:"4323",placeName:"Wallbach",cantonCode:"AG"},{postalCode:"4324",placeName:"Obermumpf",cantonCode:"AG"},{postalCode:"4325",placeName:"Schupfart",cantonCode:"AG"},{postalCode:"4332",placeName:"Stein AG",cantonCode:"AG"},{postalCode:"4663",placeName:"Aarburg",cantonCode:"AG"},{postalCode:"4665",placeName:"Oftringen 1",cantonCode:"AG"},{postalCode:"4665",placeName:"Oftringen",cantonCode:"AG"},{postalCode:"4665",placeName:"Oftringen 2",cantonCode:"AG"},{postalCode:"4800",placeName:"Zofingen",cantonCode:"AG"},{postalCode:"4801",placeName:"Zofingen",cantonCode:"AG"},{postalCode:"4801",placeName:"Zofingen Ringier AG",cantonCode:"AG"},{postalCode:"4802",placeName:"Strengelbach",cantonCode:"AG"},{postalCode:"4803",placeName:"Vordemwald",cantonCode:"AG"},{postalCode:"4805",placeName:"Brittnau",cantonCode:"AG"},{postalCode:"4807",placeName:"Zofingen PostFinance",cantonCode:"AG"},{postalCode:"4807",placeName:"Zofingen PF",cantonCode:"AG"},{postalCode:"4808",placeName:"Zofingen PF",cantonCode:"AG"},{postalCode:"4808",placeName:"Zofingen PostFinance",cantonCode:"AG"},{postalCode:"4809",placeName:"Zofingen PF",cantonCode:"AG"},{postalCode:"4809",placeName:"Zofingen PF UBS",cantonCode:"AG"},{postalCode:"4809",placeName:"Zofingen PF UBS Verarb.",cantonCode:"AG"},{postalCode:"4809",placeName:"Zofingen Postfinance UBS",cantonCode:"AG"},{postalCode:"4810",placeName:"Zofingen PF",cantonCode:"AG"},{postalCode:"4812",placeName:"Mühlethal",cantonCode:"AG"},{postalCode:"4813",placeName:"Uerkheim",cantonCode:"AG"},{postalCode:"4814",placeName:"Bottenwil",cantonCode:"AG"},{postalCode:"4852",placeName:"Rothrist",cantonCode:"AG"},{postalCode:"4853",placeName:"Murgenthal",cantonCode:"AG"},{postalCode:"4853",placeName:"Riken AG",cantonCode:"AG"},{postalCode:"4853",placeName:"Murgenthal",cantonCode:"AG"},{postalCode:"4856",placeName:"Glashütten",cantonCode:"AG"},{postalCode:"5053",placeName:"Wittwil",cantonCode:"AG"},{postalCode:"5053",placeName:"Staffelbach",cantonCode:"AG"},{postalCode:"5054",placeName:"Moosleerau",cantonCode:"AG"},{postalCode:"5054",placeName:"Kirchleerau-Moosleerau",cantonCode:"AG"},{postalCode:"5054",placeName:"Kirchleerau",cantonCode:"AG"},{postalCode:"5056",placeName:"Attelwil",cantonCode:"AG"},{postalCode:"5057",placeName:"Reitnau",cantonCode:"AG"},{postalCode:"5058",placeName:"Wiliberg",cantonCode:"AG"},{postalCode:"5742",placeName:"Kölliken",cantonCode:"AG"},{postalCode:"5745",placeName:"Safenwil",cantonCode:"AG"},{postalCode:"5304",placeName:"Endingen",cantonCode:"AG"},{postalCode:"5305",placeName:"Unterendingen",cantonCode:"AG"},{postalCode:"5306",placeName:"Tegerfelden",cantonCode:"AG"},{postalCode:"5312",placeName:"Döttingen",cantonCode:"AG"},{postalCode:"5313",placeName:"Klingnau",cantonCode:"AG"},{postalCode:"5314",placeName:"Kleindöttingen",cantonCode:"AG"},{postalCode:"5315",placeName:"Böttstein",cantonCode:"AG"},{postalCode:"5316",placeName:"Leuggern",cantonCode:"AG"},{postalCode:"5317",placeName:"Hettenschwil",cantonCode:"AG"},{postalCode:"5322",placeName:"Koblenz",cantonCode:"AG"},{postalCode:"5323",placeName:"Rietheim",cantonCode:"AG"},{postalCode:"5324",placeName:"Full-Reuenthal",cantonCode:"AG"},{postalCode:"5325",placeName:"Leibstadt",cantonCode:"AG"},{postalCode:"5330",placeName:"Bad Zurzach",cantonCode:"AG"},{postalCode:"5332",placeName:"Rekingen AG",cantonCode:"AG"},{postalCode:"5333",placeName:"Baldingen",cantonCode:"AG"},{postalCode:"5334",placeName:"Böbikon",cantonCode:"AG"},{postalCode:"5425",placeName:"Schneisingen",cantonCode:"AG"},{postalCode:"5426",placeName:"Lengnau AG",cantonCode:"AG"},{postalCode:"5462",placeName:"Siglistorf",cantonCode:"AG"},{postalCode:"5463",placeName:"Wislikofen",cantonCode:"AG"},{postalCode:"5464",placeName:"Rümikon AG",cantonCode:"AG"},{postalCode:"5465",placeName:"Mellikon",cantonCode:"AG"},{postalCode:"5466",placeName:"Kaiserstuhl AG",cantonCode:"AG"},{postalCode:"5467",placeName:"Fisibach",cantonCode:"AG"},{postalCode:"9050",placeName:"Appenzell",cantonCode:"AI"},{postalCode:"9050",placeName:"Appenzell Eggerstanden",cantonCode:"AI"},{postalCode:"9050",placeName:"Appenzell Schlatt",cantonCode:"AI"},{postalCode:"9050",placeName:"Appenzell Enggenhütten",cantonCode:"AI"},{postalCode:"9050",placeName:"Appenzell Meistersrüte",cantonCode:"AI"},{postalCode:"9050",placeName:"Appenzell Steinegg",cantonCode:"AI"},{postalCode:"9054",placeName:"Haslen AI",cantonCode:"AI"},{postalCode:"9057",placeName:"Wasserauen",cantonCode:"AI"},{postalCode:"9057",placeName:"Weissbad",cantonCode:"AI"},{postalCode:"9057",placeName:"Schwende",cantonCode:"AI"},{postalCode:"9058",placeName:"Brülisau",cantonCode:"AI"},{postalCode:"9108",placeName:"Jakobsbad",cantonCode:"AI"},{postalCode:"9108",placeName:"Gontenbad",cantonCode:"AI"},{postalCode:"9108",placeName:"Gonten",cantonCode:"AI"},{postalCode:"9413",placeName:"Oberegg",cantonCode:"AI"},{postalCode:"9413",placeName:"Oberegg",cantonCode:"AI"},{postalCode:"9442",placeName:"Büriswilen",cantonCode:"AI"},{postalCode:"9063",placeName:"Stein AR",cantonCode:"AR"},{postalCode:"9064",placeName:"Hundwil",cantonCode:"AR"},{postalCode:"9100",placeName:"Herisau",cantonCode:"AR"},{postalCode:"9102",placeName:"Herisau",cantonCode:"AR"},{postalCode:"9103",placeName:"Schwellbrunn",cantonCode:"AR"},{postalCode:"9104",placeName:"Waldstatt",cantonCode:"AR"},{postalCode:"9105",placeName:"Schönengrund",cantonCode:"AR"},{postalCode:"9107",placeName:"Urnäsch",cantonCode:"AR"},{postalCode:"9112",placeName:"Schachen b. Herisau",cantonCode:"AR"},{postalCode:"9037",placeName:"Speicherschwendi",cantonCode:"AR"},{postalCode:"9042",placeName:"Speicher",cantonCode:"AR"},{postalCode:"9043",placeName:"Trogen",cantonCode:"AR"},{postalCode:"9052",placeName:"Niederteufen",cantonCode:"AR"},{postalCode:"9053",placeName:"Teufen AR",cantonCode:"AR"},{postalCode:"9055",placeName:"Bühler",cantonCode:"AR"},{postalCode:"9056",placeName:"Gais",cantonCode:"AR"},{postalCode:"9062",placeName:"Lustmühle",cantonCode:"AR"},{postalCode:"9035",placeName:"Grub AR",cantonCode:"AR"},{postalCode:"9038",placeName:"Rehetobel",cantonCode:"AR"},{postalCode:"9044",placeName:"Wald AR",cantonCode:"AR"},{postalCode:"9405",placeName:"Wienacht-Tobel",cantonCode:"AR"},{postalCode:"9410",placeName:"Heiden",cantonCode:"AR"},{postalCode:"9411",placeName:"Schachen b. Reute",cantonCode:"AR"},{postalCode:"9411",placeName:"Reute AR",cantonCode:"AR"},{postalCode:"9426",placeName:"Lutzenberg",cantonCode:"AR"},{postalCode:"9427",placeName:"Wolfhalden",cantonCode:"AR"},{postalCode:"9428",placeName:"Walzenhausen",cantonCode:"AR"},{postalCode:"2333",placeName:"La Ferrière",cantonCode:"BE"},{postalCode:"2345",placeName:"Le Cerneux-Veusil",cantonCode:"BE"},{postalCode:"2515",placeName:"Prêles",cantonCode:"BE"},{postalCode:"2516",placeName:"Lamboing",cantonCode:"BE"},{postalCode:"2517",placeName:"Diesse",cantonCode:"BE"},{postalCode:"2518",placeName:"Nods",cantonCode:"BE"},{postalCode:"2520",placeName:"La Neuveville",cantonCode:"BE"},{postalCode:"2534",placeName:"Les Prés-d'Orvin",cantonCode:"BE"},{postalCode:"2534",placeName:"Orvin",cantonCode:"BE"},{postalCode:"2535",placeName:"Frinvillier",cantonCode:"BE"},{postalCode:"2536",placeName:"Plagne",cantonCode:"BE"},{postalCode:"2537",placeName:"Vauffelin",cantonCode:"BE"},{postalCode:"2538",placeName:"Romont BE",cantonCode:"BE"},{postalCode:"2603",placeName:"Péry",cantonCode:"BE"},{postalCode:"2604",placeName:"La Heutte",cantonCode:"BE"},{postalCode:"2605",placeName:"Sonceboz-Sombeval",cantonCode:"BE"},{postalCode:"2606",placeName:"Corgémont",cantonCode:"BE"},{postalCode:"2607",placeName:"Cortébert",cantonCode:"BE"},{postalCode:"2608",placeName:"Courtelary",cantonCode:"BE"},{postalCode:"2608",placeName:"Montagne-de-Courtelary",cantonCode:"BE"},{postalCode:"2610",placeName:"St-Imier",cantonCode:"BE"},{postalCode:"2610",placeName:"Mont-Crosin",cantonCode:"BE"},{postalCode:"2610",placeName:"Mont-Soleil",cantonCode:"BE"},{postalCode:"2610",placeName:"Les Pontins",cantonCode:"BE"},{postalCode:"2612",placeName:"Cormoret",cantonCode:"BE"},{postalCode:"2613",placeName:"Villeret",cantonCode:"BE"},{postalCode:"2615",placeName:"Sonvilier",cantonCode:"BE"},{postalCode:"2615",placeName:"Montagne-de-Sonvilier",cantonCode:"BE"},{postalCode:"2616",placeName:"Renan BE",cantonCode:"BE"},{postalCode:"2710",placeName:"Tavannes",cantonCode:"BE"},{postalCode:"2712",placeName:"Le Fuet",cantonCode:"BE"},{postalCode:"2713",placeName:"Bellelay",cantonCode:"BE"},{postalCode:"2715",placeName:"Monible",cantonCode:"BE"},{postalCode:"2715",placeName:"Châtelat",cantonCode:"BE"},{postalCode:"2716",placeName:"Sornetan",cantonCode:"BE"},{postalCode:"2717",placeName:"Fornet-Dessous",cantonCode:"BE"},{postalCode:"2717",placeName:"Rebévelier",cantonCode:"BE"},{postalCode:"2720",placeName:"Tramelan",cantonCode:"BE"},{postalCode:"2720",placeName:"La Tanne",cantonCode:"BE"},{postalCode:"2722",placeName:"Les Reussilles",cantonCode:"BE"},{postalCode:"2723",placeName:"Mont-Tramelan",cantonCode:"BE"},{postalCode:"2732",placeName:"Loveresse",cantonCode:"BE"},{postalCode:"2732",placeName:"Saicourt",cantonCode:"BE"},{postalCode:"2732",placeName:"Saules BE",cantonCode:"BE"},{postalCode:"2732",placeName:"Reconvilier",cantonCode:"BE"},{postalCode:"2733",placeName:"Pontenet",cantonCode:"BE"},{postalCode:"2735",placeName:"Malleray-Bévilard",cantonCode:"BE"},{postalCode:"2735",placeName:"Bévilard",cantonCode:"BE"},{postalCode:"2735",placeName:"Champoz",cantonCode:"BE"},{postalCode:"2735",placeName:"Malleray",cantonCode:"BE"},{postalCode:"2736",placeName:"Sorvilier",cantonCode:"BE"},{postalCode:"2738",placeName:"Court",cantonCode:"BE"},{postalCode:"2740",placeName:"Moutier",cantonCode:"BE"},{postalCode:"2742",placeName:"Perrefitte",cantonCode:"BE"},{postalCode:"2743",placeName:"Eschert",cantonCode:"BE"},{postalCode:"2744",placeName:"Belprahon",cantonCode:"BE"},{postalCode:"2745",placeName:"Grandval",cantonCode:"BE"},{postalCode:"2746",placeName:"Crémines",cantonCode:"BE"},{postalCode:"2747",placeName:"Corcelles BE",cantonCode:"BE"},{postalCode:"2747",placeName:"Seehof",cantonCode:"BE"},{postalCode:"2748",placeName:"Souboz",cantonCode:"BE"},{postalCode:"2748",placeName:"Les Ecorcheresses",cantonCode:"BE"},{postalCode:"2762",placeName:"Roches BE",cantonCode:"BE"},{postalCode:"2827",placeName:"Schelten",cantonCode:"BE"},{postalCode:"2500",placeName:"Biel/Bienne 4",cantonCode:"BE"},{postalCode:"2500",placeName:"Biel/Bienne",cantonCode:"BE"},{postalCode:"2500",placeName:"Biel/Bienne 6",cantonCode:"BE"},{postalCode:"2501",placeName:"Biel/Bienne",cantonCode:"BE"},{postalCode:"2502",placeName:"Biel/Bienne",cantonCode:"BE"},{postalCode:"2503",placeName:"Biel/Bienne",cantonCode:"BE"},{postalCode:"2504",placeName:"Biel/Bienne",cantonCode:"BE"},{postalCode:"2505",placeName:"Biel/Bienne",cantonCode:"BE"},{postalCode:"2512",placeName:"Tüscherz-Alfermée",cantonCode:"BE"},{postalCode:"2513",placeName:"Twann",cantonCode:"BE"},{postalCode:"2514",placeName:"Ligerz",cantonCode:"BE"},{postalCode:"2532",placeName:"Macolin",cantonCode:"BE"},{postalCode:"2532",placeName:"Magglingen/Macolin",cantonCode:"BE"},{postalCode:"2533",placeName:"Evilard",cantonCode:"BE"},{postalCode:"2542",placeName:"Pieterlen",cantonCode:"BE"},{postalCode:"2543",placeName:"Lengnau BE",cantonCode:"BE"},{postalCode:"2552",placeName:"Orpund",cantonCode:"BE"},{postalCode:"2553",placeName:"Safnern",cantonCode:"BE"},{postalCode:"2554",placeName:"Meinisberg",cantonCode:"BE"},{postalCode:"2555",placeName:"Brügg BE",cantonCode:"BE"},{postalCode:"2556",placeName:"Scheuren",cantonCode:"BE"},{postalCode:"2556",placeName:"Schwadernau",cantonCode:"BE"},{postalCode:"2558",placeName:"Aegerten",cantonCode:"BE"},{postalCode:"2560",placeName:"Nidau",cantonCode:"BE"},{postalCode:"2562",placeName:"Port",cantonCode:"BE"},{postalCode:"2563",placeName:"Ipsach",cantonCode:"BE"},{postalCode:"2564",placeName:"Bellmund",cantonCode:"BE"},{postalCode:"2572",placeName:"Mörigen",cantonCode:"BE"},{postalCode:"2572",placeName:"Sutz",cantonCode:"BE"},{postalCode:"2557",placeName:"Studen BE",cantonCode:"BE"},{postalCode:"2565",placeName:"Jens",cantonCode:"BE"},{postalCode:"2575",placeName:"Gerolfingen",cantonCode:"BE"},{postalCode:"2575",placeName:"Hagneck",cantonCode:"BE"},{postalCode:"2575",placeName:"Täuffelen",cantonCode:"BE"},{postalCode:"2576",placeName:"Lüscherz",cantonCode:"BE"},{postalCode:"2577",placeName:"Siselen BE",cantonCode:"BE"},{postalCode:"2577",placeName:"Finsterhennen",cantonCode:"BE"},{postalCode:"3035",placeName:"Frieswil",cantonCode:"BE"},{postalCode:"3036",placeName:"Detligen",cantonCode:"BE"},{postalCode:"3053",placeName:"Lätti",cantonCode:"BE"},{postalCode:"3054",placeName:"Schüpfen",cantonCode:"BE"},{postalCode:"3225",placeName:"Müntschemier",cantonCode:"BE"},{postalCode:"3226",placeName:"Treiten",cantonCode:"BE"},{postalCode:"3232",placeName:"Ins",cantonCode:"BE"},{postalCode:"3233",placeName:"Tschugg",cantonCode:"BE"},{postalCode:"3234",placeName:"Vinelz",cantonCode:"BE"},{postalCode:"3235",placeName:"Erlach",cantonCode:"BE"},{postalCode:"3236",placeName:"Gampelen",cantonCode:"BE"},{postalCode:"3237",placeName:"Brüttelen",cantonCode:"BE"},{postalCode:"3238",placeName:"Gals",cantonCode:"BE"},{postalCode:"3250",placeName:"Lyss",cantonCode:"BE"},{postalCode:"3251",placeName:"Wengi b. Büren",cantonCode:"BE"},{postalCode:"3251",placeName:"Ruppoldsried",cantonCode:"BE"},{postalCode:"3252",placeName:"Worben",cantonCode:"BE"},{postalCode:"3255",placeName:"Rapperswil BE",cantonCode:"BE"},{postalCode:"3256",placeName:"Seewil",cantonCode:"BE"},{postalCode:"3256",placeName:"Dieterswil",cantonCode:"BE"},{postalCode:"3256",placeName:"Bangerten b. Dieterswil",cantonCode:"BE"},{postalCode:"3257",placeName:"Grossaffoltern",cantonCode:"BE"},{postalCode:"3257",placeName:"Ammerzwil BE",cantonCode:"BE"},{postalCode:"3262",placeName:"Suberg",cantonCode:"BE"},{postalCode:"3263",placeName:"Büetigen",cantonCode:"BE"},{postalCode:"3264",placeName:"Diessbach b. Büren",cantonCode:"BE"},{postalCode:"3266",placeName:"Wiler b. Seedorf",cantonCode:"BE"},{postalCode:"3267",placeName:"Seedorf BE",cantonCode:"BE"},{postalCode:"3268",placeName:"Lobsigen",cantonCode:"BE"},{postalCode:"3270",placeName:"Aarberg",cantonCode:"BE"},{postalCode:"3271",placeName:"Radelfingen b. Aarberg",cantonCode:"BE"},{postalCode:"3272",placeName:"Walperswil",cantonCode:"BE"},{postalCode:"3272",placeName:"Epsach",cantonCode:"BE"},{postalCode:"3273",placeName:"Kappelen",cantonCode:"BE"},{postalCode:"3274",placeName:"Merzligen",cantonCode:"BE"},{postalCode:"3274",placeName:"Hermrigen",cantonCode:"BE"},{postalCode:"3274",placeName:"Bühl b. Aarberg",cantonCode:"BE"},{postalCode:"3282",placeName:"Bargen BE",cantonCode:"BE"},{postalCode:"3283",placeName:"Kallnach",cantonCode:"BE"},{postalCode:"3283",placeName:"Niederried b. Kallnach",cantonCode:"BE"},{postalCode:"3292",placeName:"Busswil BE",cantonCode:"BE"},{postalCode:"3293",placeName:"Dotzigen",cantonCode:"BE"},{postalCode:"3294",placeName:"Meienried",cantonCode:"BE"},{postalCode:"3294",placeName:"Büren an der Aare",cantonCode:"BE"},{postalCode:"3295",placeName:"Rüti b. Büren",cantonCode:"BE"},{postalCode:"3296",placeName:"Arch",cantonCode:"BE"},{postalCode:"3297",placeName:"Leuzigen",cantonCode:"BE"},{postalCode:"3298",placeName:"Oberwil b. Büren",cantonCode:"BE"},{postalCode:"3360",placeName:"Herzogenbuchsee",cantonCode:"BE"},{postalCode:"3362",placeName:"Niederönz",cantonCode:"BE"},{postalCode:"3363",placeName:"Oberönz",cantonCode:"BE"},{postalCode:"3365",placeName:"Seeberg",cantonCode:"BE"},{postalCode:"3365",placeName:"Grasswil",cantonCode:"BE"},{postalCode:"3366",placeName:"Bettenhausen",cantonCode:"BE"},{postalCode:"3366",placeName:"Bollodingen",cantonCode:"BE"},{postalCode:"3367",placeName:"Ochlenberg",cantonCode:"BE"},{postalCode:"3367",placeName:"Thörigen",cantonCode:"BE"},{postalCode:"3368",placeName:"Bleienbach",cantonCode:"BE"},{postalCode:"3372",placeName:"Wanzwil",cantonCode:"BE"},{postalCode:"3373",placeName:"Röthenbach Herzogenbuchsee",cantonCode:"BE"},{postalCode:"3373",placeName:"Heimenhausen",cantonCode:"BE"},{postalCode:"3374",placeName:"Wangenried",cantonCode:"BE"},{postalCode:"3375",placeName:"Inkwil",cantonCode:"BE"},{postalCode:"3376",placeName:"Berken",cantonCode:"BE"},{postalCode:"3376",placeName:"Graben",cantonCode:"BE"},{postalCode:"3377",placeName:"Walliswil b. Wangen",cantonCode:"BE"},{postalCode:"3380",placeName:"Wangen an der Aare",cantonCode:"BE"},{postalCode:"3380",placeName:"Walliswil b. Niederbipp",cantonCode:"BE"},{postalCode:"3464",placeName:"Schmidigen-Mühleweg",cantonCode:"BE"},{postalCode:"3475",placeName:"Hermiswil",cantonCode:"BE"},{postalCode:"3475",placeName:"Riedtwil",cantonCode:"BE"},{postalCode:"3476",placeName:"Oschwand",cantonCode:"BE"},{postalCode:"4536",placeName:"Attiswil",cantonCode:"BE"},{postalCode:"4537",placeName:"Wiedlisbach",cantonCode:"BE"},{postalCode:"4538",placeName:"Oberbipp",cantonCode:"BE"},{postalCode:"4539",placeName:"Rumisberg",cantonCode:"BE"},{postalCode:"4539",placeName:"Farnern",cantonCode:"BE"},{postalCode:"4704",placeName:"Niederbipp",cantonCode:"BE"},{postalCode:"4704",placeName:"Wolfisberg",cantonCode:"BE"},{postalCode:"4900",placeName:"Langenthal",cantonCode:"BE"},{postalCode:"4901",placeName:"Langenthal",cantonCode:"BE"},{postalCode:"4911",placeName:"Schwarzhäusern",cantonCode:"BE"},{postalCode:"4912",placeName:"Aarwangen",cantonCode:"BE"},{postalCode:"4913",placeName:"Bannwil",cantonCode:"BE"},{postalCode:"4914",placeName:"Roggwil BE",cantonCode:"BE"},{postalCode:"4916",placeName:"Untersteckholz",cantonCode:"BE"},{postalCode:"4917",placeName:"Melchnau",cantonCode:"BE"},{postalCode:"4917",placeName:"Busswil b. Melchnau",cantonCode:"BE"},{postalCode:"4919",placeName:"Reisiswil",cantonCode:"BE"},{postalCode:"4922",placeName:"Thunstetten",cantonCode:"BE"},{postalCode:"4922",placeName:"Bützberg",cantonCode:"BE"},{postalCode:"4923",placeName:"Wynau",cantonCode:"BE"},{postalCode:"4924",placeName:"Obersteckholz",cantonCode:"BE"},{postalCode:"4932",placeName:"Lotzwil",cantonCode:"BE"},{postalCode:"4932",placeName:"Gutenburg",cantonCode:"BE"},{postalCode:"4933",placeName:"Rütschelen",cantonCode:"BE"},{postalCode:"4934",placeName:"Madiswil",cantonCode:"BE"},{postalCode:"4935",placeName:"Leimiswil",cantonCode:"BE"},{postalCode:"4936",placeName:"Kleindietwil",cantonCode:"BE"},{postalCode:"4937",placeName:"Ursenbach",cantonCode:"BE"},{postalCode:"4938",placeName:"Rohrbach",cantonCode:"BE"},{postalCode:"4938",placeName:"Rohrbachgraben",cantonCode:"BE"},{postalCode:"4942",placeName:"Walterswil BE",cantonCode:"BE"},{postalCode:"4943",placeName:"Oeschenbach",cantonCode:"BE"},{postalCode:"4944",placeName:"Auswil",cantonCode:"BE"},{postalCode:"4950",placeName:"Huttwil",cantonCode:"BE"},{postalCode:"4952",placeName:"Eriswil",cantonCode:"BE"},{postalCode:"4953",placeName:"Schwarzenbach (Huttwil)",cantonCode:"BE"},{postalCode:"4954",placeName:"Wyssachen",cantonCode:"BE"},{postalCode:"4955",placeName:"Gondiswil",cantonCode:"BE"},{postalCode:"3309",placeName:"Kernenried",cantonCode:"BE"},{postalCode:"3315",placeName:"Kräiligen",cantonCode:"BE"},{postalCode:"3315",placeName:"Bätterkinden",cantonCode:"BE"},{postalCode:"3324",placeName:"Hindelbank",cantonCode:"BE"},{postalCode:"3324",placeName:"Mötschwil",cantonCode:"BE"},{postalCode:"3325",placeName:"Hettiswil b. Hindelbank",cantonCode:"BE"},{postalCode:"3326",placeName:"Krauchthal",cantonCode:"BE"},{postalCode:"3400",placeName:"Burgdorf",cantonCode:"BE"},{postalCode:"3401",placeName:"Burgdorf",cantonCode:"BE"},{postalCode:"3412",placeName:"Heimiswil",cantonCode:"BE"},{postalCode:"3413",placeName:"Kaltacker",cantonCode:"BE"},{postalCode:"3414",placeName:"Oberburg",cantonCode:"BE"},{postalCode:"3415",placeName:"Schafhausen im Emmental",cantonCode:"BE"},{postalCode:"3415",placeName:"Rüegsauschachen",cantonCode:"BE"},{postalCode:"3415",placeName:"Hasle-Rüegsau",cantonCode:"BE"},{postalCode:"3415",placeName:"Hasle b. Burgdorf",cantonCode:"BE"},{postalCode:"3416",placeName:"Affoltern im Emmental",cantonCode:"BE"},{postalCode:"3417",placeName:"Rüegsau",cantonCode:"BE"},{postalCode:"3418",placeName:"Rüegsbach",cantonCode:"BE"},{postalCode:"3419",placeName:"Biembach im Emmental",cantonCode:"BE"},{postalCode:"3421",placeName:"Lyssach",cantonCode:"BE"},{postalCode:"3421",placeName:"Lyssach",cantonCode:"BE"},{postalCode:"3421",placeName:"Rüti b. Lyssach",cantonCode:"BE"},{postalCode:"3422",placeName:"Kirchberg BE",cantonCode:"BE"},{postalCode:"3422",placeName:"Rüdtligen",cantonCode:"BE"},{postalCode:"3422",placeName:"Alchenflüh",cantonCode:"BE"},{postalCode:"3423",placeName:"Ersigen",cantonCode:"BE"},{postalCode:"3424",placeName:"Niederösch",cantonCode:"BE"},{postalCode:"3424",placeName:"Oberösch",cantonCode:"BE"},{postalCode:"3425",placeName:"Willadingen",cantonCode:"BE"},{postalCode:"3425",placeName:"Koppigen",cantonCode:"BE"},{postalCode:"3426",placeName:"Aefligen",cantonCode:"BE"},{postalCode:"3427",placeName:"Utzenstorf",cantonCode:"BE"},{postalCode:"3428",placeName:"Wiler b. Utzenstorf",cantonCode:"BE"},{postalCode:"3429",placeName:"Hellsau",cantonCode:"BE"},{postalCode:"3429",placeName:"Höchstetten",cantonCode:"BE"},{postalCode:"3432",placeName:"Lützelflüh-Goldbach",cantonCode:"BE"},{postalCode:"3433",placeName:"Schwanden im Emmental",cantonCode:"BE"},{postalCode:"3435",placeName:"Ramsei",cantonCode:"BE"},{postalCode:"3436",placeName:"Zollbrück",cantonCode:"BE"},{postalCode:"3437",placeName:"Rüderswil",cantonCode:"BE"},{postalCode:"3438",placeName:"Lauperswil",cantonCode:"BE"},{postalCode:"3439",placeName:"Ranflüh",cantonCode:"BE"},{postalCode:"3452",placeName:"Grünenmatt",cantonCode:"BE"},{postalCode:"3453",placeName:"Heimisbach",cantonCode:"BE"},{postalCode:"3454",placeName:"Sumiswald",cantonCode:"BE"},{postalCode:"3455",placeName:"Grünen",cantonCode:"BE"},{postalCode:"3456",placeName:"Trachselwald",cantonCode:"BE"},{postalCode:"3457",placeName:"Wasen im Emmental",cantonCode:"BE"},{postalCode:"3462",placeName:"Weier im Emmental",cantonCode:"BE"},{postalCode:"3463",placeName:"Häusernmoos im Emmental",cantonCode:"BE"},{postalCode:"3465",placeName:"Dürrenroth",cantonCode:"BE"},{postalCode:"3472",placeName:"Rumendingen",cantonCode:"BE"},{postalCode:"3472",placeName:"Wynigen",cantonCode:"BE"},{postalCode:"3473",placeName:"Alchenstorf",cantonCode:"BE"},{postalCode:"3474",placeName:"Rüedisbach",cantonCode:"BE"},{postalCode:"3534",placeName:"Signau",cantonCode:"BE"},{postalCode:"3535",placeName:"Schüpbach",cantonCode:"BE"},{postalCode:"3536",placeName:"Aeschau",cantonCode:"BE"},{postalCode:"3537",placeName:"Eggiwil",cantonCode:"BE"},{postalCode:"3538",placeName:"Röthenbach im Emmental",cantonCode:"BE"},{postalCode:"3543",placeName:"Emmenmatt",cantonCode:"BE"},{postalCode:"3550",placeName:"Langnau im Emmental",cantonCode:"BE"},{postalCode:"3551",placeName:"Oberfrittenbach",cantonCode:"BE"},{postalCode:"3552",placeName:"Bärau",cantonCode:"BE"},{postalCode:"3553",placeName:"Gohl",cantonCode:"BE"},{postalCode:"3555",placeName:"Trubschachen",cantonCode:"BE"},{postalCode:"3556",placeName:"Trub",cantonCode:"BE"},{postalCode:"3557",placeName:"Fankhaus (Trub)",cantonCode:"BE"},{postalCode:"3618",placeName:"Süderen",cantonCode:"BE"},{postalCode:"4564",placeName:"Zielebach",cantonCode:"BE"},{postalCode:"6197",placeName:"Schangnau",cantonCode:"BE"},{postalCode:"1595",placeName:"Clavaleyres",cantonCode:"BE"},{postalCode:"1738",placeName:"Sangernboden",cantonCode:"BE"},{postalCode:"1797",placeName:"Münchenwiler",cantonCode:"BE"},{postalCode:"3000",placeName:"Bern 9",cantonCode:"BE"},{postalCode:"3000",placeName:"Bern 5",cantonCode:"BE"},{postalCode:"3000",placeName:"Bern 31",cantonCode:"BE"},{postalCode:"3000",placeName:"Bern 65",cantonCode:"BE"},{postalCode:"3000",placeName:"Bern 94",cantonCode:"BE"},{postalCode:"3000",placeName:"Bern 13",cantonCode:"BE"},{postalCode:"3000",placeName:"Bern 8",cantonCode:"BE"},{postalCode:"3000",placeName:"Bern 6",cantonCode:"BE"},{postalCode:"3000",placeName:"Bern",cantonCode:"BE"},{postalCode:"3000",placeName:"Bern 60 UPD",cantonCode:"BE"},{postalCode:"3000",placeName:"Bern 14",cantonCode:"BE"},{postalCode:"3000",placeName:"Bern 22",cantonCode:"BE"},{postalCode:"3000",placeName:"Bern 65 SBB",cantonCode:"BE"},{postalCode:"3000",placeName:"Bern 16",cantonCode:"BE"},{postalCode:"3000",placeName:"Bern 15",cantonCode:"BE"},{postalCode:"3001",placeName:"Bern",cantonCode:"BE"},{postalCode:"3002",placeName:"Bern PostFinance",cantonCode:"BE"},{postalCode:"3003",placeName:"Bern",cantonCode:"BE"},{postalCode:"3004",placeName:"Bern",cantonCode:"BE"},{postalCode:"3005",placeName:"Bern",cantonCode:"BE"},{postalCode:"3006",placeName:"Bern",cantonCode:"BE"},{postalCode:"3007",placeName:"Bern",cantonCode:"BE"},{postalCode:"3008",placeName:"Bern",cantonCode:"BE"},{postalCode:"3010",placeName:"Bern",cantonCode:"BE"},{postalCode:"3011",placeName:"Bern",cantonCode:"BE"},{postalCode:"3011",placeName:"Bern",cantonCode:"BE"},{postalCode:"3012",placeName:"Bern",cantonCode:"BE"},{postalCode:"3013",placeName:"Bern",cantonCode:"BE"},{postalCode:"3014",placeName:"Bern",cantonCode:"BE"},{postalCode:"3015",placeName:"Bern",cantonCode:"BE"},{postalCode:"3018",placeName:"Bern",cantonCode:"BE"},{postalCode:"3019",placeName:"Bern",cantonCode:"BE"},{postalCode:"3020",placeName:"Bern",cantonCode:"BE"},{postalCode:"3024",placeName:"Bern",cantonCode:"BE"},{postalCode:"3027",placeName:"Bern",cantonCode:"BE"},{postalCode:"3029",placeName:"Bern",cantonCode:"BE"},{postalCode:"3030",placeName:"Bern",cantonCode:"BE"},{postalCode:"3032",placeName:"Hinterkappelen",cantonCode:"BE"},{postalCode:"3033",placeName:"Wohlen b. Bern",cantonCode:"BE"},{postalCode:"3034",placeName:"Murzelen",cantonCode:"BE"},{postalCode:"3037",placeName:"Herrenschwanden",cantonCode:"BE"},{postalCode:"3038",placeName:"Kirchlindach",cantonCode:"BE"},{postalCode:"3039",placeName:"Bern PF OC",cantonCode:"BE"},{postalCode:"3039",placeName:"Bern PF Operations Center",cantonCode:"BE"},{postalCode:"3040",placeName:"Bern Verarb.zentr.",cantonCode:"BE"},{postalCode:"3040",placeName:"Bern Verarbeitungszentrum",cantonCode:"BE"},{postalCode:"3041",placeName:"Bern UBS",cantonCode:"BE"},{postalCode:"3042",placeName:"Ortschwaben",cantonCode:"BE"},{postalCode:"3043",placeName:"Uettligen",cantonCode:"BE"},{postalCode:"3044",placeName:"Innerberg",cantonCode:"BE"},{postalCode:"3045",placeName:"Meikirch",cantonCode:"BE"},{postalCode:"3046",placeName:"Wahlendorf",cantonCode:"BE"},{postalCode:"3047",placeName:"Bremgarten b. Bern",cantonCode:"BE"},{postalCode:"3048",placeName:"Worblaufen",cantonCode:"BE"},{postalCode:"3049",placeName:"Säriswil",cantonCode:"BE"},{postalCode:"3050",placeName:"Bern Swisscom",cantonCode:"BE"},{postalCode:"3052",placeName:"Zollikofen",cantonCode:"BE"},{postalCode:"3053",placeName:"Diemerswil",cantonCode:"BE"},{postalCode:"3053",placeName:"Münchenbuchsee",cantonCode:"BE"},{postalCode:"3053",placeName:"Wiggiswil",cantonCode:"BE"},{postalCode:"3053",placeName:"Deisswil b. Münchenbuchsee",cantonCode:"BE"},{postalCode:"3063",placeName:"Ittigen",cantonCode:"BE"},{postalCode:"3065",placeName:"Bolligen",cantonCode:"BE"},{postalCode:"3066",placeName:"Stettlen",cantonCode:"BE"},{postalCode:"3067",placeName:"Boll",cantonCode:"BE"},{postalCode:"3068",placeName:"Utzigen",cantonCode:"BE"},{postalCode:"3071",placeName:"Ostermundigen KATA",cantonCode:"BE"},{postalCode:"3072",placeName:"Ostermundigen 1",cantonCode:"BE"},{postalCode:"3072",placeName:"Ostermundigen",cantonCode:"BE"},{postalCode:"3073",placeName:"Gümligen",cantonCode:"BE"},{postalCode:"3074",placeName:"Muri b. Bern",cantonCode:"BE"},{postalCode:"3075",placeName:"Vielbringen b. Worb",cantonCode:"BE"},{postalCode:"3075",placeName:"Rüfenacht BE",cantonCode:"BE"},{postalCode:"3076",placeName:"Worb",cantonCode:"BE"},{postalCode:"3077",placeName:"Enggistein",cantonCode:"BE"},{postalCode:"3078",placeName:"Richigen",cantonCode:"BE"},{postalCode:"3082",placeName:"Schlosswil",cantonCode:"BE"},{postalCode:"3083",placeName:"Trimstein",cantonCode:"BE"},{postalCode:"3084",placeName:"Wabern",cantonCode:"BE"},{postalCode:"3085",placeName:"Wabern Weihnachten",cantonCode:"BE"},{postalCode:"3085",placeName:"Wabern 2 x Weihnachten",cantonCode:"BE"},{postalCode:"3086",placeName:"Englisberg",cantonCode:"BE"},{postalCode:"3086",placeName:"Zimmerwald",cantonCode:"BE"},{postalCode:"3087",placeName:"Niedermuhlern",cantonCode:"BE"},{postalCode:"3088",placeName:"Rüeggisberg",cantonCode:"BE"},{postalCode:"3088",placeName:"Oberbütschel",cantonCode:"BE"},{postalCode:"3089",placeName:"Hinterfultigen",cantonCode:"BE"},{postalCode:"3095",placeName:"Spiegel b. Bern",cantonCode:"BE"},{postalCode:"3096",placeName:"Oberbalm",cantonCode:"BE"},{postalCode:"3097",placeName:"Liebefeld",cantonCode:"BE"},{postalCode:"3098",placeName:"Schliern b. Köniz",cantonCode:"BE"},{postalCode:"3098",placeName:"Köniz",cantonCode:"BE"},{postalCode:"3099",placeName:"Rüti b. Riggisberg",cantonCode:"BE"},{postalCode:"3110",placeName:"Münsingen",cantonCode:"BE"},{postalCode:"3111",placeName:"Tägertschi",cantonCode:"BE"},{postalCode:"3112",placeName:"Allmendingen b. Bern",cantonCode:"BE"},{postalCode:"3113",placeName:"Rubigen",cantonCode:"BE"},{postalCode:"3114",placeName:"Wichtrach",cantonCode:"BE"},{postalCode:"3115",placeName:"Gerzensee",cantonCode:"BE"},{postalCode:"3116",placeName:"Noflen BE",cantonCode:"BE"},{postalCode:"3116",placeName:"Kirchdorf BE",cantonCode:"BE"},{postalCode:"3116",placeName:"Mühledorf BE",cantonCode:"BE"},{postalCode:"3122",placeName:"Kehrsatz",cantonCode:"BE"},{postalCode:"3123",placeName:"Belp",cantonCode:"BE"},{postalCode:"3124",placeName:"Belpberg",cantonCode:"BE"},{postalCode:"3125",placeName:"Toffen",cantonCode:"BE"},{postalCode:"3126",placeName:"Kaufdorf",cantonCode:"BE"},{postalCode:"3126",placeName:"Gelterfingen",cantonCode:"BE"},{postalCode:"3127",placeName:"Lohnstorf",cantonCode:"BE"},{postalCode:"3127",placeName:"Mühlethurnen",cantonCode:"BE"},{postalCode:"3128",placeName:"Kirchenthurnen",cantonCode:"BE"},{postalCode:"3128",placeName:"Rümligen",cantonCode:"BE"},{postalCode:"3132",placeName:"Riggisberg",cantonCode:"BE"},{postalCode:"3144",placeName:"Gasel",cantonCode:"BE"},{postalCode:"3145",placeName:"Niederscherli",cantonCode:"BE"},{postalCode:"3147",placeName:"Mittelhäusern",cantonCode:"BE"},{postalCode:"3148",placeName:"Lanzenhäusern",cantonCode:"BE"},{postalCode:"3150",placeName:"Schwarzenburg",cantonCode:"BE"},{postalCode:"3152",placeName:"Mamishaus",cantonCode:"BE"},{postalCode:"3153",placeName:"Rüschegg Gambach",cantonCode:"BE"},{postalCode:"3154",placeName:"Rüschegg Heubach",cantonCode:"BE"},{postalCode:"3155",placeName:"Helgisried-Rohrbach",cantonCode:"BE"},{postalCode:"3156",placeName:"Riffenmatt",cantonCode:"BE"},{postalCode:"3157",placeName:"Milken",cantonCode:"BE"},{postalCode:"3158",placeName:"Guggisberg",cantonCode:"BE"},{postalCode:"3159",placeName:"Riedstätt",cantonCode:"BE"},{postalCode:"3172",placeName:"Niederwangen b. Bern",cantonCode:"BE"},{postalCode:"3173",placeName:"Oberwangen b. Bern",cantonCode:"BE"},{postalCode:"3174",placeName:"Thörishaus",cantonCode:"BE"},{postalCode:"3176",placeName:"Neuenegg",cantonCode:"BE"},{postalCode:"3177",placeName:"Laupen BE",cantonCode:"BE"},{postalCode:"3179",placeName:"Kriechenwil",cantonCode:"BE"},{postalCode:"3183",placeName:"Albligen",cantonCode:"BE"},{postalCode:"3202",placeName:"Frauenkappelen",cantonCode:"BE"},{postalCode:"3203",placeName:"Mühleberg",cantonCode:"BE"},{postalCode:"3204",placeName:"Rosshäusern",cantonCode:"BE"},{postalCode:"3205",placeName:"Gümmenen",cantonCode:"BE"},{postalCode:"3206",placeName:"Ferenbalm",cantonCode:"BE"},{postalCode:"3206",placeName:"Gammen",cantonCode:"BE"},{postalCode:"3206",placeName:"Biberen",cantonCode:"BE"},{postalCode:"3206",placeName:"Rizenbach",cantonCode:"BE"},{postalCode:"3207",placeName:"Wileroltigen",cantonCode:"BE"},{postalCode:"3207",placeName:"Golaten",cantonCode:"BE"},{postalCode:"3208",placeName:"Gurbrü",cantonCode:"BE"},{postalCode:"3302",placeName:"Moosseedorf",cantonCode:"BE"},{postalCode:"3303",placeName:"Jegenstorf",cantonCode:"BE"},{postalCode:"3303",placeName:"Münchringen",cantonCode:"BE"},{postalCode:"3303",placeName:"Zuzwil BE",cantonCode:"BE"},{postalCode:"3303",placeName:"Ballmoos",cantonCode:"BE"},{postalCode:"3305",placeName:"Iffwil",cantonCode:"BE"},{postalCode:"3305",placeName:"Scheunen",cantonCode:"BE"},{postalCode:"3306",placeName:"Etzelkofen",cantonCode:"BE"},{postalCode:"3308",placeName:"Grafenried",cantonCode:"BE"},{postalCode:"3309",placeName:"Zauggenried",cantonCode:"BE"},{postalCode:"3312",placeName:"Fraubrunnen",cantonCode:"BE"},{postalCode:"3313",placeName:"Büren zum Hof",cantonCode:"BE"},{postalCode:"3314",placeName:"Schalunen",cantonCode:"BE"},{postalCode:"3317",placeName:"Limpach",cantonCode:"BE"},{postalCode:"3317",placeName:"Mülchi",cantonCode:"BE"},{postalCode:"3321",placeName:"Schönbühl Einkaufszentrum",cantonCode:"BE"},{postalCode:"3321",placeName:"Schönbühl EKZ",cantonCode:"BE"},{postalCode:"3322",placeName:"Urtenen-Schönbühl",cantonCode:"BE"},{postalCode:"3322",placeName:"Mattstetten",cantonCode:"BE"},{postalCode:"3323",placeName:"Bäriswil BE",cantonCode:"BE"},{postalCode:"3434",placeName:"Landiswil",cantonCode:"BE"},{postalCode:"3434",placeName:"Obergoldbach",cantonCode:"BE"},{postalCode:"3503",placeName:"Gysenstein",cantonCode:"BE"},{postalCode:"3504",placeName:"Oberhünigen",cantonCode:"BE"},{postalCode:"3504",placeName:"Niederhünigen",cantonCode:"BE"},{postalCode:"3506",placeName:"Grosshöchstetten",cantonCode:"BE"},{postalCode:"3507",placeName:"Biglen",cantonCode:"BE"},{postalCode:"3508",placeName:"Arni BE",cantonCode:"BE"},{postalCode:"3510",placeName:"Häutligen",cantonCode:"BE"},{postalCode:"3510",placeName:"Konolfingen",cantonCode:"BE"},{postalCode:"3510",placeName:"Freimettigen",cantonCode:"BE"},{postalCode:"3512",placeName:"Walkringen",cantonCode:"BE"},{postalCode:"3513",placeName:"Bigenthal",cantonCode:"BE"},{postalCode:"3531",placeName:"Oberthal",cantonCode:"BE"},{postalCode:"3532",placeName:"Zäziwil",cantonCode:"BE"},{postalCode:"3532",placeName:"Mirchel",cantonCode:"BE"},{postalCode:"3533",placeName:"Bowil",cantonCode:"BE"},{postalCode:"3629",placeName:"Kiesen",cantonCode:"BE"},{postalCode:"3629",placeName:"Jaberg",cantonCode:"BE"},{postalCode:"3629",placeName:"Oppligen",cantonCode:"BE"},{postalCode:"3671",placeName:"Herbligen",cantonCode:"BE"},{postalCode:"3671",placeName:"Brenzikofen",cantonCode:"BE"},{postalCode:"3672",placeName:"Oberdiessbach",cantonCode:"BE"},{postalCode:"3672",placeName:"Aeschlen b. Oberdiessbach",cantonCode:"BE"},{postalCode:"3673",placeName:"Linden",cantonCode:"BE"},{postalCode:"3674",placeName:"Bleiken b. Oberdiessbach",cantonCode:"BE"},{postalCode:"3600",placeName:"Thun",cantonCode:"BE"},{postalCode:"3602",placeName:"Thun",cantonCode:"BE"},{postalCode:"3603",placeName:"Thun",cantonCode:"BE"},{postalCode:"3604",placeName:"Thun",cantonCode:"BE"},{postalCode:"3607",placeName:"Thun",cantonCode:"BE"},{postalCode:"3608",placeName:"Thun",cantonCode:"BE"},{postalCode:"3609",placeName:"Thun",cantonCode:"BE"},{postalCode:"3612",placeName:"Steffisburg",cantonCode:"BE"},{postalCode:"3613",placeName:"Steffisburg",cantonCode:"BE"},{postalCode:"3614",placeName:"Unterlangenegg",cantonCode:"BE"},{postalCode:"3615",placeName:"Heimenschwand",cantonCode:"BE"},{postalCode:"3616",placeName:"Schwarzenegg",cantonCode:"BE"},{postalCode:"3617",placeName:"Fahrni b. Thun",cantonCode:"BE"},{postalCode:"3619",placeName:"Eriz",cantonCode:"BE"},{postalCode:"3619",placeName:"Innereriz",cantonCode:"BE"},{postalCode:"3622",placeName:"Homberg b. Thun",cantonCode:"BE"},{postalCode:"3623",placeName:"Horrenbach",cantonCode:"BE"},{postalCode:"3623",placeName:"Teuffenthal b. Thun",cantonCode:"BE"},{postalCode:"3623",placeName:"Buchen BE",cantonCode:"BE"},{postalCode:"3624",placeName:"Schwendibach",cantonCode:"BE"},{postalCode:"3624",placeName:"Goldiwil (Thun)",cantonCode:"BE"},{postalCode:"3625",placeName:"Heiligenschwendi",cantonCode:"BE"},{postalCode:"3626",placeName:"Hünibach",cantonCode:"BE"},{postalCode:"3627",placeName:"Heimberg",cantonCode:"BE"},{postalCode:"3628",placeName:"Uttigen",cantonCode:"BE"},{postalCode:"3631",placeName:"Höfen b. Thun",cantonCode:"BE"},{postalCode:"3632",placeName:"Niederstocken",cantonCode:"BE"},{postalCode:"3632",placeName:"Oberstocken",cantonCode:"BE"},{postalCode:"3633",placeName:"Amsoldingen",cantonCode:"BE"},{postalCode:"3634",placeName:"Thierachern",cantonCode:"BE"},{postalCode:"3635",placeName:"Uebeschi",cantonCode:"BE"},{postalCode:"3636",placeName:"Längenbühl",cantonCode:"BE"},{postalCode:"3636",placeName:"Forst b. Längenbühl",cantonCode:"BE"},{postalCode:"3638",placeName:"Pohlern",cantonCode:"BE"},{postalCode:"3638",placeName:"Blumenstein",cantonCode:"BE"},{postalCode:"3645",placeName:"Zwieselberg",cantonCode:"BE"},{postalCode:"3647",placeName:"Reutigen",cantonCode:"BE"},{postalCode:"3652",placeName:"Hilterfingen",cantonCode:"BE"},{postalCode:"3653",placeName:"Oberhofen am Thunersee",cantonCode:"BE"},{postalCode:"3654",placeName:"Gunten",cantonCode:"BE"},{postalCode:"3655",placeName:"Sigriswil",cantonCode:"BE"},{postalCode:"3656",placeName:"Tschingel ob Gunten",cantonCode:"BE"},{postalCode:"3656",placeName:"Aeschlen ob Gunten",cantonCode:"BE"},{postalCode:"3656",placeName:"Ringoldswil",cantonCode:"BE"},{postalCode:"3657",placeName:"Schwanden (Sigriswil)",cantonCode:"BE"},{postalCode:"3658",placeName:"Merligen",cantonCode:"BE"},{postalCode:"3661",placeName:"Uetendorf",cantonCode:"BE"},{postalCode:"3662",placeName:"Seftigen",cantonCode:"BE"},{postalCode:"3663",placeName:"Gurzelen",cantonCode:"BE"},{postalCode:"3664",placeName:"Burgistein",cantonCode:"BE"},{postalCode:"3665",placeName:"Wattenwil",cantonCode:"BE"},{postalCode:"1657",placeName:"Abländschen",cantonCode:"BE"},{postalCode:"3766",placeName:"Boltigen",cantonCode:"BE"},{postalCode:"3770",placeName:"Zweisimmen",cantonCode:"BE"},{postalCode:"3771",placeName:"Blankenburg",cantonCode:"BE"},{postalCode:"3772",placeName:"St. Stephan",cantonCode:"BE"},{postalCode:"3773",placeName:"Matten (St. Stephan)",cantonCode:"BE"},{postalCode:"3775",placeName:"Lenk im Simmental",cantonCode:"BE"},{postalCode:"3776",placeName:"Oeschseite",cantonCode:"BE"},{postalCode:"3777",placeName:"Saanenmöser",cantonCode:"BE"},{postalCode:"3778",placeName:"Schönried",cantonCode:"BE"},{postalCode:"3780",placeName:"Gstaad",cantonCode:"BE"},{postalCode:"3781",placeName:"Turbach",cantonCode:"BE"},{postalCode:"3782",placeName:"Lauenen b. Gstaad",cantonCode:"BE"},{postalCode:"3783",placeName:"Grund b. Gstaad",cantonCode:"BE"},{postalCode:"3784",placeName:"Feutersoey",cantonCode:"BE"},{postalCode:"3785",placeName:"Gsteig b. Gstaad",cantonCode:"BE"},{postalCode:"3792",placeName:"Saanen",cantonCode:"BE"},{postalCode:"3645",placeName:"Gwatt (Thun)",cantonCode:"BE"},{postalCode:"3646",placeName:"Einigen",cantonCode:"BE"},{postalCode:"3700",placeName:"Spiez",cantonCode:"BE"},{postalCode:"3702",placeName:"Hondrich",cantonCode:"BE"},{postalCode:"3703",placeName:"Aeschiried",cantonCode:"BE"},{postalCode:"3703",placeName:"Aeschi b. Spiez",cantonCode:"BE"},{postalCode:"3704",placeName:"Krattigen",cantonCode:"BE"},{postalCode:"3705",placeName:"Faulensee",cantonCode:"BE"},{postalCode:"3711",placeName:"Mülenen",cantonCode:"BE"},{postalCode:"3711",placeName:"Emdthal",cantonCode:"BE"},{postalCode:"3713",placeName:"Reichenbach im Kandertal",cantonCode:"BE"},{postalCode:"3714",placeName:"Wengi b. Frutigen",cantonCode:"BE"},{postalCode:"3714",placeName:"Frutigen",cantonCode:"BE"},{postalCode:"3715",placeName:"Adelboden",cantonCode:"BE"},{postalCode:"3716",placeName:"Kandergrund",cantonCode:"BE"},{postalCode:"3717",placeName:"Blausee-Mitholz",cantonCode:"BE"},{postalCode:"3718",placeName:"Kandersteg",cantonCode:"BE"},{postalCode:"3722",placeName:"Scharnachtal",cantonCode:"BE"},{postalCode:"3723",placeName:"Kiental",cantonCode:"BE"},{postalCode:"3724",placeName:"Ried (Frutigen)",cantonCode:"BE"},{postalCode:"3725",placeName:"Achseten",cantonCode:"BE"},{postalCode:"3752",placeName:"Wimmis",cantonCode:"BE"},{postalCode:"3753",placeName:"Oey",cantonCode:"BE"},{postalCode:"3754",placeName:"Diemtigen",cantonCode:"BE"},{postalCode:"3755",placeName:"Horboden",cantonCode:"BE"},{postalCode:"3756",placeName:"Zwischenflüh",cantonCode:"BE"},{postalCode:"3757",placeName:"Schwenden im Diemtigtal",cantonCode:"BE"},{postalCode:"3758",placeName:"Latterbach",cantonCode:"BE"},{postalCode:"3762",placeName:"Erlenbach im Simmental",cantonCode:"BE"},{postalCode:"3763",placeName:"Därstetten",cantonCode:"BE"},{postalCode:"3764",placeName:"Weissenburg",cantonCode:"BE"},{postalCode:"3765",placeName:"Oberwil im Simmental",cantonCode:"BE"},{postalCode:"3706",placeName:"Leissigen",cantonCode:"BE"},{postalCode:"3707",placeName:"Därligen",cantonCode:"BE"},{postalCode:"3800",placeName:"Sundlauenen",cantonCode:"BE"},{postalCode:"3800",placeName:"Interlaken",cantonCode:"BE"},{postalCode:"3800",placeName:"Unterseen",cantonCode:"BE"},{postalCode:"3800",placeName:"Interlaken",cantonCode:"BE"},{postalCode:"3800",placeName:"Matten b. Interlaken",cantonCode:"BE"},{postalCode:"3802",placeName:"Interlaken Ost",cantonCode:"BE"},{postalCode:"3803",placeName:"Beatenberg",cantonCode:"BE"},{postalCode:"3804",placeName:"Habkern",cantonCode:"BE"},{postalCode:"3805",placeName:"Goldswil b. Interlaken",cantonCode:"BE"},{postalCode:"3806",placeName:"Bönigen b. Interlaken",cantonCode:"BE"},{postalCode:"3807",placeName:"Iseltwald",cantonCode:"BE"},{postalCode:"3812",placeName:"Wilderswil",cantonCode:"BE"},{postalCode:"3813",placeName:"Saxeten",cantonCode:"BE"},{postalCode:"3814",placeName:"Gsteigwiler",cantonCode:"BE"},{postalCode:"3815",placeName:"Gündlischwand",cantonCode:"BE"},{postalCode:"3815",placeName:"Zweilütschinen",cantonCode:"BE"},{postalCode:"3816",placeName:"Lütschental",cantonCode:"BE"},{postalCode:"3816",placeName:"Burglauenen",cantonCode:"BE"},{postalCode:"3818",placeName:"Grindelwald",cantonCode:"BE"},{postalCode:"3822",placeName:"Isenfluh",cantonCode:"BE"},{postalCode:"3822",placeName:"Lauterbrunnen",cantonCode:"BE"},{postalCode:"3823",placeName:"Wengen",cantonCode:"BE"},{postalCode:"3823",placeName:"Eigergletscher",cantonCode:"BE"},{postalCode:"3823",placeName:"Kleine Scheidegg",cantonCode:"BE"},{postalCode:"3824",placeName:"Stechelberg",cantonCode:"BE"},{postalCode:"3825",placeName:"Mürren",cantonCode:"BE"},{postalCode:"3826",placeName:"Gimmelwald",cantonCode:"BE"},{postalCode:"3852",placeName:"Ringgenberg BE",cantonCode:"BE"},{postalCode:"3853",placeName:"Niederried b. Interlaken",cantonCode:"BE"},{postalCode:"3854",placeName:"Oberried am Brienzersee",cantonCode:"BE"},{postalCode:"3855",placeName:"Brienz BE",cantonCode:"BE"},{postalCode:"3855",placeName:"Axalp",cantonCode:"BE"},{postalCode:"3855",placeName:"Schwanden b. Brienz",cantonCode:"BE"},{postalCode:"3856",placeName:"Brienzwiler",cantonCode:"BE"},{postalCode:"3857",placeName:"Unterbach BE",cantonCode:"BE"},{postalCode:"3858",placeName:"Hofstetten b. Brienz",cantonCode:"BE"},{postalCode:"3860",placeName:"Rosenlaui",cantonCode:"BE"},{postalCode:"3860",placeName:"Brünig",cantonCode:"BE"},{postalCode:"3860",placeName:"Meiringen",cantonCode:"BE"},{postalCode:"3860",placeName:"Schattenhalb",cantonCode:"BE"},{postalCode:"3862",placeName:"Innertkirchen",cantonCode:"BE"},{postalCode:"3863",placeName:"Gadmen",cantonCode:"BE"},{postalCode:"3864",placeName:"Guttannen",cantonCode:"BE"},{postalCode:"6083",placeName:"Hasliberg Hohfluh",cantonCode:"BE"},{postalCode:"6084",placeName:"Hasliberg Wasserwendi",cantonCode:"BE"},{postalCode:"6085",placeName:"Hasliberg Goldern",cantonCode:"BE"},{postalCode:"6086",placeName:"Hasliberg Reuti",cantonCode:"BE"},{postalCode:"4040",placeName:"Basel",cantonCode:"BL"},{postalCode:"4042",placeName:"Basel PF OC",cantonCode:"BL"},{postalCode:"4042",placeName:"Basel PF Operations Center",cantonCode:"BL"},{postalCode:"4101",placeName:"Bruderholz",cantonCode:"BL"},{postalCode:"4102",placeName:"Binningen 1",cantonCode:"BL"},{postalCode:"4102",placeName:"Binningen",cantonCode:"BL"},{postalCode:"4103",placeName:"Bottmingen",cantonCode:"BL"},{postalCode:"4104",placeName:"Oberwil BL",cantonCode:"BL"},{postalCode:"4105",placeName:"Biel-Benken BL",cantonCode:"BL"},{postalCode:"4106",placeName:"Therwil",cantonCode:"BL"},{postalCode:"4107",placeName:"Ettingen",cantonCode:"BL"},{postalCode:"4123",placeName:"Allschwil 1",cantonCode:"BL"},{postalCode:"4123",placeName:"Allschwil",cantonCode:"BL"},{postalCode:"4124",placeName:"Schönenbuch",cantonCode:"BL"},{postalCode:"4127",placeName:"Birsfelden",cantonCode:"BL"},{postalCode:"4132",placeName:"Muttenz 1",cantonCode:"BL"},{postalCode:"4132",placeName:"Muttenz",cantonCode:"BL"},{postalCode:"4142",placeName:"Münchenstein 1",cantonCode:"BL"},{postalCode:"4142",placeName:"Münchenstein",cantonCode:"BL"},{postalCode:"4144",placeName:"Arlesheim",cantonCode:"BL"},{postalCode:"4147",placeName:"Aesch BL",cantonCode:"BL"},{postalCode:"4148",placeName:"Pfeffingen",cantonCode:"BL"},{postalCode:"4153",placeName:"Reinach BL",cantonCode:"BL"},{postalCode:"4153",placeName:"Reinach BL 1",cantonCode:"BL"},{postalCode:"2814",placeName:"Roggenburg",cantonCode:"BL"},{postalCode:"4117",placeName:"Burg im Leimental",cantonCode:"BL"},{postalCode:"4202",placeName:"Duggingen",cantonCode:"BL"},{postalCode:"4203",placeName:"Grellingen",cantonCode:"BL"},{postalCode:"4222",placeName:"Zwingen",cantonCode:"BL"},{postalCode:"4223",placeName:"Blauen",cantonCode:"BL"},{postalCode:"4224",placeName:"Nenzlingen",cantonCode:"BL"},{postalCode:"4225",placeName:"Brislach",cantonCode:"BL"},{postalCode:"4242",placeName:"Laufen",cantonCode:"BL"},{postalCode:"4243",placeName:"Dittingen",cantonCode:"BL"},{postalCode:"4244",placeName:"Röschenz",cantonCode:"BL"},{postalCode:"4246",placeName:"Wahlen b. Laufen",cantonCode:"BL"},{postalCode:"4253",placeName:"Liesberg",cantonCode:"BL"},{postalCode:"4254",placeName:"Liesberg Dorf",cantonCode:"BL"},{postalCode:"4133",placeName:"Pratteln",cantonCode:"BL"},{postalCode:"4133",placeName:"Pratteln 1",cantonCode:"BL"},{postalCode:"4302",placeName:"Augst BL",cantonCode:"BL"},{postalCode:"4304",placeName:"Giebenach",cantonCode:"BL"},{postalCode:"4402",placeName:"Frenkendorf",cantonCode:"BL"},{postalCode:"4410",placeName:"Liestal",cantonCode:"BL"},{postalCode:"4411",placeName:"Seltisberg",cantonCode:"BL"},{postalCode:"4414",placeName:"Füllinsdorf",cantonCode:"BL"},{postalCode:"4415",placeName:"Lausen",cantonCode:"BL"},{postalCode:"4416",placeName:"Bubendorf",cantonCode:"BL"},{postalCode:"4417",placeName:"Ziefen",cantonCode:"BL"},{postalCode:"4419",placeName:"Lupsingen",cantonCode:"BL"},{postalCode:"4422",placeName:"Arisdorf",cantonCode:"BL"},{postalCode:"4423",placeName:"Hersberg",cantonCode:"BL"},{postalCode:"4433",placeName:"Ramlinsburg",cantonCode:"BL"},{postalCode:"4441",placeName:"Thürnen",cantonCode:"BL"},{postalCode:"4442",placeName:"Diepflingen",cantonCode:"BL"},{postalCode:"4443",placeName:"Wittinsburg",cantonCode:"BL"},{postalCode:"4444",placeName:"Rümlingen",cantonCode:"BL"},{postalCode:"4445",placeName:"Häfelfingen",cantonCode:"BL"},{postalCode:"4446",placeName:"Buckten",cantonCode:"BL"},{postalCode:"4447",placeName:"Känerkinden",cantonCode:"BL"},{postalCode:"4448",placeName:"Läufelfingen",cantonCode:"BL"},{postalCode:"4450",placeName:"Sissach",cantonCode:"BL"},{postalCode:"4451",placeName:"Wintersingen",cantonCode:"BL"},{postalCode:"4452",placeName:"Itingen",cantonCode:"BL"},{postalCode:"4453",placeName:"Nusshof",cantonCode:"BL"},{postalCode:"4455",placeName:"Zunzgen",cantonCode:"BL"},{postalCode:"4456",placeName:"Tenniken",cantonCode:"BL"},{postalCode:"4460",placeName:"Gelterkinden",cantonCode:"BL"},{postalCode:"4461",placeName:"Böckten",cantonCode:"BL"},{postalCode:"4462",placeName:"Rickenbach BL",cantonCode:"BL"},{postalCode:"4463",placeName:"Buus",cantonCode:"BL"},{postalCode:"4464",placeName:"Maisprach",cantonCode:"BL"},{postalCode:"4465",placeName:"Hemmiken",cantonCode:"BL"},{postalCode:"4466",placeName:"Ormalingen",cantonCode:"BL"},{postalCode:"4467",placeName:"Rothenfluh",cantonCode:"BL"},{postalCode:"4469",placeName:"Anwil",cantonCode:"BL"},{postalCode:"4492",placeName:"Tecknau",cantonCode:"BL"},{postalCode:"4493",placeName:"Wenslingen",cantonCode:"BL"},{postalCode:"4494",placeName:"Oltingen",cantonCode:"BL"},{postalCode:"4495",placeName:"Zeglingen",cantonCode:"BL"},{postalCode:"4496",placeName:"Kilchberg BL",cantonCode:"BL"},{postalCode:"4497",placeName:"Rünenberg",cantonCode:"BL"},{postalCode:"4207",placeName:"Bretzwil",cantonCode:"BL"},{postalCode:"4418",placeName:"Reigoldswil",cantonCode:"BL"},{postalCode:"4424",placeName:"Arboldswil",cantonCode:"BL"},{postalCode:"4425",placeName:"Titterten",cantonCode:"BL"},{postalCode:"4426",placeName:"Lauwil",cantonCode:"BL"},{postalCode:"4431",placeName:"Bennwil",cantonCode:"BL"},{postalCode:"4432",placeName:"Lampenberg",cantonCode:"BL"},{postalCode:"4434",placeName:"Hölstein",cantonCode:"BL"},{postalCode:"4435",placeName:"Niederdorf",cantonCode:"BL"},{postalCode:"4436",placeName:"Oberdorf BL",cantonCode:"BL"},{postalCode:"4436",placeName:"Liedertswil",cantonCode:"BL"},{postalCode:"4437",placeName:"Waldenburg",cantonCode:"BL"},{postalCode:"4438",placeName:"Langenbruck",cantonCode:"BL"},{postalCode:"4457",placeName:"Diegten",cantonCode:"BL"},{postalCode:"4458",placeName:"Eptingen",cantonCode:"BL"},{postalCode:"4000",placeName:"Basel",cantonCode:"BS"},{postalCode:"4001",placeName:"Basel",cantonCode:"BS"},{postalCode:"4002",placeName:"Basel",cantonCode:"BS"},{postalCode:"4005",placeName:"Basel",cantonCode:"BS"},{postalCode:"4009",placeName:"Basel",cantonCode:"BS"},{postalCode:"4010",placeName:"Basel",cantonCode:"BS"},{postalCode:"4018",placeName:"Basel",cantonCode:"BS"},{postalCode:"4019",placeName:"Basel",cantonCode:"BS"},{postalCode:"4020",placeName:"Basel",cantonCode:"BS"},{postalCode:"4030",placeName:"Basel",cantonCode:"BS"},{postalCode:"4031",placeName:"Basel",cantonCode:"BS"},{postalCode:"4039",placeName:"Basel",cantonCode:"BS"},{postalCode:"4039",placeName:"Basel SSF",cantonCode:"BS"},{postalCode:"4041",placeName:"Basel",cantonCode:"BS"},{postalCode:"4041",placeName:"Basel UBS",cantonCode:"BS"},{postalCode:"4051",placeName:"Basel",cantonCode:"BS"},{postalCode:"4052",placeName:"Basel",cantonCode:"BS"},{postalCode:"4052",placeName:"Basel",cantonCode:"BS"},{postalCode:"4053",placeName:"Basel",cantonCode:"BS"},{postalCode:"4054",placeName:"Basel",cantonCode:"BS"},{postalCode:"4055",placeName:"Basel",cantonCode:"BS"},{postalCode:"4056",placeName:"Basel",cantonCode:"BS"},{postalCode:"4057",placeName:"Basel",cantonCode:"BS"},{postalCode:"4058",placeName:"Basel",cantonCode:"BS"},{postalCode:"4059",placeName:"Basel",cantonCode:"BS"},{postalCode:"4070",placeName:"Basel",cantonCode:"BS"},{postalCode:"4075",placeName:"Basel",cantonCode:"BS"},{postalCode:"4089",placeName:"Basel",cantonCode:"BS"},{postalCode:"4089",placeName:"Basel SPI GLS",cantonCode:"BS"},{postalCode:"4089",placeName:"Basel SPILOG",cantonCode:"BS"},{postalCode:"4089",placeName:"Basel SPI GLS Retour",cantonCode:"BS"},{postalCode:"4091",placeName:"Basel",cantonCode:"BS"},{postalCode:"4125",placeName:"Riehen",cantonCode:"BS"},{postalCode:"4125",placeName:"Riehen 1",cantonCode:"BS"},{postalCode:"4126",placeName:"Bettingen",cantonCode:"BS"},{postalCode:"1410",placeName:"Prévondavaux",cantonCode:"FR"},{postalCode:"1468",placeName:"Cheyres",cantonCode:"FR"},{postalCode:"1470",placeName:"Bollion",cantonCode:"FR"},{postalCode:"1470",placeName:"Seiry",cantonCode:"FR"},{postalCode:"1470",placeName:"Lully FR",cantonCode:"FR"},{postalCode:"1470",placeName:"Estavayer-le-Lac",cantonCode:"FR"},{postalCode:"1473",placeName:"Font",cantonCode:"FR"},{postalCode:"1473",placeName:"Châtillon FR",cantonCode:"FR"},{postalCode:"1474",placeName:"Châbles FR",cantonCode:"FR"},{postalCode:"1475",placeName:"Forel FR",cantonCode:"FR"},{postalCode:"1475",placeName:"Montbrelloz",cantonCode:"FR"},{postalCode:"1475",placeName:"Autavaux",cantonCode:"FR"},{postalCode:"1482",placeName:"Cugy FR",cantonCode:"FR"},{postalCode:"1483",placeName:"Vesin",cantonCode:"FR"},{postalCode:"1483",placeName:"Frasses",cantonCode:"FR"},{postalCode:"1483",placeName:"Montet (Broye)",cantonCode:"FR"},{postalCode:"1484",placeName:"Aumont",cantonCode:"FR"},{postalCode:"1484",placeName:"Granges-de-Vesin",cantonCode:"FR"},{postalCode:"1485",placeName:"Nuvilly",cantonCode:"FR"},{postalCode:"1486",placeName:"Vuissens",cantonCode:"FR"},{postalCode:"1489",placeName:"Murist",cantonCode:"FR"},{postalCode:"1527",placeName:"Villeneuve FR",cantonCode:"FR"},{postalCode:"1528",placeName:"Praratoud",cantonCode:"FR"},{postalCode:"1528",placeName:"Surpierre",cantonCode:"FR"},{postalCode:"1529",placeName:"Cheiry",cantonCode:"FR"},{postalCode:"1532",placeName:"Fétigny",cantonCode:"FR"},{postalCode:"1533",placeName:"Ménières",cantonCode:"FR"},{postalCode:"1534",placeName:"Chapelle (Broye)",cantonCode:"FR"},{postalCode:"1541",placeName:"Morens FR",cantonCode:"FR"},{postalCode:"1541",placeName:"Sévaz",cantonCode:"FR"},{postalCode:"1541",placeName:"Bussy FR",cantonCode:"FR"},{postalCode:"1542",placeName:"Rueyres-les-Prés",cantonCode:"FR"},{postalCode:"1544",placeName:"Gletterens",cantonCode:"FR"},{postalCode:"1563",placeName:"Dompierre FR",cantonCode:"FR"},{postalCode:"1564",placeName:"Domdidier",cantonCode:"FR"},{postalCode:"1565",placeName:"Vallon",cantonCode:"FR"},{postalCode:"1566",placeName:"St-Aubin FR",cantonCode:"FR"},{postalCode:"1566",placeName:"Les Friques",cantonCode:"FR"},{postalCode:"1567",placeName:"Delley",cantonCode:"FR"},{postalCode:"1568",placeName:"Portalban",cantonCode:"FR"},{postalCode:"1773",placeName:"Russy",cantonCode:"FR"},{postalCode:"1773",placeName:"Chandon",cantonCode:"FR"},{postalCode:"1773",placeName:"Léchelles",cantonCode:"FR"},{postalCode:"1774",placeName:"Cousset",cantonCode:"FR"},{postalCode:"1774",placeName:"Montagny-les-Monts",cantonCode:"FR"},{postalCode:"1774",placeName:"Cousset",cantonCode:"FR"},{postalCode:"1775",placeName:"Mannens",cantonCode:"FR"},{postalCode:"1775",placeName:"Grandsivaz",cantonCode:"FR"},{postalCode:"1776",placeName:"Montagny-la-Ville",cantonCode:"FR"},{postalCode:"1553",placeName:"Châtonnaye",cantonCode:"FR"},{postalCode:"1608",placeName:"Chapelle (Glâne)",cantonCode:"FR"},{postalCode:"1670",placeName:"Bionnens",cantonCode:"FR"},{postalCode:"1670",placeName:"Ursy",cantonCode:"FR"},{postalCode:"1670",placeName:"Esmonts",cantonCode:"FR"},{postalCode:"1673",placeName:"Ecublens FR",cantonCode:"FR"},{postalCode:"1673",placeName:"Gillarens",cantonCode:"FR"},{postalCode:"1673",placeName:"Promasens",cantonCode:"FR"},{postalCode:"1673",placeName:"Rue",cantonCode:"FR"},{postalCode:"1673",placeName:"Auboranges",cantonCode:"FR"},{postalCode:"1674",placeName:"Montet (Glâne)",cantonCode:"FR"},{postalCode:"1674",placeName:"Morlens",cantonCode:"FR"},{postalCode:"1674",placeName:"Vuarmarens",cantonCode:"FR"},{postalCode:"1675",placeName:"Blessens",cantonCode:"FR"},{postalCode:"1675",placeName:"Vauderens",cantonCode:"FR"},{postalCode:"1675",placeName:"Mossel",cantonCode:"FR"},{postalCode:"1676",placeName:"Chavannes-les-Forts",cantonCode:"FR"},{postalCode:"1677",placeName:"Prez-vers-Siviriez",cantonCode:"FR"},{postalCode:"1678",placeName:"Siviriez",cantonCode:"FR"},{postalCode:"1679",placeName:"Villaraboud",cantonCode:"FR"},{postalCode:"1680",placeName:"Berlens",cantonCode:"FR"},{postalCode:"1680",placeName:"Romont FR",cantonCode:"FR"},{postalCode:"1681",placeName:"Hennens",cantonCode:"FR"},{postalCode:"1681",placeName:"Billens",cantonCode:"FR"},{postalCode:"1684",placeName:"Mézières FR",cantonCode:"FR"},{postalCode:"1685",placeName:"Villariaz",cantonCode:"FR"},{postalCode:"1686",placeName:"Grangettes-près-Romont",cantonCode:"FR"},{postalCode:"1686",placeName:"La Neirigue",cantonCode:"FR"},{postalCode:"1687",placeName:"Estévenens",cantonCode:"FR"},{postalCode:"1687",placeName:"La Magne",cantonCode:"FR"},{postalCode:"1687",placeName:"Vuisternens-devant-Romont",cantonCode:"FR"},{postalCode:"1688",placeName:"Lieffrens",cantonCode:"FR"},{postalCode:"1688",placeName:"Sommentier",cantonCode:"FR"},{postalCode:"1689",placeName:"Le Châtelard-près-Romont",cantonCode:"FR"},{postalCode:"1690",placeName:"Lussy FR",cantonCode:"FR"},{postalCode:"1690",placeName:"Villaz-St-Pierre",cantonCode:"FR"},{postalCode:"1691",placeName:"Villarimboud",cantonCode:"FR"},{postalCode:"1692",placeName:"Massonnens",cantonCode:"FR"},{postalCode:"1694",placeName:"Orsonnens",cantonCode:"FR"},{postalCode:"1694",placeName:"Villargiroud",cantonCode:"FR"},{postalCode:"1694",placeName:"Villarsiviriaux",cantonCode:"FR"},{postalCode:"1694",placeName:"Chavannes-sous-Orsonnens",cantonCode:"FR"},{postalCode:"1697",placeName:"La Joux FR",cantonCode:"FR"},{postalCode:"1697",placeName:"Les Ecasseys",cantonCode:"FR"},{postalCode:"1748",placeName:"Torny-le-Grand",cantonCode:"FR"},{postalCode:"1749",placeName:"Middes",cantonCode:"FR"},{postalCode:"1625",placeName:"Sâles (Gruyère)",cantonCode:"FR"},{postalCode:"1625",placeName:"Maules",cantonCode:"FR"},{postalCode:"1626",placeName:"Rueyres-Treyfayes",cantonCode:"FR"},{postalCode:"1626",placeName:"Romanens",cantonCode:"FR"},{postalCode:"1626",placeName:"Treyfayes",cantonCode:"FR"},{postalCode:"1627",placeName:"Vaulruz",cantonCode:"FR"},{postalCode:"1628",placeName:"Vuadens",cantonCode:"FR"},{postalCode:"1630",placeName:"Bulle",cantonCode:"FR"},{postalCode:"1631",placeName:"Bulle centre de traitement",cantonCode:"FR"},{postalCode:"1632",placeName:"Riaz",cantonCode:"FR"},{postalCode:"1633",placeName:"Vuippens",cantonCode:"FR"},{postalCode:"1633",placeName:"Marsens",cantonCode:"FR"},{postalCode:"1634",placeName:"La Roche FR",cantonCode:"FR"},{postalCode:"1635",placeName:"La Tour-de-Trême",cantonCode:"FR"},{postalCode:"1636",placeName:"Broc",cantonCode:"FR"},{postalCode:"1637",placeName:"Charmey (Gruyère)",cantonCode:"FR"},{postalCode:"1638",placeName:"Morlon",cantonCode:"FR"},{postalCode:"1642",placeName:"Sorens",cantonCode:"FR"},{postalCode:"1643",placeName:"Gumefens",cantonCode:"FR"},{postalCode:"1644",placeName:"Avry-devant-Pont",cantonCode:"FR"},{postalCode:"1645",placeName:"Le Bry",cantonCode:"FR"},{postalCode:"1646",placeName:"Echarlens",cantonCode:"FR"},{postalCode:"1647",placeName:"Corbières",cantonCode:"FR"},{postalCode:"1648",placeName:"Hauteville",cantonCode:"FR"},{postalCode:"1649",placeName:"Pont-la-Ville",cantonCode:"FR"},{postalCode:"1651",placeName:"Villarvolard",cantonCode:"FR"},{postalCode:"1652",placeName:"Villarbeney",cantonCode:"FR"},{postalCode:"1652",placeName:"Botterens",cantonCode:"FR"},{postalCode:"1653",placeName:"Crésuz",cantonCode:"FR"},{postalCode:"1653",placeName:"Châtel-sur-Montsalvens",cantonCode:"FR"},{postalCode:"1654",placeName:"Cerniat FR",cantonCode:"FR"},{postalCode:"1656",placeName:"Im Fang",cantonCode:"FR"},{postalCode:"1656",placeName:"Jaun",cantonCode:"FR"},{postalCode:"1661",placeName:"Le Pâquier-Montbarry",cantonCode:"FR"},{postalCode:"1663",placeName:"Gruyères",cantonCode:"FR"},{postalCode:"1663",placeName:"Pringy",cantonCode:"FR"},{postalCode:"1663",placeName:"Moléson-sur-Gruyères",cantonCode:"FR"},{postalCode:"1663",placeName:"Epagny",cantonCode:"FR"},{postalCode:"1665",placeName:"Estavannens",cantonCode:"FR"},{postalCode:"1666",placeName:"Villars-sous-Mont",cantonCode:"FR"},{postalCode:"1666",placeName:"Grandvillard",cantonCode:"FR"},{postalCode:"1667",placeName:"Enney",cantonCode:"FR"},{postalCode:"1669",placeName:"Albeuve",cantonCode:"FR"},{postalCode:"1669",placeName:"Les Sciernes-d'Albeuve",cantonCode:"FR"},{postalCode:"1669",placeName:"Lessoc",cantonCode:"FR"},{postalCode:"1669",placeName:"Neirivue",cantonCode:"FR"},{postalCode:"1669",placeName:"Montbovon",cantonCode:"FR"},{postalCode:"1695",placeName:"Rueyres-St-Laurent",cantonCode:"FR"},{postalCode:"1695",placeName:"Villarlod",cantonCode:"FR"},{postalCode:"1695",placeName:"Estavayer-le-Gibloux",cantonCode:"FR"},{postalCode:"1695",placeName:"Villarsel-le-Gibloux",cantonCode:"FR"},{postalCode:"1696",placeName:"Vuisternens-en-Ogoz",cantonCode:"FR"},{postalCode:"1700",placeName:"Fribourg",cantonCode:"FR"},{postalCode:"1701",placeName:"Fribourg",cantonCode:"FR"},{postalCode:"1708",placeName:"Fribourg",cantonCode:"FR"},{postalCode:"1720",placeName:"Chésopelloz",cantonCode:"FR"},{postalCode:"1720",placeName:"Corminboeuf",cantonCode:"FR"},{postalCode:"1722",placeName:"Bourguillon",cantonCode:"FR"},{postalCode:"1723",placeName:"Marly",cantonCode:"FR"},{postalCode:"1723",placeName:"Marly 1",cantonCode:"FR"},{postalCode:"1723",placeName:"Villarsel-sur-Marly",cantonCode:"FR"},{postalCode:"1723",placeName:"Pierrafortscha",cantonCode:"FR"},{postalCode:"1724",placeName:"Ferpicloz",cantonCode:"FR"},{postalCode:"1724",placeName:"Montévraz",cantonCode:"FR"},{postalCode:"1724",placeName:"Bonnefontaine",cantonCode:"FR"},{postalCode:"1724",placeName:"Le Mouret",cantonCode:"FR"},{postalCode:"1724",placeName:"Senèdes",cantonCode:"FR"},{postalCode:"1724",placeName:"Essert FR",cantonCode:"FR"},{postalCode:"1724",placeName:"Oberried FR",cantonCode:"FR"},{postalCode:"1724",placeName:"Zénauva",cantonCode:"FR"},{postalCode:"1725",placeName:"Posieux",cantonCode:"FR"},{postalCode:"1726",placeName:"Grenilles",cantonCode:"FR"},{postalCode:"1726",placeName:"Farvagny",cantonCode:"FR"},{postalCode:"1726",placeName:"Posat",cantonCode:"FR"},{postalCode:"1726",placeName:"Farvagny-le-Grand",cantonCode:"FR"},{postalCode:"1726",placeName:"Farvagny-le-Petit",cantonCode:"FR"},{postalCode:"1727",placeName:"Corpataux",cantonCode:"FR"},{postalCode:"1727",placeName:"Magnedens",cantonCode:"FR"},{postalCode:"1728",placeName:"Rossens FR",cantonCode:"FR"},{postalCode:"1730",placeName:"Ecuvillens",cantonCode:"FR"},{postalCode:"1731",placeName:"Ependes FR",cantonCode:"FR"},{postalCode:"1732",placeName:"Arconciel",cantonCode:"FR"},{postalCode:"1733",placeName:"Treyvaux",cantonCode:"FR"},{postalCode:"1740",placeName:"Neyruz FR",cantonCode:"FR"},{postalCode:"1741",placeName:"Cottens FR",cantonCode:"FR"},{postalCode:"1742",placeName:"Autigny",cantonCode:"FR"},{postalCode:"1744",placeName:"Chénens",cantonCode:"FR"},{postalCode:"1745",placeName:"Lentigny",cantonCode:"FR"},{postalCode:"1746",placeName:"Prez-vers-Noréaz",cantonCode:"FR"},{postalCode:"1747",placeName:"Corserey",cantonCode:"FR"},{postalCode:"1752",placeName:"Villars-sur-Glâne",cantonCode:"FR"},{postalCode:"1752",placeName:"Villars-sur-Glâne 1",cantonCode:"FR"},{postalCode:"1753",placeName:"Matran",cantonCode:"FR"},{postalCode:"1754",placeName:"Rosé",cantonCode:"FR"},{postalCode:"1754",placeName:"Avry-sur-Matran",cantonCode:"FR"},{postalCode:"1754",placeName:"Corjolens",cantonCode:"FR"},{postalCode:"1754",placeName:"Avry-Centre FR",cantonCode:"FR"},{postalCode:"1756",placeName:"Onnens FR",cantonCode:"FR"},{postalCode:"1756",placeName:"Lovens",cantonCode:"FR"},{postalCode:"1757",placeName:"Noréaz",cantonCode:"FR"},{postalCode:"1762",placeName:"Givisiez",cantonCode:"FR"},{postalCode:"1763",placeName:"Granges-Paccot",cantonCode:"FR"},{postalCode:"1772",placeName:"Nierlet-les-Bois",cantonCode:"FR"},{postalCode:"1772",placeName:"Grolley",cantonCode:"FR"},{postalCode:"1772",placeName:"Ponthaux",cantonCode:"FR"},{postalCode:"1782",placeName:"Formangueires",cantonCode:"FR"},{postalCode:"1782",placeName:"Autafond",cantonCode:"FR"},{postalCode:"1782",placeName:"Lossy",cantonCode:"FR"},{postalCode:"1782",placeName:"Belfaux",cantonCode:"FR"},{postalCode:"1782",placeName:"Cormagens",cantonCode:"FR"},{postalCode:"1782",placeName:"La Corbaz",cantonCode:"FR"},{postalCode:"1583",placeName:"Villarepos",cantonCode:"FR"},{postalCode:"1721",placeName:"Cournillens",cantonCode:"FR"},{postalCode:"1721",placeName:"Misery-Courtion",cantonCode:"FR"},{postalCode:"1721",placeName:"Misery",cantonCode:"FR"},{postalCode:"1721",placeName:"Cormérod",cantonCode:"FR"},{postalCode:"1721",placeName:"Courtion",cantonCode:"FR"},{postalCode:"1783",placeName:"Pensier",cantonCode:"FR"},{postalCode:"1783",placeName:"Barberêche",cantonCode:"FR"},{postalCode:"1784",placeName:"Courtepin",cantonCode:"FR"},{postalCode:"1784",placeName:"Wallenried",cantonCode:"FR"},{postalCode:"1785",placeName:"Cressier FR",cantonCode:"FR"},{postalCode:"1786",placeName:"Sugiez",cantonCode:"FR"},{postalCode:"1787",placeName:"Môtier (Vully)",cantonCode:"FR"},{postalCode:"1787",placeName:"Mur (Vully) FR",cantonCode:"FR"},{postalCode:"1788",placeName:"Praz (Vully)",cantonCode:"FR"},{postalCode:"1789",placeName:"Lugnorre",cantonCode:"FR"},{postalCode:"1791",placeName:"Courtaman",cantonCode:"FR"},{postalCode:"1792",placeName:"Cordast",cantonCode:"FR"},{postalCode:"1792",placeName:"Guschelmuth",cantonCode:"FR"},{postalCode:"1793",placeName:"Jeuss",cantonCode:"FR"},{postalCode:"1794",placeName:"Salvenach",cantonCode:"FR"},{postalCode:"1795",placeName:"Courlevon",cantonCode:"FR"},{postalCode:"1796",placeName:"Courgevaux",cantonCode:"FR"},{postalCode:"3206",placeName:"Wallenbuch",cantonCode:"FR"},{postalCode:"3210",placeName:"Kerzers",cantonCode:"FR"},{postalCode:"3212",placeName:"Gurmels",cantonCode:"FR"},{postalCode:"3212",placeName:"Kleingurmels",cantonCode:"FR"},{postalCode:"3213",placeName:"Kleinbösingen",cantonCode:"FR"},{postalCode:"3213",placeName:"Liebistorf",cantonCode:"FR"},{postalCode:"3214",placeName:"Ulmiz",cantonCode:"FR"},{postalCode:"3215",placeName:"Gempenach",cantonCode:"FR"},{postalCode:"3215",placeName:"Lurtigen",cantonCode:"FR"},{postalCode:"3215",placeName:"Büchslen",cantonCode:"FR"},{postalCode:"3216",placeName:"Agriswil",cantonCode:"FR"},{postalCode:"3216",placeName:"Ried b. Kerzers",cantonCode:"FR"},{postalCode:"3280",placeName:"Greng",cantonCode:"FR"},{postalCode:"3280",placeName:"Murten",cantonCode:"FR"},{postalCode:"3280",placeName:"Meyriez",cantonCode:"FR"},{postalCode:"3284",placeName:"Fräschels",cantonCode:"FR"},{postalCode:"3285",placeName:"Galmiz",cantonCode:"FR"},{postalCode:"3286",placeName:"Muntelier",cantonCode:"FR"},{postalCode:"1712",placeName:"Tafers",cantonCode:"FR"},{postalCode:"1713",placeName:"St. Antoni",cantonCode:"FR"},{postalCode:"1714",placeName:"Heitenried",cantonCode:"FR"},{postalCode:"1715",placeName:"Alterswil FR",cantonCode:"FR"},{postalCode:"1716",placeName:"Plaffeien",cantonCode:"FR"},{postalCode:"1716",placeName:"Oberschrot",cantonCode:"FR"},{postalCode:"1716",placeName:"Schwarzsee",cantonCode:"FR"},{postalCode:"1717",placeName:"St. Ursen",cantonCode:"FR"},{postalCode:"1718",placeName:"Rechthalten",cantonCode:"FR"},{postalCode:"1719",placeName:"Brünisried",cantonCode:"FR"},{postalCode:"1719",placeName:"Zumholz",cantonCode:"FR"},{postalCode:"1734",placeName:"Tentlingen",cantonCode:"FR"},{postalCode:"1735",placeName:"Giffers",cantonCode:"FR"},{postalCode:"1736",placeName:"St. Silvester",cantonCode:"FR"},{postalCode:"1737",placeName:"Plasselb",cantonCode:"FR"},{postalCode:"3175",placeName:"Flamatt",cantonCode:"FR"},{postalCode:"3178",placeName:"Bösingen",cantonCode:"FR"},{postalCode:"3182",placeName:"Ueberstorf",cantonCode:"FR"},{postalCode:"3184",placeName:"Wünnewil",cantonCode:"FR"},{postalCode:"3185",placeName:"Schmitten FR",cantonCode:"FR"},{postalCode:"3186",placeName:"Düdingen",cantonCode:"FR"},{postalCode:"1609",placeName:"St-Martin FR",cantonCode:"FR"},{postalCode:"1609",placeName:"Besencens",cantonCode:"FR"},{postalCode:"1609",placeName:"Fiaugères",cantonCode:"FR"},{postalCode:"1609",placeName:"Fiaugères",cantonCode:"FR"},{postalCode:"1611",placeName:"Le Crêt-près-Semsales",cantonCode:"FR"},{postalCode:"1614",placeName:"Granges (Veveyse)",cantonCode:"FR"},{postalCode:"1615",placeName:"Bossonnens",cantonCode:"FR"},{postalCode:"1616",placeName:"Attalens",cantonCode:"FR"},{postalCode:"1617",placeName:"Tatroz",cantonCode:"FR"},{postalCode:"1617",placeName:"Remaufens",cantonCode:"FR"},{postalCode:"1618",placeName:"Châtel-St-Denis",cantonCode:"FR"},{postalCode:"1619",placeName:"Les Paccots",cantonCode:"FR"},{postalCode:"1623",placeName:"Semsales",cantonCode:"FR"},{postalCode:"1624",placeName:"La Verrerie",cantonCode:"FR"},{postalCode:"1624",placeName:"Progens",cantonCode:"FR"},{postalCode:"1624",placeName:"Progens",cantonCode:"FR"},{postalCode:"1624",placeName:"Grattavache",cantonCode:"FR"},{postalCode:"1699",placeName:"Porsel",cantonCode:"FR"},{postalCode:"1699",placeName:"Pont (Veveyse)",cantonCode:"FR"},{postalCode:"1699",placeName:"Bouloz",cantonCode:"FR"},{postalCode:"1699",placeName:"Porsel",cantonCode:"FR"},{postalCode:"1200",placeName:"Genève",cantonCode:"GE"},{postalCode:"1201",placeName:"Genève",cantonCode:"GE"},{postalCode:"1202",placeName:"Genève",cantonCode:"GE"},{postalCode:"1203",placeName:"Genève",cantonCode:"GE"},{postalCode:"1204",placeName:"Genève",cantonCode:"GE"},{postalCode:"1205",placeName:"Genève",cantonCode:"GE"},{postalCode:"1206",placeName:"Genève",cantonCode:"GE"},{postalCode:"1207",placeName:"Genève",cantonCode:"GE"},{postalCode:"1208",placeName:"Genève",cantonCode:"GE"},{postalCode:"1209",placeName:"Genève",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 70",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 84 Votations",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 14",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 20",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 5",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 22",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 28",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 27",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 1",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 11",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 26",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 23",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 71 CS CP",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 80",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 73",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 84 Votation",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 4",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 6",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 2",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 19",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 12",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 13",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 10",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 3",cantonCode:"GE"},{postalCode:"1211",placeName:"Genève 8",cantonCode:"GE"},{postalCode:"1212",placeName:"Grand-Lancy",cantonCode:"GE"},{postalCode:"1212",placeName:"Grand-Lancy 1",cantonCode:"GE"},{postalCode:"1213",placeName:"Onex",cantonCode:"GE"},{postalCode:"1213",placeName:"Petit-Lancy 1",cantonCode:"GE"},{postalCode:"1213",placeName:"Petit-Lancy",cantonCode:"GE"},{postalCode:"1214",placeName:"Vernier",cantonCode:"GE"},{postalCode:"1215",placeName:"Genève 15 Aéroport",cantonCode:"GE"},{postalCode:"1215",placeName:"Genève",cantonCode:"GE"},{postalCode:"1216",placeName:"Cointrin",cantonCode:"GE"},{postalCode:"1217",placeName:"Meyrin",cantonCode:"GE"},{postalCode:"1217",placeName:"Meyrin 1",cantonCode:"GE"},{postalCode:"1218",placeName:"Le Grand-Saconnex",cantonCode:"GE"},{postalCode:"1219",placeName:"Aïre",cantonCode:"GE"},{postalCode:"1219",placeName:"Le Lignon",cantonCode:"GE"},{postalCode:"1219",placeName:"Châtelaine",cantonCode:"GE"},{postalCode:"1220",placeName:"Les Avanchets",cantonCode:"GE"},{postalCode:"1222",placeName:"Vésenaz",cantonCode:"GE"},{postalCode:"1223",placeName:"Cologny",cantonCode:"GE"},{postalCode:"1224",placeName:"Chêne-Bougeries",cantonCode:"GE"},{postalCode:"1225",placeName:"Chêne-Bourg",cantonCode:"GE"},{postalCode:"1226",placeName:"Thônex",cantonCode:"GE"},{postalCode:"1227",placeName:"Les Acacias",cantonCode:"GE"},{postalCode:"1227",placeName:"Carouge GE",cantonCode:"GE"},{postalCode:"1228",placeName:"Plan-les-Ouates",cantonCode:"GE"},{postalCode:"1231",placeName:"Conches",cantonCode:"GE"},{postalCode:"1232",placeName:"Confignon",cantonCode:"GE"},{postalCode:"1233",placeName:"Bernex",cantonCode:"GE"},{postalCode:"1234",placeName:"Vessy",cantonCode:"GE"},{postalCode:"1236",placeName:"Cartigny",cantonCode:"GE"},{postalCode:"1237",placeName:"Avully",cantonCode:"GE"},{postalCode:"1239",placeName:"Collex",cantonCode:"GE"},{postalCode:"1240",placeName:"Genève",cantonCode:"GE"},{postalCode:"1241",placeName:"Puplinge",cantonCode:"GE"},{postalCode:"1242",placeName:"Satigny",cantonCode:"GE"},{postalCode:"1243",placeName:"Presinge",cantonCode:"GE"},{postalCode:"1244",placeName:"Choulex",cantonCode:"GE"},{postalCode:"1245",placeName:"Collonge-Bellerive",cantonCode:"GE"},{postalCode:"1246",placeName:"Corsier GE",cantonCode:"GE"},{postalCode:"1247",placeName:"Anières",cantonCode:"GE"},{postalCode:"1248",placeName:"Hermance",cantonCode:"GE"},{postalCode:"1251",placeName:"Gy",cantonCode:"GE"},{postalCode:"1252",placeName:"Meinier",cantonCode:"GE"},{postalCode:"1253",placeName:"Vandoeuvres",cantonCode:"GE"},{postalCode:"1254",placeName:"Jussy",cantonCode:"GE"},{postalCode:"1255",placeName:"Veyrier",cantonCode:"GE"},{postalCode:"1256",placeName:"Troinex",cantonCode:"GE"},{postalCode:"1257",placeName:"La Croix-de-Rozon",cantonCode:"GE"},{postalCode:"1258",placeName:"Perly",cantonCode:"GE"},{postalCode:"1281",placeName:"Russin",cantonCode:"GE"},{postalCode:"1283",placeName:"Dardagny",cantonCode:"GE"},{postalCode:"1283",placeName:"La Plaine",cantonCode:"GE"},{postalCode:"1284",placeName:"Chancy",cantonCode:"GE"},{postalCode:"1285",placeName:"Athenaz (Avusy)",cantonCode:"GE"},{postalCode:"1286",placeName:"Soral",cantonCode:"GE"},{postalCode:"1287",placeName:"Laconnex",cantonCode:"GE"},{postalCode:"1288",placeName:"Aire-la-Ville",cantonCode:"GE"},{postalCode:"1290",placeName:"Versoix",cantonCode:"GE"},{postalCode:"1292",placeName:"Chambésy",cantonCode:"GE"},{postalCode:"1293",placeName:"Bellevue",cantonCode:"GE"},{postalCode:"1294",placeName:"Genthod",cantonCode:"GE"},{postalCode:"1298",placeName:"Céligny",cantonCode:"GE"},{postalCode:"8750",placeName:"Klöntal",cantonCode:"GL"},{postalCode:"8750",placeName:"Glarus",cantonCode:"GL"},{postalCode:"8750",placeName:"Riedern",cantonCode:"GL"},{postalCode:"8752",placeName:"Näfels",cantonCode:"GL"},{postalCode:"8753",placeName:"Mollis",cantonCode:"GL"},{postalCode:"8754",placeName:"Netstal",cantonCode:"GL"},{postalCode:"8755",placeName:"Ennenda",cantonCode:"GL"},{postalCode:"8756",placeName:"Mitlödi",cantonCode:"GL"},{postalCode:"8757",placeName:"Filzbach",cantonCode:"GL"},{postalCode:"8758",placeName:"Obstalden",cantonCode:"GL"},{postalCode:"8759",placeName:"Netstal",cantonCode:"GL"},{postalCode:"8762",placeName:"Sool",cantonCode:"GL"},{postalCode:"8762",placeName:"Schwanden GL",cantonCode:"GL"},{postalCode:"8762",placeName:"Schwändi b. Schwanden",cantonCode:"GL"},{postalCode:"8765",placeName:"Engi",cantonCode:"GL"},{postalCode:"8766",placeName:"Matt",cantonCode:"GL"},{postalCode:"8767",placeName:"Elm",cantonCode:"GL"},{postalCode:"8772",placeName:"Nidfurn",cantonCode:"GL"},{postalCode:"8773",placeName:"Haslen GL",cantonCode:"GL"},{postalCode:"8774",placeName:"Leuggelbach",cantonCode:"GL"},{postalCode:"8775",placeName:"Luchsingen",cantonCode:"GL"},{postalCode:"8775",placeName:"Luchsingen-Hätzingen",cantonCode:"GL"},{postalCode:"8775",placeName:"Hätzingen",cantonCode:"GL"},{postalCode:"8777",placeName:"Betschwanden",cantonCode:"GL"},{postalCode:"8777",placeName:"Diesbach GL",cantonCode:"GL"},{postalCode:"8782",placeName:"Rüti GL",cantonCode:"GL"},{postalCode:"8783",placeName:"Linthal",cantonCode:"GL"},{postalCode:"8784",placeName:"Braunwald",cantonCode:"GL"},{postalCode:"8865",placeName:"Bilten",cantonCode:"GL"},{postalCode:"8867",placeName:"Niederurnen",cantonCode:"GL"},{postalCode:"8868",placeName:"Oberurnen",cantonCode:"GL"},{postalCode:"8874",placeName:"Mühlehorn",cantonCode:"GL"},{postalCode:"7077",placeName:"Valbella",cantonCode:"GR"},{postalCode:"7078",placeName:"Lenzerheide/Lai",cantonCode:"GR"},{postalCode:"7082",placeName:"Vaz/Obervaz",cantonCode:"GR"},{postalCode:"7083",placeName:"Lantsch/Lenz",cantonCode:"GR"},{postalCode:"7084",placeName:"Brienz/Brinzauls GR",cantonCode:"GR"},{postalCode:"7450",placeName:"Tiefencastel",cantonCode:"GR"},{postalCode:"7450",placeName:"Tiefencastel",cantonCode:"GR"},{postalCode:"7451",placeName:"Alvaschein",cantonCode:"GR"},{postalCode:"7452",placeName:"Cunter",cantonCode:"GR"},{postalCode:"7453",placeName:"Tinizong",cantonCode:"GR"},{postalCode:"7454",placeName:"Rona",cantonCode:"GR"},{postalCode:"7455",placeName:"Mulegns",cantonCode:"GR"},{postalCode:"7456",placeName:"Marmorera",cantonCode:"GR"},{postalCode:"7456",placeName:"Sur",cantonCode:"GR"},{postalCode:"7457",placeName:"Bivio",cantonCode:"GR"},{postalCode:"7458",placeName:"Mon",cantonCode:"GR"},{postalCode:"7459",placeName:"Stierva",cantonCode:"GR"},{postalCode:"7460",placeName:"Savognin",cantonCode:"GR"},{postalCode:"7462",placeName:"Salouf",cantonCode:"GR"},{postalCode:"7463",placeName:"Riom",cantonCode:"GR"},{postalCode:"7463",placeName:"Riom",cantonCode:"GR"},{postalCode:"7464",placeName:"Parsonz",cantonCode:"GR"},{postalCode:"7472",placeName:"Surava",cantonCode:"GR"},{postalCode:"7473",placeName:"Alvaneu Bad",cantonCode:"GR"},{postalCode:"7477",placeName:"Filisur",cantonCode:"GR"},{postalCode:"7482",placeName:"Stugl/Stuls",cantonCode:"GR"},{postalCode:"7482",placeName:"Bergün/Bravuogn",cantonCode:"GR"},{postalCode:"7482",placeName:"Preda",cantonCode:"GR"},{postalCode:"7484",placeName:"Latsch",cantonCode:"GR"},{postalCode:"7492",placeName:"Alvaneu Dorf",cantonCode:"GR"},{postalCode:"7493",placeName:"Schmitten (Albula)",cantonCode:"GR"},{postalCode:"7710",placeName:"Alp Grüm",cantonCode:"GR"},{postalCode:"7710",placeName:"Ospizio Bernina",cantonCode:"GR"},{postalCode:"7741",placeName:"S. Carlo (Poschiavo)",cantonCode:"GR"},{postalCode:"7742",placeName:"Sfazù",cantonCode:"GR"},{postalCode:"7742",placeName:"Poschiavo",cantonCode:"GR"},{postalCode:"7742",placeName:"La Rösa",cantonCode:"GR"},{postalCode:"7743",placeName:"Brusio",cantonCode:"GR"},{postalCode:"7743",placeName:"Miralago",cantonCode:"GR"},{postalCode:"7744",placeName:"Campocologno",cantonCode:"GR"},{postalCode:"7745",placeName:"Li Curt",cantonCode:"GR"},{postalCode:"7746",placeName:"Le Prese",cantonCode:"GR"},{postalCode:"7747",placeName:"Viano",cantonCode:"GR"},{postalCode:"7748",placeName:"Campascio",cantonCode:"GR"},{postalCode:"7527",placeName:"Brail",cantonCode:"GR"},{postalCode:"7530",placeName:"Zernez",cantonCode:"GR"},{postalCode:"7532",placeName:"Tschierv",cantonCode:"GR"},{postalCode:"7533",placeName:"Fuldera",cantonCode:"GR"},{postalCode:"7534",placeName:"Lü",cantonCode:"GR"},{postalCode:"7535",placeName:"Valchava",cantonCode:"GR"},{postalCode:"7536",placeName:"Sta. Maria Val Müstair",cantonCode:"GR"},{postalCode:"7537",placeName:"Müstair",cantonCode:"GR"},{postalCode:"7542",placeName:"Susch",cantonCode:"GR"},{postalCode:"7543",placeName:"Lavin",cantonCode:"GR"},{postalCode:"7545",placeName:"Guarda",cantonCode:"GR"},{postalCode:"7546",placeName:"Ardez",cantonCode:"GR"},{postalCode:"7550",placeName:"Scuol",cantonCode:"GR"},{postalCode:"7551",placeName:"Ftan",cantonCode:"GR"},{postalCode:"7552",placeName:"Vulpera",cantonCode:"GR"},{postalCode:"7553",placeName:"Tarasp",cantonCode:"GR"},{postalCode:"7554",placeName:"Sent",cantonCode:"GR"},{postalCode:"7554",placeName:"Crusch",cantonCode:"GR"},{postalCode:"7556",placeName:"Ramosch",cantonCode:"GR"},{postalCode:"7556",placeName:"Ramosch",cantonCode:"GR"},{postalCode:"7557",placeName:"Vnà",cantonCode:"GR"},{postalCode:"7558",placeName:"Strada",cantonCode:"GR"},{postalCode:"7559",placeName:"Tschlin",cantonCode:"GR"},{postalCode:"7560",placeName:"Martina",cantonCode:"GR"},{postalCode:"7562",placeName:"Samnaun-Compatsch",cantonCode:"GR"},{postalCode:"7563",placeName:"Samnaun Dorf",cantonCode:"GR"},{postalCode:"7012",placeName:"Felsberg",cantonCode:"GR"},{postalCode:"7013",placeName:"Domat/Ems",cantonCode:"GR"},{postalCode:"7014",placeName:"Trin",cantonCode:"GR"},{postalCode:"7015",placeName:"Tamins",cantonCode:"GR"},{postalCode:"7016",placeName:"Trin Mulin",cantonCode:"GR"},{postalCode:"7017",placeName:"Flims Dorf",cantonCode:"GR"},{postalCode:"7018",placeName:"Flims Waldhaus",cantonCode:"GR"},{postalCode:"7019",placeName:"Fidaz",cantonCode:"GR"},{postalCode:"7402",placeName:"Bonaduz",cantonCode:"GR"},{postalCode:"7403",placeName:"Rhäzüns",cantonCode:"GR"},{postalCode:"7202",placeName:"Says",cantonCode:"GR"},{postalCode:"7203",placeName:"Trimmis",cantonCode:"GR"},{postalCode:"7204",placeName:"Untervaz",cantonCode:"GR"},{postalCode:"7205",placeName:"Zizers",cantonCode:"GR"},{postalCode:"7206",placeName:"Igis",cantonCode:"GR"},{postalCode:"7208",placeName:"Malans GR",cantonCode:"GR"},{postalCode:"7302",placeName:"Landquart",cantonCode:"GR"},{postalCode:"7303",placeName:"Mastrils",cantonCode:"GR"},{postalCode:"7304",placeName:"Maienfeld",cantonCode:"GR"},{postalCode:"7306",placeName:"Fläsch",cantonCode:"GR"},{postalCode:"7307",placeName:"Jenins",cantonCode:"GR"},{postalCode:"7500",placeName:"St. Moritz",cantonCode:"GR"},{postalCode:"7500",placeName:"St. Moritz 3",cantonCode:"GR"},{postalCode:"7500",placeName:"St. Moritz 1",cantonCode:"GR"},{postalCode:"7502",placeName:"Bever",cantonCode:"GR"},{postalCode:"7502",placeName:"Bever",cantonCode:"GR"},{postalCode:"7503",placeName:"Samedan",cantonCode:"GR"},{postalCode:"7504",placeName:"Pontresina",cantonCode:"GR"},{postalCode:"7505",placeName:"Celerina/Schlarigna",cantonCode:"GR"},{postalCode:"7512",placeName:"Champfèr",cantonCode:"GR"},{postalCode:"7513",placeName:"Silvaplana-Surlej",cantonCode:"GR"},{postalCode:"7513",placeName:"Silvaplana",cantonCode:"GR"},{postalCode:"7514",placeName:"Sils/Segl Maria",cantonCode:"GR"},{postalCode:"7514",placeName:"Fex",cantonCode:"GR"},{postalCode:"7515",placeName:"Sils/Segl Baselgia",cantonCode:"GR"},{postalCode:"7516",placeName:"Maloja",cantonCode:"GR"},{postalCode:"7517",placeName:"Plaun da Lej",cantonCode:"GR"},{postalCode:"7522",placeName:"La Punt Chamues-ch",cantonCode:"GR"},{postalCode:"7522",placeName:"La Punt-Chamues-ch",cantonCode:"GR"},{postalCode:"7523",placeName:"Madulain",cantonCode:"GR"},{postalCode:"7523",placeName:"Madulain",cantonCode:"GR"},{postalCode:"7524",placeName:"Zuoz",cantonCode:"GR"},{postalCode:"7524",placeName:"Zuoz",cantonCode:"GR"},{postalCode:"7525",placeName:"S-chanf",cantonCode:"GR"},{postalCode:"7526",placeName:"Cinuos-chel",cantonCode:"GR"},{postalCode:"7526",placeName:"Chapella",cantonCode:"GR"},{postalCode:"7602",placeName:"Casaccia",cantonCode:"GR"},{postalCode:"7603",placeName:"Vicosoprano",cantonCode:"GR"},{postalCode:"7604",placeName:"Borgonovo",cantonCode:"GR"},{postalCode:"7605",placeName:"Stampa",cantonCode:"GR"},{postalCode:"7606",placeName:"Promontogno",cantonCode:"GR"},{postalCode:"7606",placeName:"Bondo",cantonCode:"GR"},{postalCode:"7608",placeName:"Castasegna",cantonCode:"GR"},{postalCode:"7610",placeName:"Soglio",cantonCode:"GR"},{postalCode:"6534",placeName:"S. Vittore",cantonCode:"GR"},{postalCode:"6534",placeName:"S. Vittore",cantonCode:"GR"},{postalCode:"6535",placeName:"Roveredo GR",cantonCode:"GR"},{postalCode:"6537",placeName:"Grono",cantonCode:"GR"},{postalCode:"6538",placeName:"Verdabbio",cantonCode:"GR"},{postalCode:"6538",placeName:"Verdabbio",cantonCode:"GR"},{postalCode:"6540",placeName:"Castaneda",cantonCode:"GR"},{postalCode:"6541",placeName:"Sta. Maria in Calanca",cantonCode:"GR"},{postalCode:"6542",placeName:"Buseno",cantonCode:"GR"},{postalCode:"6543",placeName:"Arvigo",cantonCode:"GR"},{postalCode:"6544",placeName:"Braggio",cantonCode:"GR"},{postalCode:"6545",placeName:"Selma",cantonCode:"GR"},{postalCode:"6546",placeName:"Cauco",cantonCode:"GR"},{postalCode:"6548",placeName:"Rossa",cantonCode:"GR"},{postalCode:"6549",placeName:"Laura",cantonCode:"GR"},{postalCode:"6556",placeName:"Leggia",cantonCode:"GR"},{postalCode:"6557",placeName:"Cama",cantonCode:"GR"},{postalCode:"6558",placeName:"Lostallo",cantonCode:"GR"},{postalCode:"6562",placeName:"Soazza",cantonCode:"GR"},{postalCode:"6563",placeName:"Mesocco",cantonCode:"GR"},{postalCode:"6565",placeName:"S. Bernardino",cantonCode:"GR"},{postalCode:"7000",placeName:"Chur",cantonCode:"GR"},{postalCode:"7001",placeName:"Chur",cantonCode:"GR"},{postalCode:"7004",placeName:"Chur",cantonCode:"GR"},{postalCode:"7006",placeName:"Chur",cantonCode:"GR"},{postalCode:"7007",placeName:"Chur",cantonCode:"GR"},{postalCode:"7023",placeName:"Haldenstein",cantonCode:"GR"},{postalCode:"7026",placeName:"Maladers",cantonCode:"GR"},{postalCode:"7027",placeName:"Lüen",cantonCode:"GR"},{postalCode:"7027",placeName:"Castiel",cantonCode:"GR"},{postalCode:"7027",placeName:"Calfreisen",cantonCode:"GR"},{postalCode:"7028",placeName:"St. Peter",cantonCode:"GR"},{postalCode:"7028",placeName:"Pagig",cantonCode:"GR"},{postalCode:"7029",placeName:"Peist",cantonCode:"GR"},{postalCode:"7050",placeName:"Arosa",cantonCode:"GR"},{postalCode:"7056",placeName:"Molinis",cantonCode:"GR"},{postalCode:"7057",placeName:"Langwies",cantonCode:"GR"},{postalCode:"7058",placeName:"Litzirüti",cantonCode:"GR"},{postalCode:"7062",placeName:"Passugg",cantonCode:"GR"},{postalCode:"7063",placeName:"Praden",cantonCode:"GR"},{postalCode:"7064",placeName:"Tschiertschen",cantonCode:"GR"},{postalCode:"7074",placeName:"Malix",cantonCode:"GR"},{postalCode:"7075",placeName:"Churwalden",cantonCode:"GR"},{postalCode:"7076",placeName:"Parpan",cantonCode:"GR"},{postalCode:"7212",placeName:"Seewis Dorf",cantonCode:"GR"},{postalCode:"7212",placeName:"Seewis-Pardisla",cantonCode:"GR"},{postalCode:"7212",placeName:"Seewis-Schmitten",cantonCode:"GR"},{postalCode:"7213",placeName:"Valzeina",cantonCode:"GR"},{postalCode:"7214",placeName:"Grüsch",cantonCode:"GR"},{postalCode:"7215",placeName:"Fanas",cantonCode:"GR"},{postalCode:"7220",placeName:"Schiers",cantonCode:"GR"},{postalCode:"7220",placeName:"Schiers",cantonCode:"GR"},{postalCode:"7222",placeName:"Lunden",cantonCode:"GR"},{postalCode:"7223",placeName:"Buchen im Prättigau",cantonCode:"GR"},{postalCode:"7224",placeName:"Putz",cantonCode:"GR"},{postalCode:"7226",placeName:"Fajauna",cantonCode:"GR"},{postalCode:"7226",placeName:"Stels",cantonCode:"GR"},{postalCode:"7226",placeName:"Stels",cantonCode:"GR"},{postalCode:"7228",placeName:"Pusserein",cantonCode:"GR"},{postalCode:"7228",placeName:"Schuders",cantonCode:"GR"},{postalCode:"7231",placeName:"Pragg-Jenaz",cantonCode:"GR"},{postalCode:"7232",placeName:"Furna",cantonCode:"GR"},{postalCode:"7233",placeName:"Jenaz",cantonCode:"GR"},{postalCode:"7235",placeName:"Fideris",cantonCode:"GR"},{postalCode:"7240",placeName:"Küblis",cantonCode:"GR"},{postalCode:"7241",placeName:"Conters im Prättigau",cantonCode:"GR"},{postalCode:"7242",placeName:"Luzein",cantonCode:"GR"},{postalCode:"7243",placeName:"Pany",cantonCode:"GR"},{postalCode:"7244",placeName:"Gadenstätt",cantonCode:"GR"},{postalCode:"7245",placeName:"Ascharina",cantonCode:"GR"},{postalCode:"7246",placeName:"St. Antönien",cantonCode:"GR"},{postalCode:"7247",placeName:"Saas im Prättigau",cantonCode:"GR"},{postalCode:"7249",placeName:"Serneus",cantonCode:"GR"},{postalCode:"7250",placeName:"Klosters",cantonCode:"GR"},{postalCode:"7252",placeName:"Klosters Dorf",cantonCode:"GR"},{postalCode:"7260",placeName:"Davos Dorf",cantonCode:"GR"},{postalCode:"7265",placeName:"Davos Wolfgang",cantonCode:"GR"},{postalCode:"7270",placeName:"Davos Platz",cantonCode:"GR"},{postalCode:"7270",placeName:"Davos Platz 1",cantonCode:"GR"},{postalCode:"7272",placeName:"Davos Clavadel",cantonCode:"GR"},{postalCode:"7276",placeName:"Davos Frauenkirch",cantonCode:"GR"},{postalCode:"7277",placeName:"Davos Glaris",cantonCode:"GR"},{postalCode:"7278",placeName:"Davos Monstein",cantonCode:"GR"},{postalCode:"7494",placeName:"Davos Wiesen",cantonCode:"GR"},{postalCode:"7031",placeName:"Laax GR",cantonCode:"GR"},{postalCode:"7032",placeName:"Laax GR 2",cantonCode:"GR"},{postalCode:"7104",placeName:"Arezen",cantonCode:"GR"},{postalCode:"7104",placeName:"Versam",cantonCode:"GR"},{postalCode:"7104",placeName:"Versam",cantonCode:"GR"},{postalCode:"7106",placeName:"Tenna",cantonCode:"GR"},{postalCode:"7107",placeName:"Safien Platz",cantonCode:"GR"},{postalCode:"7109",placeName:"Thalkirch",cantonCode:"GR"},{postalCode:"7110",placeName:"Peiden",cantonCode:"GR"},{postalCode:"7111",placeName:"Pitasch",cantonCode:"GR"},{postalCode:"7112",placeName:"Duvin",cantonCode:"GR"},{postalCode:"7113",placeName:"Camuns",cantonCode:"GR"},{postalCode:"7114",placeName:"Uors (Lumnezia)",cantonCode:"GR"},{postalCode:"7115",placeName:"Surcasti",cantonCode:"GR"},{postalCode:"7116",placeName:"St. Martin (Lugnez)",cantonCode:"GR"},{postalCode:"7116",placeName:"Tersnaus",cantonCode:"GR"},{postalCode:"7122",placeName:"Valendas",cantonCode:"GR"},{postalCode:"7122",placeName:"Carrera",cantonCode:"GR"},{postalCode:"7126",placeName:"Castrisch",cantonCode:"GR"},{postalCode:"7127",placeName:"Sevgein",cantonCode:"GR"},{postalCode:"7128",placeName:"Riein",cantonCode:"GR"},{postalCode:"7130",placeName:"Schnaus",cantonCode:"GR"},{postalCode:"7130",placeName:"Ilanz",cantonCode:"GR"},{postalCode:"7130",placeName:"Schnaus",cantonCode:"GR"},{postalCode:"7132",placeName:"Vals",cantonCode:"GR"},{postalCode:"7134",placeName:"Obersaxen",cantonCode:"GR"},{postalCode:"7137",placeName:"Flond",cantonCode:"GR"},{postalCode:"7138",placeName:"Surcuolm",cantonCode:"GR"},{postalCode:"7141",placeName:"Luven",cantonCode:"GR"},{postalCode:"7142",placeName:"Cumbel",cantonCode:"GR"},{postalCode:"7143",placeName:"Morissen",cantonCode:"GR"},{postalCode:"7144",placeName:"Vella",cantonCode:"GR"},{postalCode:"7145",placeName:"Degen",cantonCode:"GR"},{postalCode:"7146",placeName:"Vattiz",cantonCode:"GR"},{postalCode:"7147",placeName:"Vignogn",cantonCode:"GR"},{postalCode:"7148",placeName:"Lumbrein",cantonCode:"GR"},{postalCode:"7149",placeName:"Vrin",cantonCode:"GR"},{postalCode:"7151",placeName:"Schluein",cantonCode:"GR"},{postalCode:"7152",placeName:"Sagogn",cantonCode:"GR"},{postalCode:"7153",placeName:"Falera",cantonCode:"GR"},{postalCode:"7154",placeName:"Ruschein",cantonCode:"GR"},{postalCode:"7155",placeName:"Ladir",cantonCode:"GR"},{postalCode:"7155",placeName:"Ladir",cantonCode:"GR"},{postalCode:"7156",placeName:"Pigniu",cantonCode:"GR"},{postalCode:"7156",placeName:"Rueun",cantonCode:"GR"},{postalCode:"7157",placeName:"Siat",cantonCode:"GR"},{postalCode:"7158",placeName:"Waltensburg/Vuorz",cantonCode:"GR"},{postalCode:"7159",placeName:"Andiast",cantonCode:"GR"},{postalCode:"7162",placeName:"Tavanasa",cantonCode:"GR"},{postalCode:"7163",placeName:"Danis",cantonCode:"GR"},{postalCode:"7164",placeName:"Dardin",cantonCode:"GR"},{postalCode:"7165",placeName:"Breil/Brigels",cantonCode:"GR"},{postalCode:"7166",placeName:"Trun",cantonCode:"GR"},{postalCode:"7167",placeName:"Zignau",cantonCode:"GR"},{postalCode:"7168",placeName:"Schlans",cantonCode:"GR"},{postalCode:"7172",placeName:"Rabius",cantonCode:"GR"},{postalCode:"7173",placeName:"Surrein",cantonCode:"GR"},{postalCode:"7174",placeName:"S. Benedetg",cantonCode:"GR"},{postalCode:"7175",placeName:"Sumvitg",cantonCode:"GR"},{postalCode:"7176",placeName:"Cumpadials",cantonCode:"GR"},{postalCode:"7180",placeName:"Disentis/Mustér",cantonCode:"GR"},{postalCode:"7182",placeName:"Cavardiras",cantonCode:"GR"},{postalCode:"7183",placeName:"Mumpé Medel",cantonCode:"GR"},{postalCode:"7184",placeName:"Curaglia",cantonCode:"GR"},{postalCode:"7185",placeName:"Platta",cantonCode:"GR"},{postalCode:"7186",placeName:"Segnas",cantonCode:"GR"},{postalCode:"7187",placeName:"Camischolas",cantonCode:"GR"},{postalCode:"7188",placeName:"Sedrun",cantonCode:"GR"},{postalCode:"7189",placeName:"Rueras",cantonCode:"GR"},{postalCode:"7404",placeName:"Feldis/Veulden",cantonCode:"GR"},{postalCode:"7405",placeName:"Rothenbrunnen",cantonCode:"GR"},{postalCode:"7407",placeName:"Trans",cantonCode:"GR"},{postalCode:"7408",placeName:"Realta",cantonCode:"GR"},{postalCode:"7408",placeName:"Cazis",cantonCode:"GR"},{postalCode:"7411",placeName:"Sils im Domleschg",cantonCode:"GR"},{postalCode:"7412",placeName:"Scharans",cantonCode:"GR"},{postalCode:"7413",placeName:"Fürstenaubruck",cantonCode:"GR"},{postalCode:"7414",placeName:"Fürstenau",cantonCode:"GR"},{postalCode:"7415",placeName:"Rodels",cantonCode:"GR"},{postalCode:"7415",placeName:"Pratval",cantonCode:"GR"},{postalCode:"7416",placeName:"Almens",cantonCode:"GR"},{postalCode:"7417",placeName:"Paspels",cantonCode:"GR"},{postalCode:"7418",placeName:"Tumegl/Tomils",cantonCode:"GR"},{postalCode:"7419",placeName:"Scheid",cantonCode:"GR"},{postalCode:"7421",placeName:"Summaprada",cantonCode:"GR"},{postalCode:"7422",placeName:"Tartar",cantonCode:"GR"},{postalCode:"7423",placeName:"Portein",cantonCode:"GR"},{postalCode:"7423",placeName:"Sarn",cantonCode:"GR"},{postalCode:"7424",placeName:"Präz",cantonCode:"GR"},{postalCode:"7424",placeName:"Dalin",cantonCode:"GR"},{postalCode:"7425",placeName:"Masein",cantonCode:"GR"},{postalCode:"7426",placeName:"Flerden",cantonCode:"GR"},{postalCode:"7426",placeName:"Flerden",cantonCode:"GR"},{postalCode:"7427",placeName:"Urmein",cantonCode:"GR"},{postalCode:"7428",placeName:"Tschappina",cantonCode:"GR"},{postalCode:"7428",placeName:"Glaspass",cantonCode:"GR"},{postalCode:"7430",placeName:"Thusis",cantonCode:"GR"},{postalCode:"7430",placeName:"Rongellen",cantonCode:"GR"},{postalCode:"7431",placeName:"Obermutten",cantonCode:"GR"},{postalCode:"7431",placeName:"Mutten",cantonCode:"GR"},{postalCode:"7432",placeName:"Zillis",cantonCode:"GR"},{postalCode:"7433",placeName:"Wergenstein",cantonCode:"GR"},{postalCode:"7433",placeName:"Farden",cantonCode:"GR"},{postalCode:"7433",placeName:"Lohn GR",cantonCode:"GR"},{postalCode:"7433",placeName:"Donat",cantonCode:"GR"},{postalCode:"7433",placeName:"Mathon",cantonCode:"GR"},{postalCode:"7434",placeName:"Sufers",cantonCode:"GR"},{postalCode:"7435",placeName:"Splügen",cantonCode:"GR"},{postalCode:"7436",placeName:"Medels im Rheinwald",cantonCode:"GR"},{postalCode:"7437",placeName:"Nufenen",cantonCode:"GR"},{postalCode:"7438",placeName:"Hinterrhein",cantonCode:"GR"},{postalCode:"7440",placeName:"Andeer",cantonCode:"GR"},{postalCode:"7442",placeName:"Clugin",cantonCode:"GR"},{postalCode:"7443",placeName:"Pignia",cantonCode:"GR"},{postalCode:"7444",placeName:"Ausserferrera",cantonCode:"GR"},{postalCode:"7445",placeName:"Innerferrera",cantonCode:"GR"},{postalCode:"7445",placeName:"Innerferrera",cantonCode:"GR"},{postalCode:"7446",placeName:"Campsut-Cröt",cantonCode:"GR"},{postalCode:"7447",placeName:"Am Bach (Avers)",cantonCode:"GR"},{postalCode:"7447",placeName:"Cresta (Avers)",cantonCode:"GR"},{postalCode:"7448",placeName:"Juf",cantonCode:"GR"},{postalCode:"2800",placeName:"Delémont 2",cantonCode:"JU"},{postalCode:"2800",placeName:"Delémont",cantonCode:"JU"},{postalCode:"2800",placeName:"Delémont 1",cantonCode:"JU"},{postalCode:"2802",placeName:"Develier",cantonCode:"JU"},{postalCode:"2803",placeName:"Bourrignon",cantonCode:"JU"},{postalCode:"2805",placeName:"Soyhières",cantonCode:"JU"},{postalCode:"2806",placeName:"Mettembert",cantonCode:"JU"},{postalCode:"2807",placeName:"Pleigne",cantonCode:"JU"},{postalCode:"2807",placeName:"Lucelle",cantonCode:"JU"},{postalCode:"2812",placeName:"Movelier",cantonCode:"JU"},{postalCode:"2813",placeName:"Ederswiler",cantonCode:"JU"},{postalCode:"2822",placeName:"Courroux",cantonCode:"JU"},{postalCode:"2823",placeName:"Courcelon",cantonCode:"JU"},{postalCode:"2824",placeName:"Vicques",cantonCode:"JU"},{postalCode:"2825",placeName:"Courchapoix",cantonCode:"JU"},{postalCode:"2826",placeName:"Corban",cantonCode:"JU"},{postalCode:"2827",placeName:"Mervelier",cantonCode:"JU"},{postalCode:"2828",placeName:"Montsevelier",cantonCode:"JU"},{postalCode:"2829",placeName:"Vermes",cantonCode:"JU"},{postalCode:"2830",placeName:"Vellerat",cantonCode:"JU"},{postalCode:"2830",placeName:"Courrendlin",cantonCode:"JU"},{postalCode:"2832",placeName:"Rebeuvelier",cantonCode:"JU"},{postalCode:"2842",placeName:"Rossemaison",cantonCode:"JU"},{postalCode:"2843",placeName:"Châtillon JU",cantonCode:"JU"},{postalCode:"2852",placeName:"Courtételle",cantonCode:"JU"},{postalCode:"2853",placeName:"Courfaivre",cantonCode:"JU"},{postalCode:"2854",placeName:"Bassecourt",cantonCode:"JU"},{postalCode:"2855",placeName:"Glovelier",cantonCode:"JU"},{postalCode:"2856",placeName:"Boécourt",cantonCode:"JU"},{postalCode:"2857",placeName:"Montavon",cantonCode:"JU"},{postalCode:"2863",placeName:"Undervelier",cantonCode:"JU"},{postalCode:"2864",placeName:"Soulce",cantonCode:"JU"},{postalCode:"2873",placeName:"Saulcy",cantonCode:"JU"},{postalCode:"2336",placeName:"Les Bois",cantonCode:"JU"},{postalCode:"2338",placeName:"Muriaux",cantonCode:"JU"},{postalCode:"2338",placeName:"Les Emibois",cantonCode:"JU"},{postalCode:"2340",placeName:"Le Noirmont",cantonCode:"JU"},{postalCode:"2345",placeName:"Les Breuleux",cantonCode:"JU"},{postalCode:"2345",placeName:"La Chaux-des-Breuleux",cantonCode:"JU"},{postalCode:"2350",placeName:"Saignelégier",cantonCode:"JU"},{postalCode:"2353",placeName:"Les Pommerats",cantonCode:"JU"},{postalCode:"2354",placeName:"Goumois",cantonCode:"JU"},{postalCode:"2360",placeName:"Le Bémont JU",cantonCode:"JU"},{postalCode:"2362",placeName:"Montfaucon",cantonCode:"JU"},{postalCode:"2362",placeName:"Montfavergier",cantonCode:"JU"},{postalCode:"2363",placeName:"Les Enfers",cantonCode:"JU"},{postalCode:"2364",placeName:"St-Brais",cantonCode:"JU"},{postalCode:"2714",placeName:"Les Genevez JU",cantonCode:"JU"},{postalCode:"2714",placeName:"Le Prédame",cantonCode:"JU"},{postalCode:"2718",placeName:"Fornet-Dessus",cantonCode:"JU"},{postalCode:"2718",placeName:"Lajoux JU",cantonCode:"JU"},{postalCode:"2882",placeName:"St-Ursanne",cantonCode:"JU"},{postalCode:"2887",placeName:"Soubey",cantonCode:"JU"},{postalCode:"2882",placeName:"St-Ursanne",cantonCode:"JU"},{postalCode:"2883",placeName:"Montmelon",cantonCode:"JU"},{postalCode:"2884",placeName:"Montenol",cantonCode:"JU"},{postalCode:"2885",placeName:"Epauvillers",cantonCode:"JU"},{postalCode:"2886",placeName:"Epiquerez",cantonCode:"JU"},{postalCode:"2888",placeName:"Seleute",cantonCode:"JU"},{postalCode:"2889",placeName:"Ocourt",cantonCode:"JU"},{postalCode:"2900",placeName:"Porrentruy 1",cantonCode:"JU"},{postalCode:"2900",placeName:"Porrentruy",cantonCode:"JU"},{postalCode:"2900",placeName:"Porrentruy 2",cantonCode:"JU"},{postalCode:"2902",placeName:"Fontenais",cantonCode:"JU"},{postalCode:"2903",placeName:"Villars-sur-Fontenais",cantonCode:"JU"},{postalCode:"2904",placeName:"Bressaucourt",cantonCode:"JU"},{postalCode:"2905",placeName:"Courtedoux",cantonCode:"JU"},{postalCode:"2906",placeName:"Chevenez",cantonCode:"JU"},{postalCode:"2907",placeName:"Rocourt",cantonCode:"JU"},{postalCode:"2908",placeName:"Grandfontaine",cantonCode:"JU"},{postalCode:"2912",placeName:"Roche-d'Or",cantonCode:"JU"},{postalCode:"2912",placeName:"Réclère",cantonCode:"JU"},{postalCode:"2914",placeName:"Damvant",cantonCode:"JU"},{postalCode:"2915",placeName:"Bure",cantonCode:"JU"},{postalCode:"2916",placeName:"Fahy",cantonCode:"JU"},{postalCode:"2922",placeName:"Courchavon",cantonCode:"JU"},{postalCode:"2923",placeName:"Courtemaîche",cantonCode:"JU"},{postalCode:"2924",placeName:"Montignez",cantonCode:"JU"},{postalCode:"2925",placeName:"Buix",cantonCode:"JU"},{postalCode:"2926",placeName:"Boncourt",cantonCode:"JU"},{postalCode:"2932",placeName:"Coeuve",cantonCode:"JU"},{postalCode:"2933",placeName:"Damphreux",cantonCode:"JU"},{postalCode:"2933",placeName:"Lugnez",cantonCode:"JU"},{postalCode:"2935",placeName:"Beurnevésin",cantonCode:"JU"},{postalCode:"2942",placeName:"Alle",cantonCode:"JU"},{postalCode:"2943",placeName:"Vendlincourt",cantonCode:"JU"},{postalCode:"2944",placeName:"Bonfol",cantonCode:"JU"},{postalCode:"2946",placeName:"Miécourt",cantonCode:"JU"},{postalCode:"2947",placeName:"Charmoille",cantonCode:"JU"},{postalCode:"2950",placeName:"Courtemautruy",cantonCode:"JU"},{postalCode:"2950",placeName:"Courgenay",cantonCode:"JU"},{postalCode:"2952",placeName:"Cornol",cantonCode:"JU"},{postalCode:"2953",placeName:"Fregiécourt",cantonCode:"JU"},{postalCode:"2953",placeName:"Pleujouse",cantonCode:"JU"},{postalCode:"2954",placeName:"Asuel",cantonCode:"JU"},{postalCode:"6000",placeName:"Luzern 14",cantonCode:"LU"},{postalCode:"6000",placeName:"Luzern 6",cantonCode:"LU"},{postalCode:"6000",placeName:"Luzern 7",cantonCode:"LU"},{postalCode:"6000",placeName:"Luzern 15",cantonCode:"LU"},{postalCode:"6000",placeName:"Luzern 30 AAL",cantonCode:"LU"},{postalCode:"6000",placeName:"Luzern",cantonCode:"LU"},{postalCode:"6000",placeName:"Luzern 16",cantonCode:"LU"},{postalCode:"6002",placeName:"Luzern",cantonCode:"LU"},{postalCode:"6003",placeName:"Luzern",cantonCode:"LU"},{postalCode:"6004",placeName:"Luzern",cantonCode:"LU"},{postalCode:"6005",placeName:"Luzern",cantonCode:"LU"},{postalCode:"6006",placeName:"Luzern",cantonCode:"LU"},{postalCode:"6007",placeName:"Luzern",cantonCode:"LU"},{postalCode:"6014",placeName:"Luzern",cantonCode:"LU"},{postalCode:"6015",placeName:"Luzern",cantonCode:"LU"},{postalCode:"6005",placeName:"St. Niklausen LU",cantonCode:"LU"},{postalCode:"6009",placeName:"Luzern",cantonCode:"LU"},{postalCode:"6010",placeName:"Kriens",cantonCode:"LU"},{postalCode:"6010",placeName:"Kriens 2",cantonCode:"LU"},{postalCode:"6011",placeName:"Kriens",cantonCode:"LU"},{postalCode:"6012",placeName:"Obernau",cantonCode:"LU"},{postalCode:"6013",placeName:"Eigenthal",cantonCode:"LU"},{postalCode:"6030",placeName:"Ebikon",cantonCode:"LU"},{postalCode:"6031",placeName:"Ebikon",cantonCode:"LU"},{postalCode:"6033",placeName:"Buchrain",cantonCode:"LU"},{postalCode:"6035",placeName:"Perlen",cantonCode:"LU"},{postalCode:"6036",placeName:"Dierikon",cantonCode:"LU"},{postalCode:"6037",placeName:"Root",cantonCode:"LU"},{postalCode:"6038",placeName:"Honau",cantonCode:"LU"},{postalCode:"6038",placeName:"Gisikon",cantonCode:"LU"},{postalCode:"6039",placeName:"Root D4",cantonCode:"LU"},{postalCode:"6043",placeName:"Adligenswil",cantonCode:"LU"},{postalCode:"6044",placeName:"Udligenswil",cantonCode:"LU"},{postalCode:"6045",placeName:"Meggen",cantonCode:"LU"},{postalCode:"6047",placeName:"Kastanienbaum",cantonCode:"LU"},{postalCode:"6048",placeName:"Horw",cantonCode:"LU"},{postalCode:"6102",placeName:"Malters",cantonCode:"LU"},{postalCode:"6103",placeName:"Schwarzenberg LU",cantonCode:"LU"},{postalCode:"6344",placeName:"Meierskappel",cantonCode:"LU"},{postalCode:"6353",placeName:"Weggis",cantonCode:"LU"},{postalCode:"6354",placeName:"Vitznau",cantonCode:"LU"},{postalCode:"6356",placeName:"Rigi Kaltbad",cantonCode:"LU"},{postalCode:"6404",placeName:"Greppen",cantonCode:"LU"},{postalCode:"6020",placeName:"Emmenbrücke",cantonCode:"LU"},{postalCode:"6020",placeName:"Emmenbrücke 2",cantonCode:"LU"},{postalCode:"6021",placeName:"Emmenbrücke 1",cantonCode:"LU"},{postalCode:"6023",placeName:"Rothenburg",cantonCode:"LU"},{postalCode:"6026",placeName:"Rain",cantonCode:"LU"},{postalCode:"6027",placeName:"Römerswil LU",cantonCode:"LU"},{postalCode:"6028",placeName:"Herlisberg",cantonCode:"LU"},{postalCode:"6032",placeName:"Emmen",cantonCode:"LU"},{postalCode:"6034",placeName:"Inwil",cantonCode:"LU"},{postalCode:"6274",placeName:"Eschenbach LU",cantonCode:"LU"},{postalCode:"6275",placeName:"Ballwil",cantonCode:"LU"},{postalCode:"6276",placeName:"Hohenrain",cantonCode:"LU"},{postalCode:"6277",placeName:"Kleinwangen",cantonCode:"LU"},{postalCode:"6277",placeName:"Lieli LU",cantonCode:"LU"},{postalCode:"6280",placeName:"Urswil",cantonCode:"LU"},{postalCode:"6280",placeName:"Hochdorf",cantonCode:"LU"},{postalCode:"6281",placeName:"Hochdorf",cantonCode:"LU"},{postalCode:"6283",placeName:"Baldegg",cantonCode:"LU"},{postalCode:"6284",placeName:"Sulz LU",cantonCode:"LU"},{postalCode:"6284",placeName:"Gelfingen",cantonCode:"LU"},{postalCode:"6285",placeName:"Hitzkirch",cantonCode:"LU"},{postalCode:"6285",placeName:"Retschwil",cantonCode:"LU"},{postalCode:"6286",placeName:"Altwis",cantonCode:"LU"},{postalCode:"6287",placeName:"Aesch LU",cantonCode:"LU"},{postalCode:"6288",placeName:"Schongau",cantonCode:"LU"},{postalCode:"6289",placeName:"Hämikon",cantonCode:"LU"},{postalCode:"6289",placeName:"Müswangen",cantonCode:"LU"},{postalCode:"6289",placeName:"Hämikon",cantonCode:"LU"},{postalCode:"6294",placeName:"Ermensee",cantonCode:"LU"},{postalCode:"6295",placeName:"Mosen",cantonCode:"LU"},{postalCode:"5735",placeName:"Pfeffikon LU",cantonCode:"LU"},{postalCode:"6016",placeName:"Hellbühl",cantonCode:"LU"},{postalCode:"6017",placeName:"Ruswil",cantonCode:"LU"},{postalCode:"6018",placeName:"Buttisholz",cantonCode:"LU"},{postalCode:"6019",placeName:"Sigigen",cantonCode:"LU"},{postalCode:"6022",placeName:"Grosswangen",cantonCode:"LU"},{postalCode:"6024",placeName:"Hildisrieden",cantonCode:"LU"},{postalCode:"6025",placeName:"Neudorf",cantonCode:"LU"},{postalCode:"6203",placeName:"Sempach Station",cantonCode:"LU"},{postalCode:"6204",placeName:"Sempach",cantonCode:"LU"},{postalCode:"6205",placeName:"Eich",cantonCode:"LU"},{postalCode:"6206",placeName:"Neuenkirch",cantonCode:"LU"},{postalCode:"6207",placeName:"Nottwil Paraplegikerzentrum",cantonCode:"LU"},{postalCode:"6207",placeName:"Nottwil",cantonCode:"LU"},{postalCode:"6208",placeName:"Oberkirch LU",cantonCode:"LU"},{postalCode:"6210",placeName:"Sursee",cantonCode:"LU"},{postalCode:"6212",placeName:"Kaltbach",cantonCode:"LU"},{postalCode:"6212",placeName:"St. Erhard",cantonCode:"LU"},{postalCode:"6213",placeName:"Knutwil",cantonCode:"LU"},{postalCode:"6214",placeName:"Schenkon",cantonCode:"LU"},{postalCode:"6215",placeName:"Beromünster",cantonCode:"LU"},{postalCode:"6215",placeName:"Schwarzenbach LU",cantonCode:"LU"},{postalCode:"6216",placeName:"Mauensee",cantonCode:"LU"},{postalCode:"6221",placeName:"Rickenbach LU",cantonCode:"LU"},{postalCode:"6222",placeName:"Gunzwil",cantonCode:"LU"},{postalCode:"6231",placeName:"Schlierbach",cantonCode:"LU"},{postalCode:"6232",placeName:"Geuensee",cantonCode:"LU"},{postalCode:"6233",placeName:"Büron",cantonCode:"LU"},{postalCode:"6234",placeName:"Triengen",cantonCode:"LU"},{postalCode:"6234",placeName:"Kulmerau",cantonCode:"LU"},{postalCode:"6235",placeName:"Winikon",cantonCode:"LU"},{postalCode:"6236",placeName:"Wilihof",cantonCode:"LU"},{postalCode:"4806",placeName:"Wikon",cantonCode:"LU"},{postalCode:"4915",placeName:"St. Urban",cantonCode:"LU"},{postalCode:"6122",placeName:"Menznau",cantonCode:"LU"},{postalCode:"6123",placeName:"Geiss",cantonCode:"LU"},{postalCode:"6125",placeName:"Menzberg",cantonCode:"LU"},{postalCode:"6126",placeName:"Daiwil",cantonCode:"LU"},{postalCode:"6130",placeName:"Willisau",cantonCode:"LU"},{postalCode:"6132",placeName:"Rohrmatt",cantonCode:"LU"},{postalCode:"6133",placeName:"Hergiswil b. Willisau",cantonCode:"LU"},{postalCode:"6142",placeName:"Gettnau",cantonCode:"LU"},{postalCode:"6143",placeName:"Ohmstal",cantonCode:"LU"},{postalCode:"6144",placeName:"Zell LU",cantonCode:"LU"},{postalCode:"6145",placeName:"Fischbach LU",cantonCode:"LU"},{postalCode:"6146",placeName:"Grossdietwil",cantonCode:"LU"},{postalCode:"6147",placeName:"Altbüron",cantonCode:"LU"},{postalCode:"6152",placeName:"Hüswil",cantonCode:"LU"},{postalCode:"6153",placeName:"Ufhusen",cantonCode:"LU"},{postalCode:"6154",placeName:"Hofstatt",cantonCode:"LU"},{postalCode:"6156",placeName:"Luthern",cantonCode:"LU"},{postalCode:"6156",placeName:"Luthern Bad",cantonCode:"LU"},{postalCode:"6211",placeName:"Buchs LU",cantonCode:"LU"},{postalCode:"6217",placeName:"Kottwil",cantonCode:"LU"},{postalCode:"6218",placeName:"Ettiswil",cantonCode:"LU"},{postalCode:"6242",placeName:"Wauwil",cantonCode:"LU"},{postalCode:"6243",placeName:"Egolzwil",cantonCode:"LU"},{postalCode:"6244",placeName:"Nebikon",cantonCode:"LU"},{postalCode:"6245",placeName:"Ebersecken",cantonCode:"LU"},{postalCode:"6246",placeName:"Altishofen",cantonCode:"LU"},{postalCode:"6247",placeName:"Schötz",cantonCode:"LU"},{postalCode:"6248",placeName:"Alberswil",cantonCode:"LU"},{postalCode:"6252",placeName:"Dagmersellen",cantonCode:"LU"},{postalCode:"6253",placeName:"Uffikon",cantonCode:"LU"},{postalCode:"6260",placeName:"Reiden",cantonCode:"LU"},{postalCode:"6260",placeName:"Hintermoos",cantonCode:"LU"},{postalCode:"6260",placeName:"Reidermoos",cantonCode:"LU"},{postalCode:"6260",placeName:"Mehlsecken",cantonCode:"LU"},{postalCode:"6262",placeName:"Langnau b. Reiden",cantonCode:"LU"},{postalCode:"6263",placeName:"Richenthal",cantonCode:"LU"},{postalCode:"6264",placeName:"Pfaffnau",cantonCode:"LU"},{postalCode:"6265",placeName:"Roggliswil",cantonCode:"LU"},{postalCode:"6105",placeName:"Schachen LU",cantonCode:"LU"},{postalCode:"6106",placeName:"Werthenstein",cantonCode:"LU"},{postalCode:"6110",placeName:"Fontannen b. Wolhusen",cantonCode:"LU"},{postalCode:"6110",placeName:"Wolhusen",cantonCode:"LU"},{postalCode:"6112",placeName:"Doppleschwand",cantonCode:"LU"},{postalCode:"6113",placeName:"Romoos",cantonCode:"LU"},{postalCode:"6114",placeName:"Steinhuserberg",cantonCode:"LU"},{postalCode:"6160",placeName:"Entlebuch Businesszentrum",cantonCode:"LU"},{postalCode:"6160",placeName:"Entlebuch",cantonCode:"LU"},{postalCode:"6162",placeName:"Rengg",cantonCode:"LU"},{postalCode:"6162",placeName:"Finsterwald b. Entlebuch",cantonCode:"LU"},{postalCode:"6162",placeName:"Entlebuch",cantonCode:"LU"},{postalCode:"6163",placeName:"Ebnet",cantonCode:"LU"},{postalCode:"6166",placeName:"Hasle LU",cantonCode:"LU"},{postalCode:"6167",placeName:"Bramboden",cantonCode:"LU"},{postalCode:"6170",placeName:"Schüpfheim",cantonCode:"LU"},{postalCode:"6173",placeName:"Flühli LU",cantonCode:"LU"},{postalCode:"6174",placeName:"Sörenberg",cantonCode:"LU"},{postalCode:"6182",placeName:"Escholzmatt",cantonCode:"LU"},{postalCode:"6192",placeName:"Wiggen",cantonCode:"LU"},{postalCode:"6196",placeName:"Marbach LU",cantonCode:"LU"},{postalCode:"2012",placeName:"Auvernier",cantonCode:"NE"},{postalCode:"2013",placeName:"Colombier NE",cantonCode:"NE"},{postalCode:"2014",placeName:"Bôle",cantonCode:"NE"},{postalCode:"2015",placeName:"Areuse",cantonCode:"NE"},{postalCode:"2016",placeName:"Cortaillod",cantonCode:"NE"},{postalCode:"2017",placeName:"Boudry",cantonCode:"NE"},{postalCode:"2019",placeName:"Chambrelien",cantonCode:"NE"},{postalCode:"2019",placeName:"Rochefort",cantonCode:"NE"},{postalCode:"2022",placeName:"Bevaix",cantonCode:"NE"},{postalCode:"2023",placeName:"Gorgier",cantonCode:"NE"},{postalCode:"2024",placeName:"St-Aubin-Sauges",cantonCode:"NE"},{postalCode:"2025",placeName:"Chez-le-Bart",cantonCode:"NE"},{postalCode:"2027",placeName:"Montalchez",cantonCode:"NE"},{postalCode:"2027",placeName:"Fresens",cantonCode:"NE"},{postalCode:"2028",placeName:"Vaumarcus",cantonCode:"NE"},{postalCode:"2034",placeName:"Peseux",cantonCode:"NE"},{postalCode:"2035",placeName:"Corcelles NE",cantonCode:"NE"},{postalCode:"2036",placeName:"Cormondrèche",cantonCode:"NE"},{postalCode:"2037",placeName:"Montezillon",cantonCode:"NE"},{postalCode:"2149",placeName:"Champ-du-Moulin",cantonCode:"NE"},{postalCode:"2149",placeName:"Brot-Dessous",cantonCode:"NE"},{postalCode:"2149",placeName:"Fretereules",cantonCode:"NE"},{postalCode:"2300",placeName:"La Chaux-de-Fonds",cantonCode:"NE"},{postalCode:"2300",placeName:"La Cibourg",cantonCode:"NE"},{postalCode:"2301",placeName:"La Chaux-de-Fonds",cantonCode:"NE"},{postalCode:"2303",placeName:"La Chaux-de-Fonds",cantonCode:"NE"},{postalCode:"2304",placeName:"La Chaux-de-Fonds",cantonCode:"NE"},{postalCode:"2314",placeName:"La Sagne NE",cantonCode:"NE"},{postalCode:"2322",placeName:"Le Crêt-du-Locle",cantonCode:"NE"},{postalCode:"2325",placeName:"Les Planchettes",cantonCode:"NE"},{postalCode:"2333",placeName:"La Cibourg",cantonCode:"NE"},{postalCode:"2616",placeName:"La Cibourg",cantonCode:"NE"},{postalCode:"2316",placeName:"Les Ponts-de-Martel",cantonCode:"NE"},{postalCode:"2316",placeName:"Petit-Martel",cantonCode:"NE"},{postalCode:"2318",placeName:"Brot-Plamboz",cantonCode:"NE"},{postalCode:"2400",placeName:"Le Prévoux",cantonCode:"NE"},{postalCode:"2400",placeName:"Le Locle",cantonCode:"NE"},{postalCode:"2400",placeName:"Le Locle",cantonCode:"NE"},{postalCode:"2405",placeName:"La Chaux-du-Milieu",cantonCode:"NE"},{postalCode:"2406",placeName:"Les Taillères",cantonCode:"NE"},{postalCode:"2406",placeName:"La Brévine",cantonCode:"NE"},{postalCode:"2406",placeName:"Le Brouillet",cantonCode:"NE"},{postalCode:"2406",placeName:"La Châtagne",cantonCode:"NE"},{postalCode:"2414",placeName:"Le Cerneux-Péquignot",cantonCode:"NE"},{postalCode:"2416",placeName:"Les Brenets",cantonCode:"NE"},{postalCode:"2000",placeName:"Neuchâtel",cantonCode:"NE"},{postalCode:"2001",placeName:"Neuchâtel 1",cantonCode:"NE"},{postalCode:"2002",placeName:"Neuchâtel 2",cantonCode:"NE"},{postalCode:"2010",placeName:"Neuchâtel OFS",cantonCode:"NE"},{postalCode:"2067",placeName:"Chaumont",cantonCode:"NE"},{postalCode:"2068",placeName:"Hauterive NE",cantonCode:"NE"},{postalCode:"2072",placeName:"St-Blaise",cantonCode:"NE"},{postalCode:"2073",placeName:"Enges",cantonCode:"NE"},{postalCode:"2074",placeName:"Marin-Centre",cantonCode:"NE"},{postalCode:"2074",placeName:"Marin-Epagnier",cantonCode:"NE"},{postalCode:"2075",placeName:"Thielle",cantonCode:"NE"},{postalCode:"2075",placeName:"Wavre",cantonCode:"NE"},{postalCode:"2087",placeName:"Cornaux NE",cantonCode:"NE"},{postalCode:"2088",placeName:"Cressier NE",cantonCode:"NE"},{postalCode:"2523",placeName:"Lignières",cantonCode:"NE"},{postalCode:"2525",placeName:"Le Landeron",cantonCode:"NE"},{postalCode:"2037",placeName:"Montmollin",cantonCode:"NE"},{postalCode:"2042",placeName:"Valangin",cantonCode:"NE"},{postalCode:"2043",placeName:"Boudevilliers",cantonCode:"NE"},{postalCode:"2046",placeName:"Fontaines NE",cantonCode:"NE"},{postalCode:"2052",placeName:"La Vue-des-Alpes",cantonCode:"NE"},{postalCode:"2052",placeName:"Fontainemelon",cantonCode:"NE"},{postalCode:"2053",placeName:"Cernier",cantonCode:"NE"},{postalCode:"2054",placeName:"Les Vieux-Prés",cantonCode:"NE"},{postalCode:"2054",placeName:"Chézard-St-Martin",cantonCode:"NE"},{postalCode:"2056",placeName:"Dombresson",cantonCode:"NE"},{postalCode:"2057",placeName:"Villiers",cantonCode:"NE"},{postalCode:"2058",placeName:"Le Pâquier NE",cantonCode:"NE"},{postalCode:"2063",placeName:"Saules",cantonCode:"NE"},{postalCode:"2063",placeName:"Engollon",cantonCode:"NE"},{postalCode:"2063",placeName:"Vilars NE",cantonCode:"NE"},{postalCode:"2063",placeName:"Fenin",cantonCode:"NE"},{postalCode:"2065",placeName:"Savagnier",cantonCode:"NE"},{postalCode:"2206",placeName:"Les Geneveys-sur-Coffrane",cantonCode:"NE"},{postalCode:"2207",placeName:"Coffrane",cantonCode:"NE"},{postalCode:"2208",placeName:"Les Hauts-Geneveys",cantonCode:"NE"},{postalCode:"2103",placeName:"Noiraigue",cantonCode:"NE"},{postalCode:"2105",placeName:"Travers",cantonCode:"NE"},{postalCode:"2108",placeName:"Couvet",cantonCode:"NE"},{postalCode:"2112",placeName:"Môtiers NE",cantonCode:"NE"},{postalCode:"2113",placeName:"Boveresse",cantonCode:"NE"},{postalCode:"2114",placeName:"Fleurier",cantonCode:"NE"},{postalCode:"2115",placeName:"Buttes",cantonCode:"NE"},{postalCode:"2116",placeName:"Mont-de-Buttes",cantonCode:"NE"},{postalCode:"2117",placeName:"La Côte-aux-Fées",cantonCode:"NE"},{postalCode:"2123",placeName:"St-Sulpice NE",cantonCode:"NE"},{postalCode:"2124",placeName:"Les Sagnettes",cantonCode:"NE"},{postalCode:"2126",placeName:"Les Verrières",cantonCode:"NE"},{postalCode:"2127",placeName:"Les Bayards",cantonCode:"NE"},{postalCode:"6052",placeName:"Hergiswil NW",cantonCode:"NW"},{postalCode:"6362",placeName:"Stansstad",cantonCode:"NW"},{postalCode:"6363",placeName:"Fürigen",cantonCode:"NW"},{postalCode:"6363",placeName:"Bürgenstock",cantonCode:"NW"},{postalCode:"6363",placeName:"Obbürgen",cantonCode:"NW"},{postalCode:"6365",placeName:"Kehrsiten",cantonCode:"NW"},{postalCode:"6370",placeName:"Stans",cantonCode:"NW"},{postalCode:"6370",placeName:"Oberdorf NW",cantonCode:"NW"},{postalCode:"6371",placeName:"Stans",cantonCode:"NW"},{postalCode:"6372",placeName:"Ennetmoos",cantonCode:"NW"},{postalCode:"6373",placeName:"Ennetbürgen",cantonCode:"NW"},{postalCode:"6374",placeName:"Buochs",cantonCode:"NW"},{postalCode:"6375",placeName:"Beckenried",cantonCode:"NW"},{postalCode:"6376",placeName:"Emmetten",cantonCode:"NW"},{postalCode:"6382",placeName:"Büren NW",cantonCode:"NW"},{postalCode:"6383",placeName:"Wiesenberg",cantonCode:"NW"},{postalCode:"6383",placeName:"Wirzweli",cantonCode:"NW"},{postalCode:"6383",placeName:"Dallenwil",cantonCode:"NW"},{postalCode:"6383",placeName:"Niederrickenbach",cantonCode:"NW"},{postalCode:"6386",placeName:"Wolfenschiessen",cantonCode:"NW"},{postalCode:"6387",placeName:"Oberrickenbach",cantonCode:"NW"},{postalCode:"6010",placeName:"Kriens",cantonCode:"OW"},{postalCode:"6010",placeName:"Pilatus Kulm",cantonCode:"OW"},{postalCode:"6053",placeName:"Alpnachstad",cantonCode:"OW"},{postalCode:"6055",placeName:"Alpnach Dorf",cantonCode:"OW"},{postalCode:"6056",placeName:"Kägiswil",cantonCode:"OW"},{postalCode:"6060",placeName:"Ramersberg",cantonCode:"OW"},{postalCode:"6060",placeName:"Sarnen",cantonCode:"OW"},{postalCode:"6060",placeName:"Sarnen 2",cantonCode:"OW"},{postalCode:"6061",placeName:"Sarnen 1",cantonCode:"OW"},{postalCode:"6062",placeName:"Wilen (Sarnen)",cantonCode:"OW"},{postalCode:"6063",placeName:"Stalden (Sarnen)",cantonCode:"OW"},{postalCode:"6064",placeName:"Kerns",cantonCode:"OW"},{postalCode:"6066",placeName:"St. Niklausen OW",cantonCode:"OW"},{postalCode:"6067",placeName:"Melchtal",cantonCode:"OW"},{postalCode:"6068",placeName:"Melchsee-Frutt",cantonCode:"OW"},{postalCode:"6072",placeName:"Sachseln",cantonCode:"OW"},{postalCode:"6073",placeName:"Flüeli-Ranft",cantonCode:"OW"},{postalCode:"6074",placeName:"Giswil",cantonCode:"OW"},{postalCode:"6078",placeName:"Bürglen OW",cantonCode:"OW"},{postalCode:"6078",placeName:"Lungern",cantonCode:"OW"},{postalCode:"6388",placeName:"Grafenort",cantonCode:"OW"},{postalCode:"6390",placeName:"Engelberg",cantonCode:"OW"},{postalCode:"6391",placeName:"Engelberg",cantonCode:"OW"},{postalCode:"9000",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9001",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9004",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9006",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9007",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9008",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9010",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9011",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9012",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9013",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9014",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9015",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9016",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9020",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9021",placeName:"St. Gallen MS",cantonCode:"SG"},{postalCode:"9023",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9024",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9024",placeName:"St. Gallen Presse-Serv.Güll",cantonCode:"SG"},{postalCode:"9026",placeName:"St. Gallen K AG",cantonCode:"SG"},{postalCode:"9026",placeName:"St. Gallen Künzler AG",cantonCode:"SG"},{postalCode:"9027",placeName:"St. Gallen Mona Versand",cantonCode:"SG"},{postalCode:"9027",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9028",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9029",placeName:"St. Gallen",cantonCode:"SG"},{postalCode:"9029",placeName:"St. Gallen Sonderdienste",cantonCode:"SG"},{postalCode:"9030",placeName:"St. Josefen",cantonCode:"SG"},{postalCode:"9030",placeName:"Abtwil SG",cantonCode:"SG"},{postalCode:"9032",placeName:"Engelburg",cantonCode:"SG"},{postalCode:"9034",placeName:"Eggersriet",cantonCode:"SG"},{postalCode:"9036",placeName:"Grub SG",cantonCode:"SG"},{postalCode:"9200",placeName:"Gossau SG",cantonCode:"SG"},{postalCode:"9200",placeName:"Gossau SG 2",cantonCode:"SG"},{postalCode:"9201",placeName:"Gossau SG",cantonCode:"SG"},{postalCode:"9204",placeName:"Andwil SG",cantonCode:"SG"},{postalCode:"9205",placeName:"Waldkirch",cantonCode:"SG"},{postalCode:"9212",placeName:"Arnegg",cantonCode:"SG"},{postalCode:"9300",placeName:"Wittenbach",cantonCode:"SG"},{postalCode:"9301",placeName:"Wittenbach",cantonCode:"SG"},{postalCode:"9304",placeName:"Bernhardzell",cantonCode:"SG"},{postalCode:"9308",placeName:"Lömmenschwil",cantonCode:"SG"},{postalCode:"9312",placeName:"Häggenschwil",cantonCode:"SG"},{postalCode:"9313",placeName:"Muolen",cantonCode:"SG"},{postalCode:"9033",placeName:"Untereggen",cantonCode:"SG"},{postalCode:"9305",placeName:"Berg SG",cantonCode:"SG"},{postalCode:"9323",placeName:"Steinach",cantonCode:"SG"},{postalCode:"9327",placeName:"Tübach",cantonCode:"SG"},{postalCode:"9400",placeName:"Rorschach",cantonCode:"SG"},{postalCode:"9401",placeName:"Rorschach",cantonCode:"SG"},{postalCode:"9402",placeName:"Mörschwil",cantonCode:"SG"},{postalCode:"9403",placeName:"Goldach",cantonCode:"SG"},{postalCode:"9404",placeName:"Rorschacherberg",cantonCode:"SG"},{postalCode:"9422",placeName:"Staad SG",cantonCode:"SG"},{postalCode:"9423",placeName:"Altenrhein",cantonCode:"SG"},{postalCode:"9425",placeName:"Thal",cantonCode:"SG"},{postalCode:"9411",placeName:"Reute AR",cantonCode:"SG"},{postalCode:"9424",placeName:"Rheineck",cantonCode:"SG"},{postalCode:"9430",placeName:"St. Margrethen SG",cantonCode:"SG"},{postalCode:"9434",placeName:"Au SG",cantonCode:"SG"},{postalCode:"9435",placeName:"Heerbrugg",cantonCode:"SG"},{postalCode:"9436",placeName:"Balgach",cantonCode:"SG"},{postalCode:"9437",placeName:"Marbach SG",cantonCode:"SG"},{postalCode:"9442",placeName:"Berneck",cantonCode:"SG"},{postalCode:"9443",placeName:"Widnau",cantonCode:"SG"},{postalCode:"9444",placeName:"Diepoldsau",cantonCode:"SG"},{postalCode:"9445",placeName:"Rebstein",cantonCode:"SG"},{postalCode:"9450",placeName:"Altstätten SG 2",cantonCode:"SG"},{postalCode:"9450",placeName:"Altstätten SG",cantonCode:"SG"},{postalCode:"9450",placeName:"Lüchingen",cantonCode:"SG"},{postalCode:"9451",placeName:"Kriessern",cantonCode:"SG"},{postalCode:"9452",placeName:"Hinterforst",cantonCode:"SG"},{postalCode:"9453",placeName:"Eichberg",cantonCode:"SG"},{postalCode:"9462",placeName:"Montlingen",cantonCode:"SG"},{postalCode:"9462",placeName:"Montlingen",cantonCode:"SG"},{postalCode:"9463",placeName:"Oberriet SG",cantonCode:"SG"},{postalCode:"9464",placeName:"Rüthi (Rheintal)",cantonCode:"SG"},{postalCode:"9464",placeName:"Lienz",cantonCode:"SG"},{postalCode:"9465",placeName:"Salez",cantonCode:"SG"},{postalCode:"9466",placeName:"Sennwald",cantonCode:"SG"},{postalCode:"9467",placeName:"Frümsen",cantonCode:"SG"},{postalCode:"9468",placeName:"Sax",cantonCode:"SG"},{postalCode:"9469",placeName:"Haag (Rheintal)",cantonCode:"SG"},{postalCode:"9470",placeName:"Werdenberg",cantonCode:"SG"},{postalCode:"9470",placeName:"Buchs SG",cantonCode:"SG"},{postalCode:"9471",placeName:"Buchs SG 3",cantonCode:"SG"},{postalCode:"9471",placeName:"Buchs SG 1",cantonCode:"SG"},{postalCode:"9472",placeName:"Grabs",cantonCode:"SG"},{postalCode:"9472",placeName:"Grabserberg",cantonCode:"SG"},{postalCode:"9473",placeName:"Gams",cantonCode:"SG"},{postalCode:"9475",placeName:"Sevelen",cantonCode:"SG"},{postalCode:"9476",placeName:"Weite",cantonCode:"SG"},{postalCode:"9476",placeName:"Fontnas",cantonCode:"SG"},{postalCode:"9477",placeName:"Trübbach",cantonCode:"SG"},{postalCode:"9478",placeName:"Azmoos",cantonCode:"SG"},{postalCode:"9479",placeName:"Malans SG",cantonCode:"SG"},{postalCode:"9479",placeName:"Oberschan",cantonCode:"SG"},{postalCode:"9479",placeName:"Gretschins",cantonCode:"SG"},{postalCode:"7310",placeName:"Bad Ragaz",cantonCode:"SG"},{postalCode:"7310",placeName:"Bad Ragaz",cantonCode:"SG"},{postalCode:"7312",placeName:"Pfäfers",cantonCode:"SG"},{postalCode:"7313",placeName:"St. Margrethenberg",cantonCode:"SG"},{postalCode:"7314",placeName:"Vadura",cantonCode:"SG"},{postalCode:"7315",placeName:"Vättis",cantonCode:"SG"},{postalCode:"7317",placeName:"Vasön",cantonCode:"SG"},{postalCode:"7317",placeName:"Valens",cantonCode:"SG"},{postalCode:"7320",placeName:"Sargans",cantonCode:"SG"},{postalCode:"7323",placeName:"Wangs",cantonCode:"SG"},{postalCode:"7324",placeName:"Vilters",cantonCode:"SG"},{postalCode:"7325",placeName:"Schwendi im Weisstannental",cantonCode:"SG"},{postalCode:"7326",placeName:"Weisstannen",cantonCode:"SG"},{postalCode:"8877",placeName:"Murg",cantonCode:"SG"},{postalCode:"8878",placeName:"Quinten",cantonCode:"SG"},{postalCode:"8879",placeName:"Pizolpark (Mels)",cantonCode:"SG"},{postalCode:"8880",placeName:"Walenstadt",cantonCode:"SG"},{postalCode:"8881",placeName:"Tscherlach",cantonCode:"SG"},{postalCode:"8881",placeName:"Walenstadtberg",cantonCode:"SG"},{postalCode:"8882",placeName:"Unterterzen",cantonCode:"SG"},{postalCode:"8883",placeName:"Quarten",cantonCode:"SG"},{postalCode:"8884",placeName:"Oberterzen",cantonCode:"SG"},{postalCode:"8885",placeName:"Mols",cantonCode:"SG"},{postalCode:"8886",placeName:"Mädris-Vermol",cantonCode:"SG"},{postalCode:"8887",placeName:"Mels",cantonCode:"SG"},{postalCode:"8888",placeName:"Heiligkreuz (Mels)",cantonCode:"SG"},{postalCode:"8889",placeName:"Plons",cantonCode:"SG"},{postalCode:"8890",placeName:"Flums",cantonCode:"SG"},{postalCode:"8892",placeName:"Berschis",cantonCode:"SG"},{postalCode:"8893",placeName:"Flums Hochwiese",cantonCode:"SG"},{postalCode:"8894",placeName:"Flumserberg Saxli",cantonCode:"SG"},{postalCode:"8895",placeName:"Flumserberg Portels",cantonCode:"SG"},{postalCode:"8896",placeName:"Flumserberg Bergheim",cantonCode:"SG"},{postalCode:"8897",placeName:"Flumserberg Tannenheim",cantonCode:"SG"},{postalCode:"8898",placeName:"Flumserberg Tannenbodenalp",cantonCode:"SG"},{postalCode:"8638",placeName:"Goldingen",cantonCode:"SG"},{postalCode:"8640",placeName:"Rapperswil SG",cantonCode:"SG"},{postalCode:"8645",placeName:"Jona",cantonCode:"SG"},{postalCode:"8646",placeName:"Wagen",cantonCode:"SG"},{postalCode:"8715",placeName:"Bollingen",cantonCode:"SG"},{postalCode:"8716",placeName:"Schmerikon",cantonCode:"SG"},{postalCode:"8717",placeName:"Benken SG",cantonCode:"SG"},{postalCode:"8718",placeName:"Schänis",cantonCode:"SG"},{postalCode:"8722",placeName:"Kaltbrunn",cantonCode:"SG"},{postalCode:"8723",placeName:"Rufi",cantonCode:"SG"},{postalCode:"8723",placeName:"Maseltrangen",cantonCode:"SG"},{postalCode:"8725",placeName:"Ernetschwil",cantonCode:"SG"},{postalCode:"8725",placeName:"Gebertingen",cantonCode:"SG"},{postalCode:"8726",placeName:"Ricken SG",cantonCode:"SG"},{postalCode:"8727",placeName:"Walde SG",cantonCode:"SG"},{postalCode:"8730",placeName:"Uznach",cantonCode:"SG"},{postalCode:"8732",placeName:"Neuhaus SG",cantonCode:"SG"},{postalCode:"8733",placeName:"Eschenbach SG",cantonCode:"SG"},{postalCode:"8734",placeName:"Ermenswil",cantonCode:"SG"},{postalCode:"8735",placeName:"St. Gallenkappel",cantonCode:"SG"},{postalCode:"8735",placeName:"Rüeterswil",cantonCode:"SG"},{postalCode:"8737",placeName:"Gommiswald",cantonCode:"SG"},{postalCode:"8738",placeName:"Uetliburg SG",cantonCode:"SG"},{postalCode:"8739",placeName:"Rieden SG",cantonCode:"SG"},{postalCode:"8740",placeName:"Uznach Vögele AG",cantonCode:"SG"},{postalCode:"8740",placeName:"Uznach Vögele Versandhaus",cantonCode:"SG"},{postalCode:"8866",placeName:"Ziegelbrücke",cantonCode:"SG"},{postalCode:"8872",placeName:"Weesen",cantonCode:"SG"},{postalCode:"8873",placeName:"Amden",cantonCode:"SG"},{postalCode:"9114",placeName:"Hoffeld",cantonCode:"SG"},{postalCode:"9115",placeName:"Dicken",cantonCode:"SG"},{postalCode:"9122",placeName:"Mogelsberg",cantonCode:"SG"},{postalCode:"9122",placeName:"Ebersol",cantonCode:"SG"},{postalCode:"9123",placeName:"Nassen",cantonCode:"SG"},{postalCode:"9125",placeName:"Brunnadern",cantonCode:"SG"},{postalCode:"9126",placeName:"Necker",cantonCode:"SG"},{postalCode:"9127",placeName:"St. Peterzell",cantonCode:"SG"},{postalCode:"9500",placeName:"Wil SG",cantonCode:"SG"},{postalCode:"9533",placeName:"Dietschwil",cantonCode:"SG"},{postalCode:"9533",placeName:"Kirchberg SG",cantonCode:"SG"},{postalCode:"9534",placeName:"Gähwil",cantonCode:"SG"},{postalCode:"9601",placeName:"Lütisburg Station",cantonCode:"SG"},{postalCode:"9602",placeName:"Müselbach",cantonCode:"SG"},{postalCode:"9602",placeName:"Bazenheid",cantonCode:"SG"},{postalCode:"9604",placeName:"Lütisburg",cantonCode:"SG"},{postalCode:"9604",placeName:"Unterrindal",cantonCode:"SG"},{postalCode:"9606",placeName:"Bütschwil",cantonCode:"SG"},{postalCode:"9607",placeName:"Mosnang",cantonCode:"SG"},{postalCode:"9608",placeName:"Ganterschwil",cantonCode:"SG"},{postalCode:"9612",placeName:"Dreien",cantonCode:"SG"},{postalCode:"9613",placeName:"Mühlrüti",cantonCode:"SG"},{postalCode:"9614",placeName:"Libingen",cantonCode:"SG"},{postalCode:"9615",placeName:"Dietfurt",cantonCode:"SG"},{postalCode:"9620",placeName:"Lichtensteig",cantonCode:"SG"},{postalCode:"9621",placeName:"Oberhelfenschwil",cantonCode:"SG"},{postalCode:"9622",placeName:"Krinau",cantonCode:"SG"},{postalCode:"9630",placeName:"Wattwil",cantonCode:"SG"},{postalCode:"9631",placeName:"Ulisbach",cantonCode:"SG"},{postalCode:"9633",placeName:"Hemberg",cantonCode:"SG"},{postalCode:"9633",placeName:"Bächli (Hemberg)",cantonCode:"SG"},{postalCode:"9642",placeName:"Ebnat-Kappel",cantonCode:"SG"},{postalCode:"9643",placeName:"Krummenau",cantonCode:"SG"},{postalCode:"9650",placeName:"Nesslau",cantonCode:"SG"},{postalCode:"9651",placeName:"Ennetbühl",cantonCode:"SG"},{postalCode:"9652",placeName:"Neu St. Johann",cantonCode:"SG"},{postalCode:"9655",placeName:"Stein SG",cantonCode:"SG"},{postalCode:"9656",placeName:"Alt St. Johann",cantonCode:"SG"},{postalCode:"9657",placeName:"Unterwasser",cantonCode:"SG"},{postalCode:"9658",placeName:"Wildhaus",cantonCode:"SG"},{postalCode:"9113",placeName:"Degersheim",cantonCode:"SG"},{postalCode:"9116",placeName:"Wolfertswil",cantonCode:"SG"},{postalCode:"9203",placeName:"Niederwil SG",cantonCode:"SG"},{postalCode:"9230",placeName:"Flawil 1",cantonCode:"SG"},{postalCode:"9230",placeName:"Flawil 2 Botsberg",cantonCode:"SG"},{postalCode:"9230",placeName:"Flawil",cantonCode:"SG"},{postalCode:"9231",placeName:"Egg (Flawil)",cantonCode:"SG"},{postalCode:"9240",placeName:"Uzwil",cantonCode:"SG"},{postalCode:"9240",placeName:"Niederglatt SG",cantonCode:"SG"},{postalCode:"9242",placeName:"Oberuzwil",cantonCode:"SG"},{postalCode:"9243",placeName:"Jonschwil",cantonCode:"SG"},{postalCode:"9244",placeName:"Niederuzwil",cantonCode:"SG"},{postalCode:"9245",placeName:"Oberbüren",cantonCode:"SG"},{postalCode:"9245",placeName:"Sonnental",cantonCode:"SG"},{postalCode:"9246",placeName:"Niederbüren",cantonCode:"SG"},{postalCode:"9247",placeName:"Henau",cantonCode:"SG"},{postalCode:"9248",placeName:"Bichwil",cantonCode:"SG"},{postalCode:"9249",placeName:"Niederstetten",cantonCode:"SG"},{postalCode:"9249",placeName:"Algetshausen",cantonCode:"SG"},{postalCode:"9249",placeName:"Oberstetten",cantonCode:"SG"},{postalCode:"9500",placeName:"Wil SG",cantonCode:"SG"},{postalCode:"9501",placeName:"Wil SG 1",cantonCode:"SG"},{postalCode:"9512",placeName:"Rossrüti",cantonCode:"SG"},{postalCode:"9523",placeName:"Züberwangen",cantonCode:"SG"},{postalCode:"9524",placeName:"Zuzwil SG",cantonCode:"SG"},{postalCode:"9525",placeName:"Lenggenwil",cantonCode:"SG"},{postalCode:"9526",placeName:"Zuckenriet",cantonCode:"SG"},{postalCode:"9527",placeName:"Niederhelfenschwil",cantonCode:"SG"},{postalCode:"9532",placeName:"Rickenbach b. Wil",cantonCode:"SG"},{postalCode:"9536",placeName:"Schwarzenbach SG",cantonCode:"SG"},{postalCode:"9552",placeName:"Bronschhofen",cantonCode:"SG"},{postalCode:"9604",placeName:"Oberrindal",cantonCode:"SG"},{postalCode:"8213",placeName:"Neunkirch",cantonCode:"SH"},{postalCode:"8214",placeName:"Gächlingen",cantonCode:"SH"},{postalCode:"8224",placeName:"Löhningen",cantonCode:"SH"},{postalCode:"8234",placeName:"Stetten SH",cantonCode:"SH"},{postalCode:"8235",placeName:"Lohn SH",cantonCode:"SH"},{postalCode:"8236",placeName:"Opfertshofen SH",cantonCode:"SH"},{postalCode:"8236",placeName:"Büttenhardt",cantonCode:"SH"},{postalCode:"8239",placeName:"Dörflingen",cantonCode:"SH"},{postalCode:"8240",placeName:"Thayngen",cantonCode:"SH"},{postalCode:"8241",placeName:"Barzheim",cantonCode:"SH"},{postalCode:"8242",placeName:"Hofen SH",cantonCode:"SH"},{postalCode:"8242",placeName:"Bibern SH",cantonCode:"SH"},{postalCode:"8243",placeName:"Altdorf SH",cantonCode:"SH"},{postalCode:"8200",placeName:"Schaffhausen",cantonCode:"SH"},{postalCode:"8201",placeName:"Schaffhausen",cantonCode:"SH"},{postalCode:"8203",placeName:"Schaffhausen",cantonCode:"SH"},{postalCode:"8207",placeName:"Schaffhausen",cantonCode:"SH"},{postalCode:"8208",placeName:"Schaffhausen",cantonCode:"SH"},{postalCode:"8212",placeName:"Neuhausen am Rheinfall",cantonCode:"SH"},{postalCode:"8212",placeName:"Neuhausen am Rheinfall 1",cantonCode:"SH"},{postalCode:"8222",placeName:"Beringen",cantonCode:"SH"},{postalCode:"8223",placeName:"Guntmadingen",cantonCode:"SH"},{postalCode:"8231",placeName:"Hemmental",cantonCode:"SH"},{postalCode:"8232",placeName:"Merishausen",cantonCode:"SH"},{postalCode:"8233",placeName:"Bargen SH",cantonCode:"SH"},{postalCode:"8454",placeName:"Buchberg",cantonCode:"SH"},{postalCode:"8455",placeName:"Rüdlingen",cantonCode:"SH"},{postalCode:"8225",placeName:"Siblingen",cantonCode:"SH"},{postalCode:"8226",placeName:"Schleitheim",cantonCode:"SH"},{postalCode:"8228",placeName:"Beggingen",cantonCode:"SH"},{postalCode:"8260",placeName:"Stein am Rhein 2 Stadt",cantonCode:"SH"},{postalCode:"8260",placeName:"Stein am Rhein 1",cantonCode:"SH"},{postalCode:"8260",placeName:"Stein am Rhein",cantonCode:"SH"},{postalCode:"8261",placeName:"Hemishofen",cantonCode:"SH"},{postalCode:"8262",placeName:"Ramsen",cantonCode:"SH"},{postalCode:"8263",placeName:"Buch SH",cantonCode:"SH"},{postalCode:"8215",placeName:"Hallau",cantonCode:"SH"},{postalCode:"8216",placeName:"Oberhallau",cantonCode:"SH"},{postalCode:"8217",placeName:"Wilchingen",cantonCode:"SH"},{postalCode:"8218",placeName:"Osterfingen",cantonCode:"SH"},{postalCode:"8219",placeName:"Trasadingen",cantonCode:"SH"},{postalCode:"4622",placeName:"Egerkingen",cantonCode:"SO"},{postalCode:"4623",placeName:"Neuendorf",cantonCode:"SO"},{postalCode:"4624",placeName:"Härkingen",cantonCode:"SO"},{postalCode:"4625",placeName:"Oberbuchsiten",cantonCode:"SO"},{postalCode:"4626",placeName:"Niederbuchsiten",cantonCode:"SO"},{postalCode:"4628",placeName:"Wolfwil",cantonCode:"SO"},{postalCode:"4702",placeName:"Oensingen",cantonCode:"SO"},{postalCode:"4703",placeName:"Kestenholz",cantonCode:"SO"},{postalCode:"4710",placeName:"Balsthal",cantonCode:"SO"},{postalCode:"4712",placeName:"Laupersdorf",cantonCode:"SO"},{postalCode:"4713",placeName:"Matzendorf",cantonCode:"SO"},{postalCode:"4714",placeName:"Aedermannsdorf",cantonCode:"SO"},{postalCode:"4715",placeName:"Herbetswil",cantonCode:"SO"},{postalCode:"4716",placeName:"Gänsbrunnen",cantonCode:"SO"},{postalCode:"4716",placeName:"Welschenrohr",cantonCode:"SO"},{postalCode:"4717",placeName:"Mümliswil",cantonCode:"SO"},{postalCode:"4718",placeName:"Holderbank SO",cantonCode:"SO"},{postalCode:"4719",placeName:"Ramiswil",cantonCode:"SO"},{postalCode:"3253",placeName:"Schnottwil",cantonCode:"SO"},{postalCode:"3254",placeName:"Messen",cantonCode:"SO"},{postalCode:"3254",placeName:"Balm b. Messen",cantonCode:"SO"},{postalCode:"3307",placeName:"Brunnenthal",cantonCode:"SO"},{postalCode:"4571",placeName:"Lüterkofen",cantonCode:"SO"},{postalCode:"4571",placeName:"Ichertswil",cantonCode:"SO"},{postalCode:"4574",placeName:"Nennigkofen",cantonCode:"SO"},{postalCode:"4574",placeName:"Lüsslingen",cantonCode:"SO"},{postalCode:"4576",placeName:"Tscheppach",cantonCode:"SO"},{postalCode:"4577",placeName:"Hessigkofen",cantonCode:"SO"},{postalCode:"4578",placeName:"Bibern SO",cantonCode:"SO"},{postalCode:"4579",placeName:"Gossliwil",cantonCode:"SO"},{postalCode:"4581",placeName:"Küttigkofen",cantonCode:"SO"},{postalCode:"4582",placeName:"Brügglen",cantonCode:"SO"},{postalCode:"4583",placeName:"Aetigkofen",cantonCode:"SO"},{postalCode:"4583",placeName:"Mühledorf SO",cantonCode:"SO"},{postalCode:"4584",placeName:"Gächliwil",cantonCode:"SO"},{postalCode:"4584",placeName:"Lüterswil",cantonCode:"SO"},{postalCode:"4585",placeName:"Biezwil",cantonCode:"SO"},{postalCode:"4586",placeName:"Kyburg-Buchegg",cantonCode:"SO"},{postalCode:"4587",placeName:"Aetingen",cantonCode:"SO"},{postalCode:"4588",placeName:"Unterramsern",cantonCode:"SO"},{postalCode:"4588",placeName:"Oberramsern",cantonCode:"SO"},{postalCode:"4588",placeName:"Brittern",cantonCode:"SO"},{postalCode:"4108",placeName:"Witterswil",cantonCode:"SO"},{postalCode:"4112",placeName:"Bättwil-Flüh",cantonCode:"SO"},{postalCode:"4112",placeName:"Flüh",cantonCode:"SO"},{postalCode:"4112",placeName:"Bättwil",cantonCode:"SO"},{postalCode:"4114",placeName:"Hofstetten SO",cantonCode:"SO"},{postalCode:"4115",placeName:"Mariastein",cantonCode:"SO"},{postalCode:"4116",placeName:"Metzerlen",cantonCode:"SO"},{postalCode:"4118",placeName:"Rodersdorf",cantonCode:"SO"},{postalCode:"4143",placeName:"Dornach",cantonCode:"SO"},{postalCode:"4145",placeName:"Gempen",cantonCode:"SO"},{postalCode:"4146",placeName:"Hochwald",cantonCode:"SO"},{postalCode:"4206",placeName:"Seewen SO",cantonCode:"SO"},{postalCode:"4412",placeName:"Nuglar",cantonCode:"SO"},{postalCode:"4413",placeName:"Büren SO",cantonCode:"SO"},{postalCode:"4421",placeName:"St. Pantaleon",cantonCode:"SO"},{postalCode:"4468",placeName:"Kienberg",cantonCode:"SO"},{postalCode:"4632",placeName:"Trimbach",cantonCode:"SO"},{postalCode:"4633",placeName:"Hauenstein",cantonCode:"SO"},{postalCode:"4634",placeName:"Wisen SO",cantonCode:"SO"},{postalCode:"4652",placeName:"Winznau",cantonCode:"SO"},{postalCode:"4653",placeName:"Obergösgen",cantonCode:"SO"},{postalCode:"4654",placeName:"Lostorf",cantonCode:"SO"},{postalCode:"4655",placeName:"Rohr b. Olten",cantonCode:"SO"},{postalCode:"4655",placeName:"Stüsslingen",cantonCode:"SO"},{postalCode:"5013",placeName:"Niedergösgen",cantonCode:"SO"},{postalCode:"5015",placeName:"Erlinsbach SO",cantonCode:"SO"},{postalCode:"4528",placeName:"Zuchwil",cantonCode:"SO"},{postalCode:"4542",placeName:"Luterbach",cantonCode:"SO"},{postalCode:"4543",placeName:"Deitingen",cantonCode:"SO"},{postalCode:"4552",placeName:"Derendingen",cantonCode:"SO"},{postalCode:"4553",placeName:"Subingen",cantonCode:"SO"},{postalCode:"4554",placeName:"Hüniken",cantonCode:"SO"},{postalCode:"4554",placeName:"Etziken",cantonCode:"SO"},{postalCode:"4556",placeName:"Steinhof SO",cantonCode:"SO"},{postalCode:"4556",placeName:"Aeschi SO",cantonCode:"SO"},{postalCode:"4556",placeName:"Burgäschi",cantonCode:"SO"},{postalCode:"4556",placeName:"Bolken",cantonCode:"SO"},{postalCode:"4557",placeName:"Horriwil",cantonCode:"SO"},{postalCode:"4558",placeName:"Heinrichswil",cantonCode:"SO"},{postalCode:"4558",placeName:"Hersiwil",cantonCode:"SO"},{postalCode:"4558",placeName:"Winistorf",cantonCode:"SO"},{postalCode:"4562",placeName:"Biberist",cantonCode:"SO"},{postalCode:"4563",placeName:"Gerlafingen",cantonCode:"SO"},{postalCode:"4564",placeName:"Obergerlafingen",cantonCode:"SO"},{postalCode:"4565",placeName:"Recherswil",cantonCode:"SO"},{postalCode:"4566",placeName:"Kriegstetten",cantonCode:"SO"},{postalCode:"4566",placeName:"Halten",cantonCode:"SO"},{postalCode:"4566",placeName:"Oekingen",cantonCode:"SO"},{postalCode:"4573",placeName:"Lohn-Ammannsegg",cantonCode:"SO"},{postalCode:"2540",placeName:"Grenchen 1",cantonCode:"SO"},{postalCode:"2540",placeName:"Grenchen",cantonCode:"SO"},{postalCode:"2544",placeName:"Bettlach",cantonCode:"SO"},{postalCode:"2545",placeName:"Selzach",cantonCode:"SO"},{postalCode:"4512",placeName:"Bellach",cantonCode:"SO"},{postalCode:"4513",placeName:"Langendorf",cantonCode:"SO"},{postalCode:"4514",placeName:"Lommiswil",cantonCode:"SO"},{postalCode:"4515",placeName:"Oberdorf SO",cantonCode:"SO"},{postalCode:"4515",placeName:"Weissenstein b. Solothurn",cantonCode:"SO"},{postalCode:"4522",placeName:"Rüttenen",cantonCode:"SO"},{postalCode:"4523",placeName:"Niederwil SO",cantonCode:"SO"},{postalCode:"4524",placeName:"Oberbalmberg",cantonCode:"SO"},{postalCode:"4524",placeName:"Günsberg",cantonCode:"SO"},{postalCode:"4524",placeName:"Balmberg",cantonCode:"SO"},{postalCode:"4525",placeName:"Balm b. Günsberg",cantonCode:"SO"},{postalCode:"4532",placeName:"Feldbrunnen",cantonCode:"SO"},{postalCode:"4533",placeName:"Riedholz",cantonCode:"SO"},{postalCode:"4534",placeName:"Flumenthal",cantonCode:"SO"},{postalCode:"4535",placeName:"Hubersdorf",cantonCode:"SO"},{postalCode:"4535",placeName:"Kammersrohr",cantonCode:"SO"},{postalCode:"4600",placeName:"Olten",cantonCode:"SO"},{postalCode:"4601",placeName:"Olten 1 Fächer",cantonCode:"SO"},{postalCode:"4605",placeName:"Olten",cantonCode:"SO"},{postalCode:"4609",placeName:"Olten Sonderdienste",cantonCode:"SO"},{postalCode:"4609",placeName:"Olten",cantonCode:"SO"},{postalCode:"4612",placeName:"Wangen b. Olten",cantonCode:"SO"},{postalCode:"4613",placeName:"Rickenbach SO",cantonCode:"SO"},{postalCode:"4614",placeName:"Hägendorf",cantonCode:"SO"},{postalCode:"4615",placeName:"Allerheiligenberg",cantonCode:"SO"},{postalCode:"4616",placeName:"Kappel SO",cantonCode:"SO"},{postalCode:"4617",placeName:"Gunzgen",cantonCode:"SO"},{postalCode:"4618",placeName:"Boningen",cantonCode:"SO"},{postalCode:"4629",placeName:"Fulenbach",cantonCode:"SO"},{postalCode:"4656",placeName:"Starrkirch-Wil",cantonCode:"SO"},{postalCode:"4657",placeName:"Dulliken",cantonCode:"SO"},{postalCode:"4658",placeName:"Däniken SO",cantonCode:"SO"},{postalCode:"5012",placeName:"Schönenwerd",cantonCode:"SO"},{postalCode:"5012",placeName:"Wöschnau",cantonCode:"SO"},{postalCode:"5012",placeName:"Eppenberg",cantonCode:"SO"},{postalCode:"5014",placeName:"Gretzenbach",cantonCode:"SO"},{postalCode:"5746",placeName:"Walterswil SO",cantonCode:"SO"},{postalCode:"4500",placeName:"Solothurn",cantonCode:"SO"},{postalCode:"4501",placeName:"Solothurn",cantonCode:"SO"},{postalCode:"4502",placeName:"Solothurn",cantonCode:"SO"},{postalCode:"4503",placeName:"Solothurn",cantonCode:"SO"},{postalCode:"4509",placeName:"Solothurn",cantonCode:"SO"},{postalCode:"4204",placeName:"Himmelried",cantonCode:"SO"},{postalCode:"4208",placeName:"Nunningen",cantonCode:"SO"},{postalCode:"4226",placeName:"Breitenbach",cantonCode:"SO"},{postalCode:"4227",placeName:"Büsserach",cantonCode:"SO"},{postalCode:"4228",placeName:"Erschwil",cantonCode:"SO"},{postalCode:"4229",placeName:"Beinwil SO",cantonCode:"SO"},{postalCode:"4232",placeName:"Fehren",cantonCode:"SO"},{postalCode:"4233",placeName:"Meltingen",cantonCode:"SO"},{postalCode:"4234",placeName:"Zullwil",cantonCode:"SO"},{postalCode:"4245",placeName:"Kleinlützel",cantonCode:"SO"},{postalCode:"4247",placeName:"Grindel",cantonCode:"SO"},{postalCode:"4252",placeName:"Bärschwil",cantonCode:"SO"},{postalCode:"4252",placeName:"Bärschwil Dorf",cantonCode:"SO"},{postalCode:"8836",placeName:"Bennau",cantonCode:"SZ"},{postalCode:"8840",placeName:"Einsiedeln",cantonCode:"SZ"},{postalCode:"8840",placeName:"Trachslau",cantonCode:"SZ"},{postalCode:"8841",placeName:"Gross",cantonCode:"SZ"},{postalCode:"8844",placeName:"Euthal",cantonCode:"SZ"},{postalCode:"8846",placeName:"Willerzell",cantonCode:"SZ"},{postalCode:"8847",placeName:"Egg SZ",cantonCode:"SZ"},{postalCode:"6410",placeName:"Rigi Scheidegg",cantonCode:"SZ"},{postalCode:"6442",placeName:"Gersau",cantonCode:"SZ"},{postalCode:"8640",placeName:"Hurden",cantonCode:"SZ"},{postalCode:"8806",placeName:"Bäch SZ",cantonCode:"SZ"},{postalCode:"8807",placeName:"Freienbach",cantonCode:"SZ"},{postalCode:"8808",placeName:"Pfäffikon SZ",cantonCode:"SZ"},{postalCode:"8832",placeName:"Wilen b. Wollerau",cantonCode:"SZ"},{postalCode:"8832",placeName:"Wollerau",cantonCode:"SZ"},{postalCode:"8832",placeName:"Wollerau",cantonCode:"SZ"},{postalCode:"8834",placeName:"Schindellegi",cantonCode:"SZ"},{postalCode:"8835",placeName:"Feusisberg",cantonCode:"SZ"},{postalCode:"6402",placeName:"Merlischachen",cantonCode:"SZ"},{postalCode:"6403",placeName:"Küssnacht am Rigi",cantonCode:"SZ"},{postalCode:"6405",placeName:"Immensee",cantonCode:"SZ"},{postalCode:"8852",placeName:"Altendorf",cantonCode:"SZ"},{postalCode:"8853",placeName:"Lachen SZ",cantonCode:"SZ"},{postalCode:"8854",placeName:"Siebnen",cantonCode:"SZ"},{postalCode:"8854",placeName:"Galgenen",cantonCode:"SZ"},{postalCode:"8855",placeName:"Wangen SZ",cantonCode:"SZ"},{postalCode:"8856",placeName:"Tuggen",cantonCode:"SZ"},{postalCode:"8857",placeName:"Vorderthal",cantonCode:"SZ"},{postalCode:"8858",placeName:"Innerthal",cantonCode:"SZ"},{postalCode:"8862",placeName:"Schübelbach",cantonCode:"SZ"},{postalCode:"8863",placeName:"Buttikon SZ",cantonCode:"SZ"},{postalCode:"8864",placeName:"Reichenburg",cantonCode:"SZ"},{postalCode:"6410",placeName:"Rigi Klösterli",cantonCode:"SZ"},{postalCode:"6410",placeName:"Goldau",cantonCode:"SZ"},{postalCode:"6410",placeName:"Rigi Kulm",cantonCode:"SZ"},{postalCode:"6410",placeName:"Rigi Staffel",cantonCode:"SZ"},{postalCode:"6414",placeName:"Oberarth",cantonCode:"SZ"},{postalCode:"6415",placeName:"Arth",cantonCode:"SZ"},{postalCode:"6416",placeName:"Steinerberg",cantonCode:"SZ"},{postalCode:"6417",placeName:"Sattel",cantonCode:"SZ"},{postalCode:"6418",placeName:"Rothenthurm",cantonCode:"SZ"},{postalCode:"6422",placeName:"Steinen",cantonCode:"SZ"},{postalCode:"6423",placeName:"Seewen SZ",cantonCode:"SZ"},{postalCode:"6424",placeName:"Lauerz",cantonCode:"SZ"},{postalCode:"6430",placeName:"Schwyz",cantonCode:"SZ"},{postalCode:"6431",placeName:"Schwyz",cantonCode:"SZ"},{postalCode:"6432",placeName:"Rickenbach b. Schwyz",cantonCode:"SZ"},{postalCode:"6433",placeName:"Stoos SZ",cantonCode:"SZ"},{postalCode:"6434",placeName:"Illgau",cantonCode:"SZ"},{postalCode:"6436",placeName:"Bisisthal",cantonCode:"SZ"},{postalCode:"6436",placeName:"Muotathal",cantonCode:"SZ"},{postalCode:"6436",placeName:"Ried (Muotathal)",cantonCode:"SZ"},{postalCode:"6438",placeName:"Ibach",cantonCode:"SZ"},{postalCode:"6440",placeName:"Brunnen",cantonCode:"SZ"},{postalCode:"6443",placeName:"Morschach",cantonCode:"SZ"},{postalCode:"6452",placeName:"Riemenstalden",cantonCode:"SZ"},{postalCode:"8842",placeName:"Unteriberg",cantonCode:"SZ"},{postalCode:"8843",placeName:"Oberiberg",cantonCode:"SZ"},{postalCode:"8845",placeName:"Studen SZ",cantonCode:"SZ"},{postalCode:"8849",placeName:"Alpthal",cantonCode:"SZ"},{postalCode:"8580",placeName:"Hefenhofen",cantonCode:"TG"},{postalCode:"8580",placeName:"Biessenhofen",cantonCode:"TG"},{postalCode:"8580",placeName:"Hagenwil b. Amriswil",cantonCode:"TG"},{postalCode:"8580",placeName:"Amriswil",cantonCode:"TG"},{postalCode:"8580",placeName:"Sommeri",cantonCode:"TG"},{postalCode:"8581",placeName:"Schocherswil",cantonCode:"TG"},{postalCode:"8582",placeName:"Dozwil",cantonCode:"TG"},{postalCode:"8587",placeName:"Oberaach",cantonCode:"TG"},{postalCode:"8590",placeName:"Romanshorn",cantonCode:"TG"},{postalCode:"8592",placeName:"Uttwil",cantonCode:"TG"},{postalCode:"8593",placeName:"Kesswil",cantonCode:"TG"},{postalCode:"8599",placeName:"Salmsach",cantonCode:"TG"},{postalCode:"9306",placeName:"Freidorf TG",cantonCode:"TG"},{postalCode:"9314",placeName:"Steinebrunn",cantonCode:"TG"},{postalCode:"9315",placeName:"Winden",cantonCode:"TG"},{postalCode:"9315",placeName:"Neukirch (Egnach)",cantonCode:"TG"},{postalCode:"9320",placeName:"Arbon",cantonCode:"TG"},{postalCode:"9320",placeName:"Stachen",cantonCode:"TG"},{postalCode:"9320",placeName:"Frasnacht",cantonCode:"TG"},{postalCode:"9322",placeName:"Egnach",cantonCode:"TG"},{postalCode:"9325",placeName:"Roggwil TG",cantonCode:"TG"},{postalCode:"9326",placeName:"Horn",cantonCode:"TG"},{postalCode:"8252",placeName:"Schlatt TG",cantonCode:"TG"},{postalCode:"8253",placeName:"Diessenhofen",cantonCode:"TG"},{postalCode:"8253",placeName:"Willisdorf",cantonCode:"TG"},{postalCode:"8254",placeName:"Basadingen",cantonCode:"TG"},{postalCode:"8255",placeName:"Schlattingen",cantonCode:"TG"},{postalCode:"8259",placeName:"Wagenhausen",cantonCode:"TG"},{postalCode:"8259",placeName:"Rheinklingen",cantonCode:"TG"},{postalCode:"8259",placeName:"Etzwilen",cantonCode:"TG"},{postalCode:"8259",placeName:"Kaltenbach",cantonCode:"TG"},{postalCode:"8264",placeName:"Eschenz",cantonCode:"TG"},{postalCode:"8265",placeName:"Mammern",cantonCode:"TG"},{postalCode:"8266",placeName:"Steckborn",cantonCode:"TG"},{postalCode:"8267",placeName:"Berlingen",cantonCode:"TG"},{postalCode:"8500",placeName:"Gerlikon",cantonCode:"TG"},{postalCode:"8500",placeName:"Frauenfeld",cantonCode:"TG"},{postalCode:"8501",placeName:"Frauenfeld",cantonCode:"TG"},{postalCode:"8502",placeName:"Frauenfeld",cantonCode:"TG"},{postalCode:"8503",placeName:"Frauenfeld",cantonCode:"TG"},{postalCode:"8505",placeName:"Pfyn",cantonCode:"TG"},{postalCode:"8505",placeName:"Dettighofen",cantonCode:"TG"},{postalCode:"8506",placeName:"Lanzenneunforn",cantonCode:"TG"},{postalCode:"8507",placeName:"Hörhausen",cantonCode:"TG"},{postalCode:"8508",placeName:"Homburg",cantonCode:"TG"},{postalCode:"8509",placeName:"Frauenfeld",cantonCode:"TG"},{postalCode:"8510",placeName:"Frauenfeld Kant. Verwaltung",cantonCode:"TG"},{postalCode:"8510",placeName:"Frauenfeld",cantonCode:"TG"},{postalCode:"8512",placeName:"Thundorf",cantonCode:"TG"},{postalCode:"8512",placeName:"Wetzikon TG",cantonCode:"TG"},{postalCode:"8512",placeName:"Lustdorf",cantonCode:"TG"},{postalCode:"8524",placeName:"Buch b. Frauenfeld",cantonCode:"TG"},{postalCode:"8524",placeName:"Uesslingen",cantonCode:"TG"},{postalCode:"8525",placeName:"Wilen b. Neunforn",cantonCode:"TG"},{postalCode:"8525",placeName:"Niederneunforn",cantonCode:"TG"},{postalCode:"8526",placeName:"Oberneunforn",cantonCode:"TG"},{postalCode:"8532",placeName:"Weiningen TG",cantonCode:"TG"},{postalCode:"8532",placeName:"Warth",cantonCode:"TG"},{postalCode:"8535",placeName:"Herdern",cantonCode:"TG"},{postalCode:"8536",placeName:"Hüttwilen",cantonCode:"TG"},{postalCode:"8537",placeName:"Uerschhausen",cantonCode:"TG"},{postalCode:"8537",placeName:"Nussbaumen TG",cantonCode:"TG"},{postalCode:"8546",placeName:"Kefikon TG",cantonCode:"TG"},{postalCode:"8546",placeName:"Islikon",cantonCode:"TG"},{postalCode:"8547",placeName:"Gachnang",cantonCode:"TG"},{postalCode:"8552",placeName:"Felben-Wellhausen",cantonCode:"TG"},{postalCode:"8553",placeName:"Eschikofen",cantonCode:"TG"},{postalCode:"8553",placeName:"Hüttlingen",cantonCode:"TG"},{postalCode:"8553",placeName:"Mettendorf TG",cantonCode:"TG"},{postalCode:"8553",placeName:"Harenwilen",cantonCode:"TG"},{postalCode:"8555",placeName:"Müllheim Dorf",cantonCode:"TG"},{postalCode:"9507",placeName:"Stettfurt",cantonCode:"TG"},{postalCode:"9548",placeName:"Matzingen",cantonCode:"TG"},{postalCode:"8268",placeName:"Mannenbach-Salenstein",cantonCode:"TG"},{postalCode:"8268",placeName:"Salenstein",cantonCode:"TG"},{postalCode:"8269",placeName:"Fruthwilen",cantonCode:"TG"},{postalCode:"8272",placeName:"Ermatingen",cantonCode:"TG"},{postalCode:"8273",placeName:"Triboltingen",cantonCode:"TG"},{postalCode:"8274",placeName:"Gottlieben",cantonCode:"TG"},{postalCode:"8274",placeName:"Tägerwilen",cantonCode:"TG"},{postalCode:"8280",placeName:"Kreuzlingen",cantonCode:"TG"},{postalCode:"8280",placeName:"Kreuzlingen 1",cantonCode:"TG"},{postalCode:"8280",placeName:"Kreuzlingen 3",cantonCode:"TG"},{postalCode:"8285",placeName:"Kreuzlingen Ifolor",cantonCode:"TG"},{postalCode:"8285",placeName:"Kreuzlingen Ifolor AG",cantonCode:"TG"},{postalCode:"8558",placeName:"Raperswilen",cantonCode:"TG"},{postalCode:"8564",placeName:"Engwilen",cantonCode:"TG"},{postalCode:"8564",placeName:"Sonterswil",cantonCode:"TG"},{postalCode:"8564",placeName:"Gunterswilen",cantonCode:"TG"},{postalCode:"8564",placeName:"Hefenhausen",cantonCode:"TG"},{postalCode:"8564",placeName:"Lipperswil",cantonCode:"TG"},{postalCode:"8564",placeName:"Hattenhausen",cantonCode:"TG"},{postalCode:"8564",placeName:"Wäldi",cantonCode:"TG"},{postalCode:"8565",placeName:"Hugelshofen",cantonCode:"TG"},{postalCode:"8566",placeName:"Ellighausen",cantonCode:"TG"},{postalCode:"8566",placeName:"Neuwilen",cantonCode:"TG"},{postalCode:"8566",placeName:"Lippoldswilen",cantonCode:"TG"},{postalCode:"8566",placeName:"Dotnacht",cantonCode:"TG"},{postalCode:"8573",placeName:"Siegershausen",cantonCode:"TG"},{postalCode:"8573",placeName:"Alterswilen",cantonCode:"TG"},{postalCode:"8573",placeName:"Altishausen",cantonCode:"TG"},{postalCode:"8574",placeName:"Illighausen",cantonCode:"TG"},{postalCode:"8574",placeName:"Lengwil",cantonCode:"TG"},{postalCode:"8574",placeName:"Lengwil",cantonCode:"TG"},{postalCode:"8574",placeName:"Dettighofen (Lengwil)",cantonCode:"TG"},{postalCode:"8574",placeName:"Oberhofen TG",cantonCode:"TG"},{postalCode:"8585",placeName:"Langrickenbach",cantonCode:"TG"},{postalCode:"8585",placeName:"Schönenbaumgarten",cantonCode:"TG"},{postalCode:"8585",placeName:"Zuben",cantonCode:"TG"},{postalCode:"8585",placeName:"Herrenhof",cantonCode:"TG"},{postalCode:"8594",placeName:"Güttingen",cantonCode:"TG"},{postalCode:"8595",placeName:"Altnau",cantonCode:"TG"},{postalCode:"8596",placeName:"Scherzingen",cantonCode:"TG"},{postalCode:"8596",placeName:"Münsterlingen",cantonCode:"TG"},{postalCode:"8597",placeName:"Landschlacht",cantonCode:"TG"},{postalCode:"8598",placeName:"Bottighofen",cantonCode:"TG"},{postalCode:"8355",placeName:"Aadorf",cantonCode:"TG"},{postalCode:"8356",placeName:"Ettenhausen TG",cantonCode:"TG"},{postalCode:"8357",placeName:"Guntershausen b. Aadorf",cantonCode:"TG"},{postalCode:"8360",placeName:"Eschlikon TG",cantonCode:"TG"},{postalCode:"8360",placeName:"Wallenwil",cantonCode:"TG"},{postalCode:"8362",placeName:"Balterswil",cantonCode:"TG"},{postalCode:"8363",placeName:"Bichelsee",cantonCode:"TG"},{postalCode:"8370",placeName:"Sirnach",cantonCode:"TG"},{postalCode:"8371",placeName:"Busswil TG",cantonCode:"TG"},{postalCode:"8372",placeName:"Wiezikon b. Sirnach",cantonCode:"TG"},{postalCode:"8374",placeName:"Dussnang",cantonCode:"TG"},{postalCode:"8374",placeName:"Oberwangen TG",cantonCode:"TG"},{postalCode:"8376",placeName:"Fischingen",cantonCode:"TG"},{postalCode:"8376",placeName:"Au TG",cantonCode:"TG"},{postalCode:"8522",placeName:"Aawangen",cantonCode:"TG"},{postalCode:"8522",placeName:"Häuslenen",cantonCode:"TG"},{postalCode:"9502",placeName:"Braunau",cantonCode:"TG"},{postalCode:"9506",placeName:"Lommis",cantonCode:"TG"},{postalCode:"9508",placeName:"Weingarten-Kalthäusern",cantonCode:"TG"},{postalCode:"9532",placeName:"Rickenbach b. Wil",cantonCode:"TG"},{postalCode:"9535",placeName:"Wilen b. Wil",cantonCode:"TG"},{postalCode:"9542",placeName:"Münchwilen TG",cantonCode:"TG"},{postalCode:"9543",placeName:"St. Margarethen TG",cantonCode:"TG"},{postalCode:"9545",placeName:"Wängi",cantonCode:"TG"},{postalCode:"9546",placeName:"Tuttwil",cantonCode:"TG"},{postalCode:"9547",placeName:"Wittenwil",cantonCode:"TG"},{postalCode:"9553",placeName:"Bettwiesen",cantonCode:"TG"},{postalCode:"9554",placeName:"Tägerschen",cantonCode:"TG"},{postalCode:"9555",placeName:"Tobel",cantonCode:"TG"},{postalCode:"9573",placeName:"Littenheid",cantonCode:"TG"},{postalCode:"8514",placeName:"Amlikon-Bissegg",cantonCode:"TG"},{postalCode:"8554",placeName:"Bonau",cantonCode:"TG"},{postalCode:"8554",placeName:"Müllheim-Wigoltingen",cantonCode:"TG"},{postalCode:"8556",placeName:"Illhart",cantonCode:"TG"},{postalCode:"8556",placeName:"Lamperswil TG",cantonCode:"TG"},{postalCode:"8556",placeName:"Engwang",cantonCode:"TG"},{postalCode:"8556",placeName:"Wigoltingen",cantonCode:"TG"},{postalCode:"8560",placeName:"Märstetten",cantonCode:"TG"},{postalCode:"8561",placeName:"Ottoberg",cantonCode:"TG"},{postalCode:"8564",placeName:"Wagerswil",cantonCode:"TG"},{postalCode:"8570",placeName:"Weinfelden",cantonCode:"TG"},{postalCode:"8572",placeName:"Graltshausen",cantonCode:"TG"},{postalCode:"8572",placeName:"Andhausen",cantonCode:"TG"},{postalCode:"8572",placeName:"Guntershausen b. Berg",cantonCode:"TG"},{postalCode:"8572",placeName:"Berg TG",cantonCode:"TG"},{postalCode:"8572",placeName:"Berg TG",cantonCode:"TG"},{postalCode:"8575",placeName:"Bürglen TG",cantonCode:"TG"},{postalCode:"8575",placeName:"Istighofen",cantonCode:"TG"},{postalCode:"8576",placeName:"Mauren TG",cantonCode:"TG"},{postalCode:"8577",placeName:"Schönholzerswilen",cantonCode:"TG"},{postalCode:"8583",placeName:"Donzhausen",cantonCode:"TG"},{postalCode:"8583",placeName:"Sulgen",cantonCode:"TG"},{postalCode:"8583",placeName:"Götighofen",cantonCode:"TG"},{postalCode:"8584",placeName:"Opfershofen TG",cantonCode:"TG"},{postalCode:"8584",placeName:"Leimbach TG",cantonCode:"TG"},{postalCode:"8585",placeName:"Klarsreuti",cantonCode:"TG"},{postalCode:"8585",placeName:"Happerswil",cantonCode:"TG"},{postalCode:"8585",placeName:"Birwinken",cantonCode:"TG"},{postalCode:"8585",placeName:"Mattwil",cantonCode:"TG"},{postalCode:"8586",placeName:"Buchackern",cantonCode:"TG"},{postalCode:"8586",placeName:"Andwil TG",cantonCode:"TG"},{postalCode:"8586",placeName:"Ennetaach",cantonCode:"TG"},{postalCode:"8586",placeName:"Buch b. Kümmertshausen",cantonCode:"TG"},{postalCode:"8586",placeName:"Riedt b. Erlen",cantonCode:"TG"},{postalCode:"8586",placeName:"Engishofen",cantonCode:"TG"},{postalCode:"8586",placeName:"Kümmertshausen",cantonCode:"TG"},{postalCode:"8586",placeName:"Erlen",cantonCode:"TG"},{postalCode:"8588",placeName:"Zihlschlacht",cantonCode:"TG"},{postalCode:"8589",placeName:"Sitterdorf",cantonCode:"TG"},{postalCode:"9213",placeName:"Hauptwil",cantonCode:"TG"},{postalCode:"9214",placeName:"Kradolf",cantonCode:"TG"},{postalCode:"9215",placeName:"Buhwil",cantonCode:"TG"},{postalCode:"9215",placeName:"Schönenberg an der Thur",cantonCode:"TG"},{postalCode:"9216",placeName:"Hohentannen",cantonCode:"TG"},{postalCode:"9216",placeName:"Heldswil",cantonCode:"TG"},{postalCode:"9217",placeName:"Neukirch an der Thur",cantonCode:"TG"},{postalCode:"9220",placeName:"Bischofszell",cantonCode:"TG"},{postalCode:"9223",placeName:"Schweizersholz",cantonCode:"TG"},{postalCode:"9223",placeName:"Halden",cantonCode:"TG"},{postalCode:"9225",placeName:"Wilen (Gottshaus)",cantonCode:"TG"},{postalCode:"9225",placeName:"St. Pelagiberg",cantonCode:"TG"},{postalCode:"9503",placeName:"Lanterswil",cantonCode:"TG"},{postalCode:"9503",placeName:"Stehrenberg",cantonCode:"TG"},{postalCode:"9504",placeName:"Friltschen",cantonCode:"TG"},{postalCode:"9514",placeName:"Wuppenau",cantonCode:"TG"},{postalCode:"9515",placeName:"Hosenruck",cantonCode:"TG"},{postalCode:"9517",placeName:"Mettlen",cantonCode:"TG"},{postalCode:"9556",placeName:"Zezikon",cantonCode:"TG"},{postalCode:"9556",placeName:"Affeltrangen",cantonCode:"TG"},{postalCode:"9562",placeName:"Märwil",cantonCode:"TG"},{postalCode:"9562",placeName:"Buch b. Märwil",cantonCode:"TG"},{postalCode:"9565",placeName:"Schmidshof",cantonCode:"TG"},{postalCode:"9565",placeName:"Rothenhausen",cantonCode:"TG"},{postalCode:"9565",placeName:"Oberbussnang",cantonCode:"TG"},{postalCode:"9565",placeName:"Oppikon",cantonCode:"TG"},{postalCode:"9565",placeName:"Bussnang",cantonCode:"TG"},{postalCode:"6500",placeName:"Bellinzona 4",cantonCode:"TI"},{postalCode:"6500",placeName:"Bellinzona",cantonCode:"TI"},{postalCode:"6500",placeName:"Bellinzona 2",cantonCode:"TI"},{postalCode:"6500",placeName:"Bellinzona 5",cantonCode:"TI"},{postalCode:"6500",placeName:"Bellinzona VZ",cantonCode:"TI"},{postalCode:"6501",placeName:"Bellinzona",cantonCode:"TI"},{postalCode:"6503",placeName:"Bellinzona",cantonCode:"TI"},{postalCode:"6512",placeName:"Giubiasco",cantonCode:"TI"},{postalCode:"6513",placeName:"Monte Carasso",cantonCode:"TI"},{postalCode:"6514",placeName:"Sementina",cantonCode:"TI"},{postalCode:"6515",placeName:"Gudo",cantonCode:"TI"},{postalCode:"6517",placeName:"Arbedo",cantonCode:"TI"},{postalCode:"6518",placeName:"Gorduno",cantonCode:"TI"},{postalCode:"6523",placeName:"Preonzo",cantonCode:"TI"},{postalCode:"6524",placeName:"Moleno",cantonCode:"TI"},{postalCode:"6525",placeName:"Gnosca",cantonCode:"TI"},{postalCode:"6528",placeName:"Camorino",cantonCode:"TI"},{postalCode:"6532",placeName:"Castione",cantonCode:"TI"},{postalCode:"6533",placeName:"Lumino",cantonCode:"TI"},{postalCode:"6582",placeName:"Pianezzo",cantonCode:"TI"},{postalCode:"6583",placeName:"S. Antonio (Val Morobbia)",cantonCode:"TI"},{postalCode:"6584",placeName:"Carena",cantonCode:"TI"},{postalCode:"6592",placeName:"S. Antonino",cantonCode:"TI"},{postalCode:"6593",placeName:"Cadenazzo",cantonCode:"TI"},{postalCode:"6599",placeName:"Robasacco",cantonCode:"TI"},{postalCode:"6702",placeName:"Claro",cantonCode:"TI"},{postalCode:"6809",placeName:"Medeglia",cantonCode:"TI"},{postalCode:"6810",placeName:"Isone",cantonCode:"TI"},{postalCode:"6713",placeName:"Malvaglia",cantonCode:"TI"},{postalCode:"6714",placeName:"Semione",cantonCode:"TI"},{postalCode:"6715",placeName:"Dongio",cantonCode:"TI"},{postalCode:"6716",placeName:"Acquarossa",cantonCode:"TI"},{postalCode:"6716",placeName:"Leontica",cantonCode:"TI"},{postalCode:"6716",placeName:"Lottigna",cantonCode:"TI"},{postalCode:"6717",placeName:"Dangio",cantonCode:"TI"},{postalCode:"6717",placeName:"Torre",cantonCode:"TI"},{postalCode:"6718",placeName:"Camperio",cantonCode:"TI"},{postalCode:"6718",placeName:"Olivone",cantonCode:"TI"},{postalCode:"6719",placeName:"Aquila",cantonCode:"TI"},{postalCode:"6719",placeName:"Aquila",cantonCode:"TI"},{postalCode:"6719",placeName:"Aquila",cantonCode:"TI"},{postalCode:"6720",placeName:"Ghirone",cantonCode:"TI"},{postalCode:"6720",placeName:"Campo (Blenio)",cantonCode:"TI"},{postalCode:"6721",placeName:"Motto (Blenio)",cantonCode:"TI"},{postalCode:"6721",placeName:"Ludiano",cantonCode:"TI"},{postalCode:"6722",placeName:"Corzoneso",cantonCode:"TI"},{postalCode:"6723",placeName:"Prugiasco",cantonCode:"TI"},{postalCode:"6723",placeName:"Castro",cantonCode:"TI"},{postalCode:"6723",placeName:"Marolta",cantonCode:"TI"},{postalCode:"6724",placeName:"Largario",cantonCode:"TI"},{postalCode:"6724",placeName:"Ponto Valentino",cantonCode:"TI"},{postalCode:"6742",placeName:"Pollegio",cantonCode:"TI"},{postalCode:"6743",placeName:"Bodio TI",cantonCode:"TI"},{postalCode:"6744",placeName:"Personico",cantonCode:"TI"},{postalCode:"6745",placeName:"Giornico",cantonCode:"TI"},{postalCode:"6746",placeName:"Calonico",cantonCode:"TI"},{postalCode:"6746",placeName:"Lavorgo",cantonCode:"TI"},{postalCode:"6746",placeName:"Nivo",cantonCode:"TI"},{postalCode:"6747",placeName:"Chironico",cantonCode:"TI"},{postalCode:"6748",placeName:"Anzonico",cantonCode:"TI"},{postalCode:"6749",placeName:"Sobrio",cantonCode:"TI"},{postalCode:"6749",placeName:"Cavagnago",cantonCode:"TI"},{postalCode:"6760",placeName:"Calpiogna",cantonCode:"TI"},{postalCode:"6760",placeName:"Campello",cantonCode:"TI"},{postalCode:"6760",placeName:"Rossura",cantonCode:"TI"},{postalCode:"6760",placeName:"Faido",cantonCode:"TI"},{postalCode:"6760",placeName:"Carì",cantonCode:"TI"},{postalCode:"6760",placeName:"Molare",cantonCode:"TI"},{postalCode:"6763",placeName:"Mairengo",cantonCode:"TI"},{postalCode:"6763",placeName:"Osco",cantonCode:"TI"},{postalCode:"6764",placeName:"Chiggiogna",cantonCode:"TI"},{postalCode:"6764",placeName:"Chiggiogna",cantonCode:"TI"},{postalCode:"6772",placeName:"Rodi-Fiesso",cantonCode:"TI"},{postalCode:"6773",placeName:"Prato (Leventina)",cantonCode:"TI"},{postalCode:"6774",placeName:"Dalpe",cantonCode:"TI"},{postalCode:"6775",placeName:"Ambrì",cantonCode:"TI"},{postalCode:"6776",placeName:"Piotta",cantonCode:"TI"},{postalCode:"6777",placeName:"Varenzo",cantonCode:"TI"},{postalCode:"6777",placeName:"Quinto",cantonCode:"TI"},{postalCode:"6780",placeName:"Madrano",cantonCode:"TI"},{postalCode:"6780",placeName:"Airolo",cantonCode:"TI"},{postalCode:"6781",placeName:"Bedretto",cantonCode:"TI"},{postalCode:"6781",placeName:"Villa Bedretto",cantonCode:"TI"},{postalCode:"6516",placeName:"Cugnasco",cantonCode:"TI"},{postalCode:"6571",placeName:"Indemini",cantonCode:"TI"},{postalCode:"6572",placeName:"Quartino",cantonCode:"TI"},{postalCode:"6573",placeName:"Magadino",cantonCode:"TI"},{postalCode:"6574",placeName:"Vira (Gambarogno)",cantonCode:"TI"},{postalCode:"6575",placeName:"S. Nazzaro",cantonCode:"TI"},{postalCode:"6575",placeName:"Vairano",cantonCode:"TI"},{postalCode:"6576",placeName:"Gerra (Gambarogno)",cantonCode:"TI"},{postalCode:"6577",placeName:"Ranzo",cantonCode:"TI"},{postalCode:"6578",placeName:"Caviano",cantonCode:"TI"},{postalCode:"6579",placeName:"Piazzogna",cantonCode:"TI"},{postalCode:"6594",placeName:"Contone",cantonCode:"TI"},{postalCode:"6595",placeName:"Riazzino",cantonCode:"TI"},{postalCode:"6596",placeName:"Gordola",cantonCode:"TI"},{postalCode:"6597",placeName:"Agarone",cantonCode:"TI"},{postalCode:"6598",placeName:"Tenero",cantonCode:"TI"},{postalCode:"6600",placeName:"Muralto",cantonCode:"TI"},{postalCode:"6600",placeName:"Locarno",cantonCode:"TI"},{postalCode:"6600",placeName:"Locarno",cantonCode:"TI"},{postalCode:"6600",placeName:"Solduno",cantonCode:"TI"},{postalCode:"6601",placeName:"Locarno",cantonCode:"TI"},{postalCode:"6602",placeName:"Muralto",cantonCode:"TI"},{postalCode:"6604",placeName:"Locarno",cantonCode:"TI"},{postalCode:"6605",placeName:"Locarno",cantonCode:"TI"},{postalCode:"6611",placeName:"Crana",cantonCode:"TI"},{postalCode:"6611",placeName:"Mosogno",cantonCode:"TI"},{postalCode:"6611",placeName:"Gresso",cantonCode:"TI"},{postalCode:"6612",placeName:"Ascona",cantonCode:"TI"},{postalCode:"6613",placeName:"Porto Ronco",cantonCode:"TI"},{postalCode:"6614",placeName:"Isole di Brissago",cantonCode:"TI"},{postalCode:"6614",placeName:"Brissago",cantonCode:"TI"},{postalCode:"6616",placeName:"Losone",cantonCode:"TI"},{postalCode:"6618",placeName:"Arcegno",cantonCode:"TI"},{postalCode:"6622",placeName:"Ronco sopra Ascona",cantonCode:"TI"},{postalCode:"6631",placeName:"Corippo",cantonCode:"TI"},{postalCode:"6632",placeName:"Vogorno",cantonCode:"TI"},{postalCode:"6633",placeName:"Lavertezzo",cantonCode:"TI"},{postalCode:"6634",placeName:"Brione (Verzasca)",cantonCode:"TI"},{postalCode:"6635",placeName:"Gerra (Verzasca)",cantonCode:"TI"},{postalCode:"6636",placeName:"Frasco",cantonCode:"TI"},{postalCode:"6637",placeName:"Sonogno",cantonCode:"TI"},{postalCode:"6644",placeName:"Orselina",cantonCode:"TI"},{postalCode:"6645",placeName:"Brione sopra Minusio",cantonCode:"TI"},{postalCode:"6646",placeName:"Contra",cantonCode:"TI"},{postalCode:"6647",placeName:"Mergoscia",cantonCode:"TI"},{postalCode:"6648",placeName:"Minusio",cantonCode:"TI"},{postalCode:"6652",placeName:"Tegna",cantonCode:"TI"},{postalCode:"6653",placeName:"Verscio",cantonCode:"TI"},{postalCode:"6654",placeName:"Cavigliano",cantonCode:"TI"},{postalCode:"6655",placeName:"Rasa",cantonCode:"TI"},{postalCode:"6655",placeName:"Intragna",cantonCode:"TI"},{postalCode:"6655",placeName:"Verdasio",cantonCode:"TI"},{postalCode:"6656",placeName:"Golino",cantonCode:"TI"},{postalCode:"6657",placeName:"Palagnedra",cantonCode:"TI"},{postalCode:"6658",placeName:"Borgnone",cantonCode:"TI"},{postalCode:"6659",placeName:"Camedo",cantonCode:"TI"},{postalCode:"6659",placeName:"Moneto",cantonCode:"TI"},{postalCode:"6661",placeName:"Berzona",cantonCode:"TI"},{postalCode:"6661",placeName:"Loco",cantonCode:"TI"},{postalCode:"6661",placeName:"Auressio",cantonCode:"TI"},{postalCode:"6662",placeName:"Russo",cantonCode:"TI"},{postalCode:"6663",placeName:"Spruga",cantonCode:"TI"},{postalCode:"6663",placeName:"Comologno",cantonCode:"TI"},{postalCode:"6664",placeName:"Vergeletto",cantonCode:"TI"},{postalCode:"6802",placeName:"Rivera",cantonCode:"TI"},{postalCode:"6803",placeName:"Camignolo",cantonCode:"TI"},{postalCode:"6804",placeName:"Bironico",cantonCode:"TI"},{postalCode:"6805",placeName:"Mezzovico",cantonCode:"TI"},{postalCode:"6805",placeName:"Mezzovico",cantonCode:"TI"},{postalCode:"6806",placeName:"Sigirino",cantonCode:"TI"},{postalCode:"6807",placeName:"Taverne",cantonCode:"TI"},{postalCode:"6807",placeName:"Taverne",cantonCode:"TI"},{postalCode:"6808",placeName:"Torricella",cantonCode:"TI"},{postalCode:"6809",placeName:"Medeglia",cantonCode:"TI"},{postalCode:"6814",placeName:"Cadempino",cantonCode:"TI"},{postalCode:"6814",placeName:"Lamone",cantonCode:"TI"},{postalCode:"6814",placeName:"Lamone-Cadempino",cantonCode:"TI"},{postalCode:"6815",placeName:"Melide",cantonCode:"TI"},{postalCode:"6816",placeName:"Bissone",cantonCode:"TI"},{postalCode:"6817",placeName:"Maroggia",cantonCode:"TI"},{postalCode:"6818",placeName:"Melano",cantonCode:"TI"},{postalCode:"6821",placeName:"Rovio",cantonCode:"TI"},{postalCode:"6822",placeName:"Arogno",cantonCode:"TI"},{postalCode:"6823",placeName:"Pugerna",cantonCode:"TI"},{postalCode:"6825",placeName:"Capolago",cantonCode:"TI"},{postalCode:"6827",placeName:"Brusino Arsizio",cantonCode:"TI"},{postalCode:"6867",placeName:"Serpiano",cantonCode:"TI"},{postalCode:"6900",placeName:"Paradiso",cantonCode:"TI"},{postalCode:"6900",placeName:"Lugano",cantonCode:"TI"},{postalCode:"6900",placeName:"Massagno",cantonCode:"TI"},{postalCode:"6901",placeName:"Lugano",cantonCode:"TI"},{postalCode:"6902",placeName:"Lugano 2 Caselle",cantonCode:"TI"},{postalCode:"6902",placeName:"Lugano 2 Paradiso Caselle",cantonCode:"TI"},{postalCode:"6903",placeName:"Lugano",cantonCode:"TI"},{postalCode:"6904",placeName:"Lugano 4 Caselle",cantonCode:"TI"},{postalCode:"6904",placeName:"Lugano 4 Molino Nuovo Casel",cantonCode:"TI"},{postalCode:"6906",placeName:"Lugano 6 Caselle",cantonCode:"TI"},{postalCode:"6906",placeName:"Lugano 6 Cassarate Caselle",cantonCode:"TI"},{postalCode:"6907",placeName:"Lugano 7 Caselle",cantonCode:"TI"},{postalCode:"6908",placeName:"Massagno Caselle",cantonCode:"TI"},{postalCode:"6912",placeName:"Pazzallo",cantonCode:"TI"},{postalCode:"6913",placeName:"Carabbia",cantonCode:"TI"},{postalCode:"6914",placeName:"Carona",cantonCode:"TI"},{postalCode:"6915",placeName:"Pambio-Noranco",cantonCode:"TI"},{postalCode:"6916",placeName:"Grancia",cantonCode:"TI"},{postalCode:"6917",placeName:"Barbengo",cantonCode:"TI"},{postalCode:"6918",placeName:"Figino",cantonCode:"TI"},{postalCode:"6919",placeName:"Carabietta",cantonCode:"TI"},{postalCode:"6921",placeName:"Vico Morcote",cantonCode:"TI"},{postalCode:"6922",placeName:"Morcote",cantonCode:"TI"},{postalCode:"6924",placeName:"Sorengo",cantonCode:"TI"},{postalCode:"6925",placeName:"Gentilino",cantonCode:"TI"},{postalCode:"6926",placeName:"Montagnola",cantonCode:"TI"},{postalCode:"6927",placeName:"Agra",cantonCode:"TI"},{postalCode:"6928",placeName:"Manno",cantonCode:"TI"},{postalCode:"6929",placeName:"Gravesano",cantonCode:"TI"},{postalCode:"6930",placeName:"Bedano",cantonCode:"TI"},{postalCode:"6932",placeName:"Breganzona",cantonCode:"TI"},{postalCode:"6933",placeName:"Muzzano",cantonCode:"TI"},{postalCode:"6934",placeName:"Bioggio",cantonCode:"TI"},{postalCode:"6935",placeName:"Bosco Luganese",cantonCode:"TI"},{postalCode:"6936",placeName:"Cademario",cantonCode:"TI"},{postalCode:"6937",placeName:"Breno",cantonCode:"TI"},{postalCode:"6938",placeName:"Fescoggia",cantonCode:"TI"},{postalCode:"6938",placeName:"Vezio",cantonCode:"TI"},{postalCode:"6939",placeName:"Mugena",cantonCode:"TI"},{postalCode:"6939",placeName:"Arosio-Mugena",cantonCode:"TI"},{postalCode:"6939",placeName:"Arosio",cantonCode:"TI"},{postalCode:"6942",placeName:"Savosa",cantonCode:"TI"},{postalCode:"6943",placeName:"Vezia",cantonCode:"TI"},{postalCode:"6944",placeName:"Cureglia",cantonCode:"TI"},{postalCode:"6945",placeName:"Origlio",cantonCode:"TI"},{postalCode:"6946",placeName:"Ponte Capriasca",cantonCode:"TI"},{postalCode:"6946",placeName:"Ponte Capriasca",cantonCode:"TI"},{postalCode:"6947",placeName:"Vaglio",cantonCode:"TI"},{postalCode:"6948",placeName:"Porza",cantonCode:"TI"},{postalCode:"6949",placeName:"Comano",cantonCode:"TI"},{postalCode:"6950",placeName:"Tesserete",cantonCode:"TI"},{postalCode:"6951",placeName:"Insone",cantonCode:"TI"},{postalCode:"6951",placeName:"Scareglia",cantonCode:"TI"},{postalCode:"6951",placeName:"Bogno",cantonCode:"TI"},{postalCode:"6951",placeName:"Cozzo",cantonCode:"TI"},{postalCode:"6951",placeName:"Signôra",cantonCode:"TI"},{postalCode:"6951",placeName:"Colla",cantonCode:"TI"},{postalCode:"6952",placeName:"Canobbio",cantonCode:"TI"},{postalCode:"6953",placeName:"Lugaggia",cantonCode:"TI"},{postalCode:"6954",placeName:"Sala Capriasca",cantonCode:"TI"},{postalCode:"6954",placeName:"Bigorio",cantonCode:"TI"},{postalCode:"6955",placeName:"Oggio",cantonCode:"TI"},{postalCode:"6955",placeName:"Cagiallo",cantonCode:"TI"},{postalCode:"6955",placeName:"Oggio",cantonCode:"TI"},{postalCode:"6956",placeName:"Lopagno",cantonCode:"TI"},{postalCode:"6957",placeName:"Roveredo TI",cantonCode:"TI"},{postalCode:"6958",placeName:"Corticiasca",cantonCode:"TI"},{postalCode:"6958",placeName:"Corticiasca",cantonCode:"TI"},{postalCode:"6958",placeName:"Bidogno",cantonCode:"TI"},{postalCode:"6959",placeName:"Piandera Paese",cantonCode:"TI"},{postalCode:"6959",placeName:"Cimadera",cantonCode:"TI"},{postalCode:"6959",placeName:"Piandera Paese",cantonCode:"TI"},{postalCode:"6959",placeName:"Curtina",cantonCode:"TI"},{postalCode:"6959",placeName:"Certara",cantonCode:"TI"},{postalCode:"6959",placeName:"Maglio di Colla",cantonCode:"TI"},{postalCode:"6960",placeName:"Odogno",cantonCode:"TI"},{postalCode:"6962",placeName:"Viganello",cantonCode:"TI"},{postalCode:"6963",placeName:"Cureggia",cantonCode:"TI"},{postalCode:"6963",placeName:"Pregassona",cantonCode:"TI"},{postalCode:"6964",placeName:"Davesco-Soragno",cantonCode:"TI"},{postalCode:"6965",placeName:"Cadro",cantonCode:"TI"},{postalCode:"6966",placeName:"Villa Luganese",cantonCode:"TI"},{postalCode:"6967",placeName:"Dino",cantonCode:"TI"},{postalCode:"6968",placeName:"Sonvico",cantonCode:"TI"},{postalCode:"6974",placeName:"Aldesago",cantonCode:"TI"},{postalCode:"6976",placeName:"Castagnola",cantonCode:"TI"},{postalCode:"6977",placeName:"Ruvigliana",cantonCode:"TI"},{postalCode:"6978",placeName:"Gandria",cantonCode:"TI"},{postalCode:"6979",placeName:"Brè sopra Lugano",cantonCode:"TI"},{postalCode:"6980",placeName:"Castelrotto",cantonCode:"TI"},{postalCode:"6981",placeName:"Beride di Bedigliora",cantonCode:"TI"},{postalCode:"6981",placeName:"Biogno-Beride",cantonCode:"TI"},{postalCode:"6981",placeName:"Bedigliora",cantonCode:"TI"},{postalCode:"6981",placeName:"Banco",cantonCode:"TI"},{postalCode:"6981",placeName:"Bedigliora",cantonCode:"TI"},{postalCode:"6981",placeName:"Bombinasco",cantonCode:"TI"},{postalCode:"6982",placeName:"Agno",cantonCode:"TI"},{postalCode:"6983",placeName:"Magliaso",cantonCode:"TI"},{postalCode:"6984",placeName:"Pura",cantonCode:"TI"},{postalCode:"6986",placeName:"Curio",cantonCode:"TI"},{postalCode:"6986",placeName:"Novaggio",cantonCode:"TI"},{postalCode:"6986",placeName:"Miglieglia",cantonCode:"TI"},{postalCode:"6987",placeName:"Caslano",cantonCode:"TI"},{postalCode:"6988",placeName:"Ponte Tresa",cantonCode:"TI"},{postalCode:"6989",placeName:"Purasca",cantonCode:"TI"},{postalCode:"6990",placeName:"Cassina d'Agno",cantonCode:"TI"},{postalCode:"6991",placeName:"Neggio",cantonCode:"TI"},{postalCode:"6992",placeName:"Cimo",cantonCode:"TI"},{postalCode:"6992",placeName:"Vernate",cantonCode:"TI"},{postalCode:"6993",placeName:"Iseo",cantonCode:"TI"},{postalCode:"6994",placeName:"Aranno",cantonCode:"TI"},{postalCode:"6995",placeName:"Molinazzo di Monteggio",cantonCode:"TI"},{postalCode:"6995",placeName:"Madonna del Piano",cantonCode:"TI"},{postalCode:"6997",placeName:"Sessa",cantonCode:"TI"},{postalCode:"6998",placeName:"Monteggio 2",cantonCode:"TI"},{postalCode:"6998",placeName:"Monteggio",cantonCode:"TI"},{postalCode:"6998",placeName:"Termine",cantonCode:"TI"},{postalCode:"6999",placeName:"Astano",cantonCode:"TI"},{postalCode:"6825",placeName:"Capolago",cantonCode:"TI"},{postalCode:"6826",placeName:"Riva San Vitale",cantonCode:"TI"},{postalCode:"6828",placeName:"Balerna",cantonCode:"TI"},{postalCode:"6830",placeName:"Chiasso 3",cantonCode:"TI"},{postalCode:"6830",placeName:"Chiasso 1",cantonCode:"TI"},{postalCode:"6830",placeName:"Chiasso",cantonCode:"TI"},{postalCode:"6832",placeName:"Seseglio",cantonCode:"TI"},{postalCode:"6832",placeName:"Pedrinate",cantonCode:"TI"},{postalCode:"6833",placeName:"Vacallo",cantonCode:"TI"},{postalCode:"6834",placeName:"Morbio Inferiore",cantonCode:"TI"},{postalCode:"6835",placeName:"Morbio Superiore",cantonCode:"TI"},{postalCode:"6836",placeName:"Serfontana",cantonCode:"TI"},{postalCode:"6837",placeName:"Bruzella",cantonCode:"TI"},{postalCode:"6837",placeName:"Caneggio",cantonCode:"TI"},{postalCode:"6838",placeName:"Muggio",cantonCode:"TI"},{postalCode:"6838",placeName:"Cabbio",cantonCode:"TI"},{postalCode:"6838",placeName:"Scudellate",cantonCode:"TI"},{postalCode:"6839",placeName:"Sagno",cantonCode:"TI"},{postalCode:"6850",placeName:"Mendrisio Stazione",cantonCode:"TI"},{postalCode:"6850",placeName:"Mendrisio",cantonCode:"TI"},{postalCode:"6850",placeName:"Mendrisio Borgo",cantonCode:"TI"},{postalCode:"6852",placeName:"Genestrerio",cantonCode:"TI"},{postalCode:"6853",placeName:"Ligornetto",cantonCode:"TI"},{postalCode:"6854",placeName:"S. Pietro",cantonCode:"TI"},{postalCode:"6855",placeName:"Stabio",cantonCode:"TI"},{postalCode:"6862",placeName:"Rancate",cantonCode:"TI"},{postalCode:"6863",placeName:"Besazio",cantonCode:"TI"},{postalCode:"6864",placeName:"Arzo",cantonCode:"TI"},{postalCode:"6865",placeName:"Tremona",cantonCode:"TI"},{postalCode:"6866",placeName:"Meride",cantonCode:"TI"},{postalCode:"6872",placeName:"Somazzo",cantonCode:"TI"},{postalCode:"6872",placeName:"Salorino",cantonCode:"TI"},{postalCode:"6873",placeName:"Corteglia",cantonCode:"TI"},{postalCode:"6874",placeName:"Castel San Pietro",cantonCode:"TI"},{postalCode:"6875",placeName:"Campora",cantonCode:"TI"},{postalCode:"6875",placeName:"Monte",cantonCode:"TI"},{postalCode:"6875",placeName:"Casima",cantonCode:"TI"},{postalCode:"6877",placeName:"Coldrerio",cantonCode:"TI"},{postalCode:"6883",placeName:"Novazzano",cantonCode:"TI"},{postalCode:"6526",placeName:"Prosito",cantonCode:"TI"},{postalCode:"6527",placeName:"Lodrino",cantonCode:"TI"},{postalCode:"6703",placeName:"Osogna",cantonCode:"TI"},{postalCode:"6705",placeName:"Cresciano",cantonCode:"TI"},{postalCode:"6707",placeName:"Iragna",cantonCode:"TI"},{postalCode:"6710",placeName:"Biasca",cantonCode:"TI"},{postalCode:"6710",placeName:"Biasca Stazione",cantonCode:"TI"},{postalCode:"6670",placeName:"Avegno",cantonCode:"TI"},{postalCode:"6672",placeName:"Gordevio",cantonCode:"TI"},{postalCode:"6673",placeName:"Maggia",cantonCode:"TI"},{postalCode:"6674",placeName:"Someo",cantonCode:"TI"},{postalCode:"6674",placeName:"Riveo",cantonCode:"TI"},{postalCode:"6675",placeName:"Cevio",cantonCode:"TI"},{postalCode:"6676",placeName:"Bignasco",cantonCode:"TI"},{postalCode:"6677",placeName:"Aurigeno",cantonCode:"TI"},{postalCode:"6677",placeName:"Moghegno",cantonCode:"TI"},{postalCode:"6678",placeName:"Lodano",cantonCode:"TI"},{postalCode:"6678",placeName:"Coglio",cantonCode:"TI"},{postalCode:"6678",placeName:"Giumaglio",cantonCode:"TI"},{postalCode:"6682",placeName:"Linescio",cantonCode:"TI"},{postalCode:"6683",placeName:"Niva (Vallemaggia)",cantonCode:"TI"},{postalCode:"6683",placeName:"Cerentino",cantonCode:"TI"},{postalCode:"6684",placeName:"Cimalmotto",cantonCode:"TI"},{postalCode:"6684",placeName:"Campo (Vallemaggia)",cantonCode:"TI"},{postalCode:"6685",placeName:"Bosco/Gurin",cantonCode:"TI"},{postalCode:"6690",placeName:"S. Carlo (Val Bavona)",cantonCode:"TI"},{postalCode:"6690",placeName:"Cavergno",cantonCode:"TI"},{postalCode:"6692",placeName:"Brontallo",cantonCode:"TI"},{postalCode:"6692",placeName:"Menzonio",cantonCode:"TI"},{postalCode:"6693",placeName:"Broglio",cantonCode:"TI"},{postalCode:"6694",placeName:"Prato-Sornico",cantonCode:"TI"},{postalCode:"6695",placeName:"Peccia",cantonCode:"TI"},{postalCode:"6695",placeName:"Piano di Peccia",cantonCode:"TI"},{postalCode:"6696",placeName:"Fusio",cantonCode:"TI"},{postalCode:"6377",placeName:"Seelisberg",cantonCode:"UR"},{postalCode:"6441",placeName:"Rütli",cantonCode:"UR"},{postalCode:"6452",placeName:"Sisikon",cantonCode:"UR"},{postalCode:"6454",placeName:"Flüelen",cantonCode:"UR"},{postalCode:"6460",placeName:"Altdorf UR 2",cantonCode:"UR"},{postalCode:"6460",placeName:"Altdorf UR",cantonCode:"UR"},{postalCode:"6460",placeName:"Altdorf UR 1",cantonCode:"UR"},{postalCode:"6461",placeName:"Isenthal",cantonCode:"UR"},{postalCode:"6462",placeName:"Seedorf UR",cantonCode:"UR"},{postalCode:"6463",placeName:"Bürglen UR",cantonCode:"UR"},{postalCode:"6464",placeName:"Spiringen",cantonCode:"UR"},{postalCode:"6465",placeName:"Unterschächen",cantonCode:"UR"},{postalCode:"6466",placeName:"Bauen",cantonCode:"UR"},{postalCode:"6467",placeName:"Schattdorf",cantonCode:"UR"},{postalCode:"6468",placeName:"Attinghausen",cantonCode:"UR"},{postalCode:"6469",placeName:"Haldi b. Schattdorf",cantonCode:"UR"},{postalCode:"6472",placeName:"Erstfeld",cantonCode:"UR"},{postalCode:"6473",placeName:"Silenen",cantonCode:"UR"},{postalCode:"6474",placeName:"Amsteg",cantonCode:"UR"},{postalCode:"6475",placeName:"Bristen",cantonCode:"UR"},{postalCode:"6476",placeName:"Intschi",cantonCode:"UR"},{postalCode:"6482",placeName:"Gurtnellen",cantonCode:"UR"},{postalCode:"6484",placeName:"Wassen UR",cantonCode:"UR"},{postalCode:"6485",placeName:"Meien",cantonCode:"UR"},{postalCode:"6487",placeName:"Göschenen",cantonCode:"UR"},{postalCode:"6490",placeName:"Andermatt",cantonCode:"UR"},{postalCode:"6491",placeName:"Realp",cantonCode:"UR"},{postalCode:"6493",placeName:"Hospental",cantonCode:"UR"},{postalCode:"8751",placeName:"Urnerboden",cantonCode:"UR"},{postalCode:"1844",placeName:"Villeneuve VD",cantonCode:"VD"},{postalCode:"1845",placeName:"Noville",cantonCode:"VD"},{postalCode:"1846",placeName:"Chessel",cantonCode:"VD"},{postalCode:"1847",placeName:"Rennaz",cantonCode:"VD"},{postalCode:"1852",placeName:"Roche VD",cantonCode:"VD"},{postalCode:"1853",placeName:"Yvorne",cantonCode:"VD"},{postalCode:"1854",placeName:"Leysin",cantonCode:"VD"},{postalCode:"1856",placeName:"Corbeyrier",cantonCode:"VD"},{postalCode:"1860",placeName:"Aigle",cantonCode:"VD"},{postalCode:"1862",placeName:"Les Mosses",cantonCode:"VD"},{postalCode:"1862",placeName:"La Comballaz",cantonCode:"VD"},{postalCode:"1863",placeName:"Le Sépey",cantonCode:"VD"},{postalCode:"1864",placeName:"Vers-l'Eglise",cantonCode:"VD"},{postalCode:"1865",placeName:"Les Diablerets",cantonCode:"VD"},{postalCode:"1866",placeName:"La Forclaz VD",cantonCode:"VD"},{postalCode:"1867",placeName:"Panex",cantonCode:"VD"},{postalCode:"1867",placeName:"Ollon VD",cantonCode:"VD"},{postalCode:"1867",placeName:"St-Triphon",cantonCode:"VD"},{postalCode:"1880",placeName:"Les Posses-sur-Bex",cantonCode:"VD"},{postalCode:"1880",placeName:"Fenalet-sur-Bex",cantonCode:"VD"},{postalCode:"1880",placeName:"Frenières-sur-Bex",cantonCode:"VD"},{postalCode:"1880",placeName:"Bex",cantonCode:"VD"},{postalCode:"1880",placeName:"Les Plans-sur-Bex",cantonCode:"VD"},{postalCode:"1882",placeName:"Gryon",cantonCode:"VD"},{postalCode:"1884",placeName:"Arveyes",cantonCode:"VD"},{postalCode:"1884",placeName:"Villars-sur-Ollon",cantonCode:"VD"},{postalCode:"1884",placeName:"Huémoz",cantonCode:"VD"},{postalCode:"1885",placeName:"Chesières",cantonCode:"VD"},{postalCode:"1892",placeName:"Morcles",cantonCode:"VD"},{postalCode:"1892",placeName:"Lavey-Village",cantonCode:"VD"},{postalCode:"1892",placeName:"Lavey-les-Bains",cantonCode:"VD"},{postalCode:"1082",placeName:"Corcelles-le-Jorat",cantonCode:"VD"},{postalCode:"1085",placeName:"Vulliens",cantonCode:"VD"},{postalCode:"1088",placeName:"Ropraz",cantonCode:"VD"},{postalCode:"1509",placeName:"Vucherens",cantonCode:"VD"},{postalCode:"1510",placeName:"Syens",cantonCode:"VD"},{postalCode:"1510",placeName:"Moudon",cantonCode:"VD"},{postalCode:"1512",placeName:"Chavannes-sur-Moudon",cantonCode:"VD"},{postalCode:"1513",placeName:"Rossenges",cantonCode:"VD"},{postalCode:"1513",placeName:"Hermenches",cantonCode:"VD"},{postalCode:"1514",placeName:"Bussy-sur-Moudon",cantonCode:"VD"},{postalCode:"1515",placeName:"Villars-le-Comte",cantonCode:"VD"},{postalCode:"1521",placeName:"Curtilles",cantonCode:"VD"},{postalCode:"1522",placeName:"Lucens",cantonCode:"VD"},{postalCode:"1522",placeName:"Oulens-sur-Lucens",cantonCode:"VD"},{postalCode:"1523",placeName:"Granges-près-Marnand",cantonCode:"VD"},{postalCode:"1524",placeName:"Marnand",cantonCode:"VD"},{postalCode:"1525",placeName:"Henniez",cantonCode:"VD"},{postalCode:"1525",placeName:"Seigneux",cantonCode:"VD"},{postalCode:"1526",placeName:"Forel-sur-Lucens",cantonCode:"VD"},{postalCode:"1526",placeName:"Cremin",cantonCode:"VD"},{postalCode:"1530",placeName:"Payerne",cantonCode:"VD"},{postalCode:"1534",placeName:"Sassel",cantonCode:"VD"},{postalCode:"1535",placeName:"Combremont-le-Grand",cantonCode:"VD"},{postalCode:"1536",placeName:"Combremont-le-Petit",cantonCode:"VD"},{postalCode:"1537",placeName:"Champtauroz",cantonCode:"VD"},{postalCode:"1538",placeName:"Treytorrens (Payerne)",cantonCode:"VD"},{postalCode:"1543",placeName:"Grandcour",cantonCode:"VD"},{postalCode:"1545",placeName:"Chevroux",cantonCode:"VD"},{postalCode:"1551",placeName:"Vers-chez-Perrin",cantonCode:"VD"},{postalCode:"1552",placeName:"Trey",cantonCode:"VD"},{postalCode:"1554",placeName:"Rossens VD",cantonCode:"VD"},{postalCode:"1554",placeName:"Sédeilles",cantonCode:"VD"},{postalCode:"1555",placeName:"Villarzel",cantonCode:"VD"},{postalCode:"1562",placeName:"Corcelles-près-Payerne",cantonCode:"VD"},{postalCode:"1565",placeName:"Missy",cantonCode:"VD"},{postalCode:"1580",placeName:"Avenches",cantonCode:"VD"},{postalCode:"1580",placeName:"Donatyre",cantonCode:"VD"},{postalCode:"1580",placeName:"Oleyres",cantonCode:"VD"},{postalCode:"1584",placeName:"Villars-le-Grand",cantonCode:"VD"},{postalCode:"1585",placeName:"Salavaux",cantonCode:"VD"},{postalCode:"1585",placeName:"Cotterd",cantonCode:"VD"},{postalCode:"1585",placeName:"Bellerive VD",cantonCode:"VD"},{postalCode:"1586",placeName:"Vallamand",cantonCode:"VD"},{postalCode:"1587",placeName:"Constantine",cantonCode:"VD"},{postalCode:"1587",placeName:"Montmagny",cantonCode:"VD"},{postalCode:"1588",placeName:"Cudrefin",cantonCode:"VD"},{postalCode:"1589",placeName:"Chabrey",cantonCode:"VD"},{postalCode:"1595",placeName:"Faoug",cantonCode:"VD"},{postalCode:"1682",placeName:"Lovatens",cantonCode:"VD"},{postalCode:"1682",placeName:"Prévonloup",cantonCode:"VD"},{postalCode:"1682",placeName:"Villars-Bramard",cantonCode:"VD"},{postalCode:"1682",placeName:"Cerniaz VD",cantonCode:"VD"},{postalCode:"1682",placeName:"Dompierre VD",cantonCode:"VD"},{postalCode:"1683",placeName:"Brenles",cantonCode:"VD"},{postalCode:"1683",placeName:"Sarzens",cantonCode:"VD"},{postalCode:"1683",placeName:"Chesalles-sur-Moudon",cantonCode:"VD"},{postalCode:"1787",placeName:"Mur (Vully) VD",cantonCode:"VD"},{postalCode:"1031",placeName:"Mex VD",cantonCode:"VD"},{postalCode:"1034",placeName:"Boussens",cantonCode:"VD"},{postalCode:"1035",placeName:"Bournens",cantonCode:"VD"},{postalCode:"1036",placeName:"Sullens",cantonCode:"VD"},{postalCode:"1037",placeName:"Etagnières",cantonCode:"VD"},{postalCode:"1038",placeName:"Bercher",cantonCode:"VD"},{postalCode:"1040",placeName:"Echallens",cantonCode:"VD"},{postalCode:"1040",placeName:"Villars-le-Terroir",cantonCode:"VD"},{postalCode:"1040",placeName:"St-Barthélemy VD",cantonCode:"VD"},{postalCode:"1041",placeName:"Montaubion-Chardonney",cantonCode:"VD"},{postalCode:"1041",placeName:"Poliez-le-Grand",cantonCode:"VD"},{postalCode:"1041",placeName:"Poliez-Pittet",cantonCode:"VD"},{postalCode:"1041",placeName:"Bottens",cantonCode:"VD"},{postalCode:"1041",placeName:"Naz",cantonCode:"VD"},{postalCode:"1041",placeName:"Dommartin",cantonCode:"VD"},{postalCode:"1042",placeName:"Assens",cantonCode:"VD"},{postalCode:"1042",placeName:"Bioley-Orjulaz",cantonCode:"VD"},{postalCode:"1042",placeName:"Bettens",cantonCode:"VD"},{postalCode:"1043",placeName:"Sugnens",cantonCode:"VD"},{postalCode:"1044",placeName:"Fey",cantonCode:"VD"},{postalCode:"1045",placeName:"Ogens",cantonCode:"VD"},{postalCode:"1046",placeName:"Rueyres",cantonCode:"VD"},{postalCode:"1047",placeName:"Oppens",cantonCode:"VD"},{postalCode:"1053",placeName:"Cugy VD",cantonCode:"VD"},{postalCode:"1053",placeName:"Bretigny-sur-Morrens",cantonCode:"VD"},{postalCode:"1054",placeName:"Morrens VD",cantonCode:"VD"},{postalCode:"1055",placeName:"Froideville",cantonCode:"VD"},{postalCode:"1058",placeName:"Villars-Tiercelin",cantonCode:"VD"},{postalCode:"1059",placeName:"Peney-le-Jorat",cantonCode:"VD"},{postalCode:"1061",placeName:"Villars-Mendraz",cantonCode:"VD"},{postalCode:"1062",placeName:"Sottens",cantonCode:"VD"},{postalCode:"1063",placeName:"Boulens",cantonCode:"VD"},{postalCode:"1063",placeName:"Chapelle-sur-Moudon",cantonCode:"VD"},{postalCode:"1063",placeName:"Martherenges",cantonCode:"VD"},{postalCode:"1063",placeName:"Peyres-Possens",cantonCode:"VD"},{postalCode:"1302",placeName:"Vufflens-la-Ville",cantonCode:"VD"},{postalCode:"1303",placeName:"Penthaz",cantonCode:"VD"},{postalCode:"1305",placeName:"Penthalaz",cantonCode:"VD"},{postalCode:"1306",placeName:"Daillens",cantonCode:"VD"},{postalCode:"1307",placeName:"Lussery-Villars",cantonCode:"VD"},{postalCode:"1375",placeName:"Penthéréaz",cantonCode:"VD"},{postalCode:"1376",placeName:"Eclagnens",cantonCode:"VD"},{postalCode:"1376",placeName:"Goumoens-la-Ville",cantonCode:"VD"},{postalCode:"1376",placeName:"Goumoens-le-Jux",cantonCode:"VD"},{postalCode:"1377",placeName:"Oulens-sous-Echallens",cantonCode:"VD"},{postalCode:"1409",placeName:"Chanéaz",cantonCode:"VD"},{postalCode:"1410",placeName:"Correvon",cantonCode:"VD"},{postalCode:"1410",placeName:"Thierrens",cantonCode:"VD"},{postalCode:"1410",placeName:"Denezy",cantonCode:"VD"},{postalCode:"1410",placeName:"St-Cierges",cantonCode:"VD"},{postalCode:"1416",placeName:"Pailly",cantonCode:"VD"},{postalCode:"1417",placeName:"Epautheyres",cantonCode:"VD"},{postalCode:"1417",placeName:"Essertines-sur-Yverdon",cantonCode:"VD"},{postalCode:"1418",placeName:"Vuarrens",cantonCode:"VD"},{postalCode:"1515",placeName:"Neyruz-sur-Moudon",cantonCode:"VD"},{postalCode:"1148",placeName:"La Praz",cantonCode:"VD"},{postalCode:"1321",placeName:"Arnex-sur-Orbe",cantonCode:"VD"},{postalCode:"1322",placeName:"Croy",cantonCode:"VD"},{postalCode:"1323",placeName:"Romainmôtier",cantonCode:"VD"},{postalCode:"1324",placeName:"Premier",cantonCode:"VD"},{postalCode:"1325",placeName:"Vaulion",cantonCode:"VD"},{postalCode:"1326",placeName:"Juriens",cantonCode:"VD"},{postalCode:"1329",placeName:"Bretonnières",cantonCode:"VD"},{postalCode:"1337",placeName:"Vallorbe",cantonCode:"VD"},{postalCode:"1338",placeName:"Ballaigues",cantonCode:"VD"},{postalCode:"1341",placeName:"Orient",cantonCode:"VD"},{postalCode:"1341",placeName:"L'Orient",cantonCode:"VD"},{postalCode:"1342",placeName:"Le Pont",cantonCode:"VD"},{postalCode:"1343",placeName:"Les Charbonnières",cantonCode:"VD"},{postalCode:"1344",placeName:"L'Abbaye",cantonCode:"VD"},{postalCode:"1345",placeName:"Le Séchey",cantonCode:"VD"},{postalCode:"1345",placeName:"Le Lieu",cantonCode:"VD"},{postalCode:"1346",placeName:"Les Bioux",cantonCode:"VD"},{postalCode:"1347",placeName:"Le Solliat",cantonCode:"VD"},{postalCode:"1347",placeName:"Le Sentier",cantonCode:"VD"},{postalCode:"1348",placeName:"Le Brassus",cantonCode:"VD"},{postalCode:"1350",placeName:"Orbe",cantonCode:"VD"},{postalCode:"1352",placeName:"Agiez",cantonCode:"VD"},{postalCode:"1353",placeName:"Bofflens",cantonCode:"VD"},{postalCode:"1354",placeName:"Montcherand",cantonCode:"VD"},{postalCode:"1355",placeName:"Sergey",cantonCode:"VD"},{postalCode:"1355",placeName:"L'Abergement",cantonCode:"VD"},{postalCode:"1356",placeName:"La Russille",cantonCode:"VD"},{postalCode:"1356",placeName:"Les Clées",cantonCode:"VD"},{postalCode:"1357",placeName:"Lignerolle",cantonCode:"VD"},{postalCode:"1358",placeName:"Valeyres-sous-Rances",cantonCode:"VD"},{postalCode:"1372",placeName:"Bavois",cantonCode:"VD"},{postalCode:"1373",placeName:"Chavornay",cantonCode:"VD"},{postalCode:"1374",placeName:"Corcelles-sur-Chavornay",cantonCode:"VD"},{postalCode:"1400",placeName:"Yverdon 2",cantonCode:"VD"},{postalCode:"1400",placeName:"Yverdon-les-Bains",cantonCode:"VD"},{postalCode:"1400",placeName:"Cheseaux-Noréaz",cantonCode:"VD"},{postalCode:"1401",placeName:"Yverdon-les-Bains",cantonCode:"VD"},{postalCode:"1404",placeName:"Villars-Epeney",cantonCode:"VD"},{postalCode:"1404",placeName:"Cuarny",cantonCode:"VD"},{postalCode:"1405",placeName:"Pomy",cantonCode:"VD"},{postalCode:"1406",placeName:"Cronay",cantonCode:"VD"},{postalCode:"1407",placeName:"Donneloye",cantonCode:"VD"},{postalCode:"1407",placeName:"Mézery-près-Donneloye",cantonCode:"VD"},{postalCode:"1407",placeName:"Bioley-Magnoux",cantonCode:"VD"},{postalCode:"1407",placeName:"Gossens",cantonCode:"VD"},{postalCode:"1408",placeName:"Prahins",cantonCode:"VD"},{postalCode:"1412",placeName:"Ursins",cantonCode:"VD"},{postalCode:"1412",placeName:"Valeyres-sous-Ursins",cantonCode:"VD"},{postalCode:"1413",placeName:"Orzens",cantonCode:"VD"},{postalCode:"1415",placeName:"Démoret",cantonCode:"VD"},{postalCode:"1415",placeName:"Molondin",cantonCode:"VD"},{postalCode:"1420",placeName:"Fiez",cantonCode:"VD"},{postalCode:"1421",placeName:"Fontaines-sur-Grandson",cantonCode:"VD"},{postalCode:"1421",placeName:"Grandevent",cantonCode:"VD"},{postalCode:"1422",placeName:"Grandson",cantonCode:"VD"},{postalCode:"1423",placeName:"Villars-Burquin",cantonCode:"VD"},{postalCode:"1423",placeName:"Romairon",cantonCode:"VD"},{postalCode:"1423",placeName:"Vaugondry",cantonCode:"VD"},{postalCode:"1423",placeName:"Fontanezier",cantonCode:"VD"},{postalCode:"1424",placeName:"Champagne",cantonCode:"VD"},{postalCode:"1425",placeName:"Onnens VD",cantonCode:"VD"},{postalCode:"1426",placeName:"Corcelles-près-Concise",cantonCode:"VD"},{postalCode:"1426",placeName:"Concise",cantonCode:"VD"},{postalCode:"1427",placeName:"Bonvillars",cantonCode:"VD"},{postalCode:"1428",placeName:"Mutrux",cantonCode:"VD"},{postalCode:"1428",placeName:"Provence",cantonCode:"VD"},{postalCode:"1429",placeName:"Giez",cantonCode:"VD"},{postalCode:"1430",placeName:"Orges",cantonCode:"VD"},{postalCode:"1431",placeName:"Vugelles-La Mothe",cantonCode:"VD"},{postalCode:"1431",placeName:"Novalles",cantonCode:"VD"},{postalCode:"1432",placeName:"Gressy",cantonCode:"VD"},{postalCode:"1432",placeName:"Belmont-sur-Yverdon",cantonCode:"VD"},{postalCode:"1433",placeName:"Suchy",cantonCode:"VD"},{postalCode:"1434",placeName:"Ependes VD",cantonCode:"VD"},{postalCode:"1435",placeName:"Essert-Pittet",cantonCode:"VD"},{postalCode:"1436",placeName:"Treycovagnes",cantonCode:"VD"},{postalCode:"1436",placeName:"Chamblon",cantonCode:"VD"},{postalCode:"1437",placeName:"Suscévaz",cantonCode:"VD"},{postalCode:"1438",placeName:"Mathod",cantonCode:"VD"},{postalCode:"1439",placeName:"Rances",cantonCode:"VD"},{postalCode:"1440",placeName:"Montagny-Chamard",cantonCode:"VD"},{postalCode:"1441",placeName:"Valeyres-sous-Montagny",cantonCode:"VD"},{postalCode:"1442",placeName:"Montagny-près-Yverdon",cantonCode:"VD"},{postalCode:"1443",placeName:"Essert-sous-Champvent",cantonCode:"VD"},{postalCode:"1443",placeName:"Villars-sous-Champvent",cantonCode:"VD"},{postalCode:"1443",placeName:"Champvent",cantonCode:"VD"},{postalCode:"1445",placeName:"Vuiteboeuf",cantonCode:"VD"},{postalCode:"1446",placeName:"Baulmes",cantonCode:"VD"},{postalCode:"1450",placeName:"La Sagne (Ste-Croix)",cantonCode:"VD"},{postalCode:"1450",placeName:"Le Château-de-Ste-Croix",cantonCode:"VD"},{postalCode:"1450",placeName:"Ste-Croix",cantonCode:"VD"},{postalCode:"1452",placeName:"Les Rasses",cantonCode:"VD"},{postalCode:"1453",placeName:"Mauborget",cantonCode:"VD"},{postalCode:"1453",placeName:"Bullet",cantonCode:"VD"},{postalCode:"1454",placeName:"L'Auberson",cantonCode:"VD"},{postalCode:"1454",placeName:"La Vraconnaz",cantonCode:"VD"},{postalCode:"1462",placeName:"Yvonand",cantonCode:"VD"},{postalCode:"1463",placeName:"Rovray",cantonCode:"VD"},{postalCode:"1464",placeName:"Chêne-Pâquier",cantonCode:"VD"},{postalCode:"1464",placeName:"Chavannes-le-Chêne",cantonCode:"VD"},{postalCode:"1000",placeName:"Lausanne 22",cantonCode:"VD"},{postalCode:"1000",placeName:"Lausanne 14",cantonCode:"VD"},{postalCode:"1000",placeName:"Lausanne 26",cantonCode:"VD"},{postalCode:"1000",placeName:"Lausanne 12",cantonCode:"VD"},{postalCode:"1000",placeName:"Lausanne 27",cantonCode:"VD"},{postalCode:"1000",placeName:"Lausanne 18",cantonCode:"VD"},{postalCode:"1000",placeName:"Lausanne 10",cantonCode:"VD"},{postalCode:"1000",placeName:"Lausanne 16",cantonCode:"VD"},{postalCode:"1000",placeName:"Lausanne 25",cantonCode:"VD"},{postalCode:"1001",placeName:"Lausanne",cantonCode:"VD"},{postalCode:"1002",placeName:"Lausanne",cantonCode:"VD"},{postalCode:"1003",placeName:"Lausanne",cantonCode:"VD"},{postalCode:"1004",placeName:"Lausanne",cantonCode:"VD"},{postalCode:"1005",placeName:"Lausanne",cantonCode:"VD"},{postalCode:"1006",placeName:"Lausanne",cantonCode:"VD"},{postalCode:"1007",placeName:"Lausanne",cantonCode:"VD"},{postalCode:"1008",placeName:"Jouxtens-Mézery",cantonCode:"VD"},{postalCode:"1010",placeName:"Lausanne",cantonCode:"VD"},{postalCode:"1011",placeName:"Lausanne",cantonCode:"VD"},{postalCode:"1012",placeName:"Lausanne",cantonCode:"VD"},{postalCode:"1014",placeName:"Lausanne Adm cant",cantonCode:"VD"},{postalCode:"1014",placeName:"Lausanne Adm cant VD",cantonCode:"VD"},{postalCode:"1015",placeName:"Lausanne",cantonCode:"VD"},{postalCode:"1018",placeName:"Lausanne",cantonCode:"VD"},{postalCode:"1019",placeName:"Lausanne Services spéciaux",cantonCode:"VD"},{postalCode:"1019",placeName:"Lausanne",cantonCode:"VD"},{postalCode:"1032",placeName:"Romanel-sur-Lausanne",cantonCode:"VD"},{postalCode:"1033",placeName:"Cheseaux-sur-Lausanne",cantonCode:"VD"},{postalCode:"1039",placeName:"Cheseaux Polyval",cantonCode:"VD"},{postalCode:"1052",placeName:"Le Mont-sur-Lausanne",cantonCode:"VD"},{postalCode:"1066",placeName:"Epalinges",cantonCode:"VD"},{postalCode:"1009",placeName:"Pully",cantonCode:"VD"},{postalCode:"1068",placeName:"Les Monts-de-Pully",cantonCode:"VD"},{postalCode:"1070",placeName:"Puidoux",cantonCode:"VD"},{postalCode:"1071",placeName:"Rivaz",cantonCode:"VD"},{postalCode:"1071",placeName:"Chexbres",cantonCode:"VD"},{postalCode:"1071",placeName:"St-Saphorin (Lavaux)",cantonCode:"VD"},{postalCode:"1072",placeName:"Forel (Lavaux)",cantonCode:"VD"},{postalCode:"1073",placeName:"Savigny",cantonCode:"VD"},{postalCode:"1073",placeName:"Mollie-Margot",cantonCode:"VD"},{postalCode:"1076",placeName:"Ferlens VD",cantonCode:"VD"},{postalCode:"1077",placeName:"Servion",cantonCode:"VD"},{postalCode:"1078",placeName:"Essertes",cantonCode:"VD"},{postalCode:"1080",placeName:"Les Cullayes",cantonCode:"VD"},{postalCode:"1081",placeName:"Montpreveyres",cantonCode:"VD"},{postalCode:"1083",placeName:"Mézières VD",cantonCode:"VD"},{postalCode:"1084",placeName:"Carrouge VD",cantonCode:"VD"},{postalCode:"1090",placeName:"La Croix (Lutry)",cantonCode:"VD"},{postalCode:"1091",placeName:"Aran",cantonCode:"VD"},{postalCode:"1091",placeName:"Chenaux",cantonCode:"VD"},{postalCode:"1091",placeName:"Grandvaux",cantonCode:"VD"},{postalCode:"1092",placeName:"Belmont-sur-Lausanne",cantonCode:"VD"},{postalCode:"1093",placeName:"La Conversion",cantonCode:"VD"},{postalCode:"1094",placeName:"Paudex",cantonCode:"VD"},{postalCode:"1095",placeName:"Lutry",cantonCode:"VD"},{postalCode:"1096",placeName:"Cully",cantonCode:"VD"},{postalCode:"1096",placeName:"Villette (Lavaux)",cantonCode:"VD"},{postalCode:"1097",placeName:"Riex",cantonCode:"VD"},{postalCode:"1098",placeName:"Epesses",cantonCode:"VD"},{postalCode:"1607",placeName:"Les Tavernes",cantonCode:"VD"},{postalCode:"1607",placeName:"Les Thioleyres",cantonCode:"VD"},{postalCode:"1607",placeName:"Palézieux",cantonCode:"VD"},{postalCode:"1607",placeName:"Palézieux-Village",cantonCode:"VD"},{postalCode:"1608",placeName:"Oron-le-Châtel",cantonCode:"VD"},{postalCode:"1608",placeName:"Chesalles-sur-Oron",cantonCode:"VD"},{postalCode:"1608",placeName:"Bussigny-sur-Oron",cantonCode:"VD"},{postalCode:"1610",placeName:"Vuibroye",cantonCode:"VD"},{postalCode:"1610",placeName:"Oron-la-Ville",cantonCode:"VD"},{postalCode:"1610",placeName:"Châtillens",cantonCode:"VD"},{postalCode:"1612",placeName:"Ecoteaux",cantonCode:"VD"},{postalCode:"1613",placeName:"Maracon",cantonCode:"VD"},{postalCode:"1026",placeName:"Echandens-Denges",cantonCode:"VD"},{postalCode:"1026",placeName:"Echandens",cantonCode:"VD"},{postalCode:"1026",placeName:"Denges",cantonCode:"VD"},{postalCode:"1027",placeName:"Lonay",cantonCode:"VD"},{postalCode:"1028",placeName:"Préverenges",cantonCode:"VD"},{postalCode:"1110",placeName:"Morges 1",cantonCode:"VD"},{postalCode:"1110",placeName:"Morges",cantonCode:"VD"},{postalCode:"1110",placeName:"Morges 2",cantonCode:"VD"},{postalCode:"1112",placeName:"Echichens",cantonCode:"VD"},{postalCode:"1113",placeName:"St-Saphorin-sur-Morges",cantonCode:"VD"},{postalCode:"1114",placeName:"Colombier VD",cantonCode:"VD"},{postalCode:"1115",placeName:"Vullierens",cantonCode:"VD"},{postalCode:"1116",placeName:"Cottens VD",cantonCode:"VD"},{postalCode:"1117",placeName:"Grancy",cantonCode:"VD"},{postalCode:"1121",placeName:"Bremblens",cantonCode:"VD"},{postalCode:"1122",placeName:"Romanel-sur-Morges",cantonCode:"VD"},{postalCode:"1123",placeName:"Aclens",cantonCode:"VD"},{postalCode:"1124",placeName:"Gollion",cantonCode:"VD"},{postalCode:"1125",placeName:"Monnaz",cantonCode:"VD"},{postalCode:"1126",placeName:"Vaux-sur-Morges",cantonCode:"VD"},{postalCode:"1127",placeName:"Clarmont",cantonCode:"VD"},{postalCode:"1128",placeName:"Reverolle",cantonCode:"VD"},{postalCode:"1131",placeName:"Tolochenaz",cantonCode:"VD"},{postalCode:"1132",placeName:"Lully VD",cantonCode:"VD"},{postalCode:"1134",placeName:"Chigny",cantonCode:"VD"},{postalCode:"1134",placeName:"Vufflens-le-Château",cantonCode:"VD"},{postalCode:"1135",placeName:"Denens",cantonCode:"VD"},{postalCode:"1136",placeName:"Bussy-Chardonney",cantonCode:"VD"},{postalCode:"1141",placeName:"Sévery",cantonCode:"VD"},{postalCode:"1142",placeName:"Pampigny",cantonCode:"VD"},{postalCode:"1143",placeName:"Apples",cantonCode:"VD"},{postalCode:"1144",placeName:"Ballens",cantonCode:"VD"},{postalCode:"1145",placeName:"Bière",cantonCode:"VD"},{postalCode:"1146",placeName:"Mollens VD",cantonCode:"VD"},{postalCode:"1147",placeName:"Montricher",cantonCode:"VD"},{postalCode:"1148",placeName:"Cuarnens",cantonCode:"VD"},{postalCode:"1148",placeName:"L'Isle",cantonCode:"VD"},{postalCode:"1148",placeName:"Moiry VD",cantonCode:"VD"},{postalCode:"1148",placeName:"Villars-Bozon",cantonCode:"VD"},{postalCode:"1148",placeName:"Mont-la-Ville",cantonCode:"VD"},{postalCode:"1148",placeName:"Mauraz",cantonCode:"VD"},{postalCode:"1148",placeName:"La Coudre",cantonCode:"VD"},{postalCode:"1148",placeName:"Chavannes-le-Veyron",cantonCode:"VD"},{postalCode:"1149",placeName:"Berolle",cantonCode:"VD"},{postalCode:"1162",placeName:"St-Prex",cantonCode:"VD"},{postalCode:"1163",placeName:"Etoy",cantonCode:"VD"},{postalCode:"1164",placeName:"Buchillon",cantonCode:"VD"},{postalCode:"1165",placeName:"Allaman",cantonCode:"VD"},{postalCode:"1167",placeName:"Lussy-sur-Morges",cantonCode:"VD"},{postalCode:"1168",placeName:"Villars-sous-Yens",cantonCode:"VD"},{postalCode:"1169",placeName:"Yens",cantonCode:"VD"},{postalCode:"1170",placeName:"Aubonne",cantonCode:"VD"},{postalCode:"1172",placeName:"Bougy-Villars",cantonCode:"VD"},{postalCode:"1173",placeName:"Féchy",cantonCode:"VD"},{postalCode:"1174",placeName:"Pizy",cantonCode:"VD"},{postalCode:"1174",placeName:"Montherod",cantonCode:"VD"},{postalCode:"1175",placeName:"Lavigny",cantonCode:"VD"},{postalCode:"1176",placeName:"St-Livres",cantonCode:"VD"},{postalCode:"1187",placeName:"St-Oyens",cantonCode:"VD"},{postalCode:"1188",placeName:"Gimel",cantonCode:"VD"},{postalCode:"1189",placeName:"Saubraz",cantonCode:"VD"},{postalCode:"1304",placeName:"Dizy",cantonCode:"VD"},{postalCode:"1304",placeName:"Senarclens",cantonCode:"VD"},{postalCode:"1304",placeName:"Allens",cantonCode:"VD"},{postalCode:"1304",placeName:"Cossonay-Ville",cantonCode:"VD"},{postalCode:"1308",placeName:"La Chaux (Cossonay)",cantonCode:"VD"},{postalCode:"1312",placeName:"Eclépens",cantonCode:"VD"},{postalCode:"1313",placeName:"Ferreyres",cantonCode:"VD"},{postalCode:"1315",placeName:"La Sarraz",cantonCode:"VD"},{postalCode:"1316",placeName:"Chevilly",cantonCode:"VD"},{postalCode:"1317",placeName:"Orny",cantonCode:"VD"},{postalCode:"1318",placeName:"Pompaples",cantonCode:"VD"},{postalCode:"1166",placeName:"Perroy",cantonCode:"VD"},{postalCode:"1180",placeName:"Tartegnin",cantonCode:"VD"},{postalCode:"1180",placeName:"Rolle",cantonCode:"VD"},{postalCode:"1182",placeName:"Gilly",cantonCode:"VD"},{postalCode:"1183",placeName:"Bursins",cantonCode:"VD"},{postalCode:"1184",placeName:"Vinzel",cantonCode:"VD"},{postalCode:"1184",placeName:"Luins",cantonCode:"VD"},{postalCode:"1185",placeName:"Mont-sur-Rolle",cantonCode:"VD"},{postalCode:"1186",placeName:"Essertines-sur-Rolle",cantonCode:"VD"},{postalCode:"1188",placeName:"St-George",cantonCode:"VD"},{postalCode:"1195",placeName:"Dully",cantonCode:"VD"},{postalCode:"1195",placeName:"Bursinel",cantonCode:"VD"},{postalCode:"1196",placeName:"Gland",cantonCode:"VD"},{postalCode:"1197",placeName:"Prangins",cantonCode:"VD"},{postalCode:"1260",placeName:"Nyon 2",cantonCode:"VD"},{postalCode:"1260",placeName:"Nyon 1",cantonCode:"VD"},{postalCode:"1260",placeName:"Nyon",cantonCode:"VD"},{postalCode:"1261",placeName:"Marchissy",cantonCode:"VD"},{postalCode:"1261",placeName:"Le Vaud",cantonCode:"VD"},{postalCode:"1261",placeName:"Longirod",cantonCode:"VD"},{postalCode:"1262",placeName:"Eysins",cantonCode:"VD"},{postalCode:"1263",placeName:"Crassier",cantonCode:"VD"},{postalCode:"1264",placeName:"St-Cergue",cantonCode:"VD"},{postalCode:"1265",placeName:"La Cure",cantonCode:"VD"},{postalCode:"1266",placeName:"Duillier",cantonCode:"VD"},{postalCode:"1267",placeName:"Vich",cantonCode:"VD"},{postalCode:"1267",placeName:"Coinsins",cantonCode:"VD"},{postalCode:"1268",placeName:"Begnins",cantonCode:"VD"},{postalCode:"1268",placeName:"Burtigny",cantonCode:"VD"},{postalCode:"1269",placeName:"Bassins",cantonCode:"VD"},{postalCode:"1270",placeName:"Trélex",cantonCode:"VD"},{postalCode:"1271",placeName:"Givrins",cantonCode:"VD"},{postalCode:"1272",placeName:"Genolier",cantonCode:"VD"},{postalCode:"1273",placeName:"Arzier-Le Muids",cantonCode:"VD"},{postalCode:"1274",placeName:"Signy-Centre",cantonCode:"VD"},{postalCode:"1274",placeName:"Signy",cantonCode:"VD"},{postalCode:"1274",placeName:"Grens",cantonCode:"VD"},{postalCode:"1275",placeName:"Chéserex",cantonCode:"VD"},{postalCode:"1276",placeName:"Gingins",cantonCode:"VD"},{postalCode:"1277",placeName:"Borex",cantonCode:"VD"},{postalCode:"1277",placeName:"Arnex-sur-Nyon",cantonCode:"VD"},{postalCode:"1278",placeName:"La Rippe",cantonCode:"VD"},{postalCode:"1279",placeName:"Bogis-Bossey",cantonCode:"VD"},{postalCode:"1279",placeName:"Chavannes-de-Bogis",cantonCode:"VD"},{postalCode:"1290",placeName:"Chavannes-des-Bois",cantonCode:"VD"},{postalCode:"1291",placeName:"Commugny",cantonCode:"VD"},{postalCode:"1295",placeName:"Tannay",cantonCode:"VD"},{postalCode:"1295",placeName:"Mies",cantonCode:"VD"},{postalCode:"1296",placeName:"Coppet",cantonCode:"VD"},{postalCode:"1297",placeName:"Founex",cantonCode:"VD"},{postalCode:"1299",placeName:"Crans VD",cantonCode:"VD"},{postalCode:"1299",placeName:"Crans-près-Céligny",cantonCode:"VD"},{postalCode:"1008",placeName:"Prilly",cantonCode:"VD"},{postalCode:"1020",placeName:"Renens VD",cantonCode:"VD"},{postalCode:"1020",placeName:"Renens VD 1",cantonCode:"VD"},{postalCode:"1022",placeName:"Chavannes-près-Renens",cantonCode:"VD"},{postalCode:"1023",placeName:"Crissier",cantonCode:"VD"},{postalCode:"1023",placeName:"Crissier 1",cantonCode:"VD"},{postalCode:"1024",placeName:"Ecublens VD",cantonCode:"VD"},{postalCode:"1025",placeName:"St-Sulpice VD",cantonCode:"VD"},{postalCode:"1029",placeName:"Villars-Ste-Croix",cantonCode:"VD"},{postalCode:"1030",placeName:"Bussigny",cantonCode:"VD"},{postalCode:"1658",placeName:"Rossinière",cantonCode:"VD"},{postalCode:"1658",placeName:"La Tine",cantonCode:"VD"},{postalCode:"1659",placeName:"Rougemont",cantonCode:"VD"},{postalCode:"1659",placeName:"Flendruz",cantonCode:"VD"},{postalCode:"1660",placeName:"La Lécherette",cantonCode:"VD"},{postalCode:"1660",placeName:"Les Moulins",cantonCode:"VD"},{postalCode:"1660",placeName:"L'Etivaz",cantonCode:"VD"},{postalCode:"1660",placeName:"Château-d'Oex",cantonCode:"VD"},{postalCode:"1800",placeName:"Vevey 1",cantonCode:"VD"},{postalCode:"1800",placeName:"Vevey",cantonCode:"VD"},{postalCode:"1801",placeName:"Le Mont-Pèlerin",cantonCode:"VD"},{postalCode:"1802",placeName:"Corseaux",cantonCode:"VD"},{postalCode:"1803",placeName:"Chardonne",cantonCode:"VD"},{postalCode:"1804",placeName:"Corsier-sur-Vevey",cantonCode:"VD"},{postalCode:"1805",placeName:"Jongny",cantonCode:"VD"},{postalCode:"1806",placeName:"St-Légier-La Chiésaz",cantonCode:"VD"},{postalCode:"1807",placeName:"Blonay",cantonCode:"VD"},{postalCode:"1808",placeName:"Les Monts-de-Corsier",cantonCode:"VD"},{postalCode:"1809",placeName:"Fenil-sur-Corsier",cantonCode:"VD"},{postalCode:"1811",placeName:"Vevey",cantonCode:"VD"},{postalCode:"1811",placeName:"Vevey Services spéciaux",cantonCode:"VD"},{postalCode:"1814",placeName:"La Tour-de-Peilz",cantonCode:"VD"},{postalCode:"1815",placeName:"Clarens",cantonCode:"VD"},{postalCode:"1816",placeName:"Chailly-Montreux",cantonCode:"VD"},{postalCode:"1817",placeName:"Brent",cantonCode:"VD"},{postalCode:"1818",placeName:"Montreux Redoute",cantonCode:"VD"},{postalCode:"1818",placeName:"Montreux La Redoute",cantonCode:"VD"},{postalCode:"1820",placeName:"Montreux 2",cantonCode:"VD"},{postalCode:"1820",placeName:"Territet",cantonCode:"VD"},{postalCode:"1820",placeName:"Veytaux",cantonCode:"VD"},{postalCode:"1820",placeName:"Montreux",cantonCode:"VD"},{postalCode:"1820",placeName:"Montreux 1",cantonCode:"VD"},{postalCode:"1822",placeName:"Chernex",cantonCode:"VD"},{postalCode:"1823",placeName:"Glion",cantonCode:"VD"},{postalCode:"1824",placeName:"Caux",cantonCode:"VD"},{postalCode:"1832",placeName:"Chamby",cantonCode:"VD"},{postalCode:"1832",placeName:"Villard-sur-Chamby",cantonCode:"VD"},{postalCode:"1833",placeName:"Les Avants",cantonCode:"VD"},{postalCode:"3900",placeName:"Brig",cantonCode:"VS"},{postalCode:"3900",placeName:"Brigerbad",cantonCode:"VS"},{postalCode:"3900",placeName:"Gamsen",cantonCode:"VS"},{postalCode:"3901",placeName:"Rothwald",cantonCode:"VS"},{postalCode:"3902",placeName:"Glis",cantonCode:"VS"},{postalCode:"3903",placeName:"Mund",cantonCode:"VS"},{postalCode:"3903",placeName:"Birgisch",cantonCode:"VS"},{postalCode:"3904",placeName:"Naters",cantonCode:"VS"},{postalCode:"3907",placeName:"Simplon Dorf",cantonCode:"VS"},{postalCode:"3907",placeName:"Gabi (Simplon)",cantonCode:"VS"},{postalCode:"3907",placeName:"Gondo",cantonCode:"VS"},{postalCode:"3911",placeName:"Ried-Brig",cantonCode:"VS"},{postalCode:"3912",placeName:"Termen",cantonCode:"VS"},{postalCode:"3913",placeName:"Rosswald",cantonCode:"VS"},{postalCode:"3914",placeName:"Blatten b. Naters",cantonCode:"VS"},{postalCode:"3914",placeName:"Belalp",cantonCode:"VS"},{postalCode:"3939",placeName:"Eggerberg",cantonCode:"VS"},{postalCode:"1911",placeName:"Mayens-de-Chamoson",cantonCode:"VS"},{postalCode:"1955",placeName:"Mayens-de-Chamoson",cantonCode:"VS"},{postalCode:"1955",placeName:"Némiaz (Chamoson)",cantonCode:"VS"},{postalCode:"1955",placeName:"Les Vérines (Chamoson)",cantonCode:"VS"},{postalCode:"1955",placeName:"Grugnay (Chamoson)",cantonCode:"VS"},{postalCode:"1955",placeName:"Chamoson",cantonCode:"VS"},{postalCode:"1955",placeName:"St-Pierre-de-Clages",cantonCode:"VS"},{postalCode:"1957",placeName:"Ardon",cantonCode:"VS"},{postalCode:"1963",placeName:"Vétroz",cantonCode:"VS"},{postalCode:"1964",placeName:"Conthey",cantonCode:"VS"},{postalCode:"1975",placeName:"St-Séverin",cantonCode:"VS"},{postalCode:"1976",placeName:"Aven",cantonCode:"VS"},{postalCode:"1976",placeName:"Daillon",cantonCode:"VS"},{postalCode:"1976",placeName:"Erde",cantonCode:"VS"},{postalCode:"1993",placeName:"Clèbes (Nendaz)",cantonCode:"VS"},{postalCode:"1994",placeName:"Aproz (Nendaz)",cantonCode:"VS"},{postalCode:"1996",placeName:"Condémines (Nendaz)",cantonCode:"VS"},{postalCode:"1996",placeName:"Beuson (Nendaz)",cantonCode:"VS"},{postalCode:"1996",placeName:"Baar (Nendaz)",cantonCode:"VS"},{postalCode:"1996",placeName:"Bieudron (Nendaz)",cantonCode:"VS"},{postalCode:"1996",placeName:"Brignon (Nendaz)",cantonCode:"VS"},{postalCode:"1996",placeName:"Saclentse",cantonCode:"VS"},{postalCode:"1996",placeName:"Fey (Nendaz)",cantonCode:"VS"},{postalCode:"1996",placeName:"Basse-Nendaz",cantonCode:"VS"},{postalCode:"1997",placeName:"Haute-Nendaz",cantonCode:"VS"},{postalCode:"1997",placeName:"Sornard (Nendaz)",cantonCode:"VS"},{postalCode:"1997",placeName:"Siviez (Nendaz)",cantonCode:"VS"},{postalCode:"1927",placeName:"Chemin",cantonCode:"VS"},{postalCode:"1933",placeName:"La Garde (Sembrancher)",cantonCode:"VS"},{postalCode:"1933",placeName:"Vens (Sembrancher)",cantonCode:"VS"},{postalCode:"1933",placeName:"Sembrancher",cantonCode:"VS"},{postalCode:"1933",placeName:"Chamoille (Sembrancher)",cantonCode:"VS"},{postalCode:"1934",placeName:"Le Châble VS",cantonCode:"VS"},{postalCode:"1934",placeName:"Bruson",cantonCode:"VS"},{postalCode:"1936",placeName:"Verbier",cantonCode:"VS"},{postalCode:"1937",placeName:"Orsières",cantonCode:"VS"},{postalCode:"1938",placeName:"Champex-Lac",cantonCode:"VS"},{postalCode:"1941",placeName:"Vollèges",cantonCode:"VS"},{postalCode:"1941",placeName:"Cries (Vollèges)",cantonCode:"VS"},{postalCode:"1942",placeName:"Levron",cantonCode:"VS"},{postalCode:"1943",placeName:"Praz-de-Fort",cantonCode:"VS"},{postalCode:"1944",placeName:"La Fouly VS",cantonCode:"VS"},{postalCode:"1945",placeName:"Chez Petit (Liddes)",cantonCode:"VS"},{postalCode:"1945",placeName:"Vichères (Liddes)",cantonCode:"VS"},{postalCode:"1945",placeName:"Palasuit (Liddes)",cantonCode:"VS"},{postalCode:"1945",placeName:"Dranse (Liddes)",cantonCode:"VS"},{postalCode:"1945",placeName:"Chandonne (Liddes)",cantonCode:"VS"},{postalCode:"1945",placeName:"Rive Haute (Liddes)",cantonCode:"VS"},{postalCode:"1945",placeName:"Fontaine Dessus (Liddes)",cantonCode:"VS"},{postalCode:"1945",placeName:"Petit Vichères (Liddes)",cantonCode:"VS"},{postalCode:"1945",placeName:"Liddes",cantonCode:"VS"},{postalCode:"1945",placeName:"Fontaine Dessous (Liddes)",cantonCode:"VS"},{postalCode:"1945",placeName:"Les Moulins VS (Liddes)",cantonCode:"VS"},{postalCode:"1945",placeName:"Fornex (Liddes)",cantonCode:"VS"},{postalCode:"1946",placeName:"Bourg-St-Pierre",cantonCode:"VS"},{postalCode:"1947",placeName:"Versegères",cantonCode:"VS"},{postalCode:"1947",placeName:"Champsec",cantonCode:"VS"},{postalCode:"1948",placeName:"Fionnay",cantonCode:"VS"},{postalCode:"1948",placeName:"Lourtier",cantonCode:"VS"},{postalCode:"1948",placeName:"Sarreyer",cantonCode:"VS"},{postalCode:"3801",placeName:"Jungfraujoch",cantonCode:"VS"},{postalCode:"3984",placeName:"Fiesch",cantonCode:"VS"},{postalCode:"3984",placeName:"Fieschertal",cantonCode:"VS"},{postalCode:"3984",placeName:"Fiesch",cantonCode:"VS"},{postalCode:"3985",placeName:"Münster VS",cantonCode:"VS"},{postalCode:"3985",placeName:"Geschinen",cantonCode:"VS"},{postalCode:"3988",placeName:"Obergesteln",cantonCode:"VS"},{postalCode:"3988",placeName:"Ulrichen",cantonCode:"VS"},{postalCode:"3989",placeName:"Selkingen",cantonCode:"VS"},{postalCode:"3989",placeName:"Ritzingen",cantonCode:"VS"},{postalCode:"3989",placeName:"Blitzingen",cantonCode:"VS"},{postalCode:"3989",placeName:"Niederwald",cantonCode:"VS"},{postalCode:"3989",placeName:"Biel VS",cantonCode:"VS"},{postalCode:"3989",placeName:"Grafschaft",cantonCode:"VS"},{postalCode:"3994",placeName:"Lax",cantonCode:"VS"},{postalCode:"3995",placeName:"Steinhaus",cantonCode:"VS"},{postalCode:"3995",placeName:"Steinhaus",cantonCode:"VS"},{postalCode:"3995",placeName:"Mühlebach (Goms)",cantonCode:"VS"},{postalCode:"3995",placeName:"Ernen",cantonCode:"VS"},{postalCode:"3995",placeName:"Mühlebach (Goms)",cantonCode:"VS"},{postalCode:"3995",placeName:"Ausserbinn",cantonCode:"VS"},{postalCode:"3996",placeName:"Binn",cantonCode:"VS"},{postalCode:"3997",placeName:"Bellwald",cantonCode:"VS"},{postalCode:"3998",placeName:"Reckingen VS",cantonCode:"VS"},{postalCode:"3998",placeName:"Gluringen",cantonCode:"VS"},{postalCode:"3999",placeName:"Oberwald",cantonCode:"VS"},{postalCode:"1961",placeName:"Vernamiège",cantonCode:"VS"},{postalCode:"1966",placeName:"Saxonne (Ayent)",cantonCode:"VS"},{postalCode:"1966",placeName:"Botyre (Ayent)",cantonCode:"VS"},{postalCode:"1966",placeName:"Luc (Ayent)",cantonCode:"VS"},{postalCode:"1966",placeName:"Villa (Ayent)",cantonCode:"VS"},{postalCode:"1966",placeName:"Argnou (Ayent)",cantonCode:"VS"},{postalCode:"1966",placeName:"La Place (Ayent)",cantonCode:"VS"},{postalCode:"1966",placeName:"Fortunau (Ayent)",cantonCode:"VS"},{postalCode:"1966",placeName:"Blignou (Ayent)",cantonCode:"VS"},{postalCode:"1966",placeName:"Ayent",cantonCode:"VS"},{postalCode:"1966",placeName:"Signèse (Ayent)",cantonCode:"VS"},{postalCode:"1966",placeName:"St-Romain (Ayent)",cantonCode:"VS"},{postalCode:"1968",placeName:"Mase",cantonCode:"VS"},{postalCode:"1969",placeName:"Eison (St-Martin)",cantonCode:"VS"},{postalCode:"1969",placeName:"Liez (St-Martin)",cantonCode:"VS"},{postalCode:"1969",placeName:"St-Martin VS",cantonCode:"VS"},{postalCode:"1969",placeName:"Trogne (St-Martin)",cantonCode:"VS"},{postalCode:"1969",placeName:"Suen (St-Martin)",cantonCode:"VS"},{postalCode:"1972",placeName:"Anzère",cantonCode:"VS"},{postalCode:"1973",placeName:"Nax",cantonCode:"VS"},{postalCode:"1981",placeName:"Vex",cantonCode:"VS"},{postalCode:"1982",placeName:"Euseigne",cantonCode:"VS"},{postalCode:"1983",placeName:"Evolène",cantonCode:"VS"},{postalCode:"1983",placeName:"Lanna",cantonCode:"VS"},{postalCode:"1984",placeName:"La Tour VS",cantonCode:"VS"},{postalCode:"1984",placeName:"Les Haudères",cantonCode:"VS"},{postalCode:"1985",placeName:"La Forclaz VS",cantonCode:"VS"},{postalCode:"1985",placeName:"Villa (Evolène)",cantonCode:"VS"},{postalCode:"1985",placeName:"La Sage",cantonCode:"VS"},{postalCode:"1986",placeName:"Arolla",cantonCode:"VS"},{postalCode:"1987",placeName:"Hérémence",cantonCode:"VS"},{postalCode:"1988",placeName:"Thyon",cantonCode:"VS"},{postalCode:"1988",placeName:"Les Collons",cantonCode:"VS"},{postalCode:"3945",placeName:"Niedergampel",cantonCode:"VS"},{postalCode:"3945",placeName:"Gampel",cantonCode:"VS"},{postalCode:"3946",placeName:"Turtmann",cantonCode:"VS"},{postalCode:"3946",placeName:"Gruben",cantonCode:"VS"},{postalCode:"3947",placeName:"Ergisch",cantonCode:"VS"},{postalCode:"3948",placeName:"Unterems",cantonCode:"VS"},{postalCode:"3948",placeName:"Oberems",cantonCode:"VS"},{postalCode:"3951",placeName:"Agarn",cantonCode:"VS"},{postalCode:"3952",placeName:"Susten",cantonCode:"VS"},{postalCode:"3953",placeName:"Inden",cantonCode:"VS"},{postalCode:"3953",placeName:"Leuk Stadt",cantonCode:"VS"},{postalCode:"3953",placeName:"Varen",cantonCode:"VS"},{postalCode:"3954",placeName:"Leukerbad",cantonCode:"VS"},{postalCode:"3955",placeName:"Albinen",cantonCode:"VS"},{postalCode:"3956",placeName:"Guttet-Feschel",cantonCode:"VS"},{postalCode:"3957",placeName:"Bratsch",cantonCode:"VS"},{postalCode:"3957",placeName:"Erschmatt",cantonCode:"VS"},{postalCode:"3970",placeName:"Salgesch",cantonCode:"VS"},{postalCode:"1906",placeName:"Charrat",cantonCode:"VS"},{postalCode:"1907",placeName:"Saxon",cantonCode:"VS"},{postalCode:"1908",placeName:"Riddes",cantonCode:"VS"},{postalCode:"1911",placeName:"Ovronnaz",cantonCode:"VS"},{postalCode:"1912",placeName:"Produit (Leytron)",cantonCode:"VS"},{postalCode:"1912",placeName:"Dugny (Leytron)",cantonCode:"VS"},{postalCode:"1912",placeName:"Leytron",cantonCode:"VS"},{postalCode:"1912",placeName:"Montagnon (Leytron)",cantonCode:"VS"},{postalCode:"1913",placeName:"Saillon",cantonCode:"VS"},{postalCode:"1913",placeName:"Saillon",cantonCode:"VS"},{postalCode:"1914",placeName:"Auddes-sur-Riddes",cantonCode:"VS"},{postalCode:"1914",placeName:"Isérables",cantonCode:"VS"},{postalCode:"1918",placeName:"La Tzoumaz",cantonCode:"VS"},{postalCode:"1919",placeName:"Martigny Groupe Mutuel",cantonCode:"VS"},{postalCode:"1919",placeName:"Martigny Mutuel",cantonCode:"VS"},{postalCode:"1920",placeName:"Martigny",cantonCode:"VS"},{postalCode:"1920",placeName:"Martigny 1",cantonCode:"VS"},{postalCode:"1921",placeName:"Martigny-Croix",cantonCode:"VS"},{postalCode:"1926",placeName:"Fully",cantonCode:"VS"},{postalCode:"1928",placeName:"Ravoire",cantonCode:"VS"},{postalCode:"1929",placeName:"Trient",cantonCode:"VS"},{postalCode:"1932",placeName:"Bovernier",cantonCode:"VS"},{postalCode:"1932",placeName:"Les Valettes (Bovernier)",cantonCode:"VS"},{postalCode:"1868",placeName:"Collombey",cantonCode:"VS"},{postalCode:"1870",placeName:"Monthey 2",cantonCode:"VS"},{postalCode:"1870",placeName:"Monthey",cantonCode:"VS"},{postalCode:"1870",placeName:"Monthey",cantonCode:"VS"},{postalCode:"1870",placeName:"Monthey 1",cantonCode:"VS"},{postalCode:"1871",placeName:"Les Giettes",cantonCode:"VS"},{postalCode:"1871",placeName:"Choëx",cantonCode:"VS"},{postalCode:"1872",placeName:"Troistorrents",cantonCode:"VS"},{postalCode:"1873",placeName:"Val-d'Illiez",cantonCode:"VS"},{postalCode:"1873",placeName:"Les Crosets",cantonCode:"VS"},{postalCode:"1873",placeName:"Champoussin",cantonCode:"VS"},{postalCode:"1874",placeName:"Champéry",cantonCode:"VS"},{postalCode:"1875",placeName:"Morgins",cantonCode:"VS"},{postalCode:"1893",placeName:"Muraz (Collombey)",cantonCode:"VS"},{postalCode:"1895",placeName:"Vionnaz",cantonCode:"VS"},{postalCode:"1896",placeName:"Vouvry",cantonCode:"VS"},{postalCode:"1896",placeName:"Miex",cantonCode:"VS"},{postalCode:"1897",placeName:"Les Evouettes",cantonCode:"VS"},{postalCode:"1897",placeName:"Bouveret",cantonCode:"VS"},{postalCode:"1898",placeName:"St-Gingolph",cantonCode:"VS"},{postalCode:"1899",placeName:"Torgon",cantonCode:"VS"},{postalCode:"3916",placeName:"Ferden",cantonCode:"VS"},{postalCode:"3917",placeName:"Goppenstein",cantonCode:"VS"},{postalCode:"3917",placeName:"Kippel",cantonCode:"VS"},{postalCode:"3918",placeName:"Wiler (Lötschen)",cantonCode:"VS"},{postalCode:"3919",placeName:"Blatten (Lötschen)",cantonCode:"VS"},{postalCode:"3935",placeName:"Bürchen",cantonCode:"VS"},{postalCode:"3938",placeName:"Ausserberg",cantonCode:"VS"},{postalCode:"3940",placeName:"Steg VS",cantonCode:"VS"},{postalCode:"3942",placeName:"Niedergesteln",cantonCode:"VS"},{postalCode:"3942",placeName:"St. German",cantonCode:"VS"},{postalCode:"3942",placeName:"Raron",cantonCode:"VS"},{postalCode:"3943",placeName:"Eischoll",cantonCode:"VS"},{postalCode:"3944",placeName:"Unterbäch VS",cantonCode:"VS"},{postalCode:"3949",placeName:"Hohtenn",cantonCode:"VS"},{postalCode:"3982",placeName:"Bitsch",cantonCode:"VS"},{postalCode:"3983",placeName:"Filet",cantonCode:"VS"},{postalCode:"3983",placeName:"Mörel",cantonCode:"VS"},{postalCode:"3983",placeName:"Bister",cantonCode:"VS"},{postalCode:"3983",placeName:"Greich",cantonCode:"VS"},{postalCode:"3983",placeName:"Goppisberg",cantonCode:"VS"},{postalCode:"3986",placeName:"Ried-Mörel",cantonCode:"VS"},{postalCode:"3987",placeName:"Riederalp",cantonCode:"VS"},{postalCode:"3991",placeName:"Betten",cantonCode:"VS"},{postalCode:"3992",placeName:"Bettmeralp",cantonCode:"VS"},{postalCode:"3993",placeName:"Grengiols",cantonCode:"VS"},{postalCode:"3994",placeName:"Martisberg",cantonCode:"VS"},{postalCode:"1869",placeName:"Massongex",cantonCode:"VS"},{postalCode:"1890",placeName:"St-Maurice",cantonCode:"VS"},{postalCode:"1890",placeName:"Mex VS",cantonCode:"VS"},{postalCode:"1891",placeName:"Vérossaz",cantonCode:"VS"},{postalCode:"1902",placeName:"Evionnaz",cantonCode:"VS"},{postalCode:"1903",placeName:"Collonges",cantonCode:"VS"},{postalCode:"1904",placeName:"Vernayaz",cantonCode:"VS"},{postalCode:"1905",placeName:"Dorénaz",cantonCode:"VS"},{postalCode:"1922",placeName:"Les Granges (Salvan)",cantonCode:"VS"},{postalCode:"1922",placeName:"Salvan",cantonCode:"VS"},{postalCode:"1923",placeName:"Les Marécottes",cantonCode:"VS"},{postalCode:"1923",placeName:"Le Trétien",cantonCode:"VS"},{postalCode:"1925",placeName:"Le Châtelard VS",cantonCode:"VS"},{postalCode:"1925",placeName:"Finhaut",cantonCode:"VS"},{postalCode:"1958",placeName:"St-Léonard",cantonCode:"VS"},{postalCode:"1977",placeName:"Icogne",cantonCode:"VS"},{postalCode:"1978",placeName:"Lens",cantonCode:"VS"},{postalCode:"3960",placeName:"Loc",cantonCode:"VS"},{postalCode:"3960",placeName:"Niouc",cantonCode:"VS"},{postalCode:"3960",placeName:"Sierre",cantonCode:"VS"},{postalCode:"3960",placeName:"Corin-de-la-Crête",cantonCode:"VS"},{postalCode:"3960",placeName:"Muraz (Sierre)",cantonCode:"VS"},{postalCode:"3961",placeName:"St-Jean VS",cantonCode:"VS"},{postalCode:"3961",placeName:"Chandolin",cantonCode:"VS"},{postalCode:"3961",placeName:"Zinal",cantonCode:"VS"},{postalCode:"3961",placeName:"Ayer",cantonCode:"VS"},{postalCode:"3961",placeName:"St-Luc",cantonCode:"VS"},{postalCode:"3961",placeName:"Mission",cantonCode:"VS"},{postalCode:"3961",placeName:"Grimentz",cantonCode:"VS"},{postalCode:"3961",placeName:"Vissoie",cantonCode:"VS"},{postalCode:"3963",placeName:"Crans-Montana 1",cantonCode:"VS"},{postalCode:"3963",placeName:"Crans-Montana",cantonCode:"VS"},{postalCode:"3963",placeName:"Montana",cantonCode:"VS"},{postalCode:"3963",placeName:"Crans-Montana 2",cantonCode:"VS"},{postalCode:"3963",placeName:"Aminona",cantonCode:"VS"},{postalCode:"3965",placeName:"Chippis",cantonCode:"VS"},{postalCode:"3966",placeName:"Réchy",cantonCode:"VS"},{postalCode:"3966",placeName:"Chalais",cantonCode:"VS"},{postalCode:"3967",placeName:"Vercorin",cantonCode:"VS"},{postalCode:"3968",placeName:"Veyras",cantonCode:"VS"},{postalCode:"3971",placeName:"Chermignon",cantonCode:"VS"},{postalCode:"3971",placeName:"Chermignon-d'en-Bas",cantonCode:"VS"},{postalCode:"3971",placeName:"Ollon VS",cantonCode:"VS"},{postalCode:"3972",placeName:"Miège",cantonCode:"VS"},{postalCode:"3973",placeName:"Venthône",cantonCode:"VS"},{postalCode:"3974",placeName:"Mollens VS",cantonCode:"VS"},{postalCode:"3975",placeName:"Randogne",cantonCode:"VS"},{postalCode:"3976",placeName:"Noës",cantonCode:"VS"},{postalCode:"3976",placeName:"Champzabé",cantonCode:"VS"},{postalCode:"3977",placeName:"Granges VS",cantonCode:"VS"},{postalCode:"3978",placeName:"Flanthey",cantonCode:"VS"},{postalCode:"3979",placeName:"Grône",cantonCode:"VS"},{postalCode:"1950",placeName:"Sion",cantonCode:"VS"},{postalCode:"1950",placeName:"Sion 2",cantonCode:"VS"},{postalCode:"1950",placeName:"Sion 4",cantonCode:"VS"},{postalCode:"1951",placeName:"Sion",cantonCode:"VS"},{postalCode:"1958",placeName:"Uvrier",cantonCode:"VS"},{postalCode:"1962",placeName:"Pont-de-la-Morge (Sion)",cantonCode:"VS"},{postalCode:"1965",placeName:"Chandolin (Savièse)",cantonCode:"VS"},{postalCode:"1965",placeName:"Granois (Savièse)",cantonCode:"VS"},{postalCode:"1965",placeName:"Diolly (Savièse)",cantonCode:"VS"},{postalCode:"1965",placeName:"Mayens-de-la-Zour (Savièse)",cantonCode:"VS"},{postalCode:"1965",placeName:"La Muraz (Savièse)",cantonCode:"VS"},{postalCode:"1965",placeName:"Ormône (Savièse)",cantonCode:"VS"},{postalCode:"1965",placeName:"Drône (Savièse)",cantonCode:"VS"},{postalCode:"1965",placeName:"Savièse",cantonCode:"VS"},{postalCode:"1965",placeName:"Monteiller (Savièse)",cantonCode:"VS"},{postalCode:"1965",placeName:"St-Germain (Savièse)",cantonCode:"VS"},{postalCode:"1965",placeName:"Roumaz (Savièse)",cantonCode:"VS"},{postalCode:"1967",placeName:"Bramois",cantonCode:"VS"},{postalCode:"1971",placeName:"Grimisuat",cantonCode:"VS"},{postalCode:"1971",placeName:"Champlan (Grimisuat)",cantonCode:"VS"},{postalCode:"1974",placeName:"Arbaz",cantonCode:"VS"},{postalCode:"1991",placeName:"Arvillard (Salins)",cantonCode:"VS"},{postalCode:"1991",placeName:"Salins",cantonCode:"VS"},{postalCode:"1991",placeName:"Turin (Salins)",cantonCode:"VS"},{postalCode:"1991",placeName:"Misériez (Salins)",cantonCode:"VS"},{postalCode:"1991",placeName:"Pravidondaz (Salins)",cantonCode:"VS"},{postalCode:"1992",placeName:"Crête-à-l'Oeil(Les Agettes)",cantonCode:"VS"},{postalCode:"1992",placeName:"Les Mayens-de-Sion",cantonCode:"VS"},{postalCode:"1992",placeName:"La Vernaz (Les Agettes)",cantonCode:"VS"},{postalCode:"1992",placeName:"Crête-à-l'Oeil (Les Agettes)",cantonCode:"VS"},{postalCode:"1992",placeName:"Les Agettes",cantonCode:"VS"},{postalCode:"1993",placeName:"Veysonnaz",cantonCode:"VS"},{postalCode:"3905",placeName:"Saas-Almagell",cantonCode:"VS"},{postalCode:"3906",placeName:"Saas-Fee",cantonCode:"VS"},{postalCode:"3908",placeName:"Saas-Balen",cantonCode:"VS"},{postalCode:"3910",placeName:"Saas-Grund",cantonCode:"VS"},{postalCode:"3920",placeName:"Zermatt",cantonCode:"VS"},{postalCode:"3922",placeName:"Eisten",cantonCode:"VS"},{postalCode:"3922",placeName:"Stalden VS",cantonCode:"VS"},{postalCode:"3922",placeName:"Kalpetran",cantonCode:"VS"},{postalCode:"3923",placeName:"Törbel",cantonCode:"VS"},{postalCode:"3924",placeName:"St. Niklaus VS",cantonCode:"VS"},{postalCode:"3925",placeName:"Grächen",cantonCode:"VS"},{postalCode:"3926",placeName:"Embd",cantonCode:"VS"},{postalCode:"3927",placeName:"Herbriggen",cantonCode:"VS"},{postalCode:"3928",placeName:"Randa",cantonCode:"VS"},{postalCode:"3929",placeName:"Täsch",cantonCode:"VS"},{postalCode:"3930",placeName:"Visp",cantonCode:"VS"},{postalCode:"3930",placeName:"Eyholz",cantonCode:"VS"},{postalCode:"3931",placeName:"Lalden",cantonCode:"VS"},{postalCode:"3932",placeName:"Visperterminen",cantonCode:"VS"},{postalCode:"3933",placeName:"Staldenried",cantonCode:"VS"},{postalCode:"3934",placeName:"Zeneggen",cantonCode:"VS"},{postalCode:"3937",placeName:"Baltschieder",cantonCode:"VS"},{postalCode:"3937",placeName:"Baltschieder",cantonCode:"VS"},{postalCode:"6300",placeName:"Zug",cantonCode:"ZG"},{postalCode:"6300",placeName:"Zugerberg",cantonCode:"ZG"},{postalCode:"6301",placeName:"Zug",cantonCode:"ZG"},{postalCode:"6302",placeName:"Zug",cantonCode:"ZG"},{postalCode:"6303",placeName:"Zug",cantonCode:"ZG"},{postalCode:"6312",placeName:"Steinhausen",cantonCode:"ZG"},{postalCode:"6313",placeName:"Edlibach",cantonCode:"ZG"},{postalCode:"6313",placeName:"Finstersee",cantonCode:"ZG"},{postalCode:"6313",placeName:"Menzingen",cantonCode:"ZG"},{postalCode:"6314",placeName:"Unterägeri",cantonCode:"ZG"},{postalCode:"6314",placeName:"Neuägeri",cantonCode:"ZG"},{postalCode:"6315",placeName:"Morgarten",cantonCode:"ZG"},{postalCode:"6315",placeName:"Oberägeri",cantonCode:"ZG"},{postalCode:"6315",placeName:"Alosen",cantonCode:"ZG"},{postalCode:"6317",placeName:"Oberwil b. Zug",cantonCode:"ZG"},{postalCode:"6318",placeName:"Walchwil",cantonCode:"ZG"},{postalCode:"6319",placeName:"Allenwinden",cantonCode:"ZG"},{postalCode:"6330",placeName:"Cham",cantonCode:"ZG"},{postalCode:"6331",placeName:"Hünenberg",cantonCode:"ZG"},{postalCode:"6332",placeName:"Hagendorn",cantonCode:"ZG"},{postalCode:"6333",placeName:"Hünenberg See",cantonCode:"ZG"},{postalCode:"6340",placeName:"Baar",cantonCode:"ZG"},{postalCode:"6340",placeName:"Sihlbrugg",cantonCode:"ZG"},{postalCode:"6341",placeName:"Baar",cantonCode:"ZG"},{postalCode:"6343",placeName:"Buonas",cantonCode:"ZG"},{postalCode:"6343",placeName:"Holzhäusern ZG",cantonCode:"ZG"},{postalCode:"6343",placeName:"Rotkreuz",cantonCode:"ZG"},{postalCode:"6343",placeName:"Risch",cantonCode:"ZG"},{postalCode:"6345",placeName:"Neuheim",cantonCode:"ZG"},{postalCode:"8143",placeName:"Stallikon",cantonCode:"ZH"},{postalCode:"8143",placeName:"Uetliberg",cantonCode:"ZH"},{postalCode:"8906",placeName:"Bonstetten",cantonCode:"ZH"},{postalCode:"8907",placeName:"Wettswil",cantonCode:"ZH"},{postalCode:"8908",placeName:"Hedingen",cantonCode:"ZH"},{postalCode:"8909",placeName:"Zwillikon",cantonCode:"ZH"},{postalCode:"8910",placeName:"Affoltern am Albis",cantonCode:"ZH"},{postalCode:"8911",placeName:"Rifferswil",cantonCode:"ZH"},{postalCode:"8912",placeName:"Obfelden",cantonCode:"ZH"},{postalCode:"8913",placeName:"Ottenbach",cantonCode:"ZH"},{postalCode:"8914",placeName:"Aeugstertal",cantonCode:"ZH"},{postalCode:"8914",placeName:"Aeugst am Albis",cantonCode:"ZH"},{postalCode:"8915",placeName:"Hausen am Albis",cantonCode:"ZH"},{postalCode:"8925",placeName:"Ebertswil",cantonCode:"ZH"},{postalCode:"8926",placeName:"Hauptikon",cantonCode:"ZH"},{postalCode:"8926",placeName:"Uerzlikon",cantonCode:"ZH"},{postalCode:"8926",placeName:"Kappel am Albis",cantonCode:"ZH"},{postalCode:"8932",placeName:"Mettmenstetten",cantonCode:"ZH"},{postalCode:"8933",placeName:"Maschwanden",cantonCode:"ZH"},{postalCode:"8934",placeName:"Knonau",cantonCode:"ZH"},{postalCode:"8212",placeName:"Nohl",cantonCode:"ZH"},{postalCode:"8245",placeName:"Feuerthalen",cantonCode:"ZH"},{postalCode:"8246",placeName:"Langwiesen",cantonCode:"ZH"},{postalCode:"8247",placeName:"Flurlingen",cantonCode:"ZH"},{postalCode:"8248",placeName:"Uhwiesen",cantonCode:"ZH"},{postalCode:"8414",placeName:"Buch am Irchel",cantonCode:"ZH"},{postalCode:"8415",placeName:"Gräslikon",cantonCode:"ZH"},{postalCode:"8415",placeName:"Berg am Irchel",cantonCode:"ZH"},{postalCode:"8416",placeName:"Flaach",cantonCode:"ZH"},{postalCode:"8444",placeName:"Henggart",cantonCode:"ZH"},{postalCode:"8447",placeName:"Dachsen",cantonCode:"ZH"},{postalCode:"8450",placeName:"Andelfingen",cantonCode:"ZH"},{postalCode:"8451",placeName:"Kleinandelfingen",cantonCode:"ZH"},{postalCode:"8452",placeName:"Adlikon b. Andelfingen",cantonCode:"ZH"},{postalCode:"8453",placeName:"Alten",cantonCode:"ZH"},{postalCode:"8457",placeName:"Humlikon",cantonCode:"ZH"},{postalCode:"8458",placeName:"Dorf",cantonCode:"ZH"},{postalCode:"8459",placeName:"Volken",cantonCode:"ZH"},{postalCode:"8460",placeName:"Marthalen",cantonCode:"ZH"},{postalCode:"8461",placeName:"Oerlingen",cantonCode:"ZH"},{postalCode:"8462",placeName:"Rheinau",cantonCode:"ZH"},{postalCode:"8463",placeName:"Benken ZH",cantonCode:"ZH"},{postalCode:"8464",placeName:"Ellikon am Rhein",cantonCode:"ZH"},{postalCode:"8465",placeName:"Wildensbuch",cantonCode:"ZH"},{postalCode:"8465",placeName:"Rudolfingen",cantonCode:"ZH"},{postalCode:"8466",placeName:"Trüllikon",cantonCode:"ZH"},{postalCode:"8467",placeName:"Truttikon",cantonCode:"ZH"},{postalCode:"8468",placeName:"Waltalingen",cantonCode:"ZH"},{postalCode:"8468",placeName:"Guntalingen",cantonCode:"ZH"},{postalCode:"8475",placeName:"Ossingen",cantonCode:"ZH"},{postalCode:"8476",placeName:"Unterstammheim",cantonCode:"ZH"},{postalCode:"8477",placeName:"Oberstammheim",cantonCode:"ZH"},{postalCode:"8478",placeName:"Thalheim an der Thur",cantonCode:"ZH"},{postalCode:"8058",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8060",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8152",placeName:"Glattbrugg",cantonCode:"ZH"},{postalCode:"8152",placeName:"Opfikon",cantonCode:"ZH"},{postalCode:"8152",placeName:"Glattpark (Opfikon)",cantonCode:"ZH"},{postalCode:"8180",placeName:"Bülach",cantonCode:"ZH"},{postalCode:"8181",placeName:"Höri",cantonCode:"ZH"},{postalCode:"8182",placeName:"Hochfelden",cantonCode:"ZH"},{postalCode:"8184",placeName:"Bachenbülach",cantonCode:"ZH"},{postalCode:"8185",placeName:"Winkel",cantonCode:"ZH"},{postalCode:"8192",placeName:"Zweidlen",cantonCode:"ZH"},{postalCode:"8192",placeName:"Glattfelden",cantonCode:"ZH"},{postalCode:"8193",placeName:"Eglisau",cantonCode:"ZH"},{postalCode:"8194",placeName:"Hüntwangen",cantonCode:"ZH"},{postalCode:"8195",placeName:"Wasterkingen",cantonCode:"ZH"},{postalCode:"8196",placeName:"Wil ZH",cantonCode:"ZH"},{postalCode:"8197",placeName:"Rafz",cantonCode:"ZH"},{postalCode:"8302",placeName:"Kloten",cantonCode:"ZH"},{postalCode:"8303",placeName:"Bassersdorf",cantonCode:"ZH"},{postalCode:"8304",placeName:"Wallisellen",cantonCode:"ZH"},{postalCode:"8305",placeName:"Dietlikon",cantonCode:"ZH"},{postalCode:"8309",placeName:"Nürensdorf",cantonCode:"ZH"},{postalCode:"8424",placeName:"Embrach",cantonCode:"ZH"},{postalCode:"8425",placeName:"Oberembrach",cantonCode:"ZH"},{postalCode:"8426",placeName:"Lufingen",cantonCode:"ZH"},{postalCode:"8427",placeName:"Freienstein",cantonCode:"ZH"},{postalCode:"8427",placeName:"Rorbas",cantonCode:"ZH"},{postalCode:"8428",placeName:"Teufen ZH",cantonCode:"ZH"},{postalCode:"8105",placeName:"Regensdorf",cantonCode:"ZH"},{postalCode:"8105",placeName:"Watt",cantonCode:"ZH"},{postalCode:"8106",placeName:"Adlikon b. Regensdorf",cantonCode:"ZH"},{postalCode:"8107",placeName:"Buchs ZH",cantonCode:"ZH"},{postalCode:"8108",placeName:"Dällikon",cantonCode:"ZH"},{postalCode:"8112",placeName:"Otelfingen",cantonCode:"ZH"},{postalCode:"8113",placeName:"Boppelsen",cantonCode:"ZH"},{postalCode:"8114",placeName:"Dänikon ZH",cantonCode:"ZH"},{postalCode:"8115",placeName:"Hüttikon",cantonCode:"ZH"},{postalCode:"8153",placeName:"Rümlang",cantonCode:"ZH"},{postalCode:"8154",placeName:"Oberglatt ZH",cantonCode:"ZH"},{postalCode:"8155",placeName:"Nassenwil",cantonCode:"ZH"},{postalCode:"8155",placeName:"Niederhasli",cantonCode:"ZH"},{postalCode:"8156",placeName:"Oberhasli",cantonCode:"ZH"},{postalCode:"8157",placeName:"Dielsdorf",cantonCode:"ZH"},{postalCode:"8158",placeName:"Regensberg",cantonCode:"ZH"},{postalCode:"8162",placeName:"Steinmaur",cantonCode:"ZH"},{postalCode:"8162",placeName:"Sünikon",cantonCode:"ZH"},{postalCode:"8164",placeName:"Bachs",cantonCode:"ZH"},{postalCode:"8165",placeName:"Oberweningen",cantonCode:"ZH"},{postalCode:"8165",placeName:"Schleinikon",cantonCode:"ZH"},{postalCode:"8165",placeName:"Schöfflisdorf",cantonCode:"ZH"},{postalCode:"8166",placeName:"Niederweningen",cantonCode:"ZH"},{postalCode:"8172",placeName:"Niederglatt ZH",cantonCode:"ZH"},{postalCode:"8173",placeName:"Neerach",cantonCode:"ZH"},{postalCode:"8174",placeName:"Stadel b. Niederglatt",cantonCode:"ZH"},{postalCode:"8175",placeName:"Windlach",cantonCode:"ZH"},{postalCode:"8187",placeName:"Weiach",cantonCode:"ZH"},{postalCode:"8340",placeName:"Hinwil",cantonCode:"ZH"},{postalCode:"8342",placeName:"Wernetshausen",cantonCode:"ZH"},{postalCode:"8344",placeName:"Bäretswil",cantonCode:"ZH"},{postalCode:"8345",placeName:"Adetswil",cantonCode:"ZH"},{postalCode:"8496",placeName:"Steg im Tösstal",cantonCode:"ZH"},{postalCode:"8497",placeName:"Fischenthal",cantonCode:"ZH"},{postalCode:"8498",placeName:"Gibswil",cantonCode:"ZH"},{postalCode:"8607",placeName:"Aathal-Seegräben",cantonCode:"ZH"},{postalCode:"8608",placeName:"Bubikon",cantonCode:"ZH"},{postalCode:"8614",placeName:"Bertschikon (Gossau ZH)",cantonCode:"ZH"},{postalCode:"8620",placeName:"Wetzikon ZH",cantonCode:"ZH"},{postalCode:"8620",placeName:"Wetzikon ZH 1",cantonCode:"ZH"},{postalCode:"8623",placeName:"Wetzikon ZH",cantonCode:"ZH"},{postalCode:"8624",placeName:"Grüt (Gossau ZH)",cantonCode:"ZH"},{postalCode:"8625",placeName:"Gossau ZH",cantonCode:"ZH"},{postalCode:"8626",placeName:"Ottikon (Gossau ZH)",cantonCode:"ZH"},{postalCode:"8627",placeName:"Grüningen",cantonCode:"ZH"},{postalCode:"8630",placeName:"Rüti ZH",cantonCode:"ZH"},{postalCode:"8632",placeName:"Tann",cantonCode:"ZH"},{postalCode:"8633",placeName:"Wolfhausen",cantonCode:"ZH"},{postalCode:"8635",placeName:"Dürnten",cantonCode:"ZH"},{postalCode:"8636",placeName:"Wald ZH",cantonCode:"ZH"},{postalCode:"8637",placeName:"Laupen ZH",cantonCode:"ZH"},{postalCode:"8134",placeName:"Adliswil",cantonCode:"ZH"},{postalCode:"8134",placeName:"Adliswil 1",cantonCode:"ZH"},{postalCode:"8135",placeName:"Sihlwald",cantonCode:"ZH"},{postalCode:"8135",placeName:"Sihlbrugg Station",cantonCode:"ZH"},{postalCode:"8135",placeName:"Langnau am Albis",cantonCode:"ZH"},{postalCode:"8136",placeName:"Gattikon",cantonCode:"ZH"},{postalCode:"8800",placeName:"Thalwil",cantonCode:"ZH"},{postalCode:"8802",placeName:"Kilchberg ZH",cantonCode:"ZH"},{postalCode:"8803",placeName:"Rüschlikon",cantonCode:"ZH"},{postalCode:"8804",placeName:"Au ZH",cantonCode:"ZH"},{postalCode:"8805",placeName:"Richterswil",cantonCode:"ZH"},{postalCode:"8810",placeName:"Horgen",cantonCode:"ZH"},{postalCode:"8810",placeName:"Horgen 1",cantonCode:"ZH"},{postalCode:"8815",placeName:"Horgenberg",cantonCode:"ZH"},{postalCode:"8816",placeName:"Hirzel",cantonCode:"ZH"},{postalCode:"8820",placeName:"Wädenswil",cantonCode:"ZH"},{postalCode:"8824",placeName:"Schönenberg ZH",cantonCode:"ZH"},{postalCode:"8825",placeName:"Hütten",cantonCode:"ZH"},{postalCode:"8833",placeName:"Samstagern",cantonCode:"ZH"},{postalCode:"8942",placeName:"Oberrieden",cantonCode:"ZH"},{postalCode:"8125",placeName:"Zollikerberg",cantonCode:"ZH"},{postalCode:"8126",placeName:"Zumikon",cantonCode:"ZH"},{postalCode:"8127",placeName:"Forch",cantonCode:"ZH"},{postalCode:"8618",placeName:"Oetwil am See",cantonCode:"ZH"},{postalCode:"8634",placeName:"Hombrechtikon",cantonCode:"ZH"},{postalCode:"8700",placeName:"Küsnacht ZH",cantonCode:"ZH"},{postalCode:"8702",placeName:"Zollikon Dorf",cantonCode:"ZH"},{postalCode:"8702",placeName:"Zollikon",cantonCode:"ZH"},{postalCode:"8703",placeName:"Erlenbach ZH",cantonCode:"ZH"},{postalCode:"8704",placeName:"Herrliberg",cantonCode:"ZH"},{postalCode:"8706",placeName:"Meilen",cantonCode:"ZH"},{postalCode:"8707",placeName:"Uetikon am See",cantonCode:"ZH"},{postalCode:"8708",placeName:"Männedorf",cantonCode:"ZH"},{postalCode:"8712",placeName:"Stäfa",cantonCode:"ZH"},{postalCode:"8713",placeName:"Uerikon",cantonCode:"ZH"},{postalCode:"8714",placeName:"Feldbach",cantonCode:"ZH"},{postalCode:"8307",placeName:"Effretikon",cantonCode:"ZH"},{postalCode:"8307",placeName:"Ottikon b. Kemptthal",cantonCode:"ZH"},{postalCode:"8308",placeName:"Illnau",cantonCode:"ZH"},{postalCode:"8308",placeName:"Agasul",cantonCode:"ZH"},{postalCode:"8310",placeName:"Kemptthal",cantonCode:"ZH"},{postalCode:"8310",placeName:"Grafstal",cantonCode:"ZH"},{postalCode:"8312",placeName:"Winterberg ZH",cantonCode:"ZH"},{postalCode:"8314",placeName:"Kyburg",cantonCode:"ZH"},{postalCode:"8315",placeName:"Lindau",cantonCode:"ZH"},{postalCode:"8317",placeName:"Tagelswangen",cantonCode:"ZH"},{postalCode:"8320",placeName:"Fehraltorf",cantonCode:"ZH"},{postalCode:"8322",placeName:"Madetswil",cantonCode:"ZH"},{postalCode:"8322",placeName:"Gündisau",cantonCode:"ZH"},{postalCode:"8330",placeName:"Pfäffikon ZH",cantonCode:"ZH"},{postalCode:"8331",placeName:"Auslikon",cantonCode:"ZH"},{postalCode:"8332",placeName:"Rumlikon",cantonCode:"ZH"},{postalCode:"8332",placeName:"Russikon",cantonCode:"ZH"},{postalCode:"8335",placeName:"Hittnau",cantonCode:"ZH"},{postalCode:"8484",placeName:"Neschwil",cantonCode:"ZH"},{postalCode:"8484",placeName:"Weisslingen",cantonCode:"ZH"},{postalCode:"8484",placeName:"Theilingen",cantonCode:"ZH"},{postalCode:"8489",placeName:"Wildberg",cantonCode:"ZH"},{postalCode:"8489",placeName:"Schalchen",cantonCode:"ZH"},{postalCode:"8489",placeName:"Ehrikon",cantonCode:"ZH"},{postalCode:"8492",placeName:"Wila",cantonCode:"ZH"},{postalCode:"8493",placeName:"Saland",cantonCode:"ZH"},{postalCode:"8494",placeName:"Bauma",cantonCode:"ZH"},{postalCode:"8499",placeName:"Sternenberg",cantonCode:"ZH"},{postalCode:"8044",placeName:"Gockhausen",cantonCode:"ZH"},{postalCode:"8117",placeName:"Fällanden",cantonCode:"ZH"},{postalCode:"8118",placeName:"Pfaffhausen",cantonCode:"ZH"},{postalCode:"8121",placeName:"Benglen",cantonCode:"ZH"},{postalCode:"8122",placeName:"Binz",cantonCode:"ZH"},{postalCode:"8123",placeName:"Ebmatingen",cantonCode:"ZH"},{postalCode:"8124",placeName:"Maur",cantonCode:"ZH"},{postalCode:"8132",placeName:"Egg b. Zürich",cantonCode:"ZH"},{postalCode:"8132",placeName:"Hinteregg",cantonCode:"ZH"},{postalCode:"8133",placeName:"Esslingen",cantonCode:"ZH"},{postalCode:"8306",placeName:"Brüttisellen",cantonCode:"ZH"},{postalCode:"8600",placeName:"Dübendorf 1",cantonCode:"ZH"},{postalCode:"8600",placeName:"Dübendorf",cantonCode:"ZH"},{postalCode:"8602",placeName:"Wangen b. Dübendorf",cantonCode:"ZH"},{postalCode:"8603",placeName:"Schwerzenbach",cantonCode:"ZH"},{postalCode:"8604",placeName:"Volketswil",cantonCode:"ZH"},{postalCode:"8605",placeName:"Gutenswil",cantonCode:"ZH"},{postalCode:"8606",placeName:"Greifensee",cantonCode:"ZH"},{postalCode:"8606",placeName:"Nänikon",cantonCode:"ZH"},{postalCode:"8610",placeName:"Uster",cantonCode:"ZH"},{postalCode:"8610",placeName:"Uster 1",cantonCode:"ZH"},{postalCode:"8613",placeName:"Uster 3",cantonCode:"ZH"},{postalCode:"8614",placeName:"Sulzbach",cantonCode:"ZH"},{postalCode:"8615",placeName:"Wermatswil",cantonCode:"ZH"},{postalCode:"8615",placeName:"Freudwil",cantonCode:"ZH"},{postalCode:"8616",placeName:"Riedikon",cantonCode:"ZH"},{postalCode:"8617",placeName:"Mönchaltorf",cantonCode:"ZH"},{postalCode:"8311",placeName:"Brütten",cantonCode:"ZH"},{postalCode:"8352",placeName:"Elsau",cantonCode:"ZH"},{postalCode:"8352",placeName:"Ricketwil (Winterthur)",cantonCode:"ZH"},{postalCode:"8353",placeName:"Elgg",cantonCode:"ZH"},{postalCode:"8354",placeName:"Hofstetten ZH",cantonCode:"ZH"},{postalCode:"8354",placeName:"Dickbuch",cantonCode:"ZH"},{postalCode:"8400",placeName:"Winterthur",cantonCode:"ZH"},{postalCode:"8401",placeName:"Winterthur",cantonCode:"ZH"},{postalCode:"8403",placeName:"Winterthur",cantonCode:"ZH"},{postalCode:"8404",placeName:"Stadel (Winterthur)",cantonCode:"ZH"},{postalCode:"8404",placeName:"Reutlingen (Winterthur)",cantonCode:"ZH"},{postalCode:"8404",placeName:"Winterthur",cantonCode:"ZH"},{postalCode:"8405",placeName:"Winterthur",cantonCode:"ZH"},{postalCode:"8406",placeName:"Winterthur",cantonCode:"ZH"},{postalCode:"8408",placeName:"Winterthur",cantonCode:"ZH"},{postalCode:"8409",placeName:"Winterthur",cantonCode:"ZH"},{postalCode:"8412",placeName:"Hünikon (Neftenbach)",cantonCode:"ZH"},{postalCode:"8412",placeName:"Aesch (Neftenbach)",cantonCode:"ZH"},{postalCode:"8412",placeName:"Riet (Neftenbach)",cantonCode:"ZH"},{postalCode:"8413",placeName:"Neftenbach",cantonCode:"ZH"},{postalCode:"8418",placeName:"Schlatt ZH",cantonCode:"ZH"},{postalCode:"8421",placeName:"Dättlikon",cantonCode:"ZH"},{postalCode:"8422",placeName:"Pfungen",cantonCode:"ZH"},{postalCode:"8442",placeName:"Hettlingen",cantonCode:"ZH"},{postalCode:"8471",placeName:"Berg (Dägerlen)",cantonCode:"ZH"},{postalCode:"8471",placeName:"Dägerlen",cantonCode:"ZH"},{postalCode:"8471",placeName:"Bänk (Dägerlen)",cantonCode:"ZH"},{postalCode:"8471",placeName:"Oberwil (Dägerlen)",cantonCode:"ZH"},{postalCode:"8471",placeName:"Rutschwil (Dägerlen)",cantonCode:"ZH"},{postalCode:"8472",placeName:"Seuzach",cantonCode:"ZH"},{postalCode:"8474",placeName:"Dinhard",cantonCode:"ZH"},{postalCode:"8479",placeName:"Altikon",cantonCode:"ZH"},{postalCode:"8482",placeName:"Sennhof (Winterthur)",cantonCode:"ZH"},{postalCode:"8483",placeName:"Kollbrunn",cantonCode:"ZH"},{postalCode:"8486",placeName:"Rikon im Tösstal",cantonCode:"ZH"},{postalCode:"8487",placeName:"Rämismühle",cantonCode:"ZH"},{postalCode:"8487",placeName:"Zell ZH",cantonCode:"ZH"},{postalCode:"8488",placeName:"Turbenthal",cantonCode:"ZH"},{postalCode:"8495",placeName:"Schmidrüti",cantonCode:"ZH"},{postalCode:"8523",placeName:"Hagenbuch ZH",cantonCode:"ZH"},{postalCode:"8542",placeName:"Wiesendangen",cantonCode:"ZH"},{postalCode:"8543",placeName:"Gundetswil",cantonCode:"ZH"},{postalCode:"8543",placeName:"Kefikon ZH",cantonCode:"ZH"},{postalCode:"8543",placeName:"Bertschikon",cantonCode:"ZH"},{postalCode:"8544",placeName:"Attikon",cantonCode:"ZH"},{postalCode:"8545",placeName:"Rickenbach ZH",cantonCode:"ZH"},{postalCode:"8545",placeName:"Rickenbach Sulz",cantonCode:"ZH"},{postalCode:"8546",placeName:"Menzengrüt",cantonCode:"ZH"},{postalCode:"8548",placeName:"Ellikon an der Thur",cantonCode:"ZH"},{postalCode:"8010",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8011",placeName:"Zürich Mülligen SC",cantonCode:"ZH"},{postalCode:"8012",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8102",placeName:"Oberengstringen",cantonCode:"ZH"},{postalCode:"8103",placeName:"Unterengstringen",cantonCode:"ZH"},{postalCode:"8104",placeName:"Weiningen ZH",cantonCode:"ZH"},{postalCode:"8142",placeName:"Uitikon Waldegg",cantonCode:"ZH"},{postalCode:"8901",placeName:"Urdorf",cantonCode:"ZH"},{postalCode:"8901",placeName:"Urdorf Tessi",cantonCode:"ZH"},{postalCode:"8902",placeName:"Urdorf",cantonCode:"ZH"},{postalCode:"8903",placeName:"Birmensdorf ZH",cantonCode:"ZH"},{postalCode:"8904",placeName:"Aesch ZH",cantonCode:"ZH"},{postalCode:"8951",placeName:"Fahrweid",cantonCode:"ZH"},{postalCode:"8952",placeName:"Schlieren",cantonCode:"ZH"},{postalCode:"8953",placeName:"Dietikon 2",cantonCode:"ZH"},{postalCode:"8953",placeName:"Dietikon",cantonCode:"ZH"},{postalCode:"8953",placeName:"Dietikon 1",cantonCode:"ZH"},{postalCode:"8954",placeName:"Geroldswil",cantonCode:"ZH"},{postalCode:"8955",placeName:"Oetwil an der Limmat",cantonCode:"ZH"},{postalCode:"8000",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8001",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8002",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8003",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8004",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8005",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8006",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8008",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8017",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8018",placeName:"Zürich PF",cantonCode:"ZH"},{postalCode:"8021",placeName:"Zürich 1",cantonCode:"ZH"},{postalCode:"8022",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8024",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8027",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8031",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8032",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8034",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8036",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8037",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8038",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8040",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8041",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8042",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8044",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8045",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8046",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8047",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8048",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8049",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8050",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8051",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8052",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8053",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8055",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8057",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8063",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8064",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8070",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8071",placeName:"Zürich CS PZ",cantonCode:"ZH"},{postalCode:"8074",placeName:"Zürich Voice Pub",cantonCode:"ZH"},{postalCode:"8074",placeName:"Zürich Voice Publishing",cantonCode:"ZH"},{postalCode:"8075",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8080",placeName:"Zürich 80",cantonCode:"ZH"},{postalCode:"8081",placeName:"Zürich Helsana",cantonCode:"ZH"},{postalCode:"8081",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8085",placeName:"Zürich Versicherung",cantonCode:"ZH"},{postalCode:"8085",placeName:"Zürich Versich.",cantonCode:"ZH"},{postalCode:"8086",placeName:"Zürich R Digest",cantonCode:"ZH"},{postalCode:"8086",placeName:"Zürich Reader's Digest",cantonCode:"ZH"},{postalCode:"8087",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8088",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8090",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8091",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8092",placeName:"Zürich ETH-Zentrum",cantonCode:"ZH"},{postalCode:"8092",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8093",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8093",placeName:"Zürich ETH-Hönggerberg",cantonCode:"ZH"},{postalCode:"8096",placeName:"Zürich IBRS local",cantonCode:"ZH"},{postalCode:"8098",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8099",placeName:"Zürich",cantonCode:"ZH"},{postalCode:"8099",placeName:"Zürich Sonderdienste",cantonCode:"ZH"}];function de(G){const g=String(G).trim();if(!/^[0-9]{1,4}$/.test(g))return[];const u=ee.filter(C=>C.postalCode.startsWith(g)).map(C=>C.postalCode);return Array.from(new Set(u)).sort()}function y(G){const g=String(G).trim();return g.length<4?[]:ee.filter(u=>u.postalCode===g)}const X=Array.from(new Set(ee.map(G=>G.postalCode))).sort(),Ae={class:"text-h6"},De={key:0},He={class:"row items-center q-gutter-sm"},Ze={class:"col-4"},fe={class:"col"},Fe={key:1,class:"row items-center q-gutter-sm"},Ie=pe({__name:"AddressModal",props:{modelValue:{type:Boolean},modelAddress:{},title:{},allowForeign:{type:Boolean,default:!0}},emits:["update:modelValue","save","cancel"],setup(G,{emit:g}){function u(n,a){a(()=>{const e=String(n||"").replace(/\D/g,"").slice(0,4),l=de(e);w.value=l.map(t=>({zip:t,label:t}))})}const C=G,{allowForeign:L}=re(C),z=g,{t:p,locale:M}=se(),V=E(!!C.modelValue);H(()=>C.modelValue,n=>V.value=!!n),H(V,n=>{z("update:modelValue",n),n&&d()});function d(){const n=C.modelAddress||{};if(Object.assign(o,{...T(),...n}),S(n.country)&&(o.country=n.country.code||""),L.value||(o.foreign=!1),o.zip){const a=String(o.zip||"").replace(/\D/g,"").slice(0,4);if(o.zip=a,!o.foreign&&a.length&&(X.includes(a)&&(h.value=a),a.length>=4)){const e=y(a);if(e&&e.length){const l=e[0];o.city=l?.placeName||"",o.zip=l?.postalCode||"",o.canton=l?.cantonCode||null,h.value=l?.postalCode||""}}}}const T=()=>({street:"",zip:"",city:"",country:"",canton:"",foreign:!1}),o=Ce({...T(),...C.modelAddress||{}});function S(n){return typeof n=="object"&&n!==null&&Object.prototype.hasOwnProperty.call(n,"code")}C.modelAddress&&S(C.modelAddress.country)&&(o.country=C.modelAddress.country.code||"");const r=E(null);function b(){const n=p("validation.required")||"Required";return a=>a==null?n:typeof a=="string"?a.trim()!==""||n:!0}const P=n=>{if(n==null||n==="")return p("validation.required")||"Required";if(typeof n!="string"&&typeof n!="number")return p("validation.invalidZip")||"Invalid ZIP";const a=String(n).trim();return/^\d{1,4}$/.test(a)?!0:p("validation.invalidZip")||"Invalid ZIP"};H(()=>C.modelAddress,n=>{const a=n;Object.assign(o,{...T(),...a||{}}),S(a?.country)&&(o.country=a?.country?.code||""),a&&Object.prototype.hasOwnProperty.call(a,"canton")&&(o.canton=a.canton||""),oe(()=>r.value?.resetValidation?.()),d()},{deep:!0}),H(L,n=>{n||(o.foreign=!1)});async function K(){try{if(await(r.value?.validate?.()??!0)===!1)return}catch{return}const n={...o};if(o.foreign){const a=typeof o.country=="string"?o.country:"",e=A.value.find(l=>l.value===a)?.label||a;n.country=a?{code:a,name:e}:"",n.canton=""}else{try{const a=new Intl.DisplayNames([String(M.value)],{type:"region"});n.country={code:"CH",name:a.of("CH")||"Switzerland"}}catch{n.country={code:"CH",name:"Switzerland"}}n.canton=o.canton||""}z("save",n),V.value=!1}function W(){z("cancel"),V.value=!1}const A=x(()=>{try{const n=new Intl.DisplayNames([String(M.value)],{type:"region"});return ce.map(a=>({value:a,label:n.of(a)||a}))}catch{return ce.map(n=>({value:n,label:n}))}}),D=x(()=>w.value),w=E(X.map(n=>({zip:n,label:n}))),h=E(null);function _(n){const a=String(n||"").replace(/\D/g,"").slice(0,4);o.zip!==a&&(o.zip=a)}function q(n){const a=String(n||"").replace(/\D/g,"").slice(0,4);if(w.value=de(a).map(e=>({zip:e,label:e})),!o.foreign&&(o.zip!==a&&(o.zip=a),a.length>=4)){const e=y(a);if(e&&e.length){const l=e[0];o.zip=l?.postalCode||"",o.city=l?.placeName||"",o.canton=l?.cantonCode||"",h.value=l?.postalCode||""}}}H(h,n=>{if(!n)return;const a=y(n)[0];a&&(o.zip=a.postalCode,o.canton=a.cantonCode||"")});function Q(){const n=h.value;if(!n)return;const a=y(n);if(a&&a.length){const e=a[0];o.zip=e?.postalCode||"",o.city=e?.placeName||"",o.canton=e?.cantonCode||""}}H(()=>o.zip,n=>{if(!o.foreign&&n){const a=String(n||"").replace(/\D/g,"").slice(0,4);if(a!==n){o.zip=a;return}if(X.includes(a)&&(h.value=a),a.length>=4){const e=y(a);if(e&&e.length){const l=e[0];o.city=l?.placeName||"",o.zip=l?.postalCode||a,h.value=l?.postalCode||a}}}});const j=C.title||p("address.modalTitle")||p("address.title")||"Address";return oe(()=>{(C.modelValue||C.modelAddress)&&d()}),(n,a)=>(B(),I(ie,{modelValue:V.value,"onUpdate:modelValue":a[7]||(a[7]=e=>V.value=e),persistent:""},{default:R(()=>[m(Ge,{class:"contained-card"},{default:R(()=>[m(ue,null,{default:R(()=>[i("div",Ae,f(N(j)),1),m(Ve,{ref_key:"formRef",ref:r,class:"q-gutter-md q-mt-md"},{default:R(()=>[m(O,{modelValue:o.street,"onUpdate:modelValue":a[0]||(a[0]=e=>o.street=e),label:N(p)("address.street"),rules:[b()]},null,8,["modelValue","label","rules"]),o.foreign?(B(),F("div",Fe,[m(O,{class:"col-4",modelValue:o.zip,"onUpdate:modelValue":a[3]||(a[3]=e=>o.zip=e),label:N(p)("address.zip"),rules:[b(),P],"input-attrs":{inputmode:"numeric",maxlength:4},onInputValue:_},null,8,["modelValue","label","rules"]),m(O,{class:"col",modelValue:o.city,"onUpdate:modelValue":a[4]||(a[4]=e=>o.city=e),label:N(p)("address.city"),rules:[b()]},null,8,["modelValue","label","rules"])])):(B(),F("div",De,[i("div",He,[i("div",Ze,[m(te,{"hide-selected":"","fill-input":"",modelValue:h.value,"onUpdate:modelValue":a[1]||(a[1]=e=>h.value=e),options:D.value,"option-label":"label","option-value":"zip",label:N(p)("address.zip"),"input-attrs":{inputmode:"numeric",maxlength:4},onInputValue:q,"use-input":"","input-debounce":"200","emit-value":"","map-options":"",rules:[b()],onFilter:u,onBlur:Q},null,8,["modelValue","options","label","rules"])]),i("div",fe,[m(O,{modelValue:o.city,"onUpdate:modelValue":a[2]||(a[2]=e=>o.city=e),label:N(p)("address.city"),rules:[b()]},null,8,["modelValue","label","rules"])])])])),o.foreign?(B(),I(te,{key:2,modelValue:o.country,"onUpdate:modelValue":a[5]||(a[5]=e=>o.country=e),options:A.value,"option-label":"label","option-value":"value",label:N(p)("address.country"),"use-input":"","input-debounce":"200","emit-value":"","map-options":"",rules:[b()]},null,8,["modelValue","options","label","rules"])):J("",!0),N(L)?(B(),I(Se,{key:3,modelValue:o.foreign,"onUpdate:modelValue":a[6]||(a[6]=e=>o.foreign=e),label:N(p)("address.foreign")},null,8,["modelValue","label"])):J("",!0)]),_:1},512)]),_:1}),m(Be,{align:"right"},{default:R(()=>[m(k,{flat:"",label:N(p)("button.cancel"),onClick:W},null,8,["label"]),m(k,{color:"primary",label:N(p)("button.save"),onClick:K},null,8,["label"])]),_:1})]),_:1})]),_:1},8,["modelValue"]))}}),Qe=me(Ie,[["__scopeId","data-v-00430335"]]),ze=["data-id"],Me={class:"row col q-px-md"},we={class:"row q-ml-md full-width items-center no-wrap"},Ue={class:"col q-ml-md"},ve={class:"row items-center no-wrap full-width"},ye={key:2,class:"comment-attachment__file-name q-px-sm"},Oe={class:"row items-start q-gutter-sm q-ml-md q-mt-xs q-mb-none full-width"},ke={class:"row col q-pa-none q-ma-none q-ml-md"},Pe={class:"text-caption q-mb-sm q-mt-none"},We={class:"column items-center q-gutter-sm full-width"},xe=pe({__name:"CommentAttachment",props:{modelValue:{},label:{},title:{},id:{}},emits:["update:modelValue"],setup(G,{emit:g}){const u=G,C=g,{t:L}=se(),z=Ee(),p=Re(),M=E(null),V=u.modelValue?.attachments,d=Ce({comments:u.modelValue?.comments||"",attachments:Array.isArray(V)?[...V]:[]}),T=E(d.comments),o=E(null),S=E(!1),r=E([]),b=new Set(["pdf","docx","txt","md"]);function P(e){const l=(e.name||"").trim().toLowerCase(),t=l.includes(".")?l.split(".").pop():"";return!!t&&b.has(t)}const K=x(()=>!!o.value),W=x(()=>o.value?.name||"");function A(e){for(;r.value.length<=e;)r.value.push({percent:0,color:"primary",icon:"attach_file"});const l=r.value[e];if(!l){const t={percent:0,color:"primary",icon:"attach_file"};return r.value[e]=t,t}return l}function D(){C("update:modelValue",{comments:d.comments||"",attachments:[...d.attachments]})}function w(e){if(e&&!P(e)){o.value=null,S.value=!1,r.value=[];return}o.value=e,S.value=!1,r.value=e?[{percent:0,color:"primary",icon:"attach_file"}]:[]}function h(e){const l=r.value,t=l[e];if(t?.xhr&&t.percent<1)try{t.xhr.abort()}catch{}o.value=null;const c=[...l];c.splice(e,1),r.value=c}function _(){h(0)}async function q(){const e=o.value;if(!e||!P(e))return;S.value=!0;const l="http://localhost:8082/upload";await new Promise(t=>{const c=new XMLHttpRequest,U=A(0);U.xhr=c,c.upload.onprogress=s=>{if(!s.lengthComputable)return;const Z=s.total>0?s.loaded/s.total:0;A(0).percent=Math.max(0,Math.min(1,Z))},c.onload=()=>{const s=c.status>=200&&c.status<300,Z=A(0);if(Z.percent=s?1:Z.percent,Z.color=s?"positive":"negative",Z.icon=s?"check":"error",s){try{const ae=JSON.parse(c.responseText),$=Array.isArray(ae.files)?ae.files[0]:void 0,Ne=$?.storedName||$?.originalName||$?.name;d.attachments.push(Ne||e.name)}catch{d.attachments.push(e.name)}D()}t()},c.onerror=()=>{const s=A(0);s.color="negative",s.icon="error",t()},c.onabort=()=>{const s=A(0);s.color="warning",s.icon="close",t()};const v=new FormData;v.append("session",u.id??""),v.append("user",p.id),v.append("documents",e),c.open("POST",l),c.send(v)}),o.value=null,r.value=[],S.value=!1}H(()=>u.modelValue,e=>{e&&typeof e.comments=="string"?d.comments=e.comments:e===null&&(d.comments=""),e&&Array.isArray(e.attachments)?d.attachments=[...e.attachments]:e===null&&(d.attachments=[]),T.value=d.comments});function Q(){d.comments=T.value||"",D()}async function j(e){return new Promise(l=>{z.dialog({message:"
"+L("confirmDeleteAttachment")+"
"+e,cancel:!0,persistent:!0,html:!0}).onOk(()=>l(!0)).onCancel(()=>l(!1)).onDismiss(()=>l(!1))})}async function n(e){const l=d.attachments[e];if(!l||!await j(l))return;const c=p.id,U=u.id;if(!c||!U){d.attachments.splice(e,1),D();return}try{if(!(await fetch("http://localhost:8082/deleteattachment",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:c,session:U,filename:l})})).ok)return}catch{return}d.attachments.splice(e,1),D()}function a(e){return Array.isArray(e)&&e.every(l=>typeof l=="string")}return he(async()=>{const e=u.id,l=p.id;if(!(!e||!l))try{const t=await fetch("http://localhost:8082/loadattachments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:l,session:e})});if(!t.ok)return;const c=await t.json();a(c)&&(d.attachments=c,D())}catch{}}),(e,l)=>(B(),F("div",{class:"comment-attachment column full-width shadow-1 q-pa-sm bg-white","data-id":G.id},[i("div",null,f(G.title||G.label),1),i("div",Me,[m(O,{class:"full-width",type:"textarea",modelValue:T.value,"onUpdate:modelValue":l[0]||(l[0]=t=>T.value=t),onBlur:Q,label:N(L)("commenti"),autogrow:"",dense:""},null,8,["modelValue","label"])]),i("div",we,[i("div",Ue,[m(Te,{ref_key:"fileRef",ref:M,"model-value":o.value,"onUpdate:modelValue":w,accept:".pdf,.docx,.txt,.md",dense:"",borderless:"","hide-bottom-space":"",clearable:!1,"input-style":"display: none",style:{"max-width":"400px"}},{prepend:R(()=>[i("div",ve,[o.value?(B(),F(le,{key:1},[m(k,{round:"",dense:"",flat:"",color:"primary",icon:"cloud_upload",disable:!K.value||S.value,loading:S.value,onClick:Y(q,["stop"])},null,8,["disable","loading"]),S.value?J("",!0):(B(),I(k,{key:0,round:"",dense:"",flat:"",color:"primary",icon:"delete",disable:!o.value,onClick:Y(_,["stop","prevent"])},null,8,["disable"]))],64)):(B(),I(k,{key:0,round:"",dense:"",flat:"",color:"primary",icon:"attach_file",disable:S.value,onClick:l[1]||(l[1]=Y(t=>M.value?.pickFiles(),["stop"]))},{default:R(()=>[m(Le,null,{default:R(()=>[ne(f(N(L)("pickFiles")),1)]),_:1})]),_:1},8,["disable"])),W.value?(B(),F("div",ye,f(W.value),1)):J("",!0)])]),_:1},8,["model-value"])])]),i("div",Oe,[i("div",ke,[i("div",Pe,f(N(L)("attachments")),1),i("div",We,[(B(!0),F(le,null,ge(d.attachments,(t,c)=>(B(),I(be,{class:"full-width",key:c,removable:"",onRemove:U=>n(c)},{default:R(()=>[ne(f(t),1)]),_:2},1032,["onRemove"]))),128))])])])],8,ze))}}),je=me(xe,[["__scopeId","data-v-a0ff9b6f"]]);export{Qe as A,je as C}; diff --git a/app/dist/spa/assets/CommentAttachment-M56Dxc2A.css b/app/dist/spa/assets/CommentAttachment-M56Dxc2A.css new file mode 100644 index 0000000..316c6aa --- /dev/null +++ b/app/dist/spa/assets/CommentAttachment-M56Dxc2A.css @@ -0,0 +1 @@ +.contained-card[data-v-00430335]{min-width:420px;max-width:720px}.comment-attachment[data-v-a0ff9b6f]{font-size:14px}.comment-attachment__file-name[data-v-a0ff9b6f]{font-size:14px!important;width:100%;background-color:#0000001a}.text-grey[data-v-a0ff9b6f]{color:#00000073} diff --git a/app/dist/spa/assets/ErrorNotFound-C9XXVpv6.js b/app/dist/spa/assets/ErrorNotFound-C9XXVpv6.js new file mode 100644 index 0000000..0f3c38c --- /dev/null +++ b/app/dist/spa/assets/ErrorNotFound-C9XXVpv6.js @@ -0,0 +1 @@ +import{$ as o,a9 as s,a5 as t,a4 as a,a3 as l,a6 as n}from"./index-0B2sgEyA.js";const r={class:"fullscreen bg-blue text-white text-center q-pa-md flex flex-center"},p=o({__name:"ErrorNotFound",setup(c){return(i,e)=>(l(),s("div",r,[t("div",null,[e[0]||(e[0]=t("div",{style:{"font-size":"30vh"}},"404",-1)),e[1]||(e[1]=t("div",{class:"text-h2",style:{opacity:"0.4"}},"Oops. Nothing here...",-1)),a(n,{class:"q-mt-xl",color:"white","text-color":"blue",unelevated:"",to:"/",label:"Go Home","no-caps":""})])]))}});export{p as default}; diff --git a/app/dist/spa/assets/IncomeStep-Cw8mizyx.css b/app/dist/spa/assets/IncomeStep-Cw8mizyx.css new file mode 100644 index 0000000..b1b2f48 --- /dev/null +++ b/app/dist/spa/assets/IncomeStep-Cw8mizyx.css @@ -0,0 +1 @@ +.comment-attachment[data-v-a11712e8]{font-size:14px}.comment-attachment__file-chip[data-v-a11712e8]{max-width:320px}.text-grey[data-v-a11712e8]{color:#00000073}.q-card[data-v-f4f9035e]{width:100%;margin:0} diff --git a/app/dist/spa/assets/IncomeStep-RKJ4eG2Y.js b/app/dist/spa/assets/IncomeStep-RKJ4eG2Y.js new file mode 100644 index 0000000..0e550f9 --- /dev/null +++ b/app/dist/spa/assets/IncomeStep-RKJ4eG2Y.js @@ -0,0 +1 @@ +import{$ as G,r as F,Z as ce,a as O,w as B,o as W,a9 as re,a3 as A,a5 as E,a8 as $,a4 as U,a1 as V,a0 as x,af as N,a6 as q,aq as Y,a7 as me,ac as c,as as ue,ae as de,am as pe,ah as fe}from"./index-0B2sgEyA.js";import{u as ye,d as X,b as he,f as ge,e as ve,Q as we,a as be}from"./userstore-DBCughIu.js";import{u as Z}from"./vue-i18n.runtime-DPKkE7zN.js";import{_ as ee}from"./IndexPage-CwM_myNb.js";import{P as H}from"./LocalStorage-7Uw3xG9P.js";import"./QList-CHwmSUjA.js";const Ce="http://localhost:8082";class d extends Error{status;constructor(o,n){super(o),this.name="ApiError",this.status=n}}function M(t,o){const n=(t||Ce).replace(/\/+$/,""),u=o.startsWith("/")?o:`/${o}`;return`${n}${u}`}async function J(t){const o=await t.text();if(!o)return null;try{return JSON.parse(o)}catch{return o}}function Se(t){if(!t||typeof t!="object")return[];const o=t.files;if(!o)return[];if(Array.isArray(o)){const n=[];for(const u of o){if(typeof u=="string"){n.push(u);continue}if(u&&typeof u=="object"){const s=u,i=typeof s.storedName=="string"&&s.storedName||typeof s.originalName=="string"&&s.originalName||typeof s.name=="string"&&s.name||"";i&&n.push(i)}}return n}return[]}async function Ae(t){const{user:o,session:n,prop:u,file:s,baseUrl:i,onProgress:r,signal:p}=t;if(!o)throw new d("missing user");if(!n)throw new d("missing session");if(!s)throw new d("missing file");const b=M(i,"/upload");return await new Promise((e,S)=>{const l=new XMLHttpRequest;if(p){if(p.aborted){S(new d("aborted"));return}p.addEventListener("abort",()=>{try{l.abort()}catch{}},{once:!0})}l.upload.onprogress=h=>{if(!r||!h.lengthComputable)return;const T=h.total>0?h.loaded/h.total:0;r(Math.max(0,Math.min(1,T)))},l.onload=()=>{const h=l.status>=200&&l.status<300;let T=null;try{T=l.responseText?JSON.parse(l.responseText):null}catch{T=l.responseText}if(!h){S(new d(`Upload failed (HTTP ${l.status})`,l.status));return}const P=Se(T);e({ok:!0,files:P})},l.onerror=()=>{S(new d("Upload failed (network error)"))},l.onabort=()=>{S(new d("Upload cancelled"))};const f=new FormData;f.append("user",o),f.append("session",n),u&&f.append("prop",u),f.append("documents",s),l.open("POST",b),l.send(f)})}async function Te(t){const{id:o,session:n,prop:u,baseUrl:s}=t;if(!o)throw new d("missing id");if(!n)throw new d("missing session");const i=await fetch(M(s,"/loadattachments"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:o,session:n,prop:u})});if(!i.ok){const p=await J(i),b=typeof p=="string"?p:`Load attachments failed (HTTP ${i.status})`;throw new d(b,i.status)}const r=await i.json();return Array.isArray(r)&&r.every(p=>typeof p=="string")?r:[]}async function xe(t){const{id:o,session:n,prop:u,filename:s,baseUrl:i}=t;if(!o)throw new d("missing id");if(!n)throw new d("missing session");if(!s)throw new d("missing filename");const r=await fetch(M(i,"/deleteattachment"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:o,session:n,prop:u,filename:s})});if(!r.ok){const b=await J(r),e=typeof b=="string"?b:`Delete attachment failed (HTTP ${r.status})`;throw new d(e,r.status)}const p=await r.json();return p&&typeof p=="object"?p:{}}async function Ee(t){const{id:o,session:n,prop:u,baseUrl:s}=t;if(!o)throw new d("missing id");if(!n)throw new d("missing session");if(u)throw new d("prop is not supported for loadAttachmentsList");const i=await fetch(M(s,"/loadattachmentslist"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:o,session:n})});if(!i.ok){const b=await J(i),e=typeof b=="string"?b:`Load attachments list failed (HTTP ${i.status})`;throw new d(e,i.status)}const r=await i.json();if(!r||typeof r!="object"||Array.isArray(r))return{};const p={};for(const[b,e]of Object.entries(r))b&&Array.isArray(e)&&e.every(S=>typeof S=="string")&&(p[b]=e);return p}const Ue=["data-id"],ke={class:"row q-ml-md full-width items-center no-wrap"},_e={class:"col q-ml-md"},Ve={class:"row items-center no-wrap full-width"},Pe={class:"ellipsis"},K=".pdf, .docx, .txt, .md",Ne=G({__name:"SimpleAttachment",props:{modelValue:{},label:{},title:{},session:{},id:{},autoload:{type:Boolean},disable:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,u=o,{t:s}=Z(),i=ye(),r=X(),p=F(null),b=n.modelValue?.attachments,e=ce({comments:n.modelValue?.comments||"",attachments:Array.isArray(b)?[...b]:[]}),S=F(e.comments),l=F(null),f=F(!1),h=F([]),T=new Set(["pdf","docx","txt","md"]);function P(a){const m=(a.name||"").trim().toLowerCase(),w=m.includes(".")?m.split(".").pop():"";return!!w&&T.has(w)}const Q=O(()=>!!l.value),g=O(()=>{const a=l.value;return a?.name?a.name:(e.attachments.length>0?e.attachments[e.attachments.length-1]:"")||""}),v=O(()=>!l.value&&e.attachments.length>0);function y(a){for(;h.value.length<=a;)h.value.push({percent:0,color:"primary",icon:"attach_file"});const m=h.value[a];if(!m){const w={percent:0,color:"primary",icon:"attach_file"};return h.value[a]=w,w}return m}function k(){u("update:modelValue",{comments:e.comments||"",attachments:[...e.attachments]})}function I(a){if(a&&!P(a)){i.notify({type:"negative",message:s("fileTypeNotAllowed",{allowed:K})}),l.value=null,f.value=!1,h.value=[];return}l.value=a,f.value=!1,h.value=a?[{percent:0,color:"primary",icon:"attach_file"}]:[]}function te(a){const m=h.value;l.value=null;const w=[...m];w.splice(a,1),h.value=w}function ae(){te(0)}async function se(){const a=e.attachments.length>0?e.attachments[e.attachments.length-1]:"";if(!a)return;const m=n.session,w=n.id,D=r.id;if(!m||!D){e.attachments=[],k();return}try{await xe({id:D,session:m,...w?{prop:w}:{},filename:a}),e.attachments=[],k(),i.notify({type:"positive",message:s("fileDeleted")})}catch(C){i.notify({type:"negative",message:C instanceof Error?C.message:s("deleteFailed")})}}function ne(){if(!n.disable){if(l.value){ae();return}se()}}async function oe(){if(n.disable)return;const a=l.value;if(!a)return;if(!P(a)){i.notify({type:"negative",message:s("fileTypeNotAllowed",{allowed:K})});return}const m=n.session,w=n.id,D=r.id;if(!m||!D){i.notify({type:"warning",message:s("missingUserOrSession")});return}f.value=!0;try{const C=await Ae({user:D,session:m,...w?{prop:w}:{},file:a,onProgress:le=>{y(0).percent=le}}),_=y(0);_.percent=1,_.color="positive",_.icon="check";const j=C.files?.[0]??a.name;e.attachments.push(j),k(),i.notify({type:"positive",message:s("fileUploaded")})}catch(C){const _=y(0);_.color=C instanceof d&&C.message.includes("cancel")?"warning":"negative",_.icon=C instanceof d&&C.message.includes("cancel")?"close":"error";const j=C instanceof d&&C.message.includes("cancel");i.notify({type:_.color==="warning"?"warning":"negative",message:j?s("uploadCancelled"):C instanceof Error?C.message:s("uploadFailed")})}l.value=null,h.value=[],f.value=!1}B(()=>n.modelValue,a=>{a&&typeof a.comments=="string"?e.comments=a.comments:a===null&&(e.comments=""),a&&Array.isArray(a.attachments)?e.attachments=[...a.attachments]:a===null&&(e.attachments=[]),S.value=e.comments},{deep:!0});function ie(a){return Array.isArray(a)&&a.every(m=>typeof m=="string")}return W(async()=>{if(n.autoload===!1)return;const a=n.session,m=r.id;if(!(!a||!m))try{const w=await Te({id:m,session:a,...n.id?{prop:n.id}:{}});ie(w)&&(e.attachments=[...w],k())}catch{}}),(a,m)=>(A(),re("div",{class:"comment-attachment column full-width shadow-1 q-pa-sm bg-white","data-id":t.id},[E("div",null,$(t.title||t.label),1),E("div",ke,[E("div",_e,[U(ve,{ref_key:"fileRef",ref:p,"model-value":l.value,"onUpdate:modelValue":I,disable:!!t.disable,accept:".pdf,.docx,.txt,.md",dense:"",borderless:"","hide-bottom-space":"",clearable:!1,"input-style":"display: none",style:{"max-width":"400px"}},{prepend:V(()=>[E("div",Ve,[l.value?(A(),x(q,{key:1,round:"",dense:"",flat:"",color:"primary",icon:"cloud_upload",disable:!!t.disable||!Q.value||f.value,loading:f.value,onClick:Y(oe,["stop","prevent"])},null,8,["disable","loading"])):(A(),x(q,{key:0,round:"",dense:"",flat:"",color:"primary",icon:"attach_file",disable:!!t.disable||f.value,onClick:m[0]||(m[0]=Y(w=>p.value?.pickFiles(),["stop","prevent"]))},{default:V(()=>[U(he,null,{default:V(()=>[me($(c(s)("pickFiles")),1)]),_:1})]),_:1},8,["disable"])),g.value?(A(),x(ge,{key:2,dense:"",removable:!t.disable,class:"q-ml-sm comment-attachment__file-chip",color:v.value?"positive":void 0,"text-color":v.value?"white":void 0,onRemove:ne},{default:V(()=>[E("span",Pe,$(g.value),1)]),_:1},8,["removable","color","text-color"])):N("",!0)])]),_:1},8,["model-value","disable"])])])],8,Ue))}}),L=ee(Ne,[["__scopeId","data-v-a11712e8"]]),z="income:v1",R={employType:null,attachments:{salaryCertificate:{comments:"",attachments:[]},accountingDocuments:{comments:"",attachments:[]},avsCertificate:{comments:"",attachments:[]},lppCertificate:{comments:"",attachments:[]},unemploymentCertificate:{comments:"",attachments:[]}}};function De(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}const Fe=ue("incomestore",{state:()=>{try{let t=H.getItem(z);if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}if(De(t))return{data:{...R,...t}}}catch{}return{data:{...R}}},actions:{persist(){try{H.set(z,this.data)}catch(t){console.error("income.store: persist error",t)}},getIncome(){return this.data},setIncome(t){this.data={...this.data,...t},this.persist()},replaceIncome(t){this.data=t,this.persist()},resetIncome(){this.data={...R},this.persist()}}}),Le={class:"row items-center"},Oe={class:"col"},Ie={class:"text-h5"},$e={class:"col-auto"},qe=G({__name:"IncomeStep",props:{step:{}},emits:["next","prev"],setup(t,{emit:o}){const n=t,u=o,{t:s}=Z(),i=X(),r=Fe(),p=["EMPLOYED","SELF_EMPLOYED","PENSIONER","UNEMPLOYED"],b={EMPLOYED:{activeFields:["salaryCertificate","accountingDocuments"],nextStep:"marital"},SELF_EMPLOYED:{activeFields:["accountingDocuments"],nextStep:"marital"},PENSIONER:{activeFields:["accountingDocuments","avsCertificate","lppCertificate"],nextStep:"marital"},UNEMPLOYED:{activeFields:["unemploymentCertificate"],nextStep:"marital"}},e=r.data,S=["salaryCertificate","accountingDocuments","avsCertificate","lppCertificate","unemploymentCertificate"],l=O(()=>{const g=e.employType;if(!g)return new Set;const y=b[g]?.activeFields??[];return new Set(y)});function f(g){return l.value.has(g)}function h(){for(const g of S)f(g)||(e.attachments[g].comments="",e.attachments[g].attachments=[])}B(()=>e.employType,()=>{h()}),B(()=>e,()=>{r.persist()},{deep:!0});const T=O(()=>p.map(g=>({label:s(`income.employType.${g}`),value:g})));W(async()=>{const g=i.id;if(!g)return;const v="income";try{const y=await Ee({id:g,session:v});for(const k of S){const I=y[k];Array.isArray(I)&&(e.attachments[k].attachments=[...I])}}catch{}});function P(){u("next",n.step?.next)}function Q(){u("prev",n.step?.prev)}return(g,v)=>(A(),x(fe,{flat:"",class:"full-width q-pa-none"},{default:V(()=>[U(de,{class:"full-width"},{default:V(()=>[E("div",Le,[E("div",Oe,[E("div",Ie,$(c(s)("INC")),1)]),E("div",$e,[U(q,{flat:"",label:c(s)("button.prev"),onClick:Q,class:"q-mr-sm"},null,8,["label"]),U(q,{color:"primary",label:c(s)("button.next"),onClick:P},null,8,["label"])])]),U(pe,{class:"q-my-sm"}),U(we,{class:"q-gutter-md q-mt-md"},{default:V(()=>[U(be,{modelValue:c(e).employType,"onUpdate:modelValue":v[0]||(v[0]=y=>c(e).employType=y),options:T.value,label:c(s)("income.employTypeLabel"),hint:c(e).employType?"":c(s)("income.employTypeHint"),"persistent-hint":!c(e).employType,"emit-value":"","map-options":""},null,8,["modelValue","options","label","hint","persistent-hint"]),f("salaryCertificate")?(A(),x(L,{key:0,modelValue:c(e).attachments.salaryCertificate,"onUpdate:modelValue":v[1]||(v[1]=y=>c(e).attachments.salaryCertificate=y),label:c(s)("income.attachments.salaryCertificate"),session:"income",id:"salaryCertificate",autoload:!1},null,8,["modelValue","label"])):N("",!0),f("accountingDocuments")?(A(),x(L,{key:1,modelValue:c(e).attachments.accountingDocuments,"onUpdate:modelValue":v[2]||(v[2]=y=>c(e).attachments.accountingDocuments=y),label:c(s)("income.attachments.accountingDocuments"),session:"income",id:"accountingDocuments",autoload:!1},null,8,["modelValue","label"])):N("",!0),f("avsCertificate")?(A(),x(L,{key:2,modelValue:c(e).attachments.avsCertificate,"onUpdate:modelValue":v[3]||(v[3]=y=>c(e).attachments.avsCertificate=y),label:c(s)("income.attachments.avsCertificate"),session:"income",id:"avsCertificate",autoload:!1},null,8,["modelValue","label"])):N("",!0),f("lppCertificate")?(A(),x(L,{key:3,modelValue:c(e).attachments.lppCertificate,"onUpdate:modelValue":v[4]||(v[4]=y=>c(e).attachments.lppCertificate=y),label:c(s)("income.attachments.lppCertificate"),session:"income",id:"lppCertificate",autoload:!1},null,8,["modelValue","label"])):N("",!0),f("unemploymentCertificate")?(A(),x(L,{key:4,modelValue:c(e).attachments.unemploymentCertificate,"onUpdate:modelValue":v[5]||(v[5]=y=>c(e).attachments.unemploymentCertificate=y),label:c(s)("income.attachments.unemploymentCertificate"),session:"income",id:"unemploymentCertificate",autoload:!1},null,8,["modelValue","label"])):N("",!0)]),_:1})]),_:1})]),_:1}))}}),Ye=ee(qe,[["__scopeId","data-v-f4f9035e"]]);export{Ye as default}; diff --git a/app/dist/spa/assets/IndexPage-CwM_myNb.js b/app/dist/spa/assets/IndexPage-CwM_myNb.js new file mode 100644 index 0000000..afd1e2f --- /dev/null +++ b/app/dist/spa/assets/IndexPage-CwM_myNb.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/WelcomeStep-Crh-xhDH.js","assets/index-0B2sgEyA.js","assets/index-BQveqNql.css","assets/vue-i18n.runtime-DPKkE7zN.js","assets/QList-CHwmSUjA.js","assets/WelcomeStep-BTfvnfIz.css","assets/TaxpayerStep-BfPZ-rxP.js","assets/userstore-DBCughIu.js","assets/LocalStorage-7Uw3xG9P.js","assets/taxstore-oR45_mFg.js","assets/AddressInput-Brku8Gup.js","assets/CommentAttachment-BuVtM3GK.js","assets/CommentAttachment-M56Dxc2A.css","assets/AddressInput-DTjVpzGz.css","assets/TaxpayerStep-CWAfROv3.css","assets/MaritalStep-npjGE3Gl.js","assets/MaritalStep-DL6z_e8a.css","assets/ChildrenStep-BaJwTfaC.js","assets/children-ChLzVyp9.js","assets/ChildrenStep-CyFMlGKq.css","assets/IncomeStep-RKJ4eG2Y.js","assets/IncomeStep-Cw8mizyx.css"])))=>i.map(i=>d[i]); +import{c as Q,g as A,j as P,k as c,m as w,X as R,a as g,h as $,b as D,$ as k,r as O,ad as p,a9 as m,a3 as s,a5 as C,a4 as v,a1 as u,aa as L,ab as V,a0 as I,a8 as b,ac as S,ae as q,af as B,ag as F,ah as z,ai as f}from"./index-0B2sgEyA.js";import{a as T,b as j,Q as N}from"./QList-CHwmSUjA.js";const H=Q({name:"QPage",props:{padding:Boolean,styleFn:Function},setup(r,{slots:o}){const{proxy:{$q:i}}=A(),e=P(w,c);if(e===c)return console.error("QPage needs to be a deep child of QLayout"),c;if(P(R,c)===c)return console.error("QPage needs to be child of QPageContainer"),c;const _=g(()=>{const n=(e.header.space===!0?e.header.size:0)+(e.footer.space===!0?e.footer.size:0);if(typeof r.styleFn=="function"){const y=e.isContainer.value===!0?e.containerHeight.value:i.screen.height;return r.styleFn(n,y)}return{minHeight:e.isContainer.value===!0?e.containerHeight.value-n+"px":i.screen.height===0?n!==0?`calc(100vh - ${n}px)`:"100vh":i.screen.height-n+"px"}}),h=g(()=>`q-page${r.padding===!0?" q-layout-padding":""}`);return()=>$("main",{class:h.value,style:_.value},D(o.default))}}),K={class:"row full-height"},M={class:"col-3 q-pa-sm bg-grey-1"},X={class:"text-body1"},G={class:"col q-pa-md full-height"},J={key:0,class:"text-h6"},U={key:2,class:"q-mt-md"},W=k({__name:"StepsStepper",setup(r){const o=[{id:"welcome",title:"Benvenuto",order:0},{id:"taxpayer",title:"Dati contribuente e dichiarazione precedente",order:1},{id:"marital",title:"Stato civile",order:2},{id:"children",title:"Figli",order:3},{id:"income",title:"Redditi",order:4},{id:"professionalExpenses",title:"Spese professionali",order:5},{id:"sideIncome",title:"Reddito accessorio",order:6},{id:"annuities",title:"Rendite",order:7},{id:"insurance",title:"Spese assicurative e mediche",order:8},{id:"pillar3",title:"Polizze 3A / 3B",order:9},{id:"bankAccounts",title:"Conti bancari",order:10},{id:"otherAssets",title:"Altri beni / averi",order:11},{id:"debts",title:"Debiti / ipoteche",order:12},{id:"properties",title:"Immobili",order:13},{id:"foreign",title:"Redditi o averi all’estero",order:14}],i=Math.max(...o.map(t=>t.order)),e=new Array(i+1).fill(void 0).map(()=>({}));o.forEach(t=>{e[t.order]={id:t.id,title:t.title,order:t.order}});const a=O(0),_=g(()=>{const t=e[a.value]?.id;return t==="welcome"?p(()=>f(()=>import("./WelcomeStep-Crh-xhDH.js"),__vite__mapDeps([0,1,2,3,4,5]))):t==="taxpayer"?p(()=>f(()=>import("./TaxpayerStep-BfPZ-rxP.js"),__vite__mapDeps([6,1,2,7,8,4,9,10,11,3,12,13,14]))):t==="marital"?p(()=>f(()=>import("./MaritalStep-npjGE3Gl.js"),__vite__mapDeps([15,1,2,7,8,4,9,10,11,3,12,13,16]))):t==="children"?p(()=>f(()=>import("./ChildrenStep-BaJwTfaC.js"),__vite__mapDeps([17,1,2,7,8,4,11,3,12,18,9,19]))):t==="income"?p(()=>f(()=>import("./IncomeStep-RKJ4eG2Y.js"),__vite__mapDeps([20,1,2,7,8,4,3,21]))):null}),h=g(()=>e[a.value]);function n(t){if(typeof t=="string"){const l=e.findIndex(d=>d.id===t);if(l!==-1){a.value=l;return}}a.valued.id===t);if(l!==-1){a.value=l;return}}a.value>0&&a.value--}return(t,l)=>(s(),m("div",K,[C("div",M,[v(N,{dense:"",bordered:"",class:"vertical-nav"},{default:u(()=>[(s(!0),m(L,null,V(S(e),(d,x)=>(s(),I(T,{key:d.id,clickable:"",onClick:te=>a.value=x,active:a.value===x},{default:u(()=>[v(j,null,{default:u(()=>[C("div",X,b(x+1)+". "+b(d.title),1)]),_:2},1024)]),_:2},1032,["onClick","active"]))),128))]),_:1})]),C("div",G,[v(z,{flat:"",class:"q-pa-md full-height"},{default:u(()=>[v(q,null,{default:u(()=>[_.value?B("",!0):(s(),m("div",J,b(S(e)[a.value]?.title),1)),_.value&&h.value?(s(),I(F(_.value),{key:1,step:h.value,onNext:n,onPrev:y},null,40,["step"])):(s(),m("div",U))]),_:1})]),_:1})])]))}}),E=(r,o)=>{const i=r.__vccOpts||r;for(const[e,a]of o)i[e]=a;return i},Y=E(W,[["__scopeId","data-v-eaa5d621"]]),Z=k({__name:"IndexPage",setup(r){return(o,i)=>(s(),I(H,{class:"row full-width justify-center full-height"},{default:u(()=>[v(Y,{class:"no-shadow full-height full-width"})]),_:1}))}}),ee=E(Z,[["__scopeId","data-v-1cafec6b"]]),re=Object.freeze(Object.defineProperty({__proto__:null,default:ee},Symbol.toStringTag,{value:"Module"}));export{re as I,E as _}; diff --git a/app/dist/spa/assets/IndexPage-sr_89QZh.css b/app/dist/spa/assets/IndexPage-sr_89QZh.css new file mode 100644 index 0000000..31cd440 --- /dev/null +++ b/app/dist/spa/assets/IndexPage-sr_89QZh.css @@ -0,0 +1 @@ +.q-stepper[data-v-eaa5d621]{max-width:900px;margin:0 auto}.full-height[data-v-eaa5d621]{height:100%}.vertical-nav .q-item[data-v-eaa5d621]{border-radius:4px;margin-bottom:4px;max-width:350px}.vertical-nav .q-item--active[data-v-eaa5d621]{background-color:var(--q-color-primary)!important}.vertical-nav .q-item--active .text-body1[data-v-eaa5d621],.vertical-nav .q-item--active .q-item__label[data-v-eaa5d621]{font-weight:700!important}[data-v-1cafec6b] .no-shadow .q-stepper{box-shadow:none!important;height:100%!important;width:100%!important}[data-v-1cafec6b] .no-shadow .q-stepper .q-step__content,[data-v-1cafec6b] .no-shadow .q-stepper .q-card{height:100%!important} diff --git a/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuYjalmUiAw-BepdiOnY.woff b/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuYjalmUiAw-BepdiOnY.woff new file mode 100644 index 0000000..c7f10e0 Binary files /dev/null and b/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuYjalmUiAw-BepdiOnY.woff differ diff --git a/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuZtalmUiAw-4ZhHFPot.woff b/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuZtalmUiAw-4ZhHFPot.woff new file mode 100644 index 0000000..21dcb28 Binary files /dev/null and b/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuZtalmUiAw-4ZhHFPot.woff differ diff --git a/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabVmUiAw-CNa4tw4G.woff b/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabVmUiAw-CNa4tw4G.woff new file mode 100644 index 0000000..80fc26d Binary files /dev/null and b/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabVmUiAw-CNa4tw4G.woff differ diff --git a/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWub2bVmUiAw-CHKg1YId.woff b/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWub2bVmUiAw-CHKg1YId.woff new file mode 100644 index 0000000..6c8f9a6 Binary files /dev/null and b/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWub2bVmUiAw-CHKg1YId.woff differ diff --git a/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbFmUiAw-yBxCyPWP.woff b/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbFmUiAw-yBxCyPWP.woff new file mode 100644 index 0000000..8804ecc Binary files /dev/null and b/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbFmUiAw-yBxCyPWP.woff differ diff --git a/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVmUiAw-3fZ6d7DD.woff b/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVmUiAw-3fZ6d7DD.woff new file mode 100644 index 0000000..9b7fcd5 Binary files /dev/null and b/app/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVmUiAw-3fZ6d7DD.woff differ diff --git a/app/dist/spa/assets/LocalStorage-7Uw3xG9P.js b/app/dist/spa/assets/LocalStorage-7Uw3xG9P.js new file mode 100644 index 0000000..9322083 --- /dev/null +++ b/app/dist/spa/assets/LocalStorage-7Uw3xG9P.js @@ -0,0 +1 @@ +import{aY as Se,g as se,r as P,D as J,B as X,f as Ee,al as Te,w as _,o as _e,e as K,y as qe,l as D,aZ as U,z as ue,Y as ke,c as Ce,P as He,s as Me,ax as Pe,H as Be,Q as We,a as T,I as Ae,ay as Ie,R as Le,az as ze,S as Re,aA as $e,a_ as De,a$ as Z,b0 as Fe,C as Ke,b1 as Oe,t as je,b2 as Ne,b3 as Qe,h as ee,b as Ve,aB as Ye,av as Ge,G as Je,n as C,b4 as Xe,b5 as Ue}from"./index-0B2sgEyA.js";function Ze(){if(window.getSelection!==void 0){const e=window.getSelection();e.empty!==void 0?e.empty():e.removeAllRanges!==void 0&&(e.removeAllRanges(),Se.is.mobile!==!0&&e.addRange(document.createRange()))}else document.selection!==void 0&&document.selection.empty()}const et={target:{type:[Boolean,String,Element],default:!0},noParentEvent:Boolean},tt={...et,contextMenu:Boolean};function nt({showing:e,avoidEmit:t,configureAnchorEl:o}){const{props:n,proxy:i,emit:c}=se(),l=P(null);let s=null;function d(a){return l.value===null?!1:a===void 0||a.touches===void 0||a.touches.length<=1}const u={};o===void 0&&(Object.assign(u,{hide(a){i.hide(a)},toggle(a){i.toggle(a),a.qAnchorHandled=!0},toggleKey(a){Te(a,13)===!0&&u.toggle(a)},contextClick(a){i.hide(a),J(a),Ee(()=>{i.show(a),a.qAnchorHandled=!0})},prevent:J,mobileTouch(a){if(u.mobileCleanup(a),d(a)!==!0)return;i.hide(a),l.value.classList.add("non-selectable");const f=a.target;X(u,"anchor",[[f,"touchmove","mobileCleanup","passive"],[f,"touchend","mobileCleanup","passive"],[f,"touchcancel","mobileCleanup","passive"],[l.value,"contextmenu","prevent","notPassive"]]),s=setTimeout(()=>{s=null,i.show(a),a.qAnchorHandled=!0},300)},mobileCleanup(a){l.value.classList.remove("non-selectable"),s!==null&&(clearTimeout(s),s=null),e.value===!0&&a!==void 0&&Ze()}}),o=function(a=n.contextMenu){if(n.noParentEvent===!0||l.value===null)return;let f;a===!0?i.$q.platform.is.mobile===!0?f=[[l.value,"touchstart","mobileTouch","passive"]]:f=[[l.value,"mousedown","hide","passive"],[l.value,"contextmenu","contextClick","notPassive"]]:f=[[l.value,"click","toggle","passive"],[l.value,"keyup","toggleKey","passive"]],X(u,"anchor",f)});function h(){qe(u,"anchor")}function v(a){for(l.value=a;l.value.classList.contains("q-anchor--skip");)l.value=l.value.parentNode;o()}function x(){if(n.target===!1||n.target===""||i.$el.parentNode===null)l.value=null;else if(n.target===!0)v(i.$el.parentNode);else{let a=n.target;if(typeof n.target=="string")try{a=document.querySelector(n.target)}catch{a=void 0}a!=null?(l.value=a.$el||a,o()):(l.value=null,console.error(`Anchor: target "${n.target}" not found`))}}return _(()=>n.contextMenu,a=>{l.value!==null&&(h(),o(a))}),_(()=>n.target,()=>{l.value!==null&&h(),x()}),_(()=>n.noParentEvent,a=>{l.value!==null&&(a===!0?h():o())}),_e(()=>{x(),t!==!0&&n.modelValue===!0&&l.value===null&&c("update:modelValue",!1)}),K(()=>{s!==null&&clearTimeout(s),h()}),{anchorEl:l,canShow:d,anchorEvents:u}}function ot(e,t){const o=P(null);let n;function i(s,d){const u=`${d!==void 0?"add":"remove"}EventListener`,h=d!==void 0?d:n;s!==window&&s[u]("scroll",h,D.passive),window[u]("scroll",h,D.passive),n=d}function c(){o.value!==null&&(i(o.value),o.value=null)}const l=_(()=>e.noParentEvent,()=>{o.value!==null&&(c(),t())});return K(l),{localScrollTarget:o,unconfigureScrollTarget:c,changeScrollEvent:i}}const{notPassiveCapture:B}=D,S=[];function W(e){const t=e.target;if(t===void 0||t.nodeType===8||t.classList.contains("no-pointer-events")===!0)return;let o=U.length-1;for(;o>=0;){const n=U[o].$;if(n.type.name==="QTooltip"){o--;continue}if(n.type.name!=="QDialog")break;if(n.props.seamless!==!0)return;o--}for(let n=S.length-1;n>=0;n--){const i=S[n];if((i.anchorEl.value===null||i.anchorEl.value.contains(t)===!1)&&(t===document.body||i.innerRef.value!==null&&i.innerRef.value.contains(t)===!1))e.qClickOutside=!0,i.onClickOutside(e);else return}}function lt(e){S.push(e),S.length===1&&(document.addEventListener("mousedown",W,B),document.addEventListener("touchstart",W,B))}function te(e){const t=S.findIndex(o=>o===e);t!==-1&&(S.splice(t,1),S.length===0&&(document.removeEventListener("mousedown",W,B),document.removeEventListener("touchstart",W,B)))}let ne,oe;function le(e){const t=e.split(" ");return t.length!==2?!1:["top","center","bottom"].includes(t[0])!==!0?(console.error("Anchor/Self position must start with one of top/center/bottom"),!1):["left","middle","right","start","end"].includes(t[1])!==!0?(console.error("Anchor/Self position must end with one of left/middle/right/start/end"),!1):!0}function it(e){return e?!(e.length!==2||typeof e[0]!="number"||typeof e[1]!="number"):!0}const F={"start#ltr":"left","start#rtl":"right","end#ltr":"right","end#rtl":"left"};["left","middle","right"].forEach(e=>{F[`${e}#ltr`]=e,F[`${e}#rtl`]=e});function ie(e,t){const o=e.split(" ");return{vertical:o[0],horizontal:F[`${o[1]}#${t===!0?"rtl":"ltr"}`]}}function at(e,t){let{top:o,left:n,right:i,bottom:c,width:l,height:s}=e.getBoundingClientRect();return t!==void 0&&(o-=t[1],n-=t[0],c+=t[1],i+=t[0],l+=t[0],s+=t[1]),{top:o,bottom:c,height:s,left:n,right:i,width:l,middle:n+(i-n)/2,center:o+(c-o)/2}}function rt(e,t,o){let{top:n,left:i}=e.getBoundingClientRect();return n+=t.top,i+=t.left,o!==void 0&&(n+=o[1],i+=o[0]),{top:n,bottom:n+1,height:1,left:i,right:i+1,width:1,middle:i,center:n}}function st(e,t){return{top:0,center:t/2,bottom:t,left:0,middle:e/2,right:e}}function ae(e,t,o,n){return{top:e[o.vertical]-t[n.vertical],left:e[o.horizontal]-t[n.horizontal]}}function ce(e,t=0){if(e.targetEl===null||e.anchorEl===null||t>5)return;if(e.targetEl.offsetHeight===0||e.targetEl.offsetWidth===0){setTimeout(()=>{ce(e,t+1)},10);return}const{targetEl:o,offset:n,anchorEl:i,anchorOrigin:c,selfOrigin:l,absoluteOffset:s,fit:d,cover:u,maxHeight:h,maxWidth:v}=e;if(ue.is.ios===!0&&window.visualViewport!==void 0){const E=document.body.style,{offsetLeft:b,offsetTop:y}=window.visualViewport;b!==ne&&(E.setProperty("--q-pe-left",b+"px"),ne=b),y!==oe&&(E.setProperty("--q-pe-top",y+"px"),oe=y)}const{scrollLeft:x,scrollTop:a}=o,f=s===void 0?at(i,u===!0?[0,0]:n):rt(i,s,n);Object.assign(o.style,{top:0,left:0,minWidth:null,minHeight:null,maxWidth:v,maxHeight:h,visibility:"visible"});const{offsetWidth:H,offsetHeight:q}=o,{elWidth:M,elHeight:A}=d===!0||u===!0?{elWidth:Math.max(f.width,H),elHeight:u===!0?Math.max(f.height,q):q}:{elWidth:H,elHeight:q};let m={maxWidth:v,maxHeight:h};(d===!0||u===!0)&&(m.minWidth=f.width+"px",u===!0&&(m.minHeight=f.height+"px")),Object.assign(o.style,m);const p=st(M,A);let g=ae(f,p,c,l);if(s===void 0||n===void 0)$(g,f,p,c,l);else{const{top:E,left:b}=g;$(g,f,p,c,l);let y=!1;if(g.top!==E){y=!0;const w=2*n[1];f.center=f.top-=w,f.bottom-=w+2}if(g.left!==b){y=!0;const w=2*n[0];f.middle=f.left-=w,f.right-=w+2}y===!0&&(g=ae(f,p,c,l),$(g,f,p,c,l))}m={top:g.top+"px",left:g.left+"px"},g.maxHeight!==void 0&&(m.maxHeight=g.maxHeight+"px",f.height>g.maxHeight&&(m.minHeight=m.maxHeight)),g.maxWidth!==void 0&&(m.maxWidth=g.maxWidth+"px",f.width>g.maxWidth&&(m.minWidth=m.maxWidth)),Object.assign(o.style,m),o.scrollTop!==a&&(o.scrollTop=a),o.scrollLeft!==x&&(o.scrollLeft=x)}function $(e,t,o,n,i){const c=o.bottom,l=o.right,s=ke(),d=window.innerHeight-s,u=document.body.clientWidth;if(e.top<0||e.top+c>d)if(i.vertical==="center")e.top=t[n.vertical]>d/2?Math.max(0,d-c):0,e.maxHeight=Math.min(c,d);else if(t[n.vertical]>d/2){const h=Math.min(d,n.vertical==="center"?t.center:n.vertical===i.vertical?t.bottom:t.top);e.maxHeight=Math.min(c,h),e.top=Math.max(0,h-c)}else e.top=Math.max(0,n.vertical==="center"?t.center:n.vertical===i.vertical?t.top:t.bottom),e.maxHeight=Math.min(c,d-e.top);if(e.left<0||e.left+l>u)if(e.maxWidth=Math.min(l,u),i.horizontal==="middle")e.left=t[n.horizontal]>u/2?Math.max(0,u-l):0;else if(t[n.horizontal]>u/2){const h=Math.min(u,n.horizontal==="middle"?t.middle:n.horizontal===i.horizontal?t.right:t.left);e.maxWidth=Math.min(l,h),e.left=Math.max(0,h-e.maxWidth)}else e.left=Math.max(0,n.horizontal==="middle"?t.middle:n.horizontal===i.horizontal?t.left:t.right),e.maxWidth=Math.min(l,u-e.left)}const mt=Ce({name:"QMenu",inheritAttrs:!1,props:{...tt,...We,...Be,...Pe,persistent:Boolean,autoClose:Boolean,separateClosePopup:Boolean,noEscDismiss:Boolean,noRouteDismiss:Boolean,noRefocus:Boolean,noFocus:Boolean,fit:Boolean,cover:Boolean,square:Boolean,anchor:{type:String,validator:le},self:{type:String,validator:le},offset:{type:Array,validator:it},scrollTarget:Me,touchPosition:Boolean,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null}},emits:[...He,"click","escapeKey"],setup(e,{slots:t,emit:o,attrs:n}){let i=null,c,l,s;const d=se(),{proxy:u}=d,{$q:h}=u,v=P(null),x=P(!1),a=T(()=>e.persistent!==!0&&e.noRouteDismiss!==!0),f=Ae(e,h),{registerTick:H,removeTick:q}=Ie(),{registerTimeout:M}=Le(),{transitionProps:A,transitionStyle:m}=ze(e),{localScrollTarget:p,changeScrollEvent:g,unconfigureScrollTarget:E}=ot(e,Y),{anchorEl:b,canShow:y}=nt({showing:x}),{hide:w}=Re({showing:x,canShow:y,handleShow:ve,handleHide:xe,hideOnRouteChange:a,processOnMount:!0}),{showPortal:O,hidePortal:j,renderPortal:de}=$e(d,v,ye,"menu"),I={anchorEl:b,innerRef:v,onClickOutside(r){if(e.persistent!==!0&&x.value===!0)return w(r),(r.type==="touchstart"||r.target.classList.contains("q-dialog__backdrop"))&&Je(r),!0}},N=T(()=>ie(e.anchor||(e.cover===!0?"center middle":"bottom start"),h.lang.rtl)),he=T(()=>e.cover===!0?N.value:ie(e.self||"top start",h.lang.rtl)),ge=T(()=>(e.square===!0?" q-menu--square":"")+(f.value===!0?" q-menu--dark q-dark":"")),me=T(()=>e.autoClose===!0?{onClick:be}:{}),Q=T(()=>x.value===!0&&e.persistent!==!0);_(Q,r=>{r===!0?(De(z),lt(I)):(Z(z),te(I))});function L(){Ge(()=>{let r=v.value;r&&r.contains(document.activeElement)!==!0&&(r=r.querySelector("[autofocus][tabindex], [data-autofocus][tabindex]")||r.querySelector("[autofocus] [tabindex], [data-autofocus] [tabindex]")||r.querySelector("[autofocus], [data-autofocus]")||r,r.focus({preventScroll:!0}))})}function ve(r){if(i=e.noRefocus===!1?document.activeElement:null,Fe(G),O(),Y(),c=void 0,r!==void 0&&(e.touchPosition||e.contextMenu)){const R=Ke(r);if(R.left!==void 0){const{top:pe,left:we}=b.value.getBoundingClientRect();c={left:R.left-we,top:R.top-pe}}}l===void 0&&(l=_(()=>h.screen.width+"|"+h.screen.height+"|"+e.self+"|"+e.anchor+"|"+h.lang.rtl,k)),e.noFocus!==!0&&document.activeElement.blur(),H(()=>{k(),e.noFocus!==!0&&L()}),M(()=>{h.platform.is.ios===!0&&(s=e.autoClose,v.value.click()),k(),O(!0),o("show",r)},e.transitionDuration)}function xe(r){q(),j(),V(!0),i!==null&&(r===void 0||r.qClickOutside!==!0)&&(((r?.type.indexOf("key")===0?i.closest('[tabindex]:not([tabindex^="-"])'):void 0)||i).focus(),i=null),M(()=>{j(!0),o("hide",r)},e.transitionDuration)}function V(r){c=void 0,l!==void 0&&(l(),l=void 0),(r===!0||x.value===!0)&&(Oe(G),E(),te(I),Z(z)),r!==!0&&(i=null)}function Y(){(b.value!==null||e.scrollTarget!==void 0)&&(p.value=je(b.value,e.scrollTarget),g(p.value,k))}function be(r){s!==!0?(Ne(u,r),o("click",r)):s=!1}function G(r){Q.value===!0&&e.noFocus!==!0&&Qe(v.value,r.target)!==!0&&L()}function z(r){e.noEscDismiss!==!0&&(o("escapeKey"),w(r))}function k(){ce({targetEl:v.value,offset:e.offset,anchorEl:b.value,anchorOrigin:N.value,selfOrigin:he.value,absoluteOffset:c,fit:e.fit,cover:e.cover,maxHeight:e.maxHeight,maxWidth:e.maxWidth})}function ye(){return ee(Ye,A.value,()=>x.value===!0?ee("div",{role:"menu",...n,ref:v,tabindex:-1,class:["q-menu q-position-engine scroll"+ge.value,n.class],style:[n.style,m.value],...me.value},Ve(t.default)):null)}return K(V),Object.assign(u,{focus:L,updatePosition:k}),de}}),re=["B","KB","MB","GB","TB","PB"];function vt(e,t=1){let o=0;for(;parseInt(e,10)>=1024&&onull;return{has:()=>!1,hasItem:()=>!1,getLength:()=>0,getItem:e,getIndex:e,getKey:e,getAll:()=>{},getAllKeys:()=>[],set:C,setItem:C,remove:C,removeItem:C,clear:C,isEmpty:()=>!0}}function dt(e){const t=window[e+"Storage"],o=l=>{const s=t.getItem(l);return s?ct(s):null},n=l=>t.getItem(l)!==null,i=(l,s)=>{t.setItem(l,ut(s))},c=l=>{t.removeItem(l)};return{has:n,hasItem:n,getLength:()=>t.length,getItem:o,getIndex:l=>ll{let l;const s={},d=t.length;for(let u=0;u{const l=[],s=t.length;for(let d=0;d{t.clear()},isEmpty:()=>t.length===0}}const fe=ue.has.webStorage===!1?ft():dt("local"),ht={install({$q:e}){e.localStorage=fe}};Object.assign(ht,fe);export{ht as P,mt as Q,le as a,xt as b,Ze as c,ot as d,nt as e,lt as f,vt as h,bt as n,ie as p,te as r,ce as s,et as u,it as v}; diff --git a/app/dist/spa/assets/MainLayout-Cyzrc7AM.js b/app/dist/spa/assets/MainLayout-Cyzrc7AM.js new file mode 100644 index 0000000..1912731 --- /dev/null +++ b/app/dist/spa/assets/MainLayout-Cyzrc7AM.js @@ -0,0 +1 @@ +import{c as A,a as c,h as q,b as ve,r as C,i as Le,o as re,g as J,e as Z,n as Me,f as de,l as $e,j as fe,k as V,m as ie,w as O,p as St,q as Be,s as wt,t as qt,u as _t,v as Ct,x as Tt,y as ze,z as oe,A as pe,B as se,C as ke,D as Qe,E as Se,F as Ot,G as xt,H as lt,I as ot,J as $t,K as we,L as Bt,M as kt,N as Pe,O as Ve,P as Lt,Q as Mt,R as Pt,S as Ht,T as Et,U as Dt,V as Ae,W as nt,X as Qt,Y as qe,Z as ce,_ as Vt,$ as At,a0 as Ft,a1 as M,a2 as It,a3 as _e,a4 as k,a5 as E,a6 as Ce,a7 as Te,a8 as ee,a9 as Fe,aa as Ie,ab as Re,ac as te}from"./index-0B2sgEyA.js";import{Q as Ne,a as je,b as We}from"./QList-CHwmSUjA.js";import{c as Rt,b as j,Q as Xe}from"./LocalStorage-7Uw3xG9P.js";import{u as rt}from"./taxstore-oR45_mFg.js";import{u as Nt}from"./children-ChLzVyp9.js";import{u as jt}from"./vue-i18n.runtime-DPKkE7zN.js";const Wt=A({name:"QToolbarTitle",props:{shrink:Boolean},setup(e,{slots:r}){const n=c(()=>"q-toolbar__title ellipsis"+(e.shrink===!0?" col-shrink":""));return()=>q("div",{class:n.value},ve(r.default))}}),Xt=A({name:"QSpace",setup(){const e=q("div",{class:"q-space"});return()=>e}}),Ue=A({name:"QToolbar",props:{inset:Boolean},setup(e,{slots:r}){const n=c(()=>"q-toolbar row no-wrap items-center"+(e.inset===!0?" q-toolbar--inset":""));return()=>q("div",{class:n.value,role:"toolbar"},ve(r.default))}});function Ut(){const e=C(!Le.value);return e.value===!1&&re(()=>{e.value=!0}),{isHydrated:e}}const it=typeof ResizeObserver<"u",Ye=it===!0?{}:{style:"display:block;position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;",url:"about:blank"},ae=A({name:"QResizeObserver",props:{debounce:{type:[String,Number],default:100}},emits:["resize"],setup(e,{emit:r}){let n=null,s,t={width:-1,height:-1};function a(d){d===!0||e.debounce===0||e.debounce==="0"?o():n===null&&(n=setTimeout(o,e.debounce))}function o(){if(n!==null&&(clearTimeout(n),n=null),s){const{offsetWidth:d,offsetHeight:v}=s;(d!==t.width||v!==t.height)&&(t={width:d,height:v},r("resize",t))}}const{proxy:l}=J();if(l.trigger=a,it===!0){let d;const v=i=>{s=l.$el.parentNode,s?(d=new ResizeObserver(a),d.observe(s),o()):i!==!0&&de(()=>{v(!0)})};return re(()=>{v()}),Z(()=>{n!==null&&clearTimeout(n),d!==void 0&&(d.disconnect!==void 0?d.disconnect():s&&d.unobserve(s))}),Me}else{let d=function(){n!==null&&(clearTimeout(n),n=null),b!==void 0&&(b.removeEventListener!==void 0&&b.removeEventListener("resize",a,$e.passive),b=void 0)},v=function(){d(),s?.contentDocument&&(b=s.contentDocument.defaultView,b.addEventListener("resize",a,$e.passive),o())};const{isHydrated:i}=Ut();let b;return re(()=>{de(()=>{s=l.$el,s&&v()})}),Z(d),()=>{if(i.value===!0)return q("object",{class:"q--avoid-card-border",style:Ye.style,tabindex:-1,type:"text/html",data:Ye.url,"aria-hidden":"true",onLoad:v})}}}}),Yt=A({name:"QHeader",props:{modelValue:{type:Boolean,default:!0},reveal:Boolean,revealOffset:{type:Number,default:250},bordered:Boolean,elevated:Boolean,heightHint:{type:[String,Number],default:50}},emits:["reveal","focusin"],setup(e,{slots:r,emit:n}){const{proxy:{$q:s}}=J(),t=fe(ie,V);if(t===V)return console.error("QHeader needs to be child of QLayout"),V;const a=C(parseInt(e.heightHint,10)),o=C(!0),l=c(()=>e.reveal===!0||t.view.value.indexOf("H")!==-1||s.platform.is.ios&&t.isContainer.value===!0),d=c(()=>{if(e.modelValue!==!0)return 0;if(l.value===!0)return o.value===!0?a.value:0;const g=a.value-t.scroll.value.position;return g>0?g:0}),v=c(()=>e.modelValue!==!0||l.value===!0&&o.value!==!0),i=c(()=>e.modelValue===!0&&v.value===!0&&e.reveal===!0),b=c(()=>"q-header q-layout__section--marginal "+(l.value===!0?"fixed":"absolute")+"-top"+(e.bordered===!0?" q-header--bordered":"")+(v.value===!0?" q-header--hidden":"")+(e.modelValue!==!0?" q-layout--prevent-focus":"")),p=c(()=>{const g=t.rows.value.top,P={};return g[0]==="l"&&t.left.space===!0&&(P[s.lang.rtl===!0?"right":"left"]=`${t.left.size}px`),g[2]==="r"&&t.right.space===!0&&(P[s.lang.rtl===!0?"left":"right"]=`${t.right.size}px`),P});function m(g,P){t.update("header",g,P)}function z(g,P){g.value!==P&&(g.value=P)}function B({height:g}){z(a,g),m("size",g)}function $(g){i.value===!0&&z(o,!0),n("focusin",g)}O(()=>e.modelValue,g=>{m("space",g),z(o,!0),t.animate()}),O(d,g=>{m("offset",g)}),O(()=>e.reveal,g=>{g===!1&&z(o,e.modelValue)}),O(o,g=>{t.animate(),n("reveal",g)}),O(t.scroll,g=>{e.reveal===!0&&z(o,g.direction==="up"||g.position<=e.revealOffset||g.position-g.inflectionPoint<100)});const _={};return t.instances.header=_,e.modelValue===!0&&m("size",a.value),m("space",e.modelValue),m("offset",d.value),Z(()=>{t.instances.header===_&&(t.instances.header=void 0,m("size",0),m("offset",0),m("space",!1))}),()=>{const g=St(r.default,[]);return e.elevated===!0&&g.push(q("div",{class:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),g.push(q(ae,{debounce:0,onResize:B})),q("header",{class:b.value,style:p.value,onFocusin:$},g)}}}),Kt=A({props:["store","barStyle","verticalBarStyle","horizontalBarStyle"],setup(e){return()=>[q("div",{class:e.store.scroll.vertical.barClass.value,style:[e.barStyle,e.verticalBarStyle],"aria-hidden":"true",onMousedown:e.store.onVerticalMousedown}),q("div",{class:e.store.scroll.horizontal.barClass.value,style:[e.barStyle,e.horizontalBarStyle],"aria-hidden":"true",onMousedown:e.store.onHorizontalMousedown}),Be(q("div",{ref:e.store.scroll.vertical.ref,class:e.store.scroll.vertical.thumbClass.value,style:e.store.scroll.vertical.style.value,"aria-hidden":"true"}),e.store.thumbVertDir),Be(q("div",{ref:e.store.scroll.horizontal.ref,class:e.store.scroll.horizontal.thumbClass.value,style:e.store.scroll.horizontal.style.value,"aria-hidden":"true"}),e.store.thumbHorizDir)]}}),{passive:Ke}=$e,Jt=["both","horizontal","vertical"],ut=A({name:"QScrollObserver",props:{axis:{type:String,validator:e=>Jt.includes(e),default:"vertical"},debounce:[String,Number],scrollTarget:wt},emits:["scroll"],setup(e,{emit:r}){const n={position:{top:0,left:0},direction:"down",directionChanged:!1,delta:{top:0,left:0},inflectionPoint:{top:0,left:0}};let s=null,t,a;O(()=>e.scrollTarget,()=>{d(),l()});function o(){s?.();const b=Math.max(0,_t(t)),p=Ct(t),m={top:b-n.position.top,left:p-n.position.left};if(e.axis==="vertical"&&m.top===0||e.axis==="horizontal"&&m.left===0)return;const z=Math.abs(m.top)>=Math.abs(m.left)?m.top<0?"up":"down":m.left<0?"left":"right";n.position={top:b,left:p},n.directionChanged=n.direction!==z,n.delta=m,n.directionChanged===!0&&(n.direction=z,n.inflectionPoint=n.position),r("scroll",{...n})}function l(){t=qt(a,e.scrollTarget),t.addEventListener("scroll",v,Ke),v(!0)}function d(){t!==void 0&&(t.removeEventListener("scroll",v,Ke),t=void 0)}function v(b){if(b===!0||e.debounce===0||e.debounce==="0")o();else if(s===null){const[p,m]=e.debounce?[setTimeout(o,e.debounce),clearTimeout]:[requestAnimationFrame(o),cancelAnimationFrame];s=()=>{m(p),s=null}}}const{proxy:i}=J();return O(()=>i.$q.lang.rtl,o),re(()=>{a=i.$el.parentNode,l()}),Z(()=>{s?.(),d()}),Object.assign(i,{trigger:v,getPosition:()=>n}),Me}}),He={left:!0,right:!0,up:!0,down:!0,horizontal:!0,vertical:!0},Gt=Object.keys(He);He.all=!0;function Je(e){const r={};for(const n of Gt)e[n]===!0&&(r[n]=!0);return Object.keys(r).length===0?He:(r.horizontal===!0?r.left=r.right=!0:r.left===!0&&r.right===!0&&(r.horizontal=!0),r.vertical===!0?r.up=r.down=!0:r.up===!0&&r.down===!0&&(r.vertical=!0),r.horizontal===!0&&r.vertical===!0&&(r.all=!0),r)}const Zt=["INPUT","TEXTAREA"];function Ge(e,r){return r.event===void 0&&e.target!==void 0&&e.target.draggable!==!0&&typeof r.handler=="function"&&Zt.includes(e.target.nodeName.toUpperCase())===!1&&(e.qClonedBy===void 0||e.qClonedBy.indexOf(r.uid)===-1)}function Oe(e,r,n){const s=ke(e);let t,a=s.left-r.event.x,o=s.top-r.event.y,l=Math.abs(a),d=Math.abs(o);const v=r.direction;v.horizontal===!0&&v.vertical!==!0?t=a<0?"left":"right":v.horizontal!==!0&&v.vertical===!0?t=o<0?"up":"down":v.up===!0&&o<0?(t="up",l>d&&(v.left===!0&&a<0?t="left":v.right===!0&&a>0&&(t="right"))):v.down===!0&&o>0?(t="down",l>d&&(v.left===!0&&a<0?t="left":v.right===!0&&a>0&&(t="right"))):v.left===!0&&a<0?(t="left",l0&&(t="down"))):v.right===!0&&a>0&&(t="right",l0&&(t="down")));let i=!1;if(t===void 0&&n===!1){if(r.event.isFirst===!0||r.event.lastDir===void 0)return{};t=r.event.lastDir,i=!0,t==="left"||t==="right"?(s.left-=a,l=0,a=0):(s.top-=o,d=0,o=0)}return{synthetic:i,payload:{evt:e,touch:r.event.mouse!==!0,mouse:r.event.mouse===!0,position:s,direction:t,isFirst:r.event.isFirst,isFinal:n===!0,duration:Date.now()-r.event.time,distance:{x:l,y:d},offset:{x:a,y:o},delta:{x:s.left-r.event.lastX,y:s.top-r.event.lastY}}}}let ea=0;const ne=Tt({name:"touch-pan",beforeMount(e,{value:r,modifiers:n}){if(n.mouse!==!0&&oe.has.touch!==!0)return;function s(a,o){n.mouse===!0&&o===!0?xt(a):(n.stop===!0&&Se(a),n.prevent===!0&&Qe(a))}const t={uid:"qvtp_"+ea++,handler:r,modifiers:n,direction:Je(n),noop:Me,mouseStart(a){Ge(a,t)&&Ot(a)&&(se(t,"temp",[[document,"mousemove","move","notPassiveCapture"],[document,"mouseup","end","passiveCapture"]]),t.start(a,!0))},touchStart(a){if(Ge(a,t)){const o=a.target;se(t,"temp",[[o,"touchmove","move","notPassiveCapture"],[o,"touchcancel","end","passiveCapture"],[o,"touchend","end","passiveCapture"]]),t.start(a)}},start(a,o){if(oe.is.firefox===!0&&pe(e,!0),t.lastEvt=a,o===!0||n.stop===!0){if(t.direction.all!==!0&&(o!==!0||t.modifiers.mouseAllDir!==!0&&t.modifiers.mousealldir!==!0)){const v=a.type.indexOf("mouse")!==-1?new MouseEvent(a.type,a):new TouchEvent(a.type,a);a.defaultPrevented===!0&&Qe(v),a.cancelBubble===!0&&Se(v),Object.assign(v,{qKeyEvent:a.qKeyEvent,qClickOutside:a.qClickOutside,qAnchorHandled:a.qAnchorHandled,qClonedBy:a.qClonedBy===void 0?[t.uid]:a.qClonedBy.concat(t.uid)}),t.initialEvent={target:a.target,event:v}}Se(a)}const{left:l,top:d}=ke(a);t.event={x:l,y:d,time:Date.now(),mouse:o===!0,detected:!1,isFirst:!0,isFinal:!1,lastX:l,lastY:d}},move(a){if(t.event===void 0)return;const o=ke(a),l=o.left-t.event.x,d=o.top-t.event.y;if(l===0&&d===0)return;t.lastEvt=a;const v=t.event.mouse===!0,i=()=>{s(a,v);let m;n.preserveCursor!==!0&&n.preservecursor!==!0&&(m=document.documentElement.style.cursor||"",document.documentElement.style.cursor="grabbing"),v===!0&&document.body.classList.add("no-pointer-events--children"),document.body.classList.add("non-selectable"),Rt(),t.styleCleanup=z=>{if(t.styleCleanup=void 0,m!==void 0&&(document.documentElement.style.cursor=m),document.body.classList.remove("non-selectable"),v===!0){const B=()=>{document.body.classList.remove("no-pointer-events--children")};z!==void 0?setTimeout(()=>{B(),z()},50):B()}else z!==void 0&&z()}};if(t.event.detected===!0){t.event.isFirst!==!0&&s(a,t.event.mouse);const{payload:m,synthetic:z}=Oe(a,t,!1);m!==void 0&&(t.handler(m)===!1?t.end(a):(t.styleCleanup===void 0&&t.event.isFirst===!0&&i(),t.event.lastX=m.position.left,t.event.lastY=m.position.top,t.event.lastDir=z===!0?void 0:m.direction,t.event.isFirst=!1));return}if(t.direction.all===!0||v===!0&&(t.modifiers.mouseAllDir===!0||t.modifiers.mousealldir===!0)){i(),t.event.detected=!0,t.move(a);return}const b=Math.abs(l),p=Math.abs(d);b!==p&&(t.direction.horizontal===!0&&b>p||t.direction.vertical===!0&&b0||t.direction.left===!0&&b>p&&l<0||t.direction.right===!0&&b>p&&l>0?(t.event.detected=!0,t.move(a)):t.end(a,!0))},end(a,o){if(t.event!==void 0){if(ze(t,"temp"),oe.is.firefox===!0&&pe(e,!1),o===!0)t.styleCleanup?.(),t.event.detected!==!0&&t.initialEvent!==void 0&&t.initialEvent.target.dispatchEvent(t.initialEvent.event);else if(t.event.detected===!0){t.event.isFirst===!0&&t.handler(Oe(a===void 0?t.lastEvt:a,t).payload);const{payload:l}=Oe(a===void 0?t.lastEvt:a,t,!0),d=()=>{t.handler(l)};t.styleCleanup!==void 0?t.styleCleanup(d):d()}t.event=void 0,t.initialEvent=void 0,t.lastEvt=void 0}}};if(e.__qtouchpan=t,n.mouse===!0){const a=n.mouseCapture===!0||n.mousecapture===!0?"Capture":"";se(t,"main",[[e,"mousedown","mouseStart",`passive${a}`]])}oe.has.touch===!0&&se(t,"main",[[e,"touchstart","touchStart",`passive${n.capture===!0?"Capture":""}`],[e,"touchmove","noop","notPassiveCapture"]])},updated(e,r){const n=e.__qtouchpan;n!==void 0&&(r.oldValue!==r.value&&(typeof value!="function"&&n.end(),n.handler=r.value),n.direction=Je(r.modifiers))},beforeUnmount(e){const r=e.__qtouchpan;r!==void 0&&(r.event!==void 0&&r.end(),ze(r,"main"),ze(r,"temp"),oe.is.firefox===!0&&pe(e,!1),r.styleCleanup?.(),delete e.__qtouchpan)}}),Ze=["vertical","horizontal"],xe={vertical:{offset:"offsetY",scroll:"scrollTop",dir:"down",dist:"y"},horizontal:{offset:"offsetX",scroll:"scrollLeft",dir:"right",dist:"x"}},et={prevent:!0,mouse:!0,mouseAllDir:!0},tt=e=>e>=250?50:Math.ceil(e/5),ta=A({name:"QScrollArea",props:{...lt,thumbStyle:Object,verticalThumbStyle:Object,horizontalThumbStyle:Object,barStyle:[Array,String,Object],verticalBarStyle:[Array,String,Object],horizontalBarStyle:[Array,String,Object],verticalOffset:{type:Array,default:[0,0]},horizontalOffset:{type:Array,default:[0,0]},contentStyle:[Array,String,Object],contentActiveStyle:[Array,String,Object],delay:{type:[String,Number],default:1e3},visible:{type:Boolean,default:null},tabindex:[String,Number],onScroll:Function},setup(e,{slots:r,emit:n}){const s=C(!1),t=C(!1),a=C(!1),o={vertical:C(0),horizontal:C(0)},l={vertical:{ref:C(null),position:C(0),size:C(0)},horizontal:{ref:C(null),position:C(0),size:C(0)}},{proxy:d}=J(),v=ot(e,d.$q);let i=null,b;const p=C(null),m=c(()=>"q-scrollarea"+(v.value===!0?" q-scrollarea--dark":""));Object.assign(o,{verticalInner:c(()=>o.vertical.value-e.verticalOffset[0]-e.verticalOffset[1]),horizontalInner:c(()=>o.horizontal.value-e.horizontalOffset[0]-e.horizontalOffset[1])}),l.vertical.percentage=c(()=>{const f=l.vertical.size.value-o.vertical.value;if(f<=0)return 0;const y=j(l.vertical.position.value/f,0,1);return Math.round(y*1e4)/1e4}),l.vertical.thumbHidden=c(()=>(e.visible===null?a.value:e.visible)!==!0&&s.value===!1&&t.value===!1||l.vertical.size.value<=o.vertical.value+1),l.vertical.thumbStart=c(()=>e.verticalOffset[0]+l.vertical.percentage.value*(o.verticalInner.value-l.vertical.thumbSize.value)),l.vertical.thumbSize=c(()=>Math.round(j(o.verticalInner.value*o.verticalInner.value/l.vertical.size.value,tt(o.verticalInner.value),o.verticalInner.value))),l.vertical.style=c(()=>({...e.thumbStyle,...e.verticalThumbStyle,top:`${l.vertical.thumbStart.value}px`,height:`${l.vertical.thumbSize.value}px`,right:`${e.horizontalOffset[1]}px`})),l.vertical.thumbClass=c(()=>"q-scrollarea__thumb q-scrollarea__thumb--v absolute-right"+(l.vertical.thumbHidden.value===!0?" q-scrollarea__thumb--invisible":"")),l.vertical.barClass=c(()=>"q-scrollarea__bar q-scrollarea__bar--v absolute-right"+(l.vertical.thumbHidden.value===!0?" q-scrollarea__bar--invisible":"")),l.horizontal.percentage=c(()=>{const f=l.horizontal.size.value-o.horizontal.value;if(f<=0)return 0;const y=j(Math.abs(l.horizontal.position.value)/f,0,1);return Math.round(y*1e4)/1e4}),l.horizontal.thumbHidden=c(()=>(e.visible===null?a.value:e.visible)!==!0&&s.value===!1&&t.value===!1||l.horizontal.size.value<=o.horizontal.value+1),l.horizontal.thumbStart=c(()=>e.horizontalOffset[0]+l.horizontal.percentage.value*(o.horizontalInner.value-l.horizontal.thumbSize.value)),l.horizontal.thumbSize=c(()=>Math.round(j(o.horizontalInner.value*o.horizontalInner.value/l.horizontal.size.value,tt(o.horizontalInner.value),o.horizontalInner.value))),l.horizontal.style=c(()=>({...e.thumbStyle,...e.horizontalThumbStyle,[d.$q.lang.rtl===!0?"right":"left"]:`${l.horizontal.thumbStart.value}px`,width:`${l.horizontal.thumbSize.value}px`,bottom:`${e.verticalOffset[1]}px`})),l.horizontal.thumbClass=c(()=>"q-scrollarea__thumb q-scrollarea__thumb--h absolute-bottom"+(l.horizontal.thumbHidden.value===!0?" q-scrollarea__thumb--invisible":"")),l.horizontal.barClass=c(()=>"q-scrollarea__bar q-scrollarea__bar--h absolute-bottom"+(l.horizontal.thumbHidden.value===!0?" q-scrollarea__bar--invisible":""));const z=c(()=>l.vertical.thumbHidden.value===!0&&l.horizontal.thumbHidden.value===!0?e.contentStyle:e.contentActiveStyle);function B(){const f={};return Ze.forEach(y=>{const T=l[y];Object.assign(f,{[y+"Position"]:T.position.value,[y+"Percentage"]:T.percentage.value,[y+"Size"]:T.size.value,[y+"ContainerSize"]:o[y].value,[y+"ContainerInnerSize"]:o[y+"Inner"].value})}),f}const $=$t(()=>{const f=B();f.ref=d,n("scroll",f)},0);function _(f,y,T){if(Ze.includes(f)===!1){console.error("[QScrollArea]: wrong first param of setScrollPosition (vertical/horizontal)");return}(f==="vertical"?Ve:we)(p.value,y,T)}function g({height:f,width:y}){let T=!1;o.vertical.value!==f&&(o.vertical.value=f,T=!0),o.horizontal.value!==y&&(o.horizontal.value=y,T=!0),T===!0&&L()}function P({position:f}){let y=!1;l.vertical.position.value!==f.top&&(l.vertical.position.value=f.top,y=!0),l.horizontal.position.value!==f.left&&(l.horizontal.position.value=f.left,y=!0),y===!0&&L()}function S({height:f,width:y}){l.horizontal.size.value!==y&&(l.horizontal.size.value=y,L()),l.vertical.size.value!==f&&(l.vertical.size.value=f,L())}function h(f,y){const T=l[y];if(f.isFirst===!0){if(T.thumbHidden.value===!0)return;b=T.position.value,t.value=!0}else if(t.value!==!0)return;f.isFinal===!0&&(t.value=!1);const I=xe[y],N=(T.size.value-o[y].value)/(o[y+"Inner"].value-T.thumbSize.value),R=f.distance[I.dist],le=b+(f.direction===I.dir?1:-1)*R*N;W(le,y)}function x(f,y){const T=l[y];if(T.thumbHidden.value!==!0){const I=y==="vertical"?e.verticalOffset[0]:e.horizontalOffset[0],N=f[xe[y].offset]-I,R=T.thumbStart.value-I;if(NR+T.thumbSize.value){const le=N-T.thumbSize.value/2,he=j(le/(o[y+"Inner"].value-T.thumbSize.value),0,1);W(he*Math.max(0,T.size.value-o[y].value),y)}T.ref.value!==null&&T.ref.value.dispatchEvent(new MouseEvent(f.type,f))}}function L(){s.value=!0,i!==null&&clearTimeout(i),i=setTimeout(()=>{i=null,s.value=!1},e.delay),e.onScroll!==void 0&&$()}function W(f,y){p.value[xe[y].scroll]=f}let H=null;function F(){H!==null&&clearTimeout(H),H=setTimeout(()=>{H=null,a.value=!0},d.$q.platform.is.ios?50:0)}function X(){H!==null&&(clearTimeout(H),H=null),a.value=!1}let G=null;O(()=>d.$q.lang.rtl,f=>{p.value!==null&&we(p.value,Math.abs(l.horizontal.position.value)*(f===!0?-1:1))}),Bt(()=>{G={top:l.vertical.position.value,left:l.horizontal.position.value}}),kt(()=>{if(G===null)return;const f=p.value;f!==null&&(we(f,G.left),Ve(f,G.top))}),Z($.cancel),Object.assign(d,{getScrollTarget:()=>p.value,getScroll:B,getScrollPosition:()=>({top:l.vertical.position.value,left:l.horizontal.position.value}),getScrollPercentage:()=>({top:l.vertical.percentage.value,left:l.horizontal.percentage.value}),setScrollPosition:_,setScrollPercentage(f,y,T){_(f,y*(l[f].size.value-o[f].value)*(f==="horizontal"&&d.$q.lang.rtl===!0?-1:1),T)}});const U={scroll:l,thumbVertDir:[[ne,f=>{h(f,"vertical")},void 0,{vertical:!0,...et}]],thumbHorizDir:[[ne,f=>{h(f,"horizontal")},void 0,{horizontal:!0,...et}]],onVerticalMousedown(f){x(f,"vertical")},onHorizontalMousedown(f){x(f,"horizontal")}};return()=>q("div",{class:m.value,onMouseenter:F,onMouseleave:X},[q("div",{ref:p,class:"q-scrollarea__container scroll relative-position fit hide-scrollbar",tabindex:e.tabindex!==void 0?e.tabindex:void 0},[q("div",{class:"q-scrollarea__content absolute",style:z.value},Pe(r.default,[q(ae,{debounce:0,onResize:S})])),q(ut,{axis:"both",onScroll:P})]),q(ae,{debounce:0,onResize:g}),q(Kt,{store:U,barStyle:e.barStyle,verticalBarStyle:e.verticalBarStyle,horizontalBarStyle:e.horizontalBarStyle})])}}),at=150,aa=A({name:"QDrawer",inheritAttrs:!1,props:{...Mt,...lt,side:{type:String,default:"left",validator:e=>["left","right"].includes(e)},width:{type:Number,default:300},mini:Boolean,miniToOverlay:Boolean,miniWidth:{type:Number,default:57},noMiniAnimation:Boolean,breakpoint:{type:Number,default:1023},showIfAbove:Boolean,behavior:{type:String,validator:e=>["default","desktop","mobile"].includes(e),default:"default"},bordered:Boolean,elevated:Boolean,overlay:Boolean,persistent:Boolean,noSwipeOpen:Boolean,noSwipeClose:Boolean,noSwipeBackdrop:Boolean},emits:[...Lt,"onLayout","miniState"],setup(e,{slots:r,emit:n,attrs:s}){const t=J(),{proxy:{$q:a}}=t,o=ot(e,a),{preventBodyScroll:l}=Dt(),{registerTimeout:d,removeTimeout:v}=Pt(),i=fe(ie,V);if(i===V)return console.error("QDrawer needs to be child of QLayout"),V;let b,p=null,m;const z=C(e.behavior==="mobile"||e.behavior!=="desktop"&&i.totalWidth.value<=e.breakpoint),B=c(()=>e.mini===!0&&z.value!==!0),$=c(()=>B.value===!0?e.miniWidth:e.width),_=C(e.showIfAbove===!0&&z.value===!1?!0:e.modelValue===!0),g=c(()=>e.persistent!==!0&&(z.value===!0||le.value===!0));function P(u,w){if(L(),u!==!1&&i.animate(),Q(0),z.value===!0){const D=i.instances[T.value];D?.belowBreakpoint===!0&&D.hide(!1),Y(1),i.isContainer.value!==!0&&l(!0)}else Y(0),u!==!1&&be(!1);d(()=>{u!==!1&&be(!0),w!==!0&&n("show",u)},at)}function S(u,w){W(),u!==!1&&i.animate(),Y(0),Q(X.value*$.value),ge(),w!==!0?d(()=>{n("hide",u)},at):v()}const{show:h,hide:x}=Ht({showing:_,hideOnRouteChange:g,handleShow:P,handleHide:S}),{addToHistory:L,removeFromHistory:W}=Et(_,x,g),H={belowBreakpoint:z,hide:x},F=c(()=>e.side==="right"),X=c(()=>(a.lang.rtl===!0?-1:1)*(F.value===!0?1:-1)),G=C(0),U=C(!1),f=C(!1),y=C($.value*X.value),T=c(()=>F.value===!0?"left":"right"),I=c(()=>_.value===!0&&z.value===!1&&e.overlay===!1?e.miniToOverlay===!0?e.miniWidth:$.value:0),N=c(()=>e.overlay===!0||e.miniToOverlay===!0||i.view.value.indexOf(F.value?"R":"L")!==-1||a.platform.is.ios===!0&&i.isContainer.value===!0),R=c(()=>e.overlay===!1&&_.value===!0&&z.value===!1),le=c(()=>e.overlay===!0&&_.value===!0&&z.value===!1),he=c(()=>"fullscreen q-drawer__backdrop"+(_.value===!1&&U.value===!1?" hidden":"")),st=c(()=>({backgroundColor:`rgba(0,0,0,${G.value*.4})`})),Ee=c(()=>F.value===!0?i.rows.value.top[2]==="r":i.rows.value.top[0]==="l"),ct=c(()=>F.value===!0?i.rows.value.bottom[2]==="r":i.rows.value.bottom[0]==="l"),dt=c(()=>{const u={};return i.header.space===!0&&Ee.value===!1&&(N.value===!0?u.top=`${i.header.offset}px`:i.header.space===!0&&(u.top=`${i.header.size}px`)),i.footer.space===!0&&ct.value===!1&&(N.value===!0?u.bottom=`${i.footer.offset}px`:i.footer.space===!0&&(u.bottom=`${i.footer.size}px`)),u}),vt=c(()=>{const u={width:`${$.value}px`,transform:`translateX(${y.value}px)`};return z.value===!0?u:Object.assign(u,dt.value)}),ft=c(()=>"q-drawer__content fit "+(i.isContainer.value!==!0?"scroll":"overflow-auto")),ht=c(()=>`q-drawer q-drawer--${e.side}`+(f.value===!0?" q-drawer--mini-animate":"")+(e.bordered===!0?" q-drawer--bordered":"")+(o.value===!0?" q-drawer--dark q-dark":"")+(U.value===!0?" no-transition":_.value===!0?"":" q-layout--prevent-focus")+(z.value===!0?" fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding":` q-drawer--${B.value===!0?"mini":"standard"}`+(N.value===!0||R.value!==!0?" fixed":"")+(e.overlay===!0||e.miniToOverlay===!0?" q-drawer--on-top":"")+(Ee.value===!0?" q-drawer--top-padding":""))),mt=c(()=>{const u=a.lang.rtl===!0?e.side:T.value;return[[ne,zt,void 0,{[u]:!0,mouse:!0}]]}),bt=c(()=>{const u=a.lang.rtl===!0?T.value:e.side;return[[ne,De,void 0,{[u]:!0,mouse:!0}]]}),gt=c(()=>{const u=a.lang.rtl===!0?T.value:e.side;return[[ne,De,void 0,{[u]:!0,mouse:!0,mouseAllDir:!0}]]});function me(){pt(z,e.behavior==="mobile"||e.behavior!=="desktop"&&i.totalWidth.value<=e.breakpoint)}O(z,u=>{u===!0?(b=_.value,_.value===!0&&x(!1)):e.overlay===!1&&e.behavior!=="mobile"&&b!==!1&&(_.value===!0?(Q(0),Y(0),ge()):h(!1))}),O(()=>e.side,(u,w)=>{i.instances[w]===H&&(i.instances[w]=void 0,i[w].space=!1,i[w].offset=0),i.instances[u]=H,i[u].size=$.value,i[u].space=R.value,i[u].offset=I.value}),O(i.totalWidth,()=>{(i.isContainer.value===!0||document.qScrollPrevented!==!0)&&me()}),O(()=>e.behavior+e.breakpoint,me),O(i.isContainer,u=>{_.value===!0&&l(u!==!0),u===!0&&me()}),O(i.scrollbarWidth,()=>{Q(_.value===!0?0:void 0)}),O(I,u=>{K("offset",u)}),O(R,u=>{n("onLayout",u),K("space",u)}),O(F,()=>{Q()}),O($,u=>{Q(),ye(e.miniToOverlay,u)}),O(()=>e.miniToOverlay,u=>{ye(u,$.value)}),O(()=>a.lang.rtl,()=>{Q()}),O(()=>e.mini,()=>{e.noMiniAnimation||e.modelValue===!0&&(yt(),i.animate())}),O(B,u=>{n("miniState",u)});function Q(u){u===void 0?de(()=>{u=_.value===!0?0:$.value,Q(X.value*u)}):(i.isContainer.value===!0&&F.value===!0&&(z.value===!0||Math.abs(u)===$.value)&&(u+=X.value*i.scrollbarWidth.value),y.value=u)}function Y(u){G.value=u}function be(u){const w=u===!0?"remove":i.isContainer.value!==!0?"add":"";w!==""&&document.body.classList[w]("q-body--drawer-toggle")}function yt(){p!==null&&clearTimeout(p),t.proxy&&t.proxy.$el&&t.proxy.$el.classList.add("q-drawer--mini-animate"),f.value=!0,p=setTimeout(()=>{p=null,f.value=!1,t?.proxy?.$el?.classList.remove("q-drawer--mini-animate")},150)}function zt(u){if(_.value!==!1)return;const w=$.value,D=j(u.distance.x,0,w);if(u.isFinal===!0){D>=Math.min(75,w)===!0?h():(i.animate(),Y(0),Q(X.value*w)),U.value=!1;return}Q((a.lang.rtl===!0?F.value!==!0:F.value)?Math.max(w-D,0):Math.min(0,D-w)),Y(j(D/w,0,1)),u.isFirst===!0&&(U.value=!0)}function De(u){if(_.value!==!0)return;const w=$.value,D=u.direction===e.side,ue=(a.lang.rtl===!0?D!==!0:D)?j(u.distance.x,0,w):0;if(u.isFinal===!0){Math.abs(ue){n("onLayout",R.value),n("miniState",B.value),b=e.showIfAbove===!0;const u=()=>{(_.value===!0?P:S)(!1,!0)};if(i.totalWidth.value!==0){de(u);return}m=O(i.totalWidth,()=>{m(),m=void 0,_.value===!1&&e.showIfAbove===!0&&z.value===!1?h(!1):u()})}),Z(()=>{m?.(),p!==null&&(clearTimeout(p),p=null),_.value===!0&&ge(),i.instances[e.side]===H&&(i.instances[e.side]=void 0,K("size",0),K("offset",0),K("space",!1))}),()=>{const u=[];z.value===!0&&(e.noSwipeOpen===!1&&u.push(Be(q("div",{key:"open",class:`q-drawer__opener fixed-${e.side}`,"aria-hidden":"true"}),mt.value)),u.push(Ae("div",{ref:"backdrop",class:he.value,style:st.value,"aria-hidden":"true",onClick:x},void 0,"backdrop",e.noSwipeBackdrop!==!0&&_.value===!0,()=>gt.value)));const w=B.value===!0&&r.mini!==void 0,D=[q("div",{...s,key:""+w,class:[ft.value,s.class]},w===!0?r.mini():ve(r.default))];return e.elevated===!0&&_.value===!0&&D.push(q("div",{class:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),u.push(Ae("aside",{ref:"content",class:ht.value,style:vt.value},D,"contentclose",e.noSwipeClose!==!0&&z.value===!0,()=>bt.value)),q("div",{class:"q-drawer-container"},u)}}}),la=A({name:"QPageContainer",setup(e,{slots:r}){const{proxy:{$q:n}}=J(),s=fe(ie,V);if(s===V)return console.error("QPageContainer needs to be child of QLayout"),V;nt(Qt,!0);const t=c(()=>{const a={};return s.header.space===!0&&(a.paddingTop=`${s.header.size}px`),s.right.space===!0&&(a[`padding${n.lang.rtl===!0?"Left":"Right"}`]=`${s.right.size}px`),s.footer.space===!0&&(a.paddingBottom=`${s.footer.size}px`),s.left.space===!0&&(a[`padding${n.lang.rtl===!0?"Right":"Left"}`]=`${s.left.size}px`),a});return()=>q("div",{class:"q-page-container",style:t.value},ve(r.default))}}),oa=A({name:"QFooter",props:{modelValue:{type:Boolean,default:!0},reveal:Boolean,bordered:Boolean,elevated:Boolean,heightHint:{type:[String,Number],default:50}},emits:["reveal","focusin"],setup(e,{slots:r,emit:n}){const{proxy:{$q:s}}=J(),t=fe(ie,V);if(t===V)return console.error("QFooter needs to be child of QLayout"),V;const a=C(parseInt(e.heightHint,10)),o=C(!0),l=C(Le.value===!0||t.isContainer.value===!0?0:window.innerHeight),d=c(()=>e.reveal===!0||t.view.value.indexOf("F")!==-1||s.platform.is.ios&&t.isContainer.value===!0),v=c(()=>t.isContainer.value===!0?t.containerHeight.value:l.value),i=c(()=>{if(e.modelValue!==!0)return 0;if(d.value===!0)return o.value===!0?a.value:0;const h=t.scroll.value.position+v.value+a.value-t.height.value;return h>0?h:0}),b=c(()=>e.modelValue!==!0||d.value===!0&&o.value!==!0),p=c(()=>e.modelValue===!0&&b.value===!0&&e.reveal===!0),m=c(()=>"q-footer q-layout__section--marginal "+(d.value===!0?"fixed":"absolute")+"-bottom"+(e.bordered===!0?" q-footer--bordered":"")+(b.value===!0?" q-footer--hidden":"")+(e.modelValue!==!0?" q-layout--prevent-focus"+(d.value!==!0?" hidden":""):"")),z=c(()=>{const h=t.rows.value.bottom,x={};return h[0]==="l"&&t.left.space===!0&&(x[s.lang.rtl===!0?"right":"left"]=`${t.left.size}px`),h[2]==="r"&&t.right.space===!0&&(x[s.lang.rtl===!0?"left":"right"]=`${t.right.size}px`),x});function B(h,x){t.update("footer",h,x)}function $(h,x){h.value!==x&&(h.value=x)}function _({height:h}){$(a,h),B("size",h)}function g(){if(e.reveal!==!0)return;const{direction:h,position:x,inflectionPoint:L}=t.scroll.value;$(o,h==="up"||x-L<100||t.height.value-v.value-x-a.value<300)}function P(h){p.value===!0&&$(o,!0),n("focusin",h)}O(()=>e.modelValue,h=>{B("space",h),$(o,!0),t.animate()}),O(i,h=>{B("offset",h)}),O(()=>e.reveal,h=>{h===!1&&$(o,e.modelValue)}),O(o,h=>{t.animate(),n("reveal",h)}),O([a,t.scroll,t.height],g),O(()=>s.screen.height,h=>{t.isContainer.value!==!0&&$(l,h)});const S={};return t.instances.footer=S,e.modelValue===!0&&B("size",a.value),B("space",e.modelValue),B("offset",i.value),Z(()=>{t.instances.footer===S&&(t.instances.footer=void 0,B("size",0),B("offset",0),B("space",!1))}),()=>{const h=Pe(r.default,[q(ae,{debounce:0,onResize:_})]);return e.elevated===!0&&h.push(q("div",{class:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),q("footer",{class:m.value,style:z.value,onFocusin:P},h)}}}),na=A({name:"QLayout",props:{container:Boolean,view:{type:String,default:"hhh lpr fff",validator:e=>/^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(e.toLowerCase())},onScroll:Function,onScrollHeight:Function,onResize:Function},setup(e,{slots:r,emit:n}){const{proxy:{$q:s}}=J(),t=C(null),a=C(s.screen.height),o=C(e.container===!0?0:s.screen.width),l=C({position:0,direction:"down",inflectionPoint:0}),d=C(0),v=C(Le.value===!0?0:qe()),i=c(()=>"q-layout q-layout--"+(e.container===!0?"containerized":"standard")),b=c(()=>e.container===!1?{minHeight:s.screen.height+"px"}:null),p=c(()=>v.value!==0?{[s.lang.rtl===!0?"left":"right"]:`${v.value}px`}:null),m=c(()=>v.value!==0?{[s.lang.rtl===!0?"right":"left"]:0,[s.lang.rtl===!0?"left":"right"]:`-${v.value}px`,width:`calc(100% + ${v.value}px)`}:null);function z(S){if(e.container===!0||document.qScrollPrevented!==!0){const h={position:S.position.top,direction:S.direction,directionChanged:S.directionChanged,inflectionPoint:S.inflectionPoint.top,delta:S.delta.top};l.value=h,e.onScroll!==void 0&&n("scroll",h)}}function B(S){const{height:h,width:x}=S;let L=!1;a.value!==h&&(L=!0,a.value=h,e.onScrollHeight!==void 0&&n("scrollHeight",h),_()),o.value!==x&&(L=!0,o.value=x),L===!0&&e.onResize!==void 0&&n("resize",S)}function $({height:S}){d.value!==S&&(d.value=S,_())}function _(){if(e.container===!0){const S=a.value>d.value?qe():0;v.value!==S&&(v.value=S)}}let g=null;const P={instances:{},view:c(()=>e.view),isContainer:c(()=>e.container),rootRef:t,height:a,containerHeight:d,scrollbarWidth:v,totalWidth:c(()=>o.value+v.value),rows:c(()=>{const S=e.view.toLowerCase().split(" ");return{top:S[0].split(""),middle:S[1].split(""),bottom:S[2].split("")}}),header:ce({size:0,offset:0,space:!1}),right:ce({size:300,offset:0,space:!1}),footer:ce({size:0,offset:0,space:!1}),left:ce({size:300,offset:0,space:!1}),scroll:l,animate(){g!==null?clearTimeout(g):document.body.classList.add("q-body--layout-animate"),g=setTimeout(()=>{g=null,document.body.classList.remove("q-body--layout-animate")},155)},update(S,h,x){P[S][h]=x}};if(nt(ie,P),qe()>0){let S=function(){L=null,W.classList.remove("hide-scrollbar")},h=function(){if(L===null){if(W.scrollHeight>s.screen.height)return;W.classList.add("hide-scrollbar")}else clearTimeout(L);L=setTimeout(S,300)},x=function(H){L!==null&&H==="remove"&&(clearTimeout(L),S()),window[`${H}EventListener`]("resize",h)},L=null;const W=document.body;O(()=>e.container!==!0?"add":"remove",x),e.container!==!0&&x("add"),Vt(()=>{x("remove")})}return()=>{const S=Pe(r.default,[q(ut,{onScroll:z}),q(ae,{onResize:B})]),h=q("div",{class:i.value,style:b.value,ref:e.container===!0?void 0:t,tabindex:-1},S);return e.container===!0?q("div",{class:"q-layout-container overflow-hidden",ref:t},[q(ae,{onResize:$}),q("div",{class:"absolute-full",style:p.value},[q("div",{class:"scroll",style:m.value},[h])])]):h}}}),ra=()=>{const e=rt(),r=c(()=>e.getTaxpayer());function n(a){e.setTaxpayer(a)}function s(a){e.replaceTaxpayer(a)}function t(){e.resetTaxpayer()}return{data:r,set:n,replace:s,reset:t}},ia=()=>{const e=rt(),r=c(()=>e.getMarital());function n(a){e.setMarital(a)}function s(a){e.replaceMarital(a)}function t(){e.resetMarital()}return{data:r,set:n,replace:s,reset:t}},ua={class:"row items-center no-wrap"},sa={class:"q-mr-md"},ca={class:"q-pa-md"},da={class:"q-pa-sm bg-grey-2 text-body2",style:{"white-space":"pre-wrap"}},va={class:"q-pa-md"},fa={class:"q-pa-sm bg-grey-2 text-body2",style:{"white-space":"pre-wrap"}},ha={class:"q-pa-md"},ma={class:"q-pa-sm bg-grey-2 text-body2",style:{"white-space":"pre-wrap"}},ba={class:"row items-center no-wrap"},_a=At({__name:"MainLayout",setup(e){const r=C(!1),n=ra(),s=ia(),t=Nt(),{locale:a}=jt(),o=[{code:"it-IT",label:"Italiano"},{code:"en-US",label:"English"},{code:"fr-FR",label:"Français"},{code:"de-DE",label:"Deutsch"}];function l(i){a.value=i}const d=c(()=>{const i=o.find(b=>b.code===a.value);return i?i.label:String(a.value)});function v(){r.value=!r.value}return(i,b)=>{const p=It("router-view");return _e(),Ft(na,{view:"lHh Lpr lFf"},{default:M(()=>[k(Yt,{elevated:""},{default:M(()=>[k(Ue,null,{default:M(()=>[k(Ce,{flat:"",dense:"",round:"",icon:"menu","aria-label":"Menu",onClick:v}),k(Wt,null,{default:M(()=>[...b[1]||(b[1]=[Te(" Quasar App ",-1)])]),_:1}),k(Xt),E("div",ua,[E("div",sa,"Quasar v"+ee(i.$q.version),1),k(Ce,{flat:"",dense:"",icon:"language",label:d.value,"aria-label":"Language"},{default:M(()=>[k(Xe,{"auto-close":""},{default:M(()=>[k(Ne,null,{default:M(()=>[(_e(),Fe(Ie,null,Re(o,m=>k(je,{clickable:"",key:m.code,onClick:z=>l(m.code)},{default:M(()=>[k(We,null,{default:M(()=>[Te(ee(m.label),1)]),_:2},1024)]),_:2},1032,["onClick"])),64))]),_:1})]),_:1})]),_:1},8,["label"])])]),_:1})]),_:1}),k(aa,{modelValue:r.value,"onUpdate:modelValue":b[0]||(b[0]=m=>r.value=m),"show-if-above":"",bordered:""},{default:M(()=>[k(ta,{class:"fit"},{default:M(()=>[E("div",ca,[b[2]||(b[2]=E("div",{class:"text-subtitle2 q-mb-sm"},"Dati contribuente",-1)),E("pre",da,ee(JSON.stringify(te(te(n).data),null,2)),1)]),E("div",va,[b[3]||(b[3]=E("div",{class:"text-subtitle2 q-mb-sm"},"Dati stato civile",-1)),E("pre",fa,ee(JSON.stringify(te(te(s).data),null,2)),1)]),E("div",ha,[b[4]||(b[4]=E("div",{class:"text-subtitle2 q-mb-sm"},"Dati figli",-1)),E("pre",ma,ee(JSON.stringify(te(te(t).data),null,2)),1)])]),_:1})]),_:1},8,["modelValue"]),k(la,null,{default:M(()=>[k(p)]),_:1}),k(oa,{elevated:"",class:"bg-white"},{default:M(()=>[k(Ue,{class:"q-pl-md q-pr-md"},{default:M(()=>[E("div",ba,[b[5]||(b[5]=E("div",{class:"col"},null,-1)),E("div",null,[k(Ce,{flat:"",dense:"",icon:"language",label:d.value,"aria-label":"Language"},{default:M(()=>[k(Xe,{"auto-close":""},{default:M(()=>[k(Ne,null,{default:M(()=>[(_e(),Fe(Ie,null,Re(o,m=>k(je,{clickable:"",key:m.code,onClick:z=>l(m.code)},{default:M(()=>[k(We,null,{default:M(()=>[Te(ee(m.label),1)]),_:2},1024)]),_:2},1032,["onClick"])),64))]),_:1})]),_:1})]),_:1},8,["label"])])])]),_:1})]),_:1})]),_:1})}}});export{_a as default}; diff --git a/app/dist/spa/assets/MaritalStep-DL6z_e8a.css b/app/dist/spa/assets/MaritalStep-DL6z_e8a.css new file mode 100644 index 0000000..0e270ea --- /dev/null +++ b/app/dist/spa/assets/MaritalStep-DL6z_e8a.css @@ -0,0 +1 @@ +.q-card[data-v-d74d6ed8]{width:100%;margin:0} diff --git a/app/dist/spa/assets/MaritalStep-npjGE3Gl.js b/app/dist/spa/assets/MaritalStep-npjGE3Gl.js new file mode 100644 index 0000000..70dc06c --- /dev/null +++ b/app/dist/spa/assets/MaritalStep-npjGE3Gl.js @@ -0,0 +1 @@ +import{$ as U,Z as $,r as z,o as B,f as _,a0 as b,a3 as u,a1 as v,a4 as d,ae as I,a5 as l,a8 as V,ac as r,a6 as y,am as F,a9 as h,af as m,an as R,aa as O,ao as p,ah as T}from"./index-0B2sgEyA.js";import{Q as j,a as P}from"./userstore-DBCughIu.js";import{u as E}from"./taxstore-oR45_mFg.js";import{A as Z}from"./AddressInput-Brku8Gup.js";import{C as G}from"./CommentAttachment-BuVtM3GK.js";import{u as J}from"./vue-i18n.runtime-DPKkE7zN.js";import{_ as K}from"./IndexPage-CwM_myNb.js";import"./LocalStorage-7Uw3xG9P.js";import"./QList-CHwmSUjA.js";const W={class:"row items-center"},X={class:"col"},Y={class:"text-h6"},ee={class:"col-auto"},ae={class:"row items-center q-gutter-md q-mb-sm q-ml-none"},te={class:"col q-ml-none"},se={key:0,class:"row"},de={class:"row"},oe=U({__name:"MaritalStep",props:{step:{}},emits:["next","prev"],setup(D,{expose:k,emit:q}){const x=["celibate","maried","registrated","widower","deadunion","divorced","unionlegal","separated","uniondisappeared"],i={celibate:{showSpouseData:!1,address:"",data:"",deadDate:!1,deadDateLabel:"",addressHint:""},maried:{showSpouseData:!0,address:"indirizzocogniuge",data:"daticogniuge",deadDate:!1,deadDateLabel:"",addressHint:"inserireindirizzocogniuge"},registrated:{showSpouseData:!0,address:"indirizzopartner",data:"datipartner",deadDate:!1,deadDateLabel:"",addressHint:"inserireindirizzopartner"},widower:{showSpouseData:!0,address:"",data:"daticogniugedefunto",deadDate:!0,deadDateLabel:"datadecesso",addressHint:""},deadunion:{showSpouseData:!0,address:"",data:"datideadpartner",deadDate:!0,deadDateLabel:"datadecesso",addressHint:""},divorced:{showSpouseData:!0,address:"indirizzoexcogniuge",data:"datiexcogniuge",deadDate:!1,deadDateLabel:"",addressHint:"inserireindirizzocogniuge"},unionlegal:{showSpouseData:!0,address:"indirizzoexpartner",data:"datideadexpartner",deadDate:!0,deadDateLabel:"datadecesso",addressHint:"inserireindirizzopartner"},separated:{showSpouseData:!0,address:"indirizzoexcogniuge",data:"datiexcogniuge",deadDate:!1,deadDateLabel:"",addressHint:"inserireindirizzocogniuge"},uniondisappeared:{showSpouseData:!0,address:"",data:"datidisapparizedpartner",deadDate:!0,deadDateLabel:"datascomparsa",addressHint:""}},{t:o}=J(),c=E(),S=q,a=$({}),f=z(null),w=z(!1);function C(){const t=[];for(const e of x)t.push({label:o(`maritalItem.${e}`),value:e});return t}function L(){w.value=!1}function A(t){a.spouseAddress=t,w.value=!1}const H=(t="Required")=>{const e=o("validation.required");return e&&e!=="validation.required"?e:t},n=t=>e=>{const s=H();return e==null?s:typeof e=="string"?e.trim()!==""||s:!0},N=[n()];B(async()=>{const t=c.getMarital();t&&Object.assign(a,t),await _(),f.value?.resetValidation?.()});function g(){const t={};for(const[e,s]of Object.entries(a))t[e]=s;return t}async function Q(){if(await f.value?.validate?.()===!1)return;const e=g();c.setMarital(e),S("next",D.step?.next)}function M(){const t=g();c.setMarital(t),S("prev",D.step?.prev)}return k({buildPayload:g}),(t,e)=>(u(),b(T,{flat:"",class:"full-width q-pa-none"},{default:v(()=>[d(I,{class:"full-width"},{default:v(()=>[l("div",W,[l("div",X,[l("div",Y,V(r(o)("MAR")),1)]),l("div",ee,[d(y,{flat:"",label:r(o)("button.prev"),onClick:M,class:"q-mr-sm"},null,8,["label"]),d(y,{color:"primary",label:r(o)("button.next"),onClick:Q},null,8,["label"])])]),d(F,{class:"q-my-sm"}),d(j,{ref_key:"formRef",ref:f,class:"form q-gutter-md q-mt-md"},{default:v(()=>[l("div",ae,[l("div",te,[d(R,{modelValue:a.alimentiVersati,"onUpdate:modelValue":e[0]||(e[0]=s=>a.alimentiVersati=s),label:r(o)("children.alimentiVersati")},null,8,["modelValue","label"])])]),a.alimentiVersati?(u(),h("div",se,[d(G,{modelValue:a.alimentiCommenti,"onUpdate:modelValue":e[1]||(e[1]=s=>a.alimentiCommenti=s),label:r(o)("informazionesualimenti"),id:"marital"},null,8,["modelValue","label"])])):m("",!0),d(P,{"model-value":a.maritalStatus,label:t.$t("marital.maritalStatus"),"onUpdate:modelValue":e[2]||(e[2]=s=>a.maritalStatus=s),options:C(),rules:N,"emit-value":"","map-options":""},null,8,["model-value","label","options"]),i[a.maritalStatus]?.showSpouseData?(u(),h(O,{key:1},[l("div",de,V(t.$t(i[a.maritalStatus]?.data)),1),d(p,{"model-value":a.spouseFirstName,"onUpdate:modelValue":e[3]||(e[3]=s=>a.spouseFirstName=s),label:t.$t("marital.spouse.firstName"),rules:[n()]},null,8,["model-value","label","rules"]),d(p,{"model-value":a.spouseLastName,"onUpdate:modelValue":e[4]||(e[4]=s=>a.spouseLastName=s),label:t.$t("marital.spouse.lastName"),rules:[n()]},null,8,["model-value","label","rules"]),d(p,{"model-value":a.spouseBirthDate,"onUpdate:modelValue":e[5]||(e[5]=s=>a.spouseBirthDate=s),label:t.$t("marital.spouse.birthDate"),type:"date",rules:[n()]},null,8,["model-value","label","rules"]),i[a.maritalStatus]?.deadDate?(u(),b(p,{key:0,"model-value":a.spouseDeadDate,"onUpdate:modelValue":e[6]||(e[6]=s=>a.spouseDeadDate=s),label:t.$t(i[a.maritalStatus]?.deadDateLabel),type:"date",rules:[n()]},null,8,["model-value","label","rules"])):m("",!0),i[a.maritalStatus]?.address?(u(),b(Z,{key:1,modelValue:a.spouseAddress,"onUpdate:modelValue":e[7]||(e[7]=s=>a.spouseAddress=s),hint:r(o)(i[a.maritalStatus]?.addressHint),label:r(o)("taxpayer.address"),allowForeign:!0,onSave:A,onCancel:L},null,8,["modelValue","hint","label"])):m("",!0)],64)):m("",!0)]),_:1},512)]),_:1})]),_:1}))}}),ge=K(oe,[["__scopeId","data-v-d74d6ed8"]]);export{ge as default}; diff --git a/app/dist/spa/assets/QList-CHwmSUjA.js b/app/dist/spa/assets/QList-CHwmSUjA.js new file mode 100644 index 0000000..11956a7 --- /dev/null +++ b/app/dist/spa/assets/QList-CHwmSUjA.js @@ -0,0 +1 @@ +import{c as v,a,h as c,b as q,aj as I,H as k,g,I as y,ak as A,r as b,al as K,G as R,p as $}from"./index-0B2sgEyA.js";const D=v({name:"QItemSection",props:{avatar:Boolean,thumbnail:Boolean,side:Boolean,top:Boolean,noWrap:Boolean},setup(e,{slots:n}){const l=a(()=>`q-item__section column q-item__section--${e.avatar===!0||e.side===!0||e.thumbnail===!0?"side":"main"}`+(e.top===!0?" q-item__section--top justify-start":" justify-center")+(e.avatar===!0?" q-item__section--avatar":"")+(e.thumbnail===!0?" q-item__section--thumbnail":"")+(e.noWrap===!0?" q-item__section--nowrap":""));return()=>c("div",{class:l.value},q(n.default))}}),F=v({name:"QItem",props:{...k,...I,tag:{type:String,default:"div"},active:{type:Boolean,default:null},clickable:Boolean,dense:Boolean,insetLevel:Number,tabindex:[String,Number],focused:Boolean,manualFocus:Boolean},emits:["click","keyup"],setup(e,{slots:n,emit:l}){const{proxy:{$q:i}}=g(),d=y(e,i),{hasLink:s,linkAttrs:h,linkClass:B,linkTag:_,navigateOnClick:C}=A(),o=b(null),r=b(null),m=a(()=>e.clickable===!0||s.value===!0||e.tag==="label"),u=a(()=>e.disable!==!0&&m.value===!0),x=a(()=>"q-item q-item-type row no-wrap"+(e.dense===!0?" q-item--dense":"")+(d.value===!0?" q-item--dark":"")+(s.value===!0&&e.active===null?B.value:e.active===!0?` q-item--active${e.activeClass!==void 0?` ${e.activeClass}`:""}`:"")+(e.disable===!0?" disabled":"")+(u.value===!0?" q-item--clickable q-link cursor-pointer "+(e.manualFocus===!0?"q-manual-focusable":"q-focusable q-hoverable")+(e.focused===!0?" q-manual-focusable--focused":""):"")),L=a(()=>e.insetLevel===void 0?null:{["padding"+(i.lang.rtl===!0?"Right":"Left")]:16+e.insetLevel*56+"px"});function E(t){u.value===!0&&(r.value!==null&&t.qAvoidFocus!==!0&&(t.qKeyEvent!==!0&&document.activeElement===o.value?r.value.focus():document.activeElement===r.value&&o.value.focus()),C(t))}function Q(t){if(u.value===!0&&K(t,[13,32])===!0){R(t),t.qKeyEvent=!0;const f=new MouseEvent("click",t);f.qKeyEvent=!0,o.value.dispatchEvent(f)}l("keyup",t)}function S(){const t=$(n.default,[]);return u.value===!0&&t.unshift(c("div",{class:"q-focus-helper",tabindex:-1,ref:r})),t}return()=>{const t={ref:o,class:x.value,style:L.value,role:"listitem",onClick:E,onKeyup:Q};return u.value===!0?(t.tabindex=e.tabindex||"0",Object.assign(t,h.value)):m.value===!0&&(t["aria-disabled"]="true"),c(_.value,t,S())}}}),j=["ul","ol"],P=v({name:"QList",props:{...k,bordered:Boolean,dense:Boolean,separator:Boolean,padding:Boolean,tag:{type:String,default:"div"}},setup(e,{slots:n}){const l=g(),i=y(e,l.proxy.$q),d=a(()=>j.includes(e.tag)?null:"list"),s=a(()=>"q-list"+(e.bordered===!0?" q-list--bordered":"")+(e.dense===!0?" q-list--dense":"")+(e.separator===!0?" q-list--separator":"")+(i.value===!0?" q-list--dark":"")+(e.padding===!0?" q-list--padding":""));return()=>c(e.tag,{class:s.value,role:d.value},q(n.default))}});export{P as Q,F as a,D as b}; diff --git a/app/dist/spa/assets/TaxpayerStep-BfPZ-rxP.js b/app/dist/spa/assets/TaxpayerStep-BfPZ-rxP.js new file mode 100644 index 0000000..325a28b --- /dev/null +++ b/app/dist/spa/assets/TaxpayerStep-BfPZ-rxP.js @@ -0,0 +1 @@ +import{$ as T,Z as k,r as w,a as d,o as A,f as Q,a0 as R,a3 as b,a1 as c,a4 as r,ae as S,a5 as n,a8 as I,ac as l,a6 as x,am as F,a9 as M,af as j,an as E,ao as f,ah as L}from"./index-0B2sgEyA.js";import{Q as O}from"./userstore-DBCughIu.js";import{u as X}from"./taxstore-oR45_mFg.js";import{A as Z}from"./AddressInput-Brku8Gup.js";import{C as $}from"./CommentAttachment-BuVtM3GK.js";import{u as z}from"./vue-i18n.runtime-DPKkE7zN.js";import{_ as G}from"./IndexPage-CwM_myNb.js";import"./LocalStorage-7Uw3xG9P.js";import"./QList-CHwmSUjA.js";const H={class:"row items-center"},J={class:"col"},K={class:"text-h5"},W={class:"col-auto"},Y={class:"row items-center q-gutter-md q-mb-sm q-ml-none"},ee={class:"col q-ml-none"},ae={key:0,class:"q-mt-sm"},te=T({__name:"TaxpayerStep",props:{step:{}},emits:["next","prev"],setup(V,{emit:N}){const _=V,v=N,y=_.step,i=X(),e=k({}),{t:s}=z(),u=w(null),D=(o="Required")=>{const a=s("validation.required");return a&&a!=="validation.required"?a:o},m=o=>a=>{const t=o||D();return a==null?t:typeof a=="string"?a.trim()!==""||t:Array.isArray(a)?a.length>0||t:!0},p=d(()=>!!e.prevPreparedByUs),g=d(()=>p.value?[]:[m()]),q=d(()=>p.value?[]:[m()]),B=d(()=>p.value?[]:[m()]);A(async()=>{const o=i.getTaxpayer()||{};Object.assign(e,o),await Q(),u.value?.resetValidation?.()});async function U(){try{if(await(u.value?.validate?.()??!0)===!1)return}catch{return}i.setTaxpayer({prevPreparedByUs:e.prevPreparedByUs,prevDeclaration:e.prevDeclaration,firstName:e.firstName,lastName:e.lastName,birthDate:e.birthDate,address:e.address}),v("next",y.next)}function h(){i.setTaxpayer({prevPreparedByUs:e.prevPreparedByUs,prevDeclaration:e.prevDeclaration,firstName:e.firstName,lastName:e.lastName,birthDate:e.birthDate,address:e.address}),v("prev",y.prev)}function C(){}function P(){}return(o,a)=>(b(),R(L,{flat:"",class:"full-width q-pa-none"},{default:c(()=>[r(S,{class:"full-width"},{default:c(()=>[n("div",H,[n("div",J,[n("div",K,I(l(s)("TAX")),1)]),n("div",W,[r(x,{flat:"",color:"secondary",label:l(s)("button.prev"),onClick:h,class:"q-mr-sm"},null,8,["label"]),r(x,{color:"primary",label:l(s)("button.next"),onClick:U},null,8,["label"])])]),r(F,{class:"q-my-sm"}),r(O,{ref_key:"formRef",ref:u,class:"q-gutter-md q-mt-md"},{default:c(()=>[n("div",Y,[n("div",ee,[r(E,{modelValue:e.prevPreparedByUs,"onUpdate:modelValue":a[0]||(a[0]=t=>e.prevPreparedByUs=t),label:l(s)("taxpayer.prevPreparedByUs")},null,8,["modelValue","label"])])]),e.prevPreparedByUs?(b(),M("div",ae,[r($,{modelValue:e.prevDeclaration,"onUpdate:modelValue":a[1]||(a[1]=t=>e.prevDeclaration=t),label:l(s)("taxpayer.prevDeclaration"),id:"taxpayer"},null,8,["modelValue","label"])])):j("",!0),n("div",null,[r(f,{modelValue:e.firstName,"onUpdate:modelValue":a[2]||(a[2]=t=>e.firstName=t),label:l(s)("taxpayer.firstName"),rules:g.value},null,8,["modelValue","label","rules"]),r(f,{modelValue:e.lastName,"onUpdate:modelValue":a[3]||(a[3]=t=>e.lastName=t),label:l(s)("taxpayer.lastName"),rules:q.value},null,8,["modelValue","label","rules"]),r(f,{modelValue:e.birthDate,"onUpdate:modelValue":a[4]||(a[4]=t=>e.birthDate=t),type:"date",label:l(s)("taxpayer.birthDate"),rules:B.value},null,8,["modelValue","label","rules"]),r(Z,{modelValue:e.address,"onUpdate:modelValue":a[5]||(a[5]=t=>e.address=t),label:l(s)("taxpayer.address"),allowForeign:!0,onSave:P,onCancel:C},null,8,["modelValue","label"])])]),_:1},512)]),_:1})]),_:1}))}}),pe=G(te,[["__scopeId","data-v-e1b08f4f"]]);export{pe as default}; diff --git a/app/dist/spa/assets/TaxpayerStep-CWAfROv3.css b/app/dist/spa/assets/TaxpayerStep-CWAfROv3.css new file mode 100644 index 0000000..53e91e2 --- /dev/null +++ b/app/dist/spa/assets/TaxpayerStep-CWAfROv3.css @@ -0,0 +1 @@ +.q-card[data-v-e1b08f4f]{width:100%;margin:0} diff --git a/app/dist/spa/assets/WelcomeStep-BTfvnfIz.css b/app/dist/spa/assets/WelcomeStep-BTfvnfIz.css new file mode 100644 index 0000000..a4f1fbf --- /dev/null +++ b/app/dist/spa/assets/WelcomeStep-BTfvnfIz.css @@ -0,0 +1 @@ +.q-card[data-v-f4c03057]{width:100%;margin:0} diff --git a/app/dist/spa/assets/WelcomeStep-Crh-xhDH.js b/app/dist/spa/assets/WelcomeStep-Crh-xhDH.js new file mode 100644 index 0000000..31d1775 --- /dev/null +++ b/app/dist/spa/assets/WelcomeStep-Crh-xhDH.js @@ -0,0 +1 @@ +import{$ as d,a0 as m,a3 as f,a1 as e,a4 as s,ae as u,a5 as t,a8 as o,ac as c,a6 as h,am as x,ah as v}from"./index-0B2sgEyA.js";import{u as S}from"./vue-i18n.runtime-DPKkE7zN.js";import{_ as C}from"./IndexPage-CwM_myNb.js";import"./QList-CHwmSUjA.js";const w={class:"row items-center"},y={class:"col"},B={class:"text-h5"},N={class:"col-auto"},Q=d({__name:"WelcomeStep",props:{step:{}},emits:["next"],setup(n,{emit:r}){const i=n,l=r,a=i.step,{t:p}=S();function _(){l("next",a?.next)}return(g,k)=>(f(),m(v,{flat:"",class:"full-width q-pa-none"},{default:e(()=>[s(u,{class:"full-width"},{default:e(()=>[t("div",w,[t("div",y,[t("div",B,o(c(p)("WEL")),1)]),t("div",N,[s(h,{color:"primary",label:"Avanti",onClick:_})])]),s(x,{class:"q-my-sm"}),t("pre",null,o(JSON.stringify(c(a),null,2)),1)]),_:1})]),_:1}))}}),b=C(Q,[["__scopeId","data-v-f4c03057"]]);export{b as default}; diff --git a/app/dist/spa/assets/children-ChLzVyp9.js b/app/dist/spa/assets/children-ChLzVyp9.js new file mode 100644 index 0000000..6512447 --- /dev/null +++ b/app/dist/spa/assets/children-ChLzVyp9.js @@ -0,0 +1 @@ +import{as as i}from"./index-0B2sgEyA.js";import{P as r}from"./LocalStorage-7Uw3xG9P.js";const s="children:v1",a={hasChildren:!1,children:[],moreThanFiveChildrenNote:""},o=i("childrenstore",{state:()=>{try{let e=r.getItem(s);if(typeof e=="string")try{e=JSON.parse(e)}catch{e=null}if(e&&typeof e=="object")return{data:{...e}}}catch{}return{data:{...a}}},actions:{persist(){try{const e={hasChildren:!!this.data.hasChildren,children:Array.isArray(this.data.children)?this.data.children.map(t=>({firstName:t.firstName,lastName:t.lastName,birthDate:t.birthDate,sameHousehold:t.sameHousehold,alimentiVersati:t.alimentiVersati??!1,school:t.school,hasCareCost:t.hasCareCost??!1,careCosts:t.careCosts,address:t.address??null})):[],moreThanFiveChildrenNote:this.data.moreThanFiveChildrenNote||""};r.set(s,e)}catch(e){console.error("children.store: persist error",e)}},getChildren(){return this.data},setChildren(e){this.data={...this.data,...e},this.persist()},replaceChildren(e){this.data=e,this.persist()},resetChildren(){this.data={...a},this.persist()}}});export{o as u}; diff --git a/app/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNa-Dr0goTwe.woff b/app/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNa-Dr0goTwe.woff new file mode 100644 index 0000000..88fdf4d Binary files /dev/null and b/app/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNa-Dr0goTwe.woff differ diff --git a/app/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ-D-x-0Q06.woff2 b/app/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ-D-x-0Q06.woff2 new file mode 100644 index 0000000..f1fd22f Binary files /dev/null and b/app/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ-D-x-0Q06.woff2 differ diff --git a/app/dist/spa/assets/i18n-iY85aRww.js b/app/dist/spa/assets/i18n-iY85aRww.js new file mode 100644 index 0000000..9bb7d11 --- /dev/null +++ b/app/dist/spa/assets/i18n-iY85aRww.js @@ -0,0 +1 @@ +import{d as a}from"./index-0B2sgEyA.js";import{c as t}from"./vue-i18n.runtime-DPKkE7zN.js";const n={button:{saveAndNext:"Save and Next",next:"Next",prev:"Back",cancel:"Cancel",save:"Save"},validation:{required:"This field is required",minLength:"Too short",maxAgeFromJan1:"Invalid birth date",invalidZip:"Invalid ZIP",insertAddress:"Please enter an address"},address:{title:"Address",modalTitle:"Edit address",street:"Street",zip:"ZIP",city:"City",country:"Country",foreign:"Foreign address"},enum:{maritalStatus:{SINGLE:"Single",SEPARATED:"Separated",MARRIED:"Married",PARTNERED:"Partnered"}}},r={attachments:"Attachments",commenti:"Comments",pickFiles:"Pick files",confirmDeleteAttachment:"Do you want to delete this attachment? {filename}",addAttachment:"Attach",fileTypeNotAllowed:"File type not allowed. Allowed: {allowed}",missingUserOrSession:"Missing user or session. Please reload and try again.",fileUploaded:"File uploaded",uploadFailed:"Upload failed",uploadCancelled:"Upload cancelled",fileDeleted:"File deleted",deleteFailed:"Delete failed"},s={WEL:"Welcome",TAX:"Taxpayer data & previous declaration",MAR:"Marital status",CHD:"Children",INC:"Income",PRO:"Professional expenses",SID:"Supplementary income",ANN:"Annuities",INS:"Insurance & medical expenses",P3:"Policies 3A / 3B",BNK:"Bank accounts",AST:"Other assets",DEB:"Debts / mortgages",PROP:"Properties",FOR:"Foreign income or assets",taxpayer:{prevPreparedByUs:"Prepared by us?",prevDeclaration:"Previous declaration",firstName:"First name",lastName:"Last name",birthDate:"Birth date",address:"Address",zip:"ZIP",city:"City"},marital:{title:"Marital status",maritalStatus:"Marital status",previousDivorces:"Previous divorces",spouse:{prefixSpouse:"Spouse",prefixPartner:"Partner",firstName:"First name",lastName:"Last name",birthDate:"Birth date",address:"Address",zip:"ZIP",city:"City",previousDivorces:"Previous divorces"}},maritalItem:{celibate:"Single",maried:"Married",registrated:"Registered domestic partnership",widower:"Widower/Widow",deadunion:"Union dissolved by death",divorced:"Divorced",unionlegal:"Union dissolved by legal decision",separated:"Separated",uniondisappeared:"Union dissolved by declaration of disappearance"},"marital.spouse.fillIfDifferent":"Fill if different",income:{employTypeLabel:"Employment type",employTypeHint:"Select an employment type",employType:{EMPLOYED:"Employed",SELF_EMPLOYED:"Self-employed",PENSIONER:"Pensioner",UNEMPLOYED:"Unemployed"},attachments:{salaryCertificate:"Salary certificate",accountingDocuments:"Accounting documents",avsCertificate:"AVS certificate",lppCertificate:"LPP certificate",unemploymentCertificate:"Unemployment certificate"}},children:{hasChildren:"Do you have children?",addChild:"Add child",editChild:"Edit child",listTitle:"Children list",moreThanFiveChildrenNote:"More than five children note",firstName:"First name",lastName:"Last name",birthDate:"Birth date",sameHousehold:"Same household",addressIfDifferent:"Address (if different)",addressLabel:"Address",alimentiVersati:"Alimony paid",school:"School",hasCareCost:"Care costs",careCosts:"Care costs",copyLastNameFromTaxpayer:"Copy last name from taxpayer",noAttachments:"Attach documents"},informazionesualimenti:"Alimony information",inserireindirizzocogniuge:"Enter spouse address",inserireindirizzopartner:"Enter partner address",indirizzocogniuge:"Spouse address",indirizzopartner:"Partner address",indirizzocogniugedefunto:"Deceased spouse address",indirizzodeadpartner:"Deceased partner address",indirizzoexcogniuge:"Ex-spouse address",indirizzoexpartner:"Ex-partner address",daticogniuge:"Spouse details",datipartner:"Partner details",daticogniugedefunto:"Deceased spouse details",datideadpartner:"Deceased partner details",datiexcogniuge:"Ex-spouse details",datideadexpartner:"Ex-partner details",datidisapparizedpartner:"Missing partner details",datadecesso:"Date of death",datascomparsa:"Date of disappearance"},o={button:{saveAndNext:"Salva e Avanti",next:"Avanti",prev:"Indietro",cancel:"Annulla",save:"Salva"},validation:{required:"Campo obbligatorio",minLength:"Troppo corto",maxAgeFromJan1:"Data di nascita non valida",invalidZip:"CAP non valido",insertAddress:"Inserire indirizzo"},address:{title:"Indirizzo",modalTitle:"Modifica indirizzo",street:"Via / Piazza",zip:"CAP",city:"Città",country:"Nazione",foreign:"Indirizzo estero"},enum:{maritalStatus:{SINGLE:"Single",SEPARATED:"Separato",MARRIED:"Sposato",PARTNERED:"Unito civilmente"}}},d={attachments:"Allegati",commenti:"Commenti",pickFiles:"Scegli file",confirmDeleteAttachment:"Vuoi eliminare questo allegato? {filename}",addAttachment:"Allega",fileTypeNotAllowed:"Tipo di file non consentito. Consentiti: {allowed}",missingUserOrSession:"Utente o sessione mancanti. Ricarica la pagina e riprova.",fileUploaded:"File caricato",uploadFailed:"Caricamento fallito",uploadCancelled:"Caricamento annullato",fileDeleted:"File eliminato",deleteFailed:"Eliminazione fallita"},l={WEL:"Benvenuto",TAX:"Dati contribuente e dichiarazione precedente",MAR:"Stato civile",CHD:"Figli",INC:"Redditi",PRO:"Spese professionali",SID:"Reddito accessorio",ANN:"Rendite",INS:"Spese assicurative e mediche",P3:"Polizze 3A / 3B",BNK:"Conti bancari",AST:"Altri beni / averi",DEB:"Debiti / ipoteche",PROP:"Immobili",FOR:"Redditi o averi all’estero",taxpayer:{prevPreparedByUs:"Preparata da noi?",prevDeclaration:"Dichiarazione precedente",firstName:"Nome",lastName:"Cognome",birthDate:"Data di nascita",address:"Indirizzo",zip:"CAP",city:"Città"},marital:{title:"Stato civile",maritalStatus:"Stato civile",previousDivorces:"Divorzi precedenti",spouse:{prefixSpouse:"Coniuge",prefixPartner:"Partner",firstName:"Nome",lastName:"Cognome",birthDate:"Data di nascita",address:"Indirizzo",zip:"CAP",city:"Città",previousDivorces:"Divorzi precedenti"}},maritalItem:{celibate:"celibe/ nubile",maried:"Cognugato/a",registrated:"In unione domestica registrata",widower:"Vedovo/a",deadunion:"Unione domestica sciolta per decesso",divorced:"Divorziato/a",unionlegal:"Unione domestica sciolta per decisione legale",separated:"Separato/a",uniondisappeared:"Unione domestica sciolta per dichiarazione di scomparsa"},"marital.spouse.fillIfDifferent":"Compilare se diverso",income:{employTypeLabel:"Tipo di impiego",employTypeHint:"Selezionare un tipo di impiego",employType:{EMPLOYED:"Dipendente",SELF_EMPLOYED:"Indipendente",PENSIONER:"Pensionato",UNEMPLOYED:"Disoccupato"},attachments:{salaryCertificate:"Certificato salariale",accountingDocuments:"Documenti contabili",avsCertificate:"Certificato AVS",lppCertificate:"Certificato LPP",unemploymentCertificate:"Certificato disoccupazione"}},children:{hasChildren:"Hai figli?",addChild:"Aggiungi figlio",editChild:"Modifica figlio",listTitle:"Elenco figli",moreThanFiveChildrenNote:"Nota per più di cinque figli",firstName:"Nome",lastName:"Cognome",birthDate:"Data di nascita",sameHousehold:"Stesso nucleo familiare",addressIfDifferent:"Indirizzo (se diverso)",addressLabel:"Indirizzo",alimentiVersati:"Vengono versati alimenti",school:"Scuola",hasCareCost:"Spese di cura",careCosts:"Spese di cura",copyLastNameFromTaxpayer:"Copia cognome dal contribuente",noAttachments:"Allega documenti"},informazionesualimenti:"Informazioni su alimenti",inserireindirizzocogniuge:"Inserire l'indirizzo del coniuge",inserireindirizzopartner:"Inserire l'indirizzo del partner",indirizzocogniuge:"Indirizzo del coniuge",indirizzopartner:"Indirizzo del partner",indirizzocogniugedefunto:"Indirizzo del coniuge deceduto",indirizzodeadpartner:"Indirizzo del partner deceduto",indirizzoexcogniuge:"Indirizzo ex-coniuge",indirizzoexpartner:"Indirizzo ex-partner",daticogniuge:"Dati del coniuge",datipartner:"Dati del partner",daticogniugedefunto:"Dati del coniuge deceduto",datideadpartner:"Dati del partner deceduto",datiexcogniuge:"Dati ex-coniuge",datideadexpartner:"Dati ex-partner",datidisapparizedpartner:"Dati del partner scomparso",datadecesso:"Data di decesso",datascomparsa:"Data di scomparsa"},c={button:{saveAndNext:"Enregistrer et suivant",next:"Suivant",prev:"Précédent",cancel:"Annuler",save:"Enregistrer"},validation:{required:"Ce champ est obligatoire",minLength:"Trop court",maxAgeFromJan1:"Date de naissance invalide",invalidZip:"Code postal invalide",insertAddress:"Veuillez saisir l'adresse"},address:{title:"Adresse",modalTitle:"Modifier l'adresse",street:"Rue / Place",zip:"Code postal",city:"Ville",country:"Pays",foreign:"Adresse étrangère"},enum:{maritalStatus:{SINGLE:"Célibataire",SEPARATED:"Séparé",MARRIED:"Marié",PARTNERED:"Partenaire"}}},p={attachments:"Pièces jointes",commenti:"Commentaires",pickFiles:"Choisir des fichiers",confirmDeleteAttachment:"Voulez-vous supprimer cette pièce jointe ? {filename}",addAttachment:"Joindre",fileTypeNotAllowed:"Type de fichier non autorisé. Autorisés : {allowed}",missingUserOrSession:"Utilisateur ou session manquant. Rechargez la page et réessayez.",fileUploaded:"Fichier téléversé",uploadFailed:"Échec du téléversement",uploadCancelled:"Téléversement annulé",fileDeleted:"Fichier supprimé",deleteFailed:"Échec de la suppression"},m={WEL:"Bienvenue",TAX:"Données contribuable et déclaration précédente",MAR:"État civil",CHD:"Enfants",INC:"Revenus",PRO:"Frais professionnels",SID:"Revenu accessoire",ANN:"Rentes",INS:"Assurances et frais médicaux",P3:"Polices 3A / 3B",BNK:"Comptes bancaires",AST:"Autres biens / avoirs",DEB:"Dettes / hypothèques",PROP:"Immobilier",FOR:"Revenus ou avoirs à l'étranger",taxpayer:{prevPreparedByUs:"Préparée par nous?",prevDeclaration:"Déclaration précédente",firstName:"Prénom",lastName:"Nom",birthDate:"Date de naissance",address:"Adresse",zip:"Code postal",city:"Ville"},marital:{title:"État civil",maritalStatus:"État civil",previousDivorces:"Divorces précédents",spouse:{prefixSpouse:"Conjoint",prefixPartner:"Partenaire",firstName:"Prénom",lastName:"Nom",birthDate:"Date de naissance",address:"Adresse",zip:"Code postal",city:"Ville",previousDivorces:"Divorces précédents"}},maritalItem:{celibate:"Célibataire",maried:"Marié(e)",registrated:"Union domestique enregistrée",widower:"Veuf / Veuve",deadunion:"Union dissoute par décès",divorced:"Divorcé(e)",unionlegal:"Union dissoute par décision judiciaire",separated:"Séparé(e)",uniondisappeared:"Union dissoute par déclaration de disparition"},"marital.spouse.fillIfDifferent":"Remplir si différent",income:{employTypeLabel:"Type d'emploi",employTypeHint:"Sélectionner un type d'emploi",employType:{EMPLOYED:"Salarié",SELF_EMPLOYED:"Indépendant",PENSIONER:"Retraité",UNEMPLOYED:"Sans emploi"},attachments:{salaryCertificate:"Certificat de salaire",accountingDocuments:"Documents comptables",avsCertificate:"Certificat AVS",lppCertificate:"Certificat LPP",unemploymentCertificate:"Certificat de chômage"}},children:{hasChildren:"Avez-vous des enfants?",addChild:"Ajouter un enfant",editChild:"Modifier l'enfant",listTitle:"Liste des enfants",moreThanFiveChildrenNote:"Note pour plus de cinq enfants",firstName:"Prénom",lastName:"Nom",birthDate:"Date de naissance",sameHousehold:"Même ménage",addressIfDifferent:"Adresse (si différente)",addressLabel:"Adresse",alimentiVersati:"Pension alimentaire versée",school:"École",hasCareCost:"Frais de garde",careCosts:"Frais de garde",copyLastNameFromTaxpayer:"Copier le nom du contribuable",noAttachments:"Joindre des documents"},informazionesualimenti:"Informations sur la pension alimentaire",inserireindirizzocogniuge:"Saisir l'adresse du conjoint",inserireindirizzopartner:"Saisir l'adresse du partenaire",indirizzocogniuge:"Adresse du conjoint",indirizzopartner:"Adresse du partenaire",indirizzocogniugedefunto:"Adresse du conjoint décédé",indirizzodeadpartner:"Adresse du partenaire décédé",indirizzoexcogniuge:"Adresse de l'ex-conjoint",indirizzoexpartner:"Adresse de l'ex-partenaire",daticogniuge:"Données du conjoint",datipartner:"Données du partenaire",daticogniugedefunto:"Données du conjoint décédé",datideadpartner:"Données du partenaire décédé",datiexcogniuge:"Données de l'ex-conjoint",datideadexpartner:"Données de l'ex-partenaire",datidisapparizedpartner:"Données du partenaire disparu",datadecesso:"Date de décès",datascomparsa:"Date de disparition"},u={button:{saveAndNext:"Speichern und weiter",next:"Weiter",prev:"Zurück",cancel:"Abbrechen",save:"Speichern"},validation:{required:"Dieses Feld ist erforderlich",minLength:"Zu kurz",maxAgeFromJan1:"Ungültiges Geburtsdatum",invalidZip:"Ungültige PLZ",insertAddress:"Bitte Adresse eingeben"},address:{title:"Adresse",modalTitle:"Adresse bearbeiten",street:"Strasse",zip:"PLZ",city:"Stadt",country:"Land",foreign:"Ausländische Adresse"},enum:{maritalStatus:{SINGLE:"Ledig",SEPARATED:"Getrennt",MARRIED:"Verheiratet",PARTNERED:"Partner"}}},g={attachments:"Anhänge",commenti:"Kommentare",pickFiles:"Dateien auswählen",confirmDeleteAttachment:"Möchtest du diesen Anhang löschen? {filename}",addAttachment:"Anhängen",fileTypeNotAllowed:"Dateityp nicht erlaubt. Erlaubt: {allowed}",missingUserOrSession:"Benutzer oder Sitzung fehlt. Bitte Seite neu laden und erneut versuchen.",fileUploaded:"Datei hochgeladen",uploadFailed:"Upload fehlgeschlagen",uploadCancelled:"Upload abgebrochen",fileDeleted:"Datei gelöscht",deleteFailed:"Löschen fehlgeschlagen"},h={WEL:"Willkommen",TAX:"Angaben Steuerpflichtiger und vorherige Erklärung",MAR:"Zivilstand",CHD:"Kinder",INC:"Einkommen",PRO:"Berufsausgaben",SID:"Nebeneinkommen",ANN:"Renten",INS:"Versicherungs- und Krankheitskosten",P3:"Policen 3A / 3B",BNK:"Bankkonten",AST:"Andere Vermögenswerte",DEB:"Schulden / Hypotheken",PROP:"Immobilien",FOR:"Einkommen oder Vermögen im Ausland",taxpayer:{prevPreparedByUs:"Von uns vorbereitet?",prevDeclaration:"Frühere Erklärung",firstName:"Vorname",lastName:"Nachname",birthDate:"Geburtsdatum",address:"Adresse",zip:"PLZ",city:"Stadt"},marital:{title:"Zivilstand",maritalStatus:"Zivilstand",previousDivorces:"Frühere Scheidungen",spouse:{prefixSpouse:"Ehepartner",prefixPartner:"Partner",firstName:"Vorname",lastName:"Nachname",birthDate:"Geburtsdatum",address:"Adresse",zip:"PLZ",city:"Stadt",previousDivorces:"Frühere Scheidungen"}},maritalItem:{celibate:"Ledig",maried:"Verheiratet",registrated:"Registrierte häusliche Partnerschaft",widower:"Witwer / Witwe",deadunion:"Partnerschaft durch Tod aufgelöst",divorced:"Geschieden",unionlegal:"Partnerschaft durch gerichtliche Entscheidung aufgelöst",separated:"Getrennt",uniondisappeared:"Partnerschaft durch Verschollenheit aufgelöst"},"marital.spouse.fillIfDifferent":"Falls abweichend ausfüllen",income:{employTypeLabel:"Beschäftigungsart",employTypeHint:"Bitte eine Beschäftigungsart auswählen",employType:{EMPLOYED:"Angestellt",SELF_EMPLOYED:"Selbstständig",PENSIONER:"Rentner/in",UNEMPLOYED:"Arbeitslos"},attachments:{salaryCertificate:"Lohnbescheinigung",accountingDocuments:"Buchhaltungsunterlagen",avsCertificate:"AHV-Bescheinigung",lppCertificate:"BVG-Bescheinigung",unemploymentCertificate:"Arbeitslosenbescheinigung"}},children:{hasChildren:"Haben Sie Kinder?",addChild:"Kind hinzufügen",editChild:"Kind bearbeiten",listTitle:"Kinderliste",moreThanFiveChildrenNote:"Notiz für mehr als fünf Kinder",firstName:"Vorname",lastName:"Nachname",birthDate:"Geburtsdatum",sameHousehold:"Im selben Haushalt",addressIfDifferent:"Adresse (falls abweichend)",addressLabel:"Adresse",alimentiVersati:"Unterhalt wird gezahlt",school:"Schule",hasCareCost:"Betreuungskosten",careCosts:"Betreuungskosten",copyLastNameFromTaxpayer:"Nachname vom Steuerpflichtigen übernehmen",noAttachments:"Dokumente anhängen"},informazionesualimenti:"Informationen zu Unterhalt",inserireindirizzocogniuge:"Adresse des Ehepartners eingeben",inserireindirizzopartner:"Adresse des Partners eingeben",indirizzocogniuge:"Adresse des Ehepartners",indirizzopartner:"Adresse des Partners",indirizzocogniugedefunto:"Adresse des verstorbenen Ehepartners",indirizzodeadpartner:"Adresse des verstorbenen Partners",indirizzoexcogniuge:"Adresse des Ex-Ehepartners",indirizzoexpartner:"Adresse des Ex-Partners",daticogniuge:"Angaben zum Ehepartner",datipartner:"Angaben zum Partner",daticogniugedefunto:"Angaben zum verstorbenen Ehepartner",datideadpartner:"Angaben zum verstorbenen Partner",datiexcogniuge:"Angaben zum Ex-Ehepartner",datideadexpartner:"Angaben zum Ex-Partner",datidisapparizedpartner:"Angaben zum verschollenen Partner",datadecesso:"Sterbedatum",datascomparsa:"Datum des Verschwindens"},f={"en-US":{...n,...r,...s},"it-IT":{...o,...d,...l},"fr-FR":{...c,...p,...m},"de-DE":{...u,...g,...h}},D=a(({app:e})=>{const i=t({locale:"it-IT",messages:f});e.use(i)});export{D as default}; diff --git a/app/dist/spa/assets/index-0B2sgEyA.js b/app/dist/spa/assets/index-0B2sgEyA.js new file mode 100644 index 0000000..f2abfd1 --- /dev/null +++ b/app/dist/spa/assets/index-0B2sgEyA.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MainLayout-Cyzrc7AM.js","assets/QList-CHwmSUjA.js","assets/LocalStorage-7Uw3xG9P.js","assets/taxstore-oR45_mFg.js","assets/children-ChLzVyp9.js","assets/vue-i18n.runtime-DPKkE7zN.js","assets/IndexPage-CwM_myNb.js","assets/IndexPage-sr_89QZh.css","assets/i18n-iY85aRww.js"])))=>i.map(i=>d[i]); +const ic=(function(){const t=typeof document<"u"&&document.createElement("link").relList;return t&&t.supports&&t.supports("modulepreload")?"modulepreload":"preload"})(),sc=function(e){return"/"+e},Ui={},ko=function(t,n,o){let r=Promise.resolve();if(n&&n.length>0){let a=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),l=s?.nonce||s?.getAttribute("nonce");r=a(n.map(c=>{if(c=sc(c),c in Ui)return;Ui[c]=!0;const u=c.endsWith(".css"),f=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${f}`))return;const d=document.createElement("link");if(d.rel=u?"stylesheet":ic,u||(d.as="script"),d.crossOrigin="",d.href=c,l&&d.setAttribute("nonce",l),document.head.appendChild(d),u)return new Promise((g,p)=>{d.addEventListener("load",g),d.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(s){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=s,window.dispatchEvent(l),!l.defaultPrevented)throw s}return r.then(s=>{for(const l of s||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})};function pi(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const me={},_n=[],bt=()=>{},Tl=()=>!1,Wo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),vi=e=>e.startsWith("onUpdate:"),Pe=Object.assign,bi=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},lc=Object.prototype.hasOwnProperty,he=(e,t)=>lc.call(e,t),oe=Array.isArray,wn=e=>Go(e)==="[object Map]",Pl=e=>Go(e)==="[object Set]",ie=e=>typeof e=="function",xe=e=>typeof e=="string",Ut=e=>typeof e=="symbol",ye=e=>e!==null&&typeof e=="object",Ol=e=>(ye(e)||ie(e))&&ie(e.then)&&ie(e.catch),Ml=Object.prototype.toString,Go=e=>Ml.call(e),ac=e=>Go(e).slice(8,-1),ql=e=>Go(e)==="[object Object]",Qo=e=>xe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,$n=pi(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Yo=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},uc=/-\w/g,tt=Yo(e=>e.replace(uc,t=>t.slice(1).toUpperCase())),cc=/\B([A-Z])/g,ln=Yo(e=>e.replace(cc,"-$1").toLowerCase()),Jo=Yo(e=>e.charAt(0).toUpperCase()+e.slice(1)),ur=Yo(e=>e?`on${Jo(e)}`:""),Vt=(e,t)=>!Object.is(e,t),cr=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},fc=e=>{const t=parseFloat(e);return isNaN(t)?e:t},dc=e=>{const t=xe(e)?Number(e):NaN;return isNaN(t)?e:t};let Ki;const Zo=()=>Ki||(Ki=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function yi(e){if(oe(e)){const t={};for(let n=0;n{if(n){const o=n.split(gc);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function _i(e){let t="";if(xe(e))t=e;else if(oe(e))for(let n=0;n!!(e&&e.__v_isRef===!0),yc=e=>xe(e)?e:e==null?"":oe(e)||ye(e)&&(e.toString===Ml||!ie(e.toString))?Nl(e)?yc(e.value):JSON.stringify(e,Bl,2):String(e),Bl=(e,t)=>Nl(t)?Bl(e,t.value):wn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,r],i)=>(n[fr(o,i)+" =>"]=r,n),{})}:Pl(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>fr(n))}:Ut(t)?fr(t):ye(t)&&!oe(t)&&!ql(t)?String(t):t,fr=(e,t="")=>{var n;return Ut(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Ne;class Dl{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Ne,!t&&Ne&&(this.index=(Ne.scopes||(Ne.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0&&(Ne=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(jn){let t=jn;for(jn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Vn;){let t=Vn;for(Vn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function zl(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ul(e){let t,n=e.depsTail,o=n;for(;o;){const r=o.prevDep;o.version===-1?(o===n&&(n=r),Ci(o),wc(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=r}e.deps=t,e.depsTail=n}function jr(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Kl(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Kl(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Yn)||(e.globalVersion=Yn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!jr(e))))return;e.flags|=2;const t=e.dep,n=ve,o=it;ve=e,it=!0;try{zl(e);const r=e.fn(e._value);(t.version===0||Vt(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{ve=n,it=o,Ul(e),e.flags&=-3}}function Ci(e,t=!1){const{dep:n,prevSub:o,nextSub:r}=e;if(o&&(o.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)Ci(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function wc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let it=!0;const Wl=[];function kt(){Wl.push(it),it=!1}function Rt(){const e=Wl.pop();it=e===void 0?!0:e}function Wi(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ve;ve=void 0;try{t()}finally{ve=n}}}let Yn=0;class xc{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Si{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ve||!it||ve===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ve)n=this.activeLink=new xc(ve,this),ve.deps?(n.prevDep=ve.depsTail,ve.depsTail.nextDep=n,ve.depsTail=n):ve.deps=ve.depsTail=n,Gl(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=ve.depsTail,n.nextDep=void 0,ve.depsTail.nextDep=n,ve.depsTail=n,ve.deps===n&&(ve.deps=o)}return n}trigger(t){this.version++,Yn++,this.notify(t)}notify(t){wi();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{xi()}}}function Gl(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)Gl(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const qo=new WeakMap,tn=Symbol(""),Hr=Symbol(""),Jn=Symbol("");function Be(e,t,n){if(it&&ve){let o=qo.get(e);o||qo.set(e,o=new Map);let r=o.get(n);r||(o.set(n,r=new Si),r.map=o,r.key=n),r.track()}}function Ct(e,t,n,o,r,i){const s=qo.get(e);if(!s){Yn++;return}const l=a=>{a&&a.trigger()};if(wi(),t==="clear")s.forEach(l);else{const a=oe(e),c=a&&Qo(n);if(a&&n==="length"){const u=Number(o);s.forEach((f,d)=>{(d==="length"||d===Jn||!Ut(d)&&d>=u)&&l(f)})}else switch((n!==void 0||s.has(void 0))&&l(s.get(n)),c&&l(s.get(Jn)),t){case"add":a?c&&l(s.get("length")):(l(s.get(tn)),wn(e)&&l(s.get(Hr)));break;case"delete":a||(l(s.get(tn)),wn(e)&&l(s.get(Hr)));break;case"set":wn(e)&&l(s.get(tn));break}}xi()}function Cc(e,t){const n=qo.get(e);return n&&n.get(t)}function hn(e){const t=se(e);return t===e?t:(Be(t,"iterate",Jn),Ye(e)?t:t.map(lt))}function Xo(e){return Be(e=se(e),"iterate",Jn),e}function It(e,t){return At(e)?Et(e)?Cn(lt(t)):Cn(t):lt(t)}const Sc={__proto__:null,[Symbol.iterator](){return hr(this,Symbol.iterator,e=>It(this,e))},concat(...e){return hn(this).concat(...e.map(t=>oe(t)?hn(t):t))},entries(){return hr(this,"entries",e=>(e[1]=It(this,e[1]),e))},every(e,t){return yt(this,"every",e,t,void 0,arguments)},filter(e,t){return yt(this,"filter",e,t,n=>n.map(o=>It(this,o)),arguments)},find(e,t){return yt(this,"find",e,t,n=>It(this,n),arguments)},findIndex(e,t){return yt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return yt(this,"findLast",e,t,n=>It(this,n),arguments)},findLastIndex(e,t){return yt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return yt(this,"forEach",e,t,void 0,arguments)},includes(...e){return gr(this,"includes",e)},indexOf(...e){return gr(this,"indexOf",e)},join(e){return hn(this).join(e)},lastIndexOf(...e){return gr(this,"lastIndexOf",e)},map(e,t){return yt(this,"map",e,t,void 0,arguments)},pop(){return On(this,"pop")},push(...e){return On(this,"push",e)},reduce(e,...t){return Gi(this,"reduce",e,t)},reduceRight(e,...t){return Gi(this,"reduceRight",e,t)},shift(){return On(this,"shift")},some(e,t){return yt(this,"some",e,t,void 0,arguments)},splice(...e){return On(this,"splice",e)},toReversed(){return hn(this).toReversed()},toSorted(e){return hn(this).toSorted(e)},toSpliced(...e){return hn(this).toSpliced(...e)},unshift(...e){return On(this,"unshift",e)},values(){return hr(this,"values",e=>It(this,e))}};function hr(e,t,n){const o=Xo(e),r=o[t]();return o!==e&&!Ye(e)&&(r._next=r.next,r.next=()=>{const i=r._next();return i.done||(i.value=n(i.value)),i}),r}const Ec=Array.prototype;function yt(e,t,n,o,r,i){const s=Xo(e),l=s!==e&&!Ye(e),a=s[t];if(a!==Ec[t]){const f=a.apply(e,i);return l?lt(f):f}let c=n;s!==e&&(l?c=function(f,d){return n.call(this,It(e,f),d,e)}:n.length>2&&(c=function(f,d){return n.call(this,f,d,e)}));const u=a.call(s,c,o);return l&&r?r(u):u}function Gi(e,t,n,o){const r=Xo(e);let i=n;return r!==e&&(Ye(e)?n.length>3&&(i=function(s,l,a){return n.call(this,s,l,a,e)}):i=function(s,l,a){return n.call(this,s,It(e,l),a,e)}),r[t](i,...o)}function gr(e,t,n){const o=se(e);Be(o,"iterate",Jn);const r=o[t](...n);return(r===-1||r===!1)&&er(n[0])?(n[0]=se(n[0]),o[t](...n)):r}function On(e,t,n=[]){kt(),wi();const o=se(e)[t].apply(e,n);return xi(),Rt(),o}const kc=pi("__proto__,__v_isRef,__isVue"),Ql=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ut));function Rc(e){Ut(e)||(e=String(e));const t=se(this);return Be(t,"has",e),t.hasOwnProperty(e)}class Yl{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return o===(r?i?Bc:ea:i?Xl:Zl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const s=oe(t);if(!r){let a;if(s&&(a=Sc[n]))return a;if(n==="hasOwnProperty")return Rc}const l=Reflect.get(t,n,Ee(t)?t:o);if((Ut(n)?Ql.has(n):kc(n))||(r||Be(t,"get",n),i))return l;if(Ee(l)){const a=s&&Qo(n)?l:l.value;return r&&ye(a)?Ur(a):a}return ye(l)?r?Ur(l):an(l):l}}class Jl extends Yl{constructor(t=!1){super(!1,t)}set(t,n,o,r){let i=t[n];const s=oe(t)&&Qo(n);if(!this._isShallow){const c=At(i);if(!Ye(o)&&!At(o)&&(i=se(i),o=se(o)),!s&&Ee(i)&&!Ee(o))return c||(i.value=o),!0}const l=s?Number(n)e,go=e=>Reflect.getPrototypeOf(e);function Mc(e,t,n){return function(...o){const r=this.__v_raw,i=se(r),s=wn(i),l=e==="entries"||e===Symbol.iterator&&s,a=e==="keys"&&s,c=r[e](...o),u=n?zr:t?Cn:lt;return!t&&Be(i,"iterate",a?Hr:tn),{next(){const{value:f,done:d}=c.next();return d?{value:f,done:d}:{value:l?[u(f[0]),u(f[1])]:u(f),done:d}},[Symbol.iterator](){return this}}}}function mo(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function qc(e,t){const n={get(r){const i=this.__v_raw,s=se(i),l=se(r);e||(Vt(r,l)&&Be(s,"get",r),Be(s,"get",l));const{has:a}=go(s),c=t?zr:e?Cn:lt;if(a.call(s,r))return c(i.get(r));if(a.call(s,l))return c(i.get(l));i!==s&&i.get(r)},get size(){const r=this.__v_raw;return!e&&Be(se(r),"iterate",tn),r.size},has(r){const i=this.__v_raw,s=se(i),l=se(r);return e||(Vt(r,l)&&Be(s,"has",r),Be(s,"has",l)),r===l?i.has(r):i.has(r)||i.has(l)},forEach(r,i){const s=this,l=s.__v_raw,a=se(l),c=t?zr:e?Cn:lt;return!e&&Be(a,"iterate",tn),l.forEach((u,f)=>r.call(i,c(u),c(f),s))}};return Pe(n,e?{add:mo("add"),set:mo("set"),delete:mo("delete"),clear:mo("clear")}:{add(r){!t&&!Ye(r)&&!At(r)&&(r=se(r));const i=se(this);return go(i).has.call(i,r)||(i.add(r),Ct(i,"add",r,r)),this},set(r,i){!t&&!Ye(i)&&!At(i)&&(i=se(i));const s=se(this),{has:l,get:a}=go(s);let c=l.call(s,r);c||(r=se(r),c=l.call(s,r));const u=a.call(s,r);return s.set(r,i),c?Vt(i,u)&&Ct(s,"set",r,i):Ct(s,"add",r,i),this},delete(r){const i=se(this),{has:s,get:l}=go(i);let a=s.call(i,r);a||(r=se(r),a=s.call(i,r)),l&&l.call(i,r);const c=i.delete(r);return a&&Ct(i,"delete",r,void 0),c},clear(){const r=se(this),i=r.size!==0,s=r.clear();return i&&Ct(r,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Mc(r,e,t)}),n}function Ei(e,t){const n=qc(e,t);return(o,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?o:Reflect.get(he(n,r)&&r in o?n:o,r,i)}const Lc={get:Ei(!1,!1)},Ic={get:Ei(!1,!0)},Nc={get:Ei(!0,!1)};const Zl=new WeakMap,Xl=new WeakMap,ea=new WeakMap,Bc=new WeakMap;function Dc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fc(e){return e.__v_skip||!Object.isExtensible(e)?0:Dc(ac(e))}function an(e){return At(e)?e:ki(e,!1,Tc,Lc,Zl)}function ta(e){return ki(e,!1,Oc,Ic,Xl)}function Ur(e){return ki(e,!0,Pc,Nc,ea)}function ki(e,t,n,o,r){if(!ye(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=Fc(e);if(i===0)return e;const s=r.get(e);if(s)return s;const l=new Proxy(e,i===2?o:n);return r.set(e,l),l}function Et(e){return At(e)?Et(e.__v_raw):!!(e&&e.__v_isReactive)}function At(e){return!!(e&&e.__v_isReadonly)}function Ye(e){return!!(e&&e.__v_isShallow)}function er(e){return e?!!e.__v_raw:!1}function se(e){const t=e&&e.__v_raw;return t?se(t):e}function un(e){return!he(e,"__v_skip")&&Object.isExtensible(e)&&Ll(e,"__v_skip",!0),e}const lt=e=>ye(e)?an(e):e,Cn=e=>ye(e)?Ur(e):e;function Ee(e){return e?e.__v_isRef===!0:!1}function ae(e){return na(e,!1)}function $c(e){return na(e,!0)}function na(e,t){return Ee(e)?e:new Vc(e,t)}class Vc{constructor(t,n){this.dep=new Si,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:se(t),this._value=n?t:lt(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||Ye(t)||At(t);t=o?t:se(t),Vt(t,n)&&(this._rawValue=t,this._value=o?t:lt(t),this.dep.trigger())}}function jt(e){return Ee(e)?e.value:e}const jc={get:(e,t,n)=>t==="__v_raw"?e:jt(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return Ee(r)&&!Ee(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function oa(e){return Et(e)?e:new Proxy(e,jc)}function Hc(e){const t=oe(e)?new Array(e.length):{};for(const n in e)t[n]=Uc(e,n);return t}class zc{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._raw=se(t);let r=!0,i=t;if(!oe(t)||!Qo(String(n)))do r=!er(i)||Ye(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let t=this._object[this._key];return this._shallow&&(t=jt(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Ee(this._raw[this._key])){const n=this._object[this._key];if(Ee(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Cc(this._raw,this._key)}}function Uc(e,t,n){return new zc(e,t,n)}class Kc{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Si(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Yn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&ve!==this)return Hl(this,!0),!0}get value(){const t=this.dep.track();return Kl(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Wc(e,t,n=!1){let o,r;return ie(e)?o=e:(o=e.get,r=e.set),new Kc(o,r,n)}const po={},Lo=new WeakMap;let Yt;function Gc(e,t=!1,n=Yt){if(n){let o=Lo.get(n);o||Lo.set(n,o=[]),o.push(e)}}function Qc(e,t,n=me){const{immediate:o,deep:r,once:i,scheduler:s,augmentJob:l,call:a}=n,c=A=>r?A:Ye(A)||r===!1||r===0?St(A,1):St(A);let u,f,d,g,p=!1,y=!1;if(Ee(e)?(f=()=>e.value,p=Ye(e)):Et(e)?(f=()=>c(e),p=!0):oe(e)?(y=!0,p=e.some(A=>Et(A)||Ye(A)),f=()=>e.map(A=>{if(Ee(A))return A.value;if(Et(A))return c(A);if(ie(A))return a?a(A,2):A()})):ie(e)?t?f=a?()=>a(e,2):e:f=()=>{if(d){kt();try{d()}finally{Rt()}}const A=Yt;Yt=u;try{return a?a(e,3,[g]):e(g)}finally{Yt=A}}:f=bt,t&&r){const A=f,B=r===!0?1/0:r;f=()=>St(A(),B)}const S=$l(),T=()=>{u.stop(),S&&S.active&&bi(S.effects,u)};if(i&&t){const A=t;t=(...B)=>{A(...B),T()}}let _=y?new Array(e.length).fill(po):po;const x=A=>{if(!(!(u.flags&1)||!u.dirty&&!A))if(t){const B=u.run();if(r||p||(y?B.some((j,H)=>Vt(j,_[H])):Vt(B,_))){d&&d();const j=Yt;Yt=u;try{const H=[B,_===po?void 0:y&&_[0]===po?[]:_,g];_=B,a?a(t,3,H):t(...H)}finally{Yt=j}}}else u.run()};return l&&l(x),u=new Vl(f),u.scheduler=s?()=>s(x,!1):x,g=A=>Gc(A,!1,u),d=u.onStop=()=>{const A=Lo.get(u);if(A){if(a)a(A,4);else for(const B of A)B();Lo.delete(u)}},t?o?x(!0):_=u.run():s?s(x.bind(null,!0),!0):u.run(),T.pause=u.pause.bind(u),T.resume=u.resume.bind(u),T.stop=T,T}function St(e,t=1/0,n){if(t<=0||!ye(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Ee(e))St(e.value,t,n);else if(oe(e))for(let o=0;o{St(o,t,n)});else if(ql(e)){for(const o in e)St(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&St(e[o],t,n)}return e}function so(e,t,n,o){try{return o?e(...o):e()}catch(r){lo(r,t,n)}}function at(e,t,n,o){if(ie(e)){const r=so(e,t,n,o);return r&&Ol(r)&&r.catch(i=>{lo(i,t,n)}),r}if(oe(e)){const r=[];for(let i=0;i>>1,r=Ve[o],i=Zn(r);i=Zn(n)?Ve.push(e):Ve.splice(Jc(t),0,e),e.flags|=1,ia()}}function ia(){Io||(Io=ra.then(la))}function Zc(e){oe(e)?xn.push(...e):Nt&&e.id===-1?Nt.splice(bn+1,0,e):e.flags&1||(xn.push(e),e.flags|=1),ia()}function Qi(e,t,n=pt+1){for(;nZn(n)-Zn(o));if(xn.length=0,Nt){Nt.push(...t);return}for(Nt=t,bn=0;bne.id==null?e.flags&2?-1:1/0:e.id;function la(e){try{for(pt=0;pt{o._d&&Fo(-1);const i=No(t);let s;try{s=e(...r)}finally{No(i),o._d&&Fo(1)}return s};return o._n=!0,o._c=!0,o._d=!0,o}function ua(e,t){if(Ge===null)return e;const n=ir(Ge),o=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&ie(t)?t.call(o&&o.proxy):t}}function ef(){return!!(Ce()||nn)}const tf=Symbol.for("v-scx"),nf=()=>st(tf);function be(e,t,n){return ca(e,t,n)}function ca(e,t,n=me){const{immediate:o,deep:r,flush:i,once:s}=n,l=Pe({},n),a=t&&o||!t&&i!=="post";let c;if(Sn){if(i==="sync"){const g=nf();c=g.__watcherHandles||(g.__watcherHandles=[])}else if(!a){const g=()=>{};return g.stop=bt,g.resume=bt,g.pause=bt,g}}const u=Me;l.call=(g,p,y)=>at(g,u,p,y);let f=!1;i==="post"?l.scheduler=g=>{Fe(g,u&&u.suspense)}:i!=="sync"&&(f=!0,l.scheduler=(g,p)=>{p?g():Ri(g)}),l.augmentJob=g=>{t&&(g.flags|=4),f&&(g.flags|=2,u&&(g.id=u.uid,g.i=u))};const d=Qc(e,t,l);return Sn&&(c?c.push(d):a&&d()),d}function of(e,t,n){const o=this.proxy,r=xe(e)?e.includes(".")?fa(o,e):()=>o[e]:e.bind(o,o);let i;ie(t)?i=t:(i=t.handler,n=t);const s=co(this),l=ca(r,i.bind(o),n);return s(),l}function fa(e,t){const n=t.split(".");return()=>{let o=e;for(let r=0;re.__isTeleport,Hn=e=>e&&(e.disabled||e.disabled===""),Yi=e=>e&&(e.defer||e.defer===""),Ji=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Zi=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Kr=(e,t)=>{const n=e&&e.to;return xe(n)?t?t(n):null:n},ga={name:"Teleport",__isTeleport:!0,process(e,t,n,o,r,i,s,l,a,c){const{mc:u,pc:f,pbc:d,o:{insert:g,querySelector:p,createText:y,createComment:S}}=c,T=Hn(t.props);let{shapeFlag:_,children:x,dynamicChildren:A}=t;if(e==null){const B=t.el=y(""),j=t.anchor=y("");g(B,n,o),g(j,n,o);const H=(N,C)=>{_&16&&u(x,N,C,r,i,s,l,a)},$=()=>{const N=t.target=Kr(t.props,p),C=ma(N,t,y,g);N&&(s!=="svg"&&Ji(N)?s="svg":s!=="mathml"&&Zi(N)&&(s="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(N),T||(H(N,C),Ao(t,!1)))};T&&(H(n,j),Ao(t,!0)),Yi(t.props)?(t.el.__isMounted=!1,Fe(()=>{$(),delete t.el.__isMounted},i)):$()}else{if(Yi(t.props)&&e.el.__isMounted===!1){Fe(()=>{ga.process(e,t,n,o,r,i,s,l,a,c)},i);return}t.el=e.el,t.targetStart=e.targetStart;const B=t.anchor=e.anchor,j=t.target=e.target,H=t.targetAnchor=e.targetAnchor,$=Hn(e.props),N=$?n:j,C=$?B:H;if(s==="svg"||Ji(j)?s="svg":(s==="mathml"||Zi(j))&&(s="mathml"),A?(d(e.dynamicChildren,A,N,r,i,s,l),qi(e,t,!0)):a||f(e,t,N,C,r,i,s,l,!1),T)$?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):vo(t,n,B,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const E=t.target=Kr(t.props,p);E&&vo(t,E,null,c,0)}else $&&vo(t,j,H,c,1);Ao(t,T)}},remove(e,t,n,{um:o,o:{remove:r}},i){const{shapeFlag:s,children:l,anchor:a,targetStart:c,targetAnchor:u,target:f,props:d}=e;if(f&&(r(c),r(u)),i&&r(a),s&16){const g=i||!Hn(d);for(let p=0;p{e.isMounted=!0}),ct(()=>{e.isUnmounting=!0}),e}const Je=[Function,Array],va={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Je,onEnter:Je,onAfterEnter:Je,onEnterCancelled:Je,onBeforeLeave:Je,onLeave:Je,onAfterLeave:Je,onLeaveCancelled:Je,onBeforeAppear:Je,onAppear:Je,onAfterAppear:Je,onAppearCancelled:Je},ba=e=>{const t=e.subTree;return t.component?ba(t.component):t},lf={name:"BaseTransition",props:va,setup(e,{slots:t}){const n=Ce(),o=pa();return()=>{const r=t.default&&Ai(t.default(),!0);if(!r||!r.length)return;const i=ya(r),s=se(e),{mode:l}=s;if(o.isLeaving)return mr(i);const a=Xi(i);if(!a)return mr(i);let c=Xn(a,s,o,n,f=>c=f);a.type!==je&&sn(a,c);let u=n.subTree&&Xi(n.subTree);if(u&&u.type!==je&&!Jt(u,a)&&ba(n).type!==je){let f=Xn(u,s,o,n);if(sn(u,f),l==="out-in"&&a.type!==je)return o.isLeaving=!0,f.afterLeave=()=>{o.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,u=void 0},mr(i);l==="in-out"&&a.type!==je?f.delayLeave=(d,g,p)=>{const y=_a(o,u);y[String(u.key)]=u,d[xt]=()=>{g(),d[xt]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{p(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return i}}};function ya(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==je){t=n;break}}return t}const af=lf;function _a(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function Xn(e,t,n,o,r){const{appear:i,mode:s,persisted:l=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:d,onLeave:g,onAfterLeave:p,onLeaveCancelled:y,onBeforeAppear:S,onAppear:T,onAfterAppear:_,onAppearCancelled:x}=t,A=String(e.key),B=_a(n,e),j=(N,C)=>{N&&at(N,o,9,C)},H=(N,C)=>{const E=C[1];j(N,C),oe(N)?N.every(b=>b.length<=1)&&E():N.length<=1&&E()},$={mode:s,persisted:l,beforeEnter(N){let C=a;if(!n.isMounted)if(i)C=S||a;else return;N[xt]&&N[xt](!0);const E=B[A];E&&Jt(e,E)&&E.el[xt]&&E.el[xt](),j(C,[N])},enter(N){let C=c,E=u,b=f;if(!n.isMounted)if(i)C=T||c,E=_||u,b=x||f;else return;let O=!1;const R=N[bo]=K=>{O||(O=!0,K?j(b,[N]):j(E,[N]),$.delayedLeave&&$.delayedLeave(),N[bo]=void 0)};C?H(C,[N,R]):R()},leave(N,C){const E=String(e.key);if(N[bo]&&N[bo](!0),n.isUnmounting)return C();j(d,[N]);let b=!1;const O=N[xt]=R=>{b||(b=!0,C(),R?j(y,[N]):j(p,[N]),N[xt]=void 0,B[E]===e&&delete B[E])};B[E]=e,g?H(g,[N,O]):O()},clone(N){const C=Xn(N,t,n,o,r);return r&&r(C),C}};return $}function mr(e){if(uo(e))return e=Ht(e),e.children=null,e}function Xi(e){if(!uo(e))return ha(e.type)&&e.children?ya(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&ie(n.default))return n.default()}}function sn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,sn(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Ai(e,t=!1,n){let o=[],r=0;for(let i=0;i1)for(let i=0;izn(p,t&&(oe(t)?t[y]:t),n,o,r));return}if(Un(o)&&!r){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&zn(e,t,n,o.component.subTree);return}const i=o.shapeFlag&4?ir(o.component):o.el,s=r?null:i,{i:l,r:a}=e,c=t&&t.r,u=l.refs===me?l.refs={}:l.refs,f=l.setupState,d=se(f),g=f===me?Tl:p=>he(d,p);if(c!=null&&c!==a){if(es(t),xe(c))u[c]=null,g(c)&&(f[c]=null);else if(Ee(c)){c.value=null;const p=t;p.k&&(u[p.k]=null)}}if(ie(a))so(a,l,12,[s,u]);else{const p=xe(a),y=Ee(a);if(p||y){const S=()=>{if(e.f){const T=p?g(a)?f[a]:u[a]:a.value;if(r)oe(T)&&bi(T,i);else if(oe(T))T.includes(i)||T.push(i);else if(p)u[a]=[i],g(a)&&(f[a]=u[a]);else{const _=[i];a.value=_,e.k&&(u[e.k]=_)}}else p?(u[a]=s,g(a)&&(f[a]=s)):y&&(a.value=s,e.k&&(u[e.k]=s))};if(s){const T=()=>{S(),Bo.delete(e)};T.id=-1,Bo.set(e,T),Fe(T,n)}else es(e),S()}}}function es(e){const t=Bo.get(e);t&&(t.flags|=8,Bo.delete(e))}const ts=e=>e.nodeType===8;Zo().requestIdleCallback;Zo().cancelIdleCallback;function uf(e,t){if(ts(e)&&e.data==="["){let n=1,o=e.nextSibling;for(;o;){if(o.nodeType===1){if(t(o)===!1)break}else if(ts(o))if(o.data==="]"){if(--n===0)break}else o.data==="["&&n++;o=o.nextSibling}}else t(e)}const Un=e=>!!e.type.__asyncLoader;function Ep(e){ie(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:r=200,hydrate:i,timeout:s,suspensible:l=!0,onError:a}=e;let c=null,u,f=0;const d=()=>(f++,c=null,g()),g=()=>{let p;return c||(p=c=t().catch(y=>{if(y=y instanceof Error?y:new Error(String(y)),a)return new Promise((S,T)=>{a(y,()=>S(d()),()=>T(y),f+1)});throw y}).then(y=>p!==c&&c?c:(y&&(y.__esModule||y[Symbol.toStringTag]==="Module")&&(y=y.default),u=y,y)))};return ao({name:"AsyncComponentWrapper",__asyncLoader:g,__asyncHydrate(p,y,S){let T=!1;(y.bu||(y.bu=[])).push(()=>T=!0);const _=()=>{T||S()},x=i?()=>{const A=i(_,B=>uf(p,B));A&&(y.bum||(y.bum=[])).push(A)}:_;u?x():g().then(()=>!y.isUnmounted&&x())},get __asyncResolved(){return u},setup(){const p=Me;if(Ti(p),u)return()=>yo(u,p);const y=x=>{c=null,lo(x,p,13,!o)};if(l&&p.suspense||Sn)return g().then(x=>()=>yo(x,p)).catch(x=>(y(x),()=>o?qe(o,{error:x}):null));const S=ae(!1),T=ae(),_=ae(!!r);return r&&setTimeout(()=>{_.value=!1},r),s!=null&&setTimeout(()=>{if(!S.value&&!T.value){const x=new Error(`Async component timed out after ${s}ms.`);y(x),T.value=x}},s),g().then(()=>{S.value=!0,p.parent&&uo(p.parent.vnode)&&p.parent.update()}).catch(x=>{y(x),T.value=x}),()=>{if(S.value&&u)return yo(u,p);if(T.value&&o)return qe(o,{error:T.value});if(n&&!_.value)return yo(n,p)}}})}function yo(e,t){const{ref:n,props:o,children:r,ce:i}=t.vnode,s=qe(e,o,r);return s.ref=n,s.ce=i,delete t.vnode.ce,s}const uo=e=>e.type.__isKeepAlive;function wa(e,t){xa(e,"a",t)}function tr(e,t){xa(e,"da",t)}function xa(e,t,n=Me){const o=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(nr(t,o,n),n){let r=n.parent;for(;r&&r.parent;)uo(r.parent.vnode)&&cf(o,t,n,r),r=r.parent}}function cf(e,t,n,o){const r=nr(t,e,o,!0);Pi(()=>{bi(o[t],r)},n)}function nr(e,t,n=Me,o=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...s)=>{kt();const l=co(n),a=at(t,n,e,s);return l(),Rt(),a});return o?r.unshift(i):r.push(i),i}}const Pt=e=>(t,n=Me)=>{(!Sn||e==="sp")&&nr(e,(...o)=>t(...o),n)},ff=Pt("bm"),cn=Pt("m"),Ca=Pt("bu"),Sa=Pt("u"),ct=Pt("bum"),Pi=Pt("um"),df=Pt("sp"),hf=Pt("rtg"),gf=Pt("rtc");function mf(e,t=Me){nr("ec",e,t)}const Ea="components";function pf(e,t){return Ra(Ea,e,!0,t)||e}const ka=Symbol.for("v-ndc");function kp(e){return xe(e)?Ra(Ea,e,!1)||e:e||ka}function Ra(e,t,n=!0,o=!1){const r=Ge||Me;if(r){const i=r.type;{const l=td(i,!1);if(l&&(l===t||l===tt(t)||l===Jo(tt(t))))return i}const s=ns(r[e]||i[e],t)||ns(r.appContext[e],t);return!s&&o?i:s}}function ns(e,t){return e&&(e[t]||e[tt(t)]||e[Jo(tt(t))])}function Rp(e,t,n,o){let r;const i=n,s=oe(e);if(s||xe(e)){const l=s&&Et(e);let a=!1,c=!1;l&&(a=!Ye(e),c=At(e),e=Xo(e)),r=new Array(e.length);for(let u=0,f=e.length;ut(l,a,void 0,i));else{const l=Object.keys(e);r=new Array(l.length);for(let a=0,c=l.length;ae?Ga(e)?ir(e):Wr(e.parent):null,Kn=Pe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Wr(e.parent),$root:e=>Wr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ta(e),$forceUpdate:e=>e.f||(e.f=()=>{Ri(e.update)}),$nextTick:e=>e.n||(e.n=Ke.bind(e.proxy)),$watch:e=>of.bind(e)}),pr=(e,t)=>e!==me&&!e.__isScriptSetup&&he(e,t),vf={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:r,props:i,accessCache:s,type:l,appContext:a}=e;if(t[0]!=="$"){const d=s[t];if(d!==void 0)switch(d){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(pr(o,t))return s[t]=1,o[t];if(r!==me&&he(r,t))return s[t]=2,r[t];if(he(i,t))return s[t]=3,i[t];if(n!==me&&he(n,t))return s[t]=4,n[t];Gr&&(s[t]=0)}}const c=Kn[t];let u,f;if(c)return t==="$attrs"&&Be(e.attrs,"get",""),c(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(n!==me&&he(n,t))return s[t]=4,n[t];if(f=a.config.globalProperties,he(f,t))return f[t]},set({_:e},t,n){const{data:o,setupState:r,ctx:i}=e;return pr(r,t)?(r[t]=n,!0):o!==me&&he(o,t)?(o[t]=n,!0):he(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:r,props:i,type:s}},l){let a;return!!(n[l]||e!==me&&l[0]!=="$"&&he(e,l)||pr(t,l)||he(i,l)||he(o,l)||he(Kn,l)||he(r.config.globalProperties,l)||(a=s.__cssModules)&&a[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:he(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function os(e){return oe(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Gr=!0;function bf(e){const t=Ta(e),n=e.proxy,o=e.ctx;Gr=!1,t.beforeCreate&&rs(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:s,watch:l,provide:a,inject:c,created:u,beforeMount:f,mounted:d,beforeUpdate:g,updated:p,activated:y,deactivated:S,beforeDestroy:T,beforeUnmount:_,destroyed:x,unmounted:A,render:B,renderTracked:j,renderTriggered:H,errorCaptured:$,serverPrefetch:N,expose:C,inheritAttrs:E,components:b,directives:O,filters:R}=t;if(c&&yf(c,o,null),s)for(const V in s){const M=s[V];ie(M)&&(o[V]=M.bind(n))}if(r){const V=r.call(n,n);ye(V)&&(e.data=an(V))}if(Gr=!0,i)for(const V in i){const M=i[V],ne=ie(M)?M.bind(n,n):ie(M.get)?M.get.bind(n,n):bt,we=!ie(M)&&ie(M.set)?M.set.bind(n):bt,le=k({get:ne,set:we});Object.defineProperty(o,V,{enumerable:!0,configurable:!0,get:()=>le.value,set:D=>le.value=D})}if(l)for(const V in l)Aa(l[V],o,n,V);if(a){const V=ie(a)?a.call(n):a;Reflect.ownKeys(V).forEach(M=>{Ro(M,V[M])})}u&&rs(u,e,"c");function J(V,M){oe(M)?M.forEach(ne=>V(ne.bind(n))):M&&V(M.bind(n))}if(J(ff,f),J(cn,d),J(Ca,g),J(Sa,p),J(wa,y),J(tr,S),J(mf,$),J(gf,j),J(hf,H),J(ct,_),J(Pi,A),J(df,N),oe(C))if(C.length){const V=e.exposed||(e.exposed={});C.forEach(M=>{Object.defineProperty(V,M,{get:()=>n[M],set:ne=>n[M]=ne,enumerable:!0})})}else e.exposed||(e.exposed={});B&&e.render===bt&&(e.render=B),E!=null&&(e.inheritAttrs=E),b&&(e.components=b),O&&(e.directives=O),N&&Ti(e)}function yf(e,t,n=bt){oe(e)&&(e=Qr(e));for(const o in e){const r=e[o];let i;ye(r)?"default"in r?i=st(r.from||o,r.default,!0):i=st(r.from||o):i=st(r),Ee(i)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>i.value,set:s=>i.value=s}):t[o]=i}}function rs(e,t,n){at(oe(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Aa(e,t,n,o){let r=o.includes(".")?fa(n,o):()=>n[o];if(xe(e)){const i=t[e];ie(i)&&be(r,i)}else if(ie(e))be(r,e.bind(n));else if(ye(e))if(oe(e))e.forEach(i=>Aa(i,t,n,o));else{const i=ie(e.handler)?e.handler.bind(n):t[e.handler];ie(i)&&be(r,i,e)}}function Ta(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:s}}=e.appContext,l=i.get(t);let a;return l?a=l:!r.length&&!n&&!o?a=t:(a={},r.length&&r.forEach(c=>Do(a,c,s,!0)),Do(a,t,s)),ye(t)&&i.set(t,a),a}function Do(e,t,n,o=!1){const{mixins:r,extends:i}=t;i&&Do(e,i,n,!0),r&&r.forEach(s=>Do(e,s,n,!0));for(const s in t)if(!(o&&s==="expose")){const l=_f[s]||n&&n[s];e[s]=l?l(e[s],t[s]):t[s]}return e}const _f={data:is,props:ss,emits:ss,methods:Bn,computed:Bn,beforeCreate:De,created:De,beforeMount:De,mounted:De,beforeUpdate:De,updated:De,beforeDestroy:De,beforeUnmount:De,destroyed:De,unmounted:De,activated:De,deactivated:De,errorCaptured:De,serverPrefetch:De,components:Bn,directives:Bn,watch:xf,provide:is,inject:wf};function is(e,t){return t?e?function(){return Pe(ie(e)?e.call(this,this):e,ie(t)?t.call(this,this):t)}:t:e}function wf(e,t){return Bn(Qr(e),Qr(t))}function Qr(e){if(oe(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${tt(t)}Modifiers`]||e[`${ln(t)}Modifiers`];function kf(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||me;let r=n;const i=t.startsWith("update:"),s=i&&Ef(o,t.slice(7));s&&(s.trim&&(r=n.map(u=>xe(u)?u.trim():u)),s.number&&(r=n.map(fc)));let l,a=o[l=ur(t)]||o[l=ur(tt(t))];!a&&i&&(a=o[l=ur(ln(t))]),a&&at(a,e,6,r);const c=o[l+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,at(c,e,6,r)}}const Rf=new WeakMap;function Oa(e,t,n=!1){const o=n?Rf:t.emitsCache,r=o.get(e);if(r!==void 0)return r;const i=e.emits;let s={},l=!1;if(!ie(e)){const a=c=>{const u=Oa(c,t,!0);u&&(l=!0,Pe(s,u))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!i&&!l?(ye(e)&&o.set(e,null),null):(oe(i)?i.forEach(a=>s[a]=null):Pe(s,i),ye(e)&&o.set(e,s),s)}function or(e,t){return!e||!Wo(t)?!1:(t=t.slice(2).replace(/Once$/,""),he(e,t[0].toLowerCase()+t.slice(1))||he(e,ln(t))||he(e,t))}function ls(e){const{type:t,vnode:n,proxy:o,withProxy:r,propsOptions:[i],slots:s,attrs:l,emit:a,render:c,renderCache:u,props:f,data:d,setupState:g,ctx:p,inheritAttrs:y}=e,S=No(e);let T,_;try{if(n.shapeFlag&4){const A=r||o,B=A;T=vt(c.call(B,A,u,f,g,d,p)),_=l}else{const A=t;T=vt(A.length>1?A(f,{attrs:l,slots:s,emit:a}):A(f,null)),_=t.props?l:Af(l)}}catch(A){Wn.length=0,lo(A,e,1),T=qe(je)}let x=T;if(_&&y!==!1){const A=Object.keys(_),{shapeFlag:B}=x;A.length&&B&7&&(i&&A.some(vi)&&(_=Tf(_,i)),x=Ht(x,_,!1,!0))}return n.dirs&&(x=Ht(x,null,!1,!0),x.dirs=x.dirs?x.dirs.concat(n.dirs):n.dirs),n.transition&&sn(x,n.transition),T=x,No(S),T}const Af=e=>{let t;for(const n in e)(n==="class"||n==="style"||Wo(n))&&((t||(t={}))[n]=e[n]);return t},Tf=(e,t)=>{const n={};for(const o in e)(!vi(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function Pf(e,t,n){const{props:o,children:r,component:i}=e,{props:s,children:l,patchFlag:a}=t,c=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return o?as(o,s,c):!!s;if(a&8){const u=t.dynamicProps;for(let f=0;fObject.create(Ma),La=e=>Object.getPrototypeOf(e)===Ma;function Mf(e,t,n,o=!1){const r={},i=qa();e.propsDefaults=Object.create(null),Ia(e,t,r,i);for(const s in e.propsOptions[0])s in r||(r[s]=void 0);n?e.props=o?r:ta(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function qf(e,t,n,o){const{props:r,attrs:i,vnode:{patchFlag:s}}=e,l=se(r),[a]=e.propsOptions;let c=!1;if((o||s>0)&&!(s&16)){if(s&8){const u=e.vnode.dynamicProps;for(let f=0;f{a=!0;const[d,g]=Na(f,t,!0);Pe(s,d),g&&l.push(...g)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!i&&!a)return ye(e)&&o.set(e,_n),_n;if(oe(i))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Mi=e=>oe(e)?e.map(vt):[vt(e)],If=(e,t,n)=>{if(t._n)return t;const o=Xc((...r)=>Mi(t(...r)),n);return o._c=!1,o},Ba=(e,t,n)=>{const o=e._ctx;for(const r in e){if(Oi(r))continue;const i=e[r];if(ie(i))t[r]=If(r,i,o);else if(i!=null){const s=Mi(i);t[r]=()=>s}}},Da=(e,t)=>{const n=Mi(t);e.slots.default=()=>n},Fa=(e,t,n)=>{for(const o in t)(n||!Oi(o))&&(e[o]=t[o])},Nf=(e,t,n)=>{const o=e.slots=qa();if(e.vnode.shapeFlag&32){const r=t._;r?(Fa(o,t,n),n&&Ll(o,"_",r,!0)):Ba(t,o)}else t&&Da(e,t)},Bf=(e,t,n)=>{const{vnode:o,slots:r}=e;let i=!0,s=me;if(o.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:Fa(r,t,n):(i=!t.$stable,Ba(t,r)),s=t}else t&&(Da(e,t),s={default:1});if(i)for(const l in r)!Oi(l)&&s[l]==null&&delete r[l]},Fe=jf;function Df(e){return Ff(e)}function Ff(e,t){const n=Zo();n.__VUE__=!0;const{insert:o,remove:r,patchProp:i,createElement:s,createText:l,createComment:a,setText:c,setElementText:u,parentNode:f,nextSibling:d,setScopeId:g=bt,insertStaticContent:p}=e,y=(h,m,v,q=null,I=null,L=null,Q=void 0,U=null,z=!!m.dynamicChildren)=>{if(h===m)return;h&&!Jt(h,m)&&(q=w(h),D(h,I,L,!0),h=null),m.patchFlag===-2&&(z=!1,m.dynamicChildren=null);const{type:F,ref:te,shapeFlag:Y}=m;switch(F){case rr:S(h,m,v,q);break;case je:T(h,m,v,q);break;case br:h==null&&_(m,v,q,Q);break;case Xe:b(h,m,v,q,I,L,Q,U,z);break;default:Y&1?B(h,m,v,q,I,L,Q,U,z):Y&6?O(h,m,v,q,I,L,Q,U,z):(Y&64||Y&128)&&F.process(h,m,v,q,I,L,Q,U,z,Z)}te!=null&&I?zn(te,h&&h.ref,L,m||h,!m):te==null&&h&&h.ref!=null&&zn(h.ref,null,L,h,!0)},S=(h,m,v,q)=>{if(h==null)o(m.el=l(m.children),v,q);else{const I=m.el=h.el;m.children!==h.children&&c(I,m.children)}},T=(h,m,v,q)=>{h==null?o(m.el=a(m.children||""),v,q):m.el=h.el},_=(h,m,v,q)=>{[h.el,h.anchor]=p(h.children,m,v,q,h.el,h.anchor)},x=({el:h,anchor:m},v,q)=>{let I;for(;h&&h!==m;)I=d(h),o(h,v,q),h=I;o(m,v,q)},A=({el:h,anchor:m})=>{let v;for(;h&&h!==m;)v=d(h),r(h),h=v;r(m)},B=(h,m,v,q,I,L,Q,U,z)=>{if(m.type==="svg"?Q="svg":m.type==="math"&&(Q="mathml"),h==null)j(m,v,q,I,L,Q,U,z);else{const F=h.el&&h.el._isVueCE?h.el:null;try{F&&F._beginPatch(),N(h,m,I,L,Q,U,z)}finally{F&&F._endPatch()}}},j=(h,m,v,q,I,L,Q,U)=>{let z,F;const{props:te,shapeFlag:Y,transition:X,dirs:re}=h;if(z=h.el=s(h.type,L,te&&te.is,te),Y&8?u(z,h.children):Y&16&&$(h.children,z,null,q,I,vr(h,L),Q,U),re&&Kt(h,null,q,"created"),H(z,h,h.scopeId,Q,q),te){for(const pe in te)pe!=="value"&&!$n(pe)&&i(z,pe,null,te[pe],L,q);"value"in te&&i(z,"value",null,te.value,L),(F=te.onVnodeBeforeMount)&>(F,q,h)}re&&Kt(h,null,q,"beforeMount");const fe=$f(I,X);fe&&X.beforeEnter(z),o(z,m,v),((F=te&&te.onVnodeMounted)||fe||re)&&Fe(()=>{F&>(F,q,h),fe&&X.enter(z),re&&Kt(h,null,q,"mounted")},I)},H=(h,m,v,q,I)=>{if(v&&g(h,v),q)for(let L=0;L{for(let F=z;F{const U=m.el=h.el;let{patchFlag:z,dynamicChildren:F,dirs:te}=m;z|=h.patchFlag&16;const Y=h.props||me,X=m.props||me;let re;if(v&&Wt(v,!1),(re=X.onVnodeBeforeUpdate)&>(re,v,m,h),te&&Kt(m,h,v,"beforeUpdate"),v&&Wt(v,!0),(Y.innerHTML&&X.innerHTML==null||Y.textContent&&X.textContent==null)&&u(U,""),F?C(h.dynamicChildren,F,U,v,q,vr(m,I),L):Q||M(h,m,U,null,v,q,vr(m,I),L,!1),z>0){if(z&16)E(U,Y,X,v,I);else if(z&2&&Y.class!==X.class&&i(U,"class",null,X.class,I),z&4&&i(U,"style",Y.style,X.style,I),z&8){const fe=m.dynamicProps;for(let pe=0;pe{re&>(re,v,m,h),te&&Kt(m,h,v,"updated")},q)},C=(h,m,v,q,I,L,Q)=>{for(let U=0;U{if(m!==v){if(m!==me)for(const L in m)!$n(L)&&!(L in v)&&i(h,L,m[L],null,I,q);for(const L in v){if($n(L))continue;const Q=v[L],U=m[L];Q!==U&&L!=="value"&&i(h,L,U,Q,I,q)}"value"in v&&i(h,"value",m.value,v.value,I)}},b=(h,m,v,q,I,L,Q,U,z)=>{const F=m.el=h?h.el:l(""),te=m.anchor=h?h.anchor:l("");let{patchFlag:Y,dynamicChildren:X,slotScopeIds:re}=m;re&&(U=U?U.concat(re):re),h==null?(o(F,v,q),o(te,v,q),$(m.children||[],v,te,I,L,Q,U,z)):Y>0&&Y&64&&X&&h.dynamicChildren&&h.dynamicChildren.length===X.length?(C(h.dynamicChildren,X,v,I,L,Q,U),(m.key!=null||I&&m===I.subTree)&&qi(h,m,!0)):M(h,m,v,te,I,L,Q,U,z)},O=(h,m,v,q,I,L,Q,U,z)=>{m.slotScopeIds=U,h==null?m.shapeFlag&512?I.ctx.activate(m,v,q,Q,z):R(m,v,q,I,L,Q,z):K(h,m,z)},R=(h,m,v,q,I,L,Q)=>{const U=h.component=Yf(h,q,I);if(uo(h)&&(U.ctx.renderer=Z),Jf(U,!1,Q),U.asyncDep){if(I&&I.registerDep(U,J,Q),!h.el){const z=U.subTree=qe(je);T(null,z,m,v),h.placeholder=z.el}}else J(U,h,m,v,I,L,Q)},K=(h,m,v)=>{const q=m.component=h.component;if(Pf(h,m,v))if(q.asyncDep&&!q.asyncResolved){V(q,m,v);return}else q.next=m,q.update();else m.el=h.el,q.vnode=m},J=(h,m,v,q,I,L,Q)=>{const U=()=>{if(h.isMounted){let{next:Y,bu:X,u:re,parent:fe,vnode:pe}=h;{const dt=$a(h);if(dt){Y&&(Y.el=pe.el,V(h,Y,Q)),dt.asyncDep.then(()=>{h.isUnmounted||U()});return}}let ge=Y,He;Wt(h,!1),Y?(Y.el=pe.el,V(h,Y,Q)):Y=pe,X&&cr(X),(He=Y.props&&Y.props.onVnodeBeforeUpdate)&>(He,fe,Y,pe),Wt(h,!0);const ze=ls(h),ft=h.subTree;h.subTree=ze,y(ft,ze,f(ft.el),w(ft),h,I,L),Y.el=ze.el,ge===null&&Of(h,ze.el),re&&Fe(re,I),(He=Y.props&&Y.props.onVnodeUpdated)&&Fe(()=>gt(He,fe,Y,pe),I)}else{let Y;const{el:X,props:re}=m,{bm:fe,m:pe,parent:ge,root:He,type:ze}=h,ft=Un(m);Wt(h,!1),fe&&cr(fe),!ft&&(Y=re&&re.onVnodeBeforeMount)&>(Y,ge,m),Wt(h,!0);{He.ce&&He.ce._def.shadowRoot!==!1&&He.ce._injectChildStyle(ze);const dt=h.subTree=ls(h);y(null,dt,v,q,h,I,L),m.el=dt.el}if(pe&&Fe(pe,I),!ft&&(Y=re&&re.onVnodeMounted)){const dt=m;Fe(()=>gt(Y,ge,dt),I)}(m.shapeFlag&256||ge&&Un(ge.vnode)&&ge.vnode.shapeFlag&256)&&h.a&&Fe(h.a,I),h.isMounted=!0,m=v=q=null}};h.scope.on();const z=h.effect=new Vl(U);h.scope.off();const F=h.update=z.run.bind(z),te=h.job=z.runIfDirty.bind(z);te.i=h,te.id=h.uid,z.scheduler=()=>Ri(te),Wt(h,!0),F()},V=(h,m,v)=>{m.component=h;const q=h.vnode.props;h.vnode=m,h.next=null,qf(h,m.props,q,v),Bf(h,m.children,v),kt(),Qi(h),Rt()},M=(h,m,v,q,I,L,Q,U,z=!1)=>{const F=h&&h.children,te=h?h.shapeFlag:0,Y=m.children,{patchFlag:X,shapeFlag:re}=m;if(X>0){if(X&128){we(F,Y,v,q,I,L,Q,U,z);return}else if(X&256){ne(F,Y,v,q,I,L,Q,U,z);return}}re&8?(te&16&&ee(F,I,L),Y!==F&&u(v,Y)):te&16?re&16?we(F,Y,v,q,I,L,Q,U,z):ee(F,I,L,!0):(te&8&&u(v,""),re&16&&$(Y,v,q,I,L,Q,U,z))},ne=(h,m,v,q,I,L,Q,U,z)=>{h=h||_n,m=m||_n;const F=h.length,te=m.length,Y=Math.min(F,te);let X;for(X=0;Xte?ee(h,I,L,!0,!1,Y):$(m,v,q,I,L,Q,U,z,Y)},we=(h,m,v,q,I,L,Q,U,z)=>{let F=0;const te=m.length;let Y=h.length-1,X=te-1;for(;F<=Y&&F<=X;){const re=h[F],fe=m[F]=z?Bt(m[F]):vt(m[F]);if(Jt(re,fe))y(re,fe,v,null,I,L,Q,U,z);else break;F++}for(;F<=Y&&F<=X;){const re=h[Y],fe=m[X]=z?Bt(m[X]):vt(m[X]);if(Jt(re,fe))y(re,fe,v,null,I,L,Q,U,z);else break;Y--,X--}if(F>Y){if(F<=X){const re=X+1,fe=reX)for(;F<=Y;)D(h[F],I,L,!0),F++;else{const re=F,fe=F,pe=new Map;for(F=fe;F<=X;F++){const We=m[F]=z?Bt(m[F]):vt(m[F]);We.key!=null&&pe.set(We.key,F)}let ge,He=0;const ze=X-fe+1;let ft=!1,dt=0;const Pn=new Array(ze);for(F=0;F=ze){D(We,I,L,!0);continue}let ht;if(We.key!=null)ht=pe.get(We.key);else for(ge=fe;ge<=X;ge++)if(Pn[ge-fe]===0&&Jt(We,m[ge])){ht=ge;break}ht===void 0?D(We,I,L,!0):(Pn[ht-fe]=F+1,ht>=dt?dt=ht:ft=!0,y(We,m[ht],v,null,I,L,Q,U,z),He++)}const ji=ft?Vf(Pn):_n;for(ge=ji.length-1,F=ze-1;F>=0;F--){const We=fe+F,ht=m[We],Hi=m[We+1],zi=We+1{const{el:L,type:Q,transition:U,children:z,shapeFlag:F}=h;if(F&6){le(h.component.subTree,m,v,q);return}if(F&128){h.suspense.move(m,v,q);return}if(F&64){Q.move(h,m,v,Z);return}if(Q===Xe){o(L,m,v);for(let Y=0;YU.enter(L),I);else{const{leave:Y,delayLeave:X,afterLeave:re}=U,fe=()=>{h.ctx.isUnmounted?r(L):o(L,m,v)},pe=()=>{L._isLeaving&&L[xt](!0),Y(L,()=>{fe(),re&&re()})};X?X(L,fe,pe):pe()}else o(L,m,v)},D=(h,m,v,q=!1,I=!1)=>{const{type:L,props:Q,ref:U,children:z,dynamicChildren:F,shapeFlag:te,patchFlag:Y,dirs:X,cacheIndex:re}=h;if(Y===-2&&(I=!1),U!=null&&(kt(),zn(U,null,v,h,!0),Rt()),re!=null&&(m.renderCache[re]=void 0),te&256){m.ctx.deactivate(h);return}const fe=te&1&&X,pe=!Un(h);let ge;if(pe&&(ge=Q&&Q.onVnodeBeforeUnmount)&>(ge,m,h),te&6)ke(h.component,v,q);else{if(te&128){h.suspense.unmount(v,q);return}fe&&Kt(h,null,m,"beforeUnmount"),te&64?h.type.remove(h,m,v,Z,q):F&&!F.hasOnce&&(L!==Xe||Y>0&&Y&64)?ee(F,m,v,!1,!0):(L===Xe&&Y&384||!I&&te&16)&&ee(z,m,v),q&&ue(h)}(pe&&(ge=Q&&Q.onVnodeUnmounted)||fe)&&Fe(()=>{ge&>(ge,m,h),fe&&Kt(h,null,m,"unmounted")},v)},ue=h=>{const{type:m,el:v,anchor:q,transition:I}=h;if(m===Xe){_e(v,q);return}if(m===br){A(h);return}const L=()=>{r(v),I&&!I.persisted&&I.afterLeave&&I.afterLeave()};if(h.shapeFlag&1&&I&&!I.persisted){const{leave:Q,delayLeave:U}=I,z=()=>Q(v,L);U?U(h.el,L,z):z()}else L()},_e=(h,m)=>{let v;for(;h!==m;)v=d(h),r(h),h=v;r(m)},ke=(h,m,v)=>{const{bum:q,scope:I,job:L,subTree:Q,um:U,m:z,a:F}=h;cs(z),cs(F),q&&cr(q),I.stop(),L&&(L.flags|=8,D(Q,h,m,v)),U&&Fe(U,m),Fe(()=>{h.isUnmounted=!0},m)},ee=(h,m,v,q=!1,I=!1,L=0)=>{for(let Q=L;Q{if(h.shapeFlag&6)return w(h.component.subTree);if(h.shapeFlag&128)return h.suspense.next();const m=d(h.anchor||h.el),v=m&&m[da];return v?d(v):m};let W=!1;const G=(h,m,v)=>{let q;h==null?m._vnode&&(D(m._vnode,null,null,!0),q=m._vnode.component):y(m._vnode||null,h,m,null,null,null,v),m._vnode=h,W||(W=!0,Qi(q),sa(),W=!1)},Z={p:y,um:D,m:le,r:ue,mt:R,mc:$,pc:M,pbc:C,n:w,o:e};return{render:G,hydrate:void 0,createApp:Sf(G)}}function vr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Wt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function $f(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function qi(e,t,n=!1){const o=e.children,r=t.children;if(oe(o)&&oe(r))for(let i=0;i>1,e[n[l]]0&&(t[o]=n[i-1]),n[i]=o)}}for(i=n.length,s=n[i-1];i-- >0;)n[i]=s,s=t[s];return n}function $a(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:$a(t)}function cs(e){if(e)for(let t=0;te.__isSuspense;function jf(e,t){t&&t.pendingBranch?oe(e)?t.effects.push(...e):t.effects.push(e):Zc(e)}const Xe=Symbol.for("v-fgt"),rr=Symbol.for("v-txt"),je=Symbol.for("v-cmt"),br=Symbol.for("v-stc"),Wn=[];let Qe=null;function Ha(e=!1){Wn.push(Qe=e?null:[])}function Hf(){Wn.pop(),Qe=Wn[Wn.length-1]||null}let eo=1;function Fo(e,t=!1){eo+=e,e<0&&Qe&&t&&(Qe.hasOnce=!0)}function za(e){return e.dynamicChildren=eo>0?Qe||_n:null,Hf(),eo>0&&Qe&&Qe.push(e),e}function Ap(e,t,n,o,r,i){return za(Wa(e,t,n,o,r,i,!0))}function Ua(e,t,n,o,r){return za(qe(e,t,n,o,r,!0))}function $o(e){return e?e.__v_isVNode===!0:!1}function Jt(e,t){return e.type===t.type&&e.key===t.key}const Ka=({key:e})=>e??null,To=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?xe(e)||Ee(e)||ie(e)?{i:Ge,r:e,k:t,f:!!n}:e:null);function Wa(e,t=null,n=null,o=0,r=null,i=e===Xe?0:1,s=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ka(t),ref:t&&To(t),scopeId:aa,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Ge};return l?(Li(a,n),i&128&&e.normalize(a)):n&&(a.shapeFlag|=xe(n)?8:16),eo>0&&!s&&Qe&&(a.patchFlag>0||i&6)&&a.patchFlag!==32&&Qe.push(a),a}const qe=zf;function zf(e,t=null,n=null,o=0,r=null,i=!1){if((!e||e===ka)&&(e=je),$o(e)){const l=Ht(e,t,!0);return n&&Li(l,n),eo>0&&!i&&Qe&&(l.shapeFlag&6?Qe[Qe.indexOf(e)]=l:Qe.push(l)),l.patchFlag=-2,l}if(nd(e)&&(e=e.__vccOpts),t){t=Uf(t);let{class:l,style:a}=t;l&&!xe(l)&&(t.class=_i(l)),ye(a)&&(er(a)&&!oe(a)&&(a=Pe({},a)),t.style=yi(a))}const s=xe(e)?1:ja(e)?128:ha(e)?64:ye(e)?4:ie(e)?2:0;return Wa(e,t,n,o,r,s,i,!0)}function Uf(e){return e?er(e)||La(e)?Pe({},e):e:null}function Ht(e,t,n=!1,o=!1){const{props:r,ref:i,patchFlag:s,children:l,transition:a}=e,c=t?Wf(r||{},t):r,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Ka(c),ref:t&&t.ref?n&&i?oe(i)?i.concat(To(t)):[i,To(t)]:To(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Xe?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ht(e.ssContent),ssFallback:e.ssFallback&&Ht(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&o&&sn(u,a.clone(u)),u}function Kf(e=" ",t=0){return qe(rr,null,e,t)}function Tp(e="",t=!1){return t?(Ha(),Ua(je,null,e)):qe(je,null,e)}function vt(e){return e==null||typeof e=="boolean"?qe(je):oe(e)?qe(Xe,null,e.slice()):$o(e)?Bt(e):qe(rr,null,String(e))}function Bt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ht(e)}function Li(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(oe(t))n=16;else if(typeof t=="object")if(o&65){const r=t.default;r&&(r._c&&(r._d=!1),Li(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!La(t)?t._ctx=Ge:r===3&&Ge&&(Ge.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ie(t)?(t={default:t,_ctx:Ge},n=32):(t=String(t),o&64?(n=16,t=[Kf(t)]):n=8);e.children=t,e.shapeFlag|=n}function Wf(...e){const t={};for(let n=0;nMe||Ge;let Vo,Jr;{const e=Zo(),t=(n,o)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(o),i=>{r.length>1?r.forEach(s=>s(i)):r[0](i)}};Vo=t("__VUE_INSTANCE_SETTERS__",n=>Me=n),Jr=t("__VUE_SSR_SETTERS__",n=>Sn=n)}const co=e=>{const t=Me;return Vo(e),e.scope.on(),()=>{e.scope.off(),Vo(t)}},fs=()=>{Me&&Me.scope.off(),Vo(null)};function Ga(e){return e.vnode.shapeFlag&4}let Sn=!1;function Jf(e,t=!1,n=!1){t&&Jr(t);const{props:o,children:r}=e.vnode,i=Ga(e);Mf(e,o,i,t),Nf(e,r,n||t);const s=i?Zf(e,t):void 0;return t&&Jr(!1),s}function Zf(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,vf);const{setup:o}=n;if(o){kt();const r=e.setupContext=o.length>1?ed(e):null,i=co(e),s=so(o,e,0,[e.props,r]),l=Ol(s);if(Rt(),i(),(l||e.sp)&&!Un(e)&&Ti(e),l){if(s.then(fs,fs),t)return s.then(a=>{ds(e,a)}).catch(a=>{lo(a,e,0)});e.asyncDep=s}else ds(e,s)}else Qa(e)}function ds(e,t,n){ie(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ye(t)&&(e.setupState=oa(t)),Qa(e)}function Qa(e,t,n){const o=e.type;e.render||(e.render=o.render||bt);{const r=co(e);kt();try{bf(e)}finally{Rt(),r()}}}const Xf={get(e,t){return Be(e,"get",""),e[t]}};function ed(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Xf),slots:e.slots,emit:e.emit,expose:t}}function ir(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(oa(un(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Kn)return Kn[n](e)},has(t,n){return n in t||n in Kn}})):e.proxy}function td(e,t=!0){return ie(e)?e.displayName||e.name:e.name||t&&e.__name}function nd(e){return ie(e)&&"__vccOpts"in e}const k=(e,t)=>Wc(e,t,Sn);function P(e,t,n){try{Fo(-1);const o=arguments.length;return o===2?ye(t)&&!oe(t)?$o(t)?qe(e,null,[t]):qe(e,t):qe(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&$o(n)&&(n=[n]),qe(e,t,n))}finally{Fo(1)}}const od="3.5.26";let Zr;const hs=typeof window<"u"&&window.trustedTypes;if(hs)try{Zr=hs.createPolicy("vue",{createHTML:e=>e})}catch{}const Ya=Zr?e=>Zr.createHTML(e):e=>e,rd="http://www.w3.org/2000/svg",id="http://www.w3.org/1998/Math/MathML",wt=typeof document<"u"?document:null,gs=wt&&wt.createElement("template"),sd={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r=t==="svg"?wt.createElementNS(rd,e):t==="mathml"?wt.createElementNS(id,e):n?wt.createElement(e,{is:n}):wt.createElement(e);return e==="select"&&o&&o.multiple!=null&&r.setAttribute("multiple",o.multiple),r},createText:e=>wt.createTextNode(e),createComment:e=>wt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>wt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,r,i){const s=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{gs.innerHTML=Ya(o==="svg"?`${e}`:o==="mathml"?`${e}`:e);const l=gs.content;if(o==="svg"||o==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ot="transition",Mn="animation",En=Symbol("_vtc"),Ja={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Za=Pe({},va,Ja),ld=e=>(e.displayName="Transition",e.props=Za,e),jo=ld((e,{slots:t})=>P(af,Xa(e),t)),Gt=(e,t=[])=>{oe(e)?e.forEach(n=>n(...t)):e&&e(...t)},ms=e=>e?oe(e)?e.some(t=>t.length>1):e.length>1:!1;function Xa(e){const t={};for(const b in e)b in Ja||(t[b]=e[b]);if(e.css===!1)return t;const{name:n="v",type:o,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=i,appearActiveClass:c=s,appearToClass:u=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:g=`${n}-leave-to`}=e,p=ad(r),y=p&&p[0],S=p&&p[1],{onBeforeEnter:T,onEnter:_,onEnterCancelled:x,onLeave:A,onLeaveCancelled:B,onBeforeAppear:j=T,onAppear:H=_,onAppearCancelled:$=x}=t,N=(b,O,R,K)=>{b._enterCancelled=K,qt(b,O?u:l),qt(b,O?c:s),R&&R()},C=(b,O)=>{b._isLeaving=!1,qt(b,f),qt(b,g),qt(b,d),O&&O()},E=b=>(O,R)=>{const K=b?H:_,J=()=>N(O,b,R);Gt(K,[O,J]),ps(()=>{qt(O,b?a:i),mt(O,b?u:l),ms(K)||vs(O,o,y,J)})};return Pe(t,{onBeforeEnter(b){Gt(T,[b]),mt(b,i),mt(b,s)},onBeforeAppear(b){Gt(j,[b]),mt(b,a),mt(b,c)},onEnter:E(!1),onAppear:E(!0),onLeave(b,O){b._isLeaving=!0;const R=()=>C(b,O);mt(b,f),b._enterCancelled?(mt(b,d),Xr(b)):(Xr(b),mt(b,d)),ps(()=>{b._isLeaving&&(qt(b,f),mt(b,g),ms(A)||vs(b,o,S,R))}),Gt(A,[b,R])},onEnterCancelled(b){N(b,!1,void 0,!0),Gt(x,[b])},onAppearCancelled(b){N(b,!0,void 0,!0),Gt($,[b])},onLeaveCancelled(b){C(b),Gt(B,[b])}})}function ad(e){if(e==null)return null;if(ye(e))return[yr(e.enter),yr(e.leave)];{const t=yr(e);return[t,t]}}function yr(e){return dc(e)}function mt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[En]||(e[En]=new Set)).add(t)}function qt(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.remove(o));const n=e[En];n&&(n.delete(t),n.size||(e[En]=void 0))}function ps(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let ud=0;function vs(e,t,n,o){const r=e._endId=++ud,i=()=>{r===e._endId&&o()};if(n!=null)return setTimeout(i,n);const{type:s,timeout:l,propCount:a}=eu(e,t);if(!s)return o();const c=s+"end";let u=0;const f=()=>{e.removeEventListener(c,d),i()},d=g=>{g.target===e&&++u>=a&&f()};setTimeout(()=>{u(n[p]||"").split(", "),r=o(`${Ot}Delay`),i=o(`${Ot}Duration`),s=bs(r,i),l=o(`${Mn}Delay`),a=o(`${Mn}Duration`),c=bs(l,a);let u=null,f=0,d=0;t===Ot?s>0&&(u=Ot,f=s,d=i.length):t===Mn?c>0&&(u=Mn,f=c,d=a.length):(f=Math.max(s,c),u=f>0?s>c?Ot:Mn:null,d=u?u===Ot?i.length:a.length:0);const g=u===Ot&&/\b(?:transform|all)(?:,|$)/.test(o(`${Ot}Property`).toString());return{type:u,timeout:f,propCount:d,hasTransform:g}}function bs(e,t){for(;e.lengthys(n)+ys(e[o])))}function ys(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Xr(e){return(e?e.ownerDocument:document).body.offsetHeight}function cd(e,t,n){const o=e[En];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const _s=Symbol("_vod"),fd=Symbol("_vsh"),dd=Symbol(""),hd=/(?:^|;)\s*display\s*:/;function gd(e,t,n){const o=e.style,r=xe(n);let i=!1;if(n&&!r){if(t)if(xe(t))for(const s of t.split(";")){const l=s.slice(0,s.indexOf(":")).trim();n[l]==null&&Po(o,l,"")}else for(const s in t)n[s]==null&&Po(o,s,"");for(const s in n)s==="display"&&(i=!0),Po(o,s,n[s])}else if(r){if(t!==n){const s=o[dd];s&&(n+=";"+s),o.cssText=n,i=hd.test(n)}}else t&&e.removeAttribute("style");_s in e&&(e[_s]=i?o.display:"",e[fd]&&(o.display="none"))}const ws=/\s*!important$/;function Po(e,t,n){if(oe(n))n.forEach(o=>Po(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=md(e,t);ws.test(n)?e.setProperty(ln(o),n.replace(ws,""),"important"):e[o]=n}}const xs=["Webkit","Moz","ms"],_r={};function md(e,t){const n=_r[t];if(n)return n;let o=tt(t);if(o!=="filter"&&o in e)return _r[t]=o;o=Jo(o);for(let r=0;rwr||(_d.then(()=>wr=0),wr=Date.now());function xd(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;at(Cd(o,n.value),t,5,[o])};return n.value=e,n.attached=wd(),n}function Cd(e,t){if(oe(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(o=>r=>!r._stopped&&o&&o(r))}else return t}const As=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Sd=(e,t,n,o,r,i)=>{const s=r==="svg";t==="class"?cd(e,o,s):t==="style"?gd(e,n,o):Wo(t)?vi(t)||bd(e,t,n,o,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Ed(e,t,o,s))?(Es(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ss(e,t,o,s,i,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!xe(o))?Es(e,tt(t),o,i,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),Ss(e,t,o,s))};function Ed(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&As(t)&&ie(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return As(t)&&xe(n)?!1:t in e}const tu=new WeakMap,nu=new WeakMap,Ho=Symbol("_moveCb"),Ts=Symbol("_enterCb"),kd=e=>(delete e.props.mode,e),Rd=kd({name:"TransitionGroup",props:Pe({},Za,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Ce(),o=pa();let r,i;return Sa(()=>{if(!r.length)return;const s=e.moveClass||`${e.name||"v"}-move`;if(!Md(r[0].el,n.vnode.el,s)){r=[];return}r.forEach(Td),r.forEach(Pd);const l=r.filter(Od);Xr(n.vnode.el),l.forEach(a=>{const c=a.el,u=c.style;mt(c,s),u.transform=u.webkitTransform=u.transitionDuration="";const f=c[Ho]=d=>{d&&d.target!==c||(!d||d.propertyName.endsWith("transform"))&&(c.removeEventListener("transitionend",f),c[Ho]=null,qt(c,s))};c.addEventListener("transitionend",f)}),r=[]}),()=>{const s=se(e),l=Xa(s);let a=s.tag||Xe;if(r=[],i)for(let c=0;c{l.split(/\s+/).forEach(a=>a&&o.classList.remove(a))}),n.split(/\s+/).forEach(l=>l&&o.classList.add(l)),o.style.display="none";const i=t.nodeType===1?t:t.parentNode;i.appendChild(o);const{hasTransform:s}=eu(o);return i.removeChild(o),s}const qd=["ctrl","shift","alt","meta"],Ld={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>qd.some(n=>e[`${n}Key`]&&!t.includes(n))},Pp=(e,t)=>{const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=((r,...i)=>{for(let s=0;s{const t=Nd().createApp(...e),{mount:n}=t;return t.mount=o=>{const r=Dd(o);if(!r)return;const i=t._component;!ie(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const s=n(r,!1,Bd(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),s},t});function Bd(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Dd(e){return xe(e)?document.querySelector(e):e}function Tn(e,t,n,o){return Object.defineProperty(e,t,{get:n,set:o,enumerable:!0}),e}const zt=ae(!1);let ei;function Fd(e,t){const n=/(edg|edge|edga|edgios)\/([\w.]+)/.exec(e)||/(opr)[\/]([\w.]+)/.exec(e)||/(vivaldi)[\/]([\w.]+)/.exec(e)||/(chrome|crios)[\/]([\w.]+)/.exec(e)||/(version)(applewebkit)[\/]([\w.]+).*(safari)[\/]([\w.]+)/.exec(e)||/(webkit)[\/]([\w.]+).*(version)[\/]([\w.]+).*(safari)[\/]([\w.]+)/.exec(e)||/(firefox|fxios)[\/]([\w.]+)/.exec(e)||/(webkit)[\/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[\/]([\w.]+)/.exec(e)||[];return{browser:n[5]||n[3]||n[1]||"",version:n[4]||n[2]||"0",platform:t[0]||""}}function $d(e){return/(ipad)/.exec(e)||/(ipod)/.exec(e)||/(windows phone)/.exec(e)||/(iphone)/.exec(e)||/(kindle)/.exec(e)||/(silk)/.exec(e)||/(android)/.exec(e)||/(win)/.exec(e)||/(mac)/.exec(e)||/(linux)/.exec(e)||/(cros)/.exec(e)||/(playbook)/.exec(e)||/(bb)/.exec(e)||/(blackberry)/.exec(e)||[]}const ru="ontouchstart"in window||window.navigator.maxTouchPoints>0;function Vd(e){const t=e.toLowerCase(),n=$d(t),o=Fd(t,n),r={mobile:!1,desktop:!1,cordova:!1,capacitor:!1,nativeMobile:!1,electron:!1,bex:!1,linux:!1,mac:!1,win:!1,cros:!1,chrome:!1,firefox:!1,opera:!1,safari:!1,vivaldi:!1,edge:!1,edgeChromium:!1,ie:!1,webkit:!1,android:!1,ios:!1,ipad:!1,iphone:!1,ipod:!1,kindle:!1,winphone:!1,blackberry:!1,playbook:!1,silk:!1};o.browser&&(r[o.browser]=!0,r.version=o.version,r.versionNumber=parseInt(o.version,10)),o.platform&&(r[o.platform]=!0);const i=r.android||r.ios||r.bb||r.blackberry||r.ipad||r.iphone||r.ipod||r.kindle||r.playbook||r.silk||r["windows phone"];if(i===!0||t.indexOf("mobile")!==-1?r.mobile=!0:r.desktop=!0,r["windows phone"]&&(r.winphone=!0,delete r["windows phone"]),r.edga||r.edgios||r.edg?(r.edge=!0,o.browser="edge"):r.crios?(r.chrome=!0,o.browser="chrome"):r.fxios&&(r.firefox=!0,o.browser="firefox"),(r.ipod||r.ipad||r.iphone)&&(r.ios=!0),r.vivaldi&&(o.browser="vivaldi",r.vivaldi=!0),(r.chrome||r.opr||r.safari||r.vivaldi||r.mobile===!0&&r.ios!==!0&&i!==!0)&&(r.webkit=!0),r.opr&&(o.browser="opera",r.opera=!0),r.safari&&(r.blackberry||r.bb?(o.browser="blackberry",r.blackberry=!0):r.playbook?(o.browser="playbook",r.playbook=!0):r.android?(o.browser="android",r.android=!0):r.kindle?(o.browser="kindle",r.kindle=!0):r.silk&&(o.browser="silk",r.silk=!0)),r.name=o.browser,r.platform=o.platform,t.indexOf("electron")!==-1)r.electron=!0;else if(document.location.href.indexOf("-extension://")!==-1)r.bex=!0;else{if(window.Capacitor!==void 0?(r.capacitor=!0,r.nativeMobile=!0,r.nativeMobileWrapper="capacitor"):(window._cordovaNative!==void 0||window.cordova!==void 0)&&(r.cordova=!0,r.nativeMobile=!0,r.nativeMobileWrapper="cordova"),zt.value===!0&&(ei={is:{...r}}),ru===!0&&r.mac===!0&&(r.desktop===!0&&r.safari===!0||r.nativeMobile===!0&&r.android!==!0&&r.ios!==!0&&r.ipad!==!0)){delete r.mac,delete r.desktop;const s=Math.min(window.innerHeight,window.innerWidth)>414?"ipad":"iphone";Object.assign(r,{mobile:!0,ios:!0,platform:s,[s]:!0})}r.mobile!==!0&&window.navigator.userAgentData&&window.navigator.userAgentData.mobile&&(delete r.desktop,r.mobile=!0)}return r}const Os=navigator.userAgent||navigator.vendor||window.opera,jd={has:{touch:!1,webStorage:!1},within:{iframe:!1}},Te={userAgent:Os,is:Vd(Os),has:{touch:ru},within:{iframe:window.self!==window.top}},ti={install(e){const{$q:t}=e;zt.value===!0?(e.onSSRHydrated.push(()=>{Object.assign(t.platform,Te),zt.value=!1}),t.platform=an(this)):t.platform=this}};{let e;Tn(Te.has,"webStorage",()=>{if(e!==void 0)return e;try{if(window.localStorage)return e=!0,!0}catch{}return e=!1,!1}),Object.assign(ti,Te),zt.value===!0&&(Object.assign(ti,ei,jd),ei=null)}function Le(e){return un(ao(e))}function Hd(e){return un(e)}const sr=(e,t)=>{const n=an(e);for(const o in e)Tn(t,o,()=>n[o],r=>{n[o]=r});return t},Ue={hasPassive:!1,passiveCapture:!0,notPassiveCapture:!0};try{const e=Object.defineProperty({},"passive",{get(){Object.assign(Ue,{hasPassive:!0,passive:{passive:!0},notPassive:{passive:!1},passiveCapture:{passive:!0,capture:!0},notPassiveCapture:{passive:!1,capture:!0}})}});window.addEventListener("qtest",null,e),window.removeEventListener("qtest",null,e)}catch{}function to(){}function Op(e){return e.button===0}function zd(e){return e.touches&&e.touches[0]?e=e.touches[0]:e.changedTouches&&e.changedTouches[0]?e=e.changedTouches[0]:e.targetTouches&&e.targetTouches[0]&&(e=e.targetTouches[0]),{top:e.clientY,left:e.clientX}}function Ud(e){if(e.path)return e.path;if(e.composedPath)return e.composedPath();const t=[];let n=e.target;for(;n;){if(t.push(n),n.tagName==="HTML")return t.push(document),t.push(window),t;n=n.parentElement}}function zo(e){e.stopPropagation()}function $t(e){e.cancelable!==!1&&e.preventDefault()}function et(e){e.cancelable!==!1&&e.preventDefault(),e.stopPropagation()}function Mp(e,t){if(e===void 0||t===!0&&e.__dragPrevented===!0)return;const n=t===!0?o=>{o.__dragPrevented=!0,o.addEventListener("dragstart",$t,Ue.notPassiveCapture)}:o=>{delete o.__dragPrevented,o.removeEventListener("dragstart",$t,Ue.notPassiveCapture)};e.querySelectorAll("a, img").forEach(n)}function Kd(e,t,n){const o=`__q_${t}_evt`;e[o]=e[o]!==void 0?e[o].concat(n):n,n.forEach(r=>{r[0].addEventListener(r[1],e[r[2]],Ue[r[3]])})}function Wd(e,t){const n=`__q_${t}_evt`;e[n]!==void 0&&(e[n].forEach(o=>{o[0].removeEventListener(o[1],e[o[2]],Ue[o[3]])}),e[n]=void 0)}function iu(e,t=250,n){let o=null;function r(){const i=arguments,s=()=>{o=null,e.apply(this,i)};o!==null&&clearTimeout(o),o=setTimeout(s,t)}return r.cancel=()=>{o!==null&&clearTimeout(o)},r}const xr=["sm","md","lg","xl"],{passive:Ms}=Ue,Gd=sr({width:0,height:0,name:"xs",sizes:{sm:600,md:1024,lg:1440,xl:1920},lt:{sm:!0,md:!0,lg:!0,xl:!0},gt:{xs:!1,sm:!1,md:!1,lg:!1},xs:!0,sm:!1,md:!1,lg:!1,xl:!1},{setSizes:to,setDebounce:to,install({$q:e,onSSRHydrated:t}){if(e.screen=this,this.__installed===!0){e.config.screen!==void 0&&(e.config.screen.bodyClasses===!1?document.body.classList.remove(`screen--${this.name}`):this.__update(!0));return}const{visualViewport:n}=window,o=n||window,r=document.scrollingElement||document.documentElement,i=n===void 0||Te.is.mobile===!0?()=>[Math.max(window.innerWidth,r.clientWidth),Math.max(window.innerHeight,r.clientHeight)]:()=>[n.width*n.scale+window.innerWidth-r.clientWidth,n.height*n.scale+window.innerHeight-r.clientHeight],s=e.config.screen?.bodyClasses===!0;this.__update=f=>{const[d,g]=i();if(g!==this.height&&(this.height=g),d!==this.width)this.width=d;else if(f!==!0)return;let p=this.sizes;this.gt.xs=d>=p.sm,this.gt.sm=d>=p.md,this.gt.md=d>=p.lg,this.gt.lg=d>=p.xl,this.lt.sm=d{xr.forEach(d=>{f[d]!==void 0&&(a[d]=f[d])})},this.setDebounce=f=>{c=f};const u=()=>{const f=getComputedStyle(document.body);f.getPropertyValue("--q-size-sm")&&xr.forEach(d=>{this.sizes[d]=parseInt(f.getPropertyValue(`--q-size-${d}`),10)}),this.setSizes=d=>{xr.forEach(g=>{d[g]&&(this.sizes[g]=d[g])}),this.__update(!0)},this.setDebounce=d=>{l!==void 0&&o.removeEventListener("resize",l,Ms),l=d>0?iu(this.__update,d):this.__update,o.addEventListener("resize",l,Ms)},this.setDebounce(c),Object.keys(a).length!==0?(this.setSizes(a),a=void 0):this.__update(),s===!0&&this.name==="xs"&&document.body.classList.add("screen--xs")};zt.value===!0?t.push(u):u()}}),Ie=sr({isActive:!1,mode:!1},{__media:void 0,set(e){Ie.mode=e,e==="auto"?(Ie.__media===void 0&&(Ie.__media=window.matchMedia("(prefers-color-scheme: dark)"),Ie.__updateMedia=()=>{Ie.set("auto")},Ie.__media.addListener(Ie.__updateMedia)),e=Ie.__media.matches):Ie.__media!==void 0&&(Ie.__media.removeListener(Ie.__updateMedia),Ie.__media=void 0),Ie.isActive=e===!0,document.body.classList.remove(`body--${e===!0?"light":"dark"}`),document.body.classList.add(`body--${e===!0?"dark":"light"}`)},toggle(){Ie.set(Ie.isActive===!1)},install({$q:e,ssrContext:t}){const n=e.config.dark;e.dark=this,this.__installed!==!0&&this.set(n!==void 0?n:!1)}});function Qd(e,t,n=document.body){if(typeof e!="string")throw new TypeError("Expected a string as propName");if(typeof t!="string")throw new TypeError("Expected a string as value");if(!(n instanceof Element))throw new TypeError("Expected a DOM element");n.style.setProperty(`--q-${e}`,t)}let su=!1;function Yd(e){su=e.isComposing===!0}function lu(e){return su===!0||e!==Object(e)||e.isComposing===!0||e.qKeyEvent===!0}function no(e,t){return lu(e)===!0?!1:[].concat(t).includes(e.keyCode)}function au(e){if(e.ios===!0)return"ios";if(e.android===!0)return"android"}function Jd({is:e,has:t,within:n},o){const r=[e.desktop===!0?"desktop":"mobile",`${t.touch===!1?"no-":""}touch`];if(e.mobile===!0){const i=au(e);i!==void 0&&r.push("platform-"+i)}if(e.nativeMobile===!0){const i=e.nativeMobileWrapper;r.push(i),r.push("native-mobile"),e.ios===!0&&(o[i]===void 0||o[i].iosStatusBarPadding!==!1)&&r.push("q-ios-padding")}else e.electron===!0?r.push("electron"):e.bex===!0&&r.push("bex");return n.iframe===!0&&r.push("within-iframe"),r}function Zd(){const{is:e}=Te,t=document.body.className,n=new Set(t.replace(/ {2}/g," ").split(" "));if(e.nativeMobile!==!0&&e.electron!==!0&&e.bex!==!0){if(e.desktop===!0)n.delete("mobile"),n.delete("platform-ios"),n.delete("platform-android"),n.add("desktop");else if(e.mobile===!0){n.delete("desktop"),n.add("mobile"),n.delete("platform-ios"),n.delete("platform-android");const r=au(e);r!==void 0&&n.add(`platform-${r}`)}}Te.has.touch===!0&&(n.delete("no-touch"),n.add("touch")),Te.within.iframe===!0&&n.add("within-iframe");const o=Array.from(n).join(" ");t!==o&&(document.body.className=o)}function Xd(e){for(const t in e)Qd(t,e[t])}const eh={install(e){if(this.__installed!==!0){if(zt.value===!0)Zd();else{const{$q:t}=e;t.config.brand!==void 0&&Xd(t.config.brand);const n=Jd(Te,t.config);document.body.classList.add.apply(document.body.classList,n)}Te.is.ios===!0&&document.body.addEventListener("touchstart",to),window.addEventListener("keydown",Yd,!0)}}},uu=()=>!0;function th(e){return typeof e=="string"&&e!==""&&e!=="/"&&e!=="#/"}function nh(e){return e.startsWith("#")===!0&&(e=e.substring(1)),e.startsWith("/")===!1&&(e="/"+e),e.endsWith("/")===!0&&(e=e.substring(0,e.length-1)),"#"+e}function oh(e){if(e.backButtonExit===!1)return()=>!1;if(e.backButtonExit==="*")return uu;const t=["#/"];return Array.isArray(e.backButtonExit)===!0&&t.push(...e.backButtonExit.filter(th).map(nh)),()=>t.includes(window.location.hash)}const ni={__history:[],add:to,remove:to,install({$q:e}){if(this.__installed===!0)return;const{cordova:t,capacitor:n}=Te.is;if(t!==!0&&n!==!0)return;const o=e.config[t===!0?"cordova":"capacitor"];if(o?.backButton===!1||n===!0&&(window.Capacitor===void 0||window.Capacitor.Plugins.App===void 0))return;this.add=s=>{s.condition===void 0&&(s.condition=uu),this.__history.push(s)},this.remove=s=>{const l=this.__history.indexOf(s);l>=0&&this.__history.splice(l,1)};const r=oh(Object.assign({backButtonExit:!0},o)),i=()=>{if(this.__history.length){const s=this.__history[this.__history.length-1];s.condition()===!0&&(this.__history.pop(),s.handler())}else r()===!0?navigator.app.exitApp():window.history.back()};t===!0?document.addEventListener("deviceready",()=>{document.addEventListener("backbutton",i,!1)}):window.Capacitor.Plugins.App.addListener("backButton",i)}},qs={isoName:"en-US",nativeName:"English (US)",label:{clear:"Clear",ok:"OK",cancel:"Cancel",close:"Close",set:"Set",select:"Select",reset:"Reset",remove:"Remove",update:"Update",create:"Create",search:"Search",filter:"Filter",refresh:"Refresh",expand:e=>e?`Expand "${e}"`:"Expand",collapse:e=>e?`Collapse "${e}"`:"Collapse"},date:{days:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),daysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),firstDayOfWeek:0,format24h:!1,pluralDay:"days",prevMonth:"Previous month",nextMonth:"Next month",prevYear:"Previous year",nextYear:"Next year",today:"Today",prevRangeYears:e=>`Previous ${e} years`,nextRangeYears:e=>`Next ${e} years`},table:{noData:"No data available",noResults:"No matching records found",loading:"Loading...",selectedRecords:e=>e===1?"1 record selected.":(e===0?"No":e)+" records selected.",recordsPerPage:"Records per page:",allRows:"All",pagination:(e,t,n)=>e+"-"+t+" of "+n,columns:"Columns"},pagination:{first:"First page",prev:"Previous page",next:"Next page",last:"Last page"},editor:{url:"URL",bold:"Bold",italic:"Italic",strikethrough:"Strikethrough",underline:"Underline",unorderedList:"Unordered List",orderedList:"Ordered List",subscript:"Subscript",superscript:"Superscript",hyperlink:"Hyperlink",toggleFullscreen:"Toggle Fullscreen",quote:"Quote",left:"Left align",center:"Center align",right:"Right align",justify:"Justify align",print:"Print",outdent:"Decrease indentation",indent:"Increase indentation",removeFormat:"Remove formatting",formatting:"Formatting",fontSize:"Font Size",align:"Align",hr:"Insert Horizontal Rule",undo:"Undo",redo:"Redo",heading1:"Heading 1",heading2:"Heading 2",heading3:"Heading 3",heading4:"Heading 4",heading5:"Heading 5",heading6:"Heading 6",paragraph:"Paragraph",code:"Code",size1:"Very small",size2:"A bit small",size3:"Normal",size4:"Medium-large",size5:"Big",size6:"Very big",size7:"Maximum",defaultFont:"Default Font",viewSource:"View Source"},tree:{noNodes:"No nodes available",noResults:"No matching nodes found"}};function Ls(){const e=Array.isArray(navigator.languages)===!0&&navigator.languages.length!==0?navigator.languages[0]:navigator.language;if(typeof e=="string")return e.split(/[-_]/).map((t,n)=>n===0?t.toLowerCase():n>1||t.length<4?t.toUpperCase():t[0].toUpperCase()+t.slice(1).toLowerCase()).join("-")}const Dt=sr({__qLang:{}},{getLocale:Ls,set(e=qs,t){const n={...e,rtl:e.rtl===!0,getLocale:Ls};{if(n.set=Dt.set,Dt.__langConfig===void 0||Dt.__langConfig.noHtmlAttrs!==!0){const o=document.documentElement;o.setAttribute("dir",n.rtl===!0?"rtl":"ltr"),o.setAttribute("lang",n.isoName)}Object.assign(Dt.__qLang,n)}},install({$q:e,lang:t,ssrContext:n}){e.lang=Dt.__qLang,Dt.__langConfig=e.config.lang,this.__installed===!0?t!==void 0&&this.set(t):(this.props=new Proxy(this.__qLang,{get(){return Reflect.get(...arguments)},ownKeys(o){return Reflect.ownKeys(o).filter(r=>r!=="set"&&r!=="getLocale")}}),this.set(t||qs))}}),rh={name:"material-icons",type:{positive:"check_circle",negative:"warning",info:"info",warning:"priority_high"},arrow:{up:"arrow_upward",right:"arrow_forward",down:"arrow_downward",left:"arrow_back",dropdown:"arrow_drop_down"},chevron:{left:"chevron_left",right:"chevron_right"},colorPicker:{spectrum:"gradient",tune:"tune",palette:"style"},pullToRefresh:{icon:"refresh"},carousel:{left:"chevron_left",right:"chevron_right",up:"keyboard_arrow_up",down:"keyboard_arrow_down",navigationIcon:"lens"},chip:{remove:"cancel",selected:"check"},datetime:{arrowLeft:"chevron_left",arrowRight:"chevron_right",now:"access_time",today:"today"},editor:{bold:"format_bold",italic:"format_italic",strikethrough:"strikethrough_s",underline:"format_underlined",unorderedList:"format_list_bulleted",orderedList:"format_list_numbered",subscript:"vertical_align_bottom",superscript:"vertical_align_top",hyperlink:"link",toggleFullscreen:"fullscreen",quote:"format_quote",left:"format_align_left",center:"format_align_center",right:"format_align_right",justify:"format_align_justify",print:"print",outdent:"format_indent_decrease",indent:"format_indent_increase",removeFormat:"format_clear",formatting:"text_format",fontSize:"format_size",align:"format_align_left",hr:"remove",undo:"undo",redo:"redo",heading:"format_size",code:"code",size:"format_size",font:"font_download",viewSource:"code"},expansionItem:{icon:"keyboard_arrow_down",denseIcon:"arrow_drop_down"},fab:{icon:"add",activeIcon:"close"},field:{clear:"cancel",error:"error"},pagination:{first:"first_page",prev:"keyboard_arrow_left",next:"keyboard_arrow_right",last:"last_page"},rating:{icon:"grade"},stepper:{done:"check",active:"edit",error:"warning"},tabs:{left:"chevron_left",right:"chevron_right",up:"keyboard_arrow_up",down:"keyboard_arrow_down"},table:{arrowUp:"arrow_upward",warning:"warning",firstPage:"first_page",prevPage:"chevron_left",nextPage:"chevron_right",lastPage:"last_page"},tree:{icon:"play_arrow"},uploader:{done:"done",clear:"clear",add:"add_box",upload:"cloud_upload",removeQueue:"clear_all",removeUploaded:"done_all"}},Uo=sr({iconMapFn:null,__qIconSet:{}},{set(e,t){const n={...e};n.set=Uo.set,Object.assign(Uo.__qIconSet,n)},install({$q:e,iconSet:t,ssrContext:n}){e.config.iconMapFn!==void 0&&(this.iconMapFn=e.config.iconMapFn),e.iconSet=this.__qIconSet,Tn(e,"iconMapFn",()=>this.iconMapFn,o=>{this.iconMapFn=o}),this.__installed===!0?t!==void 0&&this.set(t):(this.props=new Proxy(this.__qIconSet,{get(){return Reflect.get(...arguments)},ownKeys(o){return Reflect.ownKeys(o).filter(r=>r!=="set")}}),this.set(t||rh))}}),ih="_q_",qp="_q_l_",Lp="_q_pc_",sh="_q_fo_";function Ip(){}const Ko={};let cu=!1;function lh(){cu=!0}function Cr(e,t){if(e===t)return!0;if(e!==null&&t!==null&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;let n,o;if(e.constructor===Array){if(n=e.length,n!==t.length)return!1;for(o=n;o--!==0;)if(Cr(e[o],t[o])!==!0)return!1;return!0}if(e.constructor===Map){if(e.size!==t.size)return!1;let i=e.entries();for(o=i.next();o.done!==!0;){if(t.has(o.value[0])!==!0)return!1;o=i.next()}for(i=e.entries(),o=i.next();o.done!==!0;){if(Cr(o.value[1],t.get(o.value[0]))!==!0)return!1;o=i.next()}return!0}if(e.constructor===Set){if(e.size!==t.size)return!1;const i=e.entries();for(o=i.next();o.done!==!0;){if(t.has(o.value[0])!==!0)return!1;o=i.next()}return!0}if(e.buffer!=null&&e.buffer.constructor===ArrayBuffer){if(n=e.length,n!==t.length)return!1;for(o=n;o--!==0;)if(e[o]!==t[o])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();const r=Object.keys(e).filter(i=>e[i]!==void 0);if(n=r.length,n!==Object.keys(t).filter(i=>t[i]!==void 0).length)return!1;for(o=n;o--!==0;){const i=r[o];if(Cr(e[i],t[i])!==!0)return!1}return!0}return e!==e&&t!==t}function ot(e){return e!==null&&typeof e=="object"&&Array.isArray(e)!==!0}function Np(e){return Object.prototype.toString.call(e)==="[object Date]"}function Bp(e){return Object.prototype.toString.call(e)==="[object RegExp]"}const Is=[ti,eh,Ie,Gd,ni,Dt,Uo];function fu(e,t){const n=ou(e);n.config.globalProperties=t.config.globalProperties;const{reload:o,...r}=t._context;return Object.assign(n._context,r),n}function Ns(e,t){t.forEach(n=>{n.install(e),n.__installed=!0})}function ah(e,t,n){e.config.globalProperties.$q=n.$q,e.provide(ih,n.$q),Ns(n,Is),t.components!==void 0&&Object.values(t.components).forEach(o=>{ot(o)===!0&&o.name!==void 0&&e.component(o.name,o)}),t.directives!==void 0&&Object.values(t.directives).forEach(o=>{ot(o)===!0&&o.name!==void 0&&e.directive(o.name,o)}),t.plugins!==void 0&&Ns(n,Object.values(t.plugins).filter(o=>typeof o.install=="function"&&Is.includes(o)===!1)),zt.value===!0&&(n.$q.onSSRHydrated=()=>{n.onSSRHydrated.forEach(o=>{o()}),n.$q.onSSRHydrated=()=>{}})}const uh=function(e,t={}){const n={version:"2.18.6"};cu===!1?(t.config!==void 0&&Object.assign(Ko,t.config),n.config={...Ko},lh()):n.config=t.config||{},ah(e,t,{parentApp:e,$q:n,lang:t.lang,iconSet:t.iconSet,onSSRHydrated:[]})},ch={name:"Quasar",version:"2.18.6",install:uh,lang:Dt,iconSet:Uo},fh=ao({__name:"App",setup(e){return(t,n)=>{const o=pf("router-view");return Ha(),Ua(o)}}}),Ii=e=>e,Dp=Ii,dh=Ii,hh=Ii;let du;const lr=e=>du=e,hu=Symbol();function oi(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Gn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Gn||(Gn={}));function gh(){const e=Fl(!0),t=e.run(()=>ae({}));let n=[],o=[];const r=un({install(i){lr(r),r._a=i,i.provide(hu,r),i.config.globalProperties.$pinia=r,o.forEach(s=>n.push(s)),o=[]},use(i){return this._a?n.push(i):o.push(i),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return r}const gu=()=>{};function Bs(e,t,n,o=gu){e.add(t);const r=()=>{e.delete(t)&&o()};return!n&&$l()&&_c(r),r}function gn(e,...t){e.forEach(n=>{n(...t)})}const mh=e=>e(),Ds=Symbol(),Sr=Symbol();function ri(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,o)=>e.set(o,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const o=t[n],r=e[n];oi(r)&&oi(o)&&e.hasOwnProperty(n)&&!Ee(o)&&!Et(o)?e[n]=ri(r,o):e[n]=o}return e}const ph=Symbol();function vh(e){return!oi(e)||!Object.prototype.hasOwnProperty.call(e,ph)}const{assign:Lt}=Object;function bh(e){return!!(Ee(e)&&e.effect)}function yh(e,t,n,o){const{state:r,actions:i,getters:s}=t,l=n.state.value[e];let a;function c(){l||(n.state.value[e]=r?r():{});const u=Hc(n.state.value[e]);return Lt(u,i,Object.keys(s||{}).reduce((f,d)=>(f[d]=un(k(()=>{lr(n);const g=n._s.get(e);return s[d].call(g,g)})),f),{}))}return a=mu(e,c,t,n,o,!0),a}function mu(e,t,n={},o,r,i){let s;const l=Lt({actions:{}},n),a={deep:!0};let c,u,f=new Set,d=new Set,g;const p=o.state.value[e];!i&&!p&&(o.state.value[e]={}),ae({});let y;function S($){let N;c=u=!1,typeof $=="function"?($(o.state.value[e]),N={type:Gn.patchFunction,storeId:e,events:g}):(ri(o.state.value[e],$),N={type:Gn.patchObject,payload:$,storeId:e,events:g});const C=y=Symbol();Ke().then(()=>{y===C&&(c=!0)}),u=!0,gn(f,N,o.state.value[e])}const T=i?function(){const{state:N}=n,C=N?N():{};this.$patch(E=>{Lt(E,C)})}:gu;function _(){s.stop(),f.clear(),d.clear(),o._s.delete(e)}const x=($,N="")=>{if(Ds in $)return $[Sr]=N,$;const C=function(){lr(o);const E=Array.from(arguments),b=new Set,O=new Set;function R(V){b.add(V)}function K(V){O.add(V)}gn(d,{args:E,name:C[Sr],store:B,after:R,onError:K});let J;try{J=$.apply(this&&this.$id===e?this:B,E)}catch(V){throw gn(O,V),V}return J instanceof Promise?J.then(V=>(gn(b,V),V)).catch(V=>(gn(O,V),Promise.reject(V))):(gn(b,J),J)};return C[Ds]=!0,C[Sr]=N,C},A={_p:o,$id:e,$onAction:Bs.bind(null,d),$patch:S,$reset:T,$subscribe($,N={}){const C=Bs(f,$,N.detached,()=>E()),E=s.run(()=>be(()=>o.state.value[e],b=>{(N.flush==="sync"?u:c)&&$({storeId:e,type:Gn.direct,events:g},b)},Lt({},a,N)));return C},$dispose:_},B=an(A);o._s.set(e,B);const H=(o._a&&o._a.runWithContext||mh)(()=>o._e.run(()=>(s=Fl()).run(()=>t({action:x}))));for(const $ in H){const N=H[$];if(Ee(N)&&!bh(N)||Et(N))i||(p&&vh(N)&&(Ee(N)?N.value=p[$]:ri(N,p[$])),o.state.value[e][$]=N);else if(typeof N=="function"){const C=x(N,$);H[$]=C,l.actions[$]=N}}return Lt(B,H),Lt(se(B),H),Object.defineProperty(B,"$state",{get:()=>o.state.value[e],set:$=>{S(N=>{Lt(N,$)})}}),o._p.forEach($=>{Lt(B,s.run(()=>$({store:B,app:o._a,pinia:o,options:l})))}),p&&i&&n.hydrate&&n.hydrate(B.$state,p),c=!0,u=!0,B}function Fp(e,t,n){let o;const r=typeof t=="function";o=r?n:t;function i(s,l){const a=ef();return s=s||(a?st(hu,null):null),s&&lr(s),s=du,s._s.has(e)||(r?mu(e,t,o,s):yh(e,o,s)),s._s.get(e)}return i.$id=e,i}const Er=hh(()=>gh());const yn=typeof document<"u";function pu(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function _h(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&pu(e.default)}const de=Object.assign;function kr(e,t){const n={};for(const o in t){const r=t[o];n[o]=ut(r)?r.map(e):e(r)}return n}const Qn=()=>{},ut=Array.isArray;function Fs(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}const vu=/#/g,wh=/&/g,xh=/\//g,Ch=/=/g,Sh=/\?/g,bu=/\+/g,Eh=/%5B/g,kh=/%5D/g,yu=/%5E/g,Rh=/%60/g,_u=/%7B/g,Ah=/%7C/g,wu=/%7D/g,Th=/%20/g;function Ni(e){return e==null?"":encodeURI(""+e).replace(Ah,"|").replace(Eh,"[").replace(kh,"]")}function Ph(e){return Ni(e).replace(_u,"{").replace(wu,"}").replace(yu,"^")}function ii(e){return Ni(e).replace(bu,"%2B").replace(Th,"+").replace(vu,"%23").replace(wh,"%26").replace(Rh,"`").replace(_u,"{").replace(wu,"}").replace(yu,"^")}function Oh(e){return ii(e).replace(Ch,"%3D")}function Mh(e){return Ni(e).replace(vu,"%23").replace(Sh,"%3F")}function qh(e){return Mh(e).replace(xh,"%2F")}function oo(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Lh=/\/$/,Ih=e=>e.replace(Lh,"");function Rr(e,t,n="/"){let o,r={},i="",s="";const l=t.indexOf("#");let a=t.indexOf("?");return a=l>=0&&a>l?-1:a,a>=0&&(o=t.slice(0,a),i=t.slice(a,l>0?l:t.length),r=e(i.slice(1))),l>=0&&(o=o||t.slice(0,l),s=t.slice(l,t.length)),o=Fh(o??t,n),{fullPath:o+i+s,path:o,query:r,hash:oo(s)}}function Nh(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function $s(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Bh(e,t,n){const o=t.matched.length-1,r=n.matched.length-1;return o>-1&&o===r&&kn(t.matched[o],n.matched[r])&&xu(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function kn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xu(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Dh(e[n],t[n]))return!1;return!0}function Dh(e,t){return ut(e)?Vs(e,t):ut(t)?Vs(t,e):e?.valueOf()===t?.valueOf()}function Vs(e,t){return ut(t)?e.length===t.length&&e.every((n,o)=>n===t[o]):e.length===1&&e[0]===t}function Fh(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),o=e.split("/"),r=o[o.length-1];(r===".."||r===".")&&o.push("");let i=n.length-1,s,l;for(s=0;s1&&i--;else break;return n.slice(0,i).join("/")+"/"+o.slice(s).join("/")}const Mt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let si=(function(e){return e.pop="pop",e.push="push",e})({}),Ar=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function $h(e){if(!e)if(yn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Ih(e)}const Vh=/^[^#]+#/;function jh(e,t){return e.replace(Vh,"#")+t}function Hh(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}const ar=()=>({left:window.scrollX,top:window.scrollY});function zh(e){let t;if("el"in e){const n=e.el,o=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=Hh(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function js(e,t){return(history.state?history.state.position-t:-1)+e}const li=new Map;function Uh(e,t){li.set(e,t)}function Kh(e){const t=li.get(e);return li.delete(e),t}function Wh(e){return typeof e=="string"||e&&typeof e=="object"}function Cu(e){return typeof e=="string"||typeof e=="symbol"}let Se=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({});const Su=Symbol("");Se.MATCHER_NOT_FOUND+"",Se.NAVIGATION_GUARD_REDIRECT+"",Se.NAVIGATION_ABORTED+"",Se.NAVIGATION_CANCELLED+"",Se.NAVIGATION_DUPLICATED+"";function Rn(e,t){return de(new Error,{type:e,[Su]:!0},t)}function _t(e,t){return e instanceof Error&&Su in e&&(t==null||!!(e.type&t))}const Gh=["params","query","hash"];function Qh(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of Gh)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Yh(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;or&&ii(r)):[o&&ii(o)]).forEach(r=>{r!==void 0&&(t+=(t.length?"&":"")+n,r!=null&&(t+="="+r))})}return t}function Jh(e){const t={};for(const n in e){const o=e[n];o!==void 0&&(t[n]=ut(o)?o.map(r=>r==null?null:""+r):o==null?o:""+o)}return t}const Zh=Symbol(""),zs=Symbol(""),Bi=Symbol(""),Eu=Symbol(""),ai=Symbol("");function qn(){let e=[];function t(o){return e.push(o),()=>{const r=e.indexOf(o);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Ft(e,t,n,o,r,i=s=>s()){const s=o&&(o.enterCallbacks[r]=o.enterCallbacks[r]||[]);return()=>new Promise((l,a)=>{const c=d=>{d===!1?a(Rn(Se.NAVIGATION_ABORTED,{from:n,to:t})):d instanceof Error?a(d):Wh(d)?a(Rn(Se.NAVIGATION_GUARD_REDIRECT,{from:t,to:d})):(s&&o.enterCallbacks[r]===s&&typeof d=="function"&&s.push(d),l())},u=i(()=>e.call(o&&o.instances[r],t,n,c));let f=Promise.resolve(u);e.length<3&&(f=f.then(c)),f.catch(d=>a(d))})}function Tr(e,t,n,o,r=i=>i()){const i=[];for(const s of e)for(const l in s.components){let a=s.components[l];if(!(t!=="beforeRouteEnter"&&!s.instances[l]))if(pu(a)){const c=(a.__vccOpts||a)[t];c&&i.push(Ft(c,n,o,s,l,r))}else{let c=a();i.push(()=>c.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${l}" at "${s.path}"`);const f=_h(u)?u.default:u;s.mods[l]=u,s.components[l]=f;const d=(f.__vccOpts||f)[t];return d&&Ft(d,n,o,s,l,r)()}))}}return i}function Xh(e,t){const n=[],o=[],r=[],i=Math.max(t.matched.length,e.matched.length);for(let s=0;skn(c,l))?o.push(l):n.push(l));const a=e.matched[s];a&&(t.matched.find(c=>kn(c,a))||r.push(a))}return[n,o,r]}let eg=()=>location.protocol+"//"+location.host;function ku(e,t){const{pathname:n,search:o,hash:r}=t,i=e.indexOf("#");if(i>-1){let s=r.includes(e.slice(i))?e.slice(i).length:1,l=r.slice(s);return l[0]!=="/"&&(l="/"+l),$s(l,"")}return $s(n,e)+o+r}function tg(e,t,n,o){let r=[],i=[],s=null;const l=({state:d})=>{const g=ku(e,location),p=n.value,y=t.value;let S=0;if(d){if(n.value=g,t.value=d,s&&s===p){s=null;return}S=y?d.position-y.position:0}else o(g);r.forEach(T=>{T(n.value,p,{delta:S,type:si.pop,direction:S?S>0?Ar.forward:Ar.back:Ar.unknown})})};function a(){s=n.value}function c(d){r.push(d);const g=()=>{const p=r.indexOf(d);p>-1&&r.splice(p,1)};return i.push(g),g}function u(){if(document.visibilityState==="hidden"){const{history:d}=window;if(!d.state)return;d.replaceState(de({},d.state,{scroll:ar()}),"")}}function f(){for(const d of i)d();i=[],window.removeEventListener("popstate",l),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",l),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:a,listen:c,destroy:f}}function Us(e,t,n,o=!1,r=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:r?ar():null}}function ng(e){const{history:t,location:n}=window,o={value:ku(e,n)},r={value:t.state};r.value||i(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(a,c,u){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+a:eg()+e+a;try{t[u?"replaceState":"pushState"](c,"",d),r.value=c}catch(g){console.error(g),n[u?"replace":"assign"](d)}}function s(a,c){i(a,de({},t.state,Us(r.value.back,a,r.value.forward,!0),c,{position:r.value.position}),!0),o.value=a}function l(a,c){const u=de({},r.value,t.state,{forward:a,scroll:ar()});i(u.current,u,!0),i(a,de({},Us(o.value,a,null),{position:u.position+1},c),!1),o.value=a}return{location:o,state:r,push:l,replace:s}}function og(e){e=$h(e);const t=ng(e),n=tg(e,t.state,t.location,t.replace);function o(i,s=!0){s||n.pauseListeners(),history.go(i)}const r=de({location:"",base:e,go:o,createHref:jh.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}function rg(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),og(e)}let Zt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var Ae=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(Ae||{});const ig={type:Zt.Static,value:""},sg=/[a-zA-Z0-9_]/;function lg(e){if(!e)return[[]];if(e==="/")return[[ig]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(g){throw new Error(`ERR (${n})/"${c}": ${g}`)}let n=Ae.Static,o=n;const r=[];let i;function s(){i&&r.push(i),i=[]}let l=0,a,c="",u="";function f(){c&&(n===Ae.Static?i.push({type:Zt.Static,value:c}):n===Ae.Param||n===Ae.ParamRegExp||n===Ae.ParamRegExpEnd?(i.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),i.push({type:Zt.Param,value:c,regexp:u,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),c="")}function d(){c+=a}for(;lt.length?t.length===1&&t[0]===$e.Static+$e.Segment?1:-1:0}function Ru(e,t){let n=0;const o=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const dg={strict:!1,end:!0,sensitive:!1};function hg(e,t,n){const o=cg(lg(e.path),n),r=de(o,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function gg(e,t){const n=[],o=new Map;t=Fs(dg,t);function r(f){return o.get(f)}function i(f,d,g){const p=!g,y=Qs(f);y.aliasOf=g&&g.record;const S=Fs(t,f),T=[y];if("alias"in f){const A=typeof f.alias=="string"?[f.alias]:f.alias;for(const B of A)T.push(Qs(de({},y,{components:g?g.record.components:y.components,path:B,aliasOf:g?g.record:y})))}let _,x;for(const A of T){const{path:B}=A;if(d&&B[0]!=="/"){const j=d.record.path,H=j[j.length-1]==="/"?"":"/";A.path=d.record.path+(B&&H+B)}if(_=hg(A,d,S),g?g.alias.push(_):(x=x||_,x!==_&&x.alias.push(_),p&&f.name&&!Ys(_)&&s(f.name)),Au(_)&&a(_),y.children){const j=y.children;for(let H=0;H{s(x)}:Qn}function s(f){if(Cu(f)){const d=o.get(f);d&&(o.delete(f),n.splice(n.indexOf(d),1),d.children.forEach(s),d.alias.forEach(s))}else{const d=n.indexOf(f);d>-1&&(n.splice(d,1),f.record.name&&o.delete(f.record.name),f.children.forEach(s),f.alias.forEach(s))}}function l(){return n}function a(f){const d=vg(f,n);n.splice(d,0,f),f.record.name&&!Ys(f)&&o.set(f.record.name,f)}function c(f,d){let g,p={},y,S;if("name"in f&&f.name){if(g=o.get(f.name),!g)throw Rn(Se.MATCHER_NOT_FOUND,{location:f});S=g.record.name,p=de(Gs(d.params,g.keys.filter(x=>!x.optional).concat(g.parent?g.parent.keys.filter(x=>x.optional):[]).map(x=>x.name)),f.params&&Gs(f.params,g.keys.map(x=>x.name))),y=g.stringify(p)}else if(f.path!=null)y=f.path,g=n.find(x=>x.re.test(y)),g&&(p=g.parse(y),S=g.record.name);else{if(g=d.name?o.get(d.name):n.find(x=>x.re.test(d.path)),!g)throw Rn(Se.MATCHER_NOT_FOUND,{location:f,currentLocation:d});S=g.record.name,p=de({},d.params,f.params),y=g.stringify(p)}const T=[];let _=g;for(;_;)T.unshift(_.record),_=_.parent;return{name:S,path:y,params:p,matched:T,meta:pg(T)}}e.forEach(f=>i(f));function u(){n.length=0,o.clear()}return{addRoute:i,resolve:c,removeRoute:s,clearRoutes:u,getRoutes:l,getRecordMatcher:r}}function Gs(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function Qs(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:mg(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function mg(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]=typeof n=="object"?n[o]:n;return t}function Ys(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function pg(e){return e.reduce((t,n)=>de(t,n.meta),{})}function vg(e,t){let n=0,o=t.length;for(;n!==o;){const i=n+o>>1;Ru(e,t[i])<0?o=i:n=i+1}const r=bg(e);return r&&(o=t.lastIndexOf(r,o-1)),o}function bg(e){let t=e;for(;t=t.parent;)if(Au(t)&&Ru(e,t)===0)return t}function Au({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Js(e){const t=st(Bi),n=st(Eu),o=k(()=>{const a=jt(e.to);return t.resolve(a)}),r=k(()=>{const{matched:a}=o.value,{length:c}=a,u=a[c-1],f=n.matched;if(!u||!f.length)return-1;const d=f.findIndex(kn.bind(null,u));if(d>-1)return d;const g=Zs(a[c-2]);return c>1&&Zs(u)===g&&f[f.length-1].path!==g?f.findIndex(kn.bind(null,a[c-2])):d}),i=k(()=>r.value>-1&&Cg(n.params,o.value.params)),s=k(()=>r.value>-1&&r.value===n.matched.length-1&&xu(n.params,o.value.params));function l(a={}){if(xg(a)){const c=t[jt(e.replace)?"replace":"push"](jt(e.to)).catch(Qn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:o,href:k(()=>o.value.href),isActive:i,isExactActive:s,navigate:l}}function yg(e){return e.length===1?e[0]:e}const _g=ao({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Js,setup(e,{slots:t}){const n=an(Js(e)),{options:o}=st(Bi),r=k(()=>({[Xs(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[Xs(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&yg(t.default(n));return e.custom?i:P("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},i)}}}),wg=_g;function xg(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Cg(e,t){for(const n in t){const o=t[n],r=e[n];if(typeof o=="string"){if(o!==r)return!1}else if(!ut(r)||r.length!==o.length||o.some((i,s)=>i.valueOf()!==r[s].valueOf()))return!1}return!0}function Zs(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Xs=(e,t,n)=>e??t??n,Sg=ao({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=st(ai),r=k(()=>e.route||o.value),i=st(zs,0),s=k(()=>{let c=jt(i);const{matched:u}=r.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),l=k(()=>r.value.matched[s.value]);Ro(zs,k(()=>s.value+1)),Ro(Zh,l),Ro(ai,r);const a=ae();return be(()=>[a.value,l.value,e.name],([c,u,f],[d,g,p])=>{u&&(u.instances[f]=c,g&&g!==u&&c&&c===d&&(u.leaveGuards.size||(u.leaveGuards=g.leaveGuards),u.updateGuards.size||(u.updateGuards=g.updateGuards))),c&&u&&(!g||!kn(u,g)||!d)&&(u.enterCallbacks[f]||[]).forEach(y=>y(c))},{flush:"post"}),()=>{const c=r.value,u=e.name,f=l.value,d=f&&f.components[u];if(!d)return el(n.default,{Component:d,route:c});const g=f.props[u],p=g?g===!0?c.params:typeof g=="function"?g(c):g:null,S=P(d,de({},p,t,{onVnodeUnmounted:T=>{T.component.isUnmounted&&(f.instances[u]=null)},ref:a}));return el(n.default,{Component:S,route:c})||S}}});function el(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Eg=Sg;function kg(e){const t=gg(e.routes,e),n=e.parseQuery||Yh,o=e.stringifyQuery||Hs,r=e.history,i=qn(),s=qn(),l=qn(),a=$c(Mt);let c=Mt;yn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=kr.bind(null,w=>""+w),f=kr.bind(null,qh),d=kr.bind(null,oo);function g(w,W){let G,Z;return Cu(w)?(G=t.getRecordMatcher(w),Z=W):Z=w,t.addRoute(Z,G)}function p(w){const W=t.getRecordMatcher(w);W&&t.removeRoute(W)}function y(){return t.getRoutes().map(w=>w.record)}function S(w){return!!t.getRecordMatcher(w)}function T(w,W){if(W=de({},W||a.value),typeof w=="string"){const v=Rr(n,w,W.path),q=t.resolve({path:v.path},W),I=r.createHref(v.fullPath);return de(v,q,{params:d(q.params),hash:oo(v.hash),redirectedFrom:void 0,href:I})}let G;if(w.path!=null)G=de({},w,{path:Rr(n,w.path,W.path).path});else{const v=de({},w.params);for(const q in v)v[q]==null&&delete v[q];G=de({},w,{params:f(v)}),W.params=f(W.params)}const Z=t.resolve(G,W),ce=w.hash||"";Z.params=u(d(Z.params));const h=Nh(o,de({},w,{hash:Ph(ce),path:Z.path})),m=r.createHref(h);return de({fullPath:h,hash:ce,query:o===Hs?Jh(w.query):w.query||{}},Z,{redirectedFrom:void 0,href:m})}function _(w){return typeof w=="string"?Rr(n,w,a.value.path):de({},w)}function x(w,W){if(c!==w)return Rn(Se.NAVIGATION_CANCELLED,{from:W,to:w})}function A(w){return H(w)}function B(w){return A(de(_(w),{replace:!0}))}function j(w,W){const G=w.matched[w.matched.length-1];if(G&&G.redirect){const{redirect:Z}=G;let ce=typeof Z=="function"?Z(w,W):Z;return typeof ce=="string"&&(ce=ce.includes("?")||ce.includes("#")?ce=_(ce):{path:ce},ce.params={}),de({query:w.query,hash:w.hash,params:ce.path!=null?{}:w.params},ce)}}function H(w,W){const G=c=T(w),Z=a.value,ce=w.state,h=w.force,m=w.replace===!0,v=j(G,Z);if(v)return H(de(_(v),{state:typeof v=="object"?de({},ce,v.state):ce,force:h,replace:m}),W||G);const q=G;q.redirectedFrom=W;let I;return!h&&Bh(o,Z,G)&&(I=Rn(Se.NAVIGATION_DUPLICATED,{to:q,from:Z}),le(Z,Z,!0,!1)),(I?Promise.resolve(I):C(q,Z)).catch(L=>_t(L)?_t(L,Se.NAVIGATION_GUARD_REDIRECT)?L:we(L):M(L,q,Z)).then(L=>{if(L){if(_t(L,Se.NAVIGATION_GUARD_REDIRECT))return H(de({replace:m},_(L.to),{state:typeof L.to=="object"?de({},ce,L.to.state):ce,force:h}),W||q)}else L=b(q,Z,!0,m,ce);return E(q,Z,L),L})}function $(w,W){const G=x(w,W);return G?Promise.reject(G):Promise.resolve()}function N(w){const W=_e.values().next().value;return W&&typeof W.runWithContext=="function"?W.runWithContext(w):w()}function C(w,W){let G;const[Z,ce,h]=Xh(w,W);G=Tr(Z.reverse(),"beforeRouteLeave",w,W);for(const v of Z)v.leaveGuards.forEach(q=>{G.push(Ft(q,w,W))});const m=$.bind(null,w,W);return G.push(m),ee(G).then(()=>{G=[];for(const v of i.list())G.push(Ft(v,w,W));return G.push(m),ee(G)}).then(()=>{G=Tr(ce,"beforeRouteUpdate",w,W);for(const v of ce)v.updateGuards.forEach(q=>{G.push(Ft(q,w,W))});return G.push(m),ee(G)}).then(()=>{G=[];for(const v of h)if(v.beforeEnter)if(ut(v.beforeEnter))for(const q of v.beforeEnter)G.push(Ft(q,w,W));else G.push(Ft(v.beforeEnter,w,W));return G.push(m),ee(G)}).then(()=>(w.matched.forEach(v=>v.enterCallbacks={}),G=Tr(h,"beforeRouteEnter",w,W,N),G.push(m),ee(G))).then(()=>{G=[];for(const v of s.list())G.push(Ft(v,w,W));return G.push(m),ee(G)}).catch(v=>_t(v,Se.NAVIGATION_CANCELLED)?v:Promise.reject(v))}function E(w,W,G){l.list().forEach(Z=>N(()=>Z(w,W,G)))}function b(w,W,G,Z,ce){const h=x(w,W);if(h)return h;const m=W===Mt,v=yn?history.state:{};G&&(Z||m?r.replace(w.fullPath,de({scroll:m&&v&&v.scroll},ce)):r.push(w.fullPath,ce)),a.value=w,le(w,W,G,m),we()}let O;function R(){O||(O=r.listen((w,W,G)=>{if(!ke.listening)return;const Z=T(w),ce=j(Z,ke.currentRoute.value);if(ce){H(de(ce,{replace:!0,force:!0}),Z).catch(Qn);return}c=Z;const h=a.value;yn&&Uh(js(h.fullPath,G.delta),ar()),C(Z,h).catch(m=>_t(m,Se.NAVIGATION_ABORTED|Se.NAVIGATION_CANCELLED)?m:_t(m,Se.NAVIGATION_GUARD_REDIRECT)?(H(de(_(m.to),{force:!0}),Z).then(v=>{_t(v,Se.NAVIGATION_ABORTED|Se.NAVIGATION_DUPLICATED)&&!G.delta&&G.type===si.pop&&r.go(-1,!1)}).catch(Qn),Promise.reject()):(G.delta&&r.go(-G.delta,!1),M(m,Z,h))).then(m=>{m=m||b(Z,h,!1),m&&(G.delta&&!_t(m,Se.NAVIGATION_CANCELLED)?r.go(-G.delta,!1):G.type===si.pop&&_t(m,Se.NAVIGATION_ABORTED|Se.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),E(Z,h,m)}).catch(Qn)}))}let K=qn(),J=qn(),V;function M(w,W,G){we(w);const Z=J.list();return Z.length?Z.forEach(ce=>ce(w,W,G)):console.error(w),Promise.reject(w)}function ne(){return V&&a.value!==Mt?Promise.resolve():new Promise((w,W)=>{K.add([w,W])})}function we(w){return V||(V=!w,R(),K.list().forEach(([W,G])=>w?G(w):W()),K.reset()),w}function le(w,W,G,Z){const{scrollBehavior:ce}=e;if(!yn||!ce)return Promise.resolve();const h=!G&&Kh(js(w.fullPath,0))||(Z||!G)&&history.state&&history.state.scroll||null;return Ke().then(()=>ce(w,W,h)).then(m=>m&&zh(m)).catch(m=>M(m,w,W))}const D=w=>r.go(w);let ue;const _e=new Set,ke={currentRoute:a,listening:!0,addRoute:g,removeRoute:p,clearRoutes:t.clearRoutes,hasRoute:S,getRoutes:y,resolve:T,options:e,push:A,replace:B,go:D,back:()=>D(-1),forward:()=>D(1),beforeEach:i.add,beforeResolve:s.add,afterEach:l.add,onError:J.add,isReady:ne,install(w){w.component("RouterLink",wg),w.component("RouterView",Eg),w.config.globalProperties.$router=ke,Object.defineProperty(w.config.globalProperties,"$route",{enumerable:!0,get:()=>jt(a)}),yn&&!ue&&a.value===Mt&&(ue=!0,A(r.location).catch(Z=>{}));const W={};for(const Z in Mt)Object.defineProperty(W,Z,{get:()=>a.value[Z],enumerable:!0});w.provide(Bi,ke),w.provide(Eu,ta(W)),w.provide(ai,a);const G=w.unmount;_e.add(w),w.unmount=function(){_e.delete(w),_e.size<1&&(c=Mt,O&&O(),O=null,a.value=Mt,ue=!1,V=!1),G()}}};function ee(w){return w.reduce((W,G)=>W.then(()=>N(G)),Promise.resolve())}return ke}const Rg=[{path:"/",component:()=>ko(()=>import("./MainLayout-Cyzrc7AM.js"),__vite__mapDeps([0,1,2,3,4,5])),children:[{path:"",component:()=>ko(()=>import("./IndexPage-CwM_myNb.js").then(e=>e.I),__vite__mapDeps([6,1,7]))}]},{path:"/:catchAll(.*)*",component:()=>ko(()=>import("./ErrorNotFound-C9XXVpv6.js"),[])}],Pr=dh(function(){return kg({scrollBehavior:()=>({left:0,top:0}),routes:Rg,history:rg("/")})});async function Ag(e,t){const n=e(fh);n.use(ch,t);const o=typeof Er=="function"?await Er({}):Er;n.use(o);const r=un(typeof Pr=="function"?await Pr({store:o}):Pr);return o.use(({store:i})=>{i.router=r}),{app:n,store:o,router:r}}function Tg(e,t,n){let o;function r(){o!==void 0&&(ni.remove(o),o=void 0)}return ct(()=>{e.value===!0&&r()}),{removeFromHistory:r,addToHistory(){o={condition:()=>n.value===!0,handler:t},ni.add(o)}}}function Or(e){if(Object(e.$parent)===e.$parent)return e.$parent;let{parent:t}=e.$;for(;Object(t)===t;){if(Object(t.proxy)===t.proxy)return t.proxy;t=t.parent}}function Tu(e){return e.appContext.config.globalProperties.$router!==void 0}function Pu(e){return e.isUnmounted===!0||e.isDeactivated===!0}function Pg(){let e=null;const t=Ce();function n(){e!==null&&(clearTimeout(e),e=null)}return tr(n),ct(n),{removeTimeout:n,registerTimeout(o,r){n(),Pu(t)===!1&&(e=setTimeout(()=>{e=null,o()},r))}}}function Og(){let e;const t=Ce();function n(){e=void 0}return tr(n),ct(n),{removeTick:n,registerTick(o){e=o,Ke(()=>{e===o&&(Pu(t)===!1&&e(),e=void 0)})}}}const Mg={modelValue:{type:Boolean,default:null},"onUpdate:modelValue":[Function,Array]},qg=["beforeShow","show","beforeHide","hide"];function Lg({showing:e,canShow:t,hideOnRouteChange:n,handleShow:o,handleHide:r,processOnMount:i}){const s=Ce(),{props:l,emit:a,proxy:c}=s;let u;function f(_){e.value===!0?p(_):d(_)}function d(_){if(l.disable===!0||_?.qAnchorHandled===!0||t!==void 0&&t(_)!==!0)return;const x=l["onUpdate:modelValue"]!==void 0;x===!0&&(a("update:modelValue",!0),u=_,Ke(()=>{u===_&&(u=void 0)})),(l.modelValue===null||x===!1)&&g(_)}function g(_){e.value!==!0&&(e.value=!0,a("beforeShow",_),o!==void 0?o(_):a("show",_))}function p(_){if(l.disable===!0)return;const x=l["onUpdate:modelValue"]!==void 0;x===!0&&(a("update:modelValue",!1),u=_,Ke(()=>{u===_&&(u=void 0)})),(l.modelValue===null||x===!1)&&y(_)}function y(_){e.value!==!1&&(e.value=!1,a("beforeHide",_),r!==void 0?r(_):a("hide",_))}function S(_){l.disable===!0&&_===!0?l["onUpdate:modelValue"]!==void 0&&a("update:modelValue",!1):_===!0!==e.value&&(_===!0?g:y)(u)}be(()=>l.modelValue,S),n!==void 0&&Tu(s)===!0&&be(()=>c.$route.fullPath,()=>{n.value===!0&&e.value===!0&&p()}),i===!0&&cn(()=>{S(l.modelValue)});const T={show:d,hide:p,toggle:f};return Object.assign(c,T),T}const Ig={transitionShow:{type:String,default:"fade"},transitionHide:{type:String,default:"fade"},transitionDuration:{type:[String,Number],default:300}};function Ng(e,t=()=>{},n=()=>{}){return{transitionProps:k(()=>{const o=`q-transition--${e.transitionShow||t()}`,r=`q-transition--${e.transitionHide||n()}`;return{appear:!0,enterFromClass:`${o}-enter-from`,enterActiveClass:`${o}-enter-active`,enterToClass:`${o}-enter-to`,leaveFromClass:`${r}-leave-from`,leaveActiveClass:`${r}-leave-active`,leaveToClass:`${r}-leave-to`}}),transitionStyle:k(()=>`--q-transition-duration: ${e.transitionDuration}ms`)}}let Xt=[],ro=[];function Ou(e){ro=ro.filter(t=>t!==e)}function Bg(e){Ou(e),ro.push(e)}function tl(e){Ou(e),ro.length===0&&Xt.length!==0&&(Xt[Xt.length-1](),Xt=[])}function Di(e){ro.length===0?e():Xt.push(e)}function Dg(e){Xt=Xt.filter(t=>t!==e)}let Fg=1,$g=document.body;function Fi(e,t){const n=document.createElement("div");if(n.id=t!==void 0?`q-portal--${t}--${Fg++}`:e,Ko.globalNodes!==void 0){const o=Ko.globalNodes.class;o!==void 0&&(n.className=o)}return $g.appendChild(n),n}function Mu(e){e.remove()}const Mr=[];function $p(e,t){do{if(e.$options.name==="QMenu"){if(e.hide(t),e.$props.separateClosePopup===!0)return Or(e)}else if(e.__qPortal===!0){const n=Or(e);return n?.$options.name==="QPopupProxy"?(e.hide(t),n):e}e=Or(e)}while(e!=null)}const Vg=Le({name:"QPortal",setup(e,{slots:t}){return()=>t.default()}});function jg(e){for(e=e.parent;e!=null;){if(e.type.name==="QGlobalDialog")return!0;if(e.type.name==="QDialog"||e.type.name==="QMenu")return!1;e=e.parent}return!1}function Hg(e,t,n,o){const r=ae(!1),i=ae(!1);let s=null;const l={},a=o==="dialog"&&jg(e);function c(f){if(f===!0){tl(l),i.value=!0;return}i.value=!1,r.value===!1&&(a===!1&&s===null&&(s=Fi(!1,o)),r.value=!0,Mr.push(e.proxy),Bg(l))}function u(f){if(i.value=!1,f!==!0)return;tl(l),r.value=!1;const d=Mr.indexOf(e.proxy);d!==-1&&Mr.splice(d,1),s!==null&&(Mu(s),s=null)}return Pi(()=>{u(!0)}),e.proxy.__qPortal=!0,Tn(e.proxy,"contentEl",()=>t.value),{showPortal:c,hidePortal:u,portalIsActive:r,portalIsAccessible:i,renderPortal:()=>a===!0?n():r.value===!0?[P(sf,{to:s},P(Vg,n))]:void 0}}function ui(e,t){const n=e.style;for(const o in t)n[o]=t[o]}function zg(e){if(e==null)return;if(typeof e=="string")try{return document.querySelector(e)||void 0}catch{return}const t=jt(e);if(t)return t.$el||t}function Ug(e,t){if(e==null||e.contains(t)===!0)return!0;for(let n=e.nextElementSibling;n!==null;n=n.nextElementSibling)if(n.contains(t))return!0;return!1}const Vp=[Element,String],Kg=[null,document,document.body,document.scrollingElement,document.documentElement];function jp(e,t){let n=zg(t);if(n===void 0){if(e==null)return window;n=e.closest(".scroll,.scroll-y,.overflow-auto")}return Kg.includes(n)?window:n}function qu(e){return e===window?window.pageYOffset||window.scrollY||document.body.scrollTop||0:e.scrollTop}function Lu(e){return e===window?window.pageXOffset||window.scrollX||document.body.scrollLeft||0:e.scrollLeft}function Iu(e,t,n=0){const o=arguments[3]===void 0?performance.now():arguments[3],r=qu(e);if(n<=0){r!==t&&ci(e,t);return}requestAnimationFrame(i=>{const s=i-o,l=r+(t-r)/Math.max(s,n)*s;ci(e,l),l!==t&&Iu(e,t,n-s,i)})}function Nu(e,t,n=0){const o=arguments[3]===void 0?performance.now():arguments[3],r=Lu(e);if(n<=0){r!==t&&fi(e,t);return}requestAnimationFrame(i=>{const s=i-o,l=r+(t-r)/Math.max(s,n)*s;fi(e,l),l!==t&&Nu(e,t,n-s,i)})}function ci(e,t){if(e===window){window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,t);return}e.scrollTop=t}function fi(e,t){if(e===window){window.scrollTo(t,window.pageYOffset||window.scrollY||document.body.scrollTop||0);return}e.scrollLeft=t}function Hp(e,t,n){if(n){Iu(e,t,n);return}ci(e,t)}function zp(e,t,n){if(n){Nu(e,t,n);return}fi(e,t)}let _o;function Up(){if(_o!==void 0)return _o;const e=document.createElement("p"),t=document.createElement("div");ui(e,{width:"100%",height:"200px"}),ui(t,{position:"absolute",top:"0px",left:"0px",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),t.appendChild(e),document.body.appendChild(t);const n=e.offsetWidth;t.style.overflow="scroll";let o=e.offsetWidth;return n===o&&(o=t.clientWidth),t.remove(),_o=n-o,_o}function Wg(e,t=!0){return!e||e.nodeType!==Node.ELEMENT_NODE?!1:t?e.scrollHeight>e.clientHeight&&(e.classList.contains("scroll")||e.classList.contains("overflow-auto")||["auto","scroll"].includes(window.getComputedStyle(e)["overflow-y"])):e.scrollWidth>e.clientWidth&&(e.classList.contains("scroll")||e.classList.contains("overflow-auto")||["auto","scroll"].includes(window.getComputedStyle(e)["overflow-x"]))}let Ln=0,qr,Lr,Dn,Ir=!1,nl,ol,rl,Qt=null;function Gg(e){Qg(e)&&et(e)}function Qg(e){if(e.target===document.body||e.target.classList.contains("q-layout__backdrop"))return!0;const t=Ud(e),n=e.shiftKey&&!e.deltaX,o=!n&&Math.abs(e.deltaX)<=Math.abs(e.deltaY),r=n||o?e.deltaY:e.deltaX;for(let i=0;i0&&s.scrollTop+s.clientHeight===s.scrollHeight:r<0&&s.scrollLeft===0?!0:r>0&&s.scrollLeft+s.clientWidth===s.scrollWidth}return!0}function il(e){e.target===document&&(document.scrollingElement.scrollTop=document.scrollingElement.scrollTop)}function wo(e){Ir!==!0&&(Ir=!0,requestAnimationFrame(()=>{Ir=!1;const{height:t}=e.target,{clientHeight:n,scrollTop:o}=document.scrollingElement;(Dn===void 0||t!==window.innerHeight)&&(Dn=n-t,document.scrollingElement.scrollTop=o),o>Dn&&(document.scrollingElement.scrollTop-=Math.ceil((o-Dn)/8))}))}function sl(e){const t=document.body,n=window.visualViewport!==void 0;if(e==="add"){const{overflowY:o,overflowX:r}=window.getComputedStyle(t);qr=Lu(window),Lr=qu(window),nl=t.style.left,ol=t.style.top,rl=window.location.href,t.style.left=`-${qr}px`,t.style.top=`-${Lr}px`,r!=="hidden"&&(r==="scroll"||t.scrollWidth>window.innerWidth)&&t.classList.add("q-body--force-scrollbar-x"),o!=="hidden"&&(o==="scroll"||t.scrollHeight>window.innerHeight)&&t.classList.add("q-body--force-scrollbar-y"),t.classList.add("q-body--prevent-scroll"),document.qScrollPrevented=!0,Te.is.ios===!0&&(n===!0?(window.scrollTo(0,0),window.visualViewport.addEventListener("resize",wo,Ue.passiveCapture),window.visualViewport.addEventListener("scroll",wo,Ue.passiveCapture),window.scrollTo(0,0)):window.addEventListener("scroll",il,Ue.passiveCapture))}Te.is.desktop===!0&&Te.is.mac===!0&&window[`${e}EventListener`]("wheel",Gg,Ue.notPassive),e==="remove"&&(Te.is.ios===!0&&(n===!0?(window.visualViewport.removeEventListener("resize",wo,Ue.passiveCapture),window.visualViewport.removeEventListener("scroll",wo,Ue.passiveCapture)):window.removeEventListener("scroll",il,Ue.passiveCapture)),t.classList.remove("q-body--prevent-scroll"),t.classList.remove("q-body--force-scrollbar-x"),t.classList.remove("q-body--force-scrollbar-y"),document.qScrollPrevented=!1,t.style.left=nl,t.style.top=ol,window.location.href===rl&&window.scrollTo(qr,Lr),Dn=void 0)}function Yg(e){let t="add";if(e===!0){if(Ln++,Qt!==null){clearTimeout(Qt),Qt=null;return}if(Ln>1)return}else{if(Ln===0||(Ln--,Ln>0))return;if(t="remove",Te.is.ios===!0&&Te.is.nativeMobile===!0){Qt!==null&&clearTimeout(Qt),Qt=setTimeout(()=>{sl(t),Qt=null},100);return}}sl(t)}function Jg(){let e;return{preventBodyScroll(t){t!==e&&(e!==void 0||t===!0)&&(e=t,Yg(t))}}}function rt(e,t){return e!==void 0&&e()||t}function Kp(e,t){if(e!==void 0){const n=e();if(n!=null)return n.slice()}return t}function en(e,t){return e!==void 0?t.concat(e()):t}function Zg(e,t){return e===void 0?t:t!==void 0?t.concat(e()):e()}function Wp(e,t,n,o,r,i){t.key=o+r;const s=P(e,t,n);return r===!0?ua(s,i()):s}const on=[];let An;function Xg(e){An=e.keyCode===27}function em(){An===!0&&(An=!1)}function tm(e){An===!0&&(An=!1,no(e,27)===!0&&on[on.length-1](e))}function Bu(e){window[e]("keydown",Xg),window[e]("blur",em),window[e]("keyup",tm),An=!1}function nm(e){Te.is.desktop===!0&&(on.push(e),on.length===1&&Bu("addEventListener"))}function ll(e){const t=on.indexOf(e);t!==-1&&(on.splice(t,1),on.length===0&&Bu("removeEventListener"))}const rn=[];function Du(e){rn[rn.length-1](e)}function om(e){Te.is.desktop===!0&&(rn.push(e),rn.length===1&&document.body.addEventListener("focusin",Du))}function al(e){const t=rn.indexOf(e);t!==-1&&(rn.splice(t,1),rn.length===0&&document.body.removeEventListener("focusin",Du))}let xo=0;const rm={standard:"fixed-full flex-center",top:"fixed-top justify-center",bottom:"fixed-bottom justify-center",right:"fixed-right items-center",left:"fixed-left items-center"},ul={standard:["scale","scale"],top:["slide-down","slide-up"],bottom:["slide-up","slide-down"],right:["slide-left","slide-right"],left:["slide-right","slide-left"]},im=Le({name:"QDialog",inheritAttrs:!1,props:{...Mg,...Ig,transitionShow:String,transitionHide:String,persistent:Boolean,autoClose:Boolean,allowFocusOutside:Boolean,noEscDismiss:Boolean,noBackdropDismiss:Boolean,noRouteDismiss:Boolean,noRefocus:Boolean,noFocus:Boolean,noShake:Boolean,seamless:Boolean,maximized:Boolean,fullWidth:Boolean,fullHeight:Boolean,square:Boolean,backdropFilter:String,position:{type:String,default:"standard",validator:e=>["standard","top","bottom","left","right"].includes(e)}},emits:[...qg,"shake","click","escapeKey"],setup(e,{slots:t,emit:n,attrs:o}){const r=Ce(),i=ae(null),s=ae(!1),l=ae(!1);let a=null,c=null,u,f;const d=k(()=>e.persistent!==!0&&e.noRouteDismiss!==!0&&e.seamless!==!0),{preventBodyScroll:g}=Jg(),{registerTimeout:p}=Pg(),{registerTick:y,removeTick:S}=Og(),{transitionProps:T,transitionStyle:_}=Ng(e,()=>ul[e.position][0],()=>ul[e.position][1]),x=k(()=>_.value+(e.backdropFilter!==void 0?`;backdrop-filter:${e.backdropFilter};-webkit-backdrop-filter:${e.backdropFilter}`:"")),{showPortal:A,hidePortal:B,portalIsAccessible:j,renderPortal:H}=Hg(r,i,ke,"dialog"),{hide:$}=Lg({showing:s,hideOnRouteChange:d,handleShow:K,handleHide:J,processOnMount:!0}),{addToHistory:N,removeFromHistory:C}=Tg(s,$,d),E=k(()=>`q-dialog__inner flex no-pointer-events q-dialog__inner--${e.maximized===!0?"maximized":"minimized"} q-dialog__inner--${e.position} ${rm[e.position]}`+(l.value===!0?" q-dialog__inner--animating":"")+(e.fullWidth===!0?" q-dialog__inner--fullwidth":"")+(e.fullHeight===!0?" q-dialog__inner--fullheight":"")+(e.square===!0?" q-dialog__inner--square":"")),b=k(()=>s.value===!0&&e.seamless!==!0),O=k(()=>e.autoClose===!0?{onClick:D}:{}),R=k(()=>[`q-dialog fullscreen no-pointer-events q-dialog--${b.value===!0?"modal":"seamless"}`,o.class]);be(()=>e.maximized,ee=>{s.value===!0&&le(ee)}),be(b,ee=>{g(ee),ee===!0?(om(_e),nm(ne)):(al(_e),ll(ne))});function K(ee){N(),c=e.noRefocus===!1&&document.activeElement!==null?document.activeElement:null,le(e.maximized),A(),l.value=!0,e.noFocus!==!0?(document.activeElement?.blur(),y(V)):S(),p(()=>{if(r.proxy.$q.platform.is.ios===!0){if(e.seamless!==!0&&document.activeElement){const{top:w,bottom:W}=document.activeElement.getBoundingClientRect(),{innerHeight:G}=window,Z=window.visualViewport!==void 0?window.visualViewport.height:G;w>0&&W>Z/2&&(document.scrollingElement.scrollTop=Math.min(document.scrollingElement.scrollHeight-Z,W>=G?1/0:Math.ceil(document.scrollingElement.scrollTop+W-Z/2))),document.activeElement.scrollIntoView()}f=!0,i.value.click(),f=!1}A(!0),l.value=!1,n("show",ee)},e.transitionDuration)}function J(ee){S(),C(),we(!0),l.value=!0,B(),c!==null&&(((ee?.type.indexOf("key")===0?c.closest('[tabindex]:not([tabindex^="-"])'):void 0)||c).focus(),c=null),p(()=>{B(!0),l.value=!1,n("hide",ee)},e.transitionDuration)}function V(ee){Di(()=>{let w=i.value;if(w!==null){if(ee!==void 0){const W=w.querySelector(ee);if(W!==null){W.focus({preventScroll:!0});return}}w.contains(document.activeElement)!==!0&&(w=w.querySelector("[autofocus][tabindex], [data-autofocus][tabindex]")||w.querySelector("[autofocus] [tabindex], [data-autofocus] [tabindex]")||w.querySelector("[autofocus], [data-autofocus]")||w,w.focus({preventScroll:!0}))}})}function M(ee){ee&&typeof ee.focus=="function"?ee.focus({preventScroll:!0}):V(),n("shake");const w=i.value;w!==null&&(w.classList.remove("q-animate--scale"),w.classList.add("q-animate--scale"),a!==null&&clearTimeout(a),a=setTimeout(()=>{a=null,i.value!==null&&(w.classList.remove("q-animate--scale"),V())},170))}function ne(){e.seamless!==!0&&(e.persistent===!0||e.noEscDismiss===!0?e.maximized!==!0&&e.noShake!==!0&&M():(n("escapeKey"),$()))}function we(ee){a!==null&&(clearTimeout(a),a=null),(ee===!0||s.value===!0)&&(le(!1),e.seamless!==!0&&(g(!1),al(_e),ll(ne))),ee!==!0&&(c=null)}function le(ee){ee===!0?u!==!0&&(xo<1&&document.body.classList.add("q-body--dialog"),xo++,u=!0):u===!0&&(xo<2&&document.body.classList.remove("q-body--dialog"),xo--,u=!1)}function D(ee){f!==!0&&($(ee),n("click",ee))}function ue(ee){e.persistent!==!0&&e.noBackdropDismiss!==!0?$(ee):e.noShake!==!0&&M()}function _e(ee){e.allowFocusOutside!==!0&&j.value===!0&&Ug(i.value,ee.target)!==!0&&V('[tabindex]:not([tabindex="-1"])')}Object.assign(r.proxy,{focus:V,shake:M,__updateRefocusTarget(ee){c=ee||null}}),ct(we);function ke(){return P("div",{role:"dialog","aria-modal":b.value===!0?"true":"false",...o,class:R.value},[P(jo,{name:"q-transition--fade",appear:!0},()=>b.value===!0?P("div",{class:"q-dialog__backdrop fixed-full",style:x.value,"aria-hidden":"true",tabindex:-1,onClick:ue}):null),P(jo,T.value,()=>s.value===!0?P("div",{ref:i,class:E.value,style:_.value,tabindex:-1,...O.value},rt(t.default)):null)])}return H}}),di={xs:18,sm:24,md:32,lg:38,xl:46},fo={size:String};function ho(e,t=di){return k(()=>e.size!==void 0?{fontSize:e.size in t?`${t[e.size]}px`:e.size}:null)}const cl="0 0 24 24",Nr=e=>e,Br=e=>`ionicons ${e}`,Fu={"mdi-":e=>`mdi ${e}`,"icon-":Nr,"bt-":e=>`bt ${e}`,"eva-":e=>`eva ${e}`,"ion-md":Br,"ion-ios":Br,"ion-logo":Br,"iconfont ":Nr,"ti-":e=>`themify-icon ${e}`,"bi-":e=>`bootstrap-icons ${e}`,"i-":Nr},$u={o_:"-outlined",r_:"-round",s_:"-sharp"},Vu={sym_o_:"-outlined",sym_r_:"-rounded",sym_s_:"-sharp"},sm=new RegExp("^("+Object.keys(Fu).join("|")+")"),lm=new RegExp("^("+Object.keys($u).join("|")+")"),fl=new RegExp("^("+Object.keys(Vu).join("|")+")"),am=/^[Mm]\s?[-+]?\.?\d/,um=/^img:/,cm=/^svguse:/,fm=/^ion-/,dm=/^(fa-(classic|sharp|solid|regular|light|brands|duotone|thin)|[lf]a[srlbdk]?) /,Tt=Le({name:"QIcon",props:{...fo,tag:{type:String,default:"i"},name:String,color:String,left:Boolean,right:Boolean},setup(e,{slots:t}){const{proxy:{$q:n}}=Ce(),o=ho(e),r=k(()=>"q-icon"+(e.left===!0?" on-left":"")+(e.right===!0?" on-right":"")+(e.color!==void 0?` text-${e.color}`:"")),i=k(()=>{let s,l=e.name;if(l==="none"||!l)return{none:!0};if(n.iconMapFn!==null){const u=n.iconMapFn(l);if(u!==void 0)if(u.icon!==void 0){if(l=u.icon,l==="none"||!l)return{none:!0}}else return{cls:u.cls,content:u.content!==void 0?u.content:" "}}if(am.test(l)===!0){const[u,f=cl]=l.split("|");return{svg:!0,viewBox:f,nodes:u.split("&&").map(d=>{const[g,p,y]=d.split("@@");return P("path",{style:p,d:g,transform:y})})}}if(um.test(l)===!0)return{img:!0,src:l.substring(4)};if(cm.test(l)===!0){const[u,f=cl]=l.split("|");return{svguse:!0,src:u.substring(7),viewBox:f}}let a=" ";const c=l.match(sm);if(c!==null)s=Fu[c[1]](l);else if(dm.test(l)===!0)s=l;else if(fm.test(l)===!0)s=`ionicons ion-${n.platform.is.ios===!0?"ios":"md"}${l.substring(3)}`;else if(fl.test(l)===!0){s="notranslate material-symbols";const u=l.match(fl);u!==null&&(l=l.substring(6),s+=Vu[u[1]]),a=l}else{s="notranslate material-icons";const u=l.match(lm);u!==null&&(l=l.substring(2),s+=$u[u[1]]),a=l}return{cls:s,content:a}});return()=>{const s={class:r.value,style:o.value,"aria-hidden":"true"};return i.value.none===!0?P(e.tag,s,rt(t.default)):i.value.img===!0?P(e.tag,s,en(t.default,[P("img",{src:i.value.src})])):i.value.svg===!0?P(e.tag,s,en(t.default,[P("svg",{viewBox:i.value.viewBox||"0 0 24 24"},i.value.nodes)])):i.value.svguse===!0?P(e.tag,s,en(t.default,[P("svg",{viewBox:i.value.viewBox},[P("use",{"xlink:href":i.value.src})])])):(i.value.cls!==void 0&&(s.class+=" "+i.value.cls),P(e.tag,s,en(t.default,[i.value.content])))}}}),hm={size:{type:[String,Number],default:"1em"},color:String};function gm(e){return{cSize:k(()=>e.size in di?`${di[e.size]}px`:e.size),classes:k(()=>"q-spinner"+(e.color?` text-${e.color}`:""))}}const io=Le({name:"QSpinner",props:{...hm,thickness:{type:Number,default:5}},setup(e){const{cSize:t,classes:n}=gm(e);return()=>P("svg",{class:n.value+" q-spinner-mat",width:t.value,height:t.value,viewBox:"25 25 50 50"},[P("circle",{class:"path",cx:"50",cy:"50",r:"20",fill:"none",stroke:"currentColor","stroke-width":e.thickness,"stroke-miterlimit":"10"})])}});function mm(e,t=250){let n=!1,o;return function(){return n===!1&&(n=!0,setTimeout(()=>{n=!1},t),o=e.apply(this,arguments)),o}}function dl(e,t,n,o){n.modifiers.stop===!0&&zo(e);const r=n.modifiers.color;let i=n.modifiers.center;i=i===!0||o===!0;const s=document.createElement("span"),l=document.createElement("span"),a=zd(e),{left:c,top:u,width:f,height:d}=t.getBoundingClientRect(),g=Math.sqrt(f*f+d*d),p=g/2,y=`${(f-g)/2}px`,S=i?y:`${a.left-c-p}px`,T=`${(d-g)/2}px`,_=i?T:`${a.top-u-p}px`;l.className="q-ripple__inner",ui(l,{height:`${g}px`,width:`${g}px`,transform:`translate3d(${S},${_},0) scale3d(.2,.2,1)`,opacity:0}),s.className=`q-ripple${r?" text-"+r:""}`,s.setAttribute("dir","ltr"),s.appendChild(l),t.appendChild(s);const x=()=>{s.remove(),clearTimeout(A)};n.abort.push(x);let A=setTimeout(()=>{l.classList.add("q-ripple__inner--enter"),l.style.transform=`translate3d(${y},${T},0) scale3d(1,1,1)`,l.style.opacity=.2,A=setTimeout(()=>{l.classList.remove("q-ripple__inner--enter"),l.classList.add("q-ripple__inner--leave"),l.style.opacity=0,A=setTimeout(()=>{s.remove(),n.abort.splice(n.abort.indexOf(x),1)},275)},250)},50)}function hl(e,{modifiers:t,value:n,arg:o}){const r=Object.assign({},e.cfg.ripple,t,n);e.modifiers={early:r.early===!0,stop:r.stop===!0,center:r.center===!0,color:r.color||o,keyCodes:[].concat(r.keyCodes||13)}}const pm=Hd({name:"ripple",beforeMount(e,t){const n=t.instance.$.appContext.config.globalProperties.$q.config||{};if(n.ripple===!1)return;const o={cfg:n,enabled:t.value!==!1,modifiers:{},abort:[],start(r){o.enabled===!0&&r.qSkipRipple!==!0&&r.type===(o.modifiers.early===!0?"pointerdown":"click")&&dl(r,e,o,r.qKeyEvent===!0)},keystart:mm(r=>{o.enabled===!0&&r.qSkipRipple!==!0&&no(r,o.modifiers.keyCodes)===!0&&r.type===`key${o.modifiers.early===!0?"down":"up"}`&&dl(r,e,o,!0)},300)};hl(o,t),e.__qripple=o,Kd(o,"main",[[e,"pointerdown","start","passive"],[e,"click","start","passive"],[e,"keydown","keystart","passive"],[e,"keyup","keystart","passive"]])},updated(e,t){if(t.oldValue!==t.value){const n=e.__qripple;n!==void 0&&(n.enabled=t.value!==!1,n.enabled===!0&&Object(t.value)===t.value&&hl(n,t))}},beforeUnmount(e){const t=e.__qripple;t!==void 0&&(t.abort.forEach(n=>{n()}),Wd(t,"main"),delete e._qripple)}}),ju={left:"start",center:"center",right:"end",between:"between",around:"around",evenly:"evenly",stretch:"stretch"},vm=Object.keys(ju),Hu={align:{type:String,validator:e=>vm.includes(e)}};function zu(e){return k(()=>{const t=e.align===void 0?e.vertical===!0?"stretch":"left":e.align;return`${e.vertical===!0?"items":"justify"}-${ju[t]}`})}function gl(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}function ml(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function bm(e,t){for(const n in t){const o=t[n],r=e[n];if(typeof o=="string"){if(o!==r)return!1}else if(Array.isArray(r)===!1||r.length!==o.length||o.some((i,s)=>i!==r[s]))return!1}return!0}function pl(e,t){return Array.isArray(t)===!0?e.length===t.length&&e.every((n,o)=>n===t[o]):e.length===1&&e[0]===t}function ym(e,t){return Array.isArray(e)===!0?pl(e,t):Array.isArray(t)===!0?pl(t,e):e===t}function _m(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(ym(e[n],t[n])===!1)return!1;return!0}const Uu={to:[String,Object],replace:Boolean,href:String,target:String,disable:Boolean},Gp={...Uu,exact:Boolean,activeClass:{type:String,default:"q-router-link--active"},exactActiveClass:{type:String,default:"q-router-link--exact-active"}};function wm({fallbackTag:e,useDisableForRouterLinkProps:t=!0}={}){const n=Ce(),{props:o,proxy:r,emit:i}=n,s=Tu(n),l=k(()=>o.disable!==!0&&o.href!==void 0),a=k(t===!0?()=>s===!0&&o.disable!==!0&&l.value!==!0&&o.to!==void 0&&o.to!==null&&o.to!=="":()=>s===!0&&l.value!==!0&&o.to!==void 0&&o.to!==null&&o.to!==""),c=k(()=>a.value===!0?_(o.to):null),u=k(()=>c.value!==null),f=k(()=>l.value===!0||u.value===!0),d=k(()=>o.type==="a"||f.value===!0?"a":o.tag||e||"div"),g=k(()=>l.value===!0?{href:o.href,target:o.target}:u.value===!0?{href:c.value.href,target:o.target}:{}),p=k(()=>{if(u.value===!1)return-1;const{matched:B}=c.value,{length:j}=B,H=B[j-1];if(H===void 0)return-1;const $=r.$route.matched;if($.length===0)return-1;const N=$.findIndex(ml.bind(null,H));if(N!==-1)return N;const C=gl(B[j-2]);return j>1&&gl(H)===C&&$[$.length-1].path!==C?$.findIndex(ml.bind(null,B[j-2])):N}),y=k(()=>u.value===!0&&p.value!==-1&&bm(r.$route.params,c.value.params)),S=k(()=>y.value===!0&&p.value===r.$route.matched.length-1&&_m(r.$route.params,c.value.params)),T=k(()=>u.value===!0?S.value===!0?` ${o.exactActiveClass} ${o.activeClass}`:o.exact===!0?"":y.value===!0?` ${o.activeClass}`:"":"");function _(B){try{return r.$router.resolve(B)}catch{}return null}function x(B,{returnRouterError:j,to:H=o.to,replace:$=o.replace}={}){if(o.disable===!0)return B.preventDefault(),Promise.resolve(!1);if(B.metaKey||B.altKey||B.ctrlKey||B.shiftKey||B.button!==void 0&&B.button!==0||o.target==="_blank")return Promise.resolve(!1);B.preventDefault();const N=r.$router[$===!0?"replace":"push"](H);return j===!0?N:N.then(()=>{}).catch(()=>{})}function A(B){if(u.value===!0){const j=H=>x(B,H);i("click",B,j),B.defaultPrevented!==!0&&j()}else i("click",B)}return{hasRouterLink:u,hasHrefLink:l,hasLink:f,linkTag:d,resolvedLink:c,linkIsActive:y,linkIsExactActive:S,linkClass:T,linkAttrs:g,getLink:_,navigateToRouterLink:x,navigateOnClick:A}}const vl={none:0,xs:4,sm:8,md:16,lg:24,xl:32},xm={xs:8,sm:10,md:14,lg:20,xl:24},Cm=["button","submit","reset"],Sm=/[^\s]\/[^\s]/,Em=["flat","outline","push","unelevated"];function km(e,t){return e.flat===!0?"flat":e.outline===!0?"outline":e.push===!0?"push":e.unelevated===!0?"unelevated":t}const Rm={...fo,...Uu,type:{type:String,default:"button"},label:[Number,String],icon:String,iconRight:String,...Em.reduce((e,t)=>(e[t]=Boolean)&&e,{}),square:Boolean,rounded:Boolean,glossy:Boolean,size:String,fab:Boolean,fabMini:Boolean,padding:String,color:String,textColor:String,noCaps:Boolean,noWrap:Boolean,dense:Boolean,tabindex:[Number,String],ripple:{type:[Boolean,Object],default:!0},align:{...Hu.align,default:"center"},stack:Boolean,stretch:Boolean,loading:{type:Boolean,default:null},disable:Boolean},Am={...Rm,round:Boolean};function Tm(e){const t=ho(e,xm),n=zu(e),{hasRouterLink:o,hasLink:r,linkTag:i,linkAttrs:s,navigateOnClick:l}=wm({fallbackTag:"button"}),a=k(()=>{const S=e.fab===!1&&e.fabMini===!1?t.value:{};return e.padding!==void 0?Object.assign({},S,{padding:e.padding.split(/\s+/).map(T=>T in vl?vl[T]+"px":T).join(" "),minWidth:"0",minHeight:"0"}):S}),c=k(()=>e.rounded===!0||e.fab===!0||e.fabMini===!0),u=k(()=>e.disable!==!0&&e.loading!==!0),f=k(()=>u.value===!0?e.tabindex||0:-1),d=k(()=>km(e,"standard")),g=k(()=>{const S={tabindex:f.value};return r.value===!0?Object.assign(S,s.value):Cm.includes(e.type)===!0&&(S.type=e.type),i.value==="a"?(e.disable===!0?S["aria-disabled"]="true":S.href===void 0&&(S.role="button"),o.value!==!0&&Sm.test(e.type)===!0&&(S.type=e.type)):e.disable===!0&&(S.disabled="",S["aria-disabled"]="true"),e.loading===!0&&e.percentage!==void 0&&Object.assign(S,{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":e.percentage}),S}),p=k(()=>{let S;e.color!==void 0?e.flat===!0||e.outline===!0?S=`text-${e.textColor||e.color}`:S=`bg-${e.color} text-${e.textColor||"white"}`:e.textColor&&(S=`text-${e.textColor}`);const T=e.round===!0?"round":`rectangle${c.value===!0?" q-btn--rounded":e.square===!0?" q-btn--square":""}`;return`q-btn--${d.value} q-btn--${T}`+(S!==void 0?" "+S:"")+(u.value===!0?" q-btn--actionable q-focusable q-hoverable":e.disable===!0?" disabled":"")+(e.fab===!0?" q-btn--fab":e.fabMini===!0?" q-btn--fab-mini":"")+(e.noCaps===!0?" q-btn--no-uppercase":"")+(e.dense===!0?" q-btn--dense":"")+(e.stretch===!0?" no-border-radius self-stretch":"")+(e.glossy===!0?" glossy":"")+(e.square?" q-btn--square":"")}),y=k(()=>n.value+(e.stack===!0?" column":" row")+(e.noWrap===!0?" no-wrap text-no-wrap":"")+(e.loading===!0?" q-btn__content--hidden":""));return{classes:p,style:a,innerClasses:y,attributes:g,hasLink:r,linkTag:i,navigateOnClick:l,isActionable:u}}const{passiveCapture:Ze}=Ue;let mn=null,pn=null,vn=null;const hi=Le({name:"QBtn",props:{...Am,percentage:Number,darkPercentage:Boolean,onTouchstart:[Function,Array]},emits:["click","keydown","mousedown","keyup"],setup(e,{slots:t,emit:n}){const{proxy:o}=Ce(),{classes:r,style:i,innerClasses:s,attributes:l,hasLink:a,linkTag:c,navigateOnClick:u,isActionable:f}=Tm(e),d=ae(null),g=ae(null);let p=null,y,S=null;const T=k(()=>e.label!==void 0&&e.label!==null&&e.label!==""),_=k(()=>e.disable===!0||e.ripple===!1?!1:{keyCodes:a.value===!0?[13,32]:[13],...e.ripple===!0?{}:e.ripple}),x=k(()=>({center:e.round})),A=k(()=>{const R=Math.max(0,Math.min(100,e.percentage));return R>0?{transition:"transform 0.6s",transform:`translateX(${R-100}%)`}:{}}),B=k(()=>{if(e.loading===!0)return{onMousedown:O,onTouchstart:O,onClick:O,onKeydown:O,onKeyup:O};if(f.value===!0){const R={onClick:H,onKeydown:$,onMousedown:C};if(o.$q.platform.has.touch===!0){const K=e.onTouchstart!==void 0?"":"Passive";R[`onTouchstart${K}`]=N}return R}return{onClick:et}}),j=k(()=>({ref:d,class:"q-btn q-btn-item non-selectable no-outline "+r.value,style:i.value,...l.value,...B.value}));function H(R){if(d.value!==null){if(R!==void 0){if(R.defaultPrevented===!0)return;const K=document.activeElement;if(e.type==="submit"&&K!==document.body&&d.value.contains(K)===!1&&K.contains(d.value)===!1){R.qAvoidFocus!==!0&&d.value.focus();const J=()=>{document.removeEventListener("keydown",et,!0),document.removeEventListener("keyup",J,Ze),d.value?.removeEventListener("blur",J,Ze)};document.addEventListener("keydown",et,!0),document.addEventListener("keyup",J,Ze),d.value.addEventListener("blur",J,Ze)}}u(R)}}function $(R){d.value!==null&&(n("keydown",R),no(R,[13,32])===!0&&pn!==d.value&&(pn!==null&&b(),R.defaultPrevented!==!0&&(R.qAvoidFocus!==!0&&d.value.focus(),pn=d.value,d.value.classList.add("q-btn--active"),document.addEventListener("keyup",E,!0),d.value.addEventListener("blur",E,Ze)),et(R)))}function N(R){d.value!==null&&(n("touchstart",R),R.defaultPrevented!==!0&&(mn!==d.value&&(mn!==null&&b(),mn=d.value,p=R.target,p.addEventListener("touchcancel",E,Ze),p.addEventListener("touchend",E,Ze)),y=!0,S!==null&&clearTimeout(S),S=setTimeout(()=>{S=null,y=!1},200)))}function C(R){d.value!==null&&(R.qSkipRipple=y===!0,n("mousedown",R),R.defaultPrevented!==!0&&vn!==d.value&&(vn!==null&&b(),vn=d.value,d.value.classList.add("q-btn--active"),document.addEventListener("mouseup",E,Ze)))}function E(R){if(d.value!==null&&!(R?.type==="blur"&&document.activeElement===d.value)){if(R?.type==="keyup"){if(pn===d.value&&no(R,[13,32])===!0){const K=new MouseEvent("click",R);K.qKeyEvent=!0,R.defaultPrevented===!0&&$t(K),R.cancelBubble===!0&&zo(K),d.value.dispatchEvent(K),et(R),R.qKeyEvent=!0}n("keyup",R)}b()}}function b(R){const K=g.value;R!==!0&&(mn===d.value||vn===d.value)&&K!==null&&K!==document.activeElement&&(K.setAttribute("tabindex",-1),K.focus()),mn===d.value&&(p!==null&&(p.removeEventListener("touchcancel",E,Ze),p.removeEventListener("touchend",E,Ze)),mn=p=null),vn===d.value&&(document.removeEventListener("mouseup",E,Ze),vn=null),pn===d.value&&(document.removeEventListener("keyup",E,!0),d.value?.removeEventListener("blur",E,Ze),pn=null),d.value?.classList.remove("q-btn--active")}function O(R){et(R),R.qSkipRipple=!0}return ct(()=>{b(!0)}),Object.assign(o,{click:R=>{f.value===!0&&H(R)}}),()=>{let R=[];e.icon!==void 0&&R.push(P(Tt,{name:e.icon,left:e.stack!==!0&&T.value===!0,role:"img"})),T.value===!0&&R.push(P("span",{class:"block"},[e.label])),R=en(t.default,R),e.iconRight!==void 0&&e.round===!1&&R.push(P(Tt,{name:e.iconRight,right:e.stack!==!0&&T.value===!0,role:"img"}));const K=[P("span",{class:"q-focus-helper",ref:g})];return e.loading===!0&&e.percentage!==void 0&&K.push(P("span",{class:"q-btn__progress absolute-full overflow-hidden"+(e.darkPercentage===!0?" q-btn__progress--dark":"")},[P("span",{class:"q-btn__progress-indicator fit block",style:A.value})])),K.push(P("span",{class:"q-btn__content text-center col items-center q-anchor--skip "+s.value},R)),e.loading!==null&&K.push(P(jo,{name:"q-transition--fade"},()=>e.loading===!0?[P("span",{key:"loading",class:"absolute-full flex flex-center"},t.loading!==void 0?t.loading():[P(io)])]:null)),ua(P(c.value,j.value,K),[[pm,_.value,void 0,x.value]])}}}),fn={dark:{type:Boolean,default:null}};function dn(e,t){return k(()=>e.dark===null?t.dark.isActive:e.dark)}const Pm=Le({name:"QCard",props:{...fn,tag:{type:String,default:"div"},square:Boolean,flat:Boolean,bordered:Boolean},setup(e,{slots:t}){const{proxy:{$q:n}}=Ce(),o=dn(e,n),r=k(()=>"q-card"+(o.value===!0?" q-card--dark q-dark":"")+(e.bordered===!0?" q-card--bordered":"")+(e.square===!0?" q-card--square no-border-radius":"")+(e.flat===!0?" q-card--flat no-shadow":""));return()=>P(e.tag,{class:r.value},rt(t.default))}}),In=Le({name:"QCardSection",props:{tag:{type:String,default:"div"},horizontal:Boolean},setup(e,{slots:t}){const n=k(()=>`q-card__section q-card__section--${e.horizontal===!0?"horiz row no-wrap":"vert"}`);return()=>P(e.tag,{class:n.value},rt(t.default))}}),Om=Le({name:"QCardActions",props:{...Hu,vertical:Boolean},setup(e,{slots:t}){const n=zu(e),o=k(()=>`q-card__actions ${n.value} q-card__actions--${e.vertical===!0?"vert column":"horiz row"}`);return()=>P("div",{class:o.value},rt(t.default))}}),Mm={true:"inset",item:"item-inset","item-thumbnail":"item-thumbnail-inset"},Dr={xs:2,sm:4,md:8,lg:16,xl:24},bl=Le({name:"QSeparator",props:{...fn,spaced:[Boolean,String],inset:[Boolean,String],vertical:Boolean,color:String,size:String},setup(e){const t=Ce(),n=dn(e,t.proxy.$q),o=k(()=>e.vertical===!0?"vertical":"horizontal"),r=k(()=>` q-separator--${o.value}`),i=k(()=>e.inset!==!1?`${r.value}-${Mm[e.inset]}`:""),s=k(()=>`q-separator${r.value}${i.value}`+(e.color!==void 0?` bg-${e.color}`:"")+(n.value===!0?" q-separator--dark":"")),l=k(()=>{const a={};if(e.size!==void 0&&(a[e.vertical===!0?"width":"height"]=e.size),e.spaced!==!1){const c=e.spaced===!0?`${Dr.md}px`:e.spaced in Dr?`${Dr[e.spaced]}px`:e.spaced,u=e.vertical===!0?["Left","Right"]:["Top","Bottom"];a[`margin${u[0]}`]=a[`margin${u[1]}`]=c}return a});return()=>P("hr",{class:s.value,style:l.value,"aria-orientation":o.value})}});let Fr,Co=0;const Oe=new Array(256);for(let e=0;e<256;e++)Oe[e]=(e+256).toString(16).substring(1);const qm=(()=>{const e=typeof crypto<"u"?crypto:typeof window<"u"?window.crypto||window.msCrypto:void 0;if(e!==void 0){if(e.randomBytes!==void 0)return e.randomBytes;if(e.getRandomValues!==void 0)return t=>{const n=new Uint8Array(t);return e.getRandomValues(n),n}}return t=>{const n=[];for(let o=t;o>0;o--)n.push(Math.floor(Math.random()*256));return n}})(),yl=4096;function gi(){(Fr===void 0||Co+16>yl)&&(Co=0,Fr=qm(yl));const e=Array.prototype.slice.call(Fr,Co,Co+=16);return e[6]=e[6]&15|64,e[8]=e[8]&63|128,Oe[e[0]]+Oe[e[1]]+Oe[e[2]]+Oe[e[3]]+"-"+Oe[e[4]]+Oe[e[5]]+"-"+Oe[e[6]]+Oe[e[7]]+"-"+Oe[e[8]]+Oe[e[9]]+"-"+Oe[e[10]]+Oe[e[11]]+Oe[e[12]]+Oe[e[13]]+Oe[e[14]]+Oe[e[15]]}function Lm(e){return e??null}function _l(e,t){return e??(t===!0?`f_${gi()}`:null)}function Im({getValue:e,required:t=!0}={}){if(zt.value===!0){const n=ae(e!==void 0?Lm(e()):null);return t===!0&&n.value===null&&cn(()=>{n.value=`f_${gi()}`}),e!==void 0&&be(e,o=>{n.value=_l(o,t)}),n}return e!==void 0?k(()=>_l(e(),t)):ae(`f_${gi()}`)}const wl=/^on[A-Z]/;function Nm(){const{attrs:e,vnode:t}=Ce(),n={listeners:ae({}),attributes:ae({})};function o(){const r={},i={};for(const s in e)s!=="class"&&s!=="style"&&wl.test(s)===!1&&(r[s]=e[s]);for(const s in t.props)wl.test(s)===!0&&(i[s]=t.props[s]);n.attributes.value=r,n.listeners.value=i}return Ca(o),o(),n}function Bm({validate:e,resetValidation:t,requiresQForm:n}){const o=st(sh,!1);if(o!==!1){const{props:r,proxy:i}=Ce();Object.assign(i,{validate:e,resetValidation:t}),be(()=>r.disable,s=>{s===!0?(typeof t=="function"&&t(),o.unbindComponent(i)):o.bindComponent(i)}),cn(()=>{r.disable!==!0&&o.bindComponent(i)}),ct(()=>{r.disable!==!0&&o.unbindComponent(i)})}else n===!0&&console.error("Parent QForm not found on useFormChild()!")}const xl=/^#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$/,Cl=/^#[0-9a-fA-F]{4}([0-9a-fA-F]{4})?$/,Sl=/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,So=/^rgb\(((0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),){2}(0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5])\)$/,Eo=/^rgba\(((0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),){2}(0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),(0|0\.[0-9]+[1-9]|0\.[1-9]+|1)\)$/,$r={date:e=>/^-?[\d]+\/[0-1]\d\/[0-3]\d$/.test(e),time:e=>/^([0-1]?\d|2[0-3]):[0-5]\d$/.test(e),fulltime:e=>/^([0-1]?\d|2[0-3]):[0-5]\d:[0-5]\d$/.test(e),timeOrFulltime:e=>/^([0-1]?\d|2[0-3]):[0-5]\d(:[0-5]\d)?$/.test(e),email:e=>/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e),hexColor:e=>xl.test(e),hexaColor:e=>Cl.test(e),hexOrHexaColor:e=>Sl.test(e),rgbColor:e=>So.test(e),rgbaColor:e=>Eo.test(e),rgbOrRgbaColor:e=>So.test(e)||Eo.test(e),hexOrRgbColor:e=>xl.test(e)||So.test(e),hexaOrRgbaColor:e=>Cl.test(e)||Eo.test(e),anyColor:e=>Sl.test(e)||So.test(e)||Eo.test(e)},Dm=[!0,!1,"ondemand"],Fm={modelValue:{},error:{type:Boolean,default:null},errorMessage:String,noErrorIcon:Boolean,rules:Array,reactiveRules:Boolean,lazyRules:{type:[Boolean,String],default:!1,validator:e=>Dm.includes(e)}};function $m(e,t){const{props:n,proxy:o}=Ce(),r=ae(!1),i=ae(null),s=ae(!1);Bm({validate:y,resetValidation:p});let l=0,a;const c=k(()=>n.rules!==void 0&&n.rules!==null&&n.rules.length!==0),u=k(()=>n.disable!==!0&&c.value===!0&&t.value===!1),f=k(()=>n.error===!0||r.value===!0),d=k(()=>typeof n.errorMessage=="string"&&n.errorMessage.length!==0?n.errorMessage:i.value);be(()=>n.modelValue,()=>{s.value=!0,u.value===!0&&n.lazyRules===!1&&S()});function g(){n.lazyRules!=="ondemand"&&u.value===!0&&s.value===!0&&S()}be(()=>n.reactiveRules,T=>{T===!0?a===void 0&&(a=be(()=>n.rules,g,{immediate:!0,deep:!0})):a!==void 0&&(a(),a=void 0)},{immediate:!0}),be(()=>n.lazyRules,g),be(e,T=>{T===!0?s.value=!0:u.value===!0&&n.lazyRules!=="ondemand"&&S()});function p(){l++,t.value=!1,s.value=!1,r.value=!1,i.value=null,S.cancel()}function y(T=n.modelValue){if(n.disable===!0||c.value===!1)return!0;const _=++l,x=t.value!==!0?()=>{s.value=!0}:()=>{},A=(j,H)=>{j===!0&&x(),r.value=j,i.value=H||null,t.value=!1},B=[];for(let j=0;j{if(j===void 0||Array.isArray(j)===!1||j.length===0)return _===l&&A(!1),!0;const H=j.find($=>$===!1||typeof $=="string");return _===l&&A(H!==void 0,H),H===void 0},j=>(_===l&&(console.error(j),A(!0)),!1)))}const S=iu(y,0);return ct(()=>{a?.(),S.cancel()}),Object.assign(o,{resetValidation:p,validate:y}),Tn(o,"hasError",()=>f.value),{isDirtyModel:s,hasRules:c,hasError:f,errorMessage:d,validate:y,resetValidation:p}}function mi(e){return e!=null&&(""+e).length!==0}const Vm={...fn,...Fm,label:String,stackLabel:Boolean,hint:String,hideHint:Boolean,prefix:String,suffix:String,labelColor:String,color:String,bgColor:String,filled:Boolean,outlined:Boolean,borderless:Boolean,standout:[Boolean,String],square:Boolean,loading:Boolean,labelSlot:Boolean,bottomSlots:Boolean,hideBottomSpace:Boolean,rounded:Boolean,dense:Boolean,itemAligned:Boolean,counter:Boolean,clearable:Boolean,clearIcon:String,disable:Boolean,readonly:Boolean,autofocus:Boolean,for:String},jm={...Vm,maxlength:[Number,String]},Hm=["update:modelValue","clear","focus","blur"];function zm({requiredForAttr:e=!0,tagProp:t,changeEvent:n=!1}={}){const{props:o,proxy:r}=Ce(),i=dn(o,r.$q),s=Im({required:e,getValue:()=>o.for});return{requiredForAttr:e,changeEvent:n,tag:t===!0?k(()=>o.tag):{value:"label"},isDark:i,editable:k(()=>o.disable!==!0&&o.readonly!==!0),innerLoading:ae(!1),focused:ae(!1),hasPopupOpen:!1,splitAttrs:Nm(),targetUid:s,rootRef:ae(null),targetRef:ae(null),controlRef:ae(null)}}function Um(e){const{props:t,emit:n,slots:o,attrs:r,proxy:i}=Ce(),{$q:s}=i;let l=null;e.hasValue===void 0&&(e.hasValue=k(()=>mi(t.modelValue))),e.emitValue===void 0&&(e.emitValue=M=>{n("update:modelValue",M)}),e.controlEvents===void 0&&(e.controlEvents={onFocusin:N,onFocusout:C}),Object.assign(e,{clearValue:E,onControlFocusin:N,onControlFocusout:C,focus:H}),e.computedCounter===void 0&&(e.computedCounter=k(()=>{if(t.counter!==!1){const M=typeof t.modelValue=="string"||typeof t.modelValue=="number"?(""+t.modelValue).length:Array.isArray(t.modelValue)===!0?t.modelValue.length:0,ne=t.maxlength!==void 0?t.maxlength:t.maxValues;return M+(ne!==void 0?" / "+ne:"")}}));const{isDirtyModel:a,hasRules:c,hasError:u,errorMessage:f,resetValidation:d}=$m(e.focused,e.innerLoading),g=e.floatingLabel!==void 0?k(()=>t.stackLabel===!0||e.focused.value===!0||e.floatingLabel.value===!0):k(()=>t.stackLabel===!0||e.focused.value===!0||e.hasValue.value===!0),p=k(()=>t.bottomSlots===!0||t.hint!==void 0||c.value===!0||t.counter===!0||t.error!==null),y=k(()=>t.filled===!0?"filled":t.outlined===!0?"outlined":t.borderless===!0?"borderless":t.standout?"standout":"standard"),S=k(()=>`q-field row no-wrap items-start q-field--${y.value}`+(e.fieldClass!==void 0?` ${e.fieldClass.value}`:"")+(t.rounded===!0?" q-field--rounded":"")+(t.square===!0?" q-field--square":"")+(g.value===!0?" q-field--float":"")+(_.value===!0?" q-field--labeled":"")+(t.dense===!0?" q-field--dense":"")+(t.itemAligned===!0?" q-field--item-aligned q-item-type":"")+(e.isDark.value===!0?" q-field--dark":"")+(e.getControl===void 0?" q-field--auto-height":"")+(e.focused.value===!0?" q-field--focused":"")+(u.value===!0?" q-field--error":"")+(u.value===!0||e.focused.value===!0?" q-field--highlighted":"")+(t.hideBottomSpace!==!0&&p.value===!0?" q-field--with-bottom":"")+(t.disable===!0?" q-field--disabled":t.readonly===!0?" q-field--readonly":"")),T=k(()=>"q-field__control relative-position row no-wrap"+(t.bgColor!==void 0?` bg-${t.bgColor}`:"")+(u.value===!0?" text-negative":typeof t.standout=="string"&&t.standout.length!==0&&e.focused.value===!0?` ${t.standout}`:t.color!==void 0?` text-${t.color}`:"")),_=k(()=>t.labelSlot===!0||t.label!==void 0),x=k(()=>"q-field__label no-pointer-events absolute ellipsis"+(t.labelColor!==void 0&&u.value!==!0?` text-${t.labelColor}`:"")),A=k(()=>({id:e.targetUid.value,editable:e.editable.value,focused:e.focused.value,floatingLabel:g.value,modelValue:t.modelValue,emitValue:e.emitValue})),B=k(()=>{const M={};return e.targetUid.value&&(M.for=e.targetUid.value),t.disable===!0&&(M["aria-disabled"]="true"),M});function j(){const M=document.activeElement;let ne=e.targetRef?.value;ne&&(M===null||M.id!==e.targetUid.value)&&(ne.hasAttribute("tabindex")===!0||(ne=ne.querySelector("[tabindex]")),ne!==M&&ne?.focus({preventScroll:!0}))}function H(){Di(j)}function $(){Dg(j);const M=document.activeElement;M!==null&&e.rootRef.value.contains(M)&&M.blur()}function N(M){l!==null&&(clearTimeout(l),l=null),e.editable.value===!0&&e.focused.value===!1&&(e.focused.value=!0,n("focus",M))}function C(M,ne){l!==null&&clearTimeout(l),l=setTimeout(()=>{l=null,!(document.hasFocus()===!0&&(e.hasPopupOpen===!0||e.controlRef===void 0||e.controlRef.value===null||e.controlRef.value.contains(document.activeElement)!==!1))&&(e.focused.value===!0&&(e.focused.value=!1,n("blur",M)),ne?.())})}function E(M){et(M),s.platform.is.mobile!==!0?(e.targetRef?.value||e.rootRef.value).focus():e.rootRef.value.contains(document.activeElement)===!0&&document.activeElement.blur(),t.type==="file"&&(e.inputRef.value.value=null),n("update:modelValue",null),e.changeEvent===!0&&n("change",null),n("clear",t.modelValue),Ke(()=>{const ne=a.value;d(),a.value=ne})}function b(M){[13,32].includes(M.keyCode)&&E(M)}function O(){const M=[];return o.prepend!==void 0&&M.push(P("div",{class:"q-field__prepend q-field__marginal row no-wrap items-center",key:"prepend",onClick:$t},o.prepend())),M.push(P("div",{class:"q-field__control-container col relative-position row no-wrap q-anchor--skip"},R())),u.value===!0&&t.noErrorIcon===!1&&M.push(J("error",[P(Tt,{name:s.iconSet.field.error,color:"negative"})])),t.loading===!0||e.innerLoading.value===!0?M.push(J("inner-loading-append",o.loading!==void 0?o.loading():[P(io,{color:t.color})])):t.clearable===!0&&e.hasValue.value===!0&&e.editable.value===!0&&M.push(J("inner-clearable-append",[P(Tt,{class:"q-field__focusable-action",name:t.clearIcon||s.iconSet.field.clear,tabindex:0,role:"button","aria-hidden":"false","aria-label":s.lang.label.clear,onKeyup:b,onClick:E})])),o.append!==void 0&&M.push(P("div",{class:"q-field__append q-field__marginal row no-wrap items-center",key:"append",onClick:$t},o.append())),e.getInnerAppend!==void 0&&M.push(J("inner-append",e.getInnerAppend())),e.getControlChild!==void 0&&M.push(e.getControlChild()),M}function R(){const M=[];return t.prefix!==void 0&&t.prefix!==null&&M.push(P("div",{class:"q-field__prefix no-pointer-events row items-center"},t.prefix)),e.getShadowControl!==void 0&&e.hasShadow.value===!0&&M.push(e.getShadowControl()),_.value===!0&&M.push(P("div",{class:x.value},rt(o.label,t.label))),e.getControl!==void 0?M.push(e.getControl()):o.rawControl!==void 0?M.push(o.rawControl()):o.control!==void 0&&M.push(P("div",{ref:e.targetRef,class:"q-field__native row",tabindex:-1,...e.splitAttrs.attributes.value,"data-autofocus":t.autofocus===!0||void 0},o.control(A.value))),t.suffix!==void 0&&t.suffix!==null&&M.push(P("div",{class:"q-field__suffix no-pointer-events row items-center"},t.suffix)),M.concat(rt(o.default))}function K(){let M,ne;u.value===!0?f.value!==null?(M=[P("div",{role:"alert"},f.value)],ne=`q--slot-error-${f.value}`):(M=rt(o.error),ne="q--slot-error"):(t.hideHint!==!0||e.focused.value===!0)&&(t.hint!==void 0?(M=[P("div",t.hint)],ne=`q--slot-hint-${t.hint}`):(M=rt(o.hint),ne="q--slot-hint"));const we=t.counter===!0||o.counter!==void 0;if(t.hideBottomSpace===!0&&we===!1&&M===void 0)return;const le=P("div",{key:ne,class:"q-field__messages col"},M);return P("div",{class:"q-field__bottom row items-start q-field__bottom--"+(t.hideBottomSpace!==!0?"animated":"stale"),onClick:$t},[t.hideBottomSpace===!0?le:P(jo,{name:"q-transition--field-message"},()=>le),we===!0?P("div",{class:"q-field__counter"},o.counter!==void 0?o.counter():e.computedCounter.value):null])}function J(M,ne){return ne===null?null:P("div",{key:M,class:"q-field__append q-field__marginal row no-wrap items-center q-anchor--skip"},ne)}let V=!1;return tr(()=>{V=!0}),wa(()=>{V===!0&&t.autofocus===!0&&i.focus()}),t.autofocus===!0&&cn(()=>{i.focus()}),ct(()=>{l!==null&&clearTimeout(l)}),Object.assign(i,{focus:H,blur:$}),function(){const ne=e.getControl===void 0&&o.control===void 0?{...e.splitAttrs.attributes.value,"data-autofocus":t.autofocus===!0||void 0,...B.value}:B.value;return P(e.tag.value,{ref:e.rootRef,class:[S.value,r.class],style:r.style,...ne},[o.before!==void 0?P("div",{class:"q-field__before q-field__marginal row no-wrap items-center",onClick:$t},o.before()):null,P("div",{class:"q-field__inner relative-position col self-stretch"},[P("div",{ref:e.controlRef,class:T.value,tabindex:-1,...e.controlEvents},O()),p.value===!0?K():null]),o.after!==void 0?P("div",{class:"q-field__after q-field__marginal row no-wrap items-center",onClick:$t},o.after()):null])}}const El={date:"####/##/##",datetime:"####/##/## ##:##",time:"##:##",fulltime:"##:##:##",phone:"(###) ### - ####",card:"#### #### #### ####"},{tokenMap:kl,tokenKeys:Km}=Ku({"#":{pattern:"[\\d]",negate:"[^\\d]"},S:{pattern:"[a-zA-Z]",negate:"[^a-zA-Z]"},N:{pattern:"[0-9a-zA-Z]",negate:"[^0-9a-zA-Z]"},A:{pattern:"[a-zA-Z]",negate:"[^a-zA-Z]",transform:e=>e.toLocaleUpperCase()},a:{pattern:"[a-zA-Z]",negate:"[^a-zA-Z]",transform:e=>e.toLocaleLowerCase()},X:{pattern:"[0-9a-zA-Z]",negate:"[^0-9a-zA-Z]",transform:e=>e.toLocaleUpperCase()},x:{pattern:"[0-9a-zA-Z]",negate:"[^0-9a-zA-Z]",transform:e=>e.toLocaleLowerCase()}});function Ku(e){const t=Object.keys(e),n={};return t.forEach(o=>{const r=e[o];n[o]={...r,regex:new RegExp(r.pattern)}}),{tokenMap:n,tokenKeys:t}}function Wu(e){return new RegExp("\\\\([^.*+?^${}()|([\\]])|([.*+?^${}()|[\\]])|(["+e.join("")+"])|(.)","g")}const Rl=/[.*+?^${}()|[\]\\]/g,Wm=Wu(Km),Re="",Gm={mask:String,reverseFillMask:Boolean,fillMask:[Boolean,String],unmaskedValue:Boolean,maskTokens:Object};function Qm(e,t,n,o){let r,i,s,l,a,c;const u=k(()=>{if(e.maskTokens===void 0||e.maskTokens===null)return{tokenMap:kl,tokenRegexMask:Wm};const{tokenMap:C}=Ku(e.maskTokens),E={...kl,...C};return{tokenMap:E,tokenRegexMask:Wu(Object.keys(E))}}),f=ae(null),d=ae(p());function g(){return e.autogrow===!0||["textarea","text","search","url","tel","password"].includes(e.type)}be(()=>e.type+e.autogrow,S),be(()=>e.mask,C=>{if(C!==void 0)T(d.value,!0);else{const E=$(d.value);S(),e.modelValue!==E&&t("update:modelValue",E)}}),be(()=>e.fillMask+e.reverseFillMask,()=>{f.value===!0&&T(d.value,!0)}),be(()=>e.unmaskedValue,()=>{f.value===!0&&T(d.value)});function p(){if(S(),f.value===!0){const C=j($(e.modelValue));return e.fillMask!==!1?N(C):C}return e.modelValue}function y(C){if(C0;R--)E+=Re;b=b.slice(0,O)+E+b.slice(O)}return b}function S(){if(f.value=e.mask!==void 0&&e.mask.length!==0&&g(),f.value===!1){l=void 0,r="",i="";return}const C=El[e.mask]===void 0?e.mask:El[e.mask],E=typeof e.fillMask=="string"&&e.fillMask.length!==0?e.fillMask.slice(0,1):"_",b=E.replace(Rl,"\\$&"),O=[],R=[],K=[];let J=e.reverseFillMask===!0,V="",M="";C.replace(u.value.tokenRegexMask,(D,ue,_e,ke,ee)=>{if(ke!==void 0){const w=u.value.tokenMap[ke];K.push(w),M=w.negate,J===!0&&(R.push("(?:"+M+"+)?("+w.pattern+"+)?(?:"+M+"+)?("+w.pattern+"+)?"),J=!1),R.push("(?:"+M+"+)?("+w.pattern+")?")}else if(_e!==void 0)V="\\"+(_e==="\\"?"":_e),K.push(_e),O.push("([^"+V+"]+)?"+V+"?");else{const w=ue!==void 0?ue:ee;V=w==="\\"?"\\\\\\\\":w.replace(Rl,"\\\\$&"),K.push(w),O.push("([^"+V+"]+)?"+V+"?")}});const ne=new RegExp("^"+O.join("")+"("+(V===""?".":"[^"+V+"]")+"+)?"+(V===""?"":"["+V+"]*")+"$"),we=R.length-1,le=R.map((D,ue)=>ue===0&&e.reverseFillMask===!0?new RegExp("^"+b+"*"+D):ue===we?new RegExp("^"+D+"("+(M===""?".":M)+"+)?"+(e.reverseFillMask===!0?"$":b+"*")):new RegExp("^"+D));s=K,l=D=>{const ue=ne.exec(e.reverseFillMask===!0?D:D.slice(0,K.length+1));ue!==null&&(D=ue.slice(1).join(""));const _e=[],ke=le.length;for(let ee=0,w=D;eetypeof D=="string"?D:Re).join(""),i=r.split(Re).join(E)}function T(C,E,b){const O=o.value,R=O.selectionEnd,K=O.value.length-R,J=$(C);E===!0&&S();const V=j(J,E),M=e.fillMask!==!1?N(V):V,ne=d.value!==M;O.value!==M&&(O.value=M),ne===!0&&(d.value=M),document.activeElement===O&&Ke(()=>{if(M===i){const le=e.reverseFillMask===!0?i.length:0;O.setSelectionRange(le,le,"forward");return}if(b==="insertFromPaste"&&e.reverseFillMask!==!0){const le=O.selectionEnd;let D=R-1;for(let ue=a;ue<=D&&ueV.length?1:0:Math.max(0,M.length-(M===i?0:Math.min(V.length,K)+1))+1:R;O.setSelectionRange(le,le,"forward");return}if(e.reverseFillMask===!0)if(ne===!0){const le=Math.max(0,M.length-(M===i?0:Math.min(V.length,K+1)));le===1&&R===1?O.setSelectionRange(le,le,"forward"):x.rightReverse(O,le)}else{const le=M.length-K;O.setSelectionRange(le,le,"backward")}else if(ne===!0){const le=Math.max(0,r.indexOf(Re),Math.min(V.length,R)-1);x.right(O,le)}else{const le=R-1;x.right(O,le)}});const we=e.unmaskedValue===!0?$(M):M;String(e.modelValue)!==we&&(e.modelValue!==null||we!=="")&&n(we,!0)}function _(C,E,b){const O=j($(C.value));E=Math.max(0,r.indexOf(Re),Math.min(O.length,E)),a=E,C.setSelectionRange(E,b,"forward")}const x={left(C,E){const b=r.slice(E-1).indexOf(Re)===-1;let O=Math.max(0,E-1);for(;O>=0;O--)if(r[O]===Re){E=O,b===!0&&E++;break}if(O<0&&r[E]!==void 0&&r[E]!==Re)return x.right(C,0);E>=0&&C.setSelectionRange(E,E,"backward")},right(C,E){const b=C.value.length;let O=Math.min(b,E+1);for(;O<=b;O++)if(r[O]===Re){E=O;break}else r[O-1]===Re&&(E=O);if(O>b&&r[E-1]!==void 0&&r[E-1]!==Re)return x.left(C,b);C.setSelectionRange(E,E,"forward")},leftReverse(C,E){const b=y(C.value.length);let O=Math.max(0,E-1);for(;O>=0;O--)if(b[O-1]===Re){E=O;break}else if(b[O]===Re&&(E=O,O===0))break;if(O<0&&b[E]!==void 0&&b[E]!==Re)return x.rightReverse(C,0);E>=0&&C.setSelectionRange(E,E,"backward")},rightReverse(C,E){const b=C.value.length,O=y(b),R=O.slice(0,E+1).indexOf(Re)===-1;let K=Math.min(b,E+1);for(;K<=b;K++)if(O[K-1]===Re){E=K,E>0&&R===!0&&E--;break}if(K>b&&O[E-1]!==void 0&&O[E-1]!==Re)return x.leftReverse(C,b);C.setSelectionRange(E,E,"forward")}};function A(C){t("click",C),c=void 0}function B(C){if(t("keydown",C),lu(C)===!0||C.altKey===!0)return;const E=o.value,b=E.selectionStart,O=E.selectionEnd;if(C.shiftKey||(c=void 0),C.keyCode===37||C.keyCode===39){C.shiftKey&&c===void 0&&(c=E.selectionDirection==="forward"?b:O);const R=x[(C.keyCode===39?"right":"left")+(e.reverseFillMask===!0?"Reverse":"")];if(C.preventDefault(),R(E,c===b?O:b),C.shiftKey){const K=E.selectionStart;E.setSelectionRange(Math.min(c,K),Math.max(c,K),"forward")}}else C.keyCode===8&&e.reverseFillMask!==!0&&b===O?(x.left(E,b),E.setSelectionRange(E.selectionStart,O,"backward")):C.keyCode===46&&e.reverseFillMask===!0&&b===O&&(x.rightReverse(E,O),E.setSelectionRange(b,E.selectionEnd,"forward"))}function j(C,E){if(C==null||C==="")return"";if(e.reverseFillMask===!0)return H(C,E);const b=s;let O=0,R="";for(let K=0;K=0&&R!==-1;J--){const V=b[J];let M=C[R];if(typeof V=="string")K=V+K,E===!0&&M===V&&R--;else if(M!==void 0&&V.regex.test(M))do K=(V.transform!==void 0?V.transform(M):M)+K,R--,M=C[R];while(O===J&&M!==void 0&&V.regex.test(M));else return K}return K}function $(C){return typeof C!="string"||l===void 0?typeof C=="number"?l(""+C):C:l(C)}function N(C){return i.length-C.length<=0?C:e.reverseFillMask===!0&&C.length!==0?i.slice(0,-C.length)+C:C+i.slice(C.length)}return{innerValue:d,hasMask:f,moveCursorForPaste:_,updateMaskValue:T,onMaskedKeydown:B,onMaskedClick:A}}const $i={name:String};function Gu(e={}){return(t,n,o)=>{t[n](P("input",{class:"hidden"+(o||""),...e.value}))}}function Ym(e){return k(()=>e.name||e.for)}function Jm(e,t){function n(){const o=e.modelValue;try{const r="DataTransfer"in window?new DataTransfer:"ClipboardEvent"in window?new ClipboardEvent("").clipboardData:void 0;return Object(o)===o&&("length"in o?Array.from(o):[o]).forEach(i=>{r.items.add(i)}),{files:r.files}}catch{return{files:void 0}}}return k(t===!0?()=>{if(e.type==="file")return n()}:n)}const Zm=/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/,Xm=/[\u4e00-\u9fff\u3400-\u4dbf\u{20000}-\u{2a6df}\u{2a700}-\u{2b73f}\u{2b740}-\u{2b81f}\u{2b820}-\u{2ceaf}\uf900-\ufaff\u3300-\u33ff\ufe30-\ufe4f\uf900-\ufaff\u{2f800}-\u{2fa1f}]/u,ep=/[\u3131-\u314e\u314f-\u3163\uac00-\ud7a3]/,tp=/[a-z0-9_ -]$/i;function np(e){return function(n){if(n.type==="compositionend"||n.type==="change"){if(n.target.qComposing!==!0)return;n.target.qComposing=!1,e(n)}else n.type==="compositionupdate"&&n.target.qComposing!==!0&&typeof n.data=="string"&&(Te.is.firefox===!0?tp.test(n.data)===!1:Zm.test(n.data)===!0||Xm.test(n.data)===!0||ep.test(n.data)===!0)===!0&&(n.target.qComposing=!0)}}const op=Le({name:"QInput",inheritAttrs:!1,props:{...jm,...Gm,...$i,modelValue:[String,Number,FileList],shadowText:String,type:{type:String,default:"text"},debounce:[String,Number],autogrow:Boolean,inputClass:[Array,String,Object],inputStyle:[Array,String,Object]},emits:[...Hm,"paste","change","keydown","click","animationend"],setup(e,{emit:t,attrs:n}){const{proxy:o}=Ce(),{$q:r}=o,i={};let s=NaN,l,a,c=null,u;const f=ae(null),d=Ym(e),{innerValue:g,hasMask:p,moveCursorForPaste:y,updateMaskValue:S,onMaskedKeydown:T,onMaskedClick:_}=Qm(e,t,J,f),x=Jm(e,!0),A=k(()=>mi(g.value)),B=np(R),j=zm({changeEvent:!0}),H=k(()=>e.type==="textarea"||e.autogrow===!0),$=k(()=>H.value===!0||["text","search","url","tel","password"].includes(e.type)),N=k(()=>{const D={...j.splitAttrs.listeners.value,onInput:R,onPaste:O,onChange:M,onBlur:ne,onFocus:zo};return D.onCompositionstart=D.onCompositionupdate=D.onCompositionend=B,p.value===!0&&(D.onKeydown=T,D.onClick=_),e.autogrow===!0&&(D.onAnimationend=K),D}),C=k(()=>{const D={tabindex:0,"data-autofocus":e.autofocus===!0||void 0,rows:e.type==="textarea"?6:void 0,"aria-label":e.label,name:d.value,...j.splitAttrs.attributes.value,id:j.targetUid.value,maxlength:e.maxlength,disabled:e.disable===!0,readonly:e.readonly===!0};return H.value===!1&&(D.type=e.type),e.autogrow===!0&&(D.rows=1),D});be(()=>e.type,()=>{f.value&&(f.value.value=e.modelValue)}),be(()=>e.modelValue,D=>{if(p.value===!0){if(a===!0&&(a=!1,String(D)===s))return;S(D)}else g.value!==D&&(g.value=D,e.type==="number"&&i.hasOwnProperty("value")===!0&&(l===!0?l=!1:delete i.value));e.autogrow===!0&&Ke(V)}),be(()=>e.autogrow,D=>{D===!0?Ke(V):f.value!==null&&n.rows>0&&(f.value.style.height="auto")}),be(()=>e.dense,()=>{e.autogrow===!0&&Ke(V)});function E(){Di(()=>{const D=document.activeElement;f.value!==null&&f.value!==D&&(D===null||D.id!==j.targetUid.value)&&f.value.focus({preventScroll:!0})})}function b(){f.value?.select()}function O(D){if(p.value===!0&&e.reverseFillMask!==!0){const ue=D.target;y(ue,ue.selectionStart,ue.selectionEnd)}t("paste",D)}function R(D){if(!D||!D.target)return;if(e.type==="file"){t("update:modelValue",D.target.files);return}const ue=D.target.value;if(D.target.qComposing===!0){i.value=ue;return}if(p.value===!0)S(ue,!1,D.inputType);else if(J(ue),$.value===!0&&D.target===document.activeElement){const{selectionStart:_e,selectionEnd:ke}=D.target;_e!==void 0&&ke!==void 0&&Ke(()=>{D.target===document.activeElement&&ue.indexOf(D.target.value)===0&&D.target.setSelectionRange(_e,ke)})}e.autogrow===!0&&V()}function K(D){t("animationend",D),V()}function J(D,ue){u=()=>{c=null,e.type!=="number"&&i.hasOwnProperty("value")===!0&&delete i.value,e.modelValue!==D&&s!==D&&(s=D,ue===!0&&(a=!0),t("update:modelValue",D),Ke(()=>{s===D&&(s=NaN)})),u=void 0},e.type==="number"&&(l=!0,i.value=D),e.debounce!==void 0?(c!==null&&clearTimeout(c),i.value=D,c=setTimeout(u,e.debounce)):u()}function V(){requestAnimationFrame(()=>{const D=f.value;if(D!==null){const ue=D.parentNode.style,{scrollTop:_e}=D,{overflowY:ke,maxHeight:ee}=r.platform.is.firefox===!0?{}:window.getComputedStyle(D),w=ke!==void 0&&ke!=="scroll";w===!0&&(D.style.overflowY="hidden"),ue.marginBottom=D.scrollHeight-1+"px",D.style.height="1px",D.style.height=D.scrollHeight+"px",w===!0&&(D.style.overflowY=parseInt(ee,10){f.value!==null&&(f.value.value=g.value!==void 0?g.value:"")})}function we(){return i.hasOwnProperty("value")===!0?i.value:g.value!==void 0?g.value:""}ct(()=>{ne()}),cn(()=>{e.autogrow===!0&&V()}),Object.assign(j,{innerValue:g,fieldClass:k(()=>`q-${H.value===!0?"textarea":"input"}`+(e.autogrow===!0?" q-textarea--autogrow":"")),hasShadow:k(()=>e.type!=="file"&&typeof e.shadowText=="string"&&e.shadowText.length!==0),inputRef:f,emitValue:J,hasValue:A,floatingLabel:k(()=>A.value===!0&&(e.type!=="number"||isNaN(g.value)===!1)||mi(e.displayValue)),getControl:()=>P(H.value===!0?"textarea":"input",{ref:f,class:["q-field__native q-placeholder",e.inputClass],style:e.inputStyle,...C.value,...N.value,...e.type!=="file"?{value:we()}:x.value}),getShadowControl:()=>P("div",{class:"q-field__native q-field__shadow absolute-bottom no-pointer-events"+(H.value===!0?"":" text-no-wrap")},[P("span",{class:"invisible"},we()),P("span",e.shadowText)])});const le=Um(j);return Object.assign(o,{focus:E,select:b,getNativeElement:()=>f.value}),Tn(o,"nativeEl",()=>f.value),le}});function Qu(e,t){const n=ae(null),o=k(()=>e.disable===!0?null:P("span",{ref:n,class:"no-outline",tabindex:-1}));function r(i){const s=t.value;i?.qAvoidFocus!==!0&&(i?.type.indexOf("key")===0?document.activeElement!==s&&s?.contains(document.activeElement)===!0&&s.focus():n.value!==null&&(i===void 0||s?.contains(i.target)===!0)&&n.value.focus())}return{refocusTargetEl:o,refocusTarget:r}}const Yu={xs:30,sm:35,md:40,lg:50,xl:60},rp=()=>P("svg",{key:"svg",class:"q-radio__bg absolute non-selectable",viewBox:"0 0 24 24"},[P("path",{d:"M12,22a10,10 0 0 1 -10,-10a10,10 0 0 1 10,-10a10,10 0 0 1 10,10a10,10 0 0 1 -10,10m0,-22a12,12 0 0 0 -12,12a12,12 0 0 0 12,12a12,12 0 0 0 12,-12a12,12 0 0 0 -12,-12"}),P("path",{class:"q-radio__check",d:"M12,6a6,6 0 0 0 -6,6a6,6 0 0 0 6,6a6,6 0 0 0 6,-6a6,6 0 0 0 -6,-6"})]),ip=Le({name:"QRadio",props:{...fn,...fo,...$i,modelValue:{required:!0},val:{required:!0},label:String,leftLabel:Boolean,checkedIcon:String,uncheckedIcon:String,color:String,keepColor:Boolean,dense:Boolean,disable:Boolean,tabindex:[String,Number]},emits:["update:modelValue"],setup(e,{slots:t,emit:n}){const{proxy:o}=Ce(),r=dn(e,o.$q),i=ho(e,Yu),s=ae(null),{refocusTargetEl:l,refocusTarget:a}=Qu(e,s),c=k(()=>se(e.modelValue)===se(e.val)),u=k(()=>"q-radio cursor-pointer no-outline row inline no-wrap items-center"+(e.disable===!0?" disabled":"")+(r.value===!0?" q-radio--dark":"")+(e.dense===!0?" q-radio--dense":"")+(e.leftLabel===!0?" reverse":"")),f=k(()=>{const A=e.color!==void 0&&(e.keepColor===!0||c.value===!0)?` text-${e.color}`:"";return`q-radio__inner relative-position q-radio__inner--${c.value===!0?"truthy":"falsy"}${A}`}),d=k(()=>(c.value===!0?e.checkedIcon:e.uncheckedIcon)||null),g=k(()=>e.disable===!0?-1:e.tabindex||0),p=k(()=>{const A={type:"radio"};return e.name!==void 0&&Object.assign(A,{".checked":c.value===!0,"^checked":c.value===!0?"checked":void 0,name:e.name,value:e.val}),A}),y=Gu(p);function S(A){A!==void 0&&(et(A),a(A)),e.disable!==!0&&c.value!==!0&&n("update:modelValue",e.val,A)}function T(A){(A.keyCode===13||A.keyCode===32)&&et(A)}function _(A){(A.keyCode===13||A.keyCode===32)&&S(A)}Object.assign(o,{set:S});const x=rp();return()=>{const A=d.value!==null?[P("div",{key:"icon",class:"q-radio__icon-container absolute-full flex flex-center no-wrap"},[P(Tt,{class:"q-radio__icon",name:d.value})])]:[x];e.disable!==!0&&y(A,"unshift"," q-radio__native q-ma-none q-pa-none");const B=[P("div",{class:f.value,style:i.value,"aria-hidden":"true"},A)];l.value!==null&&B.push(l.value);const j=e.label!==void 0?en(t.default,[e.label]):rt(t.default);return j!==void 0&&B.push(P("div",{class:"q-radio__label q-anchor--skip"},j)),P("div",{ref:s,class:u.value,tabindex:g.value,role:"radio","aria-label":e.label,"aria-checked":c.value===!0?"true":"false","aria-disabled":e.disable===!0?"true":void 0,onClick:S,onKeydown:T,onKeyup:_},B)}}}),Ju={...fn,...fo,...$i,modelValue:{required:!0,default:null},val:{},trueValue:{default:!0},falseValue:{default:!1},indeterminateValue:{default:null},checkedIcon:String,uncheckedIcon:String,indeterminateIcon:String,toggleOrder:{type:String,validator:e=>e==="tf"||e==="ft"},toggleIndeterminate:Boolean,label:String,leftLabel:Boolean,color:String,keepColor:Boolean,dense:Boolean,disable:Boolean,tabindex:[String,Number]},Zu=["update:modelValue"];function Xu(e,t){const{props:n,slots:o,emit:r,proxy:i}=Ce(),{$q:s}=i,l=dn(n,s),a=ae(null),{refocusTargetEl:c,refocusTarget:u}=Qu(n,a),f=ho(n,Yu),d=k(()=>n.val!==void 0&&Array.isArray(n.modelValue)),g=k(()=>{const b=se(n.val);return d.value===!0?n.modelValue.findIndex(O=>se(O)===b):-1}),p=k(()=>d.value===!0?g.value!==-1:se(n.modelValue)===se(n.trueValue)),y=k(()=>d.value===!0?g.value===-1:se(n.modelValue)===se(n.falseValue)),S=k(()=>p.value===!1&&y.value===!1),T=k(()=>n.disable===!0?-1:n.tabindex||0),_=k(()=>`q-${e} cursor-pointer no-outline row inline no-wrap items-center`+(n.disable===!0?" disabled":"")+(l.value===!0?` q-${e}--dark`:"")+(n.dense===!0?` q-${e}--dense`:"")+(n.leftLabel===!0?" reverse":"")),x=k(()=>{const b=p.value===!0?"truthy":y.value===!0?"falsy":"indet",O=n.color!==void 0&&(n.keepColor===!0||(e==="toggle"?p.value===!0:y.value!==!0))?` text-${n.color}`:"";return`q-${e}__inner relative-position non-selectable q-${e}__inner--${b}${O}`}),A=k(()=>{const b={type:"checkbox"};return n.name!==void 0&&Object.assign(b,{".checked":p.value,"^checked":p.value===!0?"checked":void 0,name:n.name,value:d.value===!0?n.val:n.trueValue}),b}),B=Gu(A),j=k(()=>{const b={tabindex:T.value,role:e==="toggle"?"switch":"checkbox","aria-label":n.label,"aria-checked":S.value===!0?"mixed":p.value===!0?"true":"false"};return n.disable===!0&&(b["aria-disabled"]="true"),b});function H(b){b!==void 0&&(et(b),u(b)),n.disable!==!0&&r("update:modelValue",$(),b)}function $(){if(d.value===!0){if(p.value===!0){const b=n.modelValue.slice();return b.splice(g.value,1),b}return n.modelValue.concat([n.val])}if(p.value===!0){if(n.toggleOrder!=="ft"||n.toggleIndeterminate===!1)return n.falseValue}else if(y.value===!0){if(n.toggleOrder==="ft"||n.toggleIndeterminate===!1)return n.trueValue}else return n.toggleOrder!=="ft"?n.trueValue:n.falseValue;return n.indeterminateValue}function N(b){(b.keyCode===13||b.keyCode===32)&&et(b)}function C(b){(b.keyCode===13||b.keyCode===32)&&H(b)}const E=t(p,S);return Object.assign(i,{toggle:H}),()=>{const b=E();n.disable!==!0&&B(b,"unshift",` q-${e}__native absolute q-ma-none q-pa-none`);const O=[P("div",{class:x.value,style:f.value,"aria-hidden":"true"},b)];c.value!==null&&O.push(c.value);const R=n.label!==void 0?en(o.default,[n.label]):rt(o.default);return R!==void 0&&O.push(P("div",{class:`q-${e}__label q-anchor--skip`},R)),P("div",{ref:a,class:_.value,...j.value,onClick:H,onKeydown:N,onKeyup:C},O)}}const sp=()=>P("div",{key:"svg",class:"q-checkbox__bg absolute"},[P("svg",{class:"q-checkbox__svg fit absolute-full",viewBox:"0 0 24 24"},[P("path",{class:"q-checkbox__truthy",fill:"none",d:"M1.73,12.91 8.1,19.28 22.79,4.59"}),P("path",{class:"q-checkbox__indet",d:"M4,14H20V10H4"})])]),lp=Le({name:"QCheckbox",props:Ju,emits:Zu,setup(e){const t=sp();function n(o,r){const i=k(()=>(o.value===!0?e.checkedIcon:r.value===!0?e.indeterminateIcon:e.uncheckedIcon)||null);return()=>i.value!==null?[P("div",{key:"icon",class:"q-checkbox__icon-container absolute-full flex flex-center no-wrap"},[P(Tt,{class:"q-checkbox__icon",name:i.value})])]:[t]}return Xu("checkbox",n)}}),ap=Le({name:"QToggle",props:{...Ju,icon:String,iconColor:String},emits:Zu,setup(e){function t(n,o){const r=k(()=>(n.value===!0?e.checkedIcon:o.value===!0?e.indeterminateIcon:e.uncheckedIcon)||e.icon),i=k(()=>n.value===!0?e.iconColor:null);return()=>[P("div",{class:"q-toggle__track"}),P("div",{class:"q-toggle__thumb absolute flex flex-center no-wrap"},r.value!==void 0?[P(Tt,{name:r.value,color:i.value})]:void 0)]}return Xu("toggle",t)}}),ec={radio:ip,checkbox:lp,toggle:ap},up=Object.keys(ec);function Vr(e,t){if(typeof e=="function")return e;const n=e!==void 0?e:t;return o=>o[n]}const cp=Le({name:"QOptionGroup",props:{...fn,modelValue:{required:!0},options:{type:Array,validator:e=>e.every(ot),default:()=>[]},optionValue:[Function,String],optionLabel:[Function,String],optionDisable:[Function,String],name:String,type:{type:String,default:"radio",validator:e=>up.includes(e)},color:String,keepColor:Boolean,dense:Boolean,size:String,leftLabel:Boolean,inline:Boolean,disable:Boolean},emits:["update:modelValue"],setup(e,{emit:t,slots:n}){const{proxy:{$q:o}}=Ce(),r=Array.isArray(e.modelValue);e.type==="radio"?r===!0&&console.error("q-option-group: model should not be array"):r===!1&&console.error("q-option-group: model should be array in your case");const i=dn(e,o),s=k(()=>ec[e.type]),l=k(()=>Vr(e.optionValue,"value")),a=k(()=>Vr(e.optionLabel,"label")),c=k(()=>Vr(e.optionDisable,"disable")),u=k(()=>e.options.map(p=>({val:l.value(p),name:p.name===void 0?e.name:p.name,disable:e.disable||c.value(p),leftLabel:p.leftLabel===void 0?e.leftLabel:p.leftLabel,color:p.color===void 0?e.color:p.color,checkedIcon:p.checkedIcon,uncheckedIcon:p.uncheckedIcon,dark:p.dark===void 0?i.value:p.dark,size:p.size===void 0?e.size:p.size,dense:e.dense,keepColor:p.keepColor===void 0?e.keepColor:p.keepColor}))),f=k(()=>"q-option-group q-gutter-x-sm"+(e.inline===!0?" q-option-group--inline":"")),d=k(()=>{const p={role:"group"};return e.type==="radio"&&(p.role="radiogroup",e.disable===!0&&(p["aria-disabled"]="true")),p});function g(p){t("update:modelValue",p)}return()=>P("div",{class:f.value,...d.value},e.options.map((p,y)=>{const S=n["label-"+y]!==void 0?()=>n["label-"+y](p):n.label!==void 0?()=>n.label(p):void 0;return P("div",[P(s.value,{label:S===void 0?a.value(p):null,modelValue:e.modelValue,"onUpdate:modelValue":g,...u.value[y]},S)])}))}}),fp=Le({name:"DialogPluginComponent",props:{...fn,title:String,message:String,prompt:Object,options:Object,progress:[Boolean,Object],html:Boolean,ok:{type:[String,Object,Boolean],default:!0},cancel:[String,Object,Boolean],focus:{type:String,default:"ok",validator:e=>["ok","cancel","none"].includes(e)},stackButtons:Boolean,color:String,cardClass:[String,Array,Object],cardStyle:[String,Array,Object]},emits:["ok","hide"],setup(e,{emit:t}){const{proxy:n}=Ce(),{$q:o}=n,r=dn(e,o),i=ae(null),s=ae(e.prompt!==void 0?e.prompt.model:e.options!==void 0?e.options.model:void 0),l=k(()=>"q-dialog-plugin"+(r.value===!0?" q-dialog-plugin--dark q-dark":"")+(e.progress!==!1?" q-dialog-plugin--progress":"")),a=k(()=>e.color||(r.value===!0?"amber":"primary")),c=k(()=>e.progress===!1?null:ot(e.progress)===!0?{component:e.progress.spinner||io,props:{color:e.progress.color||a.value}}:{component:io,props:{color:a.value}}),u=k(()=>e.prompt!==void 0||e.options!==void 0),f=k(()=>{if(u.value!==!0)return{};const{model:R,isValid:K,items:J,...V}=e.prompt!==void 0?e.prompt:e.options;return V}),d=k(()=>ot(e.ok)===!0||e.ok===!0?o.lang.label.ok:e.ok),g=k(()=>ot(e.cancel)===!0||e.cancel===!0?o.lang.label.cancel:e.cancel),p=k(()=>e.prompt!==void 0?e.prompt.isValid!==void 0&&e.prompt.isValid(s.value)!==!0:e.options!==void 0?e.options.isValid!==void 0&&e.options.isValid(s.value)!==!0:!1),y=k(()=>({color:a.value,label:d.value,ripple:!1,disable:p.value,...ot(e.ok)===!0?e.ok:{flat:!0},"data-autofocus":e.focus==="ok"&&u.value!==!0||void 0,onClick:x})),S=k(()=>({color:a.value,label:g.value,ripple:!1,...ot(e.cancel)===!0?e.cancel:{flat:!0},"data-autofocus":e.focus==="cancel"&&u.value!==!0||void 0,onClick:A}));be(()=>e.prompt&&e.prompt.model,j),be(()=>e.options&&e.options.model,j);function T(){i.value.show()}function _(){i.value.hide()}function x(){t("ok",se(s.value)),_()}function A(){_()}function B(){t("hide")}function j(R){s.value=R}function H(R){p.value!==!0&&e.prompt.type!=="textarea"&&no(R,13)===!0&&x()}function $(R,K){return e.html===!0?P(In,{class:R,innerHTML:K}):P(In,{class:R},()=>K)}function N(){return[P(op,{color:a.value,dense:!0,autofocus:!0,dark:r.value,...f.value,modelValue:s.value,"onUpdate:modelValue":j,onKeyup:H})]}function C(){return[P(cp,{color:a.value,options:e.options.items,dark:r.value,...f.value,modelValue:s.value,"onUpdate:modelValue":j})]}function E(){const R=[];return e.cancel&&R.push(P(hi,S.value)),e.ok&&R.push(P(hi,y.value)),P(Om,{class:e.stackButtons===!0?"items-end":"",vertical:e.stackButtons,align:"right"},()=>R)}function b(){const R=[];return e.title&&R.push($("q-dialog__title",e.title)),e.progress!==!1&&R.push(P(In,{class:"q-dialog__progress"},()=>P(c.value.component,c.value.props))),e.message&&R.push($("q-dialog__message",e.message)),e.prompt!==void 0?R.push(P(In,{class:"scroll q-dialog-plugin__form"},N)):e.options!==void 0&&R.push(P(bl,{dark:r.value}),P(In,{class:"scroll q-dialog-plugin__form"},C),P(bl,{dark:r.value})),(e.ok||e.cancel)&&R.push(E()),R}function O(){return[P(Pm,{class:[l.value,e.cardClass],style:e.cardStyle,dark:r.value},b)]}return Object.assign(n,{show:T,hide:_}),()=>P(im,{ref:i,onHide:B},O)}});function tc(e,t){for(const n in t)n!=="spinner"&&Object(t[n])===t[n]?(e[n]=Object(e[n])!==e[n]?{}:{...e[n]},tc(e[n],t[n])):e[n]=t[n]}function dp(e,t,n){return o=>{let r,i;const s=o.component!==void 0;if(s===!0){const{component:_,componentProps:x}=o;r=typeof _=="string"?n.component(_):_,i=x||{}}else{const{class:_,style:x,...A}=o;r=e,i=A,_!==void 0&&(A.cardClass=_),x!==void 0&&(A.cardStyle=x)}let l,a=!1;const c=ae(null),u=Fi(!1,"dialog"),f=_=>{if(c.value?.[_]!==void 0){c.value[_]();return}const x=l.$.subTree;if(x?.component){if(x.component.proxy&&x.component.proxy[_]){x.component.proxy[_]();return}if(x.component.subTree&&x.component.subTree.component&&x.component.subTree.component.proxy&&x.component.subTree.component.proxy[_]){x.component.subTree.component.proxy[_]();return}}console.error("[Quasar] Incorrectly defined Dialog component")},d=[],g=[],p={onOk(_){return d.push(_),p},onCancel(_){return g.push(_),p},onDismiss(_){return d.push(_),g.push(_),p},hide(){return f("hide"),p},update(_){if(l!==null){if(s===!0)Object.assign(i,_);else{const{class:x,style:A,...B}=_;x!==void 0&&(B.cardClass=x),A!==void 0&&(B.cardStyle=A),tc(i,B)}l.$forceUpdate()}return p}},y=_=>{a=!0,d.forEach(x=>{x(_)})},S=()=>{T.unmount(u),Mu(u),T=null,l=null,a!==!0&&g.forEach(_=>{_()})};let T=fu({name:"QGlobalDialog",setup:()=>()=>P(r,{...i,ref:c,onOk:y,onHide:S,onVnodeMounted(..._){typeof i.onVnodeMounted=="function"&&i.onVnodeMounted(..._),Ke(()=>f("show"))}})},n);return l=T.mount(u),p}}const hp={install({$q:e,parentApp:t}){e.dialog=this.create=dp(fp,!0,t)}},gp=Le({name:"QAvatar",props:{...fo,fontSize:String,color:String,textColor:String,icon:String,square:Boolean,rounded:Boolean},setup(e,{slots:t}){const n=ho(e),o=k(()=>"q-avatar"+(e.color?` bg-${e.color}`:"")+(e.textColor?` text-${e.textColor} q-chip--colored`:"")+(e.square===!0?" q-avatar--square":e.rounded===!0?" rounded-borders":"")),r=k(()=>e.fontSize?{fontSize:e.fontSize}:null);return()=>{const i=e.icon!==void 0?[P(Tt,{name:e.icon})]:void 0;return P("div",{class:o.value,style:n.value},[P("div",{class:"q-avatar__content row flex-center overflow-hidden",style:r.value},Zg(t.default,i))])}}});let mp=0;const Oo={},Mo={},nt={},nc={},pp=/^\s*$/,oc=[],vp=[void 0,null,!0,!1,""],Vi=["top-left","top-right","bottom-left","bottom-right","top","bottom","left","right","center"],bp=["top-left","top-right","bottom-left","bottom-right"],Fn={positive:{icon:e=>e.iconSet.type.positive,color:"positive"},negative:{icon:e=>e.iconSet.type.negative,color:"negative"},warning:{icon:e=>e.iconSet.type.warning,color:"warning",textColor:"dark"},info:{icon:e=>e.iconSet.type.info,color:"info"},ongoing:{group:!1,timeout:0,spinner:!0,color:"grey-8"}};function rc(e,t,n){if(!e)return Nn("parameter required");let o;const r={textColor:"white"};if(e.ignoreDefaults!==!0&&Object.assign(r,Oo),ot(e)===!1&&(r.type&&Object.assign(r,Fn[r.type]),e={message:e}),Object.assign(r,Fn[e.type||r.type],e),typeof r.icon=="function"&&(r.icon=r.icon(t)),r.spinner?(r.spinner===!0&&(r.spinner=io),r.spinner=un(r.spinner)):r.spinner=!1,r.meta={hasMedia:!!(r.spinner!==!1||r.icon||r.avatar),hasText:Al(r.message)||Al(r.caption)},r.position){if(Vi.includes(r.position)===!1)return Nn("wrong position",e)}else r.position="bottom";if(vp.includes(r.timeout)===!0)r.timeout=5e3;else{const a=Number(r.timeout);if(isNaN(a)||a<0)return Nn("wrong timeout",e);r.timeout=Number.isFinite(a)?a:0}r.timeout===0?r.progress=!1:r.progress===!0&&(r.meta.progressClass="q-notification__progress"+(r.progressClass?` ${r.progressClass}`:""),r.meta.progressStyle={animationDuration:`${r.timeout+1e3}ms`});const i=(Array.isArray(e.actions)===!0?e.actions:[]).concat(e.ignoreDefaults!==!0&&Array.isArray(Oo.actions)===!0?Oo.actions:[]).concat(Array.isArray(Fn[e.type]?.actions)===!0?Fn[e.type].actions:[]),{closeBtn:s}=r;if(s&&i.push({label:typeof s=="string"?s:t.lang.label.close}),r.actions=i.map(({handler:a,noDismiss:c,...u})=>({flat:!0,...u,onClick:typeof a=="function"?()=>{a(),c!==!0&&l()}:()=>{l()}})),r.multiLine===void 0&&(r.multiLine=r.actions.length>1),Object.assign(r.meta,{class:`q-notification row items-stretch q-notification--${r.multiLine===!0?"multi-line":"standard"}`+(r.color!==void 0?` bg-${r.color}`:"")+(r.textColor!==void 0?` text-${r.textColor}`:"")+(r.classes!==void 0?` ${r.classes}`:""),wrapperClass:"q-notification__wrapper col relative-position border-radius-inherit "+(r.multiLine===!0?"column no-wrap justify-center":"row items-center"),contentClass:"q-notification__content row items-center"+(r.multiLine===!0?"":" col"),leftClass:r.meta.hasText===!0?"additional":"single",attrs:{role:"alert",...r.attrs}}),r.group===!1?(r.group=void 0,r.meta.group=void 0):((r.group===void 0||r.group===!0)&&(r.group=[r.message,r.caption,r.multiline].concat(r.actions.map(a=>`${a.label}*${a.icon}`)).join("|")),r.meta.group=r.group+"|"+r.position),r.actions.length===0?r.actions=void 0:r.meta.actionsClass="q-notification__actions row items-center "+(r.multiLine===!0?"justify-end":"col-auto")+(r.meta.hasMedia===!0?" q-notification__actions--with-media":""),n!==void 0){n.notif.meta.timer&&(clearTimeout(n.notif.meta.timer),n.notif.meta.timer=void 0),r.meta.uid=n.notif.meta.uid;const a=nt[r.position].value.indexOf(n.notif);nt[r.position].value[a]=r}else{const a=Mo[r.meta.group];if(a===void 0){if(r.meta.uid=mp++,r.meta.badge=1,["left","right","center"].indexOf(r.position)!==-1)nt[r.position].value.splice(Math.floor(nt[r.position].value.length/2),0,r);else{const c=r.position.indexOf("top")!==-1?"unshift":"push";nt[r.position].value[c](r)}r.group!==void 0&&(Mo[r.meta.group]=r)}else{if(a.meta.timer&&(clearTimeout(a.meta.timer),a.meta.timer=void 0),r.badgePosition!==void 0){if(bp.includes(r.badgePosition)===!1)return Nn("wrong badgePosition",e)}else r.badgePosition=`top-${r.position.indexOf("left")!==-1?"right":"left"}`;r.meta.uid=a.meta.uid,r.meta.badge=a.meta.badge+1,r.meta.badgeClass=`q-notification__badge q-notification__badge--${r.badgePosition}`+(r.badgeColor!==void 0?` bg-${r.badgeColor}`:"")+(r.badgeTextColor!==void 0?` text-${r.badgeTextColor}`:"")+(r.badgeClass?` ${r.badgeClass}`:"");const c=nt[r.position].value.indexOf(a);nt[r.position].value[c]=Mo[r.meta.group]=r}}const l=()=>{yp(r),o=void 0};if(r.timeout>0&&(r.meta.timer=setTimeout(()=>{r.meta.timer=void 0,l()},r.timeout+1e3)),r.group!==void 0)return a=>{a!==void 0?Nn("trying to update a grouped one which is forbidden",e):l()};if(o={dismiss:l,config:e,notif:r},n!==void 0){Object.assign(n,o);return}return a=>{if(o!==void 0)if(a===void 0)o.dismiss();else{const c=Object.assign({},o.config,a,{group:!1,position:r.position});rc(c,t,o)}}}function yp(e){e.meta.timer&&(clearTimeout(e.meta.timer),e.meta.timer=void 0);const t=nt[e.position].value.indexOf(e);if(t!==-1){e.group!==void 0&&delete Mo[e.meta.group];const n=oc[""+e.meta.uid];if(n){const{width:o,height:r}=getComputedStyle(n);n.style.left=`${n.offsetLeft}px`,n.style.width=o,n.style.height=r}nt[e.position].value.splice(t,1),typeof e.onDismiss=="function"&&e.onDismiss()}}function Al(e){return e!=null&&pp.test(e)!==!0}function Nn(e,t){return console.error(`Notify: ${e}`,t),!1}function _p(){return Le({name:"QNotifications",devtools:{hide:!0},setup(){return()=>P("div",{class:"q-notifications"},Vi.map(e=>P(Ad,{key:e,class:nc[e],tag:"div",name:`q-notification--${e}`},()=>nt[e].value.map(t=>{const n=t.meta,o=[];if(n.hasMedia===!0&&(t.spinner!==!1?o.push(P(t.spinner,{class:"q-notification__spinner q-notification__spinner--"+n.leftClass,color:t.spinnerColor,size:t.spinnerSize})):t.icon?o.push(P(Tt,{class:"q-notification__icon q-notification__icon--"+n.leftClass,name:t.icon,color:t.iconColor,size:t.iconSize,role:"img"})):t.avatar&&o.push(P(gp,{class:"q-notification__avatar q-notification__avatar--"+n.leftClass},()=>P("img",{src:t.avatar,"aria-hidden":"true"})))),n.hasText===!0){let i;const s={class:"q-notification__message col"};if(t.html===!0)s.innerHTML=t.caption?`
${t.message}
${t.caption}
`:t.message;else{const l=[t.message];i=t.caption?[P("div",l),P("div",{class:"q-notification__caption"},[t.caption])]:l}o.push(P("div",s,i))}const r=[P("div",{class:n.contentClass},o)];return t.progress===!0&&r.push(P("div",{key:`${n.uid}|p|${n.badge}`,class:n.progressClass,style:n.progressStyle})),t.actions!==void 0&&r.push(P("div",{class:n.actionsClass},t.actions.map(i=>P(hi,i)))),n.badge>1&&r.push(P("div",{key:`${n.uid}|${n.badge}`,class:t.meta.badgeClass,style:t.badgeStyle},[n.badge])),P("div",{ref:i=>{oc[""+n.uid]=i},key:n.uid,class:n.class,...n.attrs},[P("div",{class:n.wrapperClass},r)])}))))}})}const wp={setDefaults(e){ot(e)===!0&&Object.assign(Oo,e)},registerType(e,t){ot(t)===!0&&(Fn[e]=t)},install({$q:e,parentApp:t}){if(e.notify=this.create=n=>rc(n,e),e.notify.setDefaults=this.setDefaults,e.notify.registerType=this.registerType,e.config.notify!==void 0&&this.setDefaults(e.config.notify),this.__installed!==!0){Vi.forEach(o=>{nt[o]=ae([]);const r=["left","center","right"].includes(o)===!0?"center":o.indexOf("top")!==-1?"top":"bottom",i=o.indexOf("left")!==-1?"start":o.indexOf("right")!==-1?"end":"center",s=["left","right"].includes(o)?`items-${o==="left"?"start":"end"} justify-center`:o==="center"?"flex-center":`items-${i}`;nc[o]=`q-notifications__list q-notifications__list--${r} fixed column no-wrap ${s}`});const n=Fi("q-notify");fu(_p(),t).mount(n)}}},xp={config:{notify:{position:"top-right"}},plugins:{Dialog:hp,Notify:wp}},Cp="/";async function Sp({app:e,router:t,store:n},o){let r=!1;const i=a=>{try{return t.resolve(a).href}catch{}return Object(a)===a?null:a},s=a=>{if(r=!0,typeof a=="string"&&/^https?:\/\//.test(a)){window.location.href=a;return}const c=i(a);c!==null&&(window.location.href=c,window.location.reload())},l=window.location.href.replace(window.location.origin,"");for(let a=0;r===!1&&a{const[t,n]=Promise.allSettled!==void 0?["allSettled",o=>o.map(r=>{if(r.status==="rejected"){console.error("[Quasar] boot error:",r.reason);return}return r.value.default})]:["all",o=>o.map(r=>r.default)];return Promise[t]([ko(()=>import("./i18n-iY85aRww.js"),__vite__mapDeps([8,5]))]).then(o=>{const r=n(o).filter(i=>typeof i=="function");Sp(e,r)})});export{ao as $,Mp as A,Kd as B,zd as C,$t as D,zo as E,Op as F,et as G,fn as H,dn as I,iu as J,zp as K,tr as L,wa as M,en as N,Hp as O,qg as P,Mg as Q,Pg as R,Lg as S,Tg as T,Jg as U,Wp as V,Ro as W,Lp as X,Up as Y,an as Z,Pi as _,k as a,ll as a$,Ua as a0,Xc as a1,pf as a2,Ha as a3,qe as a4,Wa as a5,hi as a6,Kf as a7,yc as a8,Ap as a9,Hg as aA,jo as aB,Hm as aC,jm as aD,Um as aE,zm as aF,fo as aG,ho as aH,pm as aI,Tt as aJ,Zg as aK,ff as aL,$i as aM,Ym as aN,mi as aO,np as aP,Cr as aQ,lu as aR,Ca as aS,Sa as aT,Vm as aU,Jm as aV,Tn as aW,ih as aX,ti as aY,Mr as aZ,nm as a_,Xe as aa,Rp as ab,jt as ac,Ep as ad,In as ae,Tp as af,kp as ag,Pm as ah,ko as ai,Gp as aj,wm as ak,no as al,bl as am,ap as an,op as ao,im as ap,Pp as aq,Om as ar,Fp as as,Hc as at,Pu as au,Di as av,sh as aw,Ig as ax,Og as ay,Ng as az,rt as b,om as b0,al as b1,$p as b2,Ug as b3,Np as b4,Bp as b5,Fl as b6,$c as b7,Ee as b8,rr as b9,Le as c,Dp as d,ct as e,Ke as f,Ce as g,P as h,zt as i,st as j,Ip as k,Ue as l,qp as m,to as n,cn as o,Kp as p,ua as q,ae as r,Vp as s,jp as t,qu as u,Lu as v,be as w,Hd as x,Wd as y,Te as z}; diff --git a/app/dist/spa/assets/index-BQveqNql.css b/app/dist/spa/assets/index-BQveqNql.css new file mode 100644 index 0000000..476cb14 --- /dev/null +++ b/app/dist/spa/assets/index-BQveqNql.css @@ -0,0 +1 @@ +@charset "UTF-8";@font-face{font-family:Roboto;font-style:normal;font-weight:100;font-stretch:normal;src:url(/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbFmUiAw-yBxCyPWP.woff) format("woff")}@font-face{font-family:Roboto;font-style:normal;font-weight:300;font-stretch:normal;src:url(/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabVmUiAw-CNa4tw4G.woff) format("woff")}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:normal;src:url(/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVmUiAw-3fZ6d7DD.woff) format("woff")}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:normal;src:url(/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWub2bVmUiAw-CHKg1YId.woff) format("woff")}@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-stretch:normal;src:url(/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuYjalmUiAw-BepdiOnY.woff) format("woff")}@font-face{font-family:Roboto;font-style:normal;font-weight:900;font-stretch:normal;src:url(/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuZtalmUiAw-4ZhHFPot.woff) format("woff")}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;font-display:block;src:url(/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ-D-x-0Q06.woff2) format("woff2"),url(/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNa-Dr0goTwe.woff) format("woff")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}*,*:before,*:after{box-sizing:inherit;-webkit-tap-highlight-color:transparent;-moz-tap-highlight-color:transparent}html,body,#q-app{width:100%;direction:ltr}body.platform-ios.within-iframe,body.platform-ios.within-iframe #q-app{width:100px;min-width:100%}html,body{margin:0;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}img{border-style:none}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}hr{box-sizing:content-box;height:0;overflow:visible}button,input,optgroup,select,textarea{font:inherit;font-family:inherit;margin:0}optgroup{font-weight:700}button,input,select{overflow:visible;text-transform:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button:-moz-focusring,input:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.q-icon{line-height:1;width:1em;height:1em;flex-shrink:0;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;text-align:center;position:relative;box-sizing:content-box;fill:currentColor}.q-icon:before,.q-icon:after{width:100%;height:100%;display:flex!important;align-items:center;justify-content:center}.q-icon>svg,.q-icon>img{width:100%;height:100%}.q-icon>div{box-sizing:border-box}.q-icon,.material-icons,.material-icons-outlined,.material-icons-round,.material-icons-sharp,.material-symbols-outlined,.material-symbols-rounded,.material-symbols-sharp{-webkit-user-select:none;user-select:none;cursor:inherit;font-size:inherit;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}.q-panel{height:100%;width:100%}.q-panel>div{height:100%;width:100%}.q-panel-parent{overflow:hidden;position:relative}.q-loading-bar{position:fixed;z-index:9998;transition:transform .5s cubic-bezier(0,0,.2,1),opacity .5s;background:#f44336}.q-loading-bar--top{left:0;right:0;top:0;width:100%}.q-loading-bar--bottom{left:0;right:0;bottom:0;width:100%}.q-loading-bar--right{top:0;bottom:0;right:0;height:100%}.q-loading-bar--left{top:0;bottom:0;left:0;height:100%}.q-avatar{position:relative;vertical-align:middle;display:inline-block;border-radius:50%;font-size:48px;height:1em;width:1em}.q-avatar__content{font-size:.5em;line-height:.5em}.q-avatar__content,.q-avatar img:not(.q-icon):not(.q-img__image){border-radius:inherit;height:inherit;width:inherit}.q-avatar--square{border-radius:0}.q-badge{background-color:var(--q-primary);color:#fff;padding:2px 6px;border-radius:4px;font-size:12px;line-height:1;min-height:12px;font-weight:400;vertical-align:baseline}.q-badge--single-line{white-space:nowrap}.q-badge--multi-line{word-break:break-all;word-wrap:break-word}.q-badge--floating{position:absolute;top:-4px;right:-3px;cursor:inherit}.q-badge--transparent{opacity:.8}.q-badge--outline{background-color:transparent;border:1px solid currentColor}.q-badge--rounded{border-radius:1em}.q-banner{min-height:54px;padding:8px 16px;background:#fff}.q-banner--top-padding{padding-top:14px}.q-banner__avatar{min-width:1px!important}.q-banner__avatar>.q-avatar{font-size:46px}.q-banner__avatar>.q-icon{font-size:40px}.q-banner__avatar:not(:empty)+.q-banner__content{padding-left:16px}.q-banner__actions.col-auto{padding-left:16px}.q-banner__actions.col-all .q-btn-item{margin:4px 0 0 4px}.q-banner--dense{min-height:32px;padding:8px}.q-banner--dense.q-banner--top-padding{padding-top:12px}.q-banner--dense .q-banner__avatar>.q-avatar,.q-banner--dense .q-banner__avatar>.q-icon{font-size:28px}.q-banner--dense .q-banner__avatar:not(:empty)+.q-banner__content{padding-left:8px}.q-banner--dense .q-banner__actions.col-auto{padding-left:8px}.q-bar{background:#0003}.q-bar>.q-icon{margin-left:2px}.q-bar>div,.q-bar>div+.q-icon{margin-left:8px}.q-bar>.q-btn{margin-left:2px}.q-bar>.q-icon:first-child,.q-bar>.q-btn:first-child,.q-bar>div:first-child{margin-left:0}.q-bar--standard{padding:0 12px;height:32px;font-size:18px}.q-bar--standard>div{font-size:16px}.q-bar--standard .q-btn{font-size:11px}.q-bar--dense{padding:0 8px;height:24px;font-size:14px}.q-bar--dense .q-btn{font-size:8px}.q-bar--dark{background:#ffffff26}.q-breadcrumbs__el{color:inherit}.q-breadcrumbs__el-icon{font-size:125%}.q-breadcrumbs__el-icon--with-label{margin-right:8px}[dir=rtl] .q-breadcrumbs__separator .q-icon{transform:scaleX(-1)}.q-btn{display:inline-flex;flex-direction:column;align-items:stretch;position:relative;outline:0;border:0;vertical-align:middle;font-size:14px;line-height:1.715em;text-decoration:none;color:inherit;background:transparent;font-weight:500;text-transform:uppercase;text-align:center;width:auto;height:auto;cursor:default;padding:4px 16px;min-height:2.572em}.q-btn .q-icon,.q-btn .q-spinner{font-size:1.715em}.q-btn.disabled{opacity:.7!important}.q-btn:before{content:"";display:block;position:absolute;left:0;right:0;top:0;bottom:0;border-radius:inherit;box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f}.q-btn--actionable{cursor:pointer}.q-btn--actionable.q-btn--standard:before{transition:box-shadow .3s cubic-bezier(.25,.8,.5,1)}.q-btn--actionable.q-btn--standard:active:before,.q-btn--actionable.q-btn--standard.q-btn--active:before{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.q-btn--no-uppercase{text-transform:none}.q-btn--rectangle{border-radius:3px}.q-btn--outline{background:transparent!important}.q-btn--outline:before{border:1px solid currentColor}.q-btn--push{border-radius:7px}.q-btn--push:before{border-bottom:3px solid rgba(0,0,0,.15)}.q-btn--push.q-btn--actionable{transition:transform .3s cubic-bezier(.25,.8,.5,1)}.q-btn--push.q-btn--actionable:before{transition:border-width .3s cubic-bezier(.25,.8,.5,1)}.q-btn--push.q-btn--actionable:active,.q-btn--push.q-btn--actionable.q-btn--active{transform:translateY(2px)}.q-btn--push.q-btn--actionable:active:before,.q-btn--push.q-btn--actionable.q-btn--active:before{border-bottom-width:0}.q-btn--rounded{border-radius:28px}.q-btn--round{border-radius:50%;padding:0;min-width:3em;min-height:3em}.q-btn--square{border-radius:0}.q-btn--flat:before,.q-btn--outline:before,.q-btn--unelevated:before{box-shadow:none}.q-btn--dense{padding:.285em;min-height:2em}.q-btn--dense.q-btn--round{padding:0;min-height:2.4em;min-width:2.4em}.q-btn--dense .on-left{margin-right:6px}.q-btn--dense .on-right{margin-left:6px}.q-btn--fab .q-icon,.q-btn--fab-mini .q-icon{font-size:24px}.q-btn--fab{padding:16px;min-height:56px;min-width:56px}.q-btn--fab .q-icon{margin:auto}.q-btn--fab-mini{padding:8px;min-height:40px;min-width:40px}.q-btn__content{transition:opacity .3s;z-index:0}.q-btn__content--hidden{opacity:0;pointer-events:none}.q-btn__progress{border-radius:inherit;z-index:0}.q-btn__progress-indicator{z-index:-1;transform:translate(-100%);background:#ffffff40}.q-btn__progress--dark .q-btn__progress-indicator{background:#0003}.q-btn--flat .q-btn__progress-indicator,.q-btn--outline .q-btn__progress-indicator{opacity:.2;background:currentColor}.q-btn-dropdown--split .q-btn-dropdown__arrow-container{padding:0 4px}.q-btn-dropdown--split .q-btn-dropdown__arrow-container.q-btn--outline{border-left:1px solid currentColor}.q-btn-dropdown--split .q-btn-dropdown__arrow-container:not(.q-btn--outline){border-left:1px solid rgba(255,255,255,.3)}.q-btn-dropdown--simple *+.q-btn-dropdown__arrow{margin-left:8px}.q-btn-dropdown__arrow{transition:transform .28s}.q-btn-dropdown--current{flex-grow:1}.q-btn-group{border-radius:3px;box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;vertical-align:middle}.q-btn-group>.q-btn-item{border-radius:inherit;align-self:stretch}.q-btn-group>.q-btn-item:before{box-shadow:none}.q-btn-group>.q-btn-item .q-badge--floating{right:0}.q-btn-group>.q-btn-group{box-shadow:none}.q-btn-group>.q-btn-group:first-child>.q-btn:first-child{border-top-left-radius:inherit;border-bottom-left-radius:inherit}.q-btn-group>.q-btn-group:last-child>.q-btn:last-child{border-top-right-radius:inherit;border-bottom-right-radius:inherit}.q-btn-group>.q-btn-group:not(:first-child)>.q-btn:first-child:before{border-left:0}.q-btn-group>.q-btn-group:not(:last-child)>.q-btn:last-child:before{border-right:0}.q-btn-group>.q-btn-item:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.q-btn-group>.q-btn-item:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.q-btn-group>.q-btn-item.q-btn--standard:before{z-index:-1}.q-btn-group--push{border-radius:7px}.q-btn-group--push>.q-btn--push.q-btn--actionable{transform:none}.q-btn-group--push>.q-btn--push.q-btn--actionable .q-btn__content{transition:margin-top .3s cubic-bezier(.25,.8,.5,1),margin-bottom .3s cubic-bezier(.25,.8,.5,1)}.q-btn-group--push>.q-btn--push.q-btn--actionable:active .q-btn__content,.q-btn-group--push>.q-btn--push.q-btn--actionable.q-btn--active .q-btn__content{margin-top:2px;margin-bottom:-2px}.q-btn-group--rounded{border-radius:28px}.q-btn-group--square{border-radius:0}.q-btn-group--flat,.q-btn-group--outline,.q-btn-group--unelevated{box-shadow:none}.q-btn-group--outline>.q-separator{display:none}.q-btn-group--outline>.q-btn-item+.q-btn-item:before{border-left:0}.q-btn-group--outline>.q-btn-item:not(:last-child):before{border-right:0}.q-btn-group--stretch{align-self:stretch;border-radius:0}.q-btn-group--glossy>.q-btn-item{background-image:linear-gradient(to bottom,#ffffff4d,#fff0 50%,#0000001f 51%,#0000000a)!important}.q-btn-group--spread>.q-btn-group{display:flex!important}.q-btn-group--spread>.q-btn-item,.q-btn-group--spread>.q-btn-group>.q-btn-item:not(.q-btn-dropdown__arrow-container){width:auto;min-width:0;max-width:100%;flex:10000 1 0%}.q-btn-toggle{position:relative}.q-card{box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;border-radius:4px;vertical-align:top;background:#fff;position:relative}.q-card>div:not(.q--avoid-card-border),.q-card>img:not(.q--avoid-card-border){border-radius:0}.q-card>div:nth-child(1 of:not(.q--avoid-card-border)),.q-card>img:nth-child(1 of:not(.q--avoid-card-border)){border-top:0;border-top-left-radius:inherit;border-top-right-radius:inherit}.q-card>div:nth-last-child(1 of:not(.q--avoid-card-border)),.q-card>img:nth-last-child(1 of:not(.q--avoid-card-border)){border-bottom:0;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.q-card>div:not(.q--avoid-card-border){border-left:0;border-right:0;box-shadow:none}.q-card--bordered{border:1px solid rgba(0,0,0,.12)}.q-card--dark{border-color:#ffffff47;box-shadow:0 1px 5px #fff3,0 2px 2px #ffffff24,0 3px 1px -2px #ffffff1f}.q-card__section{position:relative}.q-card__section--vert{padding:16px}.q-card__section--horiz>div:not(.q--avoid-card-border),.q-card__section--horiz>img:not(.q--avoid-card-border){border-radius:0}.q-card__section--horiz>div:nth-child(1 of:not(.q--avoid-card-border)),.q-card__section--horiz>img:nth-child(1 of:not(.q--avoid-card-border)){border-top-left-radius:inherit;border-bottom-left-radius:inherit}.q-card__section--horiz>div:nth-last-child(1 of:not(.q--avoid-card-border)),.q-card__section--horiz>img:nth-last-child(1 of:not(.q--avoid-card-border)){border-top-right-radius:inherit;border-bottom-right-radius:inherit}.q-card__section--horiz>div:not(.q--avoid-card-border){border-top:0;border-bottom:0;box-shadow:none}.q-card__actions{padding:8px;align-items:center}.q-card__actions .q-btn--rectangle{padding:0 8px}.q-card__actions--horiz>.q-btn-item+.q-btn-item,.q-card__actions--horiz>.q-btn-group+.q-btn-item,.q-card__actions--horiz>.q-btn-item+.q-btn-group{margin-left:8px}.q-card__actions--vert>.q-btn-item.q-btn--round{align-self:center}.q-card__actions--vert>.q-btn-item+.q-btn-item,.q-card__actions--vert>.q-btn-group+.q-btn-item,.q-card__actions--vert>.q-btn-item+.q-btn-group{margin-top:4px}.q-card__actions--vert>.q-btn-group>.q-btn-item{flex-grow:1}.q-card>img{display:block;width:100%;max-width:100%;border:0}.q-carousel{background-color:#fff;height:400px}.q-carousel__slide{min-height:100%;background-size:cover;background-position:50%}.q-carousel__slide,.q-carousel .q-carousel--padding{padding:16px}.q-carousel__slides-container{height:100%}.q-carousel__control{color:#fff}.q-carousel__arrow{pointer-events:none}.q-carousel__arrow .q-icon{font-size:28px}.q-carousel__arrow .q-btn{pointer-events:all}.q-carousel__prev-arrow--horizontal,.q-carousel__next-arrow--horizontal{top:16px;bottom:16px}.q-carousel__prev-arrow--horizontal{left:16px}.q-carousel__next-arrow--horizontal{right:16px}.q-carousel__prev-arrow--vertical,.q-carousel__next-arrow--vertical{left:16px;right:16px}.q-carousel__prev-arrow--vertical{top:16px}.q-carousel__next-arrow--vertical{bottom:16px}.q-carousel__navigation--top,.q-carousel__navigation--bottom{left:16px;right:16px;overflow-x:auto;overflow-y:hidden}.q-carousel__navigation--top{top:16px}.q-carousel__navigation--bottom{bottom:16px}.q-carousel__navigation--left,.q-carousel__navigation--right{top:16px;bottom:16px;overflow-x:hidden;overflow-y:auto}.q-carousel__navigation--left>.q-carousel__navigation-inner,.q-carousel__navigation--right>.q-carousel__navigation-inner{flex-direction:column}.q-carousel__navigation--left{left:16px}.q-carousel__navigation--right{right:16px}.q-carousel__navigation-inner{flex:1 1 auto}.q-carousel__navigation .q-btn{margin:6px 4px;padding:5px}.q-carousel__navigation-icon--inactive{opacity:.7}.q-carousel .q-carousel__thumbnail{margin:2px;height:50px;width:auto;display:inline-block;cursor:pointer;border:1px solid transparent;border-radius:4px;vertical-align:middle;opacity:.7;transition:opacity .3s}.q-carousel .q-carousel__thumbnail:hover,.q-carousel .q-carousel__thumbnail--active{opacity:1}.q-carousel .q-carousel__thumbnail--active{border-color:currentColor;cursor:default}.q-carousel--navigation-top.q-carousel--with-padding .q-carousel__slide,.q-carousel--navigation-top .q-carousel--padding,.q-carousel--arrows-vertical.q-carousel--with-padding .q-carousel__slide,.q-carousel--arrows-vertical .q-carousel--padding{padding-top:60px}.q-carousel--navigation-bottom.q-carousel--with-padding .q-carousel__slide,.q-carousel--navigation-bottom .q-carousel--padding,.q-carousel--arrows-vertical.q-carousel--with-padding .q-carousel__slide,.q-carousel--arrows-vertical .q-carousel--padding{padding-bottom:60px}.q-carousel--navigation-left.q-carousel--with-padding .q-carousel__slide,.q-carousel--navigation-left .q-carousel--padding,.q-carousel--arrows-horizontal.q-carousel--with-padding .q-carousel__slide,.q-carousel--arrows-horizontal .q-carousel--padding{padding-left:60px}.q-carousel--navigation-right.q-carousel--with-padding .q-carousel__slide,.q-carousel--navigation-right .q-carousel--padding,.q-carousel--arrows-horizontal.q-carousel--with-padding .q-carousel__slide,.q-carousel--arrows-horizontal .q-carousel--padding{padding-right:60px}.q-carousel.fullscreen{height:100%}.q-message-name{font-size:small}.q-message-label{margin:24px 0;text-align:center;font-size:small}.q-message-stamp{color:inherit;margin-top:4px;opacity:.6;display:none;font-size:small}.q-message-avatar{border-radius:50%;width:48px;height:48px;min-width:48px}.q-message{margin-bottom:8px}.q-message:first-child .q-message-label{margin-top:0}.q-message-avatar--received{margin-right:8px}.q-message-text--received{color:#81c784;border-radius:4px 4px 4px 0}.q-message-text--received:last-child:before{right:100%;border-right:0 solid transparent;border-left:8px solid transparent;border-bottom:8px solid currentColor}.q-message-text-content--received{color:#000}.q-message-name--sent{text-align:right}.q-message-avatar--sent{margin-left:8px}.q-message-container--sent{flex-direction:row-reverse}.q-message-text--sent{color:#e0e0e0;border-radius:4px 4px 0}.q-message-text--sent:last-child:before{left:100%;border-left:0 solid transparent;border-right:8px solid transparent;border-bottom:8px solid currentColor}.q-message-text-content--sent{color:#000}.q-message-text{background:currentColor;padding:8px;line-height:1.2;word-break:break-word;position:relative}.q-message-text+.q-message-text{margin-top:3px}.q-message-text:last-child{min-height:48px}.q-message-text:last-child .q-message-stamp{display:block}.q-message-text:last-child:before{content:"";position:absolute;bottom:0;width:0;height:0}.q-checkbox{vertical-align:middle}.q-checkbox__native{width:1px;height:1px}.q-checkbox__bg,.q-checkbox__icon-container{-webkit-user-select:none;user-select:none}.q-checkbox__bg{top:25%;left:25%;width:50%;height:50%;border:2px solid currentColor;border-radius:2px;transition:background .22s cubic-bezier(0,0,.2,1) 0ms;-webkit-print-color-adjust:exact}.q-checkbox__icon{color:currentColor;font-size:.5em}.q-checkbox__svg{color:#fff}.q-checkbox__truthy{stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.78334;stroke-dasharray:29.78334}.q-checkbox__indet{fill:currentColor;transform-origin:50% 50%;transform:rotate(-280deg) scale(0)}.q-checkbox__inner{font-size:40px;width:1em;min-width:1em;height:1em;outline:0;border-radius:50%;color:#0000008a}.q-checkbox__inner--truthy,.q-checkbox__inner--indet{color:var(--q-primary)}.q-checkbox__inner--truthy .q-checkbox__bg,.q-checkbox__inner--indet .q-checkbox__bg{background:currentColor}.q-checkbox__inner--truthy path{stroke-dashoffset:0;transition:stroke-dashoffset .18s cubic-bezier(.4,0,.6,1) 0ms}.q-checkbox__inner--indet .q-checkbox__indet{transform:rotate(0) scale(1);transition:transform .22s cubic-bezier(0,0,.2,1) 0ms}.q-checkbox.disabled{opacity:.75!important}.q-checkbox--dark .q-checkbox__inner{color:#ffffffb3}.q-checkbox--dark .q-checkbox__inner:before{opacity:.32!important}.q-checkbox--dark .q-checkbox__inner--truthy,.q-checkbox--dark .q-checkbox__inner--indet{color:var(--q-primary)}.q-checkbox--dense .q-checkbox__inner{width:.5em;min-width:.5em;height:.5em}.q-checkbox--dense .q-checkbox__bg{left:5%;top:5%;width:90%;height:90%}.q-checkbox--dense .q-checkbox__label{padding-left:.5em}.q-checkbox--dense.reverse .q-checkbox__label{padding-left:0;padding-right:.5em}body.desktop .q-checkbox:not(.disabled) .q-checkbox__inner:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:currentColor;opacity:.12;transform:scale3d(0,0,1);transition:transform .22s cubic-bezier(0,0,.2,1)}body.desktop .q-checkbox:not(.disabled):focus .q-checkbox__inner:before,body.desktop .q-checkbox:not(.disabled):hover .q-checkbox__inner:before{transform:scaleZ(1)}body.desktop .q-checkbox--dense:not(.disabled):focus .q-checkbox__inner:before,body.desktop .q-checkbox--dense:not(.disabled):hover .q-checkbox__inner:before{transform:scale3d(1.4,1.4,1)}.q-chip{vertical-align:middle;border-radius:16px;outline:0;position:relative;height:2em;max-width:100%;margin:4px;background:#e0e0e0;color:#000000de;font-size:14px;padding:.5em .9em}.q-chip--colored .q-chip__icon,.q-chip--dark .q-chip__icon{color:inherit}.q-chip .q-avatar{font-size:2em;margin-left:-.45em;margin-right:.2em;border-radius:16px}.q-chip--outline{background:transparent!important;border:1px solid currentColor}.q-chip--outline .q-avatar{margin-left:calc(-.45em - 1px)}.q-chip--selected .q-avatar{display:none}.q-chip__icon{color:#0000008a;font-size:1.5em;margin:-.2em}.q-chip__icon--left{margin-right:.2em}.q-chip__icon--right{margin-left:.2em}.q-chip__icon--remove{margin-left:.1em;margin-right:-.5em;opacity:.6;outline:0}.q-chip__icon--remove:hover,.q-chip__icon--remove:focus{opacity:1}.q-chip__content{white-space:nowrap}.q-chip--dense{border-radius:12px;padding:0 .4em;height:1.5em}.q-chip--dense .q-avatar{font-size:1.5em;margin-left:-.27em;margin-right:.1em;border-radius:12px}.q-chip--dense .q-chip__icon{font-size:1.25em}.q-chip--dense .q-chip__icon--left{margin-right:.195em}.q-chip--dense .q-chip__icon--remove{margin-right:-.25em}.q-chip--square{border-radius:4px}.q-chip--square .q-avatar{border-radius:3px 0 0 3px}body.desktop .q-chip--clickable:focus{box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f}body.desktop.body--dark .q-chip--clickable:focus{box-shadow:0 1px 3px #fff3,0 1px 1px #ffffff24,0 2px 1px -1px #ffffff1f}.q-circular-progress{display:inline-block;position:relative;vertical-align:middle;width:1em;height:1em;line-height:1}.q-circular-progress.q-focusable{border-radius:50%}.q-circular-progress__svg{width:100%;height:100%}.q-circular-progress__text{font-size:.25em}.q-circular-progress--indeterminate .q-circular-progress__svg{transform-origin:50% 50%;animation:q-spin 2s linear infinite}.q-circular-progress--indeterminate .q-circular-progress__circle{stroke-dasharray:1 400;stroke-dashoffset:0;animation:q-circular-progress-circle 1.5s ease-in-out infinite}@keyframes q-circular-progress-circle{0%{stroke-dasharray:1,400;stroke-dashoffset:0}50%{stroke-dasharray:400,400;stroke-dashoffset:-100}to{stroke-dasharray:400,400;stroke-dashoffset:-300}}.q-color-picker{overflow:hidden;background:#fff;max-width:350px;vertical-align:top;min-width:180px;border-radius:4px;box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f}.q-color-picker .q-tab{padding:0!important}.q-color-picker--bordered{border:1px solid rgba(0,0,0,.12)}.q-color-picker__header-tabs{height:32px}.q-color-picker__header input{line-height:24px;border:0}.q-color-picker__header .q-tab{min-height:32px!important;height:32px!important}.q-color-picker__header .q-tab--inactive{background:linear-gradient(to top,#0000004d,#00000026 25%,#0000001a)}.q-color-picker__error-icon{bottom:2px;right:2px;font-size:24px;opacity:0;transition:opacity .3s ease-in}.q-color-picker__header-content{position:relative;background:#fff}.q-color-picker__header-content--light{color:#000}.q-color-picker__header-content--dark{color:#fff}.q-color-picker__header-content--dark .q-tab--inactive:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#fff3}.q-color-picker__header-banner{height:36px}.q-color-picker__header-bg{background:#fff;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAH0lEQVQoU2NkYGAwZkAFZ5G5jPRRgOYEVDeB3EBjBQBOZwTVugIGyAAAAABJRU5ErkJggg==)!important}.q-color-picker__footer{height:36px}.q-color-picker__footer .q-tab{min-height:36px!important;height:36px!important}.q-color-picker__footer .q-tab--inactive{background:linear-gradient(to bottom,#0000004d,#00000026 25%,#0000001a)}.q-color-picker__spectrum{width:100%;height:100%}.q-color-picker__spectrum-tab{padding:0!important}.q-color-picker__spectrum-white{background:linear-gradient(to right,#fff,#fff0)}.q-color-picker__spectrum-black{background:linear-gradient(to top,#000,#0000)}.q-color-picker__spectrum-circle{width:10px;height:10px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006;border-radius:50%;transform:translate(-5px,-5px)}.q-color-picker__hue .q-slider__track{background:linear-gradient(to right,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)!important;opacity:1}.q-color-picker__alpha .q-slider__track-container{padding-top:0}.q-color-picker__alpha .q-slider__track:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(90deg,#fff0,#757575)}.q-color-picker__sliders{padding:0 16px}.q-color-picker__sliders .q-slider__thumb{color:#424242}.q-color-picker__sliders .q-slider__thumb path{stroke-width:2px;fill:transparent}.q-color-picker__sliders .q-slider--active path{stroke-width:3px}.q-color-picker__tune-tab .q-slider{margin-left:18px;margin-right:18px}.q-color-picker__tune-tab input{font-size:11px;border:1px solid #e0e0e0;border-radius:4px;width:3.5em}.q-color-picker__palette-tab{padding:0!important}.q-color-picker__palette-rows--editable .q-color-picker__cube{cursor:pointer}.q-color-picker__cube{padding-bottom:10%;width:10%!important}.q-color-picker input{color:inherit;background:transparent;outline:0;text-align:center}.q-color-picker .q-tabs{overflow:hidden}.q-color-picker .q-tab--active{box-shadow:0 0 14px 3px #0003}.q-color-picker .q-tab--active .q-focus-helper,.q-color-picker .q-tab__indicator{display:none}.q-color-picker .q-tab-panels{background:inherit}.q-color-picker--dark{box-shadow:0 1px 5px #fff3,0 2px 2px #ffffff24,0 3px 1px -2px #ffffff1f}.q-color-picker--dark .q-color-picker__tune-tab input{border:1px solid rgba(255,255,255,.3)}.q-color-picker--dark .q-slider__thumb{color:#fafafa}.q-date{display:inline-flex;box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;border-radius:4px;background:#fff;width:290px;min-width:290px;max-width:100%}.q-date--bordered{border:1px solid rgba(0,0,0,.12)}.q-date__header{border-top-left-radius:inherit;color:#fff;background-color:var(--q-primary);padding:16px}.q-date__actions{padding:0 16px 16px}.q-date__content,.q-date__main{outline:0}.q-date__content .q-btn{font-weight:400}.q-date__header-link{opacity:.64;outline:0;transition:opacity .3s ease-out}.q-date__header-link--active,.q-date__header-link:hover,.q-date__header-link:focus{opacity:1}.q-date__header-subtitle{font-size:14px;line-height:1.75;letter-spacing:.00938em}.q-date__header-title-label{font-size:24px;line-height:1.2;letter-spacing:.00735em}.q-date__view{height:100%;width:100%;min-height:290px;padding:16px}.q-date__navigation{height:12.5%}.q-date__navigation>div:first-child{width:8%;min-width:24px;justify-content:flex-end}.q-date__navigation>div:last-child{width:8%;min-width:24px;justify-content:flex-start}.q-date__calendar-weekdays{height:12.5%}.q-date__calendar-weekdays>div{opacity:.38;font-size:12px}.q-date__calendar-item{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;width:14.285%!important;height:12.5%!important;position:relative;padding:1px}.q-date__calendar-item:after{content:"";position:absolute;pointer-events:none;top:1px;right:0;bottom:1px;left:0;border-style:dashed;border-color:transparent;border-width:1px}.q-date__calendar-item>div,.q-date__calendar-item button{width:30px;height:30px;border-radius:50%}.q-date__calendar-item>div{line-height:30px;text-align:center}.q-date__calendar-item>button{line-height:22px}.q-date__calendar-item--out{opacity:.18}.q-date__calendar-item--fill{visibility:hidden}.q-date__range:before,.q-date__range-from:before,.q-date__range-to:before{content:"";background-color:currentColor;position:absolute;top:1px;bottom:1px;left:0;right:0;opacity:.3}.q-date__range:nth-child(7n-6):before,.q-date__range-from:nth-child(7n-6):before,.q-date__range-to:nth-child(7n-6):before{border-top-left-radius:0;border-bottom-left-radius:0}.q-date__range:nth-child(7n):before,.q-date__range-from:nth-child(7n):before,.q-date__range-to:nth-child(7n):before{border-top-right-radius:0;border-bottom-right-radius:0}.q-date__range-from:before{left:50%}.q-date__range-to:before{right:50%}.q-date__edit-range:after{border-color:currentColor transparent}.q-date__edit-range:nth-child(7n-6):after{border-top-left-radius:0;border-bottom-left-radius:0}.q-date__edit-range:nth-child(7n):after{border-top-right-radius:0;border-bottom-right-radius:0}.q-date__edit-range-from:after,.q-date__edit-range-from-to:after{left:4px;border-left-color:currentColor;border-top-color:currentColor;border-bottom-color:currentColor;border-top-left-radius:28px;border-bottom-left-radius:28px}.q-date__edit-range-to:after,.q-date__edit-range-from-to:after{right:4px;border-right-color:currentColor;border-top-color:currentColor;border-bottom-color:currentColor;border-top-right-radius:28px;border-bottom-right-radius:28px}.q-date__calendar-days-container{height:75%;min-height:192px}.q-date__calendar-days>div{height:16.66%!important}.q-date__event{position:absolute;bottom:2px;left:50%;height:5px;width:8px;border-radius:5px;background-color:var(--q-secondary);transform:translate3d(-50%,0,0)}.q-date__today{box-shadow:0 0 1px 0 currentColor}.q-date__years-content{padding:0 8px}.q-date__years-item,.q-date__months-item{flex:0 0 33.3333%}.q-date.disabled .q-date__header,.q-date.disabled .q-date__content,.q-date--readonly .q-date__header,.q-date--readonly .q-date__content{pointer-events:none}.q-date--readonly .q-date__navigation{display:none}.q-date--portrait{flex-direction:column}.q-date--portrait-standard .q-date__content{height:calc(100% - 86px)}.q-date--portrait-standard .q-date__header{border-top-right-radius:inherit;height:86px}.q-date--portrait-standard .q-date__header-title{align-items:center;height:30px}.q-date--portrait-minimal .q-date__content{height:100%}.q-date--landscape{flex-direction:row;align-items:stretch;min-width:420px}.q-date--landscape>div{display:flex;flex-direction:column}.q-date--landscape .q-date__content{height:100%}.q-date--landscape-standard{min-width:420px}.q-date--landscape-standard .q-date__header{border-bottom-left-radius:inherit;min-width:110px;width:110px}.q-date--landscape-standard .q-date__header-title{flex-direction:column}.q-date--landscape-standard .q-date__header-today{margin-top:12px;margin-left:-8px}.q-date--landscape-minimal{width:310px}.q-date--dark{box-shadow:0 1px 5px #fff3,0 2px 2px #ffffff24,0 3px 1px -2px #ffffff1f;border-color:#ffffff47}.q-dialog__title{font-size:1.25rem;font-weight:500;line-height:1.6;letter-spacing:.0125em}.q-dialog__progress{font-size:4rem}.q-dialog__inner{outline:0}.q-dialog__inner>div{pointer-events:all;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position;border-radius:4px}.q-dialog__inner--square>div{border-radius:0!important}.q-dialog__inner>.q-card>.q-card__actions .q-btn--rectangle{min-width:64px}.q-dialog__inner--minimized{padding:24px}.q-dialog__inner--minimized>div{max-height:calc(100vh - 48px)}.q-dialog__inner--maximized>div{height:100%;width:100%;max-height:100vh;max-width:100vw;border-radius:0!important;top:0!important;left:0!important}.q-dialog__inner--top,.q-dialog__inner--bottom{padding-top:0!important;padding-bottom:0!important}.q-dialog__inner--right,.q-dialog__inner--left{padding-right:0!important;padding-left:0!important}.q-dialog__inner--left:not(.q-dialog__inner--animating)>div,.q-dialog__inner--top:not(.q-dialog__inner--animating)>div{border-top-left-radius:0}.q-dialog__inner--right:not(.q-dialog__inner--animating)>div,.q-dialog__inner--top:not(.q-dialog__inner--animating)>div{border-top-right-radius:0}.q-dialog__inner--left:not(.q-dialog__inner--animating)>div,.q-dialog__inner--bottom:not(.q-dialog__inner--animating)>div{border-bottom-left-radius:0}.q-dialog__inner--right:not(.q-dialog__inner--animating)>div,.q-dialog__inner--bottom:not(.q-dialog__inner--animating)>div{border-bottom-right-radius:0}.q-dialog__inner--fullwidth>div{width:100%!important;max-width:100%!important}.q-dialog__inner--fullheight>div{height:100%!important;max-height:100%!important}.q-dialog__backdrop{z-index:-1;pointer-events:all;outline:0;background:#0006}body.platform-ios .q-dialog__inner--minimized>div,body.platform-android:not(.native-mobile) .q-dialog__inner--minimized>div{max-height:calc(100vh - 108px)}body.q-ios-padding .q-dialog__inner{padding-top:20px!important;padding-top:env(safe-area-inset-top)!important;padding-bottom:env(safe-area-inset-bottom)!important}body.q-ios-padding .q-dialog__inner>div{max-height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important}@media(max-width:599.98px){.q-dialog__inner--top,.q-dialog__inner--bottom{padding-left:0;padding-right:0}.q-dialog__inner--top>div,.q-dialog__inner--bottom>div{width:100%!important}}@media(min-width:600px){.q-dialog__inner--minimized>div{max-width:560px}}.q-body--dialog{overflow:hidden}.q-editor{border:1px solid rgba(0,0,0,.12);border-radius:4px;background-color:#fff}.q-editor.disabled{border-style:dashed}.q-editor>div:first-child,.q-editor__toolbars-container,.q-editor__toolbars-container>div:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.q-editor__content{outline:0;padding:10px;min-height:10em;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:auto;max-width:100%}.q-editor__content pre{white-space:pre-wrap}.q-editor__content hr{border:0;outline:0;margin:1px;height:1px;background:#0000001f}.q-editor__content:empty:not(:focus):before{content:attr(placeholder);opacity:.7}.q-editor__toolbar{border-bottom:1px solid rgba(0,0,0,.12);min-height:32px}.q-editor__toolbars-container{max-width:100%}.q-editor .q-btn{margin:4px}.q-editor__toolbar-group{position:relative;margin:0 4px}.q-editor__toolbar-group+.q-editor__toolbar-group:before{content:"";position:absolute;left:-4px;top:4px;bottom:4px;width:1px;background:#0000001f}.q-editor__link-input{color:inherit;text-decoration:none;text-transform:none;border:none;border-radius:0;background:none;outline:0}.q-editor--flat,.q-editor--flat .q-editor__toolbar{border:0}.q-editor--dense .q-editor__toolbar-group{display:flex;align-items:center;flex-wrap:nowrap}.q-editor--dark{border-color:#ffffff47}.q-editor--dark .q-editor__content hr{background:#ffffff47}.q-editor--dark .q-editor__toolbar{border-color:#ffffff47}.q-editor--dark .q-editor__toolbar-group+.q-editor__toolbar-group:before{background:#ffffff47}.q-expansion-item__border{opacity:0}.q-expansion-item__toggle-icon{position:relative;transition:transform .3s}.q-expansion-item__toggle-icon--rotated{transform:rotate(180deg)}.q-expansion-item__toggle-focus{width:1em!important;height:1em!important;position:relative!important}.q-expansion-item__toggle-focus+.q-expansion-item__toggle-icon{margin-top:-1em}.q-expansion-item--standard.q-expansion-item--expanded>div>.q-expansion-item__border{opacity:1}.q-expansion-item--popup{transition:padding .5s}.q-expansion-item--popup>.q-expansion-item__container{border:1px solid rgba(0,0,0,.12)}.q-expansion-item--popup>.q-expansion-item__container>.q-separator{display:none}.q-expansion-item--popup.q-expansion-item--collapsed{padding:0 15px}.q-expansion-item--popup.q-expansion-item--expanded{padding:15px 0}.q-expansion-item--popup.q-expansion-item--expanded+.q-expansion-item--popup.q-expansion-item--expanded{padding-top:0}.q-expansion-item--popup.q-expansion-item--collapsed:not(:first-child)>.q-expansion-item__container{border-top-width:0}.q-expansion-item--popup.q-expansion-item--expanded+.q-expansion-item--popup.q-expansion-item--collapsed>.q-expansion-item__container{border-top-width:1px}.q-expansion-item__content>.q-card{box-shadow:none;border-radius:0}.q-expansion-item:first-child>div>.q-expansion-item__border--top{opacity:0}.q-expansion-item:last-child>div>.q-expansion-item__border--bottom{opacity:0}.q-expansion-item--expanded+.q-expansion-item--expanded>div>.q-expansion-item__border--top{opacity:0}.q-expansion-item--expanded .q-textarea--autogrow textarea{animation:q-expansion-done 0s}@keyframes q-expansion-done{0%{--q-exp-done: 1}}.z-fab{z-index:990}.q-fab{position:relative;vertical-align:middle}.q-fab>.q-btn{width:100%}.q-fab--form-rounded{border-radius:28px}.q-fab--form-square{border-radius:4px}.q-fab__icon,.q-fab__active-icon{transition:opacity .4s,transform .4s}.q-fab__icon{opacity:1;transform:rotate(0)}.q-fab__active-icon{opacity:0;transform:rotate(-180deg)}.q-fab__label--external{position:absolute;padding:0 8px;transition:opacity .18s cubic-bezier(.65,.815,.735,.395)}.q-fab__label--external-hidden{opacity:0;pointer-events:none}.q-fab__label--external-left{top:50%;left:-12px;transform:translate(-100%,-50%)}.q-fab__label--external-right{top:50%;right:-12px;transform:translate(100%,-50%)}.q-fab__label--external-bottom{bottom:-12px;left:50%;transform:translate(-50%,100%)}.q-fab__label--external-top{top:-12px;left:50%;transform:translate(-50%,-100%)}.q-fab__label--internal{padding:0;transition:font-size .12s cubic-bezier(.65,.815,.735,.395),max-height .12s cubic-bezier(.65,.815,.735,.395),opacity .07s cubic-bezier(.65,.815,.735,.395);max-height:30px}.q-fab__label--internal-hidden{font-size:0;opacity:0}.q-fab__label--internal-top{padding-bottom:.12em}.q-fab__label--internal-bottom{padding-top:.12em}.q-fab__label--internal-top.q-fab__label--internal-hidden,.q-fab__label--internal-bottom.q-fab__label--internal-hidden{max-height:0}.q-fab__label--internal-left{padding-left:.285em;padding-right:.571em}.q-fab__label--internal-right{padding-right:.285em;padding-left:.571em}.q-fab__icon-holder{min-width:24px;min-height:24px;position:relative}.q-fab__icon-holder--opened .q-fab__icon{transform:rotate(180deg);opacity:0}.q-fab__icon-holder--opened .q-fab__active-icon{transform:rotate(0);opacity:1}.q-fab__actions{position:absolute;opacity:0;transition:transform .18s ease-in,opacity .18s ease-in;pointer-events:none;align-items:center;justify-content:center;align-self:center;padding:3px}.q-fab__actions .q-btn{margin:5px}.q-fab__actions--right{transform-origin:0 50%;transform:scale(.4) translate(-62px);height:56px;left:100%;margin-left:9px}.q-fab__actions--left{transform-origin:100% 50%;transform:scale(.4) translate(62px);height:56px;right:100%;margin-right:9px;flex-direction:row-reverse}.q-fab__actions--up{transform-origin:50% 100%;transform:scale(.4) translateY(62px);width:56px;bottom:100%;margin-bottom:9px;flex-direction:column-reverse}.q-fab__actions--down{transform-origin:50% 0;transform:scale(.4) translateY(-62px);width:56px;top:100%;margin-top:9px;flex-direction:column}.q-fab__actions--up,.q-fab__actions--down{left:50%;margin-left:-28px}.q-fab__actions--opened{opacity:1;transform:scale(1) translate(.1px);pointer-events:all}.q-fab--align-left>.q-fab__actions--up,.q-fab--align-left>.q-fab__actions--down{align-items:flex-start;left:28px}.q-fab--align-right>.q-fab__actions--up,.q-fab--align-right>.q-fab__actions--down{align-items:flex-end;left:auto;right:0}.q-field{font-size:14px}.q-field ::-ms-clear,.q-field ::-ms-reveal{display:none}.q-field--with-bottom{padding-bottom:20px}.q-field__marginal{height:56px;color:#0000008a;font-size:24px}.q-field__marginal>*+*{margin-left:2px}.q-field__marginal .q-avatar{font-size:32px}.q-field__before,.q-field__prepend{padding-right:12px}.q-field__after,.q-field__append{padding-left:12px}.q-field__after:empty,.q-field__append:empty{display:none}.q-field__append+.q-field__append{padding-left:2px}.q-field__inner{text-align:left}.q-field__bottom{font-size:12px;min-height:20px;line-height:1;color:#0000008a;padding:8px 12px 0;backface-visibility:hidden}.q-field__bottom--animated{transform:translateY(100%);position:absolute;left:0;right:0;bottom:0}.q-field__messages{line-height:1}.q-field__messages>div{word-break:break-word;word-wrap:break-word;overflow-wrap:break-word}.q-field__messages>div+div{margin-top:4px}.q-field__counter{padding-left:8px;line-height:1}.q-field--item-aligned{padding:8px 16px}.q-field--item-aligned .q-field__before{min-width:56px}.q-field__control-container{height:inherit}.q-field__control{color:var(--q-primary);height:56px;max-width:100%;outline:none}.q-field__control:before,.q-field__control:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.q-field__control:before{border-radius:inherit}.q-field__shadow{top:8px;opacity:0;overflow:hidden;white-space:pre-wrap;transition:opacity .36s cubic-bezier(.4,0,.2,1)}.q-field__shadow+.q-field__native::placeholder{transition:opacity .36s cubic-bezier(.4,0,.2,1)}.q-field__shadow+.q-field__native:focus::placeholder{opacity:0}.q-field__native,.q-field__prefix,.q-field__suffix,.q-field__input{font-weight:400;line-height:28px;letter-spacing:.00937em;text-decoration:inherit;text-transform:inherit;border:none;border-radius:0;background:none;color:#000000de;outline:0;padding:6px 0}.q-field__native,.q-field__input{width:100%;min-width:0;outline:0!important;-webkit-user-select:auto;user-select:auto}.q-field__native:-webkit-autofill,.q-field__input:-webkit-autofill{-webkit-animation-name:q-autofill;-webkit-animation-fill-mode:both}.q-field__native:invalid,.q-field__input:invalid{box-shadow:none}.q-field__native[type=file]{line-height:1em}.q-field__input{padding:0;height:0;min-height:24px;line-height:24px}.q-field__prefix,.q-field__suffix{transition:opacity .36s cubic-bezier(.4,0,.2,1);white-space:nowrap}.q-field__prefix{padding-right:4px}.q-field__suffix{padding-left:4px}.q-field--readonly .q-placeholder,.q-field--disabled .q-placeholder{opacity:1!important}.q-field--readonly.q-field--labeled .q-field__native,.q-field--readonly.q-field--labeled .q-field__input{cursor:default}.q-field--readonly.q-field--float .q-field__native,.q-field--readonly.q-field--float .q-field__input{cursor:text}.q-field--disabled .q-field__inner{cursor:not-allowed}.q-field--disabled .q-field__control{pointer-events:none}.q-field--disabled .q-field__control>div{opacity:.6!important}.q-field--disabled .q-field__control>div,.q-field--disabled .q-field__control>div *{outline:0!important}.q-field__label{left:0;top:18px;max-width:100%;color:#0009;font-size:16px;line-height:1.25;font-weight:400;letter-spacing:.00937em;text-decoration:inherit;text-transform:inherit;transform-origin:left top;transition:transform .36s cubic-bezier(.4,0,.2,1),max-width .324s cubic-bezier(.4,0,.2,1);backface-visibility:hidden}.q-field__label:has(+:is(.q-field__native,.q-field__input):is(:-webkit-autofill,[type=color],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])){transform:translateY(-40%) scale(.75)}.q-field--float .q-field__label{max-width:133%;transform:translateY(-40%) scale(.75);transition:transform .36s cubic-bezier(.4,0,.2,1),max-width .396s cubic-bezier(.4,0,.2,1)}.q-field--highlighted .q-field__label{color:currentColor}.q-field--highlighted .q-field__shadow{opacity:.5}.q-field--filled .q-field__control{padding:0 12px;background:#0000000d;border-radius:4px 4px 0 0}.q-field--filled .q-field__control:before{background:#0000000d;border-bottom:1px solid rgba(0,0,0,.42);opacity:0;transition:opacity .36s cubic-bezier(.4,0,.2,1),background .36s cubic-bezier(.4,0,.2,1)}.q-field--filled .q-field__control:hover:before{opacity:1}.q-field--filled .q-field__control:after{height:2px;top:auto;transform-origin:center bottom;transform:scale3d(0,1,1);background:currentColor;transition:transform .36s cubic-bezier(.4,0,.2,1)}.q-field--filled.q-field--rounded .q-field__control{border-radius:28px 28px 0 0}.q-field--filled.q-field--highlighted .q-field__control:before{opacity:1;background:#0000001f}.q-field--filled.q-field--highlighted .q-field__control:after{transform:scaleZ(1)}.q-field--filled.q-field--dark .q-field__control,.q-field--filled.q-field--dark .q-field__control:before{background:#ffffff12}.q-field--filled.q-field--dark.q-field--highlighted .q-field__control:before{background:#ffffff1a}.q-field--filled.q-field--readonly .q-field__control:before{opacity:1;background:transparent;border-bottom-style:dashed}.q-field--outlined .q-field__control{border-radius:4px;padding:0 12px}.q-field--outlined .q-field__control:before{border:1px solid rgba(0,0,0,.24);transition:border-color .36s cubic-bezier(.4,0,.2,1)}.q-field--outlined .q-field__control:hover:before{border-color:#000}.q-field--outlined .q-field__control:after{height:inherit;border-radius:inherit;border:2px solid transparent;transition:border-color .36s cubic-bezier(.4,0,.2,1)}.q-field--outlined .q-field__native:-webkit-autofill,.q-field--outlined .q-field__input:-webkit-autofill{margin-top:1px;margin-bottom:1px}.q-field--outlined.q-field--rounded .q-field__control{border-radius:28px}.q-field--outlined.q-field--highlighted .q-field__control:hover:before{border-color:transparent}.q-field--outlined.q-field--highlighted .q-field__control:after{border-color:currentColor;border-width:2px;transform:scaleZ(1)}.q-field--outlined.q-field--readonly .q-field__control:before{border-style:dashed}.q-field--standard .q-field__control:before{border-bottom:1px solid rgba(0,0,0,.24);transition:border-color .36s cubic-bezier(.4,0,.2,1)}.q-field--standard .q-field__control:hover:before{border-color:#000}.q-field--standard .q-field__control:after{height:2px;top:auto;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;transform-origin:center bottom;transform:scale3d(0,1,1);background:currentColor;transition:transform .36s cubic-bezier(.4,0,.2,1)}.q-field--standard.q-field--highlighted .q-field__control:after{transform:scaleZ(1)}.q-field--standard.q-field--readonly .q-field__control:before{border-bottom-style:dashed}.q-field--dark .q-field__control:before{border-color:#fff9}.q-field--dark .q-field__control:hover:before{border-color:#fff}.q-field--dark .q-field__native,.q-field--dark .q-field__prefix,.q-field--dark .q-field__suffix,.q-field--dark .q-field__input{color:#fff}.q-field--dark:not(.q-field--highlighted) .q-field__label,.q-field--dark .q-field__marginal,.q-field--dark .q-field__bottom{color:#ffffffb3}.q-field--standout .q-field__control{padding:0 12px;background:#0000000d;border-radius:4px;transition:box-shadow .36s cubic-bezier(.4,0,.2,1),background-color .36s cubic-bezier(.4,0,.2,1)}.q-field--standout .q-field__control:before{background:#00000012;opacity:0;transition:opacity .36s cubic-bezier(.4,0,.2,1),background .36s cubic-bezier(.4,0,.2,1)}.q-field--standout .q-field__control:hover:before{opacity:1}.q-field--standout.q-field--rounded .q-field__control{border-radius:28px}.q-field--standout.q-field--highlighted .q-field__control{box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;background:#000}.q-field--standout.q-field--highlighted .q-field__native,.q-field--standout.q-field--highlighted .q-field__prefix,.q-field--standout.q-field--highlighted .q-field__suffix,.q-field--standout.q-field--highlighted .q-field__prepend,.q-field--standout.q-field--highlighted .q-field__append,.q-field--standout.q-field--highlighted .q-field__input{color:#fff}.q-field--standout.q-field--readonly .q-field__control:before{opacity:1;background:transparent;border:1px dashed rgba(0,0,0,.24)}.q-field--standout.q-field--dark .q-field__control{background:#ffffff12}.q-field--standout.q-field--dark .q-field__control:before{background:#ffffff12}.q-field--standout.q-field--dark.q-field--highlighted .q-field__control{background:#fff}.q-field--standout.q-field--dark.q-field--highlighted .q-field__native,.q-field--standout.q-field--dark.q-field--highlighted .q-field__prefix,.q-field--standout.q-field--dark.q-field--highlighted .q-field__suffix,.q-field--standout.q-field--dark.q-field--highlighted .q-field__prepend,.q-field--standout.q-field--dark.q-field--highlighted .q-field__append,.q-field--standout.q-field--dark.q-field--highlighted .q-field__input{color:#000}.q-field--standout.q-field--dark.q-field--readonly .q-field__control:before{border-color:#ffffff3d}.q-field--labeled .q-field__native,.q-field--labeled .q-field__prefix,.q-field--labeled .q-field__suffix{line-height:24px;padding-top:24px;padding-bottom:8px}.q-field--labeled .q-field__shadow{top:0}.q-field--labeled:not(.q-field--float) .q-field__prefix,.q-field--labeled:not(.q-field--float) .q-field__suffix{opacity:0}.q-field--labeled:not(.q-field--float) .q-field__native::placeholder,.q-field--labeled:not(.q-field--float) .q-field__input::placeholder{color:transparent}.q-field--labeled.q-field--dense .q-field__native,.q-field--labeled.q-field--dense .q-field__prefix,.q-field--labeled.q-field--dense .q-field__suffix{padding-top:14px;padding-bottom:2px}.q-field--dense .q-field--with-bottom{padding-bottom:19px}.q-field--dense .q-field__shadow{top:0}.q-field--dense .q-field__control,.q-field--dense .q-field__marginal{height:40px}.q-field--dense .q-field__bottom{font-size:11px}.q-field--dense .q-field__label{font-size:14px;top:10px}.q-field--dense .q-field__before,.q-field--dense .q-field__prepend{padding-right:6px}.q-field--dense .q-field__after,.q-field--dense .q-field__append{padding-left:6px}.q-field--dense .q-field__append+.q-field__append{padding-left:2px}.q-field--dense .q-field__marginal .q-avatar{font-size:24px}.q-field--dense.q-field--float .q-field__label{transform:translateY(-30%) scale(.75)}.q-field--dense .q-field__label:has(+:is(.q-field__native,.q-field__input):is(:-webkit-autofill,[type=color],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])){transform:translateY(-30%) scale(.75)}.q-field--borderless .q-field__bottom,.q-field--borderless.q-field--dense .q-field__control,.q-field--standard .q-field__bottom,.q-field--standard.q-field--dense .q-field__control{padding-left:0;padding-right:0}.q-field--error .q-field__label{animation:q-field-label .36s}.q-field--error .q-field__bottom{color:var(--q-negative)}.q-field__focusable-action{opacity:.6;cursor:pointer;outline:0!important;border:0;color:inherit;background:transparent;padding:0}.q-field__focusable-action:hover,.q-field__focusable-action:focus{opacity:1}.q-field--auto-height .q-field__control{height:auto}.q-field--auto-height .q-field__control,.q-field--auto-height .q-field__native{min-height:56px}.q-field--auto-height .q-field__native{align-items:center}.q-field--auto-height .q-field__control-container{padding-top:0}.q-field--auto-height .q-field__native,.q-field--auto-height .q-field__prefix,.q-field--auto-height .q-field__suffix{line-height:18px}.q-field--auto-height.q-field--labeled .q-field__control-container{padding-top:24px}.q-field--auto-height.q-field--labeled .q-field__shadow{top:24px}.q-field--auto-height.q-field--labeled .q-field__native,.q-field--auto-height.q-field--labeled .q-field__prefix,.q-field--auto-height.q-field--labeled .q-field__suffix{padding-top:0}.q-field--auto-height.q-field--labeled .q-field__native{min-height:24px}.q-field--auto-height.q-field--dense .q-field__control,.q-field--auto-height.q-field--dense .q-field__native{min-height:40px}.q-field--auto-height.q-field--dense.q-field--labeled .q-field__control-container{padding-top:14px}.q-field--auto-height.q-field--dense.q-field--labeled .q-field__shadow{top:14px}.q-field--auto-height.q-field--dense.q-field--labeled .q-field__native{min-height:24px}.q-field--square .q-field__control{border-radius:0!important}.q-transition--field-message-enter-active,.q-transition--field-message-leave-active{transition:transform .6s cubic-bezier(.86,0,.07,1),opacity .6s cubic-bezier(.86,0,.07,1)}.q-transition--field-message-enter-from,.q-transition--field-message-leave-to{opacity:0;transform:translateY(-10px)}.q-transition--field-message-leave-from,.q-transition--field-message-leave-active{position:absolute}@keyframes q-field-label{40%{margin-left:2px}60%,80%{margin-left:-2px}70%,90%{margin-left:2px}}@keyframes q-autofill{to{background:transparent;color:inherit}}.q-file .q-field__native{word-break:break-all;overflow:hidden}.q-file .q-field__input{opacity:0!important}.q-file .q-field__input::-webkit-file-upload-button{cursor:pointer}.q-file__filler{visibility:hidden;width:100%;border:none;padding:0}.q-file__dnd{outline:1px dashed currentColor;outline-offset:-4px}.q-form{position:relative}.q-img{position:relative;width:100%;display:inline-block;vertical-align:middle;overflow:hidden}.q-img__loading .q-spinner{font-size:50px}.q-img__container{border-radius:inherit;font-size:0}.q-img__image{border-radius:inherit;width:100%;height:100%;opacity:0}.q-img__image--with-transition{transition:opacity .28s ease-in}.q-img__image--loaded{opacity:1}.q-img__content{border-radius:inherit;pointer-events:none}.q-img__content>div{pointer-events:all;position:absolute;padding:16px;color:#fff;background:#00000078}.q-img--no-menu .q-img__image,.q-img--no-menu .q-img__placeholder{pointer-events:none}.q-inner-loading{background:#fff9;border-radius:inherit}.q-inner-loading--dark{background:#0006}.q-inner-loading__label{margin-top:8px}.q-textarea .q-field__control{min-height:56px;height:auto}.q-textarea .q-field__control-container{padding-top:2px;padding-bottom:2px}.q-textarea .q-field__shadow{top:2px;bottom:2px}.q-textarea .q-field__native,.q-textarea .q-field__prefix,.q-textarea .q-field__suffix{line-height:18px}.q-textarea .q-field__native{resize:vertical;padding-top:17px;min-height:52px}.q-textarea.q-field--labeled .q-field__control-container{padding-top:26px}.q-textarea.q-field--labeled .q-field__shadow{top:26px}.q-textarea.q-field--labeled .q-field__native,.q-textarea.q-field--labeled .q-field__prefix,.q-textarea.q-field--labeled .q-field__suffix{padding-top:0}.q-textarea.q-field--labeled .q-field__native{min-height:26px;padding-top:1px}.q-textarea--autogrow .q-field__native{resize:none}.q-textarea.q-field--dense .q-field__control,.q-textarea.q-field--dense .q-field__native{min-height:36px}.q-textarea.q-field--dense .q-field__native{padding-top:9px}.q-textarea.q-field--dense.q-field--labeled .q-field__control-container{padding-top:14px}.q-textarea.q-field--dense.q-field--labeled .q-field__shadow{top:14px}.q-textarea.q-field--dense.q-field--labeled .q-field__native{min-height:24px;padding-top:3px}.q-textarea.q-field--dense.q-field--labeled .q-field__prefix,.q-textarea.q-field--dense.q-field--labeled .q-field__suffix{padding-top:2px}body.mobile .q-textarea .q-field__native,.q-textarea.disabled .q-field__native{resize:none}.q-intersection{position:relative}.q-item{min-height:48px;padding:8px 16px;color:inherit;transition:color .3s,background-color .3s}.q-item__section--side{color:#757575;align-items:flex-start;padding-right:16px;width:auto;min-width:0;max-width:100%}.q-item__section--side>.q-icon{font-size:24px}.q-item__section--side>.q-avatar{font-size:40px}.q-item__section--avatar{color:inherit;min-width:56px}.q-item__section--thumbnail img{width:100px;height:56px}.q-item__section--nowrap{white-space:nowrap}.q-item>.q-item__section--thumbnail:first-child,.q-item>.q-focus-helper+.q-item__section--thumbnail{margin-left:-16px}.q-item>.q-item__section--thumbnail:last-of-type{margin-right:-16px}.q-item__label{line-height:1.2em!important;max-width:100%}.q-item__label--overline{color:#000000b3}.q-item__label--caption{color:#0000008a}.q-item__label--header{color:#757575;padding:16px;font-size:.875rem;line-height:1.25rem;letter-spacing:.01786em}.q-separator--spaced+.q-item__label--header,.q-list--padding .q-item__label--header{padding-top:8px}.q-item__label+.q-item__label{margin-top:4px}.q-item__section--main{width:auto;min-width:0;max-width:100%;flex:10000 1 0%}.q-item__section--main+.q-item__section--main{margin-left:8px}.q-item__section--main~.q-item__section--side{align-items:flex-end;padding-right:0;padding-left:16px}.q-item__section--main.q-item__section--thumbnail{margin-left:0;margin-right:-16px}.q-list--bordered{border:1px solid rgba(0,0,0,.12)}.q-list--separator>.q-item-type+.q-item-type,.q-list--separator>.q-virtual-scroll__content>.q-item-type+.q-item-type{border-top:1px solid rgba(0,0,0,.12)}.q-list--padding{padding:8px 0}.q-list--dense>.q-item,.q-item--dense{min-height:32px;padding:2px 16px}.q-list--dark.q-list--separator>.q-item-type+.q-item-type,.q-list--dark.q-list--separator>.q-virtual-scroll__content>.q-item-type+.q-item-type{border-top-color:#ffffff47}.q-list--dark,.q-item--dark{color:#fff;border-color:#ffffff47}.q-list--dark .q-item__section--side:not(.q-item__section--avatar),.q-item--dark .q-item__section--side:not(.q-item__section--avatar){color:#ffffffb3}.q-list--dark .q-item__label--header,.q-item--dark .q-item__label--header{color:#ffffffa3}.q-list--dark .q-item__label--overline,.q-list--dark .q-item__label--caption,.q-item--dark .q-item__label--overline,.q-item--dark .q-item__label--caption{color:#fffc}.q-item{position:relative}.q-item.q-router-link--active,.q-item--active{color:var(--q-primary)}.q-knob{font-size:48px}.q-knob--editable{cursor:pointer;outline:0}.q-knob--editable:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;box-shadow:none;transition:box-shadow .24s ease-in-out}.q-knob--editable:focus:before{box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f}body.body--dark .q-knob--editable:focus:before{box-shadow:0 1px 5px #fff3,0 2px 2px #ffffff24,0 3px 1px -2px #ffffff1f}.q-layout{width:100%;outline:0}.q-layout-container{position:relative;width:100%;height:100%}.q-layout-container .q-layout{min-height:100%}.q-layout-container>div{transform:translateZ(0)}.q-layout-container>div>div{min-height:0;max-height:100%}.q-layout__shadow{width:100%}.q-layout__shadow:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:0 0 10px 2px #0003,0 0 10px #0000003d}.q-layout__section--marginal{background-color:var(--q-primary);color:#fff}.q-header--hidden{transform:translateY(-110%)}.q-header--bordered{border-bottom:1px solid rgba(0,0,0,.12)}.q-header .q-layout__shadow{bottom:-10px}.q-header .q-layout__shadow:after{bottom:10px}.q-footer--hidden{transform:translateY(110%)}.q-footer--bordered{border-top:1px solid rgba(0,0,0,.12)}.q-footer .q-layout__shadow{top:-10px}.q-footer .q-layout__shadow:after{top:10px}.q-header,.q-footer{z-index:2000}.q-drawer{position:absolute;top:0;bottom:0;background:#fff;z-index:1000}.q-drawer--on-top{z-index:3000}.q-drawer--left{left:0;transform:translate(-100%)}.q-drawer--left.q-drawer--bordered{border-right:1px solid rgba(0,0,0,.12)}.q-drawer--left .q-layout__shadow{left:10px;right:-10px}.q-drawer--left .q-layout__shadow:after{right:10px}.q-drawer--right{right:0;transform:translate(100%)}.q-drawer--right.q-drawer--bordered{border-left:1px solid rgba(0,0,0,.12)}.q-drawer--right .q-layout__shadow{left:-10px}.q-drawer--right .q-layout__shadow:after{left:10px}.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini{padding:0!important}.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini .q-item,.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini .q-item__section{text-align:center;justify-content:center;padding-left:0;padding-right:0;min-width:0}.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini .q-item__label,.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini .q-item__section--main,.q-drawer-container:not(.q-drawer--mini-animate) .q-drawer--mini .q-item__section--side~.q-item__section--side{display:none}.q-drawer--mini .q-mini-drawer-hide,.q-drawer--mini .q-expansion-item__content{display:none}.q-drawer--mini-animate .q-drawer__content{overflow-x:hidden!important;white-space:nowrap}.q-drawer--standard .q-mini-drawer-only,.q-drawer--mobile .q-mini-drawer-only,.q-drawer--mobile .q-mini-drawer-hide{display:none}.q-drawer__backdrop{z-index:2999!important;will-change:background-color}.q-drawer__opener{z-index:2001;height:100%;width:15px;-webkit-user-select:none;user-select:none}.q-layout,.q-header,.q-footer,.q-page{position:relative}.q-page-sticky--shrink{pointer-events:none}.q-page-sticky--shrink>div{display:inline-block;pointer-events:auto}body.q-ios-padding .q-layout--standard .q-header>.q-toolbar:nth-child(1),body.q-ios-padding .q-layout--standard .q-header>.q-tabs:nth-child(1) .q-tabs__content,body.q-ios-padding .q-layout--standard .q-drawer--top-padding .q-drawer__content{padding-top:20px;min-height:70px;padding-top:env(safe-area-inset-top);min-height:calc(env(safe-area-inset-top) + 50px)}body.q-ios-padding .q-layout--standard .q-footer>.q-toolbar:last-child,body.q-ios-padding .q-layout--standard .q-footer>.q-tabs:nth-last-child(1 of:not(.q-layout__shadow)) .q-tabs__content,body.q-ios-padding .q-layout--standard .q-drawer--top-padding .q-drawer__content{padding-bottom:env(safe-area-inset-bottom);min-height:calc(env(safe-area-inset-bottom) + 50px)}.q-body--layout-animate .q-drawer__backdrop{transition:background-color .12s!important}.q-body--layout-animate .q-drawer{transition:transform .12s,width .12s,top .12s,bottom .12s!important}.q-body--layout-animate .q-layout__section--marginal{transition:transform .12s,left .12s,right .12s!important}.q-body--layout-animate .q-page-container{transition:padding-top .12s,padding-right .12s,padding-bottom .12s,padding-left .12s!important}.q-body--layout-animate .q-page-sticky{transition:transform .12s,left .12s,right .12s,top .12s,bottom .12s!important}body:not(.q-body--layout-animate) .q-layout--prevent-focus{visibility:hidden}.q-body--drawer-toggle{overflow-x:hidden!important}@media(max-width:599.98px){.q-layout-padding{padding:8px}}@media(min-width:600px)and (max-width:1439.98px){.q-layout-padding{padding:16px}}@media(min-width:1440px){.q-layout-padding{padding:24px}}body.body--dark .q-header,body.body--dark .q-footer,body.body--dark .q-drawer{border-color:#ffffff47}body.body--dark .q-layout__shadow:after{box-shadow:0 0 10px 2px #fff3,0 0 10px #ffffff3d}body.platform-ios .q-layout--containerized{position:unset!important}.q-linear-progress{--q-linear-progress-speed: .3s;position:relative;width:100%;overflow:hidden;font-size:4px;height:1em;color:var(--q-primary);transform:scaleZ(1)}.q-linear-progress__model,.q-linear-progress__track{transform-origin:0 0}.q-linear-progress__model--with-transition,.q-linear-progress__track--with-transition{transition:transform var(--q-linear-progress-speed)}.q-linear-progress--reverse .q-linear-progress__model,.q-linear-progress--reverse .q-linear-progress__track{transform-origin:0 100%}.q-linear-progress__model--determinate{background:currentColor}.q-linear-progress__model--indeterminate,.q-linear-progress__model--query{transition:none}.q-linear-progress__model--indeterminate:before,.q-linear-progress__model--indeterminate:after,.q-linear-progress__model--query:before,.q-linear-progress__model--query:after{background:currentColor;content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:0 0}.q-linear-progress__model--indeterminate:before,.q-linear-progress__model--query:before{animation:q-linear-progress--indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.q-linear-progress__model--indeterminate:after,.q-linear-progress__model--query:after{transform:translate3d(-101%,0,0) scaleZ(1);animation:q-linear-progress--indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;animation-delay:1.15s}.q-linear-progress__track{opacity:.4}.q-linear-progress__track--light{background:#00000042}.q-linear-progress__track--dark{background:#fff9}.q-linear-progress__stripe{background-image:linear-gradient(45deg,#ffffff26 25%,#fff0 25% 50%,#ffffff26 50% 75%,#fff0 75%,#fff0)!important;background-size:40px 40px!important}.q-linear-progress__stripe--with-transition{transition:width var(--q-linear-progress-speed)}@keyframes q-linear-progress--indeterminate{0%{transform:translate3d(-35%,0,0) scale3d(.35,1,1)}60%{transform:translate3d(100%,0,0) scale3d(.9,1,1)}to{transform:translate3d(100%,0,0) scale3d(.9,1,1)}}@keyframes q-linear-progress--indeterminate-short{0%{transform:translate3d(-101%,0,0) scaleZ(1)}60%{transform:translate3d(107%,0,0) scale3d(.01,1,1)}to{transform:translate3d(107%,0,0) scale3d(.01,1,1)}}.q-menu{position:fixed!important;display:inline-block;max-width:95vw;max-height:65vh;box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;background:#fff;border-radius:4px;overflow-y:auto;overflow-x:hidden;outline:0;z-index:6000}.q-menu--square{border-radius:0}.q-menu--dark{box-shadow:0 1px 5px #fff3,0 2px 2px #ffffff24,0 3px 1px -2px #ffffff1f}.q-option-group--inline>div{display:inline-block}.q-pagination input{text-align:center;-moz-appearance:textfield}.q-pagination input::-webkit-outer-spin-button,.q-pagination input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.q-pagination__content{--q-pagination-gutter-parent: -2px;--q-pagination-gutter-child: 2px;margin-top:var(--q-pagination-gutter-parent);margin-left:var(--q-pagination-gutter-parent)}.q-pagination__content>.q-btn,.q-pagination__content>.q-input,.q-pagination__middle>.q-btn{margin-top:var(--q-pagination-gutter-child);margin-left:var(--q-pagination-gutter-child)}.q-parallax{position:relative;width:100%;overflow:hidden;border-radius:inherit}.q-parallax__media>img,.q-parallax__media>video{position:absolute;left:50%;bottom:0;min-width:100%;min-height:100%;will-change:transform;display:none}.q-popup-edit{padding:8px 16px}.q-popup-edit__buttons{margin-top:8px}.q-popup-edit__buttons .q-btn+.q-btn{margin-left:8px}.q-pull-to-refresh{position:relative}.q-pull-to-refresh__puller{border-radius:50%;width:40px;height:40px;color:var(--q-primary);background:#fff;box-shadow:0 0 4px #0000004d}.q-pull-to-refresh__puller--animating{transition:transform .3s,opacity .3s}.q-radio{vertical-align:middle}.q-radio__native{width:1px;height:1px}.q-radio__bg,.q-radio__icon-container{-webkit-user-select:none;user-select:none}.q-radio__bg{top:25%;left:25%;width:50%;height:50%;-webkit-print-color-adjust:exact}.q-radio__bg path{fill:currentColor}.q-radio__icon{color:currentColor;font-size:.5em}.q-radio__check{transform-origin:50% 50%;transform:scale3d(0,0,1);transition:transform .22s cubic-bezier(0,0,.2,1) 0ms}.q-radio__inner{font-size:40px;width:1em;min-width:1em;height:1em;outline:0;border-radius:50%;color:#0000008a}.q-radio__inner--truthy{color:var(--q-primary)}.q-radio__inner--truthy .q-radio__check{transform:scaleZ(1)}.q-radio.disabled{opacity:.75!important}.q-radio--dark .q-radio__inner{color:#ffffffb3}.q-radio--dark .q-radio__inner:before{opacity:.32!important}.q-radio--dark .q-radio__inner--truthy{color:var(--q-primary)}.q-radio--dense .q-radio__inner{width:.5em;min-width:.5em;height:.5em}.q-radio--dense .q-radio__bg{left:0;top:0;width:100%;height:100%}.q-radio--dense .q-radio__label{padding-left:.5em}.q-radio--dense.reverse .q-radio__label{padding-left:0;padding-right:.5em}body.desktop .q-radio:not(.disabled) .q-radio__inner:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:currentColor;opacity:.12;transform:scale3d(0,0,1);transition:transform .22s cubic-bezier(0,0,.2,1) 0ms}body.desktop .q-radio:not(.disabled):focus .q-radio__inner:before,body.desktop .q-radio:not(.disabled):hover .q-radio__inner:before{transform:scaleZ(1)}body.desktop .q-radio--dense:not(.disabled):focus .q-radio__inner:before,body.desktop .q-radio--dense:not(.disabled):hover .q-radio__inner:before{transform:scale3d(1.5,1.5,1)}.q-rating{color:#ffeb3b;vertical-align:middle}.q-rating__icon-container{height:1em;outline:0}.q-rating__icon-container+.q-rating__icon-container{margin-left:2px}.q-rating__icon{color:currentColor;text-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);position:relative;opacity:.4;transition:transform .2s ease-in,opacity .2s ease-in,color .2s ease-in}.q-rating__icon--hovered{transform:scale(1.3)}.q-rating__icon--active{opacity:1}.q-rating__icon--exselected{opacity:.7}.q-rating--no-dimming .q-rating__icon{opacity:1}.q-rating--editable .q-rating__icon-container{cursor:pointer}.q-responsive{position:relative;max-width:100%;max-height:100%}.q-responsive__filler{width:inherit;max-width:inherit;height:inherit;max-height:inherit}.q-responsive__content{border-radius:inherit}.q-responsive__content>*{width:100%!important;height:100%!important;max-height:100%!important;max-width:100%!important}.q-scrollarea{position:relative;contain:strict}.q-scrollarea__bar,.q-scrollarea__thumb{opacity:.2;transition:opacity .3s;will-change:opacity;cursor:grab}.q-scrollarea__bar--v,.q-scrollarea__thumb--v{right:0;width:10px}.q-scrollarea__bar--h,.q-scrollarea__thumb--h{bottom:0;height:10px}.q-scrollarea__bar--invisible,.q-scrollarea__thumb--invisible{opacity:0!important;pointer-events:none}.q-scrollarea__thumb{background:#000;border-radius:3px}.q-scrollarea__thumb:hover{opacity:.3}.q-scrollarea__thumb:active{opacity:.5}.q-scrollarea__content{min-height:100%;min-width:100%}.q-scrollarea--dark .q-scrollarea__thumb{background:#fff}.q-select--without-input .q-field__control{cursor:pointer}.q-select--with-input .q-field__control{cursor:text}.q-select .q-field__input{min-width:50px!important;cursor:text}.q-select .q-field__input--padding{padding-left:4px}.q-select__focus-target,.q-select__autocomplete-input{position:absolute;outline:0!important;width:1px;height:1px;padding:0;border:0;opacity:0}.q-select__dropdown-icon{cursor:pointer;transition:transform .28s}.q-select.q-field--readonly .q-field__control,.q-select.q-field--readonly .q-select__dropdown-icon{cursor:default}.q-select__dialog{width:90vw!important;max-width:90vw!important;max-height:calc(100vh - 70px)!important;background:#fff;display:flex;flex-direction:column}.q-select__dialog>.scroll{position:relative;background:inherit}body.mobile:not(.native-mobile) .q-select__dialog{max-height:calc(100vh - 108px)!important}body.platform-android.native-mobile .q-dialog__inner--top .q-select__dialog{max-height:calc(100vh - 24px)!important}body.platform-android:not(.native-mobile) .q-dialog__inner--top .q-select__dialog{max-height:calc(100vh - 80px)!important}body.platform-ios.native-mobile .q-dialog__inner--top>div{border-radius:4px}body.platform-ios.native-mobile .q-dialog__inner--top .q-select__dialog--focused{max-height:47vh!important}body.platform-ios:not(.native-mobile) .q-dialog__inner--top .q-select__dialog--focused{max-height:50vh!important}.q-separator{border:0;background:#0000001f;margin:0;transition:background .3s,opacity .3s;flex-shrink:0}.q-separator--dark{background:#ffffff47}.q-separator--horizontal{display:block;height:1px}.q-separator--horizontal-inset{margin-left:16px;margin-right:16px}.q-separator--horizontal-item-inset{margin-left:72px;margin-right:0}.q-separator--horizontal-item-thumbnail-inset{margin-left:116px;margin-right:0}.q-separator--vertical{width:1px;height:auto;align-self:stretch}.q-separator--vertical-inset{margin-top:8px;margin-bottom:8px}.q-skeleton{--q-skeleton-speed: 1.5s;background:#0000001f;border-radius:4px;box-sizing:border-box}.q-skeleton--anim{cursor:wait}.q-skeleton:before{content:" "}.q-skeleton--type-text{transform:scaleY(.5)}.q-skeleton--type-circle,.q-skeleton--type-QAvatar{height:48px;width:48px;border-radius:50%}.q-skeleton--type-QBtn{width:90px;height:36px}.q-skeleton--type-QBadge{width:70px;height:16px}.q-skeleton--type-QChip{width:90px;height:28px;border-radius:16px}.q-skeleton--type-QToolbar{height:50px}.q-skeleton--type-QCheckbox,.q-skeleton--type-QRadio{width:40px;height:40px;border-radius:50%}.q-skeleton--type-QToggle{width:56px;height:40px;border-radius:7px}.q-skeleton--type-QSlider,.q-skeleton--type-QRange{height:40px}.q-skeleton--type-QInput{height:56px}.q-skeleton--bordered{border:1px solid rgba(0,0,0,.05)}.q-skeleton--square{border-radius:0}.q-skeleton--anim-fade{animation:q-skeleton--fade var(--q-skeleton-speed) linear .5s infinite}.q-skeleton--anim-pulse{animation:q-skeleton--pulse var(--q-skeleton-speed) ease-in-out .5s infinite}.q-skeleton--anim-pulse-x{animation:q-skeleton--pulse-x var(--q-skeleton-speed) ease-in-out .5s infinite}.q-skeleton--anim-pulse-y{animation:q-skeleton--pulse-y var(--q-skeleton-speed) ease-in-out .5s infinite}.q-skeleton--anim-wave,.q-skeleton--anim-blink,.q-skeleton--anim-pop{position:relative;overflow:hidden;z-index:1}.q-skeleton--anim-wave:after,.q-skeleton--anim-blink:after,.q-skeleton--anim-pop:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.q-skeleton--anim-blink:after{background:#ffffffb3;animation:q-skeleton--fade var(--q-skeleton-speed) linear .5s infinite}.q-skeleton--anim-wave:after{background:linear-gradient(90deg,#fff0,#ffffff80,#fff0);animation:q-skeleton--wave var(--q-skeleton-speed) linear .5s infinite}.q-skeleton--dark{background:#ffffff0d}.q-skeleton--dark.q-skeleton--bordered{border:1px solid rgba(255,255,255,.25)}.q-skeleton--dark.q-skeleton--anim-wave:after{background:linear-gradient(90deg,#fff0,#ffffff1a,#fff0)}.q-skeleton--dark.q-skeleton--anim-blink:after{background:#fff3}@keyframes q-skeleton--fade{0%{opacity:1}50%{opacity:.4}to{opacity:1}}@keyframes q-skeleton--pulse{0%{transform:scale(1)}50%{transform:scale(.85)}to{transform:scale(1)}}@keyframes q-skeleton--pulse-x{0%{transform:scaleX(1)}50%{transform:scaleX(.75)}to{transform:scaleX(1)}}@keyframes q-skeleton--pulse-y{0%{transform:scaleY(1)}50%{transform:scaleY(.75)}to{transform:scaleY(1)}}@keyframes q-skeleton--wave{0%{transform:translate(-100%)}to{transform:translate(100%)}}.q-slide-item{position:relative;background:#fff}.q-slide-item__left,.q-slide-item__right,.q-slide-item__top,.q-slide-item__bottom{visibility:hidden;font-size:14px;color:#fff}.q-slide-item__left .q-icon,.q-slide-item__right .q-icon,.q-slide-item__top .q-icon,.q-slide-item__bottom .q-icon{font-size:1.714em}.q-slide-item__left{background:#4caf50;padding:8px 16px}.q-slide-item__left>div{transform-origin:left center}.q-slide-item__right{background:#ff9800;padding:8px 16px}.q-slide-item__right>div{transform-origin:right center}.q-slide-item__top{background:#2196f3;padding:16px 8px}.q-slide-item__top>div{transform-origin:top center}.q-slide-item__bottom{background:#9c27b0;padding:16px 8px}.q-slide-item__bottom>div{transform-origin:bottom center}.q-slide-item__content{background:inherit;transition:transform .2s ease-in;-webkit-user-select:none;user-select:none;cursor:pointer}.q-slider{position:relative}.q-slider--h{width:100%}.q-slider--v{height:200px}.q-slider--editable .q-slider__track-container{cursor:grab}.q-slider__track-container{outline:0}.q-slider__track-container--h{width:100%;padding:12px 0}.q-slider__track-container--h .q-slider__selection{will-change:width,left}.q-slider__track-container--v{height:100%;padding:0 12px}.q-slider__track-container--v .q-slider__selection{will-change:height,top}.q-slider__track{color:var(--q-primary);background:#0000001a;border-radius:4px;width:inherit;height:inherit}.q-slider__inner{background:#0000001a;border-radius:inherit;width:100%;height:100%}.q-slider__selection{background:currentColor;border-radius:inherit;width:100%;height:100%}.q-slider__markers{color:#0000004d;border-radius:inherit;width:100%;height:100%}.q-slider__markers:after{content:"";position:absolute;background:currentColor}.q-slider__markers--h{background-image:repeating-linear-gradient(to right,currentColor,currentColor 2px,rgba(255,255,255,0) 0,rgba(255,255,255,0))}.q-slider__markers--h:after{height:100%;width:2px;top:0;right:0}.q-slider__markers--v{background-image:repeating-linear-gradient(to bottom,currentColor,currentColor 2px,rgba(255,255,255,0) 0,rgba(255,255,255,0))}.q-slider__markers--v:after{width:100%;height:2px;left:0;bottom:0}.q-slider__marker-labels-container{position:relative;width:100%;height:100%;min-height:24px;min-width:24px}.q-slider__marker-labels{position:absolute}.q-slider__marker-labels--h-standard{top:0}.q-slider__marker-labels--h-switched{bottom:0}.q-slider__marker-labels--h-ltr{transform:translate(-50%)}.q-slider__marker-labels--h-rtl{transform:translate(50%)}.q-slider__marker-labels--v-standard{left:4px}.q-slider__marker-labels--v-switched{right:4px}.q-slider__marker-labels--v-ltr{transform:translateY(-50%)}.q-slider__marker-labels--v-rtl{transform:translateY(50%)}.q-slider__thumb{z-index:1;outline:0;color:var(--q-primary);transition:transform .18s ease-out,fill .18s ease-out,stroke .18s ease-out}.q-slider__thumb.q-slider--focus{opacity:1!important}.q-slider__thumb--h{top:50%;will-change:left}.q-slider__thumb--h-ltr{transform:scale(1) translate(-50%,-50%)}.q-slider__thumb--h-rtl{transform:scale(1) translate(50%,-50%)}.q-slider__thumb--v{left:50%;will-change:top}.q-slider__thumb--v-ltr{transform:scale(1) translate(-50%,-50%)}.q-slider__thumb--v-rtl{transform:scale(1) translate(-50%,50%)}.q-slider__thumb-shape{top:0;left:0;stroke-width:3.5;stroke:currentColor;transition:transform .28s}.q-slider__thumb-shape path{stroke:currentColor;fill:currentColor}.q-slider__focus-ring{border-radius:50%;opacity:0;transition:transform .26667s ease-out,opacity .26667s ease-out,background-color .26667s ease-out;transition-delay:.14s}.q-slider__pin{opacity:0;white-space:nowrap;transition:opacity .28s ease-out;transition-delay:.14s}.q-slider__pin:before{content:"";width:0;height:0;position:absolute}.q-slider__pin--h:before{border-left:6px solid transparent;border-right:6px solid transparent;left:50%;transform:translate(-50%)}.q-slider__pin--h-standard{bottom:100%}.q-slider__pin--h-standard:before{bottom:2px;border-top:6px solid currentColor}.q-slider__pin--h-switched{top:100%}.q-slider__pin--h-switched:before{top:2px;border-bottom:6px solid currentColor}.q-slider__pin--v{top:0}.q-slider__pin--v:before{top:50%;transform:translateY(-50%);border-top:6px solid transparent;border-bottom:6px solid transparent}.q-slider__pin--v-standard{left:100%}.q-slider__pin--v-standard:before{left:2px;border-right:6px solid currentColor}.q-slider__pin--v-switched{right:100%}.q-slider__pin--v-switched:before{right:2px;border-left:6px solid currentColor}.q-slider__label{z-index:1;white-space:nowrap;position:absolute}.q-slider__label--h{left:50%;transform:translate(-50%)}.q-slider__label--h-standard{bottom:7px}.q-slider__label--h-switched{top:7px}.q-slider__label--v{top:50%;transform:translateY(-50%)}.q-slider__label--v-standard{left:7px}.q-slider__label--v-switched{right:7px}.q-slider__text-container{min-height:25px;padding:2px 8px;border-radius:4px;background:currentColor;position:relative;text-align:center}.q-slider__text{color:#fff;font-size:12px}.q-slider--no-value .q-slider__thumb,.q-slider--no-value .q-slider__inner,.q-slider--no-value .q-slider__selection{opacity:0}.q-slider--focus .q-slider__focus-ring,body.desktop .q-slider.q-slider--editable .q-slider__track-container:hover .q-slider__focus-ring{background:currentColor;transform:scale3d(1.55,1.55,1);opacity:.25}.q-slider--focus .q-slider__thumb,.q-slider--focus .q-slider__inner,.q-slider--focus .q-slider__selection,body.desktop .q-slider.q-slider--editable .q-slider__track-container:hover .q-slider__thumb,body.desktop .q-slider.q-slider--editable .q-slider__track-container:hover .q-slider__inner,body.desktop .q-slider.q-slider--editable .q-slider__track-container:hover .q-slider__selection{opacity:1}.q-slider--inactive .q-slider__thumb--h{transition:left .28s,right .28s}.q-slider--inactive .q-slider__thumb--v{transition:top .28s,bottom .28s}.q-slider--inactive .q-slider__selection{transition:width .28s,left .28s,right .28s,height .28s,top .28s,bottom .28s}.q-slider--inactive .q-slider__text-container{transition:transform .28s}.q-slider--active{cursor:grabbing}.q-slider--active .q-slider__thumb-shape{transform:scale(1.5)}.q-slider--active .q-slider__focus-ring,.q-slider--active.q-slider--label .q-slider__thumb-shape{transform:scale(0)!important}body.desktop .q-slider.q-slider--enabled .q-slider__track-container:hover .q-slider__pin,.q-slider--label.q-slider--active .q-slider__pin,.q-slider--label .q-slider--focus .q-slider__pin,.q-slider--label.q-slider--label-always .q-slider__pin{opacity:1}.q-slider--dark .q-slider__track,.q-slider--dark .q-slider__inner{background:#ffffff1a}.q-slider--dark .q-slider__markers{color:#ffffff4d}.q-slider--dense .q-slider__track-container--h{padding:6px 0}.q-slider--dense .q-slider__track-container--v{padding:0 6px}.q-space{flex-grow:1!important}.q-spinner{vertical-align:middle}.q-spinner-mat{animation:q-spin 2s linear infinite;transform-origin:center center}.q-spinner-mat .path{stroke-dasharray:1,200;stroke-dashoffset:0;animation:q-mat-dash 1.5s ease-in-out infinite}@keyframes q-spin{0%{transform:rotate3d(0,0,1,0)}25%{transform:rotate3d(0,0,1,90deg)}50%{transform:rotate3d(0,0,1,180deg)}75%{transform:rotate3d(0,0,1,270deg)}to{transform:rotate3d(0,0,1,359deg)}}@keyframes q-mat-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}.q-splitter__panel{position:relative;z-index:0}.q-splitter__panel>.q-splitter{width:100%;height:100%}.q-splitter__separator{background-color:#0000001f;-webkit-user-select:none;user-select:none;position:relative;z-index:1}.q-splitter__separator-area>*{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.q-splitter--dark .q-splitter__separator{background-color:#ffffff47}.q-splitter--vertical>.q-splitter__panel{height:100%}.q-splitter--vertical.q-splitter--active{cursor:col-resize}.q-splitter--vertical>.q-splitter__separator{width:1px}.q-splitter--vertical>.q-splitter__separator>div{left:-6px;right:-6px}.q-splitter--vertical.q-splitter--workable>.q-splitter__separator{cursor:col-resize}.q-splitter--horizontal>.q-splitter__panel{width:100%}.q-splitter--horizontal.q-splitter--active{cursor:row-resize}.q-splitter--horizontal>.q-splitter__separator{height:1px}.q-splitter--horizontal>.q-splitter__separator>div{top:-6px;bottom:-6px}.q-splitter--horizontal.q-splitter--workable>.q-splitter__separator{cursor:row-resize}.q-splitter__before,.q-splitter__after{overflow:auto}.q-stepper{box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;border-radius:4px;background:#fff}.q-stepper__title{font-size:14px;line-height:1.285714;letter-spacing:.1px}.q-stepper__caption{font-size:12px;line-height:1.16667}.q-stepper__dot{contain:layout;margin-right:8px;font-size:14px;width:24px;min-width:24px;height:24px;border-radius:50%;background:currentColor}.q-stepper__dot span{color:#fff}.q-stepper__tab{padding:8px 24px;font-size:14px;color:#9e9e9e;flex-direction:row}.q-stepper--dark{box-shadow:0 1px 5px #fff3,0 2px 2px #ffffff24,0 3px 1px -2px #ffffff1f}.q-stepper--dark .q-stepper__dot span{color:#000}.q-stepper__tab--navigation{-webkit-user-select:none;user-select:none;cursor:pointer}.q-stepper__tab--active,.q-stepper__tab--done{color:var(--q-primary)}.q-stepper__tab--active .q-stepper__dot,.q-stepper__tab--active .q-stepper__label,.q-stepper__tab--done .q-stepper__dot,.q-stepper__tab--done .q-stepper__label{text-shadow:0 0 0 currentColor}.q-stepper__tab--disabled .q-stepper__dot{background:#00000038}.q-stepper__tab--disabled .q-stepper__label{color:#00000052}.q-stepper__tab--error{color:var(--q-negative)}.q-stepper__tab--error-with-icon .q-stepper__dot{background:transparent!important}.q-stepper__tab--error-with-icon .q-stepper__dot span{color:currentColor;font-size:24px}.q-stepper__header{border-top-left-radius:inherit;border-top-right-radius:inherit}.q-stepper__header--border{border-bottom:1px solid rgba(0,0,0,.12)}.q-stepper__header--standard-labels .q-stepper__tab{min-height:72px;justify-content:center}.q-stepper__header--standard-labels .q-stepper__tab:first-child{justify-content:flex-start}.q-stepper__header--standard-labels .q-stepper__tab:last-child{justify-content:flex-end}.q-stepper__header--standard-labels .q-stepper__tab:only-child{justify-content:center}.q-stepper__header--standard-labels .q-stepper__dot:after{display:none}.q-stepper__header--alternative-labels .q-stepper__tab{min-height:104px;padding:24px 32px;flex-direction:column;justify-content:flex-start}.q-stepper__header--alternative-labels .q-stepper__dot{margin-right:0}.q-stepper__header--alternative-labels .q-stepper__label{margin-top:8px;text-align:center}.q-stepper__header--alternative-labels .q-stepper__label:before,.q-stepper__header--alternative-labels .q-stepper__label:after{display:none}.q-stepper__header--contracted,.q-stepper__header--contracted.q-stepper__header--alternative-labels .q-stepper__tab{min-height:72px}.q-stepper__header--contracted.q-stepper__header--alternative-labels .q-stepper__tab:first-child{align-items:flex-start}.q-stepper__header--contracted.q-stepper__header--alternative-labels .q-stepper__tab:last-child{align-items:flex-end}.q-stepper__header--contracted .q-stepper__tab{padding:24px 0}.q-stepper__header--contracted .q-stepper__tab:first-child .q-stepper__dot{transform:translate(24px)}.q-stepper__header--contracted .q-stepper__tab:last-child .q-stepper__dot{transform:translate(-24px)}.q-stepper__header--contracted .q-stepper__tab:not(:last-child) .q-stepper__dot:after{display:block!important}.q-stepper__header--contracted .q-stepper__dot{margin:0}.q-stepper__header--contracted .q-stepper__label{display:none}.q-stepper__nav{padding-top:24px}.q-stepper--flat{box-shadow:none}.q-stepper--bordered{border:1px solid rgba(0,0,0,.12)}.q-stepper--horizontal .q-stepper__step-inner{padding:24px}.q-stepper--horizontal .q-stepper__tab:first-child{border-top-left-radius:inherit}.q-stepper--horizontal .q-stepper__tab:last-child{border-top-right-radius:inherit}.q-stepper--horizontal .q-stepper__tab:first-child .q-stepper__dot:before,.q-stepper--horizontal .q-stepper__tab:last-child .q-stepper__label:after,.q-stepper--horizontal .q-stepper__tab:last-child .q-stepper__dot:after{display:none}.q-stepper--horizontal .q-stepper__tab{overflow:hidden}.q-stepper--horizontal .q-stepper__line{contain:layout}.q-stepper--horizontal .q-stepper__line:before,.q-stepper--horizontal .q-stepper__line:after{position:absolute;top:50%;height:1px;width:100vw;background:#0000001f}.q-stepper--horizontal .q-stepper__label:after,.q-stepper--horizontal .q-stepper__dot:after{content:"";left:100%;margin-left:8px}.q-stepper--horizontal .q-stepper__dot:before{content:"";right:100%;margin-right:8px}.q-stepper--horizontal>.q-stepper__nav{padding:0 24px 24px}.q-stepper--vertical{padding:16px 0}.q-stepper--vertical .q-stepper__tab{padding:12px 24px}.q-stepper--vertical .q-stepper__title{line-height:18px}.q-stepper--vertical .q-stepper__step-inner{padding:0 24px 32px 60px}.q-stepper--vertical>.q-stepper__nav{padding:24px 24px 0}.q-stepper--vertical .q-stepper__step{overflow:hidden}.q-stepper--vertical .q-stepper__dot{margin-right:12px}.q-stepper--vertical .q-stepper__dot:before,.q-stepper--vertical .q-stepper__dot:after{content:"";position:absolute;left:50%;width:1px;height:99999px;background:#0000001f}.q-stepper--vertical .q-stepper__dot:before{bottom:100%;margin-bottom:8px}.q-stepper--vertical .q-stepper__dot:after{top:100%;margin-top:8px}.q-stepper--vertical .q-stepper__step:first-child .q-stepper__dot:before,.q-stepper--vertical .q-stepper__step:last-child .q-stepper__dot:after{display:none}.q-stepper--vertical .q-stepper__step:last-child .q-stepper__step-inner{padding-bottom:8px}.q-stepper--dark.q-stepper--bordered,.q-stepper--dark .q-stepper__header--border{border-color:#ffffff47}.q-stepper--dark.q-stepper--horizontal .q-stepper__line:before,.q-stepper--dark.q-stepper--horizontal .q-stepper__line:after{background:#ffffff47}.q-stepper--dark.q-stepper--vertical .q-stepper__dot:before,.q-stepper--dark.q-stepper--vertical .q-stepper__dot:after{background:#ffffff47}.q-stepper--dark .q-stepper__tab--disabled{color:#ffffff47}.q-stepper--dark .q-stepper__tab--disabled .q-stepper__dot{background:#ffffff47}.q-stepper--dark .q-stepper__tab--disabled .q-stepper__label{color:#ffffff8a}.q-tab-panels{background:#fff}.q-tab-panel{padding:16px}.q-markup-table{overflow:auto;background:#fff}.q-table{width:100%;max-width:100%;border-collapse:separate;border-spacing:0}.q-table thead tr,.q-table tbody td{height:48px}.q-table th{font-weight:500;font-size:12px;-webkit-user-select:none;user-select:none}.q-table th.sortable{cursor:pointer}.q-table th.sortable:hover .q-table__sort-icon{opacity:.64}.q-table th.sorted .q-table__sort-icon{opacity:.86!important}.q-table th.sort-desc .q-table__sort-icon{transform:rotate(180deg)}.q-table th,.q-table td{padding:7px 16px;background-color:inherit}.q-table thead,.q-table td,.q-table th{border-style:solid;border-width:0}.q-table tbody td{font-size:13px}.q-table__card{color:#000;background-color:#fff;border-radius:4px;box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f}.q-table__card .q-table__middle{flex:1 1 auto}.q-table__card .q-table__top,.q-table__card .q-table__bottom{flex:0 0 auto}.q-table__container{position:relative}.q-table__container>div:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.q-table__container>div:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.q-table__container>.q-inner-loading{border-radius:inherit!important}.q-table__top{padding:12px 16px}.q-table__top .q-table__control{flex-wrap:wrap}.q-table__title{font-size:20px;letter-spacing:.005em;font-weight:400}.q-table__separator{min-width:8px!important}.q-table__progress{height:0!important}.q-table__progress th{padding:0!important;border:0!important}.q-table__progress .q-linear-progress{position:absolute;bottom:0}.q-table__middle{max-width:100%}.q-table__bottom{min-height:50px;padding:4px 14px 4px 16px;font-size:12px}.q-table__bottom .q-table__control{min-height:24px}.q-table__bottom-nodata-icon{font-size:200%;margin-right:8px}.q-table__bottom-item{margin-right:16px}.q-table__control{display:flex;align-items:center}.q-table__sort-icon{transition:transform .3s cubic-bezier(.25,.8,.5,1);opacity:0;font-size:120%}.q-table__sort-icon--left,.q-table__sort-icon--center{margin-left:4px}.q-table__sort-icon--right{margin-right:4px}.q-table--col-auto-width{width:1px}.q-table__card--dark,.q-table--dark{box-shadow:0 1px 5px #fff3,0 2px 2px #ffffff24,0 3px 1px -2px #ffffff1f}.q-table--flat{box-shadow:none}.q-table--bordered{border:1px solid rgba(0,0,0,.12)}.q-table--square{border-radius:0}.q-table__linear-progress{height:2px}.q-table--no-wrap th,.q-table--no-wrap td{white-space:nowrap}.q-table--grid{box-shadow:none;border-radius:4px}.q-table--grid .q-table__top{padding-bottom:4px}.q-table--grid .q-table__middle{min-height:2px;margin-bottom:4px}.q-table--grid .q-table__middle thead,.q-table--grid .q-table__middle thead th{border:0!important}.q-table--grid .q-table__linear-progress{bottom:0}.q-table--grid .q-table__bottom{border-top:0}.q-table--grid .q-table__grid-content{flex:1 1 auto}.q-table--grid.fullscreen{background:inherit}.q-table__grid-item-card{vertical-align:top;padding:12px}.q-table__grid-item-card .q-separator{margin:12px 0}.q-table__grid-item-row+.q-table__grid-item-row{margin-top:8px}.q-table__grid-item-title{opacity:.54;font-weight:500;font-size:12px}.q-table__grid-item-value{font-size:13px}.q-table__grid-item{padding:4px;transition:transform .3s cubic-bezier(.25,.8,.5,1)}.q-table__grid-item--selected{transform:scale(.95)}.q-table--horizontal-separator thead th,.q-table--horizontal-separator tbody tr:not(:last-child)>td,.q-table--cell-separator thead th,.q-table--cell-separator tbody tr:not(:last-child)>td{border-bottom-width:1px}.q-table--vertical-separator td,.q-table--vertical-separator th,.q-table--cell-separator td,.q-table--cell-separator th{border-left-width:1px}.q-table--vertical-separator thead tr:last-child th,.q-table--vertical-separator.q-table--loading tr:nth-last-child(2) th,.q-table--cell-separator thead tr:last-child th,.q-table--cell-separator.q-table--loading tr:nth-last-child(2) th{border-bottom-width:1px}.q-table--vertical-separator td:first-child,.q-table--vertical-separator th:first-child,.q-table--cell-separator td:first-child,.q-table--cell-separator th:first-child{border-left:0}.q-table--vertical-separator .q-table__top,.q-table--cell-separator .q-table__top{border-bottom:1px solid rgba(0,0,0,.12)}.q-table--dense .q-table__top{padding:6px 16px}.q-table--dense .q-table__bottom{min-height:33px}.q-table--dense .q-table__sort-icon{font-size:110%}.q-table--dense .q-table th,.q-table--dense .q-table td{padding:4px 8px}.q-table--dense .q-table thead tr,.q-table--dense .q-table tbody tr,.q-table--dense .q-table tbody td{height:28px}.q-table--dense .q-table th:first-child,.q-table--dense .q-table td:first-child{padding-left:16px}.q-table--dense .q-table th:last-child,.q-table--dense .q-table td:last-child{padding-right:16px}.q-table--dense .q-table__bottom-item{margin-right:8px}.q-table--dense .q-table__select .q-field__control,.q-table--dense .q-table__select .q-field__native{min-height:24px;padding:0}.q-table--dense .q-table__select .q-field__marginal{height:24px}.q-table__bottom:not(.q-table__bottom--nodata){border-top:1px solid rgba(0,0,0,.12)}.q-table thead,.q-table tr,.q-table th,.q-table td{border-color:#0000001f}.q-table tbody td{position:relative}.q-table tbody td:before,.q-table tbody td:after{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.q-table tbody td:before{background:#00000008}.q-table tbody td:after{background:#0000000f}.q-table tbody tr.selected td:after{content:""}body.desktop .q-table>tbody>tr:not(.q-tr--no-hover):hover>td:not(.q-td--no-hover):before{content:""}.q-table__card--dark,.q-table--dark,.q-table--dark .q-table__bottom,.q-table--dark thead,.q-table--dark tr,.q-table--dark th,.q-table--dark td{border-color:#ffffff47}.q-table--dark tbody td:before{background:#ffffff12}.q-table--dark tbody td:after{background:#ffffff1a}.q-table--dark.q-table--vertical-separator .q-table__top,.q-table--dark.q-table--cell-separator .q-table__top{border-color:#ffffff47}.q-tab{padding:0 16px;min-height:48px;transition:color .3s,background-color .3s;text-transform:uppercase;white-space:nowrap;color:inherit;text-decoration:none}.q-tab--full{min-height:72px}.q-tab--no-caps{text-transform:none}.q-tab__content{height:inherit;padding:4px 0;min-width:40px}.q-tab__content--inline .q-tab__icon+.q-tab__label{padding-left:8px}.q-tab__content .q-chip--floating{top:0;right:-16px}.q-tab__icon{width:24px;height:24px;font-size:24px}.q-tab__label{font-size:14px;line-height:1.715em;font-weight:500}.q-tab .q-badge{top:3px;right:-12px}.q-tab__alert,.q-tab__alert-icon{position:absolute}.q-tab__alert{top:7px;right:-9px;height:10px;width:10px;border-radius:50%;background:currentColor}.q-tab__alert-icon{top:2px;right:-12px;font-size:18px}.q-tab__indicator{opacity:0;height:2px;background:currentColor}.q-tab--active .q-tab__indicator{opacity:1;transform-origin:left}.q-tab--inactive{opacity:.85}.q-tabs{position:relative;transition:color .3s,background-color .3s}.q-tabs--scrollable.q-tabs__arrows--outside.q-tabs--horizontal{padding-left:36px;padding-right:36px}.q-tabs--scrollable.q-tabs__arrows--outside.q-tabs--vertical{padding-top:36px;padding-bottom:36px}.q-tabs--scrollable.q-tabs__arrows--outside .q-tabs__arrow--faded{opacity:.3;pointer-events:none}.q-tabs--scrollable.q-tabs__arrows--inside .q-tabs__arrow--faded{display:none}.q-tabs--not-scrollable.q-tabs__arrows--outside,body.mobile .q-tabs--scrollable.q-tabs--mobile-without-arrows.q-tabs__arrows--outside{padding-left:0;padding-right:0}.q-tabs--not-scrollable .q-tabs__arrow,body.mobile .q-tabs--scrollable.q-tabs--mobile-without-arrows .q-tabs__arrow{display:none}.q-tabs--not-scrollable .q-tabs__content,body.mobile .q-tabs--scrollable.q-tabs--mobile-without-arrows .q-tabs__content{border-radius:inherit}.q-tabs__arrow{cursor:pointer;font-size:32px;min-width:36px;text-shadow:0 0 3px #fff,0 0 1px #fff,0 0 1px #000;transition:opacity .3s}.q-tabs__content{overflow:hidden;flex:1 1 auto}.q-tabs__content--align-center{justify-content:center}.q-tabs__content--align-right{justify-content:flex-end}.q-tabs__content--align-justify .q-tab{flex:1 1 auto}.q-tabs__offset{display:none}.q-tabs--horizontal .q-tabs__arrow{height:100%}.q-tabs--horizontal .q-tabs__arrow--left{top:0;left:0;bottom:0}.q-tabs--horizontal .q-tabs__arrow--right{top:0;right:0;bottom:0}.q-tabs--vertical,.q-tabs--vertical .q-tabs__content{display:block!important;height:100%}.q-tabs--vertical .q-tabs__arrow{width:100%;height:36px;text-align:center}.q-tabs--vertical .q-tabs__arrow--left{top:0;left:0;right:0}.q-tabs--vertical .q-tabs__arrow--right{left:0;right:0;bottom:0}.q-tabs--vertical .q-tab{padding:0 8px}.q-tabs--vertical .q-tab__indicator{height:unset;width:2px}.q-tabs--vertical.q-tabs--not-scrollable .q-tabs__content{height:100%}.q-tabs--vertical.q-tabs--dense .q-tab__content{min-width:24px}.q-tabs--dense .q-tab{min-height:36px}.q-tabs--dense .q-tab--full{min-height:52px}.q-time{box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;border-radius:4px;background:#fff;outline:0;width:290px;min-width:290px;max-width:100%}.q-time--bordered{border:1px solid rgba(0,0,0,.12)}.q-time__header{border-top-left-radius:inherit;color:#fff;background-color:var(--q-primary);padding:16px;font-weight:300}.q-time__actions{padding:0 16px 16px}.q-time__header-label{font-size:28px;line-height:1;letter-spacing:-.00833em}.q-time__header-label>div+div{margin-left:4px}.q-time__link{opacity:.56;outline:0;transition:opacity .3s ease-out}.q-time__link--active,.q-time__link:hover,.q-time__link:focus{opacity:1}.q-time__header-ampm{font-size:16px;letter-spacing:.1em}.q-time__content{padding:16px}.q-time__content:before{content:"";display:block;padding-bottom:100%}.q-time__container-parent{padding:16px}.q-time__container-child{border-radius:50%;background:#0000001f}.q-time__clock{padding:24px;width:100%;height:100%;max-width:100%;max-height:100%;font-size:14px}.q-time__clock-circle{position:relative}.q-time__clock-center{height:6px;width:6px;margin:auto;border-radius:50%;min-height:0;background:currentColor}.q-time__clock-pointer{width:2px;height:50%;transform-origin:0 0;min-height:0;position:absolute;left:50%;right:0;bottom:0;color:var(--q-primary);background:currentColor;transform:translate(-50%)}.q-time__clock-pointer:before,.q-time__clock-pointer:after{content:"";position:absolute;left:50%;border-radius:50%;background:currentColor;transform:translate(-50%)}.q-time__clock-pointer:before{bottom:-4px;width:8px;height:8px}.q-time__clock-pointer:after{top:-3px;height:6px;width:6px}.q-time__clock-position{position:absolute;min-height:32px;width:32px;height:32px;font-size:12px;line-height:32px;margin:0;padding:0;transform:translate(-50%,-50%);border-radius:50%}.q-time__clock-position--disable{opacity:.4}.q-time__clock-position--active{background-color:var(--q-primary);color:#fff}.q-time__clock-pos-0{top:0%;left:50%}.q-time__clock-pos-1{top:6.7%;left:75%}.q-time__clock-pos-2{top:25%;left:93.3%}.q-time__clock-pos-3{top:50%;left:100%}.q-time__clock-pos-4{top:75%;left:93.3%}.q-time__clock-pos-5{top:93.3%;left:75%}.q-time__clock-pos-6{top:100%;left:50%}.q-time__clock-pos-7{top:93.3%;left:25%}.q-time__clock-pos-8{top:75%;left:6.7%}.q-time__clock-pos-9{top:50%;left:0%}.q-time__clock-pos-10{top:25%;left:6.7%}.q-time__clock-pos-11{top:6.7%;left:25%}.q-time__clock-pos-12{top:15%;left:50%}.q-time__clock-pos-13{top:19.69%;left:67.5%}.q-time__clock-pos-14{top:32.5%;left:80.31%}.q-time__clock-pos-15{top:50%;left:85%}.q-time__clock-pos-16{top:67.5%;left:80.31%}.q-time__clock-pos-17{top:80.31%;left:67.5%}.q-time__clock-pos-18{top:85%;left:50%}.q-time__clock-pos-19{top:80.31%;left:32.5%}.q-time__clock-pos-20{top:67.5%;left:19.69%}.q-time__clock-pos-21{top:50%;left:15%}.q-time__clock-pos-22{top:32.5%;left:19.69%}.q-time__clock-pos-23{top:19.69%;left:32.5%}.q-time__now-button{background-color:var(--q-primary);color:#fff;top:12px;right:12px}.q-time.disabled .q-time__header-ampm,.q-time.disabled .q-time__content,.q-time--readonly .q-time__header-ampm,.q-time--readonly .q-time__content{pointer-events:none}.q-time--portrait{display:inline-flex;flex-direction:column}.q-time--portrait .q-time__header{border-top-right-radius:inherit;min-height:86px}.q-time--portrait .q-time__header-ampm{margin-left:12px}.q-time--portrait.q-time--bordered .q-time__content{margin:1px 0}.q-time--landscape{display:inline-flex;align-items:stretch;min-width:420px}.q-time--landscape>div{display:flex;flex-direction:column;justify-content:center}.q-time--landscape .q-time__header{border-bottom-left-radius:inherit;min-width:156px}.q-time--landscape .q-time__header-ampm{margin-top:12px}.q-time--dark{border-color:#ffffff47;box-shadow:0 1px 5px #fff3,0 2px 2px #ffffff24,0 3px 1px -2px #ffffff1f}.q-timeline{padding:0;width:100%;list-style:none}.q-timeline h6{line-height:inherit}.q-timeline--dark{color:#fff}.q-timeline--dark .q-timeline__subtitle{opacity:.7}.q-timeline__content{padding-bottom:24px}.q-timeline__title{margin-top:0;margin-bottom:16px}.q-timeline__subtitle{font-size:12px;margin-bottom:8px;opacity:.6;text-transform:uppercase;letter-spacing:1px;font-weight:700}.q-timeline__dot{position:absolute;top:0;bottom:0;width:15px}.q-timeline__dot:before,.q-timeline__dot:after{content:"";background:currentColor;display:block;position:absolute}.q-timeline__dot:before{border:3px solid transparent;border-radius:100%;height:15px;width:15px;top:4px;left:0;transition:background .3s ease-in-out,border .3s ease-in-out}.q-timeline__dot:after{width:3px;opacity:.4;top:24px;bottom:0;left:6px}.q-timeline__dot .q-icon{position:absolute;top:0;left:0;right:0;font-size:16px;height:38px;line-height:38px;width:100%;color:#fff}.q-timeline__dot .q-icon>svg,.q-timeline__dot .q-icon>img{width:1em;height:1em}.q-timeline__dot-img{position:absolute;top:4px;left:0;right:0;height:31px;width:31px;background:currentColor;border-radius:50%}.q-timeline__heading{position:relative}.q-timeline__heading:first-child .q-timeline__heading-title{padding-top:0}.q-timeline__heading:last-child .q-timeline__heading-title{padding-bottom:0}.q-timeline__heading-title{padding:32px 0;margin:0}.q-timeline__entry{position:relative;line-height:22px}.q-timeline__entry:last-child{padding-bottom:0!important}.q-timeline__entry:last-child .q-timeline__dot:after{content:none}.q-timeline__entry--icon .q-timeline__dot{width:31px}.q-timeline__entry--icon .q-timeline__dot:before{height:31px;width:31px}.q-timeline__entry--icon .q-timeline__dot:after{top:41px;left:14px}.q-timeline__entry--icon .q-timeline__subtitle{padding-top:8px}.q-timeline--dense--right .q-timeline__entry{padding-left:40px}.q-timeline--dense--right .q-timeline__entry--icon .q-timeline__dot{left:-8px}.q-timeline--dense--right .q-timeline__dot{left:0}.q-timeline--dense--left .q-timeline__heading{text-align:right}.q-timeline--dense--left .q-timeline__entry{padding-right:40px}.q-timeline--dense--left .q-timeline__entry--icon .q-timeline__dot{right:-8px}.q-timeline--dense--left .q-timeline__content,.q-timeline--dense--left .q-timeline__title,.q-timeline--dense--left .q-timeline__subtitle{text-align:right}.q-timeline--dense--left .q-timeline__dot{right:0}.q-timeline--comfortable{display:table}.q-timeline--comfortable .q-timeline__heading{display:table-row;font-size:200%}.q-timeline--comfortable .q-timeline__heading>div{display:table-cell}.q-timeline--comfortable .q-timeline__entry{display:table-row;padding:0}.q-timeline--comfortable .q-timeline__entry--icon .q-timeline__content{padding-top:8px}.q-timeline--comfortable .q-timeline__subtitle,.q-timeline--comfortable .q-timeline__dot,.q-timeline--comfortable .q-timeline__content{display:table-cell;vertical-align:top}.q-timeline--comfortable .q-timeline__subtitle{width:35%}.q-timeline--comfortable .q-timeline__dot{position:relative;min-width:31px}.q-timeline--comfortable--right .q-timeline__heading .q-timeline__heading-title{margin-left:-50px}.q-timeline--comfortable--right .q-timeline__subtitle{text-align:right;padding-right:30px}.q-timeline--comfortable--right .q-timeline__content{padding-left:30px}.q-timeline--comfortable--right .q-timeline__entry--icon .q-timeline__dot{left:-8px}.q-timeline--comfortable--left .q-timeline__heading{text-align:right}.q-timeline--comfortable--left .q-timeline__heading .q-timeline__heading-title{margin-right:-50px}.q-timeline--comfortable--left .q-timeline__subtitle{padding-left:30px}.q-timeline--comfortable--left .q-timeline__content{padding-right:30px}.q-timeline--comfortable--left .q-timeline__content,.q-timeline--comfortable--left .q-timeline__title{text-align:right}.q-timeline--comfortable--left .q-timeline__entry--icon .q-timeline__dot{right:0}.q-timeline--comfortable--left .q-timeline__dot{right:-8px}.q-timeline--loose .q-timeline__heading-title{text-align:center;margin-left:0}.q-timeline--loose .q-timeline__entry,.q-timeline--loose .q-timeline__subtitle,.q-timeline--loose .q-timeline__dot,.q-timeline--loose .q-timeline__content{display:block;margin:0;padding:0}.q-timeline--loose .q-timeline__dot{position:absolute;left:50%;margin-left:-7.15px}.q-timeline--loose .q-timeline__entry{padding-bottom:24px;overflow:hidden}.q-timeline--loose .q-timeline__entry--icon .q-timeline__dot{margin-left:-15px}.q-timeline--loose .q-timeline__entry--icon .q-timeline__subtitle{line-height:38px}.q-timeline--loose .q-timeline__entry--icon .q-timeline__content{padding-top:8px}.q-timeline--loose .q-timeline__entry--left .q-timeline__content,.q-timeline--loose .q-timeline__entry--right .q-timeline__subtitle{float:left;padding-right:30px;text-align:right}.q-timeline--loose .q-timeline__entry--left .q-timeline__subtitle,.q-timeline--loose .q-timeline__entry--right .q-timeline__content{float:right;text-align:left;padding-left:30px}.q-timeline--loose .q-timeline__subtitle,.q-timeline--loose .q-timeline__content{width:50%}.q-toggle{vertical-align:middle}.q-toggle__native{width:1px;height:1px}.q-toggle__track{height:.35em;border-radius:.175em;opacity:.38;background:currentColor}.q-toggle__thumb{top:.25em;left:.25em;width:.5em;height:.5em;transition:left .22s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none;z-index:0}.q-toggle__thumb:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:#fff;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.q-toggle__thumb .q-icon{font-size:.3em;min-width:1em;color:#000;opacity:.54;z-index:1}.q-toggle__inner{font-size:40px;width:1.4em;min-width:1.4em;height:1em;padding:.325em .3em;-webkit-print-color-adjust:exact}.q-toggle__inner--indet .q-toggle__thumb{left:.45em}.q-toggle__inner--truthy{color:var(--q-primary)}.q-toggle__inner--truthy .q-toggle__track{opacity:.54}.q-toggle__inner--truthy .q-toggle__thumb{left:.65em}.q-toggle__inner--truthy .q-toggle__thumb:after{background-color:currentColor}.q-toggle__inner--truthy .q-toggle__thumb .q-icon{color:#fff;opacity:1}.q-toggle.disabled{opacity:.75!important}.q-toggle--dark .q-toggle__inner{color:#fff}.q-toggle--dark .q-toggle__inner--truthy{color:var(--q-primary)}.q-toggle--dark .q-toggle__thumb:after{box-shadow:none}.q-toggle--dark .q-toggle__thumb:before{opacity:.32!important}.q-toggle--dense .q-toggle__inner{width:.8em;min-width:.8em;height:.5em;padding:.07625em 0}.q-toggle--dense .q-toggle__thumb{top:0;left:0}.q-toggle--dense .q-toggle__inner--indet .q-toggle__thumb{left:.15em}.q-toggle--dense .q-toggle__inner--truthy .q-toggle__thumb{left:.3em}.q-toggle--dense .q-toggle__label{padding-left:.5em}.q-toggle--dense.reverse .q-toggle__label{padding-left:0;padding-right:.5em}body.desktop .q-toggle:not(.disabled) .q-toggle__thumb:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:currentColor;opacity:.12;transform:scale3d(0,0,1);transition:transform .22s cubic-bezier(0,0,.2,1)}body.desktop .q-toggle:not(.disabled):focus .q-toggle__thumb:before,body.desktop .q-toggle:not(.disabled):hover .q-toggle__thumb:before{transform:scale3d(2,2,1)}body.desktop .q-toggle--dense:not(.disabled):focus .q-toggle__thumb:before,body.desktop .q-toggle--dense:not(.disabled):hover .q-toggle__thumb:before{transform:scale3d(1.5,1.5,1)}.q-toolbar{position:relative;padding:0 12px;min-height:50px;width:100%}.q-toolbar--inset{padding-left:58px}.q-toolbar .q-avatar{font-size:38px}.q-toolbar__title{flex:1 1 0%;min-width:1px;max-width:100%;font-size:21px;font-weight:400;letter-spacing:.01em;padding:0 12px}.q-toolbar__title:first-child{padding-left:0}.q-toolbar__title:last-child{padding-right:0}.q-tooltip--style{font-size:10px;color:#fafafa;background:#757575;border-radius:4px;text-transform:none;font-weight:400}.q-tooltip{z-index:9000;position:fixed!important;overflow-y:auto;overflow-x:hidden;padding:6px 10px;max-width:95vw;max-height:65vh}@media(max-width:599.98px){.q-tooltip{font-size:14px;padding:8px 16px}}.q-tree{position:relative;color:#9e9e9e}.q-tree__node{padding:0 0 3px 22px}.q-tree__node:after{content:"";position:absolute;top:-3px;bottom:0;width:2px;right:auto;left:-13px;border-left:1px solid currentColor}.q-tree__node:last-child:after{display:none}.q-tree__node--disabled{pointer-events:none}.q-tree__node--disabled .disabled{opacity:1!important}.q-tree__node--disabled>div,.q-tree__node--disabled>i,.q-tree__node--disabled>.disabled{opacity:.6!important}.q-tree__node--disabled>div .q-tree__node--disabled>div,.q-tree__node--disabled>div .q-tree__node--disabled>i,.q-tree__node--disabled>div .q-tree__node--disabled>.disabled,.q-tree__node--disabled>i .q-tree__node--disabled>div,.q-tree__node--disabled>i .q-tree__node--disabled>i,.q-tree__node--disabled>i .q-tree__node--disabled>.disabled,.q-tree__node--disabled>.disabled .q-tree__node--disabled>div,.q-tree__node--disabled>.disabled .q-tree__node--disabled>i,.q-tree__node--disabled>.disabled .q-tree__node--disabled>.disabled{opacity:1!important}.q-tree__node-header:before{content:"";position:absolute;top:-3px;bottom:50%;width:31px;left:-35px;border-left:1px solid currentColor;border-bottom:1px solid currentColor}.q-tree__children{padding-left:25px}.q-tree__node-body{padding:5px 0 8px 5px}.q-tree__node--parent{padding-left:2px}.q-tree__node--parent>.q-tree__node-header:before{width:15px;left:-15px}.q-tree__node--parent>.q-tree__node-collapsible>.q-tree__node-body{padding:5px 0 8px 27px}.q-tree__node--parent>.q-tree__node-collapsible>.q-tree__node-body:after{content:"";position:absolute;top:0;width:2px;height:100%;right:auto;left:12px;border-left:1px solid currentColor;bottom:50px}.q-tree__node--link{cursor:pointer}.q-tree__node-header{padding:4px;margin-top:3px;border-radius:4px;outline:0}.q-tree__node-header-content{color:#000;transition:color .3s}.q-tree__node--selected .q-tree__node-header-content{color:#9e9e9e}.q-tree__icon,.q-tree__node-header-content .q-icon{font-size:21px}.q-tree__img{height:42px;border-radius:2px}.q-tree__avatar,.q-tree__node-header-content .q-avatar{font-size:28px;border-radius:50%;width:28px;height:28px}.q-tree__arrow,.q-tree__spinner{font-size:16px;margin-right:4px}.q-tree__arrow{transition:transform .3s}.q-tree__arrow--rotate{transform:rotate3d(0,0,1,90deg)}.q-tree__tickbox{margin-right:4px}.q-tree>.q-tree__node{padding:0}.q-tree>.q-tree__node:after,.q-tree>.q-tree__node>.q-tree__node-header:before{display:none}.q-tree>.q-tree__node--child>.q-tree__node-header{padding-left:24px}.q-tree--dark .q-tree__node-header-content{color:#fff}.q-tree--no-connectors .q-tree__node:after,.q-tree--no-connectors .q-tree__node-header:before,.q-tree--no-connectors .q-tree__node-body:after{display:none!important}.q-tree--dense>.q-tree__node--child>.q-tree__node-header{padding-left:1px}.q-tree--dense .q-tree__arrow,.q-tree--dense .q-tree__spinner{margin-right:1px}.q-tree--dense .q-tree__img{height:32px}.q-tree--dense .q-tree__tickbox{margin-right:3px}.q-tree--dense .q-tree__node{padding:0}.q-tree--dense .q-tree__node:after{top:0;left:-8px}.q-tree--dense .q-tree__node-header{margin-top:0;padding:1px}.q-tree--dense .q-tree__node-header:before{top:0;left:-8px;width:8px}.q-tree--dense .q-tree__node--child{padding-left:17px}.q-tree--dense .q-tree__node--child>.q-tree__node-header:before{left:-25px;width:21px}.q-tree--dense .q-tree__node-body{padding:0 0 2px}.q-tree--dense .q-tree__node--parent>.q-tree__node-collapsible>.q-tree__node-body{padding:0 0 2px 20px}.q-tree--dense .q-tree__node--parent>.q-tree__node-collapsible>.q-tree__node-body:after{left:8px}.q-tree--dense .q-tree__children{padding-left:16px}[dir=rtl] .q-tree__arrow{transform:rotate3d(0,0,1,180deg)}[dir=rtl] .q-tree__arrow--rotate{transform:rotate3d(0,0,1,90deg)}.q-uploader{box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;border-radius:4px;vertical-align:top;background:#fff;position:relative;width:320px;max-height:320px}.q-uploader--bordered{border:1px solid rgba(0,0,0,.12)}.q-uploader__input{opacity:0;width:100%;height:100%;cursor:pointer!important;z-index:1}.q-uploader__input::-webkit-file-upload-button{cursor:pointer}.q-uploader__file:before{content:"";border-top-left-radius:inherit;border-top-right-radius:inherit;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:currentColor;opacity:.04}.q-uploader__header{position:relative;border-top-left-radius:inherit;border-top-right-radius:inherit;background-color:var(--q-primary);color:#fff;width:100%}.q-uploader__spinner{font-size:24px;margin-right:4px}.q-uploader__header-content{padding:8px}.q-uploader__dnd{outline:1px dashed currentColor;outline-offset:-4px;background:#fff9}.q-uploader__overlay{font-size:36px;color:#000;background-color:#fff9}.q-uploader__list{position:relative;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;padding:8px;min-height:60px;flex:1 1 auto}.q-uploader__file{border-radius:4px 4px 0 0;border:1px solid rgba(0,0,0,.12)}.q-uploader__file .q-circular-progress{font-size:24px}.q-uploader__file--img{color:#fff;height:200px;min-width:200px;background-position:50% 50%;background-repeat:no-repeat}.q-uploader__file--img:before{content:none}.q-uploader__file--img .q-circular-progress{color:#fff}.q-uploader__file--img .q-uploader__file-header{padding-bottom:24px;background:linear-gradient(to bottom,#000000b3 20%,#fff0)}.q-uploader__file+.q-uploader__file{margin-top:8px}.q-uploader__file-header{position:relative;padding:4px 8px;border-top-left-radius:inherit;border-top-right-radius:inherit}.q-uploader__file-header-content{padding-right:8px}.q-uploader__file-status{font-size:24px;margin-right:4px}.q-uploader__title{font-size:14px;font-weight:700;line-height:1.285714;word-break:break-word}.q-uploader__subtitle{font-size:12px;line-height:1.5}.q-uploader--disable .q-uploader__header,.q-uploader--disable .q-uploader__list{pointer-events:none}.q-uploader--dark{border-color:#ffffff47;box-shadow:0 1px 5px #fff3,0 2px 2px #ffffff24,0 3px 1px -2px #ffffff1f}.q-uploader--dark .q-uploader__file{border-color:#ffffff47}.q-uploader--dark .q-uploader__dnd,.q-uploader--dark .q-uploader__overlay{background:#ffffff4d}.q-uploader--dark .q-uploader__overlay{color:#fff}.q-video{position:relative;overflow:hidden;border-radius:inherit}.q-video iframe,.q-video object,.q-video embed{width:100%;height:100%}.q-video--responsive{height:0}.q-video--responsive iframe,.q-video--responsive object,.q-video--responsive embed{position:absolute;top:0;left:0}.q-virtual-scroll:focus{outline:0}.q-virtual-scroll__content{outline:none;contain:content}.q-virtual-scroll__content>*{overflow-anchor:none}.q-virtual-scroll__content>[data-q-vs-anchor]{overflow-anchor:auto}.q-virtual-scroll__padding{background:linear-gradient(#fff0,#fff0 20%,#80808008 20%,#80808014,#80808008 80%,#fff0 80%,#fff0);background-size:var(--q-virtual-scroll-item-width, 100%) var(--q-virtual-scroll-item-height, 50px)}.q-table .q-virtual-scroll__padding tr{height:0!important}.q-table .q-virtual-scroll__padding td{padding:0!important}.q-virtual-scroll--horizontal{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:stretch}.q-virtual-scroll--horizontal .q-virtual-scroll__content{display:flex;flex-direction:row;flex-wrap:nowrap}.q-virtual-scroll--horizontal .q-virtual-scroll__padding,.q-virtual-scroll--horizontal .q-virtual-scroll__content,.q-virtual-scroll--horizontal .q-virtual-scroll__content>*{flex:0 0 auto}.q-virtual-scroll--horizontal .q-virtual-scroll__padding{background:linear-gradient(to left,#fff0,#fff0 20%,#80808008 20%,#80808014,#80808008 80%,#fff0 80%,#fff0);background-size:var(--q-virtual-scroll-item-width, 50px) var(--q-virtual-scroll-item-height, 100%)}.q-ripple{position:absolute;top:0;left:0;width:100%;height:100%;color:inherit;border-radius:inherit;z-index:0;pointer-events:none;overflow:hidden;contain:strict}.q-ripple__inner{position:absolute;top:0;left:0;opacity:0;color:inherit;border-radius:50%;background:currentColor;pointer-events:none;will-change:transform,opacity}.q-ripple__inner--enter{transition:transform .225s cubic-bezier(.4,0,.2,1),opacity .1s cubic-bezier(.4,0,.2,1)}.q-ripple__inner--leave{transition:opacity .25s cubic-bezier(.4,0,.2,1)}.q-morph--invisible,.q-morph--internal{opacity:0!important;pointer-events:none!important;position:fixed!important;right:200vw!important;bottom:200vh!important}.q-bottom-sheet{padding-bottom:8px}.q-bottom-sheet__avatar{border-radius:50%}.q-bottom-sheet--list{width:400px}.q-bottom-sheet--list .q-icon,.q-bottom-sheet--list img{font-size:24px;width:24px;height:24px}.q-bottom-sheet--grid{width:700px}.q-bottom-sheet--grid .q-bottom-sheet__item{padding:8px;text-align:center;min-width:100px}.q-bottom-sheet--grid .q-icon,.q-bottom-sheet--grid img,.q-bottom-sheet--grid .q-bottom-sheet__empty-icon{font-size:48px;width:48px;height:48px;margin-bottom:8px}.q-bottom-sheet--grid .q-separator{margin:12px 0}.q-bottom-sheet__item{flex:0 0 33.3333%}@media(min-width:600px){.q-bottom-sheet__item{flex:0 0 25%}}.q-dialog-plugin{width:400px}.q-dialog-plugin__form{max-height:50vh}.q-dialog-plugin .q-card__section+.q-card__section{padding-top:0}.q-dialog-plugin--progress{text-align:center}.q-loading{color:#000;position:fixed!important}.q-loading__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;opacity:.5;z-index:-1;background-color:#000;transition:background-color .28s}.q-loading__box{border-radius:4px;padding:18px;color:#fff;max-width:450px}.q-loading__message{margin:40px 20px 0;text-align:center}.q-notifications__list{z-index:9500;pointer-events:none;left:0;right:0;margin-bottom:10px;position:relative}.q-notifications__list--center{top:0;bottom:0}.q-notifications__list--top{top:0}.q-notifications__list--bottom{bottom:0}body.q-ios-padding .q-notifications__list--center,body.q-ios-padding .q-notifications__list--top{top:20px;top:env(safe-area-inset-top)}body.q-ios-padding .q-notifications__list--center,body.q-ios-padding .q-notifications__list--bottom{bottom:env(safe-area-inset-bottom)}.q-notification{box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f;border-radius:4px;pointer-events:all;display:inline-flex;margin:10px 10px 0;transition:transform 1s,opacity 1s;z-index:9500;flex-shrink:0;max-width:95vw;background:#323232;color:#fff;font-size:14px}.q-notification__icon{font-size:24px;flex:0 0 1em}.q-notification__icon--additional{margin-right:16px}.q-notification__avatar{font-size:32px}.q-notification__avatar--additional{margin-right:8px}.q-notification__spinner{font-size:32px}.q-notification__spinner--additional{margin-right:8px}.q-notification__message{padding:8px 0}.q-notification__caption{font-size:.9em;opacity:.7}.q-notification__actions{color:var(--q-primary)}.q-notification__badge{animation:q-notif-badge .42s;padding:4px 8px;position:absolute;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;background-color:var(--q-negative);color:#fff;border-radius:4px;font-size:12px;line-height:12px}.q-notification__badge--top-left,.q-notification__badge--top-right{top:-6px}.q-notification__badge--bottom-left,.q-notification__badge--bottom-right{bottom:-6px}.q-notification__badge--top-left,.q-notification__badge--bottom-left{left:-22px}.q-notification__badge--top-right,.q-notification__badge--bottom-right{right:-22px}.q-notification__progress{z-index:-1;position:absolute;height:3px;bottom:0;left:-10px;right:-10px;animation:q-notif-progress linear;background:currentColor;opacity:.3;border-radius:4px 4px 0 0;transform-origin:0 50%;transform:scaleX(0)}.q-notification--standard{padding:0 16px;min-height:48px}.q-notification--standard .q-notification__actions{padding:6px 0 6px 8px;margin-right:-8px}.q-notification--multi-line{min-height:68px;padding:8px 16px}.q-notification--multi-line .q-notification__badge--top-left,.q-notification--multi-line .q-notification__badge--top-right{top:-15px}.q-notification--multi-line .q-notification__badge--bottom-left,.q-notification--multi-line .q-notification__badge--bottom-right{bottom:-15px}.q-notification--multi-line .q-notification__progress{bottom:-8px}.q-notification--multi-line .q-notification__actions{padding:0}.q-notification--multi-line .q-notification__actions--with-media{padding-left:25px}.q-notification--top-left-enter-from,.q-notification--top-left-leave-to,.q-notification--top-enter-from,.q-notification--top-leave-to,.q-notification--top-right-enter-from,.q-notification--top-right-leave-to{opacity:0;transform:translateY(-50px);z-index:9499}.q-notification--left-enter-from,.q-notification--left-leave-to,.q-notification--center-enter-from,.q-notification--center-leave-to,.q-notification--right-enter-from,.q-notification--right-leave-to{opacity:0;transform:rotateX(90deg);z-index:9499}.q-notification--bottom-left-enter-from,.q-notification--bottom-left-leave-to,.q-notification--bottom-enter-from,.q-notification--bottom-leave-to,.q-notification--bottom-right-enter-from,.q-notification--bottom-right-leave-to{opacity:0;transform:translateY(50px);z-index:9499}.q-notification--top-left-leave-active,.q-notification--top-leave-active,.q-notification--top-right-leave-active,.q-notification--left-leave-active,.q-notification--center-leave-active,.q-notification--right-leave-active,.q-notification--bottom-left-leave-active,.q-notification--bottom-leave-active,.q-notification--bottom-right-leave-active{position:absolute;z-index:9499;margin-left:0;margin-right:0}.q-notification--top-leave-active,.q-notification--center-leave-active{top:0}.q-notification--bottom-left-leave-active,.q-notification--bottom-leave-active,.q-notification--bottom-right-leave-active{bottom:0}@media(min-width:600px){.q-notification{max-width:65vw}}@keyframes q-notif-badge{15%{transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}}@keyframes q-notif-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}:root{--animate-duration: .3s;--animate-delay: .3s;--animate-repeat: 1}.animated{animation-duration:var(--animate-duration);animation-fill-mode:both}.animated.infinite{animation-iteration-count:infinite}.animated.hinge{animation-duration:2s}.animated.repeat-1{animation-iteration-count:var(--animate-repeat)}.animated.repeat-2{animation-iteration-count:calc(var(--animate-repeat) * 2)}.animated.repeat-3{animation-iteration-count:calc(var(--animate-repeat) * 3)}.animated.delay-1s{animation-delay:var(--animate-delay)}.animated.delay-2s{animation-delay:calc(var(--animate-delay) * 2)}.animated.delay-3s{animation-delay:calc(var(--animate-delay) * 3)}.animated.delay-4s{animation-delay:calc(var(--animate-delay) * 4)}.animated.delay-5s{animation-delay:calc(var(--animate-delay) * 5)}.animated.faster{animation-duration:calc(var(--animate-duration) / 2)}.animated.fast{animation-duration:calc(var(--animate-duration) * .8)}.animated.slow{animation-duration:calc(var(--animate-duration) * 2)}.animated.slower{animation-duration:calc(var(--animate-duration) * 3)}@media print,(prefers-reduced-motion:reduce){.animated{animation-duration:1ms!important;transition-duration:1ms!important;animation-iteration-count:1!important}.animated[class*=Out]{opacity:0}}.q-animate--scale{animation:q-scale .15s;animation-timing-function:cubic-bezier(.25,.8,.25,1)}@keyframes q-scale{0%{transform:scale(1)}50%{transform:scale(1.04)}to{transform:scale(1)}}.q-animate--fade{animation:q-fade .2s}@keyframes q-fade{0%{opacity:0}to{opacity:1}}:root{--q-primary: #1976d2;--q-secondary: #26a69a;--q-accent: #9c27b0;--q-positive: #21ba45;--q-negative: #c10015;--q-info: #31ccec;--q-warning: #f2c037;--q-dark: #1d1d1d;--q-dark-page: #121212}.text-dark{color:var(--q-dark)!important}.bg-dark{background:var(--q-dark)!important}.text-primary{color:var(--q-primary)!important}.bg-primary{background:var(--q-primary)!important}.text-secondary{color:var(--q-secondary)!important}.bg-secondary{background:var(--q-secondary)!important}.text-accent{color:var(--q-accent)!important}.bg-accent{background:var(--q-accent)!important}.text-positive{color:var(--q-positive)!important}.bg-positive{background:var(--q-positive)!important}.text-negative{color:var(--q-negative)!important}.bg-negative{background:var(--q-negative)!important}.text-info{color:var(--q-info)!important}.bg-info{background:var(--q-info)!important}.text-warning{color:var(--q-warning)!important}.bg-warning{background:var(--q-warning)!important}.text-white{color:#fff!important}.bg-white{background:#fff!important}.text-black{color:#000!important}.bg-black{background:#000!important}.text-transparent{color:transparent!important}.bg-transparent{background:transparent!important}.text-separator{color:#0000001f!important}.bg-separator{background:#0000001f!important}.text-dark-separator{color:#ffffff47!important}.bg-dark-separator{background:#ffffff47!important}.text-red{color:#f44336!important}.text-red-1{color:#ffebee!important}.text-red-2{color:#ffcdd2!important}.text-red-3{color:#ef9a9a!important}.text-red-4{color:#e57373!important}.text-red-5{color:#ef5350!important}.text-red-6{color:#f44336!important}.text-red-7{color:#e53935!important}.text-red-8{color:#d32f2f!important}.text-red-9{color:#c62828!important}.text-red-10{color:#b71c1c!important}.text-red-11{color:#ff8a80!important}.text-red-12{color:#ff5252!important}.text-red-13{color:#ff1744!important}.text-red-14{color:#d50000!important}.text-pink{color:#e91e63!important}.text-pink-1{color:#fce4ec!important}.text-pink-2{color:#f8bbd0!important}.text-pink-3{color:#f48fb1!important}.text-pink-4{color:#f06292!important}.text-pink-5{color:#ec407a!important}.text-pink-6{color:#e91e63!important}.text-pink-7{color:#d81b60!important}.text-pink-8{color:#c2185b!important}.text-pink-9{color:#ad1457!important}.text-pink-10{color:#880e4f!important}.text-pink-11{color:#ff80ab!important}.text-pink-12{color:#ff4081!important}.text-pink-13{color:#f50057!important}.text-pink-14{color:#c51162!important}.text-purple{color:#9c27b0!important}.text-purple-1{color:#f3e5f5!important}.text-purple-2{color:#e1bee7!important}.text-purple-3{color:#ce93d8!important}.text-purple-4{color:#ba68c8!important}.text-purple-5{color:#ab47bc!important}.text-purple-6{color:#9c27b0!important}.text-purple-7{color:#8e24aa!important}.text-purple-8{color:#7b1fa2!important}.text-purple-9{color:#6a1b9a!important}.text-purple-10{color:#4a148c!important}.text-purple-11{color:#ea80fc!important}.text-purple-12{color:#e040fb!important}.text-purple-13{color:#d500f9!important}.text-purple-14{color:#a0f!important}.text-deep-purple{color:#673ab7!important}.text-deep-purple-1{color:#ede7f6!important}.text-deep-purple-2{color:#d1c4e9!important}.text-deep-purple-3{color:#b39ddb!important}.text-deep-purple-4{color:#9575cd!important}.text-deep-purple-5{color:#7e57c2!important}.text-deep-purple-6{color:#673ab7!important}.text-deep-purple-7{color:#5e35b1!important}.text-deep-purple-8{color:#512da8!important}.text-deep-purple-9{color:#4527a0!important}.text-deep-purple-10{color:#311b92!important}.text-deep-purple-11{color:#b388ff!important}.text-deep-purple-12{color:#7c4dff!important}.text-deep-purple-13{color:#651fff!important}.text-deep-purple-14{color:#6200ea!important}.text-indigo{color:#3f51b5!important}.text-indigo-1{color:#e8eaf6!important}.text-indigo-2{color:#c5cae9!important}.text-indigo-3{color:#9fa8da!important}.text-indigo-4{color:#7986cb!important}.text-indigo-5{color:#5c6bc0!important}.text-indigo-6{color:#3f51b5!important}.text-indigo-7{color:#3949ab!important}.text-indigo-8{color:#303f9f!important}.text-indigo-9{color:#283593!important}.text-indigo-10{color:#1a237e!important}.text-indigo-11{color:#8c9eff!important}.text-indigo-12{color:#536dfe!important}.text-indigo-13{color:#3d5afe!important}.text-indigo-14{color:#304ffe!important}.text-blue{color:#2196f3!important}.text-blue-1{color:#e3f2fd!important}.text-blue-2{color:#bbdefb!important}.text-blue-3{color:#90caf9!important}.text-blue-4{color:#64b5f6!important}.text-blue-5{color:#42a5f5!important}.text-blue-6{color:#2196f3!important}.text-blue-7{color:#1e88e5!important}.text-blue-8{color:#1976d2!important}.text-blue-9{color:#1565c0!important}.text-blue-10{color:#0d47a1!important}.text-blue-11{color:#82b1ff!important}.text-blue-12{color:#448aff!important}.text-blue-13{color:#2979ff!important}.text-blue-14{color:#2962ff!important}.text-light-blue{color:#03a9f4!important}.text-light-blue-1{color:#e1f5fe!important}.text-light-blue-2{color:#b3e5fc!important}.text-light-blue-3{color:#81d4fa!important}.text-light-blue-4{color:#4fc3f7!important}.text-light-blue-5{color:#29b6f6!important}.text-light-blue-6{color:#03a9f4!important}.text-light-blue-7{color:#039be5!important}.text-light-blue-8{color:#0288d1!important}.text-light-blue-9{color:#0277bd!important}.text-light-blue-10{color:#01579b!important}.text-light-blue-11{color:#80d8ff!important}.text-light-blue-12{color:#40c4ff!important}.text-light-blue-13{color:#00b0ff!important}.text-light-blue-14{color:#0091ea!important}.text-cyan{color:#00bcd4!important}.text-cyan-1{color:#e0f7fa!important}.text-cyan-2{color:#b2ebf2!important}.text-cyan-3{color:#80deea!important}.text-cyan-4{color:#4dd0e1!important}.text-cyan-5{color:#26c6da!important}.text-cyan-6{color:#00bcd4!important}.text-cyan-7{color:#00acc1!important}.text-cyan-8{color:#0097a7!important}.text-cyan-9{color:#00838f!important}.text-cyan-10{color:#006064!important}.text-cyan-11{color:#84ffff!important}.text-cyan-12{color:#18ffff!important}.text-cyan-13{color:#00e5ff!important}.text-cyan-14{color:#00b8d4!important}.text-teal{color:#009688!important}.text-teal-1{color:#e0f2f1!important}.text-teal-2{color:#b2dfdb!important}.text-teal-3{color:#80cbc4!important}.text-teal-4{color:#4db6ac!important}.text-teal-5{color:#26a69a!important}.text-teal-6{color:#009688!important}.text-teal-7{color:#00897b!important}.text-teal-8{color:#00796b!important}.text-teal-9{color:#00695c!important}.text-teal-10{color:#004d40!important}.text-teal-11{color:#a7ffeb!important}.text-teal-12{color:#64ffda!important}.text-teal-13{color:#1de9b6!important}.text-teal-14{color:#00bfa5!important}.text-green{color:#4caf50!important}.text-green-1{color:#e8f5e9!important}.text-green-2{color:#c8e6c9!important}.text-green-3{color:#a5d6a7!important}.text-green-4{color:#81c784!important}.text-green-5{color:#66bb6a!important}.text-green-6{color:#4caf50!important}.text-green-7{color:#43a047!important}.text-green-8{color:#388e3c!important}.text-green-9{color:#2e7d32!important}.text-green-10{color:#1b5e20!important}.text-green-11{color:#b9f6ca!important}.text-green-12{color:#69f0ae!important}.text-green-13{color:#00e676!important}.text-green-14{color:#00c853!important}.text-light-green{color:#8bc34a!important}.text-light-green-1{color:#f1f8e9!important}.text-light-green-2{color:#dcedc8!important}.text-light-green-3{color:#c5e1a5!important}.text-light-green-4{color:#aed581!important}.text-light-green-5{color:#9ccc65!important}.text-light-green-6{color:#8bc34a!important}.text-light-green-7{color:#7cb342!important}.text-light-green-8{color:#689f38!important}.text-light-green-9{color:#558b2f!important}.text-light-green-10{color:#33691e!important}.text-light-green-11{color:#ccff90!important}.text-light-green-12{color:#b2ff59!important}.text-light-green-13{color:#76ff03!important}.text-light-green-14{color:#64dd17!important}.text-lime{color:#cddc39!important}.text-lime-1{color:#f9fbe7!important}.text-lime-2{color:#f0f4c3!important}.text-lime-3{color:#e6ee9c!important}.text-lime-4{color:#dce775!important}.text-lime-5{color:#d4e157!important}.text-lime-6{color:#cddc39!important}.text-lime-7{color:#c0ca33!important}.text-lime-8{color:#afb42b!important}.text-lime-9{color:#9e9d24!important}.text-lime-10{color:#827717!important}.text-lime-11{color:#f4ff81!important}.text-lime-12{color:#eeff41!important}.text-lime-13{color:#c6ff00!important}.text-lime-14{color:#aeea00!important}.text-yellow{color:#ffeb3b!important}.text-yellow-1{color:#fffde7!important}.text-yellow-2{color:#fff9c4!important}.text-yellow-3{color:#fff59d!important}.text-yellow-4{color:#fff176!important}.text-yellow-5{color:#ffee58!important}.text-yellow-6{color:#ffeb3b!important}.text-yellow-7{color:#fdd835!important}.text-yellow-8{color:#fbc02d!important}.text-yellow-9{color:#f9a825!important}.text-yellow-10{color:#f57f17!important}.text-yellow-11{color:#ffff8d!important}.text-yellow-12{color:#ff0!important}.text-yellow-13{color:#ffea00!important}.text-yellow-14{color:#ffd600!important}.text-amber{color:#ffc107!important}.text-amber-1{color:#fff8e1!important}.text-amber-2{color:#ffecb3!important}.text-amber-3{color:#ffe082!important}.text-amber-4{color:#ffd54f!important}.text-amber-5{color:#ffca28!important}.text-amber-6{color:#ffc107!important}.text-amber-7{color:#ffb300!important}.text-amber-8{color:#ffa000!important}.text-amber-9{color:#ff8f00!important}.text-amber-10{color:#ff6f00!important}.text-amber-11{color:#ffe57f!important}.text-amber-12{color:#ffd740!important}.text-amber-13{color:#ffc400!important}.text-amber-14{color:#ffab00!important}.text-orange{color:#ff9800!important}.text-orange-1{color:#fff3e0!important}.text-orange-2{color:#ffe0b2!important}.text-orange-3{color:#ffcc80!important}.text-orange-4{color:#ffb74d!important}.text-orange-5{color:#ffa726!important}.text-orange-6{color:#ff9800!important}.text-orange-7{color:#fb8c00!important}.text-orange-8{color:#f57c00!important}.text-orange-9{color:#ef6c00!important}.text-orange-10{color:#e65100!important}.text-orange-11{color:#ffd180!important}.text-orange-12{color:#ffab40!important}.text-orange-13{color:#ff9100!important}.text-orange-14{color:#ff6d00!important}.text-deep-orange{color:#ff5722!important}.text-deep-orange-1{color:#fbe9e7!important}.text-deep-orange-2{color:#ffccbc!important}.text-deep-orange-3{color:#ffab91!important}.text-deep-orange-4{color:#ff8a65!important}.text-deep-orange-5{color:#ff7043!important}.text-deep-orange-6{color:#ff5722!important}.text-deep-orange-7{color:#f4511e!important}.text-deep-orange-8{color:#e64a19!important}.text-deep-orange-9{color:#d84315!important}.text-deep-orange-10{color:#bf360c!important}.text-deep-orange-11{color:#ff9e80!important}.text-deep-orange-12{color:#ff6e40!important}.text-deep-orange-13{color:#ff3d00!important}.text-deep-orange-14{color:#dd2c00!important}.text-brown{color:#795548!important}.text-brown-1{color:#efebe9!important}.text-brown-2{color:#d7ccc8!important}.text-brown-3{color:#bcaaa4!important}.text-brown-4{color:#a1887f!important}.text-brown-5{color:#8d6e63!important}.text-brown-6{color:#795548!important}.text-brown-7{color:#6d4c41!important}.text-brown-8{color:#5d4037!important}.text-brown-9{color:#4e342e!important}.text-brown-10{color:#3e2723!important}.text-brown-11{color:#d7ccc8!important}.text-brown-12{color:#bcaaa4!important}.text-brown-13{color:#8d6e63!important}.text-brown-14{color:#5d4037!important}.text-grey{color:#9e9e9e!important}.text-grey-1{color:#fafafa!important}.text-grey-2{color:#f5f5f5!important}.text-grey-3{color:#eee!important}.text-grey-4{color:#e0e0e0!important}.text-grey-5{color:#bdbdbd!important}.text-grey-6{color:#9e9e9e!important}.text-grey-7{color:#757575!important}.text-grey-8{color:#616161!important}.text-grey-9{color:#424242!important}.text-grey-10{color:#212121!important}.text-grey-11{color:#f5f5f5!important}.text-grey-12{color:#eee!important}.text-grey-13{color:#bdbdbd!important}.text-grey-14{color:#616161!important}.text-blue-grey{color:#607d8b!important}.text-blue-grey-1{color:#eceff1!important}.text-blue-grey-2{color:#cfd8dc!important}.text-blue-grey-3{color:#b0bec5!important}.text-blue-grey-4{color:#90a4ae!important}.text-blue-grey-5{color:#78909c!important}.text-blue-grey-6{color:#607d8b!important}.text-blue-grey-7{color:#546e7a!important}.text-blue-grey-8{color:#455a64!important}.text-blue-grey-9{color:#37474f!important}.text-blue-grey-10{color:#263238!important}.text-blue-grey-11{color:#cfd8dc!important}.text-blue-grey-12{color:#b0bec5!important}.text-blue-grey-13{color:#78909c!important}.text-blue-grey-14{color:#455a64!important}.bg-red{background:#f44336!important}.bg-red-1{background:#ffebee!important}.bg-red-2{background:#ffcdd2!important}.bg-red-3{background:#ef9a9a!important}.bg-red-4{background:#e57373!important}.bg-red-5{background:#ef5350!important}.bg-red-6{background:#f44336!important}.bg-red-7{background:#e53935!important}.bg-red-8{background:#d32f2f!important}.bg-red-9{background:#c62828!important}.bg-red-10{background:#b71c1c!important}.bg-red-11{background:#ff8a80!important}.bg-red-12{background:#ff5252!important}.bg-red-13{background:#ff1744!important}.bg-red-14{background:#d50000!important}.bg-pink{background:#e91e63!important}.bg-pink-1{background:#fce4ec!important}.bg-pink-2{background:#f8bbd0!important}.bg-pink-3{background:#f48fb1!important}.bg-pink-4{background:#f06292!important}.bg-pink-5{background:#ec407a!important}.bg-pink-6{background:#e91e63!important}.bg-pink-7{background:#d81b60!important}.bg-pink-8{background:#c2185b!important}.bg-pink-9{background:#ad1457!important}.bg-pink-10{background:#880e4f!important}.bg-pink-11{background:#ff80ab!important}.bg-pink-12{background:#ff4081!important}.bg-pink-13{background:#f50057!important}.bg-pink-14{background:#c51162!important}.bg-purple{background:#9c27b0!important}.bg-purple-1{background:#f3e5f5!important}.bg-purple-2{background:#e1bee7!important}.bg-purple-3{background:#ce93d8!important}.bg-purple-4{background:#ba68c8!important}.bg-purple-5{background:#ab47bc!important}.bg-purple-6{background:#9c27b0!important}.bg-purple-7{background:#8e24aa!important}.bg-purple-8{background:#7b1fa2!important}.bg-purple-9{background:#6a1b9a!important}.bg-purple-10{background:#4a148c!important}.bg-purple-11{background:#ea80fc!important}.bg-purple-12{background:#e040fb!important}.bg-purple-13{background:#d500f9!important}.bg-purple-14{background:#a0f!important}.bg-deep-purple{background:#673ab7!important}.bg-deep-purple-1{background:#ede7f6!important}.bg-deep-purple-2{background:#d1c4e9!important}.bg-deep-purple-3{background:#b39ddb!important}.bg-deep-purple-4{background:#9575cd!important}.bg-deep-purple-5{background:#7e57c2!important}.bg-deep-purple-6{background:#673ab7!important}.bg-deep-purple-7{background:#5e35b1!important}.bg-deep-purple-8{background:#512da8!important}.bg-deep-purple-9{background:#4527a0!important}.bg-deep-purple-10{background:#311b92!important}.bg-deep-purple-11{background:#b388ff!important}.bg-deep-purple-12{background:#7c4dff!important}.bg-deep-purple-13{background:#651fff!important}.bg-deep-purple-14{background:#6200ea!important}.bg-indigo{background:#3f51b5!important}.bg-indigo-1{background:#e8eaf6!important}.bg-indigo-2{background:#c5cae9!important}.bg-indigo-3{background:#9fa8da!important}.bg-indigo-4{background:#7986cb!important}.bg-indigo-5{background:#5c6bc0!important}.bg-indigo-6{background:#3f51b5!important}.bg-indigo-7{background:#3949ab!important}.bg-indigo-8{background:#303f9f!important}.bg-indigo-9{background:#283593!important}.bg-indigo-10{background:#1a237e!important}.bg-indigo-11{background:#8c9eff!important}.bg-indigo-12{background:#536dfe!important}.bg-indigo-13{background:#3d5afe!important}.bg-indigo-14{background:#304ffe!important}.bg-blue{background:#2196f3!important}.bg-blue-1{background:#e3f2fd!important}.bg-blue-2{background:#bbdefb!important}.bg-blue-3{background:#90caf9!important}.bg-blue-4{background:#64b5f6!important}.bg-blue-5{background:#42a5f5!important}.bg-blue-6{background:#2196f3!important}.bg-blue-7{background:#1e88e5!important}.bg-blue-8{background:#1976d2!important}.bg-blue-9{background:#1565c0!important}.bg-blue-10{background:#0d47a1!important}.bg-blue-11{background:#82b1ff!important}.bg-blue-12{background:#448aff!important}.bg-blue-13{background:#2979ff!important}.bg-blue-14{background:#2962ff!important}.bg-light-blue{background:#03a9f4!important}.bg-light-blue-1{background:#e1f5fe!important}.bg-light-blue-2{background:#b3e5fc!important}.bg-light-blue-3{background:#81d4fa!important}.bg-light-blue-4{background:#4fc3f7!important}.bg-light-blue-5{background:#29b6f6!important}.bg-light-blue-6{background:#03a9f4!important}.bg-light-blue-7{background:#039be5!important}.bg-light-blue-8{background:#0288d1!important}.bg-light-blue-9{background:#0277bd!important}.bg-light-blue-10{background:#01579b!important}.bg-light-blue-11{background:#80d8ff!important}.bg-light-blue-12{background:#40c4ff!important}.bg-light-blue-13{background:#00b0ff!important}.bg-light-blue-14{background:#0091ea!important}.bg-cyan{background:#00bcd4!important}.bg-cyan-1{background:#e0f7fa!important}.bg-cyan-2{background:#b2ebf2!important}.bg-cyan-3{background:#80deea!important}.bg-cyan-4{background:#4dd0e1!important}.bg-cyan-5{background:#26c6da!important}.bg-cyan-6{background:#00bcd4!important}.bg-cyan-7{background:#00acc1!important}.bg-cyan-8{background:#0097a7!important}.bg-cyan-9{background:#00838f!important}.bg-cyan-10{background:#006064!important}.bg-cyan-11{background:#84ffff!important}.bg-cyan-12{background:#18ffff!important}.bg-cyan-13{background:#00e5ff!important}.bg-cyan-14{background:#00b8d4!important}.bg-teal{background:#009688!important}.bg-teal-1{background:#e0f2f1!important}.bg-teal-2{background:#b2dfdb!important}.bg-teal-3{background:#80cbc4!important}.bg-teal-4{background:#4db6ac!important}.bg-teal-5{background:#26a69a!important}.bg-teal-6{background:#009688!important}.bg-teal-7{background:#00897b!important}.bg-teal-8{background:#00796b!important}.bg-teal-9{background:#00695c!important}.bg-teal-10{background:#004d40!important}.bg-teal-11{background:#a7ffeb!important}.bg-teal-12{background:#64ffda!important}.bg-teal-13{background:#1de9b6!important}.bg-teal-14{background:#00bfa5!important}.bg-green{background:#4caf50!important}.bg-green-1{background:#e8f5e9!important}.bg-green-2{background:#c8e6c9!important}.bg-green-3{background:#a5d6a7!important}.bg-green-4{background:#81c784!important}.bg-green-5{background:#66bb6a!important}.bg-green-6{background:#4caf50!important}.bg-green-7{background:#43a047!important}.bg-green-8{background:#388e3c!important}.bg-green-9{background:#2e7d32!important}.bg-green-10{background:#1b5e20!important}.bg-green-11{background:#b9f6ca!important}.bg-green-12{background:#69f0ae!important}.bg-green-13{background:#00e676!important}.bg-green-14{background:#00c853!important}.bg-light-green{background:#8bc34a!important}.bg-light-green-1{background:#f1f8e9!important}.bg-light-green-2{background:#dcedc8!important}.bg-light-green-3{background:#c5e1a5!important}.bg-light-green-4{background:#aed581!important}.bg-light-green-5{background:#9ccc65!important}.bg-light-green-6{background:#8bc34a!important}.bg-light-green-7{background:#7cb342!important}.bg-light-green-8{background:#689f38!important}.bg-light-green-9{background:#558b2f!important}.bg-light-green-10{background:#33691e!important}.bg-light-green-11{background:#ccff90!important}.bg-light-green-12{background:#b2ff59!important}.bg-light-green-13{background:#76ff03!important}.bg-light-green-14{background:#64dd17!important}.bg-lime{background:#cddc39!important}.bg-lime-1{background:#f9fbe7!important}.bg-lime-2{background:#f0f4c3!important}.bg-lime-3{background:#e6ee9c!important}.bg-lime-4{background:#dce775!important}.bg-lime-5{background:#d4e157!important}.bg-lime-6{background:#cddc39!important}.bg-lime-7{background:#c0ca33!important}.bg-lime-8{background:#afb42b!important}.bg-lime-9{background:#9e9d24!important}.bg-lime-10{background:#827717!important}.bg-lime-11{background:#f4ff81!important}.bg-lime-12{background:#eeff41!important}.bg-lime-13{background:#c6ff00!important}.bg-lime-14{background:#aeea00!important}.bg-yellow{background:#ffeb3b!important}.bg-yellow-1{background:#fffde7!important}.bg-yellow-2{background:#fff9c4!important}.bg-yellow-3{background:#fff59d!important}.bg-yellow-4{background:#fff176!important}.bg-yellow-5{background:#ffee58!important}.bg-yellow-6{background:#ffeb3b!important}.bg-yellow-7{background:#fdd835!important}.bg-yellow-8{background:#fbc02d!important}.bg-yellow-9{background:#f9a825!important}.bg-yellow-10{background:#f57f17!important}.bg-yellow-11{background:#ffff8d!important}.bg-yellow-12{background:#ff0!important}.bg-yellow-13{background:#ffea00!important}.bg-yellow-14{background:#ffd600!important}.bg-amber{background:#ffc107!important}.bg-amber-1{background:#fff8e1!important}.bg-amber-2{background:#ffecb3!important}.bg-amber-3{background:#ffe082!important}.bg-amber-4{background:#ffd54f!important}.bg-amber-5{background:#ffca28!important}.bg-amber-6{background:#ffc107!important}.bg-amber-7{background:#ffb300!important}.bg-amber-8{background:#ffa000!important}.bg-amber-9{background:#ff8f00!important}.bg-amber-10{background:#ff6f00!important}.bg-amber-11{background:#ffe57f!important}.bg-amber-12{background:#ffd740!important}.bg-amber-13{background:#ffc400!important}.bg-amber-14{background:#ffab00!important}.bg-orange{background:#ff9800!important}.bg-orange-1{background:#fff3e0!important}.bg-orange-2{background:#ffe0b2!important}.bg-orange-3{background:#ffcc80!important}.bg-orange-4{background:#ffb74d!important}.bg-orange-5{background:#ffa726!important}.bg-orange-6{background:#ff9800!important}.bg-orange-7{background:#fb8c00!important}.bg-orange-8{background:#f57c00!important}.bg-orange-9{background:#ef6c00!important}.bg-orange-10{background:#e65100!important}.bg-orange-11{background:#ffd180!important}.bg-orange-12{background:#ffab40!important}.bg-orange-13{background:#ff9100!important}.bg-orange-14{background:#ff6d00!important}.bg-deep-orange{background:#ff5722!important}.bg-deep-orange-1{background:#fbe9e7!important}.bg-deep-orange-2{background:#ffccbc!important}.bg-deep-orange-3{background:#ffab91!important}.bg-deep-orange-4{background:#ff8a65!important}.bg-deep-orange-5{background:#ff7043!important}.bg-deep-orange-6{background:#ff5722!important}.bg-deep-orange-7{background:#f4511e!important}.bg-deep-orange-8{background:#e64a19!important}.bg-deep-orange-9{background:#d84315!important}.bg-deep-orange-10{background:#bf360c!important}.bg-deep-orange-11{background:#ff9e80!important}.bg-deep-orange-12{background:#ff6e40!important}.bg-deep-orange-13{background:#ff3d00!important}.bg-deep-orange-14{background:#dd2c00!important}.bg-brown{background:#795548!important}.bg-brown-1{background:#efebe9!important}.bg-brown-2{background:#d7ccc8!important}.bg-brown-3{background:#bcaaa4!important}.bg-brown-4{background:#a1887f!important}.bg-brown-5{background:#8d6e63!important}.bg-brown-6{background:#795548!important}.bg-brown-7{background:#6d4c41!important}.bg-brown-8{background:#5d4037!important}.bg-brown-9{background:#4e342e!important}.bg-brown-10{background:#3e2723!important}.bg-brown-11{background:#d7ccc8!important}.bg-brown-12{background:#bcaaa4!important}.bg-brown-13{background:#8d6e63!important}.bg-brown-14{background:#5d4037!important}.bg-grey{background:#9e9e9e!important}.bg-grey-1{background:#fafafa!important}.bg-grey-2{background:#f5f5f5!important}.bg-grey-3{background:#eee!important}.bg-grey-4{background:#e0e0e0!important}.bg-grey-5{background:#bdbdbd!important}.bg-grey-6{background:#9e9e9e!important}.bg-grey-7{background:#757575!important}.bg-grey-8{background:#616161!important}.bg-grey-9{background:#424242!important}.bg-grey-10{background:#212121!important}.bg-grey-11{background:#f5f5f5!important}.bg-grey-12{background:#eee!important}.bg-grey-13{background:#bdbdbd!important}.bg-grey-14{background:#616161!important}.bg-blue-grey{background:#607d8b!important}.bg-blue-grey-1{background:#eceff1!important}.bg-blue-grey-2{background:#cfd8dc!important}.bg-blue-grey-3{background:#b0bec5!important}.bg-blue-grey-4{background:#90a4ae!important}.bg-blue-grey-5{background:#78909c!important}.bg-blue-grey-6{background:#607d8b!important}.bg-blue-grey-7{background:#546e7a!important}.bg-blue-grey-8{background:#455a64!important}.bg-blue-grey-9{background:#37474f!important}.bg-blue-grey-10{background:#263238!important}.bg-blue-grey-11{background:#cfd8dc!important}.bg-blue-grey-12{background:#b0bec5!important}.bg-blue-grey-13{background:#78909c!important}.bg-blue-grey-14{background:#455a64!important}.shadow-transition{transition:box-shadow .28s cubic-bezier(.4,0,.2,1)!important}.shadow-1{box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f}.shadow-up-1{box-shadow:0 -1px 3px #0003,0 -1px 1px #00000024,0 -2px 1px -1px #0000001f}.shadow-2{box-shadow:0 1px 5px #0003,0 2px 2px #00000024,0 3px 1px -2px #0000001f}.shadow-up-2{box-shadow:0 -1px 5px #0003,0 -2px 2px #00000024,0 -3px 1px -2px #0000001f}.shadow-3{box-shadow:0 1px 8px #0003,0 3px 4px #00000024,0 3px 3px -2px #0000001f}.shadow-up-3{box-shadow:0 -1px 8px #0003,0 -3px 4px #00000024,0 -3px 3px -2px #0000001f}.shadow-4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.shadow-up-4{box-shadow:0 -2px 4px -1px #0003,0 -4px 5px #00000024,0 -1px 10px #0000001f}.shadow-5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.shadow-up-5{box-shadow:0 -3px 5px -1px #0003,0 -5px 8px #00000024,0 -1px 14px #0000001f}.shadow-6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.shadow-up-6{box-shadow:0 -3px 5px -1px #0003,0 -6px 10px #00000024,0 -1px 18px #0000001f}.shadow-7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.shadow-up-7{box-shadow:0 -4px 5px -2px #0003,0 -7px 10px 1px #00000024,0 -2px 16px 1px #0000001f}.shadow-8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.shadow-up-8{box-shadow:0 -5px 5px -3px #0003,0 -8px 10px 1px #00000024,0 -3px 14px 2px #0000001f}.shadow-9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.shadow-up-9{box-shadow:0 -5px 6px -3px #0003,0 -9px 12px 1px #00000024,0 -3px 16px 2px #0000001f}.shadow-10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.shadow-up-10{box-shadow:0 -6px 6px -3px #0003,0 -10px 14px 1px #00000024,0 -4px 18px 3px #0000001f}.shadow-11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.shadow-up-11{box-shadow:0 -6px 7px -4px #0003,0 -11px 15px 1px #00000024,0 -4px 20px 3px #0000001f}.shadow-12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.shadow-up-12{box-shadow:0 -7px 8px -4px #0003,0 -12px 17px 2px #00000024,0 -5px 22px 4px #0000001f}.shadow-13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.shadow-up-13{box-shadow:0 -7px 8px -4px #0003,0 -13px 19px 2px #00000024,0 -5px 24px 4px #0000001f}.shadow-14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.shadow-up-14{box-shadow:0 -7px 9px -4px #0003,0 -14px 21px 2px #00000024,0 -5px 26px 4px #0000001f}.shadow-15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.shadow-up-15{box-shadow:0 -8px 9px -5px #0003,0 -15px 22px 2px #00000024,0 -6px 28px 5px #0000001f}.shadow-16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.shadow-up-16{box-shadow:0 -8px 10px -5px #0003,0 -16px 24px 2px #00000024,0 -6px 30px 5px #0000001f}.shadow-17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.shadow-up-17{box-shadow:0 -8px 11px -5px #0003,0 -17px 26px 2px #00000024,0 -6px 32px 5px #0000001f}.shadow-18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.shadow-up-18{box-shadow:0 -9px 11px -5px #0003,0 -18px 28px 2px #00000024,0 -7px 34px 6px #0000001f}.shadow-19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.shadow-up-19{box-shadow:0 -9px 12px -6px #0003,0 -19px 29px 2px #00000024,0 -7px 36px 6px #0000001f}.shadow-20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.shadow-up-20{box-shadow:0 -10px 13px -6px #0003,0 -20px 31px 3px #00000024,0 -8px 38px 7px #0000001f}.shadow-21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.shadow-up-21{box-shadow:0 -10px 13px -6px #0003,0 -21px 33px 3px #00000024,0 -8px 40px 7px #0000001f}.shadow-22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.shadow-up-22{box-shadow:0 -10px 14px -6px #0003,0 -22px 35px 3px #00000024,0 -8px 42px 7px #0000001f}.shadow-23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.shadow-up-23{box-shadow:0 -11px 14px -7px #0003,0 -23px 36px 3px #00000024,0 -9px 44px 8px #0000001f}.shadow-24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.shadow-up-24{box-shadow:0 -11px 15px -7px #0003,0 -24px 38px 3px #00000024,0 -9px 46px 8px #0000001f}.inset-shadow{box-shadow:0 7px 9px -7px #000000b3 inset}.inset-shadow-down{box-shadow:0 -7px 9px -7px #000000b3 inset}body.body--dark .shadow-1{box-shadow:0 1px 3px #fff3,0 1px 1px #ffffff24,0 2px 1px -1px #ffffff1f}body.body--dark .shadow-up-1{box-shadow:0 -1px 3px #fff3,0 -1px 1px #ffffff24,0 -2px 1px -1px #ffffff1f}body.body--dark .shadow-2{box-shadow:0 1px 5px #fff3,0 2px 2px #ffffff24,0 3px 1px -2px #ffffff1f}body.body--dark .shadow-up-2{box-shadow:0 -1px 5px #fff3,0 -2px 2px #ffffff24,0 -3px 1px -2px #ffffff1f}body.body--dark .shadow-3{box-shadow:0 1px 8px #fff3,0 3px 4px #ffffff24,0 3px 3px -2px #ffffff1f}body.body--dark .shadow-up-3{box-shadow:0 -1px 8px #fff3,0 -3px 4px #ffffff24,0 -3px 3px -2px #ffffff1f}body.body--dark .shadow-4{box-shadow:0 2px 4px -1px #fff3,0 4px 5px #ffffff24,0 1px 10px #ffffff1f}body.body--dark .shadow-up-4{box-shadow:0 -2px 4px -1px #fff3,0 -4px 5px #ffffff24,0 -1px 10px #ffffff1f}body.body--dark .shadow-5{box-shadow:0 3px 5px -1px #fff3,0 5px 8px #ffffff24,0 1px 14px #ffffff1f}body.body--dark .shadow-up-5{box-shadow:0 -3px 5px -1px #fff3,0 -5px 8px #ffffff24,0 -1px 14px #ffffff1f}body.body--dark .shadow-6{box-shadow:0 3px 5px -1px #fff3,0 6px 10px #ffffff24,0 1px 18px #ffffff1f}body.body--dark .shadow-up-6{box-shadow:0 -3px 5px -1px #fff3,0 -6px 10px #ffffff24,0 -1px 18px #ffffff1f}body.body--dark .shadow-7{box-shadow:0 4px 5px -2px #fff3,0 7px 10px 1px #ffffff24,0 2px 16px 1px #ffffff1f}body.body--dark .shadow-up-7{box-shadow:0 -4px 5px -2px #fff3,0 -7px 10px 1px #ffffff24,0 -2px 16px 1px #ffffff1f}body.body--dark .shadow-8{box-shadow:0 5px 5px -3px #fff3,0 8px 10px 1px #ffffff24,0 3px 14px 2px #ffffff1f}body.body--dark .shadow-up-8{box-shadow:0 -5px 5px -3px #fff3,0 -8px 10px 1px #ffffff24,0 -3px 14px 2px #ffffff1f}body.body--dark .shadow-9{box-shadow:0 5px 6px -3px #fff3,0 9px 12px 1px #ffffff24,0 3px 16px 2px #ffffff1f}body.body--dark .shadow-up-9{box-shadow:0 -5px 6px -3px #fff3,0 -9px 12px 1px #ffffff24,0 -3px 16px 2px #ffffff1f}body.body--dark .shadow-10{box-shadow:0 6px 6px -3px #fff3,0 10px 14px 1px #ffffff24,0 4px 18px 3px #ffffff1f}body.body--dark .shadow-up-10{box-shadow:0 -6px 6px -3px #fff3,0 -10px 14px 1px #ffffff24,0 -4px 18px 3px #ffffff1f}body.body--dark .shadow-11{box-shadow:0 6px 7px -4px #fff3,0 11px 15px 1px #ffffff24,0 4px 20px 3px #ffffff1f}body.body--dark .shadow-up-11{box-shadow:0 -6px 7px -4px #fff3,0 -11px 15px 1px #ffffff24,0 -4px 20px 3px #ffffff1f}body.body--dark .shadow-12{box-shadow:0 7px 8px -4px #fff3,0 12px 17px 2px #ffffff24,0 5px 22px 4px #ffffff1f}body.body--dark .shadow-up-12{box-shadow:0 -7px 8px -4px #fff3,0 -12px 17px 2px #ffffff24,0 -5px 22px 4px #ffffff1f}body.body--dark .shadow-13{box-shadow:0 7px 8px -4px #fff3,0 13px 19px 2px #ffffff24,0 5px 24px 4px #ffffff1f}body.body--dark .shadow-up-13{box-shadow:0 -7px 8px -4px #fff3,0 -13px 19px 2px #ffffff24,0 -5px 24px 4px #ffffff1f}body.body--dark .shadow-14{box-shadow:0 7px 9px -4px #fff3,0 14px 21px 2px #ffffff24,0 5px 26px 4px #ffffff1f}body.body--dark .shadow-up-14{box-shadow:0 -7px 9px -4px #fff3,0 -14px 21px 2px #ffffff24,0 -5px 26px 4px #ffffff1f}body.body--dark .shadow-15{box-shadow:0 8px 9px -5px #fff3,0 15px 22px 2px #ffffff24,0 6px 28px 5px #ffffff1f}body.body--dark .shadow-up-15{box-shadow:0 -8px 9px -5px #fff3,0 -15px 22px 2px #ffffff24,0 -6px 28px 5px #ffffff1f}body.body--dark .shadow-16{box-shadow:0 8px 10px -5px #fff3,0 16px 24px 2px #ffffff24,0 6px 30px 5px #ffffff1f}body.body--dark .shadow-up-16{box-shadow:0 -8px 10px -5px #fff3,0 -16px 24px 2px #ffffff24,0 -6px 30px 5px #ffffff1f}body.body--dark .shadow-17{box-shadow:0 8px 11px -5px #fff3,0 17px 26px 2px #ffffff24,0 6px 32px 5px #ffffff1f}body.body--dark .shadow-up-17{box-shadow:0 -8px 11px -5px #fff3,0 -17px 26px 2px #ffffff24,0 -6px 32px 5px #ffffff1f}body.body--dark .shadow-18{box-shadow:0 9px 11px -5px #fff3,0 18px 28px 2px #ffffff24,0 7px 34px 6px #ffffff1f}body.body--dark .shadow-up-18{box-shadow:0 -9px 11px -5px #fff3,0 -18px 28px 2px #ffffff24,0 -7px 34px 6px #ffffff1f}body.body--dark .shadow-19{box-shadow:0 9px 12px -6px #fff3,0 19px 29px 2px #ffffff24,0 7px 36px 6px #ffffff1f}body.body--dark .shadow-up-19{box-shadow:0 -9px 12px -6px #fff3,0 -19px 29px 2px #ffffff24,0 -7px 36px 6px #ffffff1f}body.body--dark .shadow-20{box-shadow:0 10px 13px -6px #fff3,0 20px 31px 3px #ffffff24,0 8px 38px 7px #ffffff1f}body.body--dark .shadow-up-20{box-shadow:0 -10px 13px -6px #fff3,0 -20px 31px 3px #ffffff24,0 -8px 38px 7px #ffffff1f}body.body--dark .shadow-21{box-shadow:0 10px 13px -6px #fff3,0 21px 33px 3px #ffffff24,0 8px 40px 7px #ffffff1f}body.body--dark .shadow-up-21{box-shadow:0 -10px 13px -6px #fff3,0 -21px 33px 3px #ffffff24,0 -8px 40px 7px #ffffff1f}body.body--dark .shadow-22{box-shadow:0 10px 14px -6px #fff3,0 22px 35px 3px #ffffff24,0 8px 42px 7px #ffffff1f}body.body--dark .shadow-up-22{box-shadow:0 -10px 14px -6px #fff3,0 -22px 35px 3px #ffffff24,0 -8px 42px 7px #ffffff1f}body.body--dark .shadow-23{box-shadow:0 11px 14px -7px #fff3,0 23px 36px 3px #ffffff24,0 9px 44px 8px #ffffff1f}body.body--dark .shadow-up-23{box-shadow:0 -11px 14px -7px #fff3,0 -23px 36px 3px #ffffff24,0 -9px 44px 8px #ffffff1f}body.body--dark .shadow-24{box-shadow:0 11px 15px -7px #fff3,0 24px 38px 3px #ffffff24,0 9px 46px 8px #ffffff1f}body.body--dark .shadow-up-24{box-shadow:0 -11px 15px -7px #fff3,0 -24px 38px 3px #ffffff24,0 -9px 46px 8px #ffffff1f}body.body--dark .inset-shadow{box-shadow:0 7px 9px -7px #ffffffb3 inset}body.body--dark .inset-shadow-down{box-shadow:0 -7px 9px -7px #ffffffb3 inset}.no-shadow,.shadow-0{box-shadow:none!important}.z-marginals{z-index:2000}.z-notify{z-index:9500}.z-fullscreen{z-index:6000}.z-inherit{z-index:inherit!important}.row,.column,.flex{display:flex;flex-wrap:wrap}.row.inline,.column.inline,.flex.inline{display:inline-flex}.row.reverse{flex-direction:row-reverse}.column{flex-direction:column}.column.reverse{flex-direction:column-reverse}.wrap{flex-wrap:wrap}.no-wrap{flex-wrap:nowrap}.reverse-wrap{flex-wrap:wrap-reverse}.order-first{order:-10000}.order-last{order:10000}.order-none{order:0}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center,.flex-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center,.flex-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-stretch{align-content:stretch}.content-between{align-content:space-between}.content-around{align-content:space-around}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-baseline{align-self:baseline}.self-stretch{align-self:stretch}.q-gutter-x-none,.q-gutter-none{margin-left:0}.q-gutter-x-none>*,.q-gutter-none>*{margin-left:0}.q-gutter-y-none,.q-gutter-none{margin-top:0}.q-gutter-y-none>*,.q-gutter-none>*{margin-top:0}.q-col-gutter-x-none,.q-col-gutter-none{margin-left:0}.q-col-gutter-x-none>*,.q-col-gutter-none>*{padding-left:0}.q-col-gutter-y-none,.q-col-gutter-none{margin-top:0}.q-col-gutter-y-none>*,.q-col-gutter-none>*{padding-top:0}.q-gutter-x-xs,.q-gutter-xs{margin-left:-4px}.q-gutter-x-xs>*,.q-gutter-xs>*{margin-left:4px}.q-gutter-y-xs,.q-gutter-xs{margin-top:-4px}.q-gutter-y-xs>*,.q-gutter-xs>*{margin-top:4px}.q-col-gutter-x-xs,.q-col-gutter-xs{margin-left:-4px}.q-col-gutter-x-xs>*,.q-col-gutter-xs>*{padding-left:4px}.q-col-gutter-y-xs,.q-col-gutter-xs{margin-top:-4px}.q-col-gutter-y-xs>*,.q-col-gutter-xs>*{padding-top:4px}.q-gutter-x-sm,.q-gutter-sm{margin-left:-8px}.q-gutter-x-sm>*,.q-gutter-sm>*{margin-left:8px}.q-gutter-y-sm,.q-gutter-sm{margin-top:-8px}.q-gutter-y-sm>*,.q-gutter-sm>*{margin-top:8px}.q-col-gutter-x-sm,.q-col-gutter-sm{margin-left:-8px}.q-col-gutter-x-sm>*,.q-col-gutter-sm>*{padding-left:8px}.q-col-gutter-y-sm,.q-col-gutter-sm{margin-top:-8px}.q-col-gutter-y-sm>*,.q-col-gutter-sm>*{padding-top:8px}.q-gutter-x-md,.q-gutter-md{margin-left:-16px}.q-gutter-x-md>*,.q-gutter-md>*{margin-left:16px}.q-gutter-y-md,.q-gutter-md{margin-top:-16px}.q-gutter-y-md>*,.q-gutter-md>*{margin-top:16px}.q-col-gutter-x-md,.q-col-gutter-md{margin-left:-16px}.q-col-gutter-x-md>*,.q-col-gutter-md>*{padding-left:16px}.q-col-gutter-y-md,.q-col-gutter-md{margin-top:-16px}.q-col-gutter-y-md>*,.q-col-gutter-md>*{padding-top:16px}.q-gutter-x-lg,.q-gutter-lg{margin-left:-24px}.q-gutter-x-lg>*,.q-gutter-lg>*{margin-left:24px}.q-gutter-y-lg,.q-gutter-lg{margin-top:-24px}.q-gutter-y-lg>*,.q-gutter-lg>*{margin-top:24px}.q-col-gutter-x-lg,.q-col-gutter-lg{margin-left:-24px}.q-col-gutter-x-lg>*,.q-col-gutter-lg>*{padding-left:24px}.q-col-gutter-y-lg,.q-col-gutter-lg{margin-top:-24px}.q-col-gutter-y-lg>*,.q-col-gutter-lg>*{padding-top:24px}.q-gutter-x-xl,.q-gutter-xl{margin-left:-48px}.q-gutter-x-xl>*,.q-gutter-xl>*{margin-left:48px}.q-gutter-y-xl,.q-gutter-xl{margin-top:-48px}.q-gutter-y-xl>*,.q-gutter-xl>*{margin-top:48px}.q-col-gutter-x-xl,.q-col-gutter-xl{margin-left:-48px}.q-col-gutter-x-xl>*,.q-col-gutter-xl>*{padding-left:48px}.q-col-gutter-y-xl,.q-col-gutter-xl{margin-top:-48px}.q-col-gutter-y-xl>*,.q-col-gutter-xl>*{padding-top:48px}@media(min-width:0){.row>.col,.flex>.col,.row>.col-auto,.flex>.col-auto,.row>.col-grow,.flex>.col-grow,.row>.col-shrink,.flex>.col-shrink,.row>.col-xs,.flex>.col-xs,.row>.col-xs-auto,.row>.col-12,.row>.col-xs-12,.row>.col-11,.row>.col-xs-11,.row>.col-10,.row>.col-xs-10,.row>.col-9,.row>.col-xs-9,.row>.col-8,.row>.col-xs-8,.row>.col-7,.row>.col-xs-7,.row>.col-6,.row>.col-xs-6,.row>.col-5,.row>.col-xs-5,.row>.col-4,.row>.col-xs-4,.row>.col-3,.row>.col-xs-3,.row>.col-2,.row>.col-xs-2,.row>.col-1,.row>.col-xs-1,.row>.col-0,.row>.col-xs-0,.flex>.col-xs-auto,.flex>.col-12,.flex>.col-xs-12,.flex>.col-11,.flex>.col-xs-11,.flex>.col-10,.flex>.col-xs-10,.flex>.col-9,.flex>.col-xs-9,.flex>.col-8,.flex>.col-xs-8,.flex>.col-7,.flex>.col-xs-7,.flex>.col-6,.flex>.col-xs-6,.flex>.col-5,.flex>.col-xs-5,.flex>.col-4,.flex>.col-xs-4,.flex>.col-3,.flex>.col-xs-3,.flex>.col-2,.flex>.col-xs-2,.flex>.col-1,.flex>.col-xs-1,.flex>.col-0,.flex>.col-xs-0,.row>.col-xs-grow,.flex>.col-xs-grow,.row>.col-xs-shrink,.flex>.col-xs-shrink{width:auto;min-width:0;max-width:100%}.column>.col,.flex>.col,.column>.col-auto,.flex>.col-auto,.column>.col-grow,.flex>.col-grow,.column>.col-shrink,.flex>.col-shrink,.column>.col-xs,.flex>.col-xs,.column>.col-xs-auto,.column>.col-12,.column>.col-xs-12,.column>.col-11,.column>.col-xs-11,.column>.col-10,.column>.col-xs-10,.column>.col-9,.column>.col-xs-9,.column>.col-8,.column>.col-xs-8,.column>.col-7,.column>.col-xs-7,.column>.col-6,.column>.col-xs-6,.column>.col-5,.column>.col-xs-5,.column>.col-4,.column>.col-xs-4,.column>.col-3,.column>.col-xs-3,.column>.col-2,.column>.col-xs-2,.column>.col-1,.column>.col-xs-1,.column>.col-0,.column>.col-xs-0,.flex>.col-xs-auto,.flex>.col-12,.flex>.col-xs-12,.flex>.col-11,.flex>.col-xs-11,.flex>.col-10,.flex>.col-xs-10,.flex>.col-9,.flex>.col-xs-9,.flex>.col-8,.flex>.col-xs-8,.flex>.col-7,.flex>.col-xs-7,.flex>.col-6,.flex>.col-xs-6,.flex>.col-5,.flex>.col-xs-5,.flex>.col-4,.flex>.col-xs-4,.flex>.col-3,.flex>.col-xs-3,.flex>.col-2,.flex>.col-xs-2,.flex>.col-1,.flex>.col-xs-1,.flex>.col-0,.flex>.col-xs-0,.column>.col-xs-grow,.flex>.col-xs-grow,.column>.col-xs-shrink,.flex>.col-xs-shrink{height:auto;min-height:0;max-height:100%}.col,.col-xs{flex:10000 1 0%}.col-auto,.col-xs-auto,.col-12,.col-xs-12,.col-11,.col-xs-11,.col-10,.col-xs-10,.col-9,.col-xs-9,.col-8,.col-xs-8,.col-7,.col-xs-7,.col-6,.col-xs-6,.col-5,.col-xs-5,.col-4,.col-xs-4,.col-3,.col-xs-3,.col-2,.col-xs-2,.col-1,.col-xs-1,.col-0,.col-xs-0{flex:0 0 auto}.col-grow,.col-xs-grow{flex:1 0 auto}.col-shrink,.col-xs-shrink{flex:0 1 auto}.row>.col-0,.row>.col-xs-0{height:auto;width:0%}.row>.offset-0,.row>.offset-xs-0{margin-left:0%}.column>.col-0,.column>.col-xs-0{height:0%;width:auto}.row>.col-1,.row>.col-xs-1{height:auto;width:8.3333%}.row>.offset-1,.row>.offset-xs-1{margin-left:8.3333%}.column>.col-1,.column>.col-xs-1{height:8.3333%;width:auto}.row>.col-2,.row>.col-xs-2{height:auto;width:16.6667%}.row>.offset-2,.row>.offset-xs-2{margin-left:16.6667%}.column>.col-2,.column>.col-xs-2{height:16.6667%;width:auto}.row>.col-3,.row>.col-xs-3{height:auto;width:25%}.row>.offset-3,.row>.offset-xs-3{margin-left:25%}.column>.col-3,.column>.col-xs-3{height:25%;width:auto}.row>.col-4,.row>.col-xs-4{height:auto;width:33.3333%}.row>.offset-4,.row>.offset-xs-4{margin-left:33.3333%}.column>.col-4,.column>.col-xs-4{height:33.3333%;width:auto}.row>.col-5,.row>.col-xs-5{height:auto;width:41.6667%}.row>.offset-5,.row>.offset-xs-5{margin-left:41.6667%}.column>.col-5,.column>.col-xs-5{height:41.6667%;width:auto}.row>.col-6,.row>.col-xs-6{height:auto;width:50%}.row>.offset-6,.row>.offset-xs-6{margin-left:50%}.column>.col-6,.column>.col-xs-6{height:50%;width:auto}.row>.col-7,.row>.col-xs-7{height:auto;width:58.3333%}.row>.offset-7,.row>.offset-xs-7{margin-left:58.3333%}.column>.col-7,.column>.col-xs-7{height:58.3333%;width:auto}.row>.col-8,.row>.col-xs-8{height:auto;width:66.6667%}.row>.offset-8,.row>.offset-xs-8{margin-left:66.6667%}.column>.col-8,.column>.col-xs-8{height:66.6667%;width:auto}.row>.col-9,.row>.col-xs-9{height:auto;width:75%}.row>.offset-9,.row>.offset-xs-9{margin-left:75%}.column>.col-9,.column>.col-xs-9{height:75%;width:auto}.row>.col-10,.row>.col-xs-10{height:auto;width:83.3333%}.row>.offset-10,.row>.offset-xs-10{margin-left:83.3333%}.column>.col-10,.column>.col-xs-10{height:83.3333%;width:auto}.row>.col-11,.row>.col-xs-11{height:auto;width:91.6667%}.row>.offset-11,.row>.offset-xs-11{margin-left:91.6667%}.column>.col-11,.column>.col-xs-11{height:91.6667%;width:auto}.row>.col-12,.row>.col-xs-12{height:auto;width:100%}.row>.offset-12,.row>.offset-xs-12{margin-left:100%}.column>.col-12,.column>.col-xs-12{height:100%;width:auto}.row>.col-all{height:auto;flex:0 0 100%}}@media(min-width:600px){.row>.col-sm,.flex>.col-sm,.row>.col-sm-auto,.row>.col-sm-12,.row>.col-sm-11,.row>.col-sm-10,.row>.col-sm-9,.row>.col-sm-8,.row>.col-sm-7,.row>.col-sm-6,.row>.col-sm-5,.row>.col-sm-4,.row>.col-sm-3,.row>.col-sm-2,.row>.col-sm-1,.row>.col-sm-0,.flex>.col-sm-auto,.flex>.col-sm-12,.flex>.col-sm-11,.flex>.col-sm-10,.flex>.col-sm-9,.flex>.col-sm-8,.flex>.col-sm-7,.flex>.col-sm-6,.flex>.col-sm-5,.flex>.col-sm-4,.flex>.col-sm-3,.flex>.col-sm-2,.flex>.col-sm-1,.flex>.col-sm-0,.row>.col-sm-grow,.flex>.col-sm-grow,.row>.col-sm-shrink,.flex>.col-sm-shrink{width:auto;min-width:0;max-width:100%}.column>.col-sm,.flex>.col-sm,.column>.col-sm-auto,.column>.col-sm-12,.column>.col-sm-11,.column>.col-sm-10,.column>.col-sm-9,.column>.col-sm-8,.column>.col-sm-7,.column>.col-sm-6,.column>.col-sm-5,.column>.col-sm-4,.column>.col-sm-3,.column>.col-sm-2,.column>.col-sm-1,.column>.col-sm-0,.flex>.col-sm-auto,.flex>.col-sm-12,.flex>.col-sm-11,.flex>.col-sm-10,.flex>.col-sm-9,.flex>.col-sm-8,.flex>.col-sm-7,.flex>.col-sm-6,.flex>.col-sm-5,.flex>.col-sm-4,.flex>.col-sm-3,.flex>.col-sm-2,.flex>.col-sm-1,.flex>.col-sm-0,.column>.col-sm-grow,.flex>.col-sm-grow,.column>.col-sm-shrink,.flex>.col-sm-shrink{height:auto;min-height:0;max-height:100%}.col-sm{flex:10000 1 0%}.col-sm-auto,.col-sm-12,.col-sm-11,.col-sm-10,.col-sm-9,.col-sm-8,.col-sm-7,.col-sm-6,.col-sm-5,.col-sm-4,.col-sm-3,.col-sm-2,.col-sm-1,.col-sm-0{flex:0 0 auto}.col-sm-grow{flex:1 0 auto}.col-sm-shrink{flex:0 1 auto}.row>.col-sm-0{height:auto;width:0%}.row>.offset-sm-0{margin-left:0%}.column>.col-sm-0{height:0%;width:auto}.row>.col-sm-1{height:auto;width:8.3333%}.row>.offset-sm-1{margin-left:8.3333%}.column>.col-sm-1{height:8.3333%;width:auto}.row>.col-sm-2{height:auto;width:16.6667%}.row>.offset-sm-2{margin-left:16.6667%}.column>.col-sm-2{height:16.6667%;width:auto}.row>.col-sm-3{height:auto;width:25%}.row>.offset-sm-3{margin-left:25%}.column>.col-sm-3{height:25%;width:auto}.row>.col-sm-4{height:auto;width:33.3333%}.row>.offset-sm-4{margin-left:33.3333%}.column>.col-sm-4{height:33.3333%;width:auto}.row>.col-sm-5{height:auto;width:41.6667%}.row>.offset-sm-5{margin-left:41.6667%}.column>.col-sm-5{height:41.6667%;width:auto}.row>.col-sm-6{height:auto;width:50%}.row>.offset-sm-6{margin-left:50%}.column>.col-sm-6{height:50%;width:auto}.row>.col-sm-7{height:auto;width:58.3333%}.row>.offset-sm-7{margin-left:58.3333%}.column>.col-sm-7{height:58.3333%;width:auto}.row>.col-sm-8{height:auto;width:66.6667%}.row>.offset-sm-8{margin-left:66.6667%}.column>.col-sm-8{height:66.6667%;width:auto}.row>.col-sm-9{height:auto;width:75%}.row>.offset-sm-9{margin-left:75%}.column>.col-sm-9{height:75%;width:auto}.row>.col-sm-10{height:auto;width:83.3333%}.row>.offset-sm-10{margin-left:83.3333%}.column>.col-sm-10{height:83.3333%;width:auto}.row>.col-sm-11{height:auto;width:91.6667%}.row>.offset-sm-11{margin-left:91.6667%}.column>.col-sm-11{height:91.6667%;width:auto}.row>.col-sm-12{height:auto;width:100%}.row>.offset-sm-12{margin-left:100%}.column>.col-sm-12{height:100%;width:auto}}@media(min-width:1024px){.row>.col-md,.flex>.col-md,.row>.col-md-auto,.row>.col-md-12,.row>.col-md-11,.row>.col-md-10,.row>.col-md-9,.row>.col-md-8,.row>.col-md-7,.row>.col-md-6,.row>.col-md-5,.row>.col-md-4,.row>.col-md-3,.row>.col-md-2,.row>.col-md-1,.row>.col-md-0,.flex>.col-md-auto,.flex>.col-md-12,.flex>.col-md-11,.flex>.col-md-10,.flex>.col-md-9,.flex>.col-md-8,.flex>.col-md-7,.flex>.col-md-6,.flex>.col-md-5,.flex>.col-md-4,.flex>.col-md-3,.flex>.col-md-2,.flex>.col-md-1,.flex>.col-md-0,.row>.col-md-grow,.flex>.col-md-grow,.row>.col-md-shrink,.flex>.col-md-shrink{width:auto;min-width:0;max-width:100%}.column>.col-md,.flex>.col-md,.column>.col-md-auto,.column>.col-md-12,.column>.col-md-11,.column>.col-md-10,.column>.col-md-9,.column>.col-md-8,.column>.col-md-7,.column>.col-md-6,.column>.col-md-5,.column>.col-md-4,.column>.col-md-3,.column>.col-md-2,.column>.col-md-1,.column>.col-md-0,.flex>.col-md-auto,.flex>.col-md-12,.flex>.col-md-11,.flex>.col-md-10,.flex>.col-md-9,.flex>.col-md-8,.flex>.col-md-7,.flex>.col-md-6,.flex>.col-md-5,.flex>.col-md-4,.flex>.col-md-3,.flex>.col-md-2,.flex>.col-md-1,.flex>.col-md-0,.column>.col-md-grow,.flex>.col-md-grow,.column>.col-md-shrink,.flex>.col-md-shrink{height:auto;min-height:0;max-height:100%}.col-md{flex:10000 1 0%}.col-md-auto,.col-md-12,.col-md-11,.col-md-10,.col-md-9,.col-md-8,.col-md-7,.col-md-6,.col-md-5,.col-md-4,.col-md-3,.col-md-2,.col-md-1,.col-md-0{flex:0 0 auto}.col-md-grow{flex:1 0 auto}.col-md-shrink{flex:0 1 auto}.row>.col-md-0{height:auto;width:0%}.row>.offset-md-0{margin-left:0%}.column>.col-md-0{height:0%;width:auto}.row>.col-md-1{height:auto;width:8.3333%}.row>.offset-md-1{margin-left:8.3333%}.column>.col-md-1{height:8.3333%;width:auto}.row>.col-md-2{height:auto;width:16.6667%}.row>.offset-md-2{margin-left:16.6667%}.column>.col-md-2{height:16.6667%;width:auto}.row>.col-md-3{height:auto;width:25%}.row>.offset-md-3{margin-left:25%}.column>.col-md-3{height:25%;width:auto}.row>.col-md-4{height:auto;width:33.3333%}.row>.offset-md-4{margin-left:33.3333%}.column>.col-md-4{height:33.3333%;width:auto}.row>.col-md-5{height:auto;width:41.6667%}.row>.offset-md-5{margin-left:41.6667%}.column>.col-md-5{height:41.6667%;width:auto}.row>.col-md-6{height:auto;width:50%}.row>.offset-md-6{margin-left:50%}.column>.col-md-6{height:50%;width:auto}.row>.col-md-7{height:auto;width:58.3333%}.row>.offset-md-7{margin-left:58.3333%}.column>.col-md-7{height:58.3333%;width:auto}.row>.col-md-8{height:auto;width:66.6667%}.row>.offset-md-8{margin-left:66.6667%}.column>.col-md-8{height:66.6667%;width:auto}.row>.col-md-9{height:auto;width:75%}.row>.offset-md-9{margin-left:75%}.column>.col-md-9{height:75%;width:auto}.row>.col-md-10{height:auto;width:83.3333%}.row>.offset-md-10{margin-left:83.3333%}.column>.col-md-10{height:83.3333%;width:auto}.row>.col-md-11{height:auto;width:91.6667%}.row>.offset-md-11{margin-left:91.6667%}.column>.col-md-11{height:91.6667%;width:auto}.row>.col-md-12{height:auto;width:100%}.row>.offset-md-12{margin-left:100%}.column>.col-md-12{height:100%;width:auto}}@media(min-width:1440px){.row>.col-lg,.flex>.col-lg,.row>.col-lg-auto,.row>.col-lg-12,.row>.col-lg-11,.row>.col-lg-10,.row>.col-lg-9,.row>.col-lg-8,.row>.col-lg-7,.row>.col-lg-6,.row>.col-lg-5,.row>.col-lg-4,.row>.col-lg-3,.row>.col-lg-2,.row>.col-lg-1,.row>.col-lg-0,.flex>.col-lg-auto,.flex>.col-lg-12,.flex>.col-lg-11,.flex>.col-lg-10,.flex>.col-lg-9,.flex>.col-lg-8,.flex>.col-lg-7,.flex>.col-lg-6,.flex>.col-lg-5,.flex>.col-lg-4,.flex>.col-lg-3,.flex>.col-lg-2,.flex>.col-lg-1,.flex>.col-lg-0,.row>.col-lg-grow,.flex>.col-lg-grow,.row>.col-lg-shrink,.flex>.col-lg-shrink{width:auto;min-width:0;max-width:100%}.column>.col-lg,.flex>.col-lg,.column>.col-lg-auto,.column>.col-lg-12,.column>.col-lg-11,.column>.col-lg-10,.column>.col-lg-9,.column>.col-lg-8,.column>.col-lg-7,.column>.col-lg-6,.column>.col-lg-5,.column>.col-lg-4,.column>.col-lg-3,.column>.col-lg-2,.column>.col-lg-1,.column>.col-lg-0,.flex>.col-lg-auto,.flex>.col-lg-12,.flex>.col-lg-11,.flex>.col-lg-10,.flex>.col-lg-9,.flex>.col-lg-8,.flex>.col-lg-7,.flex>.col-lg-6,.flex>.col-lg-5,.flex>.col-lg-4,.flex>.col-lg-3,.flex>.col-lg-2,.flex>.col-lg-1,.flex>.col-lg-0,.column>.col-lg-grow,.flex>.col-lg-grow,.column>.col-lg-shrink,.flex>.col-lg-shrink{height:auto;min-height:0;max-height:100%}.col-lg{flex:10000 1 0%}.col-lg-auto,.col-lg-12,.col-lg-11,.col-lg-10,.col-lg-9,.col-lg-8,.col-lg-7,.col-lg-6,.col-lg-5,.col-lg-4,.col-lg-3,.col-lg-2,.col-lg-1,.col-lg-0{flex:0 0 auto}.col-lg-grow{flex:1 0 auto}.col-lg-shrink{flex:0 1 auto}.row>.col-lg-0{height:auto;width:0%}.row>.offset-lg-0{margin-left:0%}.column>.col-lg-0{height:0%;width:auto}.row>.col-lg-1{height:auto;width:8.3333%}.row>.offset-lg-1{margin-left:8.3333%}.column>.col-lg-1{height:8.3333%;width:auto}.row>.col-lg-2{height:auto;width:16.6667%}.row>.offset-lg-2{margin-left:16.6667%}.column>.col-lg-2{height:16.6667%;width:auto}.row>.col-lg-3{height:auto;width:25%}.row>.offset-lg-3{margin-left:25%}.column>.col-lg-3{height:25%;width:auto}.row>.col-lg-4{height:auto;width:33.3333%}.row>.offset-lg-4{margin-left:33.3333%}.column>.col-lg-4{height:33.3333%;width:auto}.row>.col-lg-5{height:auto;width:41.6667%}.row>.offset-lg-5{margin-left:41.6667%}.column>.col-lg-5{height:41.6667%;width:auto}.row>.col-lg-6{height:auto;width:50%}.row>.offset-lg-6{margin-left:50%}.column>.col-lg-6{height:50%;width:auto}.row>.col-lg-7{height:auto;width:58.3333%}.row>.offset-lg-7{margin-left:58.3333%}.column>.col-lg-7{height:58.3333%;width:auto}.row>.col-lg-8{height:auto;width:66.6667%}.row>.offset-lg-8{margin-left:66.6667%}.column>.col-lg-8{height:66.6667%;width:auto}.row>.col-lg-9{height:auto;width:75%}.row>.offset-lg-9{margin-left:75%}.column>.col-lg-9{height:75%;width:auto}.row>.col-lg-10{height:auto;width:83.3333%}.row>.offset-lg-10{margin-left:83.3333%}.column>.col-lg-10{height:83.3333%;width:auto}.row>.col-lg-11{height:auto;width:91.6667%}.row>.offset-lg-11{margin-left:91.6667%}.column>.col-lg-11{height:91.6667%;width:auto}.row>.col-lg-12{height:auto;width:100%}.row>.offset-lg-12{margin-left:100%}.column>.col-lg-12{height:100%;width:auto}}@media(min-width:1920px){.row>.col-xl,.flex>.col-xl,.row>.col-xl-auto,.row>.col-xl-12,.row>.col-xl-11,.row>.col-xl-10,.row>.col-xl-9,.row>.col-xl-8,.row>.col-xl-7,.row>.col-xl-6,.row>.col-xl-5,.row>.col-xl-4,.row>.col-xl-3,.row>.col-xl-2,.row>.col-xl-1,.row>.col-xl-0,.flex>.col-xl-auto,.flex>.col-xl-12,.flex>.col-xl-11,.flex>.col-xl-10,.flex>.col-xl-9,.flex>.col-xl-8,.flex>.col-xl-7,.flex>.col-xl-6,.flex>.col-xl-5,.flex>.col-xl-4,.flex>.col-xl-3,.flex>.col-xl-2,.flex>.col-xl-1,.flex>.col-xl-0,.row>.col-xl-grow,.flex>.col-xl-grow,.row>.col-xl-shrink,.flex>.col-xl-shrink{width:auto;min-width:0;max-width:100%}.column>.col-xl,.flex>.col-xl,.column>.col-xl-auto,.column>.col-xl-12,.column>.col-xl-11,.column>.col-xl-10,.column>.col-xl-9,.column>.col-xl-8,.column>.col-xl-7,.column>.col-xl-6,.column>.col-xl-5,.column>.col-xl-4,.column>.col-xl-3,.column>.col-xl-2,.column>.col-xl-1,.column>.col-xl-0,.flex>.col-xl-auto,.flex>.col-xl-12,.flex>.col-xl-11,.flex>.col-xl-10,.flex>.col-xl-9,.flex>.col-xl-8,.flex>.col-xl-7,.flex>.col-xl-6,.flex>.col-xl-5,.flex>.col-xl-4,.flex>.col-xl-3,.flex>.col-xl-2,.flex>.col-xl-1,.flex>.col-xl-0,.column>.col-xl-grow,.flex>.col-xl-grow,.column>.col-xl-shrink,.flex>.col-xl-shrink{height:auto;min-height:0;max-height:100%}.col-xl{flex:10000 1 0%}.col-xl-auto,.col-xl-12,.col-xl-11,.col-xl-10,.col-xl-9,.col-xl-8,.col-xl-7,.col-xl-6,.col-xl-5,.col-xl-4,.col-xl-3,.col-xl-2,.col-xl-1,.col-xl-0{flex:0 0 auto}.col-xl-grow{flex:1 0 auto}.col-xl-shrink{flex:0 1 auto}.row>.col-xl-0{height:auto;width:0%}.row>.offset-xl-0{margin-left:0%}.column>.col-xl-0{height:0%;width:auto}.row>.col-xl-1{height:auto;width:8.3333%}.row>.offset-xl-1{margin-left:8.3333%}.column>.col-xl-1{height:8.3333%;width:auto}.row>.col-xl-2{height:auto;width:16.6667%}.row>.offset-xl-2{margin-left:16.6667%}.column>.col-xl-2{height:16.6667%;width:auto}.row>.col-xl-3{height:auto;width:25%}.row>.offset-xl-3{margin-left:25%}.column>.col-xl-3{height:25%;width:auto}.row>.col-xl-4{height:auto;width:33.3333%}.row>.offset-xl-4{margin-left:33.3333%}.column>.col-xl-4{height:33.3333%;width:auto}.row>.col-xl-5{height:auto;width:41.6667%}.row>.offset-xl-5{margin-left:41.6667%}.column>.col-xl-5{height:41.6667%;width:auto}.row>.col-xl-6{height:auto;width:50%}.row>.offset-xl-6{margin-left:50%}.column>.col-xl-6{height:50%;width:auto}.row>.col-xl-7{height:auto;width:58.3333%}.row>.offset-xl-7{margin-left:58.3333%}.column>.col-xl-7{height:58.3333%;width:auto}.row>.col-xl-8{height:auto;width:66.6667%}.row>.offset-xl-8{margin-left:66.6667%}.column>.col-xl-8{height:66.6667%;width:auto}.row>.col-xl-9{height:auto;width:75%}.row>.offset-xl-9{margin-left:75%}.column>.col-xl-9{height:75%;width:auto}.row>.col-xl-10{height:auto;width:83.3333%}.row>.offset-xl-10{margin-left:83.3333%}.column>.col-xl-10{height:83.3333%;width:auto}.row>.col-xl-11{height:auto;width:91.6667%}.row>.offset-xl-11{margin-left:91.6667%}.column>.col-xl-11{height:91.6667%;width:auto}.row>.col-xl-12{height:auto;width:100%}.row>.offset-xl-12{margin-left:100%}.column>.col-xl-12{height:100%;width:auto}}.rounded-borders{border-radius:4px}.border-radius-inherit{border-radius:inherit}.no-transition{transition:none!important}.transition-0{transition:0s!important}.glossy{background-image:linear-gradient(to bottom,#ffffff4d,#fff0 50%,#0000001f 51%,#0000000a)!important}.q-placeholder::placeholder{color:inherit;opacity:.7}.q-body--fullscreen-mixin,.q-body--prevent-scroll{position:fixed!important}.q-body--force-scrollbar-x{overflow-x:scroll}.q-body--force-scrollbar-y{overflow-y:scroll}.q-no-input-spinner{-moz-appearance:textfield!important}.q-no-input-spinner::-webkit-outer-spin-button,.q-no-input-spinner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.q-link{outline:0;text-decoration:none}.q-link--focusable:focus-visible{-webkit-text-decoration:underline dashed currentColor 1px;text-decoration:underline dashed currentColor 1px}body.electron .q-electron-drag{-webkit-user-select:none;-webkit-app-region:drag}body.electron .q-electron-drag .q-btn-item,body.electron .q-electron-drag--exception{-webkit-app-region:no-drag}img.responsive{max-width:100%;height:auto}.non-selectable{-webkit-user-select:none!important;user-select:none!important}.scroll,body.mobile .scroll--mobile{overflow:auto}.scroll,.scroll-x,.scroll-y{-webkit-overflow-scrolling:touch;will-change:scroll-position}.scroll-x{overflow-x:auto}.scroll-y{overflow-y:auto}.no-scroll{overflow:hidden!important}.no-pointer-events,.no-pointer-events--children,.no-pointer-events--children *{pointer-events:none!important}.all-pointer-events{pointer-events:all!important}.cursor-pointer{cursor:pointer!important}.cursor-not-allowed{cursor:not-allowed!important}.cursor-inherit{cursor:inherit!important}.cursor-none{cursor:none!important}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled=true]{cursor:default}.rotate-45{transform:rotate(45deg)}.rotate-90{transform:rotate(90deg)}.rotate-135{transform:rotate(135deg)}.rotate-180{transform:rotate(180deg)}.rotate-225{transform:rotate(225deg)}.rotate-270{transform:rotate(270deg)}.rotate-315{transform:rotate(315deg)}.flip-horizontal{transform:scaleX(-1)}.flip-vertical{transform:scaleY(-1)}.float-left{float:left}.float-right{float:right}.relative-position{position:relative}.fixed,.fixed-full,.fullscreen,.fixed-center,.fixed-bottom,.fixed-left,.fixed-right,.fixed-top,.fixed-top-left,.fixed-top-right,.fixed-bottom-left,.fixed-bottom-right{position:fixed}.absolute,.absolute-full,.absolute-center,.absolute-bottom,.absolute-left,.absolute-right,.absolute-top,.absolute-top-left,.absolute-top-right,.absolute-bottom-left,.absolute-bottom-right{position:absolute}.fixed-top,.absolute-top{top:0;left:0;right:0}.fixed-right,.absolute-right{top:0;right:0;bottom:0}.fixed-bottom,.absolute-bottom{right:0;bottom:0;left:0}.fixed-left,.absolute-left{top:0;bottom:0;left:0}.fixed-top-left,.absolute-top-left{top:0;left:0}.fixed-top-right,.absolute-top-right{top:0;right:0}.fixed-bottom-left,.absolute-bottom-left{bottom:0;left:0}.fixed-bottom-right,.absolute-bottom-right{bottom:0;right:0}.fullscreen{z-index:6000;border-radius:0!important;max-width:100vw;max-height:100vh}body.q-ios-padding .fullscreen{padding-top:20px!important;padding-top:env(safe-area-inset-top)!important;padding-bottom:env(safe-area-inset-bottom)!important}.absolute-full,.fullscreen,.fixed-full{top:0;right:0;bottom:0;left:0}.fixed-center,.absolute-center{top:50%;left:50%;transform:translate(-50%,-50%)}.vertical-top{vertical-align:top!important}.vertical-middle{vertical-align:middle!important}.vertical-bottom{vertical-align:bottom!important}.on-left{margin-right:12px}.on-right{margin-left:12px}.q-position-engine{margin-top:var(--q-pe-top, 0)!important;margin-left:var(--q-pe-left, 0)!important;will-change:auto;visibility:collapse}:root{--q-size-xs: 0;--q-size-sm: 600px;--q-size-md: 1024px;--q-size-lg: 1440px;--q-size-xl: 1920px}.fit{width:100%!important;height:100%!important}.full-height{height:100%!important}.full-width{width:100%!important;margin-left:0!important;margin-right:0!important}.window-height{margin-top:0!important;margin-bottom:0!important;height:100vh!important}.window-width{margin-left:0!important;margin-right:0!important;width:100vw!important}.block{display:block!important}.inline-block{display:inline-block!important}.q-pa-none{padding:0}.q-pl-none{padding-left:0}.q-pr-none{padding-right:0}.q-pt-none{padding-top:0}.q-pb-none{padding-bottom:0}.q-px-none{padding-left:0;padding-right:0}.q-py-none{padding-top:0;padding-bottom:0}.q-ma-none{margin:0}.q-ml-none{margin-left:0}.q-mr-none{margin-right:0}.q-mt-none{margin-top:0}.q-mb-none{margin-bottom:0}.q-mx-none{margin-left:0;margin-right:0}.q-my-none{margin-top:0;margin-bottom:0}.q-pa-xs{padding:4px}.q-pl-xs{padding-left:4px}.q-pr-xs{padding-right:4px}.q-pt-xs{padding-top:4px}.q-pb-xs{padding-bottom:4px}.q-px-xs{padding-left:4px;padding-right:4px}.q-py-xs{padding-top:4px;padding-bottom:4px}.q-ma-xs{margin:4px}.q-ml-xs{margin-left:4px}.q-mr-xs{margin-right:4px}.q-mt-xs{margin-top:4px}.q-mb-xs{margin-bottom:4px}.q-mx-xs{margin-left:4px;margin-right:4px}.q-my-xs{margin-top:4px;margin-bottom:4px}.q-pa-sm{padding:8px}.q-pl-sm{padding-left:8px}.q-pr-sm{padding-right:8px}.q-pt-sm{padding-top:8px}.q-pb-sm{padding-bottom:8px}.q-px-sm{padding-left:8px;padding-right:8px}.q-py-sm{padding-top:8px;padding-bottom:8px}.q-ma-sm{margin:8px}.q-ml-sm{margin-left:8px}.q-mr-sm{margin-right:8px}.q-mt-sm{margin-top:8px}.q-mb-sm{margin-bottom:8px}.q-mx-sm{margin-left:8px;margin-right:8px}.q-my-sm{margin-top:8px;margin-bottom:8px}.q-pa-md{padding:16px}.q-pl-md{padding-left:16px}.q-pr-md{padding-right:16px}.q-pt-md{padding-top:16px}.q-pb-md{padding-bottom:16px}.q-px-md{padding-left:16px;padding-right:16px}.q-py-md{padding-top:16px;padding-bottom:16px}.q-ma-md{margin:16px}.q-ml-md{margin-left:16px}.q-mr-md{margin-right:16px}.q-mt-md{margin-top:16px}.q-mb-md{margin-bottom:16px}.q-mx-md{margin-left:16px;margin-right:16px}.q-my-md{margin-top:16px;margin-bottom:16px}.q-pa-lg{padding:24px}.q-pl-lg{padding-left:24px}.q-pr-lg{padding-right:24px}.q-pt-lg{padding-top:24px}.q-pb-lg{padding-bottom:24px}.q-px-lg{padding-left:24px;padding-right:24px}.q-py-lg{padding-top:24px;padding-bottom:24px}.q-ma-lg{margin:24px}.q-ml-lg{margin-left:24px}.q-mr-lg{margin-right:24px}.q-mt-lg{margin-top:24px}.q-mb-lg{margin-bottom:24px}.q-mx-lg{margin-left:24px;margin-right:24px}.q-my-lg{margin-top:24px;margin-bottom:24px}.q-pa-xl{padding:48px}.q-pl-xl{padding-left:48px}.q-pr-xl{padding-right:48px}.q-pt-xl{padding-top:48px}.q-pb-xl{padding-bottom:48px}.q-px-xl{padding-left:48px;padding-right:48px}.q-py-xl{padding-top:48px;padding-bottom:48px}.q-ma-xl{margin:48px}.q-ml-xl{margin-left:48px}.q-mr-xl{margin-right:48px}.q-mt-xl{margin-top:48px}.q-mb-xl{margin-bottom:48px}.q-mx-xl{margin-left:48px;margin-right:48px}.q-my-xl{margin-top:48px;margin-bottom:48px}.q-mt-auto,.q-my-auto{margin-top:auto}.q-ml-auto{margin-left:auto}.q-mb-auto,.q-my-auto{margin-bottom:auto}.q-mr-auto{margin-right:auto}.q-mx-auto{margin-left:auto;margin-right:auto}.q-touch{-webkit-user-select:none;user-select:none;user-drag:none;-khtml-user-drag:none;-webkit-user-drag:none}.q-touch-x{touch-action:pan-x}.q-touch-y{touch-action:pan-y}:root{--q-transition-duration: .3s}.q-transition--slide-right-enter-active,.q-transition--slide-right-leave-active,.q-transition--slide-left-enter-active,.q-transition--slide-left-leave-active,.q-transition--slide-up-enter-active,.q-transition--slide-up-leave-active,.q-transition--slide-down-enter-active,.q-transition--slide-down-leave-active,.q-transition--jump-right-enter-active,.q-transition--jump-right-leave-active,.q-transition--jump-left-enter-active,.q-transition--jump-left-leave-active,.q-transition--jump-up-enter-active,.q-transition--jump-up-leave-active,.q-transition--jump-down-enter-active,.q-transition--jump-down-leave-active,.q-transition--fade-enter-active,.q-transition--fade-leave-active,.q-transition--scale-enter-active,.q-transition--scale-leave-active,.q-transition--rotate-enter-active,.q-transition--rotate-leave-active,.q-transition--flip-enter-active,.q-transition--flip-leave-active{--q-transition-duration: .3s;--q-transition-easing: cubic-bezier(.215,.61,.355,1)}.q-transition--slide-right-leave-active,.q-transition--slide-left-leave-active,.q-transition--slide-up-leave-active,.q-transition--slide-down-leave-active,.q-transition--jump-right-leave-active,.q-transition--jump-left-leave-active,.q-transition--jump-up-leave-active,.q-transition--jump-down-leave-active,.q-transition--fade-leave-active,.q-transition--scale-leave-active,.q-transition--rotate-leave-active,.q-transition--flip-leave-active{position:absolute}.q-transition--slide-right-enter-active,.q-transition--slide-right-leave-active,.q-transition--slide-left-enter-active,.q-transition--slide-left-leave-active,.q-transition--slide-up-enter-active,.q-transition--slide-up-leave-active,.q-transition--slide-down-enter-active,.q-transition--slide-down-leave-active{transition:transform var(--q-transition-duration) var(--q-transition-easing)}.q-transition--slide-right-enter-from{transform:translate3d(-100%,0,0)}.q-transition--slide-right-leave-to,.q-transition--slide-left-enter-from{transform:translate3d(100%,0,0)}.q-transition--slide-left-leave-to{transform:translate3d(-100%,0,0)}.q-transition--slide-up-enter-from{transform:translate3d(0,100%,0)}.q-transition--slide-up-leave-to,.q-transition--slide-down-enter-from{transform:translate3d(0,-100%,0)}.q-transition--slide-down-leave-to{transform:translate3d(0,100%,0)}.q-transition--jump-right-enter-active,.q-transition--jump-right-leave-active,.q-transition--jump-left-enter-active,.q-transition--jump-left-leave-active,.q-transition--jump-up-enter-active,.q-transition--jump-up-leave-active,.q-transition--jump-down-enter-active,.q-transition--jump-down-leave-active{transition:opacity var(--q-transition-duration),transform var(--q-transition-duration)}.q-transition--jump-right-enter-from,.q-transition--jump-right-leave-to,.q-transition--jump-left-enter-from,.q-transition--jump-left-leave-to,.q-transition--jump-up-enter-from,.q-transition--jump-up-leave-to,.q-transition--jump-down-enter-from,.q-transition--jump-down-leave-to{opacity:0}.q-transition--jump-right-enter-from{transform:translate3d(-15px,0,0)}.q-transition--jump-right-leave-to,.q-transition--jump-left-enter-from{transform:translate3d(15px,0,0)}.q-transition--jump-left-leave-to{transform:translate(-15px)}.q-transition--jump-up-enter-from{transform:translate3d(0,15px,0)}.q-transition--jump-up-leave-to,.q-transition--jump-down-enter-from{transform:translate3d(0,-15px,0)}.q-transition--jump-down-leave-to{transform:translate3d(0,15px,0)}.q-transition--fade-enter-active,.q-transition--fade-leave-active{transition:opacity var(--q-transition-duration) ease-out}.q-transition--fade-enter-from,.q-transition--fade-leave-to{opacity:0}.q-transition--scale-enter-active,.q-transition--scale-leave-active{transition:opacity var(--q-transition-duration),transform var(--q-transition-duration) var(--q-transition-easing)}.q-transition--scale-enter-from,.q-transition--scale-leave-to{opacity:0;transform:scale3d(0,0,1)}.q-transition--rotate-enter-active,.q-transition--rotate-leave-active{transition:opacity var(--q-transition-duration),transform var(--q-transition-duration) var(--q-transition-easing);transform-style:preserve-3d}.q-transition--rotate-enter-from,.q-transition--rotate-leave-to{opacity:0;transform:scale3d(0,0,1) rotate3d(0,0,1,90deg)}.q-transition--flip-right-enter-active,.q-transition--flip-right-leave-active,.q-transition--flip-left-enter-active,.q-transition--flip-left-leave-active,.q-transition--flip-up-enter-active,.q-transition--flip-up-leave-active,.q-transition--flip-down-enter-active,.q-transition--flip-down-leave-active{transition:transform var(--q-transition-duration);backface-visibility:hidden}.q-transition--flip-right-enter-to,.q-transition--flip-right-leave-from,.q-transition--flip-left-enter-to,.q-transition--flip-left-leave-from,.q-transition--flip-up-enter-to,.q-transition--flip-up-leave-from,.q-transition--flip-down-enter-to,.q-transition--flip-down-leave-from{transform:perspective(400px) rotate3d(1,1,0,0)}.q-transition--flip-right-enter-from{transform:perspective(400px) rotateY(-180deg)}.q-transition--flip-right-leave-to,.q-transition--flip-left-enter-from{transform:perspective(400px) rotateY(180deg)}.q-transition--flip-left-leave-to{transform:perspective(400px) rotateY(-180deg)}.q-transition--flip-up-enter-from{transform:perspective(400px) rotateX(-180deg)}.q-transition--flip-up-leave-to,.q-transition--flip-down-enter-from{transform:perspective(400px) rotateX(180deg)}.q-transition--flip-down-leave-to{transform:perspective(400px) rotateX(-180deg)}body{min-width:100px;min-height:100%;font-family:Roboto,-apple-system,Helvetica Neue,Helvetica,Arial,sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-smoothing:antialiased;line-height:1.5;font-size:14px}h1{font-size:6rem;font-weight:300;line-height:6rem;letter-spacing:-.01562em}h2{font-size:3.75rem;font-weight:300;line-height:3.75rem;letter-spacing:-.00833em}h3{font-size:3rem;font-weight:400;line-height:3.125rem;letter-spacing:normal}h4{font-size:2.125rem;font-weight:400;line-height:2.5rem;letter-spacing:.00735em}h5{font-size:1.5rem;font-weight:400;line-height:2rem;letter-spacing:normal}h6{font-size:1.25rem;font-weight:500;line-height:2rem;letter-spacing:.0125em}p{margin:0 0 16px}.text-h1{font-size:6rem;font-weight:300;line-height:6rem;letter-spacing:-.01562em}.text-h2{font-size:3.75rem;font-weight:300;line-height:3.75rem;letter-spacing:-.00833em}.text-h3{font-size:3rem;font-weight:400;line-height:3.125rem;letter-spacing:normal}.text-h4{font-size:2.125rem;font-weight:400;line-height:2.5rem;letter-spacing:.00735em}.text-h5{font-size:1.5rem;font-weight:400;line-height:2rem;letter-spacing:normal}.text-h6{font-size:1.25rem;font-weight:500;line-height:2rem;letter-spacing:.0125em}.text-subtitle1{font-size:1rem;font-weight:400;line-height:1.75rem;letter-spacing:.00937em}.text-subtitle2{font-size:.875rem;font-weight:500;line-height:1.375rem;letter-spacing:.00714em}.text-body1{font-size:1rem;font-weight:400;line-height:1.5rem;letter-spacing:.03125em}.text-body2{font-size:.875rem;font-weight:400;line-height:1.25rem;letter-spacing:.01786em}.text-overline{font-size:.75rem;font-weight:500;line-height:2rem;letter-spacing:.16667em}.text-caption{font-size:.75rem;font-weight:400;line-height:1.25rem;letter-spacing:.03333em}.text-uppercase{text-transform:uppercase}.text-lowercase{text-transform:lowercase}.text-capitalize{text-transform:capitalize}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-justify{text-align:justify;-webkit-hyphens:auto;hyphens:auto}.text-italic{font-style:italic}.text-bold{font-weight:700}.text-no-wrap{white-space:nowrap}.text-strike{text-decoration:line-through}.text-weight-thin{font-weight:100}.text-weight-light{font-weight:300}.text-weight-regular{font-weight:400}.text-weight-medium{font-weight:500}.text-weight-bold{font-weight:700}.text-weight-bolder{font-weight:900}small{font-size:80%}big{font-size:170%}sub{bottom:-.25em}sup{top:-.5em}.no-margin{margin:0!important}.no-padding{padding:0!important}.no-border{border:0!important}.no-border-radius{border-radius:0!important}.no-box-shadow{box-shadow:none!important}.no-outline{outline:0!important}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ellipsis-2-lines,.ellipsis-3-lines{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.ellipsis-2-lines{-webkit-line-clamp:2}.ellipsis-3-lines{-webkit-line-clamp:3}.readonly{cursor:default!important}.disabled,.disabled *,[disabled],[disabled] *{outline:0!important;cursor:not-allowed!important}.disabled,[disabled]{opacity:.6!important}.hidden{display:none!important}.invisible,.invisible *{visibility:hidden!important;transition:none!important;animation:none!important}.transparent{background:transparent!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-hidden-y{overflow-y:hidden!important}.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbar::-webkit-scrollbar{width:0;height:0;display:none}.dimmed:after,.light-dimmed:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.dimmed:after{background:#0006!important}.light-dimmed:after{background:#fff9!important}.z-top{z-index:7000!important}.z-max{z-index:9998!important}body:not(.desktop) .desktop-only,body.desktop .desktop-hide{display:none!important}body:not(.mobile) .mobile-only,body.mobile .mobile-hide{display:none!important}body:not(.native-mobile) .native-mobile-only,body.native-mobile .native-mobile-hide{display:none!important}body:not(.cordova) .cordova-only,body.cordova .cordova-hide{display:none!important}body:not(.capacitor) .capacitor-only,body.capacitor .capacitor-hide{display:none!important}body:not(.electron) .electron-only,body.electron .electron-hide{display:none!important}body:not(.touch) .touch-only,body.touch .touch-hide{display:none!important}body:not(.within-iframe) .within-iframe-only,body.within-iframe .within-iframe-hide{display:none!important}body:not(.platform-ios) .platform-ios-only,body.platform-ios .platform-ios-hide{display:none!important}body:not(.platform-android) .platform-android-only,body.platform-android .platform-android-hide{display:none!important}@media all and (orientation:portrait){.orientation-landscape{display:none!important}}@media all and (orientation:landscape){.orientation-portrait{display:none!important}}@media screen{.print-only{display:none!important}}@media print{.print-hide{display:none!important}}@media(max-width:599.98px){.xs-hide,.gt-xs,.sm,.gt-sm,.md,.gt-md,.lg,.gt-lg,.xl{display:none!important}}@media(min-width:600px)and (max-width:1023.98px){.sm-hide,.xs,.lt-sm,.gt-sm,.md,.gt-md,.lg,.gt-lg,.xl{display:none!important}}@media(min-width:1024px)and (max-width:1439.98px){.md-hide,.xs,.lt-sm,.sm,.lt-md,.gt-md,.lg,.gt-lg,.xl{display:none!important}}@media(min-width:1440px)and (max-width:1919.98px){.lg-hide,.xs,.lt-sm,.sm,.lt-md,.md,.lt-lg,.gt-lg,.xl{display:none!important}}@media(min-width:1920px){.xl-hide,.xs,.lt-sm,.sm,.lt-md,.md,.lt-lg,.lg,.lt-xl{display:none!important}}.q-focus-helper,.q-focusable,.q-manual-focusable,.q-hoverable{outline:0}body.desktop .q-focus-helper{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;border-radius:inherit;opacity:0;transition:background-color .3s cubic-bezier(.25,.8,.5,1),opacity .4s cubic-bezier(.25,.8,.5,1)}body.desktop .q-focus-helper:before,body.desktop .q-focus-helper:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;border-radius:inherit;transition:background-color .3s cubic-bezier(.25,.8,.5,1),opacity .6s cubic-bezier(.25,.8,.5,1)}body.desktop .q-focus-helper:before{background:#000}body.desktop .q-focus-helper:after{background:#fff}body.desktop .q-focus-helper--rounded{border-radius:4px}body.desktop .q-focus-helper--round{border-radius:50%}body.desktop .q-focusable:focus>.q-focus-helper,body.desktop .q-manual-focusable--focused>.q-focus-helper,body.desktop .q-hoverable:hover>.q-focus-helper{background:currentColor;opacity:.15}body.desktop .q-focusable:focus>.q-focus-helper:before,body.desktop .q-manual-focusable--focused>.q-focus-helper:before,body.desktop .q-hoverable:hover>.q-focus-helper:before{opacity:.1}body.desktop .q-focusable:focus>.q-focus-helper:after,body.desktop .q-manual-focusable--focused>.q-focus-helper:after,body.desktop .q-hoverable:hover>.q-focus-helper:after{opacity:.4}body.desktop .q-focusable:focus>.q-focus-helper,body.desktop .q-manual-focusable--focused>.q-focus-helper{opacity:.22}body.body--dark{color:#fff;background:var(--q-dark-page)}.q-dark{color:#fff;background:var(--q-dark)} diff --git a/app/dist/spa/assets/taxstore-oR45_mFg.js b/app/dist/spa/assets/taxstore-oR45_mFg.js new file mode 100644 index 0000000..3639fa1 --- /dev/null +++ b/app/dist/spa/assets/taxstore-oR45_mFg.js @@ -0,0 +1 @@ +import{as as n}from"./index-0B2sgEyA.js";import{P as e}from"./LocalStorage-7Uw3xG9P.js";const s="taxstore:v1",i={prevPreparedByUs:!1,prevDeclaration:{comments:"",attachments:[]},firstName:"",lastName:"",birthDate:"",address:{street:"",cap:"",city:"",country:{code:"",name:""},canton:""}},r={alimentiVersati:!1,alimentiCommenti:{comments:"",attachments:[]},maritalStatus:"",spouseFirstName:"",spouseLastName:"",spouseBirthDate:"",spouseDeadDate:"",spouseTaxNumber:"",spouseAddress:{street:"",cap:"",city:"",country:{code:"",name:""},canton:""},marriageDate:"",separated:!1,spouseAlimentiVersati:!1},c=n("taxstore",{state:()=>{try{const t=e.getItem(s);if(t&&typeof t=="object"){const a=t;if(Array.isArray(a.items))return{items:a.items}}}catch{}return{items:[{key:"taxpayer",data:{...i}},{key:"marital",data:{...r}}]}},actions:{persist(){try{e.set(s,{items:this.items})}catch{}},_findTaxpayer(){return this.items.find(t=>t.key==="taxpayer")},_findMarital(){return this.items.find(t=>t.key==="marital")},getTaxpayer(){return this._findTaxpayer()?.data},setTaxpayer(t){const a=this._findTaxpayer();a&&(a.data={...a.data,...t}),this.persist()},replaceTaxpayer(t){const a=this._findTaxpayer();a&&(a.data=t),this.persist()},resetTaxpayer(){const t=this._findTaxpayer();t&&(t.data={...i}),this.persist()},getMarital(){return this._findMarital()?.data},setMarital(t){const a=this._findMarital();a&&(a.data={...a.data,...t}),this.persist()},replaceMarital(t){const a=this._findMarital();a&&(a.data=t),this.persist()},resetMarital(){const t=this._findMarital();t&&(t.data={...r}),this.persist()}}});export{c as u}; diff --git a/app/dist/spa/assets/userstore-DBCughIu.js b/app/dist/spa/assets/userstore-DBCughIu.js new file mode 100644 index 0000000..72468bb --- /dev/null +++ b/app/dist/spa/assets/userstore-DBCughIu.js @@ -0,0 +1 @@ +import{c as he,r as j,L as qt,M as At,o as Xt,g as ye,h as w,b as Je,au as Yt,G as te,f as se,av as Gt,W as Jt,aw as Zt,ax as Xe,P as el,s as tl,Q as ll,a as s,ay as nl,R as ul,az as al,S as il,aA as ol,w as de,e as He,y as ht,B as yt,t as rl,aB as sl,aC as Ze,aD as et,aE as tt,aF as lt,aG as cl,H as dl,I as fl,aH as vl,V as ml,aI as gl,aJ as De,aK as Sl,n as hl,J as yl,aL as bl,aM as zt,aN as Ot,aO as je,aP as wl,aQ as Oe,aR as pl,D as Le,aS as Cl,aT as xl,E as Se,al as Vl,ap as kl,N as Fl,z as ql,aU as Al,aV as zl,aW as Ol,j as _l,aX as Tl,as as Il}from"./index-0B2sgEyA.js";import{v as El,a as bt,u as Ml,p as wt,d as Pl,e as Bl,f as Rl,r as pt,s as Dl,c as Ct,n as xt,Q as Ll,h as Hl}from"./LocalStorage-7Uw3xG9P.js";import{b as jl,a as Nl}from"./QList-CHwmSUjA.js";const on=he({name:"QForm",props:{autofocus:Boolean,noErrorFocus:Boolean,noResetFocus:Boolean,greedy:Boolean,onSubmit:Function},emits:["reset","validationSuccess","validationError"],setup(e,{slots:a,emit:u}){const m=ye(),d=j(null);let n=0;const k=[];function v(f){const q=typeof f=="boolean"?f:e.noErrorFocus!==!0,C=++n,S=(x,V)=>{u(`validation${x===!0?"Success":"Error"}`,V)},N=x=>{const V=x.validate();return typeof V.then=="function"?V.then(M=>({valid:M,comp:x}),M=>({valid:!1,comp:x,err:M})):Promise.resolve({valid:V,comp:x})};return(e.greedy===!0?Promise.all(k.map(N)).then(x=>x.filter(V=>V.valid!==!0)):k.reduce((x,V)=>x.then(()=>N(V).then(M=>{if(M.valid===!1)return Promise.reject(M)})),Promise.resolve()).catch(x=>[x])).then(x=>{if(x===void 0||x.length===0)return C===n&&S(!0),!0;if(C===n){const{comp:V,err:M}=x[0];if(M!==void 0&&console.error(M),S(!1,V),q===!0){const y=x.find(({comp:P})=>typeof P.focus=="function"&&Yt(P.$)===!1);y!==void 0&&y.comp.focus()}}return!1})}function b(){n++,k.forEach(f=>{typeof f.resetValidation=="function"&&f.resetValidation()})}function I(f){f!==void 0&&te(f);const q=n+1;v().then(C=>{q===n&&C===!0&&(e.onSubmit!==void 0?u("submit",f):f?.target!==void 0&&typeof f.target.submit=="function"&&f.target.submit())})}function c(f){f!==void 0&&te(f),u("reset"),se(()=>{b(),e.autofocus===!0&&e.noResetFocus!==!0&&p()})}function p(){Gt(()=>{if(d.value===null)return;(d.value.querySelector("[autofocus][tabindex], [data-autofocus][tabindex]")||d.value.querySelector("[autofocus] [tabindex], [data-autofocus] [tabindex]")||d.value.querySelector("[autofocus], [data-autofocus]")||Array.prototype.find.call(d.value.querySelectorAll("[tabindex]"),q=>q.tabIndex!==-1))?.focus({preventScroll:!0})})}Jt(Zt,{bindComponent(f){k.push(f)},unbindComponent(f){const q=k.indexOf(f);q!==-1&&k.splice(q,1)}});let F=!1;return qt(()=>{F=!0}),At(()=>{F===!0&&e.autofocus===!0&&p()}),Xt(()=>{e.autofocus===!0&&p()}),Object.assign(m.proxy,{validate:v,resetValidation:b,submit:I,reset:c,focus:p,getValidationComponents:()=>k}),()=>w("form",{class:"q-form",ref:d,onSubmit:I,onReset:c},Je(a.default))}}),rn=he({name:"QTooltip",inheritAttrs:!1,props:{...Ml,...ll,...Xe,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null},transitionShow:{...Xe.transitionShow,default:"jump-down"},transitionHide:{...Xe.transitionHide,default:"jump-up"},anchor:{type:String,default:"bottom middle",validator:bt},self:{type:String,default:"top middle",validator:bt},offset:{type:Array,default:()=>[14,14],validator:El},scrollTarget:tl,delay:{type:Number,default:0},hideDelay:{type:Number,default:0},persistent:Boolean},emits:[...el],setup(e,{slots:a,emit:u,attrs:m}){let d,n;const k=ye(),{proxy:{$q:v}}=k,b=j(null),I=j(!1),c=s(()=>wt(e.anchor,v.lang.rtl)),p=s(()=>wt(e.self,v.lang.rtl)),F=s(()=>e.persistent!==!0),{registerTick:f,removeTick:q}=nl(),{registerTimeout:C}=ul(),{transitionProps:S,transitionStyle:N}=al(e),{localScrollTarget:g,changeScrollEvent:x,unconfigureScrollTarget:V}=Pl(e,ee),{anchorEl:M,canShow:y,anchorEvents:P}=Bl({showing:I,configureAnchorEl:Q}),{show:W,hide:E}=il({showing:I,canShow:y,handleShow:ie,handleHide:ne,hideOnRouteChange:F,processOnMount:!0});Object.assign(P,{delayShow:A,delayHide:$});const{showPortal:R,hidePortal:le,renderPortal:X}=ol(k,b,i,"tooltip");if(v.platform.is.mobile===!0){const h={anchorEl:M,innerRef:b,onClickOutside(D){return E(D),D.target.classList.contains("q-dialog__backdrop")&&te(D),!0}},B=s(()=>e.modelValue===null&&e.persistent!==!0&&I.value===!0);de(B,D=>{(D===!0?Rl:pt)(h)}),He(()=>{pt(h)})}function ie(h){R(),f(()=>{n=new MutationObserver(()=>Y()),n.observe(b.value,{attributes:!1,childList:!0,characterData:!0,subtree:!0}),Y(),ee()}),d===void 0&&(d=de(()=>v.screen.width+"|"+v.screen.height+"|"+e.self+"|"+e.anchor+"|"+v.lang.rtl,Y)),C(()=>{R(!0),u("show",h)},e.transitionDuration)}function ne(h){q(),le(),ue(),C(()=>{le(!0),u("hide",h)},e.transitionDuration)}function ue(){n!==void 0&&(n.disconnect(),n=void 0),d!==void 0&&(d(),d=void 0),V(),ht(P,"tooltipTemp")}function Y(){Dl({targetEl:b.value,offset:e.offset,anchorEl:M.value,anchorOrigin:c.value,selfOrigin:p.value,maxHeight:e.maxHeight,maxWidth:e.maxWidth})}function A(h){if(v.platform.is.mobile===!0){Ct(),document.body.classList.add("non-selectable");const B=M.value,D=["touchmove","touchcancel","touchend","click"].map(_=>[B,_,"delayHide","passiveCapture"]);yt(P,"tooltipTemp",D)}C(()=>{W(h)},e.delay)}function $(h){v.platform.is.mobile===!0&&(ht(P,"tooltipTemp"),Ct(),setTimeout(()=>{document.body.classList.remove("non-selectable")},10)),C(()=>{E(h)},e.hideDelay)}function Q(){if(e.noParentEvent===!0||M.value===null)return;const h=v.platform.is.mobile===!0?[[M.value,"touchstart","delayShow","passive"]]:[[M.value,"mouseenter","delayShow","passive"],[M.value,"mouseleave","delayHide","passive"]];yt(P,"anchor",h)}function ee(){if(M.value!==null||e.scrollTarget!==void 0){g.value=rl(M.value,e.scrollTarget);const h=e.noParentEvent===!0?Y:E;x(g.value,h)}}function l(){return I.value===!0?w("div",{...m,ref:b,class:["q-tooltip q-tooltip--style q-position-engine no-pointer-events",m.class],style:[m.style,N.value],role:"tooltip"},Je(a.default)):null}function i(){return w(sl,S.value,l)}return He(ue),Object.assign(k.proxy,{updatePosition:Y}),X}}),$l=he({name:"QField",inheritAttrs:!1,props:{...et,tag:{type:String,default:"label"}},emits:Ze,setup(){return tt(lt({tagProp:!0}))}}),Kl={xs:8,sm:10,md:14,lg:20,xl:24},_t=he({name:"QChip",props:{...dl,...cl,dense:Boolean,icon:String,iconRight:String,iconRemove:String,iconSelected:String,label:[String,Number],color:String,textColor:String,modelValue:{type:Boolean,default:!0},selected:{type:Boolean,default:null},square:Boolean,outline:Boolean,clickable:Boolean,removable:Boolean,removeAriaLabel:String,tabindex:[String,Number],disable:Boolean,ripple:{type:[Boolean,Object],default:!0}},emits:["update:modelValue","update:selected","remove","click"],setup(e,{slots:a,emit:u}){const{proxy:{$q:m}}=ye(),d=fl(e,m),n=vl(e,Kl),k=s(()=>e.selected===!0||e.icon!==void 0),v=s(()=>e.selected===!0?e.iconSelected||m.iconSet.chip.selected:e.icon),b=s(()=>e.iconRemove||m.iconSet.chip.remove),I=s(()=>e.disable===!1&&(e.clickable===!0||e.selected!==null)),c=s(()=>{const S=e.outline===!0&&e.color||e.textColor;return"q-chip row inline no-wrap items-center"+(e.outline===!1&&e.color!==void 0?` bg-${e.color}`:"")+(S?` text-${S} q-chip--colored`:"")+(e.disable===!0?" disabled":"")+(e.dense===!0?" q-chip--dense":"")+(e.outline===!0?" q-chip--outline":"")+(e.selected===!0?" q-chip--selected":"")+(I.value===!0?" q-chip--clickable cursor-pointer non-selectable q-hoverable":"")+(e.square===!0?" q-chip--square":"")+(d.value===!0?" q-chip--dark q-dark":"")}),p=s(()=>{const S=e.disable===!0?{tabindex:-1,"aria-disabled":"true"}:{tabindex:e.tabindex||0},N={...S,role:"button","aria-hidden":"false","aria-label":e.removeAriaLabel||m.lang.label.remove};return{chip:S,remove:N}});function F(S){S.keyCode===13&&f(S)}function f(S){e.disable||(u("update:selected",!e.selected),u("click",S))}function q(S){(S.keyCode===void 0||S.keyCode===13)&&(te(S),e.disable===!1&&(u("update:modelValue",!1),u("remove")))}function C(){const S=[];I.value===!0&&S.push(w("div",{class:"q-focus-helper"})),k.value===!0&&S.push(w(De,{class:"q-chip__icon q-chip__icon--left",name:v.value}));const N=e.label!==void 0?[w("div",{class:"ellipsis"},[e.label])]:void 0;return S.push(w("div",{class:"q-chip__content col row no-wrap items-center q-anchor--skip"},Sl(a.default,N))),e.iconRight&&S.push(w(De,{class:"q-chip__icon q-chip__icon--right",name:e.iconRight})),e.removable===!0&&S.push(w(De,{class:"q-chip__icon q-chip__icon--remove cursor-pointer",name:b.value,...p.value.remove,onClick:q,onKeyup:q})),S}return()=>{if(e.modelValue===!1)return;const S={class:c.value,style:n.value};return I.value===!0&&Object.assign(S,p.value.chip,{onClick:f,onKeyup:F}),ml("div",S,C(),"ripple",e.ripple!==!1&&e.disable!==!0,()=>[[gl,e.ripple]])}}}),Ql=he({name:"QItemLabel",props:{overline:Boolean,caption:Boolean,header:Boolean,lines:[Number,String]},setup(e,{slots:a}){const u=s(()=>parseInt(e.lines,10)),m=s(()=>"q-item__label"+(e.overline===!0?" q-item__label--overline text-overline":"")+(e.caption===!0?" q-item__label--caption text-caption":"")+(e.header===!0?" q-item__label--header":"")+(u.value===1?" ellipsis":"")),d=s(()=>e.lines!==void 0&&u.value>1?{overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical","-webkit-line-clamp":u.value}:null);return()=>w("div",{style:d.value,class:m.value},Je(a.default))}});let Ne=!1;{const e=document.createElement("div");e.setAttribute("dir","rtl"),Object.assign(e.style,{width:"1px",height:"1px",overflow:"auto"});const a=document.createElement("div");Object.assign(a.style,{width:"1000px",height:"1px"}),document.body.appendChild(e),e.appendChild(a),e.scrollLeft=-1e3,Ne=e.scrollLeft>=0,e.remove()}const ae=1e3,Ul=["start","center","end","start-force","center-force","end-force"],Tt=Array.prototype.filter,Wl=window.getComputedStyle(document.body).overflowAnchor===void 0?hl:function(e,a){e!==null&&(e._qOverflowAnimationFrame!==void 0&&cancelAnimationFrame(e._qOverflowAnimationFrame),e._qOverflowAnimationFrame=requestAnimationFrame(()=>{if(e===null)return;e._qOverflowAnimationFrame=void 0;const u=e.children||[];Tt.call(u,d=>d.dataset&&d.dataset.qVsAnchor!==void 0).forEach(d=>{delete d.dataset.qVsAnchor});const m=u[a];m?.dataset&&(m.dataset.qVsAnchor="")}))};function Fe(e,a){return e+a}function Ye(e,a,u,m,d,n,k,v){const b=e===window?document.scrollingElement||document.documentElement:e,I=d===!0?"offsetWidth":"offsetHeight",c={scrollStart:0,scrollViewSize:-k-v,scrollMaxSize:0,offsetStart:-k,offsetEnd:-v};if(d===!0?(e===window?(c.scrollStart=window.pageXOffset||window.scrollX||document.body.scrollLeft||0,c.scrollViewSize+=document.documentElement.clientWidth):(c.scrollStart=b.scrollLeft,c.scrollViewSize+=b.clientWidth),c.scrollMaxSize=b.scrollWidth,n===!0&&(c.scrollStart=(Ne===!0?c.scrollMaxSize-c.scrollViewSize:0)-c.scrollStart)):(e===window?(c.scrollStart=window.pageYOffset||window.scrollY||document.body.scrollTop||0,c.scrollViewSize+=document.documentElement.clientHeight):(c.scrollStart=b.scrollTop,c.scrollViewSize+=b.clientHeight),c.scrollMaxSize=b.scrollHeight),u!==null)for(let p=u.previousElementSibling;p!==null;p=p.previousElementSibling)p.classList.contains("q-virtual-scroll--skip")===!1&&(c.offsetStart+=p[I]);if(m!==null)for(let p=m.nextElementSibling;p!==null;p=p.nextElementSibling)p.classList.contains("q-virtual-scroll--skip")===!1&&(c.offsetEnd+=p[I]);if(a!==e){const p=b.getBoundingClientRect(),F=a.getBoundingClientRect();d===!0?(c.offsetStart+=F.left-p.left,c.offsetEnd-=F.width):(c.offsetStart+=F.top-p.top,c.offsetEnd-=F.height),e!==window&&(c.offsetStart+=c.scrollStart),c.offsetEnd+=c.scrollMaxSize-c.offsetStart}return c}function Vt(e,a,u,m){a==="end"&&(a=(e===window?document.body:e)[u===!0?"scrollWidth":"scrollHeight"]),e===window?u===!0?(m===!0&&(a=(Ne===!0?document.body.scrollWidth-document.documentElement.clientWidth:0)-a),window.scrollTo(a,window.pageYOffset||window.scrollY||document.body.scrollTop||0)):window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,a):u===!0?(m===!0&&(a=(Ne===!0?e.scrollWidth-e.offsetWidth:0)-a),e.scrollLeft=a):e.scrollTop=a}function _e(e,a,u,m){if(u>=m)return 0;const d=a.length,n=Math.floor(u/ae),k=Math.floor((m-1)/ae)+1;let v=e.slice(n,k).reduce(Fe,0);return u%ae!==0&&(v-=a.slice(n*ae,u).reduce(Fe,0)),m%ae!==0&&m!==d&&(v-=a.slice(m,k*ae).reduce(Fe,0)),v}const Xl={virtualScrollSliceSize:{type:[Number,String],default:10},virtualScrollSliceRatioBefore:{type:[Number,String],default:1},virtualScrollSliceRatioAfter:{type:[Number,String],default:1},virtualScrollItemSize:{type:[Number,String],default:24},virtualScrollStickySizeStart:{type:[Number,String],default:0},virtualScrollStickySizeEnd:{type:[Number,String],default:0},tableColspan:[Number,String]},kt={virtualScrollHorizontal:Boolean,onVirtualScroll:Function,...Xl};function Yl({virtualScrollLength:e,getVirtualScrollTarget:a,getVirtualScrollEl:u,virtualScrollItemSizeComputed:m}){const d=ye(),{props:n,emit:k,proxy:v}=d,{$q:b}=v;let I,c,p,F=[],f;const q=j(0),C=j(0),S=j({}),N=j(null),g=j(null),x=j(null),V=j({from:0,to:0}),M=s(()=>n.tableColspan!==void 0?n.tableColspan:100);m===void 0&&(m=s(()=>n.virtualScrollItemSize));const y=s(()=>m.value+";"+n.virtualScrollHorizontal),P=s(()=>y.value+";"+n.virtualScrollSliceRatioBefore+";"+n.virtualScrollSliceRatioAfter);de(P,()=>{Y()}),de(y,W);function W(){ue(c,!0)}function E(l){ue(l===void 0?c:l)}function R(l,i){const h=a();if(h==null||h.nodeType===8)return;const B=Ye(h,u(),N.value,g.value,n.virtualScrollHorizontal,b.lang.rtl,n.virtualScrollStickySizeStart,n.virtualScrollStickySizeEnd);p!==B.scrollViewSize&&Y(B.scrollViewSize),X(h,B,Math.min(e.value-1,Math.max(0,parseInt(l,10)||0)),0,Ul.indexOf(i)!==-1?i:c!==-1&&l>c?"end":"start")}function le(){const l=a();if(l==null||l.nodeType===8)return;const i=Ye(l,u(),N.value,g.value,n.virtualScrollHorizontal,b.lang.rtl,n.virtualScrollStickySizeStart,n.virtualScrollStickySizeEnd),h=e.value-1,B=i.scrollMaxSize-i.offsetStart-i.offsetEnd-C.value;if(I===i.scrollStart)return;if(i.scrollMaxSize<=0){X(l,i,0,0);return}p!==i.scrollViewSize&&Y(i.scrollViewSize),ie(V.value.from);const D=Math.floor(i.scrollMaxSize-Math.max(i.scrollViewSize,i.offsetEnd)-Math.min(f[h],i.scrollViewSize/2));if(D>0&&Math.ceil(i.scrollStart)>=D){X(l,i,h,i.scrollMaxSize-i.offsetEnd-F.reduce(Fe,0));return}let _=0,T=i.scrollStart-i.offsetStart,U=T;if(T<=B&&T+i.scrollViewSize>=q.value)T-=q.value,_=V.value.from,U=T;else for(let O=0;T>=F[O]&&_0&&_-i.scrollViewSize?(_++,U=T):U=f[_]+T;X(l,i,_,U)}function X(l,i,h,B,D){const _=typeof D=="string"&&D.indexOf("-force")!==-1,T=_===!0?D.replace("-force",""):D,U=T!==void 0?T:"start";let O=Math.max(0,h-S.value[U]),J=O+S.value.total;J>e.value&&(J=e.value,O=Math.max(0,J-S.value.total)),I=i.scrollStart;const ce=O!==V.value.from||J!==V.value.to;if(ce===!1&&T===void 0){$(h);return}const{activeElement:Te}=document,re=x.value;ce===!0&&re!==null&&re!==Te&&re.contains(Te)===!0&&(re.addEventListener("focusout",ne),setTimeout(()=>{re?.removeEventListener("focusout",ne)})),Wl(re,h-O);const Ie=T!==void 0?f.slice(O,h).reduce(Fe,0):0;if(ce===!0){const fe=J>=V.value.from&&O<=V.value.to?V.value.to:J;V.value={from:O,to:fe},q.value=_e(F,f,0,O),C.value=_e(F,f,J,e.value),requestAnimationFrame(()=>{V.value.to!==J&&I===i.scrollStart&&(V.value={from:V.value.from,to:J},C.value=_e(F,f,J,e.value))})}requestAnimationFrame(()=>{if(I!==i.scrollStart)return;ce===!0&&ie(O);const fe=f.slice(O,h).reduce(Fe,0),ve=fe+i.offsetStart+q.value,Ee=ve+f[h];let qe=ve+B;if(T!==void 0){const $e=fe-Ie,Ae=i.scrollStart+$e;qe=_!==!0&&AeO.classList&&O.classList.contains("q-virtual-scroll--skip")===!1),B=h.length,D=n.virtualScrollHorizontal===!0?O=>O.getBoundingClientRect().width:O=>O.offsetHeight;let _=l,T,U;for(let O=0;O=B;_--)f[_]=h;const D=Math.floor((e.value-1)/ae);F=[];for(let _=0;_<=D;_++){let T=0;const U=Math.min((_+1)*ae,e.value);for(let O=_*ae;O=0?(ie(V.value.from),se(()=>{R(l)})):Q()}function Y(l){if(l===void 0&&typeof window<"u"){const T=a();T!=null&&T.nodeType!==8&&(l=Ye(T,u(),N.value,g.value,n.virtualScrollHorizontal,b.lang.rtl,n.virtualScrollStickySizeStart,n.virtualScrollStickySizeEnd).scrollViewSize)}p=l;const i=parseFloat(n.virtualScrollSliceRatioBefore)||0,h=parseFloat(n.virtualScrollSliceRatioAfter)||0,B=1+i+h,D=l===void 0||l<=0?1:Math.ceil(l/m.value),_=Math.max(1,D,Math.ceil((n.virtualScrollSliceSize>0?n.virtualScrollSliceSize:10)/B));S.value={total:Math.ceil(_*B),start:Math.ceil(_*i),center:Math.ceil(_*(.5+i)),end:Math.ceil(_*(1+i)),view:D}}function A(l,i){const h=n.virtualScrollHorizontal===!0?"width":"height",B={["--q-virtual-scroll-item-"+h]:m.value+"px"};return[l==="tbody"?w(l,{class:"q-virtual-scroll__padding",key:"before",ref:N},[w("tr",[w("td",{style:{[h]:`${q.value}px`,...B},colspan:M.value})])]):w(l,{class:"q-virtual-scroll__padding",key:"before",ref:N,style:{[h]:`${q.value}px`,...B}}),w(l,{class:"q-virtual-scroll__content",key:"content",ref:x,tabindex:-1},i.flat()),l==="tbody"?w(l,{class:"q-virtual-scroll__padding",key:"after",ref:g},[w("tr",[w("td",{style:{[h]:`${C.value}px`,...B},colspan:M.value})])]):w(l,{class:"q-virtual-scroll__padding",key:"after",ref:g,style:{[h]:`${C.value}px`,...B}})]}function $(l){c!==l&&(n.onVirtualScroll!==void 0&&k("virtualScroll",{index:l,from:V.value.from,to:V.value.to-1,direction:l{Y()});let ee=!1;return qt(()=>{ee=!0}),At(()=>{if(ee!==!0)return;const l=a();I!==void 0&&l!==void 0&&l!==null&&l.nodeType!==8?Vt(l,I,n.virtualScrollHorizontal,b.lang.rtl):R(c)}),He(()=>{Q.cancel()}),Object.assign(v,{scrollTo:R,reset:W,refresh:E}),{virtualScrollSliceRange:V,virtualScrollSliceSizeComputed:S,setVirtualScrollSize:Y,onVirtualScrollEvt:Q,localResetVirtualScroll:ue,padVirtualScroll:A,scrollTo:R,reset:W,refresh:E}}const Ft=e=>["add","add-unique","toggle"].includes(e),Gl=".*+?^${}()|[]\\",Jl=Object.keys(et);function Ge(e,a){if(typeof e=="function")return e;const u=e!==void 0?e:a;return m=>m!==null&&typeof m=="object"&&u in m?m[u]:m}const sn=he({name:"QSelect",inheritAttrs:!1,props:{...kt,...zt,...et,modelValue:{required:!0},multiple:Boolean,displayValue:[String,Number],displayValueHtml:Boolean,dropdownIcon:String,options:{type:Array,default:()=>[]},optionValue:[Function,String],optionLabel:[Function,String],optionDisable:[Function,String],hideSelected:Boolean,hideDropdownIcon:Boolean,fillInput:Boolean,maxValues:[Number,String],optionsDense:Boolean,optionsDark:{type:Boolean,default:null},optionsSelectedClass:String,optionsHtml:Boolean,optionsCover:Boolean,menuShrink:Boolean,menuAnchor:String,menuSelf:String,menuOffset:Array,popupContentClass:String,popupContentStyle:[String,Array,Object],popupNoRouteDismiss:Boolean,useInput:Boolean,useChips:Boolean,newValueMode:{type:String,validator:Ft},mapOptions:Boolean,emitValue:Boolean,disableTabSelection:Boolean,inputDebounce:{type:[Number,String],default:500},inputClass:[Array,String,Object],inputStyle:[Array,String,Object],tabindex:{type:[String,Number],default:0},autocomplete:String,transitionShow:{},transitionHide:{},transitionDuration:{},behavior:{type:String,validator:e=>["default","menu","dialog"].includes(e),default:"default"},virtualScrollItemSize:kt.virtualScrollItemSize.type,onNewValue:Function,onFilter:Function},emits:[...Ze,"add","remove","inputValue","keyup","keypress","keydown","popupShow","popupHide","filterAbort"],setup(e,{slots:a,emit:u}){const{proxy:m}=ye(),{$q:d}=m,n=j(!1),k=j(!1),v=j(-1),b=j(""),I=j(!1),c=j(!1);let p=null,F=null,f,q,C,S=null,N,g,x,V;const M=j(null),y=j(null),P=j(null),W=j(null),E=j(null),R=Ot(e),le=wl(ft),X=s(()=>Array.isArray(e.options)?e.options.length:0),ie=s(()=>e.virtualScrollItemSize===void 0?e.optionsDense===!0?24:48:e.virtualScrollItemSize),{virtualScrollSliceRange:ne,virtualScrollSliceSizeComputed:ue,localResetVirtualScroll:Y,padVirtualScroll:A,onVirtualScrollEvt:$,scrollTo:Q,setVirtualScrollSize:ee}=Yl({virtualScrollLength:X,getVirtualScrollTarget:Pt,getVirtualScrollEl:ct,virtualScrollItemSizeComputed:ie}),l=lt(),i=s(()=>{const t=e.mapOptions===!0&&e.multiple!==!0,o=e.modelValue!==void 0&&(e.modelValue!==null||t===!0)?e.multiple===!0&&Array.isArray(e.modelValue)?e.modelValue:[e.modelValue]:[];if(e.mapOptions===!0&&Array.isArray(e.options)===!0){const r=e.mapOptions===!0&&f!==void 0?f:[],z=o.map(H=>Mt(H,r));return e.modelValue===null&&t===!0?z.filter(H=>H!==null):z}return o}),h=s(()=>{const t={};return Jl.forEach(o=>{const r=e[o];r!==void 0&&(t[o]=r)}),t}),B=s(()=>e.optionsDark===null?l.isDark.value:e.optionsDark),D=s(()=>je(i.value)),_=s(()=>{let t="q-field__input q-placeholder col";return e.hideSelected===!0||i.value.length===0?[t,e.inputClass]:(t+=" q-field__input--padding",e.inputClass===void 0?t:[t,e.inputClass])}),T=s(()=>(e.virtualScrollHorizontal===!0?"q-virtual-scroll--horizontal":"")+(e.popupContentClass?" "+e.popupContentClass:"")),U=s(()=>X.value===0),O=s(()=>i.value.map(t=>Z.value(t)).join(", ")),J=s(()=>e.displayValue!==void 0?e.displayValue:O.value),ce=s(()=>e.optionsHtml===!0?()=>!0:t=>t?.html===!0),Te=s(()=>e.displayValueHtml===!0||e.displayValue===void 0&&(e.optionsHtml===!0||i.value.some(ce.value))),re=s(()=>l.focused.value===!0?e.tabindex:-1),Ie=s(()=>{const t={tabindex:e.tabindex,role:"combobox","aria-label":e.label,"aria-readonly":e.readonly===!0?"true":"false","aria-autocomplete":e.useInput===!0?"list":"none","aria-expanded":n.value===!0?"true":"false","aria-controls":`${l.targetUid.value}_lb`};return v.value>=0&&(t["aria-activedescendant"]=`${l.targetUid.value}_${v.value}`),t}),fe=s(()=>({id:`${l.targetUid.value}_lb`,role:"listbox","aria-multiselectable":e.multiple===!0?"true":"false"})),ve=s(()=>i.value.map((t,o)=>({index:o,opt:t,html:ce.value(t),selected:!0,removeAtIndex:Et,toggleOption:me,tabindex:re.value}))),Ee=s(()=>{if(X.value===0)return[];const{from:t,to:o}=ne.value;return e.options.slice(t,o).map((r,z)=>{const H=be.value(r)===!0,L=Qe(r)===!0,G=t+z,K={clickable:!0,active:L,activeClass:Ae.value,manualFocus:!0,focused:!1,disable:H,tabindex:-1,dense:e.optionsDense,dark:B.value,role:"option","aria-selected":L===!0?"true":"false",id:`${l.targetUid.value}_${G}`,onClick:()=>{me(r)}};return H!==!0&&(v.value===G&&(K.focused=!0),d.platform.is.desktop===!0&&(K.onMousemove=()=>{n.value===!0&&we(G)})),{index:G,opt:r,html:ce.value(r),label:Z.value(r),selected:K.active,focused:K.focused,toggleOption:me,setOptionIndex:we,itemProps:K}})}),qe=s(()=>e.dropdownIcon!==void 0?e.dropdownIcon:d.iconSet.arrow.dropdown),$e=s(()=>e.optionsCover===!1&&e.outlined!==!0&&e.standout!==!0&&e.borderless!==!0&&e.rounded!==!0),Ae=s(()=>e.optionsSelectedClass!==void 0?e.optionsSelectedClass:e.color!==void 0?`text-${e.color}`:""),oe=s(()=>Ge(e.optionValue,"value")),Z=s(()=>Ge(e.optionLabel,"label")),be=s(()=>Ge(e.optionDisable,"disable")),Me=s(()=>i.value.map(oe.value)),It=s(()=>{const t={onInput:ft,onChange:le,onKeydown:st,onKeyup:ot,onKeypress:rt,onFocus:at,onClick(o){q===!0&&Se(o)}};return t.onCompositionstart=t.onCompositionupdate=t.onCompositionend=le,t});de(i,t=>{f=t,e.useInput===!0&&e.fillInput===!0&&e.multiple!==!0&&l.innerLoading.value!==!0&&(k.value!==!0&&n.value!==!0||D.value!==!0)&&(C!==!0&&Ve(),(k.value===!0||n.value===!0)&&pe(""))},{immediate:!0}),de(()=>e.fillInput,Ve),de(n,Ue),de(X,Wt);function nt(t){return e.emitValue===!0?oe.value(t):t}function Ke(t){if(t!==-1&&t=e.maxValues)return;const z=e.modelValue.slice();u("add",{index:z.length,value:r}),z.push(r),u("update:modelValue",z)}function me(t,o){if(l.editable.value!==!0||t===void 0||be.value(t)===!0)return;const r=oe.value(t);if(e.multiple!==!0){o!==!0&&(ze(e.fillInput===!0?Z.value(t):"",!0,!0),ge()),y.value?.focus(),(i.value.length===0||Oe(oe.value(i.value[0]),r)!==!0)&&u("update:modelValue",e.emitValue===!0?r:t);return}if((q!==!0||I.value===!0)&&l.focus(),at(),i.value.length===0){const L=e.emitValue===!0?r:t;u("add",{index:0,value:L}),u("update:modelValue",e.multiple===!0?[L]:L);return}const z=e.modelValue.slice(),H=Me.value.findIndex(L=>Oe(L,r));if(H!==-1)u("remove",{index:H,value:z.splice(H,1)[0]});else{if(e.maxValues!==void 0&&z.length>=e.maxValues)return;const L=e.emitValue===!0?r:t;u("add",{index:z.length,value:L}),z.push(L)}u("update:modelValue",z)}function we(t){if(d.platform.is.desktop!==!0)return;const o=t!==-1&&t=0?Z.value(e.options[r]):N,!0))}}function Mt(t,o){const r=z=>Oe(oe.value(z),t);return e.options.find(r)||o.find(r)||t}function Qe(t){const o=oe.value(t);return Me.value.find(r=>Oe(r,o))!==void 0}function at(t){e.useInput===!0&&y.value!==null&&(t===void 0||y.value===t.target&&t.target.value===O.value)&&y.value.select()}function it(t){Vl(t,27)===!0&&n.value===!0&&(Se(t),ge(),Ve()),u("keyup",t)}function ot(t){const{value:o}=t.target;if(t.keyCode!==void 0){it(t);return}if(t.target.value="",p!==null&&(clearTimeout(p),p=null),F!==null&&(clearTimeout(F),F=null),Ve(),typeof o=="string"&&o.length!==0){const r=o.toLocaleLowerCase(),z=L=>{const G=e.options.find(K=>String(L.value(K)).toLocaleLowerCase()===r);return G===void 0?!1:(i.value.indexOf(G)===-1?me(G):ge(),!0)},H=L=>{z(oe)!==!0&&L!==!0&&z(Z)!==!0&&pe(o,!0,()=>H(!0))};H()}else l.clearValue(t)}function rt(t){u("keypress",t)}function st(t){if(u("keydown",t),pl(t)===!0)return;const o=b.value.length!==0&&(e.newValueMode!==void 0||e.onNewValue!==void 0),r=t.shiftKey!==!0&&e.disableTabSelection!==!0&&e.multiple!==!0&&(v.value!==-1||o===!0);if(t.keyCode===27){Le(t);return}if(t.keyCode===9&&r===!1){Ce();return}if(t.target===void 0||t.target.id!==l.targetUid.value||l.editable.value!==!0)return;if(t.keyCode===40&&l.innerLoading.value!==!0&&n.value===!1){te(t),xe();return}if(t.keyCode===8&&(e.useChips===!0||e.clearable===!0)&&e.hideSelected!==!0&&b.value.length===0){e.multiple===!0&&Array.isArray(e.modelValue)===!0?Ke(e.modelValue.length-1):e.multiple!==!0&&e.modelValue!==null&&u("update:modelValue",null);return}(t.keyCode===35||t.keyCode===36)&&(typeof b.value!="string"||b.value.length===0)&&(te(t),v.value=-1,Pe(t.keyCode===36?1:-1,e.multiple)),(t.keyCode===33||t.keyCode===34)&&ue.value!==void 0&&(te(t),v.value=Math.max(-1,Math.min(X.value,v.value+(t.keyCode===33?-1:1)*ue.value.view)),Pe(t.keyCode===33?1:-1,e.multiple)),(t.keyCode===38||t.keyCode===40)&&(te(t),Pe(t.keyCode===38?-1:1,e.multiple));const z=X.value;if((x===void 0||V0&&e.useInput!==!0&&t.key!==void 0&&t.key.length===1&&t.altKey===!1&&t.ctrlKey===!1&&t.metaKey===!1&&(t.keyCode!==32||x.length!==0)){n.value!==!0&&xe(t);const H=t.key.toLocaleLowerCase(),L=x.length===1&&x[0]===H;V=Date.now()+1500,L===!1&&(te(t),x+=H);const G=new RegExp("^"+x.split("").map(We=>Gl.indexOf(We)!==-1?"\\"+We:We).join(".*"),"i");let K=v.value;if(L===!0||K<0||G.test(Z.value(e.options[K]))!==!0)do K=xt(K+1,-1,z-1);while(K!==v.value&&(be.value(e.options[K])===!0||G.test(Z.value(e.options[K]))!==!0));v.value!==K&&se(()=>{we(K),Q(K),K>=0&&e.useInput===!0&&e.fillInput===!0&&Be(Z.value(e.options[K]),!0)});return}if(!(t.keyCode!==13&&(t.keyCode!==32||e.useInput===!0||x!=="")&&(t.keyCode!==9||r===!1))){if(t.keyCode!==9&&te(t),v.value!==-1&&v.value{if(G){if(Ft(G)!==!0)return}else G=e.newValueMode;if(ze("",e.multiple!==!0,!0),L==null)return;(G==="toggle"?me:ut)(L,G==="add-unique"),e.multiple!==!0&&(y.value?.focus(),ge())};if(e.onNewValue!==void 0?u("newValue",b.value,H):H(b.value),e.multiple!==!0)return}n.value===!0?Ce():l.innerLoading.value!==!0&&xe()}}function ct(){return q===!0?E.value:P.value!==null&&P.value.contentEl!==null?P.value.contentEl:void 0}function Pt(){return ct()}function Bt(){return e.hideSelected===!0?[]:a["selected-item"]!==void 0?ve.value.map(t=>a["selected-item"](t)).slice():a.selected!==void 0?[].concat(a.selected()):e.useChips===!0?ve.value.map((t,o)=>w(_t,{key:"option-"+o,removable:l.editable.value===!0&&be.value(t.opt)!==!0,dense:!0,textColor:e.color,tabindex:re.value,onRemove(){t.removeAtIndex(o)}},()=>w("span",{class:"ellipsis",[t.html===!0?"innerHTML":"textContent"]:Z.value(t.opt)}))):[w("span",{class:"ellipsis",[Te.value===!0?"innerHTML":"textContent"]:J.value})]}function dt(){if(U.value===!0)return a["no-option"]!==void 0?a["no-option"]({inputValue:b.value}):void 0;const t=a.option!==void 0?a.option:r=>w(Nl,{key:r.index,...r.itemProps},()=>w(jl,()=>w(Ql,()=>w("span",{[r.html===!0?"innerHTML":"textContent"]:r.label}))));let o=A("div",Ee.value.map(t));return a["before-options"]!==void 0&&(o=a["before-options"]().concat(o)),Fl(a["after-options"],o)}function Rt(t,o){const r=o===!0?{...Ie.value,...l.splitAttrs.attributes.value}:void 0,z={ref:o===!0?y:void 0,key:"i_t",class:_.value,style:e.inputStyle,value:b.value!==void 0?b.value:"",type:"search",...r,id:o===!0?l.targetUid.value:void 0,maxlength:e.maxlength,autocomplete:e.autocomplete,"data-autofocus":t===!0||e.autofocus===!0||void 0,disabled:e.disable===!0,readonly:e.readonly===!0,...It.value};return t!==!0&&q===!0&&(Array.isArray(z.class)===!0?z.class=[...z.class,"no-pointer-events"]:z.class+=" no-pointer-events"),w("input",z)}function ft(t){p!==null&&(clearTimeout(p),p=null),F!==null&&(clearTimeout(F),F=null),!(t&&t.target&&t.target.qComposing===!0)&&(Be(t.target.value||""),C=!0,N=b.value,l.focused.value!==!0&&(q!==!0||I.value===!0)&&l.focus(),e.onFilter!==void 0&&(p=setTimeout(()=>{p=null,pe(b.value)},e.inputDebounce)))}function Be(t,o){b.value!==t&&(b.value=t,o===!0||e.inputDebounce===0||e.inputDebounce==="0"?u("inputValue",t):F=setTimeout(()=>{F=null,u("inputValue",t)},e.inputDebounce))}function ze(t,o,r){C=r!==!0,e.useInput===!0&&(Be(t,!0),(o===!0||r!==!0)&&(N=t),o!==!0&&pe(t))}function pe(t,o,r){if(e.onFilter===void 0||o!==!0&&l.focused.value!==!0)return;l.innerLoading.value===!0?u("filterAbort"):(l.innerLoading.value=!0,c.value=!0),t!==""&&e.multiple!==!0&&i.value.length!==0&&C!==!0&&t===Z.value(i.value[0])&&(t="");const z=setTimeout(()=>{n.value===!0&&(n.value=!1)},10);S!==null&&clearTimeout(S),S=z,u("filter",t,(H,L)=>{(o===!0||l.focused.value===!0)&&S===z&&(clearTimeout(S),typeof H=="function"&&H(),c.value=!1,se(()=>{l.innerLoading.value=!1,l.editable.value===!0&&(o===!0?n.value===!0&&ge():n.value===!0?Ue(!0):n.value=!0),typeof L=="function"&&se(()=>{L(m)}),typeof r=="function"&&se(()=>{r(m)})}))},()=>{l.focused.value===!0&&S===z&&(clearTimeout(S),l.innerLoading.value=!1,c.value=!1),n.value===!0&&(n.value=!1)})}function Dt(){return w(Ll,{ref:P,class:T.value,style:e.popupContentStyle,modelValue:n.value,fit:e.menuShrink!==!0,cover:e.optionsCover===!0&&U.value!==!0&&e.useInput!==!0,anchor:e.menuAnchor,self:e.menuSelf,offset:e.menuOffset,dark:B.value,noParentEvent:!0,noRefocus:!0,noFocus:!0,noRouteDismiss:e.popupNoRouteDismiss,square:$e.value,transitionShow:e.transitionShow,transitionHide:e.transitionHide,transitionDuration:e.transitionDuration,separateClosePopup:!0,...fe.value,onScrollPassive:$,onBeforeShow:mt,onBeforeHide:Lt,onShow:Ht},dt)}function Lt(t){gt(t),Ce()}function Ht(){ee()}function jt(t){Se(t),y.value?.focus(),I.value=!0,window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,0)}function Nt(t){Se(t),se(()=>{I.value=!1})}function $t(){const t=[w($l,{class:`col-auto ${l.fieldClass.value}`,...h.value,for:l.targetUid.value,dark:B.value,square:!0,loading:c.value,itemAligned:!1,filled:!0,stackLabel:b.value.length!==0,...l.splitAttrs.listeners.value,onFocus:jt,onBlur:Nt},{...a,rawControl:()=>l.getControl(!0),before:void 0,after:void 0})];return n.value===!0&&t.push(w("div",{ref:E,class:T.value+" scroll",style:e.popupContentStyle,...fe.value,onClick:Le,onScrollPassive:$},dt())),w(kl,{ref:W,modelValue:k.value,position:e.useInput===!0?"top":void 0,transitionShow:g,transitionHide:e.transitionHide,transitionDuration:e.transitionDuration,noRouteDismiss:e.popupNoRouteDismiss,onBeforeShow:mt,onBeforeHide:Kt,onHide:Qt,onShow:Ut},()=>w("div",{class:"q-select__dialog"+(B.value===!0?" q-select__dialog--dark q-dark":"")+(I.value===!0?" q-select__dialog--focused":"")},t))}function Kt(t){gt(t),W.value!==null&&W.value.__updateRefocusTarget(l.rootRef.value.querySelector(".q-field__native > [tabindex]:last-child")),l.focused.value=!1}function Qt(t){ge(),l.focused.value===!1&&u("blur",t),Ve()}function Ut(){const t=document.activeElement;(t===null||t.id!==l.targetUid.value)&&y.value!==null&&y.value!==t&&y.value.focus(),ee()}function Ce(){k.value!==!0&&(v.value=-1,n.value===!0&&(n.value=!1),l.focused.value===!1&&(S!==null&&(clearTimeout(S),S=null),l.innerLoading.value===!0&&(u("filterAbort"),l.innerLoading.value=!1,c.value=!1)))}function xe(t){l.editable.value===!0&&(q===!0?(l.onControlFocusin(t),k.value=!0,se(()=>{l.focus()})):l.focus(),e.onFilter!==void 0?pe(b.value):(U.value!==!0||a["no-option"]!==void 0)&&(n.value=!0))}function ge(){k.value=!1,Ce()}function Ve(){e.useInput===!0&&ze(e.multiple!==!0&&e.fillInput===!0&&i.value.length!==0&&Z.value(i.value[0])||"",!0,!0)}function Ue(t){let o=-1;if(t===!0){if(i.value.length!==0){const r=oe.value(i.value[0]);o=e.options.findIndex(z=>Oe(oe.value(z),r))}Y(o)}we(o)}function Wt(t,o){n.value===!0&&l.innerLoading.value===!1&&(Y(-1,!0),se(()=>{n.value===!0&&l.innerLoading.value===!1&&(t>o?Y():Ue(!0))}))}function vt(){k.value===!1&&P.value!==null&&P.value.updatePosition()}function mt(t){t!==void 0&&Se(t),u("popupShow",t),l.hasPopupOpen=!0,l.onControlFocusin(t)}function gt(t){t!==void 0&&Se(t),u("popupHide",t),l.hasPopupOpen=!1,l.onControlFocusout(t)}function St(){q=d.platform.is.mobile!==!0&&e.behavior!=="dialog"?!1:e.behavior!=="menu"&&(e.useInput===!0?a["no-option"]!==void 0||e.onFilter!==void 0||U.value===!1:!0),g=d.platform.is.ios===!0&&q===!0&&e.useInput===!0?"fade":e.transitionShow}return Cl(St),xl(vt),St(),He(()=>{p!==null&&clearTimeout(p),F!==null&&clearTimeout(F)}),Object.assign(m,{showPopup:xe,hidePopup:ge,removeAtIndex:Ke,add:ut,toggleOption:me,getOptionIndex:()=>v.value,setOptionIndex:we,moveOptionSelection:Pe,filter:pe,updateMenuPosition:vt,updateInputValue:ze,isOptionSelected:Qe,getEmittingOptionValue:nt,isOptionDisabled:(...t)=>be.value.apply(null,t)===!0,getOptionValue:(...t)=>oe.value.apply(null,t),getOptionLabel:(...t)=>Z.value.apply(null,t)}),Object.assign(l,{innerValue:i,fieldClass:s(()=>`q-select q-field--auto-height q-select--with${e.useInput!==!0?"out":""}-input q-select--with${e.useChips!==!0?"out":""}-chips q-select--${e.multiple===!0?"multiple":"single"}`),inputRef:M,targetRef:y,hasValue:D,showPopup:xe,floatingLabel:s(()=>e.hideSelected!==!0&&D.value===!0||typeof b.value=="number"||b.value.length!==0||je(e.displayValue)),getControlChild:()=>{if(l.editable.value!==!1&&(k.value===!0||U.value!==!0||a["no-option"]!==void 0))return q===!0?$t():Dt();l.hasPopupOpen===!0&&(l.hasPopupOpen=!1)},controlEvents:{onFocusin(t){l.onControlFocusin(t)},onFocusout(t){l.onControlFocusout(t,()=>{Ve(),Ce()})},onClick(t){if(Le(t),q!==!0&&n.value===!0){Ce(),y.value?.focus();return}xe(t)}},getControl:t=>{const o=Bt(),r=t===!0||k.value!==!0||q!==!0;if(e.useInput===!0)o.push(Rt(t,r));else if(l.editable.value===!0){const H=r===!0?Ie.value:void 0;o.push(w("input",{ref:r===!0?y:void 0,key:"d_t",class:"q-select__focus-target",id:r===!0?l.targetUid.value:void 0,value:J.value,readonly:!0,"data-autofocus":t===!0||e.autofocus===!0||void 0,...H,onKeydown:st,onKeyup:it,onKeypress:rt})),r===!0&&typeof e.autocomplete=="string"&&e.autocomplete.length!==0&&o.push(w("input",{class:"q-select__autocomplete-input",autocomplete:e.autocomplete,tabindex:-1,onKeyup:ot}))}if(R.value!==void 0&&e.disable!==!0&&Me.value.length!==0){const H=Me.value.map(L=>w("option",{value:L,selected:!0}));o.push(w("select",{class:"hidden",name:R.value,multiple:e.multiple},H))}const z=e.useInput===!0||r!==!0?void 0:l.splitAttrs.attributes.value;return w("div",{class:"q-field__native row items-center",...z,...l.splitAttrs.listeners.value},o)},getInnerAppend:()=>e.loading!==!0&&c.value!==!0&&e.hideDropdownIcon!==!0?[w(De,{class:"q-select__dropdown-icon"+(n.value===!0?" rotate-180":""),name:qe.value})]:null}),tt(l)}});function ke(e,a,u,m){const d=[];return e.forEach(n=>{m(n)===!0?d.push(n):a.push({failedPropValidation:u,file:n})}),d}function Re(e){e?.dataTransfer&&(e.dataTransfer.dropEffect="copy"),te(e)}const Zl={multiple:Boolean,accept:String,capture:String,maxFileSize:[Number,String],maxTotalSize:[Number,String],maxFiles:[Number,String],filter:Function},en=["rejected"];function tn({editable:e,dnd:a,getFileInput:u,addFilesToQueue:m}){const{props:d,emit:n,proxy:k}=ye(),v=j(null),b=s(()=>d.accept!==void 0?d.accept.split(",").map(g=>(g=g.trim(),g==="*"?"*/":(g.endsWith("/*")&&(g=g.slice(0,g.length-1)),g.toUpperCase()))):null),I=s(()=>parseInt(d.maxFiles,10)),c=s(()=>parseInt(d.maxTotalSize,10));function p(g){if(e.value)if(g!==Object(g)&&(g={target:null}),g.target?.matches('input[type="file"]')===!0)g.clientX===0&&g.clientY===0&&Se(g);else{const x=u();x!==g.target&&x?.click(g)}}function F(g){e.value&&g&&m(null,g)}function f(g,x,V,M){let y=Array.from(x||g.target.files);const P=[],W=()=>{P.length!==0&&n("rejected",P)};if(d.accept!==void 0&&b.value.indexOf("*/")===-1&&(y=ke(y,P,"accept",E=>b.value.some(R=>E.type.toUpperCase().startsWith(R)||E.name.toUpperCase().endsWith(R))),y.length===0))return W();if(d.maxFileSize!==void 0){const E=parseInt(d.maxFileSize,10);if(y=ke(y,P,"max-file-size",R=>R.size<=E),y.length===0)return W()}if(d.multiple!==!0&&y.length!==0&&(y=[y[0]]),y.forEach(E=>{E.__key=E.webkitRelativePath+E.lastModified+E.name+E.size}),M===!0){const E=V.map(R=>R.__key);y=ke(y,P,"duplicate",R=>E.includes(R.__key)===!1)}if(y.length===0)return W();if(d.maxTotalSize!==void 0){let E=M===!0?V.reduce((R,le)=>R+le.size,0):0;if(y=ke(y,P,"max-total-size",R=>(E+=R.size,E<=c.value)),y.length===0)return W()}if(typeof d.filter=="function"){const E=d.filter(y);y=ke(y,P,"filter",R=>E.includes(R))}if(d.maxFiles!==void 0){let E=M===!0?V.length:0;if(y=ke(y,P,"max-files",()=>(E++,E<=I.value)),y.length===0)return W()}if(W(),y.length!==0)return y}function q(g){Re(g),a.value!==!0&&(a.value=!0)}function C(g){te(g),(g.relatedTarget!==null||ql.is.safari!==!0?g.relatedTarget!==v.value:document.elementsFromPoint(g.clientX,g.clientY).includes(v.value)===!1)===!0&&(a.value=!1)}function S(g){Re(g);const x=g.dataTransfer.files;x.length!==0&&m(null,x),a.value=!1}function N(g){if(a.value===!0)return w("div",{ref:v,class:`q-${g}__dnd absolute-full`,onDragenter:Re,onDragover:Re,onDragleave:C,onDrop:S})}return Object.assign(k,{pickFiles:p,addFiles:F}),{pickFiles:p,addFiles:F,onDragover:q,onDragleave:C,processFiles:f,getDndNode:N,maxFilesNumber:I,maxTotalSizeNumber:c}}const cn=he({name:"QFile",inheritAttrs:!1,props:{...Al,...zt,...Zl,modelValue:[File,FileList,Array],append:Boolean,useChips:Boolean,displayValue:[String,Number],tabindex:{type:[String,Number],default:0},counterLabel:Function,inputClass:[Array,String,Object],inputStyle:[Array,String,Object]},emits:[...Ze,...en],setup(e,{slots:a,emit:u,attrs:m}){const{proxy:d}=ye(),n=lt(),k=j(null),v=j(!1),b=Ot(e),{pickFiles:I,onDragover:c,onDragleave:p,processFiles:F,getDndNode:f}=tn({editable:n.editable,dnd:v,getFileInput:X,addFilesToQueue:ie}),q=zl(e),C=s(()=>Object(e.modelValue)===e.modelValue?"length"in e.modelValue?Array.from(e.modelValue):[e.modelValue]:[]),S=s(()=>je(C.value)),N=s(()=>C.value.map(A=>A.name).join(", ")),g=s(()=>Hl(C.value.reduce((A,$)=>A+$.size,0))),x=s(()=>({totalSize:g.value,filesNumber:C.value.length,maxFiles:e.maxFiles})),V=s(()=>({tabindex:-1,type:"file",title:"",accept:e.accept,capture:e.capture,name:b.value,...m,id:n.targetUid.value,disabled:n.editable.value!==!0})),M=s(()=>"q-file q-field--auto-height"+(v.value===!0?" q-file--dnd":"")),y=s(()=>e.multiple===!0&&e.append===!0);function P(A){const $=C.value.slice();$.splice(A,1),E($)}function W(A){const $=C.value.indexOf(A);$!==-1&&P($)}function E(A){u("update:modelValue",e.multiple===!0?A:A[0])}function R(A){A.keyCode===13&&Le(A)}function le(A){(A.keyCode===13||A.keyCode===32)&&I(A)}function X(){return k.value}function ie(A,$){const Q=F(A,$,C.value,y.value),ee=X();ee!=null&&(ee.value=""),Q!==void 0&&((e.multiple===!0?e.modelValue&&Q.every(l=>C.value.includes(l)):e.modelValue===Q[0])||E(y.value===!0?C.value.concat(Q):Q))}function ne(){return[w("input",{class:[e.inputClass,"q-file__filler"],style:e.inputStyle})]}function ue(){if(a.file!==void 0)return C.value.length===0?ne():C.value.map(($,Q)=>a.file({index:Q,file:$,ref:this}));if(a.selected!==void 0)return C.value.length===0?ne():a.selected({files:C.value,ref:this});if(e.useChips===!0)return C.value.length===0?ne():C.value.map(($,Q)=>w(_t,{key:"file-"+Q,removable:n.editable.value,dense:!0,textColor:e.color,tabindex:e.tabindex,onRemove:()=>{P(Q)}},()=>w("span",{class:"ellipsis",textContent:$.name})));const A=e.displayValue!==void 0?e.displayValue:N.value;return A.length!==0?[w("div",{class:e.inputClass,style:e.inputStyle,textContent:A})]:ne()}function Y(){const A={ref:k,...V.value,...q.value,class:"q-field__input fit absolute-full cursor-pointer",onChange:ie};return e.multiple===!0&&(A.multiple=!0),w("input",A)}return Object.assign(n,{fieldClass:M,emitValue:E,hasValue:S,inputRef:k,innerValue:C,floatingLabel:s(()=>S.value===!0||je(e.displayValue)),computedCounter:s(()=>{if(e.counterLabel!==void 0)return e.counterLabel(x.value);const A=e.maxFiles;return`${C.value.length}${A!==void 0?" / "+A:""} (${g.value})`}),getControlChild:()=>f("file"),getControl:()=>{const A={ref:n.targetRef,class:"q-field__native row items-center cursor-pointer",tabindex:e.tabindex};return n.editable.value===!0&&Object.assign(A,{onDragover:c,onDragleave:p,onKeydown:R,onKeyup:le}),w("div",A,[Y()].concat(ue()))}}),Object.assign(d,{removeAtIndex:P,removeFile:W,getNativeElement:()=>k.value}),Ol(d,"nativeEl",()=>k.value),tt(n)}});function dn(){return _l(Tl)}const ln="00000000-0000-0000-0000-000000000000",fn=Il("userstore",{state:()=>({id:ln})});export{on as Q,sn as a,rn as b,Ql as c,fn as d,cn as e,_t as f,dn as u}; diff --git a/app/dist/spa/assets/vue-i18n.runtime-DPKkE7zN.js b/app/dist/spa/assets/vue-i18n.runtime-DPKkE7zN.js new file mode 100644 index 0000000..20a5d18 --- /dev/null +++ b/app/dist/spa/assets/vue-i18n.runtime-DPKkE7zN.js @@ -0,0 +1,3 @@ +import{b6 as yn,r as Sn,b7 as On,a as Le,w as tt,b8 as kn,$ as ft,g as Pn,j as An,o as vn,_ as Rn,h as qt,aa as Zt,a4 as Dn,b9 as Fn}from"./index-0B2sgEyA.js";function Mn(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const ve=typeof window<"u",ce=(e,t=!1)=>t?Symbol.for(e):Symbol(e),wn=(e,t,n)=>Un({l:e,k:t,s:n}),Un=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),K=e=>typeof e=="number"&&isFinite(e),Wn=e=>mt(e)==="[object Date]",Re=e=>mt(e)==="[object RegExp]",Fe=e=>R(e)&&Object.keys(e).length===0,Y=Object.assign,$n=Object.create,w=(e=null)=>$n(e);function Nt(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Tt(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Vn(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(r,l,a)=>`${l}="${Tt(a)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(r,l,a)=>`${l}='${Tt(a)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(r=>{e=e.replace(r,"$1javascript:")}),e}const xn=Object.prototype.hasOwnProperty;function Q(e,t){return xn.call(e,t)}const H=Array.isArray,W=e=>typeof e=="function",y=e=>typeof e=="string",$=e=>typeof e=="boolean",D=e=>e!==null&&typeof e=="object",jn=e=>D(e)&&W(e.then)&&W(e.catch),zt=Object.prototype.toString,mt=e=>zt.call(e),R=e=>mt(e)==="[object Object]",Hn=e=>e==null?"":H(e)||R(e)&&e.toString===zt?JSON.stringify(e,null,2):String(e);function dt(e,t=""){return e.reduce((n,r,l)=>l===0?n+r:n+t+r,"")}const Oe=e=>!D(e)||H(e);function Ae(e,t){if(Oe(e)||Oe(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:r,des:l}=n.pop();Object.keys(r).forEach(a=>{a!=="__proto__"&&(D(r[a])&&!D(l[a])&&(l[a]=Array.isArray(r[a])?[]:w()),Oe(l[a])||Oe(r[a])?l[a]=r[a]:n.push({src:r[a],des:l[a]}))})}}function Kn(e,t,n){return{line:e,column:t,offset:n}}function nt(e,t,n){return{start:e,end:t}}const F={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14},Xn=17;function Me(e,t,n={}){const{domain:r,messages:l,args:a}=n,o=e,u=new SyntaxError(String(o));return u.code=e,t&&(u.location=t),u.domain=r,u}function Yn(e){throw e}const z=" ",Gn="\r",G=` +`,Bn="\u2028",Jn="\u2029";function Qn(e){const t=e;let n=0,r=1,l=1,a=0;const o=L=>t[L]===Gn&&t[L+1]===G,u=L=>t[L]===G,m=L=>t[L]===Jn,d=L=>t[L]===Bn,h=L=>o(L)||u(L)||m(L)||d(L),T=()=>n,b=()=>r,P=()=>l,A=()=>a,O=L=>o(L)||m(L)||d(L)?G:t[L],k=()=>O(n),i=()=>O(n+a);function E(){return a=0,h(n)&&(r++,l=0),o(n)&&n++,n++,l++,t[n]}function N(){return o(n+a)&&a++,a++,t[n+a]}function g(){n=0,r=1,l=1,a=0}function I(L=0){a=L}function C(){const L=n+a;for(;L!==n;)E();a=0}return{index:T,line:b,column:P,peekOffset:A,charAt:O,currentChar:k,currentPeek:i,next:E,peek:N,reset:g,resetPeek:I,skipToPeek:C}}const re=void 0,qn=".",Ct="'",Zn="tokenizer";function zn(e,t={}){const n=t.location!==!1,r=Qn(e),l=()=>r.index(),a=()=>Kn(r.line(),r.column(),r.index()),o=a(),u=l(),m={currentType:13,offset:u,startLoc:o,endLoc:o,lastType:13,lastOffset:u,lastStartLoc:o,lastEndLoc:o,braceNest:0,inLinked:!1,text:""},d=()=>m,{onError:h}=t;function T(s,c,_,...S){const U=d();if(c.column+=_,c.offset+=_,h){const v=n?nt(U.startLoc,c):null,f=Me(s,v,{domain:Zn,args:S});h(f)}}function b(s,c,_){s.endLoc=a(),s.currentType=c;const S={type:c};return n&&(S.loc=nt(s.startLoc,s.endLoc)),_!=null&&(S.value=_),S}const P=s=>b(s,13);function A(s,c){return s.currentChar()===c?(s.next(),c):(T(F.EXPECTED_TOKEN,a(),0,c),"")}function O(s){let c="";for(;s.currentPeek()===z||s.currentPeek()===G;)c+=s.currentPeek(),s.peek();return c}function k(s){const c=O(s);return s.skipToPeek(),c}function i(s){if(s===re)return!1;const c=s.charCodeAt(0);return c>=97&&c<=122||c>=65&&c<=90||c===95}function E(s){if(s===re)return!1;const c=s.charCodeAt(0);return c>=48&&c<=57}function N(s,c){const{currentType:_}=c;if(_!==2)return!1;O(s);const S=i(s.currentPeek());return s.resetPeek(),S}function g(s,c){const{currentType:_}=c;if(_!==2)return!1;O(s);const S=s.currentPeek()==="-"?s.peek():s.currentPeek(),U=E(S);return s.resetPeek(),U}function I(s,c){const{currentType:_}=c;if(_!==2)return!1;O(s);const S=s.currentPeek()===Ct;return s.resetPeek(),S}function C(s,c){const{currentType:_}=c;if(_!==7)return!1;O(s);const S=s.currentPeek()===".";return s.resetPeek(),S}function L(s,c){const{currentType:_}=c;if(_!==8)return!1;O(s);const S=i(s.currentPeek());return s.resetPeek(),S}function V(s,c){const{currentType:_}=c;if(!(_===7||_===11))return!1;O(s);const S=s.currentPeek()===":";return s.resetPeek(),S}function x(s,c){const{currentType:_}=c;if(_!==9)return!1;const S=()=>{const v=s.currentPeek();return v==="{"?i(s.peek()):v==="@"||v==="|"||v===":"||v==="."||v===z||!v?!1:v===G?(s.peek(),S()):Z(s,!1)},U=S();return s.resetPeek(),U}function B(s){O(s);const c=s.currentPeek()==="|";return s.resetPeek(),c}function Z(s,c=!0){const _=(U=!1,v="")=>{const f=s.currentPeek();return f==="{"||f==="@"||!f?U:f==="|"?!(v===z||v===G):f===z?(s.peek(),_(!0,z)):f===G?(s.peek(),_(!0,G)):!0},S=_();return c&&s.resetPeek(),S}function X(s,c){const _=s.currentChar();return _===re?re:c(_)?(s.next(),_):null}function Ue(s){const c=s.charCodeAt(0);return c>=97&&c<=122||c>=65&&c<=90||c>=48&&c<=57||c===95||c===36}function We(s){return X(s,Ue)}function $e(s){const c=s.charCodeAt(0);return c>=97&&c<=122||c>=65&&c<=90||c>=48&&c<=57||c===95||c===36||c===45}function Ve(s){return X(s,$e)}function xe(s){const c=s.charCodeAt(0);return c>=48&&c<=57}function je(s){return X(s,xe)}function ne(s){const c=s.charCodeAt(0);return c>=48&&c<=57||c>=65&&c<=70||c>=97&&c<=102}function Te(s){return X(s,ne)}function Ce(s){let c="",_="";for(;c=je(s);)_+=c;return _}function He(s){let c="";for(;;){const _=s.currentChar();if(_==="{"||_==="}"||_==="@"||_==="|"||!_)break;if(_===z||_===G)if(Z(s))c+=_,s.next();else{if(B(s))break;c+=_,s.next()}else c+=_,s.next()}return c}function Ke(s){k(s);let c="",_="";for(;c=Ve(s);)_+=c;const S=s.currentChar();if(S&&S!=="}"&&S!==re&&S!==z&&S!==G&&S!==" "){const U=ye(s);return T(F.INVALID_TOKEN_IN_PLACEHOLDER,a(),0,_+U),_+U}return s.currentChar()===re&&T(F.UNTERMINATED_CLOSING_BRACE,a(),0),_}function Xe(s){k(s);let c="";return s.currentChar()==="-"?(s.next(),c+=`-${Ce(s)}`):c+=Ce(s),s.currentChar()===re&&T(F.UNTERMINATED_CLOSING_BRACE,a(),0),c}function ht(s){return s!==Ct&&s!==G}function Ye(s){k(s),A(s,"'");let c="",_="";for(;c=X(s,ht);)c==="\\"?_+=Ge(s):_+=c;const S=s.currentChar();return S===G||S===re?(T(F.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,a(),0),S===G&&(s.next(),A(s,"'")),_):(A(s,"'"),_)}function Ge(s){const c=s.currentChar();switch(c){case"\\":case"'":return s.next(),`\\${c}`;case"u":return Ie(s,c,4);case"U":return Ie(s,c,6);default:return T(F.UNKNOWN_ESCAPE_SEQUENCE,a(),0,c),""}}function Ie(s,c,_){A(s,c);let S="";for(let U=0;U<_;U++){const v=Te(s);if(!v){T(F.INVALID_UNICODE_ESCAPE_SEQUENCE,a(),0,`\\${c}${S}${s.currentChar()}`);break}S+=v}return`\\${c}${S}`}function Be(s){return s!=="{"&&s!=="}"&&s!==z&&s!==G}function ye(s){k(s);let c="",_="";for(;c=X(s,Be);)_+=c;return _}function Je(s){let c="",_="";for(;c=We(s);)_+=c;return _}function Qe(s){const c=_=>{const S=s.currentChar();return S==="{"||S==="@"||S==="|"||S==="("||S===")"||!S||S===z?_:(_+=S,s.next(),c(_))};return c("")}function Ee(s){k(s);const c=A(s,"|");return k(s),c}function fe(s,c){let _=null;switch(s.currentChar()){case"{":return c.braceNest>=1&&T(F.NOT_ALLOW_NEST_PLACEHOLDER,a(),0),s.next(),_=b(c,2,"{"),k(s),c.braceNest++,_;case"}":return c.braceNest>0&&c.currentType===2&&T(F.EMPTY_PLACEHOLDER,a(),0),s.next(),_=b(c,3,"}"),c.braceNest--,c.braceNest>0&&k(s),c.inLinked&&c.braceNest===0&&(c.inLinked=!1),_;case"@":return c.braceNest>0&&T(F.UNTERMINATED_CLOSING_BRACE,a(),0),_=me(s,c)||P(c),c.braceNest=0,_;default:{let U=!0,v=!0,f=!0;if(B(s))return c.braceNest>0&&T(F.UNTERMINATED_CLOSING_BRACE,a(),0),_=b(c,1,Ee(s)),c.braceNest=0,c.inLinked=!1,_;if(c.braceNest>0&&(c.currentType===4||c.currentType===5||c.currentType===6))return T(F.UNTERMINATED_CLOSING_BRACE,a(),0),c.braceNest=0,pe(s,c);if(U=N(s,c))return _=b(c,4,Ke(s)),k(s),_;if(v=g(s,c))return _=b(c,5,Xe(s)),k(s),_;if(f=I(s,c))return _=b(c,6,Ye(s)),k(s),_;if(!U&&!v&&!f)return _=b(c,12,ye(s)),T(F.INVALID_TOKEN_IN_PLACEHOLDER,a(),0,_.value),k(s),_;break}}return _}function me(s,c){const{currentType:_}=c;let S=null;const U=s.currentChar();switch((_===7||_===8||_===11||_===9)&&(U===G||U===z)&&T(F.INVALID_LINKED_FORMAT,a(),0),U){case"@":return s.next(),S=b(c,7,"@"),c.inLinked=!0,S;case".":return k(s),s.next(),b(c,8,".");case":":return k(s),s.next(),b(c,9,":");default:return B(s)?(S=b(c,1,Ee(s)),c.braceNest=0,c.inLinked=!1,S):C(s,c)||V(s,c)?(k(s),me(s,c)):L(s,c)?(k(s),b(c,11,Je(s))):x(s,c)?(k(s),U==="{"?fe(s,c)||S:b(c,10,Qe(s))):(_===7&&T(F.INVALID_LINKED_FORMAT,a(),0),c.braceNest=0,c.inLinked=!1,pe(s,c))}}function pe(s,c){let _={type:13};if(c.braceNest>0)return fe(s,c)||P(c);if(c.inLinked)return me(s,c)||P(c);switch(s.currentChar()){case"{":return fe(s,c)||P(c);case"}":return T(F.UNBALANCED_CLOSING_BRACE,a(),0),s.next(),b(c,3,"}");case"@":return me(s,c)||P(c);default:{if(B(s))return _=b(c,1,Ee(s)),c.braceNest=0,c.inLinked=!1,_;if(Z(s))return b(c,0,He(s));break}}return _}function qe(){const{currentType:s,offset:c,startLoc:_,endLoc:S}=m;return m.lastType=s,m.lastOffset=c,m.lastStartLoc=_,m.lastEndLoc=S,m.offset=l(),m.startLoc=a(),r.currentChar()===re?b(m,13):pe(r,m)}return{nextToken:qe,currentOffset:l,currentPosition:a,context:d}}const er="parser",tr=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function nr(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const r=parseInt(t||n,16);return r<=55295||r>=57344?String.fromCodePoint(r):"�"}}}function rr(e={}){const t=e.location!==!1,{onError:n}=e;function r(i,E,N,g,...I){const C=i.currentPosition();if(C.offset+=g,C.column+=g,n){const L=t?nt(N,C):null,V=Me(E,L,{domain:er,args:I});n(V)}}function l(i,E,N){const g={type:i};return t&&(g.start=E,g.end=E,g.loc={start:N,end:N}),g}function a(i,E,N,g){t&&(i.end=E,i.loc&&(i.loc.end=N))}function o(i,E){const N=i.context(),g=l(3,N.offset,N.startLoc);return g.value=E,a(g,i.currentOffset(),i.currentPosition()),g}function u(i,E){const N=i.context(),{lastOffset:g,lastStartLoc:I}=N,C=l(5,g,I);return C.index=parseInt(E,10),i.nextToken(),a(C,i.currentOffset(),i.currentPosition()),C}function m(i,E){const N=i.context(),{lastOffset:g,lastStartLoc:I}=N,C=l(4,g,I);return C.key=E,i.nextToken(),a(C,i.currentOffset(),i.currentPosition()),C}function d(i,E){const N=i.context(),{lastOffset:g,lastStartLoc:I}=N,C=l(9,g,I);return C.value=E.replace(tr,nr),i.nextToken(),a(C,i.currentOffset(),i.currentPosition()),C}function h(i){const E=i.nextToken(),N=i.context(),{lastOffset:g,lastStartLoc:I}=N,C=l(8,g,I);return E.type!==11?(r(i,F.UNEXPECTED_EMPTY_LINKED_MODIFIER,N.lastStartLoc,0),C.value="",a(C,g,I),{nextConsumeToken:E,node:C}):(E.value==null&&r(i,F.UNEXPECTED_LEXICAL_ANALYSIS,N.lastStartLoc,0,ee(E)),C.value=E.value||"",a(C,i.currentOffset(),i.currentPosition()),{node:C})}function T(i,E){const N=i.context(),g=l(7,N.offset,N.startLoc);return g.value=E,a(g,i.currentOffset(),i.currentPosition()),g}function b(i){const E=i.context(),N=l(6,E.offset,E.startLoc);let g=i.nextToken();if(g.type===8){const I=h(i);N.modifier=I.node,g=I.nextConsumeToken||i.nextToken()}switch(g.type!==9&&r(i,F.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,ee(g)),g=i.nextToken(),g.type===2&&(g=i.nextToken()),g.type){case 10:g.value==null&&r(i,F.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,ee(g)),N.key=T(i,g.value||"");break;case 4:g.value==null&&r(i,F.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,ee(g)),N.key=m(i,g.value||"");break;case 5:g.value==null&&r(i,F.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,ee(g)),N.key=u(i,g.value||"");break;case 6:g.value==null&&r(i,F.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,ee(g)),N.key=d(i,g.value||"");break;default:{r(i,F.UNEXPECTED_EMPTY_LINKED_KEY,E.lastStartLoc,0);const I=i.context(),C=l(7,I.offset,I.startLoc);return C.value="",a(C,I.offset,I.startLoc),N.key=C,a(N,I.offset,I.startLoc),{nextConsumeToken:g,node:N}}}return a(N,i.currentOffset(),i.currentPosition()),{node:N}}function P(i){const E=i.context(),N=E.currentType===1?i.currentOffset():E.offset,g=E.currentType===1?E.endLoc:E.startLoc,I=l(2,N,g);I.items=[];let C=null;do{const x=C||i.nextToken();switch(C=null,x.type){case 0:x.value==null&&r(i,F.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,ee(x)),I.items.push(o(i,x.value||""));break;case 5:x.value==null&&r(i,F.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,ee(x)),I.items.push(u(i,x.value||""));break;case 4:x.value==null&&r(i,F.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,ee(x)),I.items.push(m(i,x.value||""));break;case 6:x.value==null&&r(i,F.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,ee(x)),I.items.push(d(i,x.value||""));break;case 7:{const B=b(i);I.items.push(B.node),C=B.nextConsumeToken||null;break}}}while(E.currentType!==13&&E.currentType!==1);const L=E.currentType===1?E.lastOffset:i.currentOffset(),V=E.currentType===1?E.lastEndLoc:i.currentPosition();return a(I,L,V),I}function A(i,E,N,g){const I=i.context();let C=g.items.length===0;const L=l(1,E,N);L.cases=[],L.cases.push(g);do{const V=P(i);C||(C=V.items.length===0),L.cases.push(V)}while(I.currentType!==13);return C&&r(i,F.MUST_HAVE_MESSAGES_IN_PLURAL,N,0),a(L,i.currentOffset(),i.currentPosition()),L}function O(i){const E=i.context(),{offset:N,startLoc:g}=E,I=P(i);return E.currentType===13?I:A(i,N,g,I)}function k(i){const E=zn(i,Y({},e)),N=E.context(),g=l(0,N.offset,N.startLoc);return t&&g.loc&&(g.loc.source=i),g.body=O(E),e.onCacheKey&&(g.cacheKey=e.onCacheKey(i)),N.currentType!==13&&r(E,F.UNEXPECTED_LEXICAL_ANALYSIS,N.lastStartLoc,0,i[N.offset]||""),a(g,E.currentOffset(),E.currentPosition()),g}return{parse:k}}function ee(e){if(e.type===13)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function ar(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:a=>(n.helpers.add(a),a)}}function It(e,t){for(let n=0;nyt(n)),e}function yt(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let n=0;no;function m(O,k){o.code+=O}function d(O,k=!0){const i=k?r:"";m(l?i+" ".repeat(O):i)}function h(O=!0){const k=++o.indentLevel;O&&d(k)}function T(O=!0){const k=--o.indentLevel;O&&d(k)}function b(){d(o.indentLevel)}return{context:u,push:m,indent:h,deindent:T,newline:b,helper:O=>`_${O}`,needIndent:()=>o.needIndent}}function or(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),ge(e,t.key),t.modifier?(e.push(", "),ge(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function ir(e,t){const{helper:n,needIndent:r}=e;e.push(`${n("normalize")}([`),e.indent(r());const l=t.items.length;for(let a=0;a1){e.push(`${n("plural")}([`),e.indent(r());const l=t.cases.length;for(let a=0;a{const n=y(t.mode)?t.mode:"normal",r=y(t.filename)?t.filename:"message.intl";t.sourceMap;const l=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` +`,a=t.needIndent?t.needIndent:n!=="arrow",o=e.helpers||[],u=cr(e,{filename:r,breakLineCode:l,needIndent:a});u.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),u.indent(a),o.length>0&&(u.push(`const { ${dt(o.map(h=>`${h}: _${h}`),", ")} } = ctx`),u.newline()),u.push("return "),ge(u,e),u.deindent(a),u.push("}"),delete e.helpers;const{code:m,map:d}=u.context();return{ast:e,code:m,map:d?d.toJSON():void 0}};function dr(e,t={}){const n=Y({},t),r=!!n.jit,l=!!n.minify,a=n.optimize==null?!0:n.optimize,u=rr(n).parse(e);return r?(a&&lr(u),l&&_e(u),{ast:u,code:""}):(sr(u,n),mr(u,n))}function te(e){return D(e)&>(e)===0&&(Q(e,"b")||Q(e,"body"))}const en=["b","body"];function _r(e){return oe(e,en)}const tn=["c","cases"];function gr(e){return oe(e,tn,[])}const nn=["s","static"];function Er(e){return oe(e,nn)}const rn=["i","items"];function pr(e){return oe(e,rn,[])}const an=["t","type"];function gt(e){return oe(e,an)}const sn=["v","value"];function ke(e,t){const n=oe(e,sn);if(n!=null)return n;throw he(t)}const ln=["m","modifier"];function Lr(e){return oe(e,ln)}const cn=["k","key"];function br(e){const t=oe(e,cn);if(t)return t;throw he(6)}function oe(e,t,n){for(let r=0;rhr(n,e)}function hr(e,t){const n=_r(t);if(n==null)throw he(0);if(gt(n)===1){const a=gr(n);return e.plural(a.reduce((o,u)=>[...o,St(e,u)],[]))}else return St(e,n)}function St(e,t){const n=Er(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const r=pr(t).reduce((l,a)=>[...l,rt(e,a)],[]);return e.normalize(r)}}function rt(e,t){const n=gt(t);switch(n){case 3:return ke(t,n);case 9:return ke(t,n);case 4:{const r=t;if(Q(r,"k")&&r.k)return e.interpolate(e.named(r.k));if(Q(r,"key")&&r.key)return e.interpolate(e.named(r.key));throw he(n)}case 5:{const r=t;if(Q(r,"i")&&K(r.i))return e.interpolate(e.list(r.i));if(Q(r,"index")&&K(r.index))return e.interpolate(e.list(r.index));throw he(n)}case 6:{const r=t,l=Lr(r),a=br(r);return e.linked(rt(e,a),l?rt(e,l):void 0,e.type)}case 7:return ke(t,n);case 8:return ke(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const Nr=e=>e;let Pe=w();function Tr(e,t={}){let n=!1;const r=t.onError||Yn;return t.onError=l=>{n=!0,r(l)},{...dr(e,t),detectError:n}}function Cr(e,t){if(y(e)){$(t.warnHtmlMessage)&&t.warnHtmlMessage;const r=(t.onCacheKey||Nr)(e),l=Pe[r];if(l)return l;const{ast:a,detectError:o}=Tr(e,{...t,location:!1,jit:!0}),u=Ze(a);return o?u:Pe[r]=u}else{const n=e.cacheKey;if(n){const r=Pe[n];return r||(Pe[n]=Ze(e))}else return Ze(e)}}const ae={INVALID_ARGUMENT:Xn,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},Ir=24;function se(e){return Me(e,null,void 0)}function Et(e,t){return t.locale!=null?Ot(t.locale):Ot(e.locale)}let ze;function Ot(e){if(y(e))return e;if(W(e)){if(e.resolvedOnce&&ze!=null)return ze;if(e.constructor.name==="Function"){const t=e();if(jn(t))throw se(ae.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return ze=t}else throw se(ae.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw se(ae.NOT_SUPPORT_LOCALE_TYPE)}function yr(e,t,n){return[...new Set([n,...H(t)?t:D(t)?Object.keys(t):y(t)?[t]:[n]])]}function un(e,t,n){const r=y(n)?n:De,l=e;l.__localeChainCache||(l.__localeChainCache=new Map);let a=l.__localeChainCache.get(r);if(!a){a=[];let o=[n];for(;H(o);)o=kt(a,o,t);const u=H(t)||!R(t)?t:t.default?t.default:null;o=y(u)?[u]:u,H(o)&&kt(a,o,!1),l.__localeChainCache.set(r,a)}return a}function kt(e,t,n){let r=!0;for(let l=0;l{o===void 0?o=u:o+=u},b[1]=()=>{o!==void 0&&(t.push(o),o=void 0)},b[2]=()=>{b[0](),l++},b[3]=()=>{if(l>0)l--,r=4,b[0]();else{if(l=0,o===void 0||(o=Rr(o),o===!1))return!1;b[1]()}};function P(){const A=e[n+1];if(r===5&&A==="'"||r===6&&A==='"')return n++,u="\\"+A,b[0](),!0}for(;r!==null;)if(n++,a=e[n],!(a==="\\"&&P())){if(m=vr(a),T=ie[r],d=T[m]||T.l||8,d===8||(r=d[0],d[1]!==void 0&&(h=b[d[1]],h&&(u=a,h()===!1))))return;if(r===7)return t}}const Pt=new Map;function Fr(e,t){return D(e)?e[t]:null}function Mr(e,t){if(!D(e))return null;let n=Pt.get(t);if(n||(n=Dr(t),n&&Pt.set(t,n)),!n)return null;const r=n.length;let l=e,a=0;for(;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Ur(){return{upper:(e,t)=>t==="text"&&y(e)?e.toUpperCase():t==="vnode"&&D(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&y(e)?e.toLowerCase():t==="vnode"&&D(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&y(e)?vt(e):t==="vnode"&&D(e)&&"__v_isVNode"in e?vt(e.children):e}}let fn;function Wr(e){fn=e}let mn;function $r(e){mn=e}let dn;function Vr(e){dn=e}let _n=null;const Rt=e=>{_n=e},xr=()=>_n;let Dt=0;function jr(e={}){const t=W(e.onWarn)?e.onWarn:Mn,n=y(e.version)?e.version:wr,r=y(e.locale)||W(e.locale)?e.locale:De,l=W(r)?De:r,a=H(e.fallbackLocale)||R(e.fallbackLocale)||y(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:l,o=R(e.messages)?e.messages:et(l),u=R(e.datetimeFormats)?e.datetimeFormats:et(l),m=R(e.numberFormats)?e.numberFormats:et(l),d=Y(w(),e.modifiers,Ur()),h=e.pluralRules||w(),T=W(e.missing)?e.missing:null,b=$(e.missingWarn)||Re(e.missingWarn)?e.missingWarn:!0,P=$(e.fallbackWarn)||Re(e.fallbackWarn)?e.fallbackWarn:!0,A=!!e.fallbackFormat,O=!!e.unresolving,k=W(e.postTranslation)?e.postTranslation:null,i=R(e.processor)?e.processor:null,E=$(e.warnHtmlMessage)?e.warnHtmlMessage:!0,N=!!e.escapeParameter,g=W(e.messageCompiler)?e.messageCompiler:fn,I=W(e.messageResolver)?e.messageResolver:mn||Fr,C=W(e.localeFallbacker)?e.localeFallbacker:dn||yr,L=D(e.fallbackContext)?e.fallbackContext:void 0,V=e,x=D(V.__datetimeFormatters)?V.__datetimeFormatters:new Map,B=D(V.__numberFormatters)?V.__numberFormatters:new Map,Z=D(V.__meta)?V.__meta:{};Dt++;const X={version:n,cid:Dt,locale:r,fallbackLocale:a,messages:o,modifiers:d,pluralRules:h,missing:T,missingWarn:b,fallbackWarn:P,fallbackFormat:A,unresolving:O,postTranslation:k,processor:i,warnHtmlMessage:E,escapeParameter:N,messageCompiler:g,messageResolver:I,localeFallbacker:C,fallbackContext:L,onWarn:t,__meta:Z};return X.datetimeFormats=u,X.numberFormats=m,X.__datetimeFormatters=x,X.__numberFormatters=B,X}const et=e=>({[e]:w()});function pt(e,t,n,r,l){const{missing:a,onWarn:o}=e;if(a!==null){const u=a(e,n,t,l);return y(u)?u:t}else return t}function be(e,t,n){const r=e;r.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function Hr(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Kr(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let r=n+1;r{gn.includes(m)?o[m]=n[m]:a[m]=n[m]}),y(r)?a.locale=r:R(r)&&(o=r),R(l)&&(o=l),[a.key||"",u,a,o]}function Mt(e,t,n){const r=e;for(const l in n){const a=`${t}__${l}`;r.__datetimeFormatters.has(a)&&r.__datetimeFormatters.delete(a)}}function wt(e,...t){const{numberFormats:n,unresolving:r,fallbackLocale:l,onWarn:a,localeFallbacker:o}=e,{__numberFormatters:u}=e,[m,d,h,T]=st(...t),b=$(h.missingWarn)?h.missingWarn:e.missingWarn;$(h.fallbackWarn)?h.fallbackWarn:e.fallbackWarn;const P=!!h.part,A=Et(e,h),O=o(e,l,A);if(!y(m)||m==="")return new Intl.NumberFormat(A,T).format(d);let k={},i,E=null;const N="number format";for(let C=0;C{En.includes(m)?o[m]=n[m]:a[m]=n[m]}),y(r)?a.locale=r:R(r)&&(o=r),R(l)&&(o=l),[a.key||"",u,a,o]}function Ut(e,t,n){const r=e;for(const l in n){const a=`${t}__${l}`;r.__numberFormatters.has(a)&&r.__numberFormatters.delete(a)}}const Xr=e=>e,Yr=e=>"",Gr="text",Br=e=>e.length===0?"":dt(e),Jr=Hn;function Wt(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function Qr(e){const t=K(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(K(e.named.count)||K(e.named.n))?K(e.named.count)?e.named.count:K(e.named.n)?e.named.n:t:t}function qr(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Zr(e={}){const t=e.locale,n=Qr(e),r=D(e.pluralRules)&&y(t)&&W(e.pluralRules[t])?e.pluralRules[t]:Wt,l=D(e.pluralRules)&&y(t)&&W(e.pluralRules[t])?Wt:void 0,a=i=>i[r(n,i.length,l)],o=e.list||[],u=i=>o[i],m=e.named||w();K(e.pluralIndex)&&qr(n,m);const d=i=>m[i];function h(i,E){const N=W(e.messages)?e.messages(i,!!E):D(e.messages)?e.messages[i]:!1;return N||(e.parent?e.parent.message(i):Yr)}const T=i=>e.modifiers?e.modifiers[i]:Xr,b=R(e.processor)&&W(e.processor.normalize)?e.processor.normalize:Br,P=R(e.processor)&&W(e.processor.interpolate)?e.processor.interpolate:Jr,A=R(e.processor)&&y(e.processor.type)?e.processor.type:Gr,k={list:u,named:d,plural:a,linked:(i,...E)=>{const[N,g]=E;let I="text",C="";E.length===1?D(N)?(C=N.modifier||C,I=N.type||I):y(N)&&(C=N||C):E.length===2&&(y(N)&&(C=N||C),y(g)&&(I=g||I));const L=h(i,!0)(k),V=I==="vnode"&&H(L)&&C?L[0]:L;return C?T(C)(V,I):V},message:h,type:A,interpolate:P,normalize:b,values:Y(w(),o,m)};return k}const $t=()=>"",le=e=>W(e);function Vt(e,...t){const{fallbackFormat:n,postTranslation:r,unresolving:l,messageCompiler:a,fallbackLocale:o,messages:u}=e,[m,d]=lt(...t),h=$(d.missingWarn)?d.missingWarn:e.missingWarn,T=$(d.fallbackWarn)?d.fallbackWarn:e.fallbackWarn,b=$(d.escapeParameter)?d.escapeParameter:e.escapeParameter,P=!!d.resolvedMessage,A=y(d.default)||$(d.default)?$(d.default)?a?m:()=>m:d.default:n?a?m:()=>m:null,O=n||A!=null&&(y(A)||W(A)),k=Et(e,d);b&&zr(d);let[i,E,N]=P?[m,k,u[k]||w()]:pn(e,m,k,o,T,h),g=i,I=m;if(!P&&!(y(g)||te(g)||le(g))&&O&&(g=A,I=g),!P&&(!(y(g)||te(g)||le(g))||!y(E)))return l?we:m;let C=!1;const L=()=>{C=!0},V=le(g)?g:Ln(e,m,E,g,I,L);if(C)return g;const x=na(e,E,N,d),B=Zr(x),Z=ea(e,V,B);let X=r?r(Z,m):Z;return b&&y(X)&&(X=Vn(X)),X}function zr(e){H(e.list)?e.list=e.list.map(t=>y(t)?Nt(t):t):D(e.named)&&Object.keys(e.named).forEach(t=>{y(e.named[t])&&(e.named[t]=Nt(e.named[t]))})}function pn(e,t,n,r,l,a){const{messages:o,onWarn:u,messageResolver:m,localeFallbacker:d}=e,h=d(e,r,n);let T=w(),b,P=null;const A="translate";for(let O=0;Or);return d.locale=n,d.key=t,d}const m=o(r,ta(e,n,l,r,u,a));return m.locale=n,m.key=t,m.source=r,m}function ea(e,t,n){return t(n)}function lt(...e){const[t,n,r]=e,l=w();if(!y(t)&&!K(t)&&!le(t)&&!te(t))throw se(ae.INVALID_ARGUMENT);const a=K(t)?String(t):(le(t),t);return K(n)?l.plural=n:y(n)?l.default=n:R(n)&&!Fe(n)?l.named=n:H(n)&&(l.list=n),K(r)?l.plural=r:y(r)?l.default=r:R(r)&&Y(l,r),[a,l]}function ta(e,t,n,r,l,a){return{locale:t,key:n,warnHtmlMessage:l,onError:o=>{throw a&&a(o),o},onCacheKey:o=>wn(t,n,o)}}function na(e,t,n,r){const{modifiers:l,pluralRules:a,messageResolver:o,fallbackLocale:u,fallbackWarn:m,missingWarn:d,fallbackContext:h}=e,b={locale:t,modifiers:l,pluralRules:a,messages:(P,A)=>{let O=o(n,P);if(O==null&&(h||A)){const[,,k]=pn(h||e,P,t,u,m,d);O=o(k,P)}if(y(O)||te(O)){let k=!1;const E=Ln(e,P,t,O,P,()=>{k=!0});return k?$t:E}else return le(O)?O:$t}};return e.processor&&(b.processor=e.processor),r.list&&(b.list=r.list),r.named&&(b.named=r.named),K(r.plural)&&(b.pluralIndex=r.plural),b}const ra="11.2.8",J={UNEXPECTED_RETURN_TYPE:Ir,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32};function q(e,...t){return Me(e,null,void 0)}const ct=ce("__translateVNode"),ot=ce("__datetimeParts"),it=ce("__numberParts"),aa=ce("__setPluralRules"),sa=ce("__injectWithOption"),ut=ce("__dispose");function Ne(e){if(!D(e)||te(e))return e;for(const t in e)if(Q(e,t))if(!t.includes("."))D(e[t])&&Ne(e[t]);else{const n=t.split("."),r=n.length-1;let l=e,a=!1;for(let o=0;o{if("locale"in u&&"resource"in u){const{locale:m,resource:d}=u;m?(o[m]=o[m]||w(),Ae(d,o[m])):Ae(d,o)}else y(u)&&Ae(JSON.parse(u),o)}),l==null&&a)for(const u in o)Q(o,u)&&Ne(o[u]);return o}function la(e){return e.type}function ca(e,t,n){let r=D(t.messages)?t.messages:w();"__i18nGlobal"in n&&(r=bn(e.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const l=Object.keys(r);l.length&&l.forEach(a=>{e.mergeLocaleMessage(a,r[a])});{if(D(t.datetimeFormats)){const a=Object.keys(t.datetimeFormats);a.length&&a.forEach(o=>{e.mergeDateTimeFormat(o,t.datetimeFormats[o])})}if(D(t.numberFormats)){const a=Object.keys(t.numberFormats);a.length&&a.forEach(o=>{e.mergeNumberFormat(o,t.numberFormats[o])})}}}function xt(e){return Dn(Fn,null,e,0)}function hn(){return Pn()}const jt=()=>[],oa=()=>!1;let Ht=0;function Kt(e){return((t,n,r,l)=>e(n,r,hn()||void 0,l))}function Nn(e={}){const{__root:t,__injectWithOption:n}=e,r=t===void 0,l=e.flatJson,a=ve?Sn:On;let o=$(e.inheritLocale)?e.inheritLocale:!0;const u=a(t&&o?t.locale.value:y(e.locale)?e.locale:De),m=a(t&&o?t.fallbackLocale.value:y(e.fallbackLocale)||H(e.fallbackLocale)||R(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:u.value),d=a(bn(u.value,e)),h=a(R(e.datetimeFormats)?e.datetimeFormats:{[u.value]:{}}),T=a(R(e.numberFormats)?e.numberFormats:{[u.value]:{}});let b=t?t.missingWarn:$(e.missingWarn)||Re(e.missingWarn)?e.missingWarn:!0,P=t?t.fallbackWarn:$(e.fallbackWarn)||Re(e.fallbackWarn)?e.fallbackWarn:!0,A=t?t.fallbackRoot:$(e.fallbackRoot)?e.fallbackRoot:!0,O=!!e.fallbackFormat,k=W(e.missing)?e.missing:null,i=W(e.missing)?Kt(e.missing):null,E=W(e.postTranslation)?e.postTranslation:null,N=t?t.warnHtmlMessage:$(e.warnHtmlMessage)?e.warnHtmlMessage:!0,g=!!e.escapeParameter;const I=t?t.modifiers:R(e.modifiers)?e.modifiers:{};let C=e.pluralRules||t&&t.pluralRules,L;L=(()=>{r&&Rt(null);const f={version:ra,locale:u.value,fallbackLocale:m.value,messages:d.value,modifiers:I,pluralRules:C,missing:i===null?void 0:i,missingWarn:b,fallbackWarn:P,fallbackFormat:O,unresolving:!0,postTranslation:E===null?void 0:E,warnHtmlMessage:N,escapeParameter:g,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};f.datetimeFormats=h.value,f.numberFormats=T.value,f.__datetimeFormatters=R(L)?L.__datetimeFormatters:void 0,f.__numberFormatters=R(L)?L.__numberFormatters:void 0;const p=jr(f);return r&&Rt(p),p})(),be(L,u.value,m.value);function x(){return[u.value,m.value,d.value,h.value,T.value]}const B=Le({get:()=>u.value,set:f=>{L.locale=f,u.value=f}}),Z=Le({get:()=>m.value,set:f=>{L.fallbackLocale=f,m.value=f,be(L,u.value,f)}}),X=Le(()=>d.value),Ue=Le(()=>h.value),We=Le(()=>T.value);function $e(){return W(E)?E:null}function Ve(f){E=f,L.postTranslation=f}function xe(){return k}function je(f){f!==null&&(i=Kt(f)),k=f,L.missing=i}const ne=(f,p,M,j,ue,Se)=>{x();let de;try{r||(L.fallbackContext=t?xr():void 0),de=f(L)}finally{r||(L.fallbackContext=void 0)}if(M!=="translate exists"&&K(de)&&de===we||M==="translate exists"&&!de){const[In,Oa]=p();return t&&A?j(t):ue(In)}else{if(Se(de))return de;throw q(J.UNEXPECTED_RETURN_TYPE)}};function Te(...f){return ne(p=>Reflect.apply(Vt,null,[p,...f]),()=>lt(...f),"translate",p=>Reflect.apply(p.t,p,[...f]),p=>p,p=>y(p))}function Ce(...f){const[p,M,j]=f;if(j&&!D(j))throw q(J.INVALID_ARGUMENT);return Te(p,M,Y({resolvedMessage:!0},j||{}))}function He(...f){return ne(p=>Reflect.apply(Ft,null,[p,...f]),()=>at(...f),"datetime format",p=>Reflect.apply(p.d,p,[...f]),()=>At,p=>y(p)||H(p))}function Ke(...f){return ne(p=>Reflect.apply(wt,null,[p,...f]),()=>st(...f),"number format",p=>Reflect.apply(p.n,p,[...f]),()=>At,p=>y(p)||H(p))}function Xe(f){return f.map(p=>y(p)||K(p)||$(p)?xt(String(p)):p)}const Ye={normalize:Xe,interpolate:f=>f,type:"vnode"};function Ge(...f){return ne(p=>{let M;const j=p;try{j.processor=Ye,M=Reflect.apply(Vt,null,[j,...f])}finally{j.processor=null}return M},()=>lt(...f),"translate",p=>p[ct](...f),p=>[xt(p)],p=>H(p))}function Ie(...f){return ne(p=>Reflect.apply(wt,null,[p,...f]),()=>st(...f),"number format",p=>p[it](...f),jt,p=>y(p)||H(p))}function Be(...f){return ne(p=>Reflect.apply(Ft,null,[p,...f]),()=>at(...f),"datetime format",p=>p[ot](...f),jt,p=>y(p)||H(p))}function ye(f){C=f,L.pluralRules=C}function Je(f,p){return ne(()=>{if(!f)return!1;const M=y(p)?p:u.value,j=fe(M),ue=L.messageResolver(j,f);return te(ue)||le(ue)||y(ue)},()=>[f],"translate exists",M=>Reflect.apply(M.te,M,[f,p]),oa,M=>$(M))}function Qe(f){let p=null;const M=un(L,m.value,u.value);for(let j=0;j{o&&(u.value=f,L.locale=f,be(L,u.value,m.value))}),tt(t.fallbackLocale,f=>{o&&(m.value=f,L.fallbackLocale=f,be(L,u.value,m.value))}));const v={id:Ht,locale:B,fallbackLocale:Z,get inheritLocale(){return o},set inheritLocale(f){o=f,f&&t&&(u.value=t.locale.value,m.value=t.fallbackLocale.value,be(L,u.value,m.value))},get availableLocales(){return Object.keys(d.value).sort()},messages:X,get modifiers(){return I},get pluralRules(){return C||{}},get isGlobal(){return r},get missingWarn(){return b},set missingWarn(f){b=f,L.missingWarn=b},get fallbackWarn(){return P},set fallbackWarn(f){P=f,L.fallbackWarn=P},get fallbackRoot(){return A},set fallbackRoot(f){A=f},get fallbackFormat(){return O},set fallbackFormat(f){O=f,L.fallbackFormat=O},get warnHtmlMessage(){return N},set warnHtmlMessage(f){N=f,L.warnHtmlMessage=f},get escapeParameter(){return g},set escapeParameter(f){g=f,L.escapeParameter=f},t:Te,getLocaleMessage:fe,setLocaleMessage:me,mergeLocaleMessage:pe,getPostTranslationHandler:$e,setPostTranslationHandler:Ve,getMissingHandler:xe,setMissingHandler:je,[aa]:ye};return v.datetimeFormats=Ue,v.numberFormats=We,v.rt=Ce,v.te=Je,v.tm=Ee,v.d=He,v.n=Ke,v.getDateTimeFormat=qe,v.setDateTimeFormat=s,v.mergeDateTimeFormat=c,v.getNumberFormat=_,v.setNumberFormat=S,v.mergeNumberFormat=U,v[sa]=n,v[ct]=Ge,v[ot]=Be,v[it]=Ie,v}const Lt={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function ia({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((r,l)=>[...r,...l.type===Zt?l.children:[l]],[]):t.reduce((n,r)=>{const l=e[r];return l&&(n[r]=l()),n},w())}function Tn(){return Zt}const ua=ft({name:"i18n-t",props:Y({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>K(e)||!isNaN(e)}},Lt),setup(e,t){const{slots:n,attrs:r}=t,l=e.i18n||bt({useScope:e.scope,__useComponent:!0});return()=>{const a=Object.keys(n).filter(T=>T[0]!=="_"),o=w();e.locale&&(o.locale=e.locale),e.plural!==void 0&&(o.plural=y(e.plural)?+e.plural:e.plural);const u=ia(t,a),m=l[ct](e.keypath,u,o),d=Y(w(),r),h=y(e.tag)||D(e.tag)?e.tag:Tn();return qt(h,d,m)}}}),Xt=ua;function fa(e){return H(e)&&!y(e[0])}function Cn(e,t,n,r){const{slots:l,attrs:a}=t;return()=>{const o={part:!0};let u=w();e.locale&&(o.locale=e.locale),y(e.format)?o.key=e.format:D(e.format)&&(y(e.format.key)&&(o.key=e.format.key),u=Object.keys(e.format).reduce((b,P)=>n.includes(P)?Y(w(),b,{[P]:e.format[P]}):b,w()));const m=r(e.value,o,u);let d=[o.key];H(m)?d=m.map((b,P)=>{const A=l[b.type],O=A?A({[b.type]:b.value,index:P,parts:m}):[b.value];return fa(O)&&(O[0].key=`${b.type}-${P}`),O}):y(m)&&(d=[m]);const h=Y(w(),a),T=y(e.tag)||D(e.tag)?e.tag:Tn();return qt(T,h,d)}}const ma=ft({name:"i18n-n",props:Y({value:{type:Number,required:!0},format:{type:[String,Object]}},Lt),setup(e,t){const n=e.i18n||bt({useScope:e.scope,__useComponent:!0});return Cn(e,t,En,(...r)=>n[it](...r))}}),Yt=ma;function da(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const r=n.__getInstance(t);return r!=null?r.__composer:e.global.__composer}}function _a(e){const t=o=>{const{instance:u,value:m}=o;if(!u||!u.$)throw q(J.UNEXPECTED_ERROR);const d=da(e,u.$),h=Gt(m);return[Reflect.apply(d.t,d,[...Bt(h)]),d]};return{created:(o,u)=>{const[m,d]=t(u);ve&&e.global===d&&(o.__i18nWatcher=tt(d.locale,()=>{u.instance&&u.instance.$forceUpdate()})),o.__composer=d,o.textContent=m},unmounted:o=>{ve&&o.__i18nWatcher&&(o.__i18nWatcher(),o.__i18nWatcher=void 0,delete o.__i18nWatcher),o.__composer&&(o.__composer=void 0,delete o.__composer)},beforeUpdate:(o,{value:u})=>{if(o.__composer){const m=o.__composer,d=Gt(u);o.textContent=Reflect.apply(m.t,m,[...Bt(d)])}},getSSRProps:o=>{const[u]=t(o);return{textContent:u}}}}function Gt(e){if(y(e))return{path:e};if(R(e)){if(!("path"in e))throw q(J.REQUIRED_VALUE,"path");return e}else throw q(J.INVALID_VALUE)}function Bt(e){const{path:t,locale:n,args:r,choice:l,plural:a}=e,o={},u=r||{};return y(n)&&(o.locale=n),K(l)&&(o.plural=l),K(a)&&(o.plural=a),[t,u,o]}function ga(e,t,...n){const r=R(n[0])?n[0]:{};(!$(r.globalInstall)||r.globalInstall)&&([Xt.name,"I18nT"].forEach(a=>e.component(a,Xt)),[Yt.name,"I18nN"].forEach(a=>e.component(a,Yt)),[Qt.name,"I18nD"].forEach(a=>e.component(a,Qt))),e.directive("t",_a(t))}const Ea=ce("global-vue-i18n");function Pa(e={}){const t=$(e.globalInjection)?e.globalInjection:!0,n=new Map,[r,l]=pa(e),a=ce("");function o(h){return n.get(h)||null}function u(h,T){n.set(h,T)}function m(h){n.delete(h)}const d={get mode(){return"composition"},async install(h,...T){if(h.__VUE_I18N_SYMBOL__=a,h.provide(h.__VUE_I18N_SYMBOL__,d),R(T[0])){const A=T[0];d.__composerExtend=A.__composerExtend,d.__vueI18nExtend=A.__vueI18nExtend}let b=null;t&&(b=ya(h,d.global)),ga(h,d,...T);const P=h.unmount;h.unmount=()=>{b&&b(),d.dispose(),P()}},get global(){return l},dispose(){r.stop()},__instances:n,__getInstance:o,__setInstance:u,__deleteInstance:m};return d}function bt(e={}){const t=hn();if(t==null)throw q(J.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw q(J.NOT_INSTALLED);const n=La(t),r=ha(n),l=la(t),a=ba(e,l);if(a==="global")return ca(r,e,l),r;if(a==="parent"){let m=Na(n,t,e.__useComponent);return m==null&&(m=r),m}const o=n;let u=o.__getInstance(t);if(u==null){const m=Y({},e);"__i18n"in l&&(m.__i18n=l.__i18n),r&&(m.__root=r),u=Nn(m),o.__composerExtend&&(u[ut]=o.__composerExtend(u)),Ca(o,t,u),o.__setInstance(t,u)}return u}function pa(e,t){const n=yn(),r=n.run(()=>Nn(e));if(r==null)throw q(J.UNEXPECTED_ERROR);return[n,r]}function La(e){const t=An(e.isCE?Ea:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw q(e.isCE?J.NOT_INSTALLED_WITH_PROVIDE:J.UNEXPECTED_ERROR);return t}function ba(e,t){return Fe(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function ha(e){return e.mode==="composition"?e.global:e.global.__composer}function Na(e,t,n=!1){let r=null;const l=t.root;let a=Ta(t,n);for(;a!=null;){const o=e;if(e.mode==="composition"&&(r=o.__getInstance(a)),r!=null||l===a)break;a=a.parent}return r}function Ta(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function Ca(e,t,n){vn(()=>{},t),Rn(()=>{const r=n;e.__deleteInstance(t);const l=r[ut];l&&(l(),delete r[ut])},t)}const Ia=["locale","fallbackLocale","availableLocales"],Jt=["t","rt","d","n","tm","te"];function ya(e,t){const n=Object.create(null);return Ia.forEach(l=>{const a=Object.getOwnPropertyDescriptor(t,l);if(!a)throw q(J.UNEXPECTED_ERROR);const o=kn(a.value)?{get(){return a.value.value},set(u){a.value.value=u}}:{get(){return a.get&&a.get()}};Object.defineProperty(n,l,o)}),e.config.globalProperties.$i18n=n,Jt.forEach(l=>{const a=Object.getOwnPropertyDescriptor(t,l);if(!a||!a.value)throw q(J.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${l}`,a)}),()=>{delete e.config.globalProperties.$i18n,Jt.forEach(l=>{delete e.config.globalProperties[`$${l}`]})}}const Sa=ft({name:"i18n-d",props:Y({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Lt),setup(e,t){const n=e.i18n||bt({useScope:e.scope,__useComponent:!0});return Cn(e,t,gn,(...r)=>n[ot](...r))}}),Qt=Sa;Wr(Cr);$r(Mr);Vr(un);export{Pa as c,bt as u}; diff --git a/app/dist/spa/favicon.ico b/app/dist/spa/favicon.ico new file mode 100644 index 0000000..ae7bbdb Binary files /dev/null and b/app/dist/spa/favicon.ico differ diff --git a/app/dist/spa/icons/favicon-128x128.png b/app/dist/spa/icons/favicon-128x128.png new file mode 100644 index 0000000..1401176 Binary files /dev/null and b/app/dist/spa/icons/favicon-128x128.png differ diff --git a/app/dist/spa/icons/favicon-16x16.png b/app/dist/spa/icons/favicon-16x16.png new file mode 100644 index 0000000..679063a Binary files /dev/null and b/app/dist/spa/icons/favicon-16x16.png differ diff --git a/app/dist/spa/icons/favicon-32x32.png b/app/dist/spa/icons/favicon-32x32.png new file mode 100644 index 0000000..fd1fbc6 Binary files /dev/null and b/app/dist/spa/icons/favicon-32x32.png differ diff --git a/app/dist/spa/icons/favicon-96x96.png b/app/dist/spa/icons/favicon-96x96.png new file mode 100644 index 0000000..e93b80a Binary files /dev/null and b/app/dist/spa/icons/favicon-96x96.png differ diff --git a/app/dist/spa/index.html b/app/dist/spa/index.html new file mode 100644 index 0000000..4aae2f2 --- /dev/null +++ b/app/dist/spa/index.html @@ -0,0 +1,3 @@ +dichiarazione fiscale + +
\ No newline at end of file diff --git a/app/docs/.DS_Store b/app/docs/.DS_Store new file mode 100644 index 0000000..58971f7 Binary files /dev/null and b/app/docs/.DS_Store differ diff --git a/app/docs/Manuale_Utente.md b/app/docs/Manuale_Utente.md new file mode 100644 index 0000000..80af0da --- /dev/null +++ b/app/docs/Manuale_Utente.md @@ -0,0 +1,72 @@ +# Manuale utente (BRUNO – Frontend) + +## Panoramica +Questa applicazione guida l’utente nella compilazione di un questionario a step (passi). Ogni step raccoglie dati e, dove previsto, permette di allegare documenti. + +## Navigazione +- Nel menu laterale sinistro trovi la lista degli step. +- In alto a destra (negli step che lo prevedono) trovi i pulsanti **Indietro** / **Avanti** per muoverti nel flusso. +- Alcuni step non hanno ancora una schermata dedicata: in quel caso viene mostrato un contenuto “placeholder”. + +## Validazione dei campi +- I campi obbligatori vengono validati tramite il pulsante **Avanti**. +- Se un campo è obbligatorio e mancante, viene mostrato un messaggio di errore. + +## Allegati (componenti “CommentAttachment”) +In alcune sezioni puoi inserire: +- un campo **Commenti** +- una lista di **Allegati** + +Funzionalità disponibili: +- Selezione file tramite pulsante (picker). +- Upload con **barra di progresso**. +- Possibilità di **annullare** l’upload in corso. +- Lista degli allegati già caricati. +- Eliminazione di un allegato con **conferma**. + +Formati file ammessi: +- `.pdf`, `.docx`, `.txt`, `.md` + +Nota: gli allegati vengono associati a una “sessione” (lo step/contesto in cui stai caricando) e a un identificativo utente interno. + +## Step disponibili + +### 1) Benvenuto +- Mostra un’introduzione e consente di proseguire allo step successivo. + +### 2) Dati contribuente e dichiarazione precedente +- Toggle: **Preparata da noi?** +- Sezione **Dichiarazione precedente** (allegati + commenti) quando disponibile. +- Dati anagrafici del contribuente: + - Nome, Cognome, Data di nascita + - Indirizzo (tramite editor indirizzo) + +### 3) Stato civile +- Selezione stato civile. +- Campi relativi al coniuge/partner quando applicabili. +- Gestione indirizzo del coniuge/partner tramite editor indirizzo. + +### 4) Figli +- Toggle: **Hai figli?** +- Gestione lista figli (massimo 5): + - Aggiunta/modifica tramite finestra (dialog) + - Eliminazione dalla lista +- Dati figlio: + - Nome, Cognome, Data di nascita + - Toggle **Stesso nucleo familiare** + - Se NON nello stesso nucleo: possibilità di indicare alimenti e inserire un indirizzo dedicato + - Campo **Scuola** + - Toggle **Spese di cura**: se attivo, si sblocca la sezione allegati/commenti per le spese di cura +- Pulsante rapido (icona) per **copiare il cognome** dal contribuente nel dialog del figlio. +- Se raggiungi 5 figli, compare una nota testuale per indicare “più di cinque figli”. + +## Salvataggio dati +I dati inseriti vengono mantenuti localmente (persistenza) per evitare perdite durante la compilazione. + +## Risoluzione problemi +- **Non riesco a caricare allegati**: verifica che il server di upload sia attivo e raggiungibile (es. ambiente locale). Se l’upload resta bloccato, annulla e riprova. +- **Messaggi di validazione**: completa i campi richiesti e riprova con **Avanti**. + +--- + +Se vuoi, posso anche generare una versione “stampabile” (più sintetica, 1–2 pagine) oppure una versione “operatore” con esempi di documenti da allegare per ogni step. diff --git a/app/docs/Manuale_Utente.pdf b/app/docs/Manuale_Utente.pdf new file mode 100644 index 0000000..bc6e2ba Binary files /dev/null and b/app/docs/Manuale_Utente.pdf differ diff --git a/app/docs/reports/2026-01-11.md b/app/docs/reports/2026-01-11.md new file mode 100644 index 0000000..cbfcc9d --- /dev/null +++ b/app/docs/reports/2026-01-11.md @@ -0,0 +1,43 @@ +# Report — 2026-01-11 + +Breve riepilogo delle modifiche svolte ieri: + +- Dati e lookup + - Importato dataset CAP Svizzera in `src/data/countryCodes.ts` e esposti helper: `findPostalCodes`, `findPostalCodeDetails`, `ALL_CH_POSTAL_CODES`. + +- Componenti e UX indirizzi + - Ripristinato e rifattorizzato `src/components/AddressModal.vue` (SFC pulita). + - Aggiunta prop `allowForeign?: boolean` (default true); quando `allowForeign === false` il toggle `foreign` è nascosto e forzato a `false`. + - ZIP input sanitizzato (solo cifre, maxlength 4); con 4 cifre per CAP CH la città viene autocompletata. + - `ChildrenStep` ora salva oggetti `address?: Address | null` (non più la stringa composta); `formatAddressForString` usato solo per rendering. + - `TaxpayerStep` e `MaritalStep` integrati con `AddressModal` (in `TaxpayerStep` `:allowForeign="false"`). + +- Store e tipi + - `src/types/schema.ts`: estesi `MaritalData` con `spousePreviousDivorces` e `spouseAlimentiVersati`. + - `src/stores/taxstore.ts`: aggiornato `defaultMarital` per includere i nuovi campi a `false`. + - `src/stores/children.ts`: persistenza aggiornata per `alimentiVersati` (se applicabile). + +- UI e layout + - Spostati i pulsanti `Prev`/`Next` sulla stessa riga del titolo in tutti gli step (`src/components/steps/*`): titolo in `div.col`, bottoni in `div.col-auto` dentro `div.row`. + - Aggiunti `q-separator` dopo i titoli. + - In `ChildrenStep` spostato anche il layout del modal (titolo + bottoni coerenti). + +- Campi e regole specifiche + - `ChildrenStep` modal: aggiunta toggle `alimentiVersati` (visibile solo se `sameHousehold === false`), e messaggio di validazione `validation.insertAddress` se manca l'indirizzo. + - `MaritalStep`: sostituiti campi `spouse.address/zip/city` con `AddressModal`; aggiunti toggle `spouse.previousDivorces` e `spouse.alimentiVersati` e persistenza nel payload. + +- i18n + - Aggiunte traduzioni: `enum.maritalStatus.SEPARATED`, `marital.previousDivorces`, `marital.spouse.previousDivorces`, e `validation.insertAddress` in `it-IT`, `en-US`, `de-DE`, `fr-FR`. + +- Pulizia e correzioni + - Risolti errori TypeScript/ESLint derivanti da SFC corrotta; rimossi helper inutilizzati e sistemati cast e tipi. + - Linter e `vue-tsc` eseguiti più volte; stato attuale: lint e type-check OK (solo avviso deprecazione `.eslintignore`). + +Note e prossimi passi suggeriti + +- Valutare se persistere l'`Address` strutturato anche per il `Taxpayer` (ora usa campi piatti `address/zip/city`). +- Commit e review dei cambi (ci sono molte modifiche locali non ancora committate?). +- QA manuale in browser per verificare: modal indirizzo, autocompletamento CAP CH, visualizzazione dei messaggi di validazione e comportamento dei toggle `allowForeign`. + +--- +Generato automaticamente dal worklog in repo. Se vuoi, aggiorno anche il `CHANGELOG.md` o aggiungo il report in un formato diverso. diff --git a/app/eslint.config.js b/app/eslint.config.js new file mode 100644 index 0000000..8515d73 --- /dev/null +++ b/app/eslint.config.js @@ -0,0 +1,83 @@ +import js from '@eslint/js'; +import globals from 'globals'; +import pluginVue from 'eslint-plugin-vue'; +import pluginQuasar from '@quasar/app-vite/eslint'; +import { defineConfigWithVueTs, vueTsConfigs } from '@vue/eslint-config-typescript'; +import prettierSkipFormatting from '@vue/eslint-config-prettier/skip-formatting'; + +export default defineConfigWithVueTs( + { + /** + * Ignore the following files. + * Please note that pluginQuasar.configs.recommended() already ignores + * the "node_modules" folder for you (and all other Quasar project + * relevant folders and files). + * + * ESLint requires "ignores" key to be the only one in this object + */ + // ignores: [] + }, + + pluginQuasar.configs.recommended(), + js.configs.recommended, + + /** + * https://eslint.vuejs.org + * + * pluginVue.configs.base + * -> Settings and rules to enable correct ESLint parsing. + * pluginVue.configs[ 'flat/essential'] + * -> base, plus rules to prevent errors or unintended behavior. + * pluginVue.configs["flat/strongly-recommended"] + * -> Above, plus rules to considerably improve code readability and/or dev experience. + * pluginVue.configs["flat/recommended"] + * -> Above, plus rules to enforce subjective community defaults to ensure consistency. + */ + pluginVue.configs['flat/essential'], + + { + files: ['**/*.ts', '**/*.vue'], + rules: { + '@typescript-eslint/consistent-type-imports': ['error', { prefer: 'type-imports' }], + }, + }, + // https://github.com/vuejs/eslint-config-typescript + vueTsConfigs.recommendedTypeChecked, + + { + languageOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + + globals: { + ...globals.browser, + ...globals.node, // SSR, Electron, config files + process: 'readonly', // process.env.* + ga: 'readonly', // Google Analytics + cordova: 'readonly', + Capacitor: 'readonly', + chrome: 'readonly', // BEX related + browser: 'readonly', // BEX related + }, + }, + + // add your custom rules here + rules: { + 'prefer-promise-reject-errors': 'off', + + // allow debugger during development only + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', + }, + }, + + { + files: ['src-pwa/custom-service-worker.ts'], + languageOptions: { + globals: { + ...globals.serviceworker, + }, + }, + }, + + prettierSkipFormatting, +); diff --git a/app/index.html b/app/index.html new file mode 100644 index 0000000..3086f04 --- /dev/null +++ b/app/index.html @@ -0,0 +1,24 @@ + + + + <%= productName %> + + + + + + + + + + + + + + + + + diff --git a/app/package.json b/app/package.json new file mode 100644 index 0000000..5d1a319 --- /dev/null +++ b/app/package.json @@ -0,0 +1,49 @@ +{ + "name": "app", + "version": "0.0.1", + "description": "Dichiarazione fiscale automatizzata", + "productName": "dichiarazione fiscale", + "author": "Fabio Prada ", + "type": "module", + "private": true, + "scripts": { + "lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"", + "format": "prettier --write \"**/*.{js,ts,vue,scss,html,md,json}\" --ignore-path .gitignore", + "test": "echo \"No test specified\" && exit 0", + "dev": "quasar dev", + "build": "quasar build", + "tsc": "vue-tsc --noEmit", + "docs:pdf": "pnpm -s dlx md-to-pdf ./docs/Manuale_Utente.md --launch-options '{\"executablePath\":\"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome\"}'", + "postinstall": "quasar prepare" + }, + "dependencies": { + "vue-i18n": "^11.0.0", + "pinia": "^3.0.1", + "@quasar/extras": "^1.16.4", + "quasar": "^2.16.0", + "vue": "^3.5.22", + "vue-router": "^4.0.12" + }, + "devDependencies": { + "@eslint/js": "^9.14.0", + "eslint": "^9.14.0", + "eslint-plugin-vue": "^10.4.0", + "globals": "^16.4.0", + "vue-tsc": "^3.0.7", + "@vue/eslint-config-typescript": "^14.4.0", + "vite-plugin-checker": "^0.11.0", + "vue-eslint-parser": "^10.2.0", + "@vue/eslint-config-prettier": "^10.1.0", + "prettier": "^3.3.3", + "@types/node": "^20.5.9", + "@intlify/unplugin-vue-i18n": "^4.0.0", + "@quasar/app-vite": "^2.1.0", + "autoprefixer": "^10.4.2", + "typescript": "^5.9.2" + }, + "engines": { + "node": "^28 || ^26 || ^24 || ^22 || ^20", + "npm": ">= 6.13.4", + "yarn": ">= 1.21.1" + } +} diff --git a/app/pnpm-lock.yaml b/app/pnpm-lock.yaml new file mode 100644 index 0000000..2466665 --- /dev/null +++ b/app/pnpm-lock.yaml @@ -0,0 +1,5520 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@quasar/extras': + specifier: ^1.16.4 + version: 1.17.0 + pinia: + specifier: ^3.0.1 + version: 3.0.4(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)) + quasar: + specifier: ^2.16.0 + version: 2.18.6 + vue: + specifier: ^3.5.22 + version: 3.5.26(typescript@5.9.3) + vue-i18n: + specifier: ^11.0.0 + version: 11.2.8(vue@3.5.26(typescript@5.9.3)) + vue-router: + specifier: ^4.0.12 + version: 4.6.4(vue@3.5.26(typescript@5.9.3)) + devDependencies: + '@eslint/js': + specifier: ^9.14.0 + version: 9.39.2 + '@intlify/unplugin-vue-i18n': + specifier: ^4.0.0 + version: 4.0.0(rollup@4.55.1)(vue-i18n@11.2.8(vue@3.5.26(typescript@5.9.3))) + '@quasar/app-vite': + specifier: ^2.1.0 + version: 2.4.0(@types/node@20.19.27)(eslint@9.39.2)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)))(quasar@2.18.6)(rollup@4.55.1)(sass@1.97.2)(terser@5.44.1)(typescript@5.9.3)(vue-router@4.6.4(vue@3.5.26(typescript@5.9.3)))(vue@3.5.26(typescript@5.9.3))(yaml@2.8.2) + '@types/node': + specifier: ^20.5.9 + version: 20.19.27 + '@vue/eslint-config-prettier': + specifier: ^10.1.0 + version: 10.2.0(eslint@9.39.2)(prettier@3.7.4) + '@vue/eslint-config-typescript': + specifier: ^14.4.0 + version: 14.6.0(eslint-plugin-vue@10.6.2(@typescript-eslint/parser@8.52.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(vue-eslint-parser@10.2.0(eslint@9.39.2)))(eslint@9.39.2)(typescript@5.9.3) + autoprefixer: + specifier: ^10.4.2 + version: 10.4.23(postcss@8.5.6) + eslint: + specifier: ^9.14.0 + version: 9.39.2 + eslint-plugin-vue: + specifier: ^10.4.0 + version: 10.6.2(@typescript-eslint/parser@8.52.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(vue-eslint-parser@10.2.0(eslint@9.39.2)) + globals: + specifier: ^16.4.0 + version: 16.5.0 + prettier: + specifier: ^3.3.3 + version: 3.7.4 + typescript: + specifier: ^5.9.2 + version: 5.9.3 + vite-plugin-checker: + specifier: ^0.11.0 + version: 0.11.0(eslint@9.39.2)(optionator@0.9.4)(typescript@5.9.3)(vite@7.3.1(@types/node@20.19.27)(sass-embedded@1.97.2)(sass@1.97.2)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@3.2.2(typescript@5.9.3)) + vue-eslint-parser: + specifier: ^10.2.0 + version: 10.2.0(eslint@9.39.2) + vue-tsc: + specifier: ^3.0.7 + version: 3.2.2(typescript@5.9.3) + +packages: + + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.28.5': + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/types@7.28.5': + resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + engines: {node: '>=6.9.0'} + + '@bufbuild/protobuf@2.10.2': + resolution: {integrity: sha512-uFsRXwIGyu+r6AMdz+XijIIZJYpoWeYzILt5yZ2d3mCjQrWUTVpVD9WL/jZAbvp+Ed04rOhrsk7FiTcEDseB5A==} + + '@esbuild/aix-ppc64@0.25.12': + resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.27.2': + resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.25.12': + resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.27.2': + resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.25.12': + resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.27.2': + resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.25.12': + resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.27.2': + resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.25.12': + resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.27.2': + resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.25.12': + resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.2': + resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.25.12': + resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.27.2': + resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.25.12': + resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.27.2': + resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.25.12': + resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.27.2': + resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.25.12': + resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.27.2': + resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.25.12': + resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.27.2': + resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.25.12': + resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.27.2': + resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.25.12': + resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.27.2': + resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.25.12': + resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.27.2': + resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.25.12': + resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.27.2': + resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.25.12': + resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.27.2': + resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.25.12': + resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.27.2': + resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.12': + resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-arm64@0.27.2': + resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.12': + resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.27.2': + resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.25.12': + resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-arm64@0.27.2': + resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.25.12': + resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.2': + resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.25.12': + resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/openharmony-arm64@0.27.2': + resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.25.12': + resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.27.2': + resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.25.12': + resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.27.2': + resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.25.12': + resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.27.2': + resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.25.12': + resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.27.2': + resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.21.1': + resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.3': + resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.39.2': + resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + + '@inquirer/external-editor@1.0.3': + resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/figures@1.0.15': + resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} + engines: {node: '>=18'} + + '@intlify/bundle-utils@8.0.0': + resolution: {integrity: sha512-1B++zykRnMwQ+20SpsZI1JCnV/YJt9Oq7AGlEurzkWJOFtFAVqaGc/oV36PBRYeiKnTbY9VYfjBimr2Vt42wLQ==} + engines: {node: '>= 14.16'} + peerDependencies: + petite-vue-i18n: '*' + vue-i18n: '*' + peerDependenciesMeta: + petite-vue-i18n: + optional: true + vue-i18n: + optional: true + + '@intlify/core-base@11.2.8': + resolution: {integrity: sha512-nBq6Y1tVkjIUsLsdOjDSJj4AsjvD0UG3zsg9Fyc+OivwlA/oMHSKooUy9tpKj0HqZ+NWFifweHavdljlBLTwdA==} + engines: {node: '>= 16'} + + '@intlify/message-compiler@11.2.8': + resolution: {integrity: sha512-A5n33doOjmHsBtCN421386cG1tWp5rpOjOYPNsnpjIJbQ4POF0QY2ezhZR9kr0boKwaHjbOifvyQvHj2UTrDFQ==} + engines: {node: '>= 16'} + + '@intlify/message-compiler@9.14.5': + resolution: {integrity: sha512-IHzgEu61/YIpQV5Pc3aRWScDcnFKWvQA9kigcINcCBXN8mbW+vk9SK+lDxA6STzKQsVJxUPg9ACC52pKKo3SVQ==} + engines: {node: '>= 16'} + + '@intlify/shared@11.2.8': + resolution: {integrity: sha512-l6e4NZyUgv8VyXXH4DbuucFOBmxLF56C/mqh2tvApbzl2Hrhi1aTDcuv5TKdxzfHYmpO3UB0Cz04fgDT9vszfw==} + engines: {node: '>= 16'} + + '@intlify/shared@9.14.5': + resolution: {integrity: sha512-9gB+E53BYuAEMhbCAxVgG38EZrk59sxBtv3jSizNL2hEWlgjBjAw1AwpLHtNaeda12pe6W20OGEa0TwuMSRbyQ==} + engines: {node: '>= 16'} + + '@intlify/unplugin-vue-i18n@4.0.0': + resolution: {integrity: sha512-q2Mhqa/mLi0tulfLFO4fMXXvEbkSZpI5yGhNNsLTNJJ41icEGUuyDe+j5zRZIKSkOJRgX6YbCyibTDJdRsukmw==} + engines: {node: '>= 14.16'} + peerDependencies: + petite-vue-i18n: '*' + vue-i18n: '*' + vue-i18n-bridge: '*' + peerDependenciesMeta: + petite-vue-i18n: + optional: true + vue-i18n: + optional: true + vue-i18n-bridge: + optional: true + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@parcel/watcher-android-arm64@2.5.1': + resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.5.1': + resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.5.1': + resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.5.1': + resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.5.1': + resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm-musl@2.5.1': + resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.5.1': + resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.5.1': + resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.5.1': + resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-win32-arm64@2.5.1': + resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.5.1': + resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.5.1': + resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.5.1': + resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} + engines: {node: '>= 10.0.0'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pkgr/core@0.2.9': + resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@quasar/app-vite@2.4.0': + resolution: {integrity: sha512-nfdcfERQ1bdUFsgXfYexgUAGBrsRHuzlik5p58cKGpYXiwUZZN6mJhN8VxU/zGT0GYHHiNIZlb67N+R52NYd6Q==} + engines: {node: ^30 || ^28 || ^26 || ^24 || ^22 || ^20, npm: '>= 6.14.12', yarn: '>= 1.17.3'} + hasBin: true + peerDependencies: + '@electron/packager': '>= 18' + electron-builder: '>= 22' + eslint: '*' + pinia: ^2.0.0 || ^3.0.0 + quasar: ^2.16.0 + typescript: '>= 5.4' + vue: ^3.2.29 + vue-router: ^4.0.12 + workbox-build: '>= 6' + peerDependenciesMeta: + '@electron/packager': + optional: true + electron-builder: + optional: true + eslint: + optional: true + pinia: + optional: true + typescript: + optional: true + workbox-build: + optional: true + + '@quasar/extras@1.17.0': + resolution: {integrity: sha512-KqAHdSJfIDauiR1nJ8rqHWT0diqD0QradZKoVIZJAilHAvgwyPIY7MbyR2z4RIMkUIMUSqBZcbshMpEw+9A30w==} + + '@quasar/render-ssr-error@1.0.3': + resolution: {integrity: sha512-A8RF99q6/sOSe1Ighnh5syEIbliD3qUYEJd2HyfFyBPSMF+WYGXon5dmzg4nUoK662NgOggInevkDyBDJcZugg==} + engines: {node: '>= 16'} + + '@quasar/ssl-certificate@1.0.0': + resolution: {integrity: sha512-RhZF7rO76T7Ywer1/5lCe7xl3CIiXxSAH1xgwOj0wcHTityDxJqIN/5YIj6BxMvlFw8XkJDoB1udEQafoVFA4g==} + engines: {node: '>= 16'} + + '@quasar/vite-plugin@1.10.0': + resolution: {integrity: sha512-4PJoTclz4ZjAfyqe0+hlkKcFJt0e2NX3Ac3hy8ILqUPdtZ24nCo5/xEHvTxZGBQMKRPwwePbO8CVs4n9EKJEug==} + engines: {node: '>=20'} + peerDependencies: + '@vitejs/plugin-vue': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + quasar: ^2.16.0 + vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + vue: ^3.0.0 + + '@rolldown/pluginutils@1.0.0-beta.53': + resolution: {integrity: sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==} + + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.55.1': + resolution: {integrity: sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.55.1': + resolution: {integrity: sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.55.1': + resolution: {integrity: sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.55.1': + resolution: {integrity: sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.55.1': + resolution: {integrity: sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.55.1': + resolution: {integrity: sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.55.1': + resolution: {integrity: sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.55.1': + resolution: {integrity: sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.55.1': + resolution: {integrity: sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.55.1': + resolution: {integrity: sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loong64-gnu@4.55.1': + resolution: {integrity: sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-loong64-musl@4.55.1': + resolution: {integrity: sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.55.1': + resolution: {integrity: sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-ppc64-musl@4.55.1': + resolution: {integrity: sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.55.1': + resolution: {integrity: sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.55.1': + resolution: {integrity: sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.55.1': + resolution: {integrity: sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.55.1': + resolution: {integrity: sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.55.1': + resolution: {integrity: sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-openbsd-x64@4.55.1': + resolution: {integrity: sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.55.1': + resolution: {integrity: sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.55.1': + resolution: {integrity: sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.55.1': + resolution: {integrity: sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.55.1': + resolution: {integrity: sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.55.1': + resolution: {integrity: sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==} + cpu: [x64] + os: [win32] + + '@types/body-parser@1.19.6': + resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} + + '@types/chrome@0.0.262': + resolution: {integrity: sha512-TOoj3dqSYE13PD2fRuMQ6X6pggEvL9rRk/yOYOyWE6sfqRWxsJm4VoVm+wr9pkr4Sht/M5t7FFL4vXato8d1gA==} + + '@types/compression@1.8.1': + resolution: {integrity: sha512-kCFuWS0ebDbmxs0AXYn6e2r2nrGAb5KwQhknjSPSPgJcGd8+HVSILlUyFhGqML2gk39HcG7D1ydW9/qpYkN00Q==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/cordova@11.0.3': + resolution: {integrity: sha512-kyuRQ40/NWQVhqGIHq78Ehu2Bf9Mlg0LhmSmis6ZFJK7z933FRfYi8tHe/k/0fB+PGfCf95rJC6TO7dopaFvAg==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/express-serve-static-core@4.19.7': + resolution: {integrity: sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==} + + '@types/express@4.17.25': + resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} + + '@types/filesystem@0.0.36': + resolution: {integrity: sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==} + + '@types/filewriter@0.0.33': + resolution: {integrity: sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==} + + '@types/har-format@1.2.16': + resolution: {integrity: sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==} + + '@types/http-errors@2.0.5': + resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + + '@types/node-forge@1.3.14': + resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} + + '@types/node@20.19.27': + resolution: {integrity: sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==} + + '@types/qs@6.14.0': + resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/send@0.17.6': + resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==} + + '@types/send@1.2.1': + resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} + + '@types/serve-static@1.15.10': + resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==} + + '@typescript-eslint/eslint-plugin@8.52.0': + resolution: {integrity: sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.52.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/parser@8.52.0': + resolution: {integrity: sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/project-service@8.52.0': + resolution: {integrity: sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/scope-manager@8.52.0': + resolution: {integrity: sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.52.0': + resolution: {integrity: sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/type-utils@8.52.0': + resolution: {integrity: sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/types@8.52.0': + resolution: {integrity: sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.52.0': + resolution: {integrity: sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/utils@8.52.0': + resolution: {integrity: sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/visitor-keys@8.52.0': + resolution: {integrity: sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@vitejs/plugin-vue@6.0.3': + resolution: {integrity: sha512-TlGPkLFLVOY3T7fZrwdvKpjprR3s4fxRln0ORDo1VQ7HHyxJwTlrjKU3kpVWTlaAjIEuCTokmjkZnr8Tpc925w==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + vue: ^3.2.25 + + '@volar/language-core@2.4.27': + resolution: {integrity: sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ==} + + '@volar/source-map@2.4.27': + resolution: {integrity: sha512-ynlcBReMgOZj2i6po+qVswtDUeeBRCTgDurjMGShbm8WYZgJ0PA4RmtebBJ0BCYol1qPv3GQF6jK7C9qoVc7lg==} + + '@volar/typescript@2.4.27': + resolution: {integrity: sha512-eWaYCcl/uAPInSK2Lze6IqVWaBu/itVqR5InXcHXFyles4zO++Mglt3oxdgj75BDcv1Knr9Y93nowS8U3wqhxg==} + + '@vue/compiler-core@3.5.26': + resolution: {integrity: sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==} + + '@vue/compiler-dom@3.5.26': + resolution: {integrity: sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==} + + '@vue/compiler-sfc@3.5.26': + resolution: {integrity: sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==} + + '@vue/compiler-ssr@3.5.26': + resolution: {integrity: sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==} + + '@vue/devtools-api@6.6.4': + resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} + + '@vue/devtools-api@7.7.9': + resolution: {integrity: sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==} + + '@vue/devtools-kit@7.7.9': + resolution: {integrity: sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==} + + '@vue/devtools-shared@7.7.9': + resolution: {integrity: sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==} + + '@vue/eslint-config-prettier@10.2.0': + resolution: {integrity: sha512-GL3YBLwv/+b86yHcNNfPJxOTtVFJ4Mbc9UU3zR+KVoG7SwGTjPT+32fXamscNumElhcpXW3mT0DgzS9w32S7Bw==} + peerDependencies: + eslint: '>= 8.21.0' + prettier: '>= 3.0.0' + + '@vue/eslint-config-typescript@14.6.0': + resolution: {integrity: sha512-UpiRY/7go4Yps4mYCjkvlIbVWmn9YvPGQDxTAlcKLphyaD77LjIu3plH4Y9zNT0GB4f3K5tMmhhtRhPOgrQ/bQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^9.10.0 + eslint-plugin-vue: ^9.28.0 || ^10.0.0 + typescript: '>=4.8.4' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/language-core@3.2.2': + resolution: {integrity: sha512-5DAuhxsxBN9kbriklh3Q5AMaJhyOCNiQJvCskN9/30XOpdLiqZU9Q+WvjArP17ubdGEyZtBzlIeG5nIjEbNOrQ==} + + '@vue/reactivity@3.5.26': + resolution: {integrity: sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==} + + '@vue/runtime-core@3.5.26': + resolution: {integrity: sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==} + + '@vue/runtime-dom@3.5.26': + resolution: {integrity: sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==} + + '@vue/server-renderer@3.5.26': + resolution: {integrity: sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA==} + peerDependencies: + vue: 3.5.26 + + '@vue/shared@3.5.26': + resolution: {integrity: sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A==} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + alien-signals@3.1.2: + resolution: {integrity: sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw==} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + archiver-utils@5.0.2: + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} + engines: {node: '>= 14'} + + archiver@7.0.1: + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} + engines: {node: '>= 14'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + autoprefixer@10.4.23: + resolution: {integrity: sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + b4a@1.7.3: + resolution: {integrity: sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==} + peerDependencies: + react-native-b4a: '*' + peerDependenciesMeta: + react-native-b4a: + optional: true + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + bare-events@2.8.2: + resolution: {integrity: sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==} + peerDependencies: + bare-abort-controller: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + baseline-browser-mapping@2.9.11: + resolution: {integrity: sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==} + hasBin: true + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + birpc@2.9.0: + resolution: {integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + body-parser@1.20.4: + resolution: {integrity: sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-builder@0.2.0: + resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==} + + buffer-crc32@1.0.0: + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} + engines: {node: '>=8.0.0'} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + + caniuse-lite@1.0.30001762: + resolution: {integrity: sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chardet@2.1.1: + resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + ci-info@4.3.1: + resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} + engines: {node: '>=8'} + + clean-css@5.3.3: + resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} + engines: {node: '>= 10.0'} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + colorjs.io@0.5.2: + resolution: {integrity: sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + compress-commons@6.0.2: + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} + engines: {node: '>= 14'} + + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + + compression@1.8.1: + resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==} + engines: {node: '>= 0.8.0'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + cookie-signature@1.0.7: + resolution: {integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + + copy-anything@4.0.5: + resolution: {integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==} + engines: {node: '>=18'} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + crc32-stream@6.0.0: + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} + engines: {node: '>= 14'} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + default-browser-id@5.0.1: + resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} + engines: {node: '>=18'} + + default-browser@5.4.0: + resolution: {integrity: sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==} + engines: {node: '>=18'} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + + dot-prop@9.0.0: + resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} + engines: {node: '>=18'} + + dotenv-expand@11.0.7: + resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} + engines: {node: '>=12'} + + dotenv@16.6.1: + resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} + engines: {node: '>=12'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + electron-to-chromium@1.5.267: + resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} + + elementtree@0.1.7: + resolution: {integrity: sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg==} + engines: {node: '>= 0.4.0'} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + entities@7.0.0: + resolution: {integrity: sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==} + engines: {node: '>=0.12'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + esbuild@0.25.12: + resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} + engines: {node: '>=18'} + hasBin: true + + esbuild@0.27.2: + resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + + eslint-config-prettier@10.1.8: + resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-prettier@5.5.4: + resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + + eslint-plugin-vue@10.6.2: + resolution: {integrity: sha512-nA5yUs/B1KmKzvC42fyD0+l9Yd+LtEpVhWRbXuDj0e+ZURcTtyRbMDWUeJmTAh2wC6jC83raS63anNM2YT3NPw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@stylistic/eslint-plugin': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + '@typescript-eslint/parser': ^7.0.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 + vue-eslint-parser: ^10.0.0 + peerDependenciesMeta: + '@stylistic/eslint-plugin': + optional: true + '@typescript-eslint/parser': + optional: true + + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.39.2: + resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + events-universal@1.0.1: + resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + express@4.22.1: + resolution: {integrity: sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==} + engines: {node: '>= 0.10.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@1.3.2: + resolution: {integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==} + engines: {node: '>= 0.8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fraction.js@5.3.4: + resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs-extra@11.3.3: + resolution: {integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==} + engines: {node: '>=14.14'} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + hasBin: true + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@16.5.0: + resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} + engines: {node: '>=18'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + + html-minifier-terser@7.2.0: + resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + engines: {node: '>= 0.8'} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.7.1: + resolution: {integrity: sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + + immutable@5.1.4: + resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + inquirer@9.3.8: + resolution: {integrity: sha512-pFGGdaHrmRKMh4WoDDSowddgjT1Vkl90atobmTeSmcPGdYiwikch/m/Ef5wRaiamHejtw0cUUMMerzDUXCci2w==} + engines: {node: '>=18'} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-what@5.5.0: + resolution: {integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==} + engines: {node: '>=18'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isbinaryfile@5.0.7: + resolution: {integrity: sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ==} + engines: {node: '>= 18.0.0'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-eslint-parser@2.4.2: + resolution: {integrity: sha512-1e4qoRgnn448pRuMvKGsFFymUCquZV0mpGgOyIKNgD3JVDTsVJyRBGH/Fm0tBb8WsWGgmB1mDe6/yJMQM37DUA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + jsonfile@6.2.0: + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + mlly@1.8.0: + resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + + mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + engines: {node: '>= 0.6'} + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + + node-forge@1.3.3: + resolution: {integrity: sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==} + engines: {node: '>= 6.13.0'} + + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-run-path@6.0.0: + resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} + engines: {node: '>=18'} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + on-headers@1.1.0: + resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} + engines: {node: '>= 0.8'} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + open@10.2.0: + resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} + engines: {node: '>=18'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-to-regexp@0.1.12: + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + pinia@3.0.4: + resolution: {integrity: sha512-l7pqLUFTI/+ESXn6k3nu30ZIzW5E2WZF/LaHJEpoq6ElcLD+wduZoB2kBN19du6K/4FDpPMazY2wJr+IndBtQw==} + peerDependencies: + typescript: '>=4.5.0' + vue: ^3.5.11 + peerDependenciesMeta: + typescript: + optional: true + + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + postcss-selector-parser@7.1.1: + resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-linter-helpers@1.0.1: + resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} + engines: {node: '>=6.0.0'} + + prettier@3.7.4: + resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} + engines: {node: '>=14'} + hasBin: true + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qs@6.14.1: + resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} + engines: {node: '>=0.6'} + + quasar@2.18.6: + resolution: {integrity: sha512-ZlK+vJXOBPSFDCNQDBDNwSI+AHoqaFPxK8ve6mhsYLhMKWI5b8zsGY9VU1xYjngO2aBvU4fvGWXy4tTbzrBk8Q==} + engines: {node: '>= 10.18.1', npm: '>= 6.13.4', yarn: '>= 1.21.1'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.3: + resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} + engines: {node: '>= 0.8'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readable-stream@4.7.0: + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rollup-plugin-visualizer@5.14.0: + resolution: {integrity: sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + rolldown: 1.x + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rolldown: + optional: true + rollup: + optional: true + + rollup@4.55.1: + resolution: {integrity: sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-applescript@7.1.0: + resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} + engines: {node: '>=18'} + + run-async@3.0.0: + resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} + engines: {node: '>=0.12.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sass-embedded-all-unknown@1.97.2: + resolution: {integrity: sha512-Fj75+vOIDv1T/dGDwEpQ5hgjXxa2SmMeShPa8yrh2sUz1U44bbmY4YSWPCdg8wb7LnwiY21B2KRFM+HF42yO4g==} + cpu: ['!arm', '!arm64', '!riscv64', '!x64'] + + sass-embedded-android-arm64@1.97.2: + resolution: {integrity: sha512-pF6I+R5uThrscd3lo9B3DyNTPyGFsopycdx0tDAESN6s+dBbiRgNgE4Zlpv50GsLocj/lDLCZaabeTpL3ubhYA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [android] + + sass-embedded-android-arm@1.97.2: + resolution: {integrity: sha512-BPT9m19ttY0QVHYYXRa6bmqmS3Fa2EHByNUEtSVcbm5PkIk1ntmYkG9fn5SJpIMbNmFDGwHx+pfcZMmkldhnRg==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [android] + + sass-embedded-android-riscv64@1.97.2: + resolution: {integrity: sha512-fprI8ZTJdz+STgARhg8zReI2QhhGIT9G8nS7H21kc3IkqPRzhfaemSxEtCqZyvDbXPcgYiDLV7AGIReHCuATog==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [android] + + sass-embedded-android-x64@1.97.2: + resolution: {integrity: sha512-RswwSjURZxupsukEmNt2t6RGvuvIw3IAD5sDq1Pc65JFvWFY3eHqCmH0lG0oXqMg6KJcF0eOxHOp2RfmIm2+4w==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [android] + + sass-embedded-darwin-arm64@1.97.2: + resolution: {integrity: sha512-xcsZNnU1XZh21RE/71OOwNqPVcGBU0qT9A4k4QirdA34+ts9cDIaR6W6lgHOBR/Bnnu6w6hXJR4Xth7oFrefPA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [darwin] + + sass-embedded-darwin-x64@1.97.2: + resolution: {integrity: sha512-T/9DTMpychm6+H4slHCAsYJRJ6eM+9H9idKlBPliPrP4T8JdC2Cs+ZOsYqrObj6eOtAD0fGf+KgyNhnW3xVafA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [darwin] + + sass-embedded-linux-arm64@1.97.2: + resolution: {integrity: sha512-Wh+nQaFer9tyE5xBPv5murSUZE/+kIcg8MyL5uqww6be9Iq+UmZpcJM7LUk+q8klQ9LfTmoDSNFA74uBqxD6IA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + + sass-embedded-linux-arm@1.97.2: + resolution: {integrity: sha512-yDRe1yifGHl6kibkDlRIJ2ZzAU03KJ1AIvsAh4dsIDgK5jx83bxZLV1ZDUv7a8KK/iV/80LZnxnu/92zp99cXQ==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + + sass-embedded-linux-musl-arm64@1.97.2: + resolution: {integrity: sha512-NfUqZSjHwnHvpSa7nyNxbWfL5obDjNBqhHUYmqbHUcmqBpFfHIQsUPgXME9DKn1yBlBc3mWnzMxRoucdYTzd2Q==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + + sass-embedded-linux-musl-arm@1.97.2: + resolution: {integrity: sha512-GIO6xfAtahJAWItvsXZ3MD1HM6s8cKtV1/HL088aUpKJaw/2XjTCveiOO2AdgMpLNztmq9DZ1lx5X5JjqhS45g==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + + sass-embedded-linux-musl-riscv64@1.97.2: + resolution: {integrity: sha512-qtM4dJ5gLfvyTZ3QencfNbsTEShIWImSEpkThz+Y2nsCMbcMP7/jYOA03UWgPfEOKSehQQ7EIau7ncbFNoDNPQ==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [linux] + + sass-embedded-linux-musl-x64@1.97.2: + resolution: {integrity: sha512-ZAxYOdmexcnxGnzdsDjYmNe3jGj+XW3/pF/n7e7r8y+5c6D2CQRrCUdapLgaqPt1edOPQIlQEZF8q5j6ng21yw==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + + sass-embedded-linux-riscv64@1.97.2: + resolution: {integrity: sha512-reVwa9ZFEAOChXpDyNB3nNHHyAkPMD+FTctQKECqKiVJnIzv2EaFF6/t0wzyvPgBKeatA8jszAIeOkkOzbYVkQ==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [linux] + + sass-embedded-linux-x64@1.97.2: + resolution: {integrity: sha512-bvAdZQsX3jDBv6m4emaU2OMTpN0KndzTAMgJZZrKUgiC0qxBmBqbJG06Oj/lOCoXGCxAvUOheVYpezRTF+Feog==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + + sass-embedded-unknown-all@1.97.2: + resolution: {integrity: sha512-86tcYwohjPgSZtgeU9K4LikrKBJNf8ZW/vfsFbdzsRlvc73IykiqanufwQi5qIul0YHuu9lZtDWyWxM2dH/Rsg==} + os: ['!android', '!darwin', '!linux', '!win32'] + + sass-embedded-win32-arm64@1.97.2: + resolution: {integrity: sha512-Cv28q8qNjAjZfqfzTrQvKf4JjsZ6EOQ5FxyHUQQeNzm73R86nd/8ozDa1Vmn79Hq0kwM15OCM9epanDuTG1ksA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [win32] + + sass-embedded-win32-x64@1.97.2: + resolution: {integrity: sha512-DVxLxkeDCGIYeyHLAvWW3yy9sy5Ruk5p472QWiyfyyG1G1ASAR8fgfIY5pT0vE6Rv+VAKVLwF3WTspUYu7S1/Q==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [win32] + + sass-embedded@1.97.2: + resolution: {integrity: sha512-lKJcskySwAtJ4QRirKrikrWMFa2niAuaGenY2ElHjd55IwHUiur5IdKu6R1hEmGYMs4Qm+6rlRW0RvuAkmcryg==} + engines: {node: '>=16.0.0'} + hasBin: true + + sass@1.97.2: + resolution: {integrity: sha512-y5LWb0IlbO4e97Zr7c3mlpabcbBtS+ieiZ9iwDooShpFKWXf62zz5pEPdwrLYm+Bxn1fnbwFGzHuCLSA9tBmrw==} + engines: {node: '>=14.0.0'} + hasBin: true + + sax@1.1.4: + resolution: {integrity: sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg==} + + selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} + + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + + send@0.19.2: + resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} + engines: {node: '>= 0.8.0'} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + serve-static@1.16.3: + resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} + engines: {node: '>= 0.8.0'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + + speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + + stack-trace@1.0.0-pre2: + resolution: {integrity: sha512-2ztBJRek8IVofG9DBJqdy2N5kulaacX30Nz7xmkYF6ale9WBVmIy6mFBchvGX7Vx/MyjBhx+Rcxqrj+dbOnQ6A==} + engines: {node: '>=16'} + + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + streamx@2.23.0: + resolution: {integrity: sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + engines: {node: '>=12'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + superjson@2.2.6: + resolution: {integrity: sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==} + engines: {node: '>=16'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + sync-child-process@1.0.2: + resolution: {integrity: sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==} + engines: {node: '>=16.0.0'} + + sync-message-port@1.1.3: + resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==} + engines: {node: '>=16.0.0'} + + synckit@0.11.11: + resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} + engines: {node: ^14.18.0 || >=16.0.0} + + tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + + terser@5.44.1: + resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} + engines: {node: '>=10'} + hasBin: true + + text-decoder@1.2.3: + resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + ts-api-utils@2.4.0: + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + ts-essentials@9.4.2: + resolution: {integrity: sha512-mB/cDhOvD7pg3YCLk2rOtejHjjdSi9in/IBYE13S+8WA5FBSraYf4V/ws55uvs0IvQ/l0wBOlXy5yBNZ9Bl8ZQ==} + peerDependencies: + typescript: '>=4.1.0' + peerDependenciesMeta: + typescript: + optional: true + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typescript-eslint@8.52.0: + resolution: {integrity: sha512-atlQQJ2YkO4pfTVQmQ+wvYQwexPDOIgo+RaVcD7gHgzy/IQA+XTyuxNM9M9TVXvttkF7koBHmcwisKdOAf2EcA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.6.2: + resolution: {integrity: sha512-heMioaxBcG9+Znsda5Q8sQbWnLJSl98AFDXTO80wELWEzX3hordXsTdxrIfMQoO9IY1MEnoGoPjpoKpMj+Yx0Q==} + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + unplugin@1.16.1: + resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} + engines: {node: '>=14.0.0'} + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + varint@6.0.0: + resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vite-plugin-checker@0.11.0: + resolution: {integrity: sha512-iUdO9Pl9UIBRPAragwi3as/BXXTtRu4G12L3CMrjx+WVTd9g/MsqNakreib9M/2YRVkhZYiTEwdH2j4Dm0w7lw==} + engines: {node: '>=16.11'} + peerDependencies: + '@biomejs/biome': '>=1.7' + eslint: '>=7' + meow: ^13.2.0 + optionator: ^0.9.4 + oxlint: '>=1' + stylelint: '>=16' + typescript: '*' + vite: '>=5.4.20' + vls: '*' + vti: '*' + vue-tsc: ~2.2.10 || ^3.0.0 + peerDependenciesMeta: + '@biomejs/biome': + optional: true + eslint: + optional: true + meow: + optional: true + optionator: + optional: true + oxlint: + optional: true + stylelint: + optional: true + typescript: + optional: true + vls: + optional: true + vti: + optional: true + vue-tsc: + optional: true + + vite@7.3.1: + resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + + vue-eslint-parser@10.2.0: + resolution: {integrity: sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + vue-i18n@11.2.8: + resolution: {integrity: sha512-vJ123v/PXCZntd6Qj5Jumy7UBmIuE92VrtdX+AXr+1WzdBHojiBxnAxdfctUFL+/JIN+VQH4BhsfTtiGsvVObg==} + engines: {node: '>= 16'} + peerDependencies: + vue: ^3.0.0 + + vue-router@4.6.4: + resolution: {integrity: sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==} + peerDependencies: + vue: ^3.5.0 + + vue-tsc@3.2.2: + resolution: {integrity: sha512-r9YSia/VgGwmbbfC06hDdAatH634XJ9nVl6Zrnz1iK4ucp8Wu78kawplXnIDa3MSu1XdQQePTHLXYwPDWn+nyQ==} + hasBin: true + peerDependencies: + typescript: '>=5.0.0' + + vue@3.5.26: + resolution: {integrity: sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + webpack-merge@6.0.1: + resolution: {integrity: sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==} + engines: {node: '>=18.0.0'} + + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wsl-utils@0.1.0: + resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} + engines: {node: '>=18'} + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yaml-eslint-parser@1.3.2: + resolution: {integrity: sha512-odxVsHAkZYYglR30aPYRY4nUGJnoJ2y1ww2HDvZALo0BDETv9kWbi16J52eHs+PWRNmF4ub6nZqfVOeesOvntg==} + engines: {node: ^14.17.0 || >=16.0.0} + + yaml@2.8.2: + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + engines: {node: '>= 14.6'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} + engines: {node: '>=18'} + + zip-stream@6.0.1: + resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} + engines: {node: '>= 14'} + +snapshots: + + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/parser@7.28.5': + dependencies: + '@babel/types': 7.28.5 + + '@babel/types@7.28.5': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@bufbuild/protobuf@2.10.2': {} + + '@esbuild/aix-ppc64@0.25.12': + optional: true + + '@esbuild/aix-ppc64@0.27.2': + optional: true + + '@esbuild/android-arm64@0.25.12': + optional: true + + '@esbuild/android-arm64@0.27.2': + optional: true + + '@esbuild/android-arm@0.25.12': + optional: true + + '@esbuild/android-arm@0.27.2': + optional: true + + '@esbuild/android-x64@0.25.12': + optional: true + + '@esbuild/android-x64@0.27.2': + optional: true + + '@esbuild/darwin-arm64@0.25.12': + optional: true + + '@esbuild/darwin-arm64@0.27.2': + optional: true + + '@esbuild/darwin-x64@0.25.12': + optional: true + + '@esbuild/darwin-x64@0.27.2': + optional: true + + '@esbuild/freebsd-arm64@0.25.12': + optional: true + + '@esbuild/freebsd-arm64@0.27.2': + optional: true + + '@esbuild/freebsd-x64@0.25.12': + optional: true + + '@esbuild/freebsd-x64@0.27.2': + optional: true + + '@esbuild/linux-arm64@0.25.12': + optional: true + + '@esbuild/linux-arm64@0.27.2': + optional: true + + '@esbuild/linux-arm@0.25.12': + optional: true + + '@esbuild/linux-arm@0.27.2': + optional: true + + '@esbuild/linux-ia32@0.25.12': + optional: true + + '@esbuild/linux-ia32@0.27.2': + optional: true + + '@esbuild/linux-loong64@0.25.12': + optional: true + + '@esbuild/linux-loong64@0.27.2': + optional: true + + '@esbuild/linux-mips64el@0.25.12': + optional: true + + '@esbuild/linux-mips64el@0.27.2': + optional: true + + '@esbuild/linux-ppc64@0.25.12': + optional: true + + '@esbuild/linux-ppc64@0.27.2': + optional: true + + '@esbuild/linux-riscv64@0.25.12': + optional: true + + '@esbuild/linux-riscv64@0.27.2': + optional: true + + '@esbuild/linux-s390x@0.25.12': + optional: true + + '@esbuild/linux-s390x@0.27.2': + optional: true + + '@esbuild/linux-x64@0.25.12': + optional: true + + '@esbuild/linux-x64@0.27.2': + optional: true + + '@esbuild/netbsd-arm64@0.25.12': + optional: true + + '@esbuild/netbsd-arm64@0.27.2': + optional: true + + '@esbuild/netbsd-x64@0.25.12': + optional: true + + '@esbuild/netbsd-x64@0.27.2': + optional: true + + '@esbuild/openbsd-arm64@0.25.12': + optional: true + + '@esbuild/openbsd-arm64@0.27.2': + optional: true + + '@esbuild/openbsd-x64@0.25.12': + optional: true + + '@esbuild/openbsd-x64@0.27.2': + optional: true + + '@esbuild/openharmony-arm64@0.25.12': + optional: true + + '@esbuild/openharmony-arm64@0.27.2': + optional: true + + '@esbuild/sunos-x64@0.25.12': + optional: true + + '@esbuild/sunos-x64@0.27.2': + optional: true + + '@esbuild/win32-arm64@0.25.12': + optional: true + + '@esbuild/win32-arm64@0.27.2': + optional: true + + '@esbuild/win32-ia32@0.25.12': + optional: true + + '@esbuild/win32-ia32@0.27.2': + optional: true + + '@esbuild/win32-x64@0.25.12': + optional: true + + '@esbuild/win32-x64@0.27.2': + optional: true + + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2)': + dependencies: + eslint: 9.39.2 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.21.1': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.3 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.3': + dependencies: + ajv: 6.12.6 + debug: 4.4.3 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.39.2': {} + + '@eslint/object-schema@2.1.7': {} + + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.7': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.4.3 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@inquirer/external-editor@1.0.3(@types/node@20.19.27)': + dependencies: + chardet: 2.1.1 + iconv-lite: 0.7.1 + optionalDependencies: + '@types/node': 20.19.27 + + '@inquirer/figures@1.0.15': {} + + '@intlify/bundle-utils@8.0.0(vue-i18n@11.2.8(vue@3.5.26(typescript@5.9.3)))': + dependencies: + '@intlify/message-compiler': 9.14.5 + '@intlify/shared': 9.14.5 + acorn: 8.15.0 + escodegen: 2.1.0 + estree-walker: 2.0.2 + jsonc-eslint-parser: 2.4.2 + mlly: 1.8.0 + source-map-js: 1.2.1 + yaml-eslint-parser: 1.3.2 + optionalDependencies: + vue-i18n: 11.2.8(vue@3.5.26(typescript@5.9.3)) + + '@intlify/core-base@11.2.8': + dependencies: + '@intlify/message-compiler': 11.2.8 + '@intlify/shared': 11.2.8 + + '@intlify/message-compiler@11.2.8': + dependencies: + '@intlify/shared': 11.2.8 + source-map-js: 1.2.1 + + '@intlify/message-compiler@9.14.5': + dependencies: + '@intlify/shared': 9.14.5 + source-map-js: 1.2.1 + + '@intlify/shared@11.2.8': {} + + '@intlify/shared@9.14.5': {} + + '@intlify/unplugin-vue-i18n@4.0.0(rollup@4.55.1)(vue-i18n@11.2.8(vue@3.5.26(typescript@5.9.3)))': + dependencies: + '@intlify/bundle-utils': 8.0.0(vue-i18n@11.2.8(vue@3.5.26(typescript@5.9.3))) + '@intlify/shared': 9.14.5 + '@rollup/pluginutils': 5.3.0(rollup@4.55.1) + '@vue/compiler-sfc': 3.5.26 + debug: 4.4.3 + fast-glob: 3.3.3 + js-yaml: 4.1.1 + json5: 2.2.3 + pathe: 1.1.2 + picocolors: 1.1.1 + source-map-js: 1.2.1 + unplugin: 1.16.1 + optionalDependencies: + vue-i18n: 11.2.8(vue@3.5.26(typescript@5.9.3)) + transitivePeerDependencies: + - rollup + - supports-color + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.2 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + + '@parcel/watcher-android-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-x64@2.5.1': + optional: true + + '@parcel/watcher-freebsd-x64@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.1': + optional: true + + '@parcel/watcher-win32-arm64@2.5.1': + optional: true + + '@parcel/watcher-win32-ia32@2.5.1': + optional: true + + '@parcel/watcher-win32-x64@2.5.1': + optional: true + + '@parcel/watcher@2.5.1': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.1 + '@parcel/watcher-darwin-arm64': 2.5.1 + '@parcel/watcher-darwin-x64': 2.5.1 + '@parcel/watcher-freebsd-x64': 2.5.1 + '@parcel/watcher-linux-arm-glibc': 2.5.1 + '@parcel/watcher-linux-arm-musl': 2.5.1 + '@parcel/watcher-linux-arm64-glibc': 2.5.1 + '@parcel/watcher-linux-arm64-musl': 2.5.1 + '@parcel/watcher-linux-x64-glibc': 2.5.1 + '@parcel/watcher-linux-x64-musl': 2.5.1 + '@parcel/watcher-win32-arm64': 2.5.1 + '@parcel/watcher-win32-ia32': 2.5.1 + '@parcel/watcher-win32-x64': 2.5.1 + optional: true + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.2.9': {} + + '@quasar/app-vite@2.4.0(@types/node@20.19.27)(eslint@9.39.2)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)))(quasar@2.18.6)(rollup@4.55.1)(sass@1.97.2)(terser@5.44.1)(typescript@5.9.3)(vue-router@4.6.4(vue@3.5.26(typescript@5.9.3)))(vue@3.5.26(typescript@5.9.3))(yaml@2.8.2)': + dependencies: + '@quasar/render-ssr-error': 1.0.3 + '@quasar/ssl-certificate': 1.0.0 + '@quasar/vite-plugin': 1.10.0(@vitejs/plugin-vue@6.0.3(vite@7.3.1(@types/node@20.19.27)(sass-embedded@1.97.2)(sass@1.97.2)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)))(quasar@2.18.6)(vite@7.3.1(@types/node@20.19.27)(sass-embedded@1.97.2)(sass@1.97.2)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)) + '@types/chrome': 0.0.262 + '@types/compression': 1.8.1 + '@types/cordova': 11.0.3 + '@types/express': 4.17.25 + '@vitejs/plugin-vue': 6.0.3(vite@7.3.1(@types/node@20.19.27)(sass-embedded@1.97.2)(sass@1.97.2)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)) + archiver: 7.0.1 + chokidar: 3.6.0 + ci-info: 4.3.1 + compression: 1.8.1 + confbox: 0.1.8 + cross-spawn: 7.0.6 + dot-prop: 9.0.0 + dotenv: 16.6.1 + dotenv-expand: 11.0.7 + elementtree: 0.1.7 + esbuild: 0.25.12 + express: 4.22.1 + fs-extra: 11.3.3 + html-minifier-terser: 7.2.0 + inquirer: 9.3.8(@types/node@20.19.27) + isbinaryfile: 5.0.7 + kolorist: 1.8.0 + lodash: 4.17.21 + minimist: 1.2.8 + mlly: 1.8.0 + open: 10.2.0 + quasar: 2.18.6 + rollup-plugin-visualizer: 5.14.0(rollup@4.55.1) + sass-embedded: 1.97.2 + semver: 7.7.3 + serialize-javascript: 6.0.2 + tinyglobby: 0.2.15 + ts-essentials: 9.4.2(typescript@5.9.3) + vite: 7.3.1(@types/node@20.19.27)(sass-embedded@1.97.2)(sass@1.97.2)(terser@5.44.1)(yaml@2.8.2) + vue: 3.5.26(typescript@5.9.3) + vue-router: 4.6.4(vue@3.5.26(typescript@5.9.3)) + webpack-merge: 6.0.1 + optionalDependencies: + eslint: 9.39.2 + pinia: 3.0.4(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)) + typescript: 5.9.3 + transitivePeerDependencies: + - '@types/node' + - bare-abort-controller + - jiti + - less + - lightningcss + - react-native-b4a + - rolldown + - rollup + - sass + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + '@quasar/extras@1.17.0': {} + + '@quasar/render-ssr-error@1.0.3': + dependencies: + stack-trace: 1.0.0-pre2 + + '@quasar/ssl-certificate@1.0.0': + dependencies: + fs-extra: 11.3.3 + selfsigned: 2.4.1 + + '@quasar/vite-plugin@1.10.0(@vitejs/plugin-vue@6.0.3(vite@7.3.1(@types/node@20.19.27)(sass-embedded@1.97.2)(sass@1.97.2)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)))(quasar@2.18.6)(vite@7.3.1(@types/node@20.19.27)(sass-embedded@1.97.2)(sass@1.97.2)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))': + dependencies: + '@vitejs/plugin-vue': 6.0.3(vite@7.3.1(@types/node@20.19.27)(sass-embedded@1.97.2)(sass@1.97.2)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)) + quasar: 2.18.6 + vite: 7.3.1(@types/node@20.19.27)(sass-embedded@1.97.2)(sass@1.97.2)(terser@5.44.1)(yaml@2.8.2) + vue: 3.5.26(typescript@5.9.3) + + '@rolldown/pluginutils@1.0.0-beta.53': {} + + '@rollup/pluginutils@5.3.0(rollup@4.55.1)': + dependencies: + '@types/estree': 1.0.8 + estree-walker: 2.0.2 + picomatch: 4.0.3 + optionalDependencies: + rollup: 4.55.1 + + '@rollup/rollup-android-arm-eabi@4.55.1': + optional: true + + '@rollup/rollup-android-arm64@4.55.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.55.1': + optional: true + + '@rollup/rollup-darwin-x64@4.55.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.55.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.55.1': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.55.1': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.55.1': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.55.1': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.55.1': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.55.1': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.55.1': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.55.1': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.55.1': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.55.1': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.55.1': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.55.1': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.55.1': + optional: true + + '@rollup/rollup-linux-x64-musl@4.55.1': + optional: true + + '@rollup/rollup-openbsd-x64@4.55.1': + optional: true + + '@rollup/rollup-openharmony-arm64@4.55.1': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.55.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.55.1': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.55.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.55.1': + optional: true + + '@types/body-parser@1.19.6': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 20.19.27 + + '@types/chrome@0.0.262': + dependencies: + '@types/filesystem': 0.0.36 + '@types/har-format': 1.2.16 + + '@types/compression@1.8.1': + dependencies: + '@types/express': 4.17.25 + '@types/node': 20.19.27 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 20.19.27 + + '@types/cordova@11.0.3': {} + + '@types/estree@1.0.8': {} + + '@types/express-serve-static-core@4.19.7': + dependencies: + '@types/node': 20.19.27 + '@types/qs': 6.14.0 + '@types/range-parser': 1.2.7 + '@types/send': 1.2.1 + + '@types/express@4.17.25': + dependencies: + '@types/body-parser': 1.19.6 + '@types/express-serve-static-core': 4.19.7 + '@types/qs': 6.14.0 + '@types/serve-static': 1.15.10 + + '@types/filesystem@0.0.36': + dependencies: + '@types/filewriter': 0.0.33 + + '@types/filewriter@0.0.33': {} + + '@types/har-format@1.2.16': {} + + '@types/http-errors@2.0.5': {} + + '@types/json-schema@7.0.15': {} + + '@types/mime@1.3.5': {} + + '@types/node-forge@1.3.14': + dependencies: + '@types/node': 20.19.27 + + '@types/node@20.19.27': + dependencies: + undici-types: 6.21.0 + + '@types/qs@6.14.0': {} + + '@types/range-parser@1.2.7': {} + + '@types/send@0.17.6': + dependencies: + '@types/mime': 1.3.5 + '@types/node': 20.19.27 + + '@types/send@1.2.1': + dependencies: + '@types/node': 20.19.27 + + '@types/serve-static@1.15.10': + dependencies: + '@types/http-errors': 2.0.5 + '@types/node': 20.19.27 + '@types/send': 0.17.6 + + '@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.52.0(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.52.0 + '@typescript-eslint/type-utils': 8.52.0(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/utils': 8.52.0(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.52.0 + eslint: 9.39.2 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.52.0(eslint@9.39.2)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.52.0 + '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.52.0 + debug: 4.4.3 + eslint: 9.39.2 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.52.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) + '@typescript-eslint/types': 8.52.0 + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.52.0': + dependencies: + '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/visitor-keys': 8.52.0 + + '@typescript-eslint/tsconfig-utils@8.52.0(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + + '@typescript-eslint/type-utils@8.52.0(eslint@9.39.2)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.52.0(eslint@9.39.2)(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.39.2 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.52.0': {} + + '@typescript-eslint/typescript-estree@8.52.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.52.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) + '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/visitor-keys': 8.52.0 + debug: 4.4.3 + minimatch: 9.0.5 + semver: 7.7.3 + tinyglobby: 0.2.15 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.52.0(eslint@9.39.2)(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2) + '@typescript-eslint/scope-manager': 8.52.0 + '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) + eslint: 9.39.2 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.52.0': + dependencies: + '@typescript-eslint/types': 8.52.0 + eslint-visitor-keys: 4.2.1 + + '@vitejs/plugin-vue@6.0.3(vite@7.3.1(@types/node@20.19.27)(sass-embedded@1.97.2)(sass@1.97.2)(terser@5.44.1)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))': + dependencies: + '@rolldown/pluginutils': 1.0.0-beta.53 + vite: 7.3.1(@types/node@20.19.27)(sass-embedded@1.97.2)(sass@1.97.2)(terser@5.44.1)(yaml@2.8.2) + vue: 3.5.26(typescript@5.9.3) + + '@volar/language-core@2.4.27': + dependencies: + '@volar/source-map': 2.4.27 + + '@volar/source-map@2.4.27': {} + + '@volar/typescript@2.4.27': + dependencies: + '@volar/language-core': 2.4.27 + path-browserify: 1.0.1 + vscode-uri: 3.1.0 + + '@vue/compiler-core@3.5.26': + dependencies: + '@babel/parser': 7.28.5 + '@vue/shared': 3.5.26 + entities: 7.0.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.26': + dependencies: + '@vue/compiler-core': 3.5.26 + '@vue/shared': 3.5.26 + + '@vue/compiler-sfc@3.5.26': + dependencies: + '@babel/parser': 7.28.5 + '@vue/compiler-core': 3.5.26 + '@vue/compiler-dom': 3.5.26 + '@vue/compiler-ssr': 3.5.26 + '@vue/shared': 3.5.26 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.6 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.26': + dependencies: + '@vue/compiler-dom': 3.5.26 + '@vue/shared': 3.5.26 + + '@vue/devtools-api@6.6.4': {} + + '@vue/devtools-api@7.7.9': + dependencies: + '@vue/devtools-kit': 7.7.9 + + '@vue/devtools-kit@7.7.9': + dependencies: + '@vue/devtools-shared': 7.7.9 + birpc: 2.9.0 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + superjson: 2.2.6 + + '@vue/devtools-shared@7.7.9': + dependencies: + rfdc: 1.4.1 + + '@vue/eslint-config-prettier@10.2.0(eslint@9.39.2)(prettier@3.7.4)': + dependencies: + eslint: 9.39.2 + eslint-config-prettier: 10.1.8(eslint@9.39.2) + eslint-plugin-prettier: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.39.2))(eslint@9.39.2)(prettier@3.7.4) + prettier: 3.7.4 + transitivePeerDependencies: + - '@types/eslint' + + '@vue/eslint-config-typescript@14.6.0(eslint-plugin-vue@10.6.2(@typescript-eslint/parser@8.52.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(vue-eslint-parser@10.2.0(eslint@9.39.2)))(eslint@9.39.2)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/utils': 8.52.0(eslint@9.39.2)(typescript@5.9.3) + eslint: 9.39.2 + eslint-plugin-vue: 10.6.2(@typescript-eslint/parser@8.52.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(vue-eslint-parser@10.2.0(eslint@9.39.2)) + fast-glob: 3.3.3 + typescript-eslint: 8.52.0(eslint@9.39.2)(typescript@5.9.3) + vue-eslint-parser: 10.2.0(eslint@9.39.2) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@vue/language-core@3.2.2': + dependencies: + '@volar/language-core': 2.4.27 + '@vue/compiler-dom': 3.5.26 + '@vue/shared': 3.5.26 + alien-signals: 3.1.2 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + picomatch: 4.0.3 + + '@vue/reactivity@3.5.26': + dependencies: + '@vue/shared': 3.5.26 + + '@vue/runtime-core@3.5.26': + dependencies: + '@vue/reactivity': 3.5.26 + '@vue/shared': 3.5.26 + + '@vue/runtime-dom@3.5.26': + dependencies: + '@vue/reactivity': 3.5.26 + '@vue/runtime-core': 3.5.26 + '@vue/shared': 3.5.26 + csstype: 3.2.3 + + '@vue/server-renderer@3.5.26(vue@3.5.26(typescript@5.9.3))': + dependencies: + '@vue/compiler-ssr': 3.5.26 + '@vue/shared': 3.5.26 + vue: 3.5.26(typescript@5.9.3) + + '@vue/shared@3.5.26': {} + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + + acorn@8.15.0: {} + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + alien-signals@3.1.2: {} + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-regex@5.0.1: {} + + ansi-regex@6.2.2: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.3: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + archiver-utils@5.0.2: + dependencies: + glob: 10.5.0 + graceful-fs: 4.2.11 + is-stream: 2.0.1 + lazystream: 1.0.1 + lodash: 4.17.21 + normalize-path: 3.0.0 + readable-stream: 4.7.0 + + archiver@7.0.1: + dependencies: + archiver-utils: 5.0.2 + async: 3.2.6 + buffer-crc32: 1.0.0 + readable-stream: 4.7.0 + readdir-glob: 1.1.3 + tar-stream: 3.1.7 + zip-stream: 6.0.1 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + argparse@2.0.1: {} + + array-flatten@1.1.1: {} + + async@3.2.6: {} + + autoprefixer@10.4.23(postcss@8.5.6): + dependencies: + browserslist: 4.28.1 + caniuse-lite: 1.0.30001762 + fraction.js: 5.3.4 + picocolors: 1.1.1 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + b4a@1.7.3: {} + + balanced-match@1.0.2: {} + + bare-events@2.8.2: {} + + base64-js@1.5.1: {} + + baseline-browser-mapping@2.9.11: {} + + binary-extensions@2.3.0: {} + + birpc@2.9.0: {} + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + body-parser@1.20.4: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.1 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.14.1 + raw-body: 2.5.3 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + boolbase@1.0.0: {} + + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.28.1: + dependencies: + baseline-browser-mapping: 2.9.11 + caniuse-lite: 1.0.30001762 + electron-to-chromium: 1.5.267 + node-releases: 2.0.27 + update-browserslist-db: 1.2.3(browserslist@4.28.1) + + buffer-builder@0.2.0: {} + + buffer-crc32@1.0.0: {} + + buffer-from@1.1.2: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bundle-name@4.1.0: + dependencies: + run-applescript: 7.1.0 + + bytes@3.1.2: {} + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + callsites@3.1.0: {} + + camel-case@4.1.2: + dependencies: + pascal-case: 3.1.2 + tslib: 2.8.1 + + caniuse-lite@1.0.30001762: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chardet@2.1.1: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + ci-info@4.3.1: {} + + clean-css@5.3.3: + dependencies: + source-map: 0.6.1 + + cli-cursor@3.1.0: + dependencies: + restore-cursor: 3.1.0 + + cli-spinners@2.9.2: {} + + cli-width@4.1.0: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone-deep@4.0.1: + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + + clone@1.0.4: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + colorjs.io@0.5.2: {} + + commander@10.0.1: {} + + commander@2.20.3: {} + + compress-commons@6.0.2: + dependencies: + crc-32: 1.2.2 + crc32-stream: 6.0.0 + is-stream: 2.0.1 + normalize-path: 3.0.0 + readable-stream: 4.7.0 + + compressible@2.0.18: + dependencies: + mime-db: 1.54.0 + + compression@1.8.1: + dependencies: + bytes: 3.1.2 + compressible: 2.0.18 + debug: 2.6.9 + negotiator: 0.6.4 + on-headers: 1.1.0 + safe-buffer: 5.2.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + concat-map@0.0.1: {} + + confbox@0.1.8: {} + + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + + cookie-signature@1.0.7: {} + + cookie@0.7.2: {} + + copy-anything@4.0.5: + dependencies: + is-what: 5.5.0 + + core-util-is@1.0.3: {} + + crc-32@1.2.2: {} + + crc32-stream@6.0.0: + dependencies: + crc-32: 1.2.2 + readable-stream: 4.7.0 + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cssesc@3.0.0: {} + + csstype@3.2.3: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + deep-is@0.1.4: {} + + default-browser-id@5.0.1: {} + + default-browser@5.4.0: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.1 + + defaults@1.0.4: + dependencies: + clone: 1.0.4 + + define-lazy-prop@2.0.0: {} + + define-lazy-prop@3.0.0: {} + + depd@2.0.0: {} + + destroy@1.2.0: {} + + detect-libc@1.0.3: + optional: true + + dot-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + + dot-prop@9.0.0: + dependencies: + type-fest: 4.41.0 + + dotenv-expand@11.0.7: + dependencies: + dotenv: 16.6.1 + + dotenv@16.6.1: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + eastasianwidth@0.2.0: {} + + ee-first@1.1.1: {} + + electron-to-chromium@1.5.267: {} + + elementtree@0.1.7: + dependencies: + sax: 1.1.4 + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + encodeurl@2.0.0: {} + + entities@4.5.0: {} + + entities@7.0.0: {} + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + esbuild@0.25.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.12 + '@esbuild/android-arm': 0.25.12 + '@esbuild/android-arm64': 0.25.12 + '@esbuild/android-x64': 0.25.12 + '@esbuild/darwin-arm64': 0.25.12 + '@esbuild/darwin-x64': 0.25.12 + '@esbuild/freebsd-arm64': 0.25.12 + '@esbuild/freebsd-x64': 0.25.12 + '@esbuild/linux-arm': 0.25.12 + '@esbuild/linux-arm64': 0.25.12 + '@esbuild/linux-ia32': 0.25.12 + '@esbuild/linux-loong64': 0.25.12 + '@esbuild/linux-mips64el': 0.25.12 + '@esbuild/linux-ppc64': 0.25.12 + '@esbuild/linux-riscv64': 0.25.12 + '@esbuild/linux-s390x': 0.25.12 + '@esbuild/linux-x64': 0.25.12 + '@esbuild/netbsd-arm64': 0.25.12 + '@esbuild/netbsd-x64': 0.25.12 + '@esbuild/openbsd-arm64': 0.25.12 + '@esbuild/openbsd-x64': 0.25.12 + '@esbuild/openharmony-arm64': 0.25.12 + '@esbuild/sunos-x64': 0.25.12 + '@esbuild/win32-arm64': 0.25.12 + '@esbuild/win32-ia32': 0.25.12 + '@esbuild/win32-x64': 0.25.12 + + esbuild@0.27.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.2 + '@esbuild/android-arm': 0.27.2 + '@esbuild/android-arm64': 0.27.2 + '@esbuild/android-x64': 0.27.2 + '@esbuild/darwin-arm64': 0.27.2 + '@esbuild/darwin-x64': 0.27.2 + '@esbuild/freebsd-arm64': 0.27.2 + '@esbuild/freebsd-x64': 0.27.2 + '@esbuild/linux-arm': 0.27.2 + '@esbuild/linux-arm64': 0.27.2 + '@esbuild/linux-ia32': 0.27.2 + '@esbuild/linux-loong64': 0.27.2 + '@esbuild/linux-mips64el': 0.27.2 + '@esbuild/linux-ppc64': 0.27.2 + '@esbuild/linux-riscv64': 0.27.2 + '@esbuild/linux-s390x': 0.27.2 + '@esbuild/linux-x64': 0.27.2 + '@esbuild/netbsd-arm64': 0.27.2 + '@esbuild/netbsd-x64': 0.27.2 + '@esbuild/openbsd-arm64': 0.27.2 + '@esbuild/openbsd-x64': 0.27.2 + '@esbuild/openharmony-arm64': 0.27.2 + '@esbuild/sunos-x64': 0.27.2 + '@esbuild/win32-arm64': 0.27.2 + '@esbuild/win32-ia32': 0.27.2 + '@esbuild/win32-x64': 0.27.2 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@4.0.0: {} + + escodegen@2.1.0: + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + + eslint-config-prettier@10.1.8(eslint@9.39.2): + dependencies: + eslint: 9.39.2 + + eslint-plugin-prettier@5.5.4(eslint-config-prettier@10.1.8(eslint@9.39.2))(eslint@9.39.2)(prettier@3.7.4): + dependencies: + eslint: 9.39.2 + prettier: 3.7.4 + prettier-linter-helpers: 1.0.1 + synckit: 0.11.11 + optionalDependencies: + eslint-config-prettier: 10.1.8(eslint@9.39.2) + + eslint-plugin-vue@10.6.2(@typescript-eslint/parser@8.52.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(vue-eslint-parser@10.2.0(eslint@9.39.2)): + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2) + eslint: 9.39.2 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 7.1.1 + semver: 7.7.3 + vue-eslint-parser: 10.2.0(eslint@9.39.2) + xml-name-validator: 4.0.0 + optionalDependencies: + '@typescript-eslint/parser': 8.52.0(eslint@9.39.2)(typescript@5.9.3) + + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.1: {} + + eslint@9.39.2: + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.1 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.3 + '@eslint/js': 9.39.2 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.7 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + + espree@10.4.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 + + espree@9.6.1: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 3.4.3 + + esprima@4.0.1: {} + + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + esutils@2.0.3: {} + + etag@1.8.1: {} + + event-target-shim@5.0.1: {} + + events-universal@1.0.1: + dependencies: + bare-events: 2.8.2 + transitivePeerDependencies: + - bare-abort-controller + + events@3.3.0: {} + + express@4.22.1: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.4 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.7.2 + cookie-signature: 1.0.7 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.3.2 + fresh: 0.5.2 + http-errors: 2.0.1 + merge-descriptors: 1.0.3 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.12 + proxy-addr: 2.0.7 + qs: 6.14.1 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.2 + serve-static: 1.16.3 + setprototypeof: 1.2.0 + statuses: 2.0.2 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-fifo@1.3.2: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.20.1: + dependencies: + reusify: 1.1.0 + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + finalhandler@1.3.2: + dependencies: + debug: 2.6.9 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.2 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + + flat@5.0.2: {} + + flatted@3.3.3: {} + + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + forwarded@0.2.0: {} + + fraction.js@5.3.4: {} + + fresh@0.5.2: {} + + fs-extra@11.3.3: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.0 + universalify: 2.0.1 + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + get-caller-file@2.0.5: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.5.0: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + globals@14.0.0: {} + + globals@16.5.0: {} + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + has-flag@4.0.0: {} + + has-symbols@1.1.0: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hookable@5.5.3: {} + + html-minifier-terser@7.2.0: + dependencies: + camel-case: 4.1.2 + clean-css: 5.3.3 + commander: 10.0.1 + entities: 4.5.0 + param-case: 3.0.4 + relateurl: 0.2.7 + terser: 5.44.1 + + http-errors@2.0.1: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.2 + toidentifier: 1.0.1 + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.7.1: + dependencies: + safer-buffer: 2.1.2 + + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + ignore@7.0.5: {} + + immutable@5.1.4: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + inherits@2.0.4: {} + + inquirer@9.3.8(@types/node@20.19.27): + dependencies: + '@inquirer/external-editor': 1.0.3(@types/node@20.19.27) + '@inquirer/figures': 1.0.15 + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 1.0.0 + ora: 5.4.1 + run-async: 3.0.0 + rxjs: 7.8.2 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + transitivePeerDependencies: + - '@types/node' + + ipaddr.js@1.9.1: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-docker@2.2.1: {} + + is-docker@3.0.0: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-interactive@1.0.0: {} + + is-number@7.0.0: {} + + is-plain-object@2.0.4: + dependencies: + isobject: 3.0.1 + + is-stream@2.0.1: {} + + is-unicode-supported@0.1.0: {} + + is-what@5.5.0: {} + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + isarray@1.0.0: {} + + isbinaryfile@5.0.7: {} + + isexe@2.0.0: {} + + isobject@3.0.1: {} + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + js-tokens@4.0.0: {} + + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@2.2.3: {} + + jsonc-eslint-parser@2.4.2: + dependencies: + acorn: 8.15.0 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.7.3 + + jsonfile@6.2.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@6.0.3: {} + + kolorist@1.8.0: {} + + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.merge@4.6.2: {} + + lodash@4.17.21: {} + + log-symbols@4.1.0: + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + lower-case@2.0.2: + dependencies: + tslib: 2.8.1 + + lru-cache@10.4.3: {} + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + math-intrinsics@1.1.0: {} + + media-typer@0.3.0: {} + + merge-descriptors@1.0.3: {} + + merge2@1.4.1: {} + + methods@1.1.2: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-db@1.54.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@1.6.0: {} + + mimic-fn@2.1.0: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.12 + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.2 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.2 + + minimist@1.2.8: {} + + minipass@7.1.2: {} + + mitt@3.0.1: {} + + mlly@1.8.0: + dependencies: + acorn: 8.15.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.2 + + ms@2.0.0: {} + + ms@2.1.3: {} + + muggle-string@0.4.1: {} + + mute-stream@1.0.0: {} + + nanoid@3.3.11: {} + + natural-compare@1.4.0: {} + + negotiator@0.6.3: {} + + negotiator@0.6.4: {} + + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.8.1 + + node-addon-api@7.1.1: + optional: true + + node-forge@1.3.3: {} + + node-releases@2.0.27: {} + + normalize-path@3.0.0: {} + + npm-run-path@6.0.0: + dependencies: + path-key: 4.0.0 + unicorn-magic: 0.3.0 + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + object-inspect@1.13.4: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + on-headers@1.1.0: {} + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + open@10.2.0: + dependencies: + default-browser: 5.4.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + wsl-utils: 0.1.0 + + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + ora@5.4.1: + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + package-json-from-dist@1.0.1: {} + + param-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parseurl@1.3.3: {} + + pascal-case@3.1.2: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + + path-browserify@1.0.1: {} + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-to-regexp@0.1.12: {} + + pathe@1.1.2: {} + + pathe@2.0.3: {} + + perfect-debounce@1.0.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.3: {} + + pinia@3.0.4(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)): + dependencies: + '@vue/devtools-api': 7.7.9 + vue: 3.5.26(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.8.0 + pathe: 2.0.3 + + postcss-selector-parser@7.1.1: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier-linter-helpers@1.0.1: + dependencies: + fast-diff: 1.3.0 + + prettier@3.7.4: {} + + process-nextick-args@2.0.1: {} + + process@0.11.10: {} + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + punycode@2.3.1: {} + + qs@6.14.1: + dependencies: + side-channel: 1.1.0 + + quasar@2.18.6: {} + + queue-microtask@1.2.3: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + range-parser@1.2.1: {} + + raw-body@2.5.3: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.1 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readable-stream@4.7.0: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.6 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + readdirp@4.1.2: {} + + relateurl@0.2.7: {} + + require-directory@2.1.1: {} + + resolve-from@4.0.0: {} + + restore-cursor@3.1.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + reusify@1.1.0: {} + + rfdc@1.4.1: {} + + rollup-plugin-visualizer@5.14.0(rollup@4.55.1): + dependencies: + open: 8.4.2 + picomatch: 4.0.3 + source-map: 0.7.6 + yargs: 17.7.2 + optionalDependencies: + rollup: 4.55.1 + + rollup@4.55.1: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.55.1 + '@rollup/rollup-android-arm64': 4.55.1 + '@rollup/rollup-darwin-arm64': 4.55.1 + '@rollup/rollup-darwin-x64': 4.55.1 + '@rollup/rollup-freebsd-arm64': 4.55.1 + '@rollup/rollup-freebsd-x64': 4.55.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.55.1 + '@rollup/rollup-linux-arm-musleabihf': 4.55.1 + '@rollup/rollup-linux-arm64-gnu': 4.55.1 + '@rollup/rollup-linux-arm64-musl': 4.55.1 + '@rollup/rollup-linux-loong64-gnu': 4.55.1 + '@rollup/rollup-linux-loong64-musl': 4.55.1 + '@rollup/rollup-linux-ppc64-gnu': 4.55.1 + '@rollup/rollup-linux-ppc64-musl': 4.55.1 + '@rollup/rollup-linux-riscv64-gnu': 4.55.1 + '@rollup/rollup-linux-riscv64-musl': 4.55.1 + '@rollup/rollup-linux-s390x-gnu': 4.55.1 + '@rollup/rollup-linux-x64-gnu': 4.55.1 + '@rollup/rollup-linux-x64-musl': 4.55.1 + '@rollup/rollup-openbsd-x64': 4.55.1 + '@rollup/rollup-openharmony-arm64': 4.55.1 + '@rollup/rollup-win32-arm64-msvc': 4.55.1 + '@rollup/rollup-win32-ia32-msvc': 4.55.1 + '@rollup/rollup-win32-x64-gnu': 4.55.1 + '@rollup/rollup-win32-x64-msvc': 4.55.1 + fsevents: 2.3.3 + + run-applescript@7.1.0: {} + + run-async@3.0.0: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rxjs@7.8.2: + dependencies: + tslib: 2.8.1 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + sass-embedded-all-unknown@1.97.2: + dependencies: + sass: 1.97.2 + optional: true + + sass-embedded-android-arm64@1.97.2: + optional: true + + sass-embedded-android-arm@1.97.2: + optional: true + + sass-embedded-android-riscv64@1.97.2: + optional: true + + sass-embedded-android-x64@1.97.2: + optional: true + + sass-embedded-darwin-arm64@1.97.2: + optional: true + + sass-embedded-darwin-x64@1.97.2: + optional: true + + sass-embedded-linux-arm64@1.97.2: + optional: true + + sass-embedded-linux-arm@1.97.2: + optional: true + + sass-embedded-linux-musl-arm64@1.97.2: + optional: true + + sass-embedded-linux-musl-arm@1.97.2: + optional: true + + sass-embedded-linux-musl-riscv64@1.97.2: + optional: true + + sass-embedded-linux-musl-x64@1.97.2: + optional: true + + sass-embedded-linux-riscv64@1.97.2: + optional: true + + sass-embedded-linux-x64@1.97.2: + optional: true + + sass-embedded-unknown-all@1.97.2: + dependencies: + sass: 1.97.2 + optional: true + + sass-embedded-win32-arm64@1.97.2: + optional: true + + sass-embedded-win32-x64@1.97.2: + optional: true + + sass-embedded@1.97.2: + dependencies: + '@bufbuild/protobuf': 2.10.2 + buffer-builder: 0.2.0 + colorjs.io: 0.5.2 + immutable: 5.1.4 + rxjs: 7.8.2 + supports-color: 8.1.1 + sync-child-process: 1.0.2 + varint: 6.0.0 + optionalDependencies: + sass-embedded-all-unknown: 1.97.2 + sass-embedded-android-arm: 1.97.2 + sass-embedded-android-arm64: 1.97.2 + sass-embedded-android-riscv64: 1.97.2 + sass-embedded-android-x64: 1.97.2 + sass-embedded-darwin-arm64: 1.97.2 + sass-embedded-darwin-x64: 1.97.2 + sass-embedded-linux-arm: 1.97.2 + sass-embedded-linux-arm64: 1.97.2 + sass-embedded-linux-musl-arm: 1.97.2 + sass-embedded-linux-musl-arm64: 1.97.2 + sass-embedded-linux-musl-riscv64: 1.97.2 + sass-embedded-linux-musl-x64: 1.97.2 + sass-embedded-linux-riscv64: 1.97.2 + sass-embedded-linux-x64: 1.97.2 + sass-embedded-unknown-all: 1.97.2 + sass-embedded-win32-arm64: 1.97.2 + sass-embedded-win32-x64: 1.97.2 + + sass@1.97.2: + dependencies: + chokidar: 4.0.3 + immutable: 5.1.4 + source-map-js: 1.2.1 + optionalDependencies: + '@parcel/watcher': 2.5.1 + optional: true + + sax@1.1.4: {} + + selfsigned@2.4.1: + dependencies: + '@types/node-forge': 1.3.14 + node-forge: 1.3.3 + + semver@7.7.3: {} + + send@0.19.2: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.1 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + serve-static@1.16.3: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.2 + transitivePeerDependencies: + - supports-color + + setprototypeof@1.2.0: {} + + shallow-clone@3.0.1: + dependencies: + kind-of: 6.0.3 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + source-map-js@1.2.1: {} + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + source-map@0.7.6: {} + + speakingurl@14.0.1: {} + + stack-trace@1.0.0-pre2: {} + + statuses@2.0.2: {} + + streamx@2.23.0: + dependencies: + events-universal: 1.0.1 + fast-fifo: 1.3.2 + text-decoder: 1.2.3 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.2 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.2: + dependencies: + ansi-regex: 6.2.2 + + strip-json-comments@3.1.1: {} + + superjson@2.2.6: + dependencies: + copy-anything: 4.0.5 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + sync-child-process@1.0.2: + dependencies: + sync-message-port: 1.1.3 + + sync-message-port@1.1.3: {} + + synckit@0.11.11: + dependencies: + '@pkgr/core': 0.2.9 + + tar-stream@3.1.7: + dependencies: + b4a: 1.7.3 + fast-fifo: 1.3.2 + streamx: 2.23.0 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + terser@5.44.1: + dependencies: + '@jridgewell/source-map': 0.3.11 + acorn: 8.15.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + text-decoder@1.2.3: + dependencies: + b4a: 1.7.3 + transitivePeerDependencies: + - react-native-b4a + + tiny-invariant@1.3.3: {} + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.1: {} + + ts-api-utils@2.4.0(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + + ts-essentials@9.4.2(typescript@5.9.3): + optionalDependencies: + typescript: 5.9.3 + + tslib@2.8.1: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.21.3: {} + + type-fest@4.41.0: {} + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + typescript-eslint@8.52.0(eslint@9.39.2)(typescript@5.9.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/parser': 8.52.0(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.52.0(eslint@9.39.2)(typescript@5.9.3) + eslint: 9.39.2 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + typescript@5.9.3: {} + + ufo@1.6.2: {} + + undici-types@6.21.0: {} + + unicorn-magic@0.3.0: {} + + universalify@2.0.1: {} + + unpipe@1.0.0: {} + + unplugin@1.16.1: + dependencies: + acorn: 8.15.0 + webpack-virtual-modules: 0.6.2 + + update-browserslist-db@1.2.3(browserslist@4.28.1): + dependencies: + browserslist: 4.28.1 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + utils-merge@1.0.1: {} + + varint@6.0.0: {} + + vary@1.1.2: {} + + vite-plugin-checker@0.11.0(eslint@9.39.2)(optionator@0.9.4)(typescript@5.9.3)(vite@7.3.1(@types/node@20.19.27)(sass-embedded@1.97.2)(sass@1.97.2)(terser@5.44.1)(yaml@2.8.2))(vue-tsc@3.2.2(typescript@5.9.3)): + dependencies: + '@babel/code-frame': 7.27.1 + chokidar: 4.0.3 + npm-run-path: 6.0.0 + picocolors: 1.1.1 + picomatch: 4.0.3 + tiny-invariant: 1.3.3 + tinyglobby: 0.2.15 + vite: 7.3.1(@types/node@20.19.27)(sass-embedded@1.97.2)(sass@1.97.2)(terser@5.44.1)(yaml@2.8.2) + vscode-uri: 3.1.0 + optionalDependencies: + eslint: 9.39.2 + optionator: 0.9.4 + typescript: 5.9.3 + vue-tsc: 3.2.2(typescript@5.9.3) + + vite@7.3.1(@types/node@20.19.27)(sass-embedded@1.97.2)(sass@1.97.2)(terser@5.44.1)(yaml@2.8.2): + dependencies: + esbuild: 0.27.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.55.1 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 20.19.27 + fsevents: 2.3.3 + sass: 1.97.2 + sass-embedded: 1.97.2 + terser: 5.44.1 + yaml: 2.8.2 + + vscode-uri@3.1.0: {} + + vue-eslint-parser@10.2.0(eslint@9.39.2): + dependencies: + debug: 4.4.3 + eslint: 9.39.2 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.7.0 + semver: 7.7.3 + transitivePeerDependencies: + - supports-color + + vue-i18n@11.2.8(vue@3.5.26(typescript@5.9.3)): + dependencies: + '@intlify/core-base': 11.2.8 + '@intlify/shared': 11.2.8 + '@vue/devtools-api': 6.6.4 + vue: 3.5.26(typescript@5.9.3) + + vue-router@4.6.4(vue@3.5.26(typescript@5.9.3)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.26(typescript@5.9.3) + + vue-tsc@3.2.2(typescript@5.9.3): + dependencies: + '@volar/typescript': 2.4.27 + '@vue/language-core': 3.2.2 + typescript: 5.9.3 + + vue@3.5.26(typescript@5.9.3): + dependencies: + '@vue/compiler-dom': 3.5.26 + '@vue/compiler-sfc': 3.5.26 + '@vue/runtime-dom': 3.5.26 + '@vue/server-renderer': 3.5.26(vue@3.5.26(typescript@5.9.3)) + '@vue/shared': 3.5.26 + optionalDependencies: + typescript: 5.9.3 + + wcwidth@1.0.1: + dependencies: + defaults: 1.0.4 + + webpack-merge@6.0.1: + dependencies: + clone-deep: 4.0.1 + flat: 5.0.2 + wildcard: 2.0.1 + + webpack-virtual-modules@0.6.2: {} + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + wildcard@2.0.1: {} + + word-wrap@1.2.5: {} + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.1.2 + + wsl-utils@0.1.0: + dependencies: + is-wsl: 3.1.0 + + xml-name-validator@4.0.0: {} + + y18n@5.0.8: {} + + yaml-eslint-parser@1.3.2: + dependencies: + eslint-visitor-keys: 3.4.3 + yaml: 2.8.2 + + yaml@2.8.2: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@0.1.0: {} + + yoctocolors-cjs@2.1.3: {} + + zip-stream@6.0.1: + dependencies: + archiver-utils: 5.0.2 + compress-commons: 6.0.2 + readable-stream: 4.7.0 diff --git a/app/postcss.config.js b/app/postcss.config.js new file mode 100644 index 0000000..4498380 --- /dev/null +++ b/app/postcss.config.js @@ -0,0 +1,29 @@ +// https://github.com/michael-ciniawsky/postcss-load-config + +import autoprefixer from 'autoprefixer'; +// import rtlcss from 'postcss-rtlcss' + +export default { + plugins: [ + // https://github.com/postcss/autoprefixer + autoprefixer({ + overrideBrowserslist: [ + 'last 4 Chrome versions', + 'last 4 Firefox versions', + 'last 4 Edge versions', + 'last 4 Safari versions', + 'last 4 Android versions', + 'last 4 ChromeAndroid versions', + 'last 4 FirefoxAndroid versions', + 'last 4 iOS versions', + ], + }), + + // https://github.com/elchininet/postcss-rtlcss + // If you want to support RTL css, then + // 1. yarn/pnpm/bun/npm install postcss-rtlcss + // 2. optionally set quasar.config.js > framework > lang to an RTL language + // 3. uncomment the following line (and its import statement above): + // rtlcss() + ], +}; diff --git a/app/public/favicon.ico b/app/public/favicon.ico new file mode 100644 index 0000000..ae7bbdb Binary files /dev/null and b/app/public/favicon.ico differ diff --git a/app/public/icons/favicon-128x128.png b/app/public/icons/favicon-128x128.png new file mode 100644 index 0000000..1401176 Binary files /dev/null and b/app/public/icons/favicon-128x128.png differ diff --git a/app/public/icons/favicon-16x16.png b/app/public/icons/favicon-16x16.png new file mode 100644 index 0000000..679063a Binary files /dev/null and b/app/public/icons/favicon-16x16.png differ diff --git a/app/public/icons/favicon-32x32.png b/app/public/icons/favicon-32x32.png new file mode 100644 index 0000000..fd1fbc6 Binary files /dev/null and b/app/public/icons/favicon-32x32.png differ diff --git a/app/public/icons/favicon-96x96.png b/app/public/icons/favicon-96x96.png new file mode 100644 index 0000000..e93b80a Binary files /dev/null and b/app/public/icons/favicon-96x96.png differ diff --git a/app/quasar.config.ts b/app/quasar.config.ts new file mode 100644 index 0000000..9c9a3a0 --- /dev/null +++ b/app/quasar.config.ts @@ -0,0 +1,239 @@ +// Configuration for your app +// https://v2.quasar.dev/quasar-cli-vite/quasar-config-file + +import { defineConfig } from '#q-app/wrappers'; +import { fileURLToPath } from 'node:url'; + +export default defineConfig((ctx) => { + return { + // https://v2.quasar.dev/quasar-cli-vite/prefetch-feature + // preFetch: true, + + // app boot file (/src/boot) + // --> boot files are part of "main.js" + // https://v2.quasar.dev/quasar-cli-vite/boot-files + boot: ['i18n'], + + // https://v2.quasar.dev/quasar-cli-vite/quasar-config-file#css + css: ['app.scss'], + + // https://github.com/quasarframework/quasar/tree/dev/extras + extras: [ + // 'ionicons-v4', + // 'mdi-v7', + // 'fontawesome-v6', + // 'eva-icons', + // 'themify', + // 'line-awesome', + // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both! + + 'roboto-font', // optional, you are not bound to it + 'material-icons', // optional, you are not bound to it + ], + + // Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-file#build + build: { + target: { + browser: ['es2022', 'firefox115', 'chrome115', 'safari14'], + node: 'node20', + }, + + typescript: { + strict: true, + vueShim: true, + // extendTsConfig (tsConfig) {} + }, + + vueRouterMode: 'hash', // available values: 'hash', 'history' + // vueRouterBase, + // vueDevtools, + // vueOptionsAPI: false, + + // rebuildCache: true, // rebuilds Vite/linter/etc cache on startup + + // publicPath: '/', + // analyze: true, + // env: {}, + // rawDefine: {} + // ignorePublicFolder: true, + // minify: false, + // polyfillModulePreload: true, + // distDir + + // extendViteConf (viteConf) {}, + // viteVuePluginOptions: {}, + + vitePlugins: [ + [ + '@intlify/unplugin-vue-i18n/vite', + { + // if you want to use Vue I18n Legacy API, you need to set `compositionOnly: false` + // compositionOnly: false, + + // if you want to use named tokens in your Vue I18n messages, such as 'Hello {name}', + // you need to set `runtimeOnly: false` + // runtimeOnly: false, + + ssr: ctx.modeName === 'ssr', + + // you need to set i18n resource including paths ! + include: [fileURLToPath(new URL('./src/i18n', import.meta.url))], + }, + ], + + [ + 'vite-plugin-checker', + { + vueTsc: true, + eslint: { + lintCommand: 'eslint -c ./eslint.config.js "./src*/**/*.{ts,js,mjs,cjs,vue}"', + useFlatConfig: true, + }, + }, + { server: false }, + ], + ], + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-file#devserver + devServer: { + // https: true, + open: true, // opens browser window automatically + }, + + // https://v2.quasar.dev/quasar-cli-vite/quasar-config-file#framework + framework: { + config: { + notify: { + position: 'top-right', + }, + }, + + // iconSet: 'material-icons', // Quasar icon set + // lang: 'en-US', // Quasar language pack + + // For special cases outside of where the auto-import strategy can have an impact + // (like functional components as one of the examples), + // you can manually specify Quasar components/directives to be available everywhere: + // + // components: [], + // directives: [], + + // Quasar plugins + plugins: ['Dialog', 'Notify'], + }, + + // animations: 'all', // --- includes all animations + // https://v2.quasar.dev/options/animations + animations: [], + + // https://v2.quasar.dev/quasar-cli-vite/quasar-config-file#sourcefiles + // sourceFiles: { + // rootComponent: 'src/App.vue', + // router: 'src/router/index', + // store: 'src/store/index', + // pwaRegisterServiceWorker: 'src-pwa/register-service-worker', + // pwaServiceWorker: 'src-pwa/custom-service-worker', + // pwaManifestFile: 'src-pwa/manifest.json', + // electronMain: 'src-electron/electron-main', + // electronPreload: 'src-electron/electron-preload' + // bexManifestFile: 'src-bex/manifest.json + // }, + + // https://v2.quasar.dev/quasar-cli-vite/developing-ssr/configuring-ssr + ssr: { + prodPort: 3000, // The default port that the production server should use + // (gets superseded if process.env.PORT is specified at runtime) + + middlewares: [ + 'render', // keep this as last one + ], + + // extendPackageJson (json) {}, + // extendSSRWebserverConf (esbuildConf) {}, + + // manualStoreSerialization: true, + // manualStoreSsrContextInjection: true, + // manualStoreHydration: true, + // manualPostHydrationTrigger: true, + + pwa: false, + // pwaOfflineHtmlFilename: 'offline.html', // do NOT use index.html as name! + + // pwaExtendGenerateSWOptions (cfg) {}, + // pwaExtendInjectManifestOptions (cfg) {} + }, + + // https://v2.quasar.dev/quasar-cli-vite/developing-pwa/configuring-pwa + pwa: { + workboxMode: 'GenerateSW', // 'GenerateSW' or 'InjectManifest' + // swFilename: 'sw.js', + // manifestFilename: 'manifest.json', + // extendManifestJson (json) {}, + // useCredentialsForManifestTag: true, + // injectPwaMetaTags: false, + // extendPWACustomSWConf (esbuildConf) {}, + // extendGenerateSWOptions (cfg) {}, + // extendInjectManifestOptions (cfg) {} + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-cordova-apps/configuring-cordova + cordova: { + // noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-capacitor-apps/configuring-capacitor + capacitor: { + hideSplashscreen: true, + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-electron-apps/configuring-electron + electron: { + // extendElectronMainConf (esbuildConf) {}, + // extendElectronPreloadConf (esbuildConf) {}, + + // extendPackageJson (json) {}, + + // Electron preload scripts (if any) from /src-electron, WITHOUT file extension + preloadScripts: ['electron-preload'], + + // specify the debugging port to use for the Electron app when running in development mode + inspectPort: 5858, + + bundler: 'packager', // 'packager' or 'builder' + + packager: { + // https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options + // OS X / Mac App Store + // appBundleId: '', + // appCategoryType: '', + // osxSign: '', + // protocol: 'myapp://path', + // Windows only + // win32metadata: { ... } + }, + + builder: { + // https://www.electron.build/configuration/configuration + + appId: 'app', + }, + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-browser-extensions/configuring-bex + bex: { + // extendBexScriptsConf (esbuildConf) {}, + // extendBexManifestJson (json) {}, + + /** + * The list of extra scripts (js/ts) not in your bex manifest that you want to + * compile and use in your browser extension. Maybe dynamic use them? + * + * Each entry in the list should be a relative filename to /src-bex/ + * + * @example [ 'my-script.ts', 'sub-folder/my-other-script.js' ] + */ + extraScripts: [], + }, + }; +}); diff --git a/app/scripts/gen-swiss.cjs b/app/scripts/gen-swiss.cjs new file mode 100644 index 0000000..cbb7cc9 --- /dev/null +++ b/app/scripts/gen-swiss.cjs @@ -0,0 +1,25 @@ +const fs = require('fs') +const path = require('path') +const infile = path.join(__dirname, '..', '..', 'CH.txt') +const out = fs.readFileSync(infile, 'utf8') +const lines = out.split(/\r?\n/) +const map = new Map() +for (const line of lines) { + if (!line || line.trim() === '') continue + const parts = line.split('\t') + const zip = parts[1] + const name = parts[2] + const canton = parts[4] || '' + if (!zip) continue + if (!map.has(zip)) { + map.set(zip, { zip, city: name, canton }) + } +} +const arr = Array.from(map.values()) +function escapeStr(s){ return String(s).replace(/\\/g,'\\\\').replace(/'/g, "\\'") } +let ts = 'export const SWISS_CITIES = [\n' +for (const e of arr) { + ts += ` { zip: '${escapeStr(e.zip)}', city: '${escapeStr(e.city)}', canton: '${escapeStr(e.canton)}' },\n` +} +ts += ']\n' +console.log(ts) diff --git a/app/scripts/gen-swiss.js b/app/scripts/gen-swiss.js new file mode 100644 index 0000000..0e1a84e --- /dev/null +++ b/app/scripts/gen-swiss.js @@ -0,0 +1,26 @@ +const fs = require('fs') +const path = require('path') +const infile = path.join(__dirname, '..', '..', 'CH.txt') +const out = fs.readFileSync(infile, 'utf8') +const lines = out.split(/\r?\n/) +const map = new Map() +for (const line of lines) { + if (!line || line.trim() === '') continue + const parts = line.split('\t') + // parts: 0=CH,1=zip,2=name,3=canton full,4=canton code... + const zip = parts[1] + const name = parts[2] + const canton = parts[4] || '' + if (!zip) continue + if (!map.has(zip)) { + map.set(zip, { zip, city: name, canton }) + } +} +const arr = Array.from(map.values()) +function escapeStr(s){ return s.replace(/\\/g,'\\\\').replace(/'/g, "\\'") } +let ts = 'export const SWISS_CITIES = [\n' +for (const e of arr) { + ts += ` { zip: '${escapeStr(e.zip)}', city: '${escapeStr(e.city)}', canton: '${escapeStr(e.canton)}' },\n` +} +ts += ']\n' +console.log(ts) diff --git a/app/scripts/swiss-out.ts b/app/scripts/swiss-out.ts new file mode 100644 index 0000000..c1bcf5f --- /dev/null +++ b/app/scripts/swiss-out.ts @@ -0,0 +1,3365 @@ +export const SWISS_CITIES = [ + { zip: '5000', city: 'Aarau', canton: 'AG' }, + { zip: '5001', city: 'Aarau 1', canton: 'AG' }, + { zip: '5004', city: 'Aarau', canton: 'AG' }, + { zip: '5017', city: 'Barmelweid', canton: 'AG' }, + { zip: '5018', city: 'Erlinsbach', canton: 'AG' }, + { zip: '5022', city: 'Rombach', canton: 'AG' }, + { zip: '5023', city: 'Biberstein', canton: 'AG' }, + { zip: '5024', city: 'Küttigen', canton: 'AG' }, + { zip: '5025', city: 'Asp', canton: 'AG' }, + { zip: '5026', city: 'Densbüren', canton: 'AG' }, + { zip: '5032', city: 'Aarau Rohr', canton: 'AG' }, + { zip: '5033', city: 'Buchs AG', canton: 'AG' }, + { zip: '5034', city: 'Suhr', canton: 'AG' }, + { zip: '5035', city: 'Unterentfelden', canton: 'AG' }, + { zip: '5036', city: 'Oberentfelden', canton: 'AG' }, + { zip: '5037', city: 'Muhen', canton: 'AG' }, + { zip: '5042', city: 'Hirschthal', canton: 'AG' }, + { zip: '5722', city: 'Gränichen', canton: 'AG' }, + { zip: '5300', city: 'Turgi', canton: 'AG' }, + { zip: '5301', city: 'Siggenthal Station', canton: 'AG' }, + { zip: '5303', city: 'Würenlingen', canton: 'AG' }, + { zip: '5400', city: 'Baden', canton: 'AG' }, + { zip: '5401', city: 'Baden', canton: 'AG' }, + { zip: '5402', city: 'Baden', canton: 'AG' }, + { zip: '5404', city: 'Baden', canton: 'AG' }, + { zip: '5405', city: 'Baden', canton: 'AG' }, + { zip: '5406', city: 'Rütihof', canton: 'AG' }, + { zip: '5408', city: 'Ennetbaden', canton: 'AG' }, + { zip: '5412', city: 'Vogelsang AG', canton: 'AG' }, + { zip: '5413', city: 'Birmenstorf AG', canton: 'AG' }, + { zip: '5415', city: 'Rieden AG', canton: 'AG' }, + { zip: '5416', city: 'Kirchdorf AG', canton: 'AG' }, + { zip: '5417', city: 'Untersiggenthal', canton: 'AG' }, + { zip: '5420', city: 'Ehrendingen', canton: 'AG' }, + { zip: '5423', city: 'Freienwil', canton: 'AG' }, + { zip: '5430', city: 'Wettingen 1', canton: 'AG' }, + { zip: '5432', city: 'Neuenhof', canton: 'AG' }, + { zip: '5436', city: 'Würenlos', canton: 'AG' }, + { zip: '5442', city: 'Fislisbach', canton: 'AG' }, + { zip: '5443', city: 'Niederrohrdorf', canton: 'AG' }, + { zip: '5444', city: 'Künten', canton: 'AG' }, + { zip: '5452', city: 'Oberrohrdorf', canton: 'AG' }, + { zip: '5453', city: 'Remetschwil', canton: 'AG' }, + { zip: '5454', city: 'Bellikon', canton: 'AG' }, + { zip: '5506', city: 'Mägenwil', canton: 'AG' }, + { zip: '5507', city: 'Mellingen', canton: 'AG' }, + { zip: '5512', city: 'Wohlenschwil', canton: 'AG' }, + { zip: '5608', city: 'Stetten AG', canton: 'AG' }, + { zip: '8109', city: 'Kloster Fahr', canton: 'AG' }, + { zip: '8956', city: 'Killwangen', canton: 'AG' }, + { zip: '8957', city: 'Spreitenbach', canton: 'AG' }, + { zip: '8962', city: 'Bergdietikon', canton: 'AG' }, + { zip: '5445', city: 'Eggenwil', canton: 'AG' }, + { zip: '5522', city: 'Tägerig', canton: 'AG' }, + { zip: '5524', city: 'Niederwil AG', canton: 'AG' }, + { zip: '5525', city: 'Fischbach-Göslikon', canton: 'AG' }, + { zip: '5605', city: 'Dottikon', canton: 'AG' }, + { zip: '5607', city: 'Hägglingen', canton: 'AG' }, + { zip: '5610', city: 'Wohlen AG', canton: 'AG' }, + { zip: '5611', city: 'Anglikon', canton: 'AG' }, + { zip: '5612', city: 'Villmergen', canton: 'AG' }, + { zip: '5613', city: 'Hilfikon', canton: 'AG' }, + { zip: '5614', city: 'Sarmenstorf', canton: 'AG' }, + { zip: '5619', city: 'Büttikon AG', canton: 'AG' }, + { zip: '5620', city: 'Bremgarten AG', canton: 'AG' }, + { zip: '5621', city: 'Zufikon', canton: 'AG' }, + { zip: '5626', city: 'Hermetschwil-Staffeln', canton: 'AG' }, + { zip: '8905', city: 'Arni-Islisberg', canton: 'AG' }, + { zip: '8916', city: 'Jonen', canton: 'AG' }, + { zip: '8917', city: 'Oberlunkhofen', canton: 'AG' }, + { zip: '8918', city: 'Unterlunkhofen', canton: 'AG' }, + { zip: '8964', city: 'Rudolfstetten', canton: 'AG' }, + { zip: '8965', city: 'Berikon', canton: 'AG' }, + { zip: '8966', city: 'Oberwil-Lieli', canton: 'AG' }, + { zip: '8967', city: 'Widen', canton: 'AG' }, + { zip: '5105', city: 'Auenstein', canton: 'AG' }, + { zip: '5106', city: 'Veltheim AG', canton: 'AG' }, + { zip: '5107', city: 'Schinznach Dorf', canton: 'AG' }, + { zip: '5108', city: 'Oberflachs', canton: 'AG' }, + { zip: '5112', city: 'Thalheim AG', canton: 'AG' }, + { zip: '5116', city: 'Schinznach Bad', canton: 'AG' }, + { zip: '5200', city: 'Brugg AG', canton: 'AG' }, + { zip: '5201', city: 'Brugg AG', canton: 'AG' }, + { zip: '5210', city: 'Windisch', canton: 'AG' }, + { zip: '5212', city: 'Hausen AG', canton: 'AG' }, + { zip: '5213', city: 'Villnachern', canton: 'AG' }, + { zip: '5222', city: 'Umiken', canton: 'AG' }, + { zip: '5223', city: 'Riniken', canton: 'AG' }, + { zip: '5225', city: 'Bözberg', canton: 'AG' }, + { zip: '5232', city: 'Villigen PSI', canton: 'AG' }, + { zip: '5233', city: 'Stilli', canton: 'AG' }, + { zip: '5234', city: 'Villigen', canton: 'AG' }, + { zip: '5235', city: 'Rüfenach AG', canton: 'AG' }, + { zip: '5236', city: 'Remigen', canton: 'AG' }, + { zip: '5237', city: 'Mönthal', canton: 'AG' }, + { zip: '5242', city: 'Lupfig', canton: 'AG' }, + { zip: '5243', city: 'Mülligen', canton: 'AG' }, + { zip: '5244', city: 'Birrhard', canton: 'AG' }, + { zip: '5245', city: 'Habsburg', canton: 'AG' }, + { zip: '5246', city: 'Scherz', canton: 'AG' }, + { zip: '5318', city: 'Mandach', canton: 'AG' }, + { zip: '5040', city: 'Schöftland', canton: 'AG' }, + { zip: '5043', city: 'Holziken', canton: 'AG' }, + { zip: '5044', city: 'Schlossrued', canton: 'AG' }, + { zip: '5046', city: 'Walde AG', canton: 'AG' }, + { zip: '5708', city: 'Birrwil', canton: 'AG' }, + { zip: '5712', city: 'Beinwil am See', canton: 'AG' }, + { zip: '5723', city: 'Teufenthal AG', canton: 'AG' }, + { zip: '5724', city: 'Dürrenäsch', canton: 'AG' }, + { zip: '5725', city: 'Leutwil', canton: 'AG' }, + { zip: '5726', city: 'Unterkulm', canton: 'AG' }, + { zip: '5727', city: 'Oberkulm', canton: 'AG' }, + { zip: '5728', city: 'Gontenschwil', canton: 'AG' }, + { zip: '5732', city: 'Zetzwil', canton: 'AG' }, + { zip: '5733', city: 'Leimbach AG', canton: 'AG' }, + { zip: '5734', city: 'Reinach AG', canton: 'AG' }, + { zip: '5736', city: 'Burg AG', canton: 'AG' }, + { zip: '5737', city: 'Menziken', canton: 'AG' }, + { zip: '4333', city: 'Münchwilen AG', canton: 'AG' }, + { zip: '4334', city: 'Sisseln AG', canton: 'AG' }, + { zip: '5027', city: 'Herznach', canton: 'AG' }, + { zip: '5028', city: 'Ueken', canton: 'AG' }, + { zip: '5062', city: 'Oberhof', canton: 'AG' }, + { zip: '5063', city: 'Wölflinswil', canton: 'AG' }, + { zip: '5064', city: 'Wittnau', canton: 'AG' }, + { zip: '5070', city: 'Frick', canton: 'AG' }, + { zip: '5072', city: 'Oeschgen', canton: 'AG' }, + { zip: '5073', city: 'Gipf-Oberfrick', canton: 'AG' }, + { zip: '5074', city: 'Eiken', canton: 'AG' }, + { zip: '5075', city: 'Hornussen', canton: 'AG' }, + { zip: '5076', city: 'Bözen', canton: 'AG' }, + { zip: '5077', city: 'Elfingen', canton: 'AG' }, + { zip: '5078', city: 'Effingen', canton: 'AG' }, + { zip: '5079', city: 'Zeihen', canton: 'AG' }, + { zip: '5080', city: 'Laufenburg', canton: 'AG' }, + { zip: '5082', city: 'Kaisten', canton: 'AG' }, + { zip: '5083', city: 'Ittenthal', canton: 'AG' }, + { zip: '5084', city: 'Rheinsulz', canton: 'AG' }, + { zip: '5085', city: 'Sulz AG', canton: 'AG' }, + { zip: '5272', city: 'Gansingen', canton: 'AG' }, + { zip: '5273', city: 'Oberhofen AG', canton: 'AG' }, + { zip: '5274', city: 'Mettau', canton: 'AG' }, + { zip: '5275', city: 'Etzgen', canton: 'AG' }, + { zip: '5276', city: 'Wil AG', canton: 'AG' }, + { zip: '5277', city: 'Hottwil', canton: 'AG' }, + { zip: '5326', city: 'Schwaderloch', canton: 'AG' }, + { zip: '5102', city: 'Rupperswil', canton: 'AG' }, + { zip: '5103', city: 'Wildegg', canton: 'AG' }, + { zip: '5113', city: 'Holderbank AG', canton: 'AG' }, + { zip: '5502', city: 'Hunzenschwil', canton: 'AG' }, + { zip: '5503', city: 'Schafisheim', canton: 'AG' }, + { zip: '5504', city: 'Othmarsingen', canton: 'AG' }, + { zip: '5505', city: 'Brunegg', canton: 'AG' }, + { zip: '5600', city: 'Lenzburg 1', canton: 'AG' }, + { zip: '5603', city: 'Staufen', canton: 'AG' }, + { zip: '5604', city: 'Hendschiken', canton: 'AG' }, + { zip: '5606', city: 'Dintikon', canton: 'AG' }, + { zip: '5615', city: 'Fahrwangen', canton: 'AG' }, + { zip: '5616', city: 'Meisterschwanden', canton: 'AG' }, + { zip: '5617', city: 'Tennwil', canton: 'AG' }, + { zip: '5702', city: 'Niederlenz', canton: 'AG' }, + { zip: '5703', city: 'Seon', canton: 'AG' }, + { zip: '5704', city: 'Egliswil', canton: 'AG' }, + { zip: '5705', city: 'Hallwil', canton: 'AG' }, + { zip: '5706', city: 'Boniswil', canton: 'AG' }, + { zip: '5707', city: 'Seengen', canton: 'AG' }, + { zip: '5618', city: 'Bettwil', canton: 'AG' }, + { zip: '5622', city: 'Waltenschwil', canton: 'AG' }, + { zip: '5623', city: 'Boswil', canton: 'AG' }, + { zip: '5624', city: 'Bünzen', canton: 'AG' }, + { zip: '5625', city: 'Kallern', canton: 'AG' }, + { zip: '5627', city: 'Besenbüren', canton: 'AG' }, + { zip: '5628', city: 'Aristau', canton: 'AG' }, + { zip: '5630', city: 'Muri AG', canton: 'AG' }, + { zip: '5632', city: 'Buttwil', canton: 'AG' }, + { zip: '5634', city: 'Merenschwand', canton: 'AG' }, + { zip: '5636', city: 'Benzenschwil', canton: 'AG' }, + { zip: '5637', city: 'Geltwil', canton: 'AG' }, + { zip: '5642', city: 'Mühlau', canton: 'AG' }, + { zip: '5643', city: 'Alikon', canton: 'AG' }, + { zip: '5644', city: 'Auw', canton: 'AG' }, + { zip: '5645', city: 'Fenkrieden', canton: 'AG' }, + { zip: '5646', city: 'Abtwil AG', canton: 'AG' }, + { zip: '5647', city: 'Oberrüti', canton: 'AG' }, + { zip: '6042', city: 'Dietwil', canton: 'AG' }, + { zip: '8919', city: 'Rottenschwil', canton: 'AG' }, + { zip: '4303', city: 'Kaiseraugst Liebrüti', canton: 'AG' }, + { zip: '4305', city: 'Olsberg', canton: 'AG' }, + { zip: '4310', city: 'Rheinfelden', canton: 'AG' }, + { zip: '4312', city: 'Magden', canton: 'AG' }, + { zip: '4313', city: 'Möhlin', canton: 'AG' }, + { zip: '4314', city: 'Zeiningen', canton: 'AG' }, + { zip: '4315', city: 'Zuzgen', canton: 'AG' }, + { zip: '4316', city: 'Hellikon', canton: 'AG' }, + { zip: '4317', city: 'Wegenstetten', canton: 'AG' }, + { zip: '4322', city: 'Mumpf', canton: 'AG' }, + { zip: '4323', city: 'Wallbach', canton: 'AG' }, + { zip: '4324', city: 'Obermumpf', canton: 'AG' }, + { zip: '4325', city: 'Schupfart', canton: 'AG' }, + { zip: '4332', city: 'Stein AG', canton: 'AG' }, + { zip: '4663', city: 'Aarburg', canton: 'AG' }, + { zip: '4665', city: 'Oftringen 1', canton: 'AG' }, + { zip: '4800', city: 'Zofingen', canton: 'AG' }, + { zip: '4801', city: 'Zofingen', canton: 'AG' }, + { zip: '4802', city: 'Strengelbach', canton: 'AG' }, + { zip: '4803', city: 'Vordemwald', canton: 'AG' }, + { zip: '4805', city: 'Brittnau', canton: 'AG' }, + { zip: '4807', city: 'Zofingen PostFinance', canton: 'AG' }, + { zip: '4808', city: 'Zofingen PF', canton: 'AG' }, + { zip: '4809', city: 'Zofingen PF', canton: 'AG' }, + { zip: '4810', city: 'Zofingen PF', canton: 'AG' }, + { zip: '4812', city: 'Mühlethal', canton: 'AG' }, + { zip: '4813', city: 'Uerkheim', canton: 'AG' }, + { zip: '4814', city: 'Bottenwil', canton: 'AG' }, + { zip: '4852', city: 'Rothrist', canton: 'AG' }, + { zip: '4853', city: 'Murgenthal', canton: 'AG' }, + { zip: '4856', city: 'Glashütten', canton: 'AG' }, + { zip: '5053', city: 'Wittwil', canton: 'AG' }, + { zip: '5054', city: 'Moosleerau', canton: 'AG' }, + { zip: '5056', city: 'Attelwil', canton: 'AG' }, + { zip: '5057', city: 'Reitnau', canton: 'AG' }, + { zip: '5058', city: 'Wiliberg', canton: 'AG' }, + { zip: '5742', city: 'Kölliken', canton: 'AG' }, + { zip: '5745', city: 'Safenwil', canton: 'AG' }, + { zip: '5304', city: 'Endingen', canton: 'AG' }, + { zip: '5305', city: 'Unterendingen', canton: 'AG' }, + { zip: '5306', city: 'Tegerfelden', canton: 'AG' }, + { zip: '5312', city: 'Döttingen', canton: 'AG' }, + { zip: '5313', city: 'Klingnau', canton: 'AG' }, + { zip: '5314', city: 'Kleindöttingen', canton: 'AG' }, + { zip: '5315', city: 'Böttstein', canton: 'AG' }, + { zip: '5316', city: 'Leuggern', canton: 'AG' }, + { zip: '5317', city: 'Hettenschwil', canton: 'AG' }, + { zip: '5322', city: 'Koblenz', canton: 'AG' }, + { zip: '5323', city: 'Rietheim', canton: 'AG' }, + { zip: '5324', city: 'Full-Reuenthal', canton: 'AG' }, + { zip: '5325', city: 'Leibstadt', canton: 'AG' }, + { zip: '5330', city: 'Bad Zurzach', canton: 'AG' }, + { zip: '5332', city: 'Rekingen AG', canton: 'AG' }, + { zip: '5333', city: 'Baldingen', canton: 'AG' }, + { zip: '5334', city: 'Böbikon', canton: 'AG' }, + { zip: '5425', city: 'Schneisingen', canton: 'AG' }, + { zip: '5426', city: 'Lengnau AG', canton: 'AG' }, + { zip: '5462', city: 'Siglistorf', canton: 'AG' }, + { zip: '5463', city: 'Wislikofen', canton: 'AG' }, + { zip: '5464', city: 'Rümikon AG', canton: 'AG' }, + { zip: '5465', city: 'Mellikon', canton: 'AG' }, + { zip: '5466', city: 'Kaiserstuhl AG', canton: 'AG' }, + { zip: '5467', city: 'Fisibach', canton: 'AG' }, + { zip: '9050', city: 'Appenzell', canton: 'AI' }, + { zip: '9054', city: 'Haslen AI', canton: 'AI' }, + { zip: '9057', city: 'Wasserauen', canton: 'AI' }, + { zip: '9058', city: 'Brülisau', canton: 'AI' }, + { zip: '9108', city: 'Jakobsbad', canton: 'AI' }, + { zip: '9413', city: 'Oberegg', canton: 'AI' }, + { zip: '9442', city: 'Büriswilen', canton: 'AI' }, + { zip: '9063', city: 'Stein AR', canton: 'AR' }, + { zip: '9064', city: 'Hundwil', canton: 'AR' }, + { zip: '9100', city: 'Herisau', canton: 'AR' }, + { zip: '9102', city: 'Herisau', canton: 'AR' }, + { zip: '9103', city: 'Schwellbrunn', canton: 'AR' }, + { zip: '9104', city: 'Waldstatt', canton: 'AR' }, + { zip: '9105', city: 'Schönengrund', canton: 'AR' }, + { zip: '9107', city: 'Urnäsch', canton: 'AR' }, + { zip: '9112', city: 'Schachen b. Herisau', canton: 'AR' }, + { zip: '9037', city: 'Speicherschwendi', canton: 'AR' }, + { zip: '9042', city: 'Speicher', canton: 'AR' }, + { zip: '9043', city: 'Trogen', canton: 'AR' }, + { zip: '9052', city: 'Niederteufen', canton: 'AR' }, + { zip: '9053', city: 'Teufen AR', canton: 'AR' }, + { zip: '9055', city: 'Bühler', canton: 'AR' }, + { zip: '9056', city: 'Gais', canton: 'AR' }, + { zip: '9062', city: 'Lustmühle', canton: 'AR' }, + { zip: '9035', city: 'Grub AR', canton: 'AR' }, + { zip: '9038', city: 'Rehetobel', canton: 'AR' }, + { zip: '9044', city: 'Wald AR', canton: 'AR' }, + { zip: '9405', city: 'Wienacht-Tobel', canton: 'AR' }, + { zip: '9410', city: 'Heiden', canton: 'AR' }, + { zip: '9411', city: 'Schachen b. Reute', canton: 'AR' }, + { zip: '9426', city: 'Lutzenberg', canton: 'AR' }, + { zip: '9427', city: 'Wolfhalden', canton: 'AR' }, + { zip: '9428', city: 'Walzenhausen', canton: 'AR' }, + { zip: '2333', city: 'La Ferrière', canton: 'BE' }, + { zip: '2345', city: 'Le Cerneux-Veusil', canton: 'BE' }, + { zip: '2515', city: 'Prêles', canton: 'BE' }, + { zip: '2516', city: 'Lamboing', canton: 'BE' }, + { zip: '2517', city: 'Diesse', canton: 'BE' }, + { zip: '2518', city: 'Nods', canton: 'BE' }, + { zip: '2520', city: 'La Neuveville', canton: 'BE' }, + { zip: '2534', city: 'Les Prés-d\'Orvin', canton: 'BE' }, + { zip: '2535', city: 'Frinvillier', canton: 'BE' }, + { zip: '2536', city: 'Plagne', canton: 'BE' }, + { zip: '2537', city: 'Vauffelin', canton: 'BE' }, + { zip: '2538', city: 'Romont BE', canton: 'BE' }, + { zip: '2603', city: 'Péry', canton: 'BE' }, + { zip: '2604', city: 'La Heutte', canton: 'BE' }, + { zip: '2605', city: 'Sonceboz-Sombeval', canton: 'BE' }, + { zip: '2606', city: 'Corgémont', canton: 'BE' }, + { zip: '2607', city: 'Cortébert', canton: 'BE' }, + { zip: '2608', city: 'Courtelary', canton: 'BE' }, + { zip: '2610', city: 'St-Imier', canton: 'BE' }, + { zip: '2612', city: 'Cormoret', canton: 'BE' }, + { zip: '2613', city: 'Villeret', canton: 'BE' }, + { zip: '2615', city: 'Sonvilier', canton: 'BE' }, + { zip: '2616', city: 'Renan BE', canton: 'BE' }, + { zip: '2710', city: 'Tavannes', canton: 'BE' }, + { zip: '2712', city: 'Le Fuet', canton: 'BE' }, + { zip: '2713', city: 'Bellelay', canton: 'BE' }, + { zip: '2715', city: 'Monible', canton: 'BE' }, + { zip: '2716', city: 'Sornetan', canton: 'BE' }, + { zip: '2717', city: 'Fornet-Dessous', canton: 'BE' }, + { zip: '2720', city: 'Tramelan', canton: 'BE' }, + { zip: '2722', city: 'Les Reussilles', canton: 'BE' }, + { zip: '2723', city: 'Mont-Tramelan', canton: 'BE' }, + { zip: '2732', city: 'Loveresse', canton: 'BE' }, + { zip: '2733', city: 'Pontenet', canton: 'BE' }, + { zip: '2735', city: 'Malleray-Bévilard', canton: 'BE' }, + { zip: '2736', city: 'Sorvilier', canton: 'BE' }, + { zip: '2738', city: 'Court', canton: 'BE' }, + { zip: '2740', city: 'Moutier', canton: 'BE' }, + { zip: '2742', city: 'Perrefitte', canton: 'BE' }, + { zip: '2743', city: 'Eschert', canton: 'BE' }, + { zip: '2744', city: 'Belprahon', canton: 'BE' }, + { zip: '2745', city: 'Grandval', canton: 'BE' }, + { zip: '2746', city: 'Crémines', canton: 'BE' }, + { zip: '2747', city: 'Corcelles BE', canton: 'BE' }, + { zip: '2748', city: 'Souboz', canton: 'BE' }, + { zip: '2762', city: 'Roches BE', canton: 'BE' }, + { zip: '2827', city: 'Schelten', canton: 'BE' }, + { zip: '2500', city: 'Biel/Bienne 4', canton: 'BE' }, + { zip: '2501', city: 'Biel/Bienne', canton: 'BE' }, + { zip: '2502', city: 'Biel/Bienne', canton: 'BE' }, + { zip: '2503', city: 'Biel/Bienne', canton: 'BE' }, + { zip: '2504', city: 'Biel/Bienne', canton: 'BE' }, + { zip: '2505', city: 'Biel/Bienne', canton: 'BE' }, + { zip: '2512', city: 'Tüscherz-Alfermée', canton: 'BE' }, + { zip: '2513', city: 'Twann', canton: 'BE' }, + { zip: '2514', city: 'Ligerz', canton: 'BE' }, + { zip: '2532', city: 'Macolin', canton: 'BE' }, + { zip: '2533', city: 'Evilard', canton: 'BE' }, + { zip: '2542', city: 'Pieterlen', canton: 'BE' }, + { zip: '2543', city: 'Lengnau BE', canton: 'BE' }, + { zip: '2552', city: 'Orpund', canton: 'BE' }, + { zip: '2553', city: 'Safnern', canton: 'BE' }, + { zip: '2554', city: 'Meinisberg', canton: 'BE' }, + { zip: '2555', city: 'Brügg BE', canton: 'BE' }, + { zip: '2556', city: 'Scheuren', canton: 'BE' }, + { zip: '2558', city: 'Aegerten', canton: 'BE' }, + { zip: '2560', city: 'Nidau', canton: 'BE' }, + { zip: '2562', city: 'Port', canton: 'BE' }, + { zip: '2563', city: 'Ipsach', canton: 'BE' }, + { zip: '2564', city: 'Bellmund', canton: 'BE' }, + { zip: '2572', city: 'Mörigen', canton: 'BE' }, + { zip: '2557', city: 'Studen BE', canton: 'BE' }, + { zip: '2565', city: 'Jens', canton: 'BE' }, + { zip: '2575', city: 'Gerolfingen', canton: 'BE' }, + { zip: '2576', city: 'Lüscherz', canton: 'BE' }, + { zip: '2577', city: 'Siselen BE', canton: 'BE' }, + { zip: '3035', city: 'Frieswil', canton: 'BE' }, + { zip: '3036', city: 'Detligen', canton: 'BE' }, + { zip: '3053', city: 'Lätti', canton: 'BE' }, + { zip: '3054', city: 'Schüpfen', canton: 'BE' }, + { zip: '3225', city: 'Müntschemier', canton: 'BE' }, + { zip: '3226', city: 'Treiten', canton: 'BE' }, + { zip: '3232', city: 'Ins', canton: 'BE' }, + { zip: '3233', city: 'Tschugg', canton: 'BE' }, + { zip: '3234', city: 'Vinelz', canton: 'BE' }, + { zip: '3235', city: 'Erlach', canton: 'BE' }, + { zip: '3236', city: 'Gampelen', canton: 'BE' }, + { zip: '3237', city: 'Brüttelen', canton: 'BE' }, + { zip: '3238', city: 'Gals', canton: 'BE' }, + { zip: '3250', city: 'Lyss', canton: 'BE' }, + { zip: '3251', city: 'Wengi b. Büren', canton: 'BE' }, + { zip: '3252', city: 'Worben', canton: 'BE' }, + { zip: '3255', city: 'Rapperswil BE', canton: 'BE' }, + { zip: '3256', city: 'Seewil', canton: 'BE' }, + { zip: '3257', city: 'Grossaffoltern', canton: 'BE' }, + { zip: '3262', city: 'Suberg', canton: 'BE' }, + { zip: '3263', city: 'Büetigen', canton: 'BE' }, + { zip: '3264', city: 'Diessbach b. Büren', canton: 'BE' }, + { zip: '3266', city: 'Wiler b. Seedorf', canton: 'BE' }, + { zip: '3267', city: 'Seedorf BE', canton: 'BE' }, + { zip: '3268', city: 'Lobsigen', canton: 'BE' }, + { zip: '3270', city: 'Aarberg', canton: 'BE' }, + { zip: '3271', city: 'Radelfingen b. Aarberg', canton: 'BE' }, + { zip: '3272', city: 'Walperswil', canton: 'BE' }, + { zip: '3273', city: 'Kappelen', canton: 'BE' }, + { zip: '3274', city: 'Merzligen', canton: 'BE' }, + { zip: '3282', city: 'Bargen BE', canton: 'BE' }, + { zip: '3283', city: 'Kallnach', canton: 'BE' }, + { zip: '3292', city: 'Busswil BE', canton: 'BE' }, + { zip: '3293', city: 'Dotzigen', canton: 'BE' }, + { zip: '3294', city: 'Meienried', canton: 'BE' }, + { zip: '3295', city: 'Rüti b. Büren', canton: 'BE' }, + { zip: '3296', city: 'Arch', canton: 'BE' }, + { zip: '3297', city: 'Leuzigen', canton: 'BE' }, + { zip: '3298', city: 'Oberwil b. Büren', canton: 'BE' }, + { zip: '3360', city: 'Herzogenbuchsee', canton: 'BE' }, + { zip: '3362', city: 'Niederönz', canton: 'BE' }, + { zip: '3363', city: 'Oberönz', canton: 'BE' }, + { zip: '3365', city: 'Seeberg', canton: 'BE' }, + { zip: '3366', city: 'Bettenhausen', canton: 'BE' }, + { zip: '3367', city: 'Ochlenberg', canton: 'BE' }, + { zip: '3368', city: 'Bleienbach', canton: 'BE' }, + { zip: '3372', city: 'Wanzwil', canton: 'BE' }, + { zip: '3373', city: 'Röthenbach Herzogenbuchsee', canton: 'BE' }, + { zip: '3374', city: 'Wangenried', canton: 'BE' }, + { zip: '3375', city: 'Inkwil', canton: 'BE' }, + { zip: '3376', city: 'Berken', canton: 'BE' }, + { zip: '3377', city: 'Walliswil b. Wangen', canton: 'BE' }, + { zip: '3380', city: 'Wangen an der Aare', canton: 'BE' }, + { zip: '3464', city: 'Schmidigen-Mühleweg', canton: 'BE' }, + { zip: '3475', city: 'Hermiswil', canton: 'BE' }, + { zip: '3476', city: 'Oschwand', canton: 'BE' }, + { zip: '4536', city: 'Attiswil', canton: 'BE' }, + { zip: '4537', city: 'Wiedlisbach', canton: 'BE' }, + { zip: '4538', city: 'Oberbipp', canton: 'BE' }, + { zip: '4539', city: 'Rumisberg', canton: 'BE' }, + { zip: '4704', city: 'Niederbipp', canton: 'BE' }, + { zip: '4900', city: 'Langenthal', canton: 'BE' }, + { zip: '4901', city: 'Langenthal', canton: 'BE' }, + { zip: '4911', city: 'Schwarzhäusern', canton: 'BE' }, + { zip: '4912', city: 'Aarwangen', canton: 'BE' }, + { zip: '4913', city: 'Bannwil', canton: 'BE' }, + { zip: '4914', city: 'Roggwil BE', canton: 'BE' }, + { zip: '4916', city: 'Untersteckholz', canton: 'BE' }, + { zip: '4917', city: 'Melchnau', canton: 'BE' }, + { zip: '4919', city: 'Reisiswil', canton: 'BE' }, + { zip: '4922', city: 'Thunstetten', canton: 'BE' }, + { zip: '4923', city: 'Wynau', canton: 'BE' }, + { zip: '4924', city: 'Obersteckholz', canton: 'BE' }, + { zip: '4932', city: 'Lotzwil', canton: 'BE' }, + { zip: '4933', city: 'Rütschelen', canton: 'BE' }, + { zip: '4934', city: 'Madiswil', canton: 'BE' }, + { zip: '4935', city: 'Leimiswil', canton: 'BE' }, + { zip: '4936', city: 'Kleindietwil', canton: 'BE' }, + { zip: '4937', city: 'Ursenbach', canton: 'BE' }, + { zip: '4938', city: 'Rohrbach', canton: 'BE' }, + { zip: '4942', city: 'Walterswil BE', canton: 'BE' }, + { zip: '4943', city: 'Oeschenbach', canton: 'BE' }, + { zip: '4944', city: 'Auswil', canton: 'BE' }, + { zip: '4950', city: 'Huttwil', canton: 'BE' }, + { zip: '4952', city: 'Eriswil', canton: 'BE' }, + { zip: '4953', city: 'Schwarzenbach (Huttwil)', canton: 'BE' }, + { zip: '4954', city: 'Wyssachen', canton: 'BE' }, + { zip: '4955', city: 'Gondiswil', canton: 'BE' }, + { zip: '3309', city: 'Kernenried', canton: 'BE' }, + { zip: '3315', city: 'Kräiligen', canton: 'BE' }, + { zip: '3324', city: 'Hindelbank', canton: 'BE' }, + { zip: '3325', city: 'Hettiswil b. Hindelbank', canton: 'BE' }, + { zip: '3326', city: 'Krauchthal', canton: 'BE' }, + { zip: '3400', city: 'Burgdorf', canton: 'BE' }, + { zip: '3401', city: 'Burgdorf', canton: 'BE' }, + { zip: '3412', city: 'Heimiswil', canton: 'BE' }, + { zip: '3413', city: 'Kaltacker', canton: 'BE' }, + { zip: '3414', city: 'Oberburg', canton: 'BE' }, + { zip: '3415', city: 'Schafhausen im Emmental', canton: 'BE' }, + { zip: '3416', city: 'Affoltern im Emmental', canton: 'BE' }, + { zip: '3417', city: 'Rüegsau', canton: 'BE' }, + { zip: '3418', city: 'Rüegsbach', canton: 'BE' }, + { zip: '3419', city: 'Biembach im Emmental', canton: 'BE' }, + { zip: '3421', city: 'Lyssach', canton: 'BE' }, + { zip: '3422', city: 'Kirchberg BE', canton: 'BE' }, + { zip: '3423', city: 'Ersigen', canton: 'BE' }, + { zip: '3424', city: 'Niederösch', canton: 'BE' }, + { zip: '3425', city: 'Willadingen', canton: 'BE' }, + { zip: '3426', city: 'Aefligen', canton: 'BE' }, + { zip: '3427', city: 'Utzenstorf', canton: 'BE' }, + { zip: '3428', city: 'Wiler b. Utzenstorf', canton: 'BE' }, + { zip: '3429', city: 'Hellsau', canton: 'BE' }, + { zip: '3432', city: 'Lützelflüh-Goldbach', canton: 'BE' }, + { zip: '3433', city: 'Schwanden im Emmental', canton: 'BE' }, + { zip: '3435', city: 'Ramsei', canton: 'BE' }, + { zip: '3436', city: 'Zollbrück', canton: 'BE' }, + { zip: '3437', city: 'Rüderswil', canton: 'BE' }, + { zip: '3438', city: 'Lauperswil', canton: 'BE' }, + { zip: '3439', city: 'Ranflüh', canton: 'BE' }, + { zip: '3452', city: 'Grünenmatt', canton: 'BE' }, + { zip: '3453', city: 'Heimisbach', canton: 'BE' }, + { zip: '3454', city: 'Sumiswald', canton: 'BE' }, + { zip: '3455', city: 'Grünen', canton: 'BE' }, + { zip: '3456', city: 'Trachselwald', canton: 'BE' }, + { zip: '3457', city: 'Wasen im Emmental', canton: 'BE' }, + { zip: '3462', city: 'Weier im Emmental', canton: 'BE' }, + { zip: '3463', city: 'Häusernmoos im Emmental', canton: 'BE' }, + { zip: '3465', city: 'Dürrenroth', canton: 'BE' }, + { zip: '3472', city: 'Rumendingen', canton: 'BE' }, + { zip: '3473', city: 'Alchenstorf', canton: 'BE' }, + { zip: '3474', city: 'Rüedisbach', canton: 'BE' }, + { zip: '3534', city: 'Signau', canton: 'BE' }, + { zip: '3535', city: 'Schüpbach', canton: 'BE' }, + { zip: '3536', city: 'Aeschau', canton: 'BE' }, + { zip: '3537', city: 'Eggiwil', canton: 'BE' }, + { zip: '3538', city: 'Röthenbach im Emmental', canton: 'BE' }, + { zip: '3543', city: 'Emmenmatt', canton: 'BE' }, + { zip: '3550', city: 'Langnau im Emmental', canton: 'BE' }, + { zip: '3551', city: 'Oberfrittenbach', canton: 'BE' }, + { zip: '3552', city: 'Bärau', canton: 'BE' }, + { zip: '3553', city: 'Gohl', canton: 'BE' }, + { zip: '3555', city: 'Trubschachen', canton: 'BE' }, + { zip: '3556', city: 'Trub', canton: 'BE' }, + { zip: '3557', city: 'Fankhaus (Trub)', canton: 'BE' }, + { zip: '3618', city: 'Süderen', canton: 'BE' }, + { zip: '4564', city: 'Zielebach', canton: 'BE' }, + { zip: '6197', city: 'Schangnau', canton: 'BE' }, + { zip: '1595', city: 'Clavaleyres', canton: 'BE' }, + { zip: '1738', city: 'Sangernboden', canton: 'BE' }, + { zip: '1797', city: 'Münchenwiler', canton: 'BE' }, + { zip: '3000', city: 'Bern 9', canton: 'BE' }, + { zip: '3001', city: 'Bern', canton: 'BE' }, + { zip: '3002', city: 'Bern PostFinance', canton: 'BE' }, + { zip: '3003', city: 'Bern', canton: 'BE' }, + { zip: '3004', city: 'Bern', canton: 'BE' }, + { zip: '3005', city: 'Bern', canton: 'BE' }, + { zip: '3006', city: 'Bern', canton: 'BE' }, + { zip: '3007', city: 'Bern', canton: 'BE' }, + { zip: '3008', city: 'Bern', canton: 'BE' }, + { zip: '3010', city: 'Bern', canton: 'BE' }, + { zip: '3011', city: 'Bern', canton: 'BE' }, + { zip: '3012', city: 'Bern', canton: 'BE' }, + { zip: '3013', city: 'Bern', canton: 'BE' }, + { zip: '3014', city: 'Bern', canton: 'BE' }, + { zip: '3015', city: 'Bern', canton: 'BE' }, + { zip: '3018', city: 'Bern', canton: 'BE' }, + { zip: '3019', city: 'Bern', canton: 'BE' }, + { zip: '3020', city: 'Bern', canton: 'BE' }, + { zip: '3024', city: 'Bern', canton: 'BE' }, + { zip: '3027', city: 'Bern', canton: 'BE' }, + { zip: '3029', city: 'Bern', canton: 'BE' }, + { zip: '3030', city: 'Bern', canton: 'BE' }, + { zip: '3032', city: 'Hinterkappelen', canton: 'BE' }, + { zip: '3033', city: 'Wohlen b. Bern', canton: 'BE' }, + { zip: '3034', city: 'Murzelen', canton: 'BE' }, + { zip: '3037', city: 'Herrenschwanden', canton: 'BE' }, + { zip: '3038', city: 'Kirchlindach', canton: 'BE' }, + { zip: '3039', city: 'Bern PF OC', canton: 'BE' }, + { zip: '3040', city: 'Bern Verarb.zentr.', canton: 'BE' }, + { zip: '3041', city: 'Bern UBS', canton: 'BE' }, + { zip: '3042', city: 'Ortschwaben', canton: 'BE' }, + { zip: '3043', city: 'Uettligen', canton: 'BE' }, + { zip: '3044', city: 'Innerberg', canton: 'BE' }, + { zip: '3045', city: 'Meikirch', canton: 'BE' }, + { zip: '3046', city: 'Wahlendorf', canton: 'BE' }, + { zip: '3047', city: 'Bremgarten b. Bern', canton: 'BE' }, + { zip: '3048', city: 'Worblaufen', canton: 'BE' }, + { zip: '3049', city: 'Säriswil', canton: 'BE' }, + { zip: '3050', city: 'Bern Swisscom', canton: 'BE' }, + { zip: '3052', city: 'Zollikofen', canton: 'BE' }, + { zip: '3063', city: 'Ittigen', canton: 'BE' }, + { zip: '3065', city: 'Bolligen', canton: 'BE' }, + { zip: '3066', city: 'Stettlen', canton: 'BE' }, + { zip: '3067', city: 'Boll', canton: 'BE' }, + { zip: '3068', city: 'Utzigen', canton: 'BE' }, + { zip: '3071', city: 'Ostermundigen KATA', canton: 'BE' }, + { zip: '3072', city: 'Ostermundigen 1', canton: 'BE' }, + { zip: '3073', city: 'Gümligen', canton: 'BE' }, + { zip: '3074', city: 'Muri b. Bern', canton: 'BE' }, + { zip: '3075', city: 'Vielbringen b. Worb', canton: 'BE' }, + { zip: '3076', city: 'Worb', canton: 'BE' }, + { zip: '3077', city: 'Enggistein', canton: 'BE' }, + { zip: '3078', city: 'Richigen', canton: 'BE' }, + { zip: '3082', city: 'Schlosswil', canton: 'BE' }, + { zip: '3083', city: 'Trimstein', canton: 'BE' }, + { zip: '3084', city: 'Wabern', canton: 'BE' }, + { zip: '3085', city: 'Wabern Weihnachten', canton: 'BE' }, + { zip: '3086', city: 'Englisberg', canton: 'BE' }, + { zip: '3087', city: 'Niedermuhlern', canton: 'BE' }, + { zip: '3088', city: 'Rüeggisberg', canton: 'BE' }, + { zip: '3089', city: 'Hinterfultigen', canton: 'BE' }, + { zip: '3095', city: 'Spiegel b. Bern', canton: 'BE' }, + { zip: '3096', city: 'Oberbalm', canton: 'BE' }, + { zip: '3097', city: 'Liebefeld', canton: 'BE' }, + { zip: '3098', city: 'Schliern b. Köniz', canton: 'BE' }, + { zip: '3099', city: 'Rüti b. Riggisberg', canton: 'BE' }, + { zip: '3110', city: 'Münsingen', canton: 'BE' }, + { zip: '3111', city: 'Tägertschi', canton: 'BE' }, + { zip: '3112', city: 'Allmendingen b. Bern', canton: 'BE' }, + { zip: '3113', city: 'Rubigen', canton: 'BE' }, + { zip: '3114', city: 'Wichtrach', canton: 'BE' }, + { zip: '3115', city: 'Gerzensee', canton: 'BE' }, + { zip: '3116', city: 'Noflen BE', canton: 'BE' }, + { zip: '3122', city: 'Kehrsatz', canton: 'BE' }, + { zip: '3123', city: 'Belp', canton: 'BE' }, + { zip: '3124', city: 'Belpberg', canton: 'BE' }, + { zip: '3125', city: 'Toffen', canton: 'BE' }, + { zip: '3126', city: 'Kaufdorf', canton: 'BE' }, + { zip: '3127', city: 'Lohnstorf', canton: 'BE' }, + { zip: '3128', city: 'Kirchenthurnen', canton: 'BE' }, + { zip: '3132', city: 'Riggisberg', canton: 'BE' }, + { zip: '3144', city: 'Gasel', canton: 'BE' }, + { zip: '3145', city: 'Niederscherli', canton: 'BE' }, + { zip: '3147', city: 'Mittelhäusern', canton: 'BE' }, + { zip: '3148', city: 'Lanzenhäusern', canton: 'BE' }, + { zip: '3150', city: 'Schwarzenburg', canton: 'BE' }, + { zip: '3152', city: 'Mamishaus', canton: 'BE' }, + { zip: '3153', city: 'Rüschegg Gambach', canton: 'BE' }, + { zip: '3154', city: 'Rüschegg Heubach', canton: 'BE' }, + { zip: '3155', city: 'Helgisried-Rohrbach', canton: 'BE' }, + { zip: '3156', city: 'Riffenmatt', canton: 'BE' }, + { zip: '3157', city: 'Milken', canton: 'BE' }, + { zip: '3158', city: 'Guggisberg', canton: 'BE' }, + { zip: '3159', city: 'Riedstätt', canton: 'BE' }, + { zip: '3172', city: 'Niederwangen b. Bern', canton: 'BE' }, + { zip: '3173', city: 'Oberwangen b. Bern', canton: 'BE' }, + { zip: '3174', city: 'Thörishaus', canton: 'BE' }, + { zip: '3176', city: 'Neuenegg', canton: 'BE' }, + { zip: '3177', city: 'Laupen BE', canton: 'BE' }, + { zip: '3179', city: 'Kriechenwil', canton: 'BE' }, + { zip: '3183', city: 'Albligen', canton: 'BE' }, + { zip: '3202', city: 'Frauenkappelen', canton: 'BE' }, + { zip: '3203', city: 'Mühleberg', canton: 'BE' }, + { zip: '3204', city: 'Rosshäusern', canton: 'BE' }, + { zip: '3205', city: 'Gümmenen', canton: 'BE' }, + { zip: '3206', city: 'Ferenbalm', canton: 'BE' }, + { zip: '3207', city: 'Wileroltigen', canton: 'BE' }, + { zip: '3208', city: 'Gurbrü', canton: 'BE' }, + { zip: '3302', city: 'Moosseedorf', canton: 'BE' }, + { zip: '3303', city: 'Jegenstorf', canton: 'BE' }, + { zip: '3305', city: 'Iffwil', canton: 'BE' }, + { zip: '3306', city: 'Etzelkofen', canton: 'BE' }, + { zip: '3308', city: 'Grafenried', canton: 'BE' }, + { zip: '3312', city: 'Fraubrunnen', canton: 'BE' }, + { zip: '3313', city: 'Büren zum Hof', canton: 'BE' }, + { zip: '3314', city: 'Schalunen', canton: 'BE' }, + { zip: '3317', city: 'Limpach', canton: 'BE' }, + { zip: '3321', city: 'Schönbühl Einkaufszentrum', canton: 'BE' }, + { zip: '3322', city: 'Urtenen-Schönbühl', canton: 'BE' }, + { zip: '3323', city: 'Bäriswil BE', canton: 'BE' }, + { zip: '3434', city: 'Landiswil', canton: 'BE' }, + { zip: '3503', city: 'Gysenstein', canton: 'BE' }, + { zip: '3504', city: 'Oberhünigen', canton: 'BE' }, + { zip: '3506', city: 'Grosshöchstetten', canton: 'BE' }, + { zip: '3507', city: 'Biglen', canton: 'BE' }, + { zip: '3508', city: 'Arni BE', canton: 'BE' }, + { zip: '3510', city: 'Häutligen', canton: 'BE' }, + { zip: '3512', city: 'Walkringen', canton: 'BE' }, + { zip: '3513', city: 'Bigenthal', canton: 'BE' }, + { zip: '3531', city: 'Oberthal', canton: 'BE' }, + { zip: '3532', city: 'Zäziwil', canton: 'BE' }, + { zip: '3533', city: 'Bowil', canton: 'BE' }, + { zip: '3629', city: 'Kiesen', canton: 'BE' }, + { zip: '3671', city: 'Herbligen', canton: 'BE' }, + { zip: '3672', city: 'Oberdiessbach', canton: 'BE' }, + { zip: '3673', city: 'Linden', canton: 'BE' }, + { zip: '3674', city: 'Bleiken b. Oberdiessbach', canton: 'BE' }, + { zip: '3600', city: 'Thun', canton: 'BE' }, + { zip: '3602', city: 'Thun', canton: 'BE' }, + { zip: '3603', city: 'Thun', canton: 'BE' }, + { zip: '3604', city: 'Thun', canton: 'BE' }, + { zip: '3607', city: 'Thun', canton: 'BE' }, + { zip: '3608', city: 'Thun', canton: 'BE' }, + { zip: '3609', city: 'Thun', canton: 'BE' }, + { zip: '3612', city: 'Steffisburg', canton: 'BE' }, + { zip: '3613', city: 'Steffisburg', canton: 'BE' }, + { zip: '3614', city: 'Unterlangenegg', canton: 'BE' }, + { zip: '3615', city: 'Heimenschwand', canton: 'BE' }, + { zip: '3616', city: 'Schwarzenegg', canton: 'BE' }, + { zip: '3617', city: 'Fahrni b. Thun', canton: 'BE' }, + { zip: '3619', city: 'Eriz', canton: 'BE' }, + { zip: '3622', city: 'Homberg b. Thun', canton: 'BE' }, + { zip: '3623', city: 'Horrenbach', canton: 'BE' }, + { zip: '3624', city: 'Schwendibach', canton: 'BE' }, + { zip: '3625', city: 'Heiligenschwendi', canton: 'BE' }, + { zip: '3626', city: 'Hünibach', canton: 'BE' }, + { zip: '3627', city: 'Heimberg', canton: 'BE' }, + { zip: '3628', city: 'Uttigen', canton: 'BE' }, + { zip: '3631', city: 'Höfen b. Thun', canton: 'BE' }, + { zip: '3632', city: 'Niederstocken', canton: 'BE' }, + { zip: '3633', city: 'Amsoldingen', canton: 'BE' }, + { zip: '3634', city: 'Thierachern', canton: 'BE' }, + { zip: '3635', city: 'Uebeschi', canton: 'BE' }, + { zip: '3636', city: 'Längenbühl', canton: 'BE' }, + { zip: '3638', city: 'Pohlern', canton: 'BE' }, + { zip: '3645', city: 'Zwieselberg', canton: 'BE' }, + { zip: '3647', city: 'Reutigen', canton: 'BE' }, + { zip: '3652', city: 'Hilterfingen', canton: 'BE' }, + { zip: '3653', city: 'Oberhofen am Thunersee', canton: 'BE' }, + { zip: '3654', city: 'Gunten', canton: 'BE' }, + { zip: '3655', city: 'Sigriswil', canton: 'BE' }, + { zip: '3656', city: 'Tschingel ob Gunten', canton: 'BE' }, + { zip: '3657', city: 'Schwanden (Sigriswil)', canton: 'BE' }, + { zip: '3658', city: 'Merligen', canton: 'BE' }, + { zip: '3661', city: 'Uetendorf', canton: 'BE' }, + { zip: '3662', city: 'Seftigen', canton: 'BE' }, + { zip: '3663', city: 'Gurzelen', canton: 'BE' }, + { zip: '3664', city: 'Burgistein', canton: 'BE' }, + { zip: '3665', city: 'Wattenwil', canton: 'BE' }, + { zip: '1657', city: 'Abländschen', canton: 'BE' }, + { zip: '3766', city: 'Boltigen', canton: 'BE' }, + { zip: '3770', city: 'Zweisimmen', canton: 'BE' }, + { zip: '3771', city: 'Blankenburg', canton: 'BE' }, + { zip: '3772', city: 'St. Stephan', canton: 'BE' }, + { zip: '3773', city: 'Matten (St. Stephan)', canton: 'BE' }, + { zip: '3775', city: 'Lenk im Simmental', canton: 'BE' }, + { zip: '3776', city: 'Oeschseite', canton: 'BE' }, + { zip: '3777', city: 'Saanenmöser', canton: 'BE' }, + { zip: '3778', city: 'Schönried', canton: 'BE' }, + { zip: '3780', city: 'Gstaad', canton: 'BE' }, + { zip: '3781', city: 'Turbach', canton: 'BE' }, + { zip: '3782', city: 'Lauenen b. Gstaad', canton: 'BE' }, + { zip: '3783', city: 'Grund b. Gstaad', canton: 'BE' }, + { zip: '3784', city: 'Feutersoey', canton: 'BE' }, + { zip: '3785', city: 'Gsteig b. Gstaad', canton: 'BE' }, + { zip: '3792', city: 'Saanen', canton: 'BE' }, + { zip: '3646', city: 'Einigen', canton: 'BE' }, + { zip: '3700', city: 'Spiez', canton: 'BE' }, + { zip: '3702', city: 'Hondrich', canton: 'BE' }, + { zip: '3703', city: 'Aeschiried', canton: 'BE' }, + { zip: '3704', city: 'Krattigen', canton: 'BE' }, + { zip: '3705', city: 'Faulensee', canton: 'BE' }, + { zip: '3711', city: 'Mülenen', canton: 'BE' }, + { zip: '3713', city: 'Reichenbach im Kandertal', canton: 'BE' }, + { zip: '3714', city: 'Wengi b. Frutigen', canton: 'BE' }, + { zip: '3715', city: 'Adelboden', canton: 'BE' }, + { zip: '3716', city: 'Kandergrund', canton: 'BE' }, + { zip: '3717', city: 'Blausee-Mitholz', canton: 'BE' }, + { zip: '3718', city: 'Kandersteg', canton: 'BE' }, + { zip: '3722', city: 'Scharnachtal', canton: 'BE' }, + { zip: '3723', city: 'Kiental', canton: 'BE' }, + { zip: '3724', city: 'Ried (Frutigen)', canton: 'BE' }, + { zip: '3725', city: 'Achseten', canton: 'BE' }, + { zip: '3752', city: 'Wimmis', canton: 'BE' }, + { zip: '3753', city: 'Oey', canton: 'BE' }, + { zip: '3754', city: 'Diemtigen', canton: 'BE' }, + { zip: '3755', city: 'Horboden', canton: 'BE' }, + { zip: '3756', city: 'Zwischenflüh', canton: 'BE' }, + { zip: '3757', city: 'Schwenden im Diemtigtal', canton: 'BE' }, + { zip: '3758', city: 'Latterbach', canton: 'BE' }, + { zip: '3762', city: 'Erlenbach im Simmental', canton: 'BE' }, + { zip: '3763', city: 'Därstetten', canton: 'BE' }, + { zip: '3764', city: 'Weissenburg', canton: 'BE' }, + { zip: '3765', city: 'Oberwil im Simmental', canton: 'BE' }, + { zip: '3706', city: 'Leissigen', canton: 'BE' }, + { zip: '3707', city: 'Därligen', canton: 'BE' }, + { zip: '3800', city: 'Sundlauenen', canton: 'BE' }, + { zip: '3802', city: 'Interlaken Ost', canton: 'BE' }, + { zip: '3803', city: 'Beatenberg', canton: 'BE' }, + { zip: '3804', city: 'Habkern', canton: 'BE' }, + { zip: '3805', city: 'Goldswil b. Interlaken', canton: 'BE' }, + { zip: '3806', city: 'Bönigen b. Interlaken', canton: 'BE' }, + { zip: '3807', city: 'Iseltwald', canton: 'BE' }, + { zip: '3812', city: 'Wilderswil', canton: 'BE' }, + { zip: '3813', city: 'Saxeten', canton: 'BE' }, + { zip: '3814', city: 'Gsteigwiler', canton: 'BE' }, + { zip: '3815', city: 'Gündlischwand', canton: 'BE' }, + { zip: '3816', city: 'Lütschental', canton: 'BE' }, + { zip: '3818', city: 'Grindelwald', canton: 'BE' }, + { zip: '3822', city: 'Isenfluh', canton: 'BE' }, + { zip: '3823', city: 'Wengen', canton: 'BE' }, + { zip: '3824', city: 'Stechelberg', canton: 'BE' }, + { zip: '3825', city: 'Mürren', canton: 'BE' }, + { zip: '3826', city: 'Gimmelwald', canton: 'BE' }, + { zip: '3852', city: 'Ringgenberg BE', canton: 'BE' }, + { zip: '3853', city: 'Niederried b. Interlaken', canton: 'BE' }, + { zip: '3854', city: 'Oberried am Brienzersee', canton: 'BE' }, + { zip: '3855', city: 'Brienz BE', canton: 'BE' }, + { zip: '3856', city: 'Brienzwiler', canton: 'BE' }, + { zip: '3857', city: 'Unterbach BE', canton: 'BE' }, + { zip: '3858', city: 'Hofstetten b. Brienz', canton: 'BE' }, + { zip: '3860', city: 'Rosenlaui', canton: 'BE' }, + { zip: '3862', city: 'Innertkirchen', canton: 'BE' }, + { zip: '3863', city: 'Gadmen', canton: 'BE' }, + { zip: '3864', city: 'Guttannen', canton: 'BE' }, + { zip: '6083', city: 'Hasliberg Hohfluh', canton: 'BE' }, + { zip: '6084', city: 'Hasliberg Wasserwendi', canton: 'BE' }, + { zip: '6085', city: 'Hasliberg Goldern', canton: 'BE' }, + { zip: '6086', city: 'Hasliberg Reuti', canton: 'BE' }, + { zip: '4040', city: 'Basel', canton: 'BL' }, + { zip: '4042', city: 'Basel PF OC', canton: 'BL' }, + { zip: '4101', city: 'Bruderholz', canton: 'BL' }, + { zip: '4102', city: 'Binningen 1', canton: 'BL' }, + { zip: '4103', city: 'Bottmingen', canton: 'BL' }, + { zip: '4104', city: 'Oberwil BL', canton: 'BL' }, + { zip: '4105', city: 'Biel-Benken BL', canton: 'BL' }, + { zip: '4106', city: 'Therwil', canton: 'BL' }, + { zip: '4107', city: 'Ettingen', canton: 'BL' }, + { zip: '4123', city: 'Allschwil 1', canton: 'BL' }, + { zip: '4124', city: 'Schönenbuch', canton: 'BL' }, + { zip: '4127', city: 'Birsfelden', canton: 'BL' }, + { zip: '4132', city: 'Muttenz 1', canton: 'BL' }, + { zip: '4142', city: 'Münchenstein 1', canton: 'BL' }, + { zip: '4144', city: 'Arlesheim', canton: 'BL' }, + { zip: '4147', city: 'Aesch BL', canton: 'BL' }, + { zip: '4148', city: 'Pfeffingen', canton: 'BL' }, + { zip: '4153', city: 'Reinach BL', canton: 'BL' }, + { zip: '2814', city: 'Roggenburg', canton: 'BL' }, + { zip: '4117', city: 'Burg im Leimental', canton: 'BL' }, + { zip: '4202', city: 'Duggingen', canton: 'BL' }, + { zip: '4203', city: 'Grellingen', canton: 'BL' }, + { zip: '4222', city: 'Zwingen', canton: 'BL' }, + { zip: '4223', city: 'Blauen', canton: 'BL' }, + { zip: '4224', city: 'Nenzlingen', canton: 'BL' }, + { zip: '4225', city: 'Brislach', canton: 'BL' }, + { zip: '4242', city: 'Laufen', canton: 'BL' }, + { zip: '4243', city: 'Dittingen', canton: 'BL' }, + { zip: '4244', city: 'Röschenz', canton: 'BL' }, + { zip: '4246', city: 'Wahlen b. Laufen', canton: 'BL' }, + { zip: '4253', city: 'Liesberg', canton: 'BL' }, + { zip: '4254', city: 'Liesberg Dorf', canton: 'BL' }, + { zip: '4133', city: 'Pratteln', canton: 'BL' }, + { zip: '4302', city: 'Augst BL', canton: 'BL' }, + { zip: '4304', city: 'Giebenach', canton: 'BL' }, + { zip: '4402', city: 'Frenkendorf', canton: 'BL' }, + { zip: '4410', city: 'Liestal', canton: 'BL' }, + { zip: '4411', city: 'Seltisberg', canton: 'BL' }, + { zip: '4414', city: 'Füllinsdorf', canton: 'BL' }, + { zip: '4415', city: 'Lausen', canton: 'BL' }, + { zip: '4416', city: 'Bubendorf', canton: 'BL' }, + { zip: '4417', city: 'Ziefen', canton: 'BL' }, + { zip: '4419', city: 'Lupsingen', canton: 'BL' }, + { zip: '4422', city: 'Arisdorf', canton: 'BL' }, + { zip: '4423', city: 'Hersberg', canton: 'BL' }, + { zip: '4433', city: 'Ramlinsburg', canton: 'BL' }, + { zip: '4441', city: 'Thürnen', canton: 'BL' }, + { zip: '4442', city: 'Diepflingen', canton: 'BL' }, + { zip: '4443', city: 'Wittinsburg', canton: 'BL' }, + { zip: '4444', city: 'Rümlingen', canton: 'BL' }, + { zip: '4445', city: 'Häfelfingen', canton: 'BL' }, + { zip: '4446', city: 'Buckten', canton: 'BL' }, + { zip: '4447', city: 'Känerkinden', canton: 'BL' }, + { zip: '4448', city: 'Läufelfingen', canton: 'BL' }, + { zip: '4450', city: 'Sissach', canton: 'BL' }, + { zip: '4451', city: 'Wintersingen', canton: 'BL' }, + { zip: '4452', city: 'Itingen', canton: 'BL' }, + { zip: '4453', city: 'Nusshof', canton: 'BL' }, + { zip: '4455', city: 'Zunzgen', canton: 'BL' }, + { zip: '4456', city: 'Tenniken', canton: 'BL' }, + { zip: '4460', city: 'Gelterkinden', canton: 'BL' }, + { zip: '4461', city: 'Böckten', canton: 'BL' }, + { zip: '4462', city: 'Rickenbach BL', canton: 'BL' }, + { zip: '4463', city: 'Buus', canton: 'BL' }, + { zip: '4464', city: 'Maisprach', canton: 'BL' }, + { zip: '4465', city: 'Hemmiken', canton: 'BL' }, + { zip: '4466', city: 'Ormalingen', canton: 'BL' }, + { zip: '4467', city: 'Rothenfluh', canton: 'BL' }, + { zip: '4469', city: 'Anwil', canton: 'BL' }, + { zip: '4492', city: 'Tecknau', canton: 'BL' }, + { zip: '4493', city: 'Wenslingen', canton: 'BL' }, + { zip: '4494', city: 'Oltingen', canton: 'BL' }, + { zip: '4495', city: 'Zeglingen', canton: 'BL' }, + { zip: '4496', city: 'Kilchberg BL', canton: 'BL' }, + { zip: '4497', city: 'Rünenberg', canton: 'BL' }, + { zip: '4207', city: 'Bretzwil', canton: 'BL' }, + { zip: '4418', city: 'Reigoldswil', canton: 'BL' }, + { zip: '4424', city: 'Arboldswil', canton: 'BL' }, + { zip: '4425', city: 'Titterten', canton: 'BL' }, + { zip: '4426', city: 'Lauwil', canton: 'BL' }, + { zip: '4431', city: 'Bennwil', canton: 'BL' }, + { zip: '4432', city: 'Lampenberg', canton: 'BL' }, + { zip: '4434', city: 'Hölstein', canton: 'BL' }, + { zip: '4435', city: 'Niederdorf', canton: 'BL' }, + { zip: '4436', city: 'Oberdorf BL', canton: 'BL' }, + { zip: '4437', city: 'Waldenburg', canton: 'BL' }, + { zip: '4438', city: 'Langenbruck', canton: 'BL' }, + { zip: '4457', city: 'Diegten', canton: 'BL' }, + { zip: '4458', city: 'Eptingen', canton: 'BL' }, + { zip: '4000', city: 'Basel', canton: 'BS' }, + { zip: '4001', city: 'Basel', canton: 'BS' }, + { zip: '4002', city: 'Basel', canton: 'BS' }, + { zip: '4005', city: 'Basel', canton: 'BS' }, + { zip: '4009', city: 'Basel', canton: 'BS' }, + { zip: '4010', city: 'Basel', canton: 'BS' }, + { zip: '4018', city: 'Basel', canton: 'BS' }, + { zip: '4019', city: 'Basel', canton: 'BS' }, + { zip: '4020', city: 'Basel', canton: 'BS' }, + { zip: '4030', city: 'Basel', canton: 'BS' }, + { zip: '4031', city: 'Basel', canton: 'BS' }, + { zip: '4039', city: 'Basel', canton: 'BS' }, + { zip: '4041', city: 'Basel', canton: 'BS' }, + { zip: '4051', city: 'Basel', canton: 'BS' }, + { zip: '4052', city: 'Basel', canton: 'BS' }, + { zip: '4053', city: 'Basel', canton: 'BS' }, + { zip: '4054', city: 'Basel', canton: 'BS' }, + { zip: '4055', city: 'Basel', canton: 'BS' }, + { zip: '4056', city: 'Basel', canton: 'BS' }, + { zip: '4057', city: 'Basel', canton: 'BS' }, + { zip: '4058', city: 'Basel', canton: 'BS' }, + { zip: '4059', city: 'Basel', canton: 'BS' }, + { zip: '4070', city: 'Basel', canton: 'BS' }, + { zip: '4075', city: 'Basel', canton: 'BS' }, + { zip: '4089', city: 'Basel', canton: 'BS' }, + { zip: '4091', city: 'Basel', canton: 'BS' }, + { zip: '4125', city: 'Riehen', canton: 'BS' }, + { zip: '4126', city: 'Bettingen', canton: 'BS' }, + { zip: '1410', city: 'Prévondavaux', canton: 'FR' }, + { zip: '1468', city: 'Cheyres', canton: 'FR' }, + { zip: '1470', city: 'Bollion', canton: 'FR' }, + { zip: '1473', city: 'Font', canton: 'FR' }, + { zip: '1474', city: 'Châbles FR', canton: 'FR' }, + { zip: '1475', city: 'Forel FR', canton: 'FR' }, + { zip: '1482', city: 'Cugy FR', canton: 'FR' }, + { zip: '1483', city: 'Vesin', canton: 'FR' }, + { zip: '1484', city: 'Aumont', canton: 'FR' }, + { zip: '1485', city: 'Nuvilly', canton: 'FR' }, + { zip: '1486', city: 'Vuissens', canton: 'FR' }, + { zip: '1489', city: 'Murist', canton: 'FR' }, + { zip: '1527', city: 'Villeneuve FR', canton: 'FR' }, + { zip: '1528', city: 'Praratoud', canton: 'FR' }, + { zip: '1529', city: 'Cheiry', canton: 'FR' }, + { zip: '1532', city: 'Fétigny', canton: 'FR' }, + { zip: '1533', city: 'Ménières', canton: 'FR' }, + { zip: '1534', city: 'Chapelle (Broye)', canton: 'FR' }, + { zip: '1541', city: 'Morens FR', canton: 'FR' }, + { zip: '1542', city: 'Rueyres-les-Prés', canton: 'FR' }, + { zip: '1544', city: 'Gletterens', canton: 'FR' }, + { zip: '1563', city: 'Dompierre FR', canton: 'FR' }, + { zip: '1564', city: 'Domdidier', canton: 'FR' }, + { zip: '1565', city: 'Vallon', canton: 'FR' }, + { zip: '1566', city: 'St-Aubin FR', canton: 'FR' }, + { zip: '1567', city: 'Delley', canton: 'FR' }, + { zip: '1568', city: 'Portalban', canton: 'FR' }, + { zip: '1773', city: 'Russy', canton: 'FR' }, + { zip: '1774', city: 'Cousset', canton: 'FR' }, + { zip: '1775', city: 'Mannens', canton: 'FR' }, + { zip: '1776', city: 'Montagny-la-Ville', canton: 'FR' }, + { zip: '1553', city: 'Châtonnaye', canton: 'FR' }, + { zip: '1608', city: 'Chapelle (Glâne)', canton: 'FR' }, + { zip: '1670', city: 'Bionnens', canton: 'FR' }, + { zip: '1673', city: 'Ecublens FR', canton: 'FR' }, + { zip: '1674', city: 'Montet (Glâne)', canton: 'FR' }, + { zip: '1675', city: 'Blessens', canton: 'FR' }, + { zip: '1676', city: 'Chavannes-les-Forts', canton: 'FR' }, + { zip: '1677', city: 'Prez-vers-Siviriez', canton: 'FR' }, + { zip: '1678', city: 'Siviriez', canton: 'FR' }, + { zip: '1679', city: 'Villaraboud', canton: 'FR' }, + { zip: '1680', city: 'Berlens', canton: 'FR' }, + { zip: '1681', city: 'Hennens', canton: 'FR' }, + { zip: '1684', city: 'Mézières FR', canton: 'FR' }, + { zip: '1685', city: 'Villariaz', canton: 'FR' }, + { zip: '1686', city: 'Grangettes-près-Romont', canton: 'FR' }, + { zip: '1687', city: 'Estévenens', canton: 'FR' }, + { zip: '1688', city: 'Lieffrens', canton: 'FR' }, + { zip: '1689', city: 'Le Châtelard-près-Romont', canton: 'FR' }, + { zip: '1690', city: 'Lussy FR', canton: 'FR' }, + { zip: '1691', city: 'Villarimboud', canton: 'FR' }, + { zip: '1692', city: 'Massonnens', canton: 'FR' }, + { zip: '1694', city: 'Orsonnens', canton: 'FR' }, + { zip: '1697', city: 'La Joux FR', canton: 'FR' }, + { zip: '1748', city: 'Torny-le-Grand', canton: 'FR' }, + { zip: '1749', city: 'Middes', canton: 'FR' }, + { zip: '1625', city: 'Sâles (Gruyère)', canton: 'FR' }, + { zip: '1626', city: 'Rueyres-Treyfayes', canton: 'FR' }, + { zip: '1627', city: 'Vaulruz', canton: 'FR' }, + { zip: '1628', city: 'Vuadens', canton: 'FR' }, + { zip: '1630', city: 'Bulle', canton: 'FR' }, + { zip: '1631', city: 'Bulle centre de traitement', canton: 'FR' }, + { zip: '1632', city: 'Riaz', canton: 'FR' }, + { zip: '1633', city: 'Vuippens', canton: 'FR' }, + { zip: '1634', city: 'La Roche FR', canton: 'FR' }, + { zip: '1635', city: 'La Tour-de-Trême', canton: 'FR' }, + { zip: '1636', city: 'Broc', canton: 'FR' }, + { zip: '1637', city: 'Charmey (Gruyère)', canton: 'FR' }, + { zip: '1638', city: 'Morlon', canton: 'FR' }, + { zip: '1642', city: 'Sorens', canton: 'FR' }, + { zip: '1643', city: 'Gumefens', canton: 'FR' }, + { zip: '1644', city: 'Avry-devant-Pont', canton: 'FR' }, + { zip: '1645', city: 'Le Bry', canton: 'FR' }, + { zip: '1646', city: 'Echarlens', canton: 'FR' }, + { zip: '1647', city: 'Corbières', canton: 'FR' }, + { zip: '1648', city: 'Hauteville', canton: 'FR' }, + { zip: '1649', city: 'Pont-la-Ville', canton: 'FR' }, + { zip: '1651', city: 'Villarvolard', canton: 'FR' }, + { zip: '1652', city: 'Villarbeney', canton: 'FR' }, + { zip: '1653', city: 'Crésuz', canton: 'FR' }, + { zip: '1654', city: 'Cerniat FR', canton: 'FR' }, + { zip: '1656', city: 'Im Fang', canton: 'FR' }, + { zip: '1661', city: 'Le Pâquier-Montbarry', canton: 'FR' }, + { zip: '1663', city: 'Gruyères', canton: 'FR' }, + { zip: '1665', city: 'Estavannens', canton: 'FR' }, + { zip: '1666', city: 'Villars-sous-Mont', canton: 'FR' }, + { zip: '1667', city: 'Enney', canton: 'FR' }, + { zip: '1669', city: 'Albeuve', canton: 'FR' }, + { zip: '1695', city: 'Rueyres-St-Laurent', canton: 'FR' }, + { zip: '1696', city: 'Vuisternens-en-Ogoz', canton: 'FR' }, + { zip: '1700', city: 'Fribourg', canton: 'FR' }, + { zip: '1701', city: 'Fribourg', canton: 'FR' }, + { zip: '1708', city: 'Fribourg', canton: 'FR' }, + { zip: '1720', city: 'Chésopelloz', canton: 'FR' }, + { zip: '1722', city: 'Bourguillon', canton: 'FR' }, + { zip: '1723', city: 'Marly', canton: 'FR' }, + { zip: '1724', city: 'Ferpicloz', canton: 'FR' }, + { zip: '1725', city: 'Posieux', canton: 'FR' }, + { zip: '1726', city: 'Grenilles', canton: 'FR' }, + { zip: '1727', city: 'Corpataux', canton: 'FR' }, + { zip: '1728', city: 'Rossens FR', canton: 'FR' }, + { zip: '1730', city: 'Ecuvillens', canton: 'FR' }, + { zip: '1731', city: 'Ependes FR', canton: 'FR' }, + { zip: '1732', city: 'Arconciel', canton: 'FR' }, + { zip: '1733', city: 'Treyvaux', canton: 'FR' }, + { zip: '1740', city: 'Neyruz FR', canton: 'FR' }, + { zip: '1741', city: 'Cottens FR', canton: 'FR' }, + { zip: '1742', city: 'Autigny', canton: 'FR' }, + { zip: '1744', city: 'Chénens', canton: 'FR' }, + { zip: '1745', city: 'Lentigny', canton: 'FR' }, + { zip: '1746', city: 'Prez-vers-Noréaz', canton: 'FR' }, + { zip: '1747', city: 'Corserey', canton: 'FR' }, + { zip: '1752', city: 'Villars-sur-Glâne', canton: 'FR' }, + { zip: '1753', city: 'Matran', canton: 'FR' }, + { zip: '1754', city: 'Rosé', canton: 'FR' }, + { zip: '1756', city: 'Onnens FR', canton: 'FR' }, + { zip: '1757', city: 'Noréaz', canton: 'FR' }, + { zip: '1762', city: 'Givisiez', canton: 'FR' }, + { zip: '1763', city: 'Granges-Paccot', canton: 'FR' }, + { zip: '1772', city: 'Nierlet-les-Bois', canton: 'FR' }, + { zip: '1782', city: 'Formangueires', canton: 'FR' }, + { zip: '1583', city: 'Villarepos', canton: 'FR' }, + { zip: '1721', city: 'Cournillens', canton: 'FR' }, + { zip: '1783', city: 'Pensier', canton: 'FR' }, + { zip: '1784', city: 'Courtepin', canton: 'FR' }, + { zip: '1785', city: 'Cressier FR', canton: 'FR' }, + { zip: '1786', city: 'Sugiez', canton: 'FR' }, + { zip: '1787', city: 'Môtier (Vully)', canton: 'FR' }, + { zip: '1788', city: 'Praz (Vully)', canton: 'FR' }, + { zip: '1789', city: 'Lugnorre', canton: 'FR' }, + { zip: '1791', city: 'Courtaman', canton: 'FR' }, + { zip: '1792', city: 'Cordast', canton: 'FR' }, + { zip: '1793', city: 'Jeuss', canton: 'FR' }, + { zip: '1794', city: 'Salvenach', canton: 'FR' }, + { zip: '1795', city: 'Courlevon', canton: 'FR' }, + { zip: '1796', city: 'Courgevaux', canton: 'FR' }, + { zip: '3210', city: 'Kerzers', canton: 'FR' }, + { zip: '3212', city: 'Gurmels', canton: 'FR' }, + { zip: '3213', city: 'Kleinbösingen', canton: 'FR' }, + { zip: '3214', city: 'Ulmiz', canton: 'FR' }, + { zip: '3215', city: 'Gempenach', canton: 'FR' }, + { zip: '3216', city: 'Agriswil', canton: 'FR' }, + { zip: '3280', city: 'Greng', canton: 'FR' }, + { zip: '3284', city: 'Fräschels', canton: 'FR' }, + { zip: '3285', city: 'Galmiz', canton: 'FR' }, + { zip: '3286', city: 'Muntelier', canton: 'FR' }, + { zip: '1712', city: 'Tafers', canton: 'FR' }, + { zip: '1713', city: 'St. Antoni', canton: 'FR' }, + { zip: '1714', city: 'Heitenried', canton: 'FR' }, + { zip: '1715', city: 'Alterswil FR', canton: 'FR' }, + { zip: '1716', city: 'Plaffeien', canton: 'FR' }, + { zip: '1717', city: 'St. Ursen', canton: 'FR' }, + { zip: '1718', city: 'Rechthalten', canton: 'FR' }, + { zip: '1719', city: 'Brünisried', canton: 'FR' }, + { zip: '1734', city: 'Tentlingen', canton: 'FR' }, + { zip: '1735', city: 'Giffers', canton: 'FR' }, + { zip: '1736', city: 'St. Silvester', canton: 'FR' }, + { zip: '1737', city: 'Plasselb', canton: 'FR' }, + { zip: '3175', city: 'Flamatt', canton: 'FR' }, + { zip: '3178', city: 'Bösingen', canton: 'FR' }, + { zip: '3182', city: 'Ueberstorf', canton: 'FR' }, + { zip: '3184', city: 'Wünnewil', canton: 'FR' }, + { zip: '3185', city: 'Schmitten FR', canton: 'FR' }, + { zip: '3186', city: 'Düdingen', canton: 'FR' }, + { zip: '1609', city: 'St-Martin FR', canton: 'FR' }, + { zip: '1611', city: 'Le Crêt-près-Semsales', canton: 'FR' }, + { zip: '1614', city: 'Granges (Veveyse)', canton: 'FR' }, + { zip: '1615', city: 'Bossonnens', canton: 'FR' }, + { zip: '1616', city: 'Attalens', canton: 'FR' }, + { zip: '1617', city: 'Tatroz', canton: 'FR' }, + { zip: '1618', city: 'Châtel-St-Denis', canton: 'FR' }, + { zip: '1619', city: 'Les Paccots', canton: 'FR' }, + { zip: '1623', city: 'Semsales', canton: 'FR' }, + { zip: '1624', city: 'La Verrerie', canton: 'FR' }, + { zip: '1699', city: 'Porsel', canton: 'FR' }, + { zip: '1200', city: 'Genève', canton: 'GE' }, + { zip: '1201', city: 'Genève', canton: 'GE' }, + { zip: '1202', city: 'Genève', canton: 'GE' }, + { zip: '1203', city: 'Genève', canton: 'GE' }, + { zip: '1204', city: 'Genève', canton: 'GE' }, + { zip: '1205', city: 'Genève', canton: 'GE' }, + { zip: '1206', city: 'Genève', canton: 'GE' }, + { zip: '1207', city: 'Genève', canton: 'GE' }, + { zip: '1208', city: 'Genève', canton: 'GE' }, + { zip: '1209', city: 'Genève', canton: 'GE' }, + { zip: '1211', city: 'Genève 70', canton: 'GE' }, + { zip: '1212', city: 'Grand-Lancy', canton: 'GE' }, + { zip: '1213', city: 'Onex', canton: 'GE' }, + { zip: '1214', city: 'Vernier', canton: 'GE' }, + { zip: '1215', city: 'Genève 15 Aéroport', canton: 'GE' }, + { zip: '1216', city: 'Cointrin', canton: 'GE' }, + { zip: '1217', city: 'Meyrin', canton: 'GE' }, + { zip: '1218', city: 'Le Grand-Saconnex', canton: 'GE' }, + { zip: '1219', city: 'Aïre', canton: 'GE' }, + { zip: '1220', city: 'Les Avanchets', canton: 'GE' }, + { zip: '1222', city: 'Vésenaz', canton: 'GE' }, + { zip: '1223', city: 'Cologny', canton: 'GE' }, + { zip: '1224', city: 'Chêne-Bougeries', canton: 'GE' }, + { zip: '1225', city: 'Chêne-Bourg', canton: 'GE' }, + { zip: '1226', city: 'Thônex', canton: 'GE' }, + { zip: '1227', city: 'Les Acacias', canton: 'GE' }, + { zip: '1228', city: 'Plan-les-Ouates', canton: 'GE' }, + { zip: '1231', city: 'Conches', canton: 'GE' }, + { zip: '1232', city: 'Confignon', canton: 'GE' }, + { zip: '1233', city: 'Bernex', canton: 'GE' }, + { zip: '1234', city: 'Vessy', canton: 'GE' }, + { zip: '1236', city: 'Cartigny', canton: 'GE' }, + { zip: '1237', city: 'Avully', canton: 'GE' }, + { zip: '1239', city: 'Collex', canton: 'GE' }, + { zip: '1240', city: 'Genève', canton: 'GE' }, + { zip: '1241', city: 'Puplinge', canton: 'GE' }, + { zip: '1242', city: 'Satigny', canton: 'GE' }, + { zip: '1243', city: 'Presinge', canton: 'GE' }, + { zip: '1244', city: 'Choulex', canton: 'GE' }, + { zip: '1245', city: 'Collonge-Bellerive', canton: 'GE' }, + { zip: '1246', city: 'Corsier GE', canton: 'GE' }, + { zip: '1247', city: 'Anières', canton: 'GE' }, + { zip: '1248', city: 'Hermance', canton: 'GE' }, + { zip: '1251', city: 'Gy', canton: 'GE' }, + { zip: '1252', city: 'Meinier', canton: 'GE' }, + { zip: '1253', city: 'Vandoeuvres', canton: 'GE' }, + { zip: '1254', city: 'Jussy', canton: 'GE' }, + { zip: '1255', city: 'Veyrier', canton: 'GE' }, + { zip: '1256', city: 'Troinex', canton: 'GE' }, + { zip: '1257', city: 'La Croix-de-Rozon', canton: 'GE' }, + { zip: '1258', city: 'Perly', canton: 'GE' }, + { zip: '1281', city: 'Russin', canton: 'GE' }, + { zip: '1283', city: 'Dardagny', canton: 'GE' }, + { zip: '1284', city: 'Chancy', canton: 'GE' }, + { zip: '1285', city: 'Athenaz (Avusy)', canton: 'GE' }, + { zip: '1286', city: 'Soral', canton: 'GE' }, + { zip: '1287', city: 'Laconnex', canton: 'GE' }, + { zip: '1288', city: 'Aire-la-Ville', canton: 'GE' }, + { zip: '1290', city: 'Versoix', canton: 'GE' }, + { zip: '1292', city: 'Chambésy', canton: 'GE' }, + { zip: '1293', city: 'Bellevue', canton: 'GE' }, + { zip: '1294', city: 'Genthod', canton: 'GE' }, + { zip: '1298', city: 'Céligny', canton: 'GE' }, + { zip: '8750', city: 'Klöntal', canton: 'GL' }, + { zip: '8752', city: 'Näfels', canton: 'GL' }, + { zip: '8753', city: 'Mollis', canton: 'GL' }, + { zip: '8754', city: 'Netstal', canton: 'GL' }, + { zip: '8755', city: 'Ennenda', canton: 'GL' }, + { zip: '8756', city: 'Mitlödi', canton: 'GL' }, + { zip: '8757', city: 'Filzbach', canton: 'GL' }, + { zip: '8758', city: 'Obstalden', canton: 'GL' }, + { zip: '8759', city: 'Netstal', canton: 'GL' }, + { zip: '8762', city: 'Sool', canton: 'GL' }, + { zip: '8765', city: 'Engi', canton: 'GL' }, + { zip: '8766', city: 'Matt', canton: 'GL' }, + { zip: '8767', city: 'Elm', canton: 'GL' }, + { zip: '8772', city: 'Nidfurn', canton: 'GL' }, + { zip: '8773', city: 'Haslen GL', canton: 'GL' }, + { zip: '8774', city: 'Leuggelbach', canton: 'GL' }, + { zip: '8775', city: 'Luchsingen', canton: 'GL' }, + { zip: '8777', city: 'Betschwanden', canton: 'GL' }, + { zip: '8782', city: 'Rüti GL', canton: 'GL' }, + { zip: '8783', city: 'Linthal', canton: 'GL' }, + { zip: '8784', city: 'Braunwald', canton: 'GL' }, + { zip: '8865', city: 'Bilten', canton: 'GL' }, + { zip: '8867', city: 'Niederurnen', canton: 'GL' }, + { zip: '8868', city: 'Oberurnen', canton: 'GL' }, + { zip: '8874', city: 'Mühlehorn', canton: 'GL' }, + { zip: '7077', city: 'Valbella', canton: 'GR' }, + { zip: '7078', city: 'Lenzerheide/Lai', canton: 'GR' }, + { zip: '7082', city: 'Vaz/Obervaz', canton: 'GR' }, + { zip: '7083', city: 'Lantsch/Lenz', canton: 'GR' }, + { zip: '7084', city: 'Brienz/Brinzauls GR', canton: 'GR' }, + { zip: '7450', city: 'Tiefencastel', canton: 'GR' }, + { zip: '7451', city: 'Alvaschein', canton: 'GR' }, + { zip: '7452', city: 'Cunter', canton: 'GR' }, + { zip: '7453', city: 'Tinizong', canton: 'GR' }, + { zip: '7454', city: 'Rona', canton: 'GR' }, + { zip: '7455', city: 'Mulegns', canton: 'GR' }, + { zip: '7456', city: 'Marmorera', canton: 'GR' }, + { zip: '7457', city: 'Bivio', canton: 'GR' }, + { zip: '7458', city: 'Mon', canton: 'GR' }, + { zip: '7459', city: 'Stierva', canton: 'GR' }, + { zip: '7460', city: 'Savognin', canton: 'GR' }, + { zip: '7462', city: 'Salouf', canton: 'GR' }, + { zip: '7463', city: 'Riom', canton: 'GR' }, + { zip: '7464', city: 'Parsonz', canton: 'GR' }, + { zip: '7472', city: 'Surava', canton: 'GR' }, + { zip: '7473', city: 'Alvaneu Bad', canton: 'GR' }, + { zip: '7477', city: 'Filisur', canton: 'GR' }, + { zip: '7482', city: 'Stugl/Stuls', canton: 'GR' }, + { zip: '7484', city: 'Latsch', canton: 'GR' }, + { zip: '7492', city: 'Alvaneu Dorf', canton: 'GR' }, + { zip: '7493', city: 'Schmitten (Albula)', canton: 'GR' }, + { zip: '7710', city: 'Alp Grüm', canton: 'GR' }, + { zip: '7741', city: 'S. Carlo (Poschiavo)', canton: 'GR' }, + { zip: '7742', city: 'Sfazù', canton: 'GR' }, + { zip: '7743', city: 'Brusio', canton: 'GR' }, + { zip: '7744', city: 'Campocologno', canton: 'GR' }, + { zip: '7745', city: 'Li Curt', canton: 'GR' }, + { zip: '7746', city: 'Le Prese', canton: 'GR' }, + { zip: '7747', city: 'Viano', canton: 'GR' }, + { zip: '7748', city: 'Campascio', canton: 'GR' }, + { zip: '7527', city: 'Brail', canton: 'GR' }, + { zip: '7530', city: 'Zernez', canton: 'GR' }, + { zip: '7532', city: 'Tschierv', canton: 'GR' }, + { zip: '7533', city: 'Fuldera', canton: 'GR' }, + { zip: '7534', city: 'Lü', canton: 'GR' }, + { zip: '7535', city: 'Valchava', canton: 'GR' }, + { zip: '7536', city: 'Sta. Maria Val Müstair', canton: 'GR' }, + { zip: '7537', city: 'Müstair', canton: 'GR' }, + { zip: '7542', city: 'Susch', canton: 'GR' }, + { zip: '7543', city: 'Lavin', canton: 'GR' }, + { zip: '7545', city: 'Guarda', canton: 'GR' }, + { zip: '7546', city: 'Ardez', canton: 'GR' }, + { zip: '7550', city: 'Scuol', canton: 'GR' }, + { zip: '7551', city: 'Ftan', canton: 'GR' }, + { zip: '7552', city: 'Vulpera', canton: 'GR' }, + { zip: '7553', city: 'Tarasp', canton: 'GR' }, + { zip: '7554', city: 'Sent', canton: 'GR' }, + { zip: '7556', city: 'Ramosch', canton: 'GR' }, + { zip: '7557', city: 'Vnà', canton: 'GR' }, + { zip: '7558', city: 'Strada', canton: 'GR' }, + { zip: '7559', city: 'Tschlin', canton: 'GR' }, + { zip: '7560', city: 'Martina', canton: 'GR' }, + { zip: '7562', city: 'Samnaun-Compatsch', canton: 'GR' }, + { zip: '7563', city: 'Samnaun Dorf', canton: 'GR' }, + { zip: '7012', city: 'Felsberg', canton: 'GR' }, + { zip: '7013', city: 'Domat/Ems', canton: 'GR' }, + { zip: '7014', city: 'Trin', canton: 'GR' }, + { zip: '7015', city: 'Tamins', canton: 'GR' }, + { zip: '7016', city: 'Trin Mulin', canton: 'GR' }, + { zip: '7017', city: 'Flims Dorf', canton: 'GR' }, + { zip: '7018', city: 'Flims Waldhaus', canton: 'GR' }, + { zip: '7019', city: 'Fidaz', canton: 'GR' }, + { zip: '7402', city: 'Bonaduz', canton: 'GR' }, + { zip: '7403', city: 'Rhäzüns', canton: 'GR' }, + { zip: '7202', city: 'Says', canton: 'GR' }, + { zip: '7203', city: 'Trimmis', canton: 'GR' }, + { zip: '7204', city: 'Untervaz', canton: 'GR' }, + { zip: '7205', city: 'Zizers', canton: 'GR' }, + { zip: '7206', city: 'Igis', canton: 'GR' }, + { zip: '7208', city: 'Malans GR', canton: 'GR' }, + { zip: '7302', city: 'Landquart', canton: 'GR' }, + { zip: '7303', city: 'Mastrils', canton: 'GR' }, + { zip: '7304', city: 'Maienfeld', canton: 'GR' }, + { zip: '7306', city: 'Fläsch', canton: 'GR' }, + { zip: '7307', city: 'Jenins', canton: 'GR' }, + { zip: '7500', city: 'St. Moritz', canton: 'GR' }, + { zip: '7502', city: 'Bever', canton: 'GR' }, + { zip: '7503', city: 'Samedan', canton: 'GR' }, + { zip: '7504', city: 'Pontresina', canton: 'GR' }, + { zip: '7505', city: 'Celerina/Schlarigna', canton: 'GR' }, + { zip: '7512', city: 'Champfèr', canton: 'GR' }, + { zip: '7513', city: 'Silvaplana-Surlej', canton: 'GR' }, + { zip: '7514', city: 'Sils/Segl Maria', canton: 'GR' }, + { zip: '7515', city: 'Sils/Segl Baselgia', canton: 'GR' }, + { zip: '7516', city: 'Maloja', canton: 'GR' }, + { zip: '7517', city: 'Plaun da Lej', canton: 'GR' }, + { zip: '7522', city: 'La Punt Chamues-ch', canton: 'GR' }, + { zip: '7523', city: 'Madulain', canton: 'GR' }, + { zip: '7524', city: 'Zuoz', canton: 'GR' }, + { zip: '7525', city: 'S-chanf', canton: 'GR' }, + { zip: '7526', city: 'Cinuos-chel', canton: 'GR' }, + { zip: '7602', city: 'Casaccia', canton: 'GR' }, + { zip: '7603', city: 'Vicosoprano', canton: 'GR' }, + { zip: '7604', city: 'Borgonovo', canton: 'GR' }, + { zip: '7605', city: 'Stampa', canton: 'GR' }, + { zip: '7606', city: 'Promontogno', canton: 'GR' }, + { zip: '7608', city: 'Castasegna', canton: 'GR' }, + { zip: '7610', city: 'Soglio', canton: 'GR' }, + { zip: '6534', city: 'S. Vittore', canton: 'GR' }, + { zip: '6535', city: 'Roveredo GR', canton: 'GR' }, + { zip: '6537', city: 'Grono', canton: 'GR' }, + { zip: '6538', city: 'Verdabbio', canton: 'GR' }, + { zip: '6540', city: 'Castaneda', canton: 'GR' }, + { zip: '6541', city: 'Sta. Maria in Calanca', canton: 'GR' }, + { zip: '6542', city: 'Buseno', canton: 'GR' }, + { zip: '6543', city: 'Arvigo', canton: 'GR' }, + { zip: '6544', city: 'Braggio', canton: 'GR' }, + { zip: '6545', city: 'Selma', canton: 'GR' }, + { zip: '6546', city: 'Cauco', canton: 'GR' }, + { zip: '6548', city: 'Rossa', canton: 'GR' }, + { zip: '6549', city: 'Laura', canton: 'GR' }, + { zip: '6556', city: 'Leggia', canton: 'GR' }, + { zip: '6557', city: 'Cama', canton: 'GR' }, + { zip: '6558', city: 'Lostallo', canton: 'GR' }, + { zip: '6562', city: 'Soazza', canton: 'GR' }, + { zip: '6563', city: 'Mesocco', canton: 'GR' }, + { zip: '6565', city: 'S. Bernardino', canton: 'GR' }, + { zip: '7000', city: 'Chur', canton: 'GR' }, + { zip: '7001', city: 'Chur', canton: 'GR' }, + { zip: '7004', city: 'Chur', canton: 'GR' }, + { zip: '7006', city: 'Chur', canton: 'GR' }, + { zip: '7007', city: 'Chur', canton: 'GR' }, + { zip: '7023', city: 'Haldenstein', canton: 'GR' }, + { zip: '7026', city: 'Maladers', canton: 'GR' }, + { zip: '7027', city: 'Lüen', canton: 'GR' }, + { zip: '7028', city: 'St. Peter', canton: 'GR' }, + { zip: '7029', city: 'Peist', canton: 'GR' }, + { zip: '7050', city: 'Arosa', canton: 'GR' }, + { zip: '7056', city: 'Molinis', canton: 'GR' }, + { zip: '7057', city: 'Langwies', canton: 'GR' }, + { zip: '7058', city: 'Litzirüti', canton: 'GR' }, + { zip: '7062', city: 'Passugg', canton: 'GR' }, + { zip: '7063', city: 'Praden', canton: 'GR' }, + { zip: '7064', city: 'Tschiertschen', canton: 'GR' }, + { zip: '7074', city: 'Malix', canton: 'GR' }, + { zip: '7075', city: 'Churwalden', canton: 'GR' }, + { zip: '7076', city: 'Parpan', canton: 'GR' }, + { zip: '7212', city: 'Seewis Dorf', canton: 'GR' }, + { zip: '7213', city: 'Valzeina', canton: 'GR' }, + { zip: '7214', city: 'Grüsch', canton: 'GR' }, + { zip: '7215', city: 'Fanas', canton: 'GR' }, + { zip: '7220', city: 'Schiers', canton: 'GR' }, + { zip: '7222', city: 'Lunden', canton: 'GR' }, + { zip: '7223', city: 'Buchen im Prättigau', canton: 'GR' }, + { zip: '7224', city: 'Putz', canton: 'GR' }, + { zip: '7226', city: 'Fajauna', canton: 'GR' }, + { zip: '7228', city: 'Pusserein', canton: 'GR' }, + { zip: '7231', city: 'Pragg-Jenaz', canton: 'GR' }, + { zip: '7232', city: 'Furna', canton: 'GR' }, + { zip: '7233', city: 'Jenaz', canton: 'GR' }, + { zip: '7235', city: 'Fideris', canton: 'GR' }, + { zip: '7240', city: 'Küblis', canton: 'GR' }, + { zip: '7241', city: 'Conters im Prättigau', canton: 'GR' }, + { zip: '7242', city: 'Luzein', canton: 'GR' }, + { zip: '7243', city: 'Pany', canton: 'GR' }, + { zip: '7244', city: 'Gadenstätt', canton: 'GR' }, + { zip: '7245', city: 'Ascharina', canton: 'GR' }, + { zip: '7246', city: 'St. Antönien', canton: 'GR' }, + { zip: '7247', city: 'Saas im Prättigau', canton: 'GR' }, + { zip: '7249', city: 'Serneus', canton: 'GR' }, + { zip: '7250', city: 'Klosters', canton: 'GR' }, + { zip: '7252', city: 'Klosters Dorf', canton: 'GR' }, + { zip: '7260', city: 'Davos Dorf', canton: 'GR' }, + { zip: '7265', city: 'Davos Wolfgang', canton: 'GR' }, + { zip: '7270', city: 'Davos Platz', canton: 'GR' }, + { zip: '7272', city: 'Davos Clavadel', canton: 'GR' }, + { zip: '7276', city: 'Davos Frauenkirch', canton: 'GR' }, + { zip: '7277', city: 'Davos Glaris', canton: 'GR' }, + { zip: '7278', city: 'Davos Monstein', canton: 'GR' }, + { zip: '7494', city: 'Davos Wiesen', canton: 'GR' }, + { zip: '7031', city: 'Laax GR', canton: 'GR' }, + { zip: '7032', city: 'Laax GR 2', canton: 'GR' }, + { zip: '7104', city: 'Arezen', canton: 'GR' }, + { zip: '7106', city: 'Tenna', canton: 'GR' }, + { zip: '7107', city: 'Safien Platz', canton: 'GR' }, + { zip: '7109', city: 'Thalkirch', canton: 'GR' }, + { zip: '7110', city: 'Peiden', canton: 'GR' }, + { zip: '7111', city: 'Pitasch', canton: 'GR' }, + { zip: '7112', city: 'Duvin', canton: 'GR' }, + { zip: '7113', city: 'Camuns', canton: 'GR' }, + { zip: '7114', city: 'Uors (Lumnezia)', canton: 'GR' }, + { zip: '7115', city: 'Surcasti', canton: 'GR' }, + { zip: '7116', city: 'St. Martin (Lugnez)', canton: 'GR' }, + { zip: '7122', city: 'Valendas', canton: 'GR' }, + { zip: '7126', city: 'Castrisch', canton: 'GR' }, + { zip: '7127', city: 'Sevgein', canton: 'GR' }, + { zip: '7128', city: 'Riein', canton: 'GR' }, + { zip: '7130', city: 'Schnaus', canton: 'GR' }, + { zip: '7132', city: 'Vals', canton: 'GR' }, + { zip: '7134', city: 'Obersaxen', canton: 'GR' }, + { zip: '7137', city: 'Flond', canton: 'GR' }, + { zip: '7138', city: 'Surcuolm', canton: 'GR' }, + { zip: '7141', city: 'Luven', canton: 'GR' }, + { zip: '7142', city: 'Cumbel', canton: 'GR' }, + { zip: '7143', city: 'Morissen', canton: 'GR' }, + { zip: '7144', city: 'Vella', canton: 'GR' }, + { zip: '7145', city: 'Degen', canton: 'GR' }, + { zip: '7146', city: 'Vattiz', canton: 'GR' }, + { zip: '7147', city: 'Vignogn', canton: 'GR' }, + { zip: '7148', city: 'Lumbrein', canton: 'GR' }, + { zip: '7149', city: 'Vrin', canton: 'GR' }, + { zip: '7151', city: 'Schluein', canton: 'GR' }, + { zip: '7152', city: 'Sagogn', canton: 'GR' }, + { zip: '7153', city: 'Falera', canton: 'GR' }, + { zip: '7154', city: 'Ruschein', canton: 'GR' }, + { zip: '7155', city: 'Ladir', canton: 'GR' }, + { zip: '7156', city: 'Pigniu', canton: 'GR' }, + { zip: '7157', city: 'Siat', canton: 'GR' }, + { zip: '7158', city: 'Waltensburg/Vuorz', canton: 'GR' }, + { zip: '7159', city: 'Andiast', canton: 'GR' }, + { zip: '7162', city: 'Tavanasa', canton: 'GR' }, + { zip: '7163', city: 'Danis', canton: 'GR' }, + { zip: '7164', city: 'Dardin', canton: 'GR' }, + { zip: '7165', city: 'Breil/Brigels', canton: 'GR' }, + { zip: '7166', city: 'Trun', canton: 'GR' }, + { zip: '7167', city: 'Zignau', canton: 'GR' }, + { zip: '7168', city: 'Schlans', canton: 'GR' }, + { zip: '7172', city: 'Rabius', canton: 'GR' }, + { zip: '7173', city: 'Surrein', canton: 'GR' }, + { zip: '7174', city: 'S. Benedetg', canton: 'GR' }, + { zip: '7175', city: 'Sumvitg', canton: 'GR' }, + { zip: '7176', city: 'Cumpadials', canton: 'GR' }, + { zip: '7180', city: 'Disentis/Mustér', canton: 'GR' }, + { zip: '7182', city: 'Cavardiras', canton: 'GR' }, + { zip: '7183', city: 'Mumpé Medel', canton: 'GR' }, + { zip: '7184', city: 'Curaglia', canton: 'GR' }, + { zip: '7185', city: 'Platta', canton: 'GR' }, + { zip: '7186', city: 'Segnas', canton: 'GR' }, + { zip: '7187', city: 'Camischolas', canton: 'GR' }, + { zip: '7188', city: 'Sedrun', canton: 'GR' }, + { zip: '7189', city: 'Rueras', canton: 'GR' }, + { zip: '7404', city: 'Feldis/Veulden', canton: 'GR' }, + { zip: '7405', city: 'Rothenbrunnen', canton: 'GR' }, + { zip: '7407', city: 'Trans', canton: 'GR' }, + { zip: '7408', city: 'Realta', canton: 'GR' }, + { zip: '7411', city: 'Sils im Domleschg', canton: 'GR' }, + { zip: '7412', city: 'Scharans', canton: 'GR' }, + { zip: '7413', city: 'Fürstenaubruck', canton: 'GR' }, + { zip: '7414', city: 'Fürstenau', canton: 'GR' }, + { zip: '7415', city: 'Rodels', canton: 'GR' }, + { zip: '7416', city: 'Almens', canton: 'GR' }, + { zip: '7417', city: 'Paspels', canton: 'GR' }, + { zip: '7418', city: 'Tumegl/Tomils', canton: 'GR' }, + { zip: '7419', city: 'Scheid', canton: 'GR' }, + { zip: '7421', city: 'Summaprada', canton: 'GR' }, + { zip: '7422', city: 'Tartar', canton: 'GR' }, + { zip: '7423', city: 'Portein', canton: 'GR' }, + { zip: '7424', city: 'Präz', canton: 'GR' }, + { zip: '7425', city: 'Masein', canton: 'GR' }, + { zip: '7426', city: 'Flerden', canton: 'GR' }, + { zip: '7427', city: 'Urmein', canton: 'GR' }, + { zip: '7428', city: 'Tschappina', canton: 'GR' }, + { zip: '7430', city: 'Thusis', canton: 'GR' }, + { zip: '7431', city: 'Obermutten', canton: 'GR' }, + { zip: '7432', city: 'Zillis', canton: 'GR' }, + { zip: '7433', city: 'Wergenstein', canton: 'GR' }, + { zip: '7434', city: 'Sufers', canton: 'GR' }, + { zip: '7435', city: 'Splügen', canton: 'GR' }, + { zip: '7436', city: 'Medels im Rheinwald', canton: 'GR' }, + { zip: '7437', city: 'Nufenen', canton: 'GR' }, + { zip: '7438', city: 'Hinterrhein', canton: 'GR' }, + { zip: '7440', city: 'Andeer', canton: 'GR' }, + { zip: '7442', city: 'Clugin', canton: 'GR' }, + { zip: '7443', city: 'Pignia', canton: 'GR' }, + { zip: '7444', city: 'Ausserferrera', canton: 'GR' }, + { zip: '7445', city: 'Innerferrera', canton: 'GR' }, + { zip: '7446', city: 'Campsut-Cröt', canton: 'GR' }, + { zip: '7447', city: 'Am Bach (Avers)', canton: 'GR' }, + { zip: '7448', city: 'Juf', canton: 'GR' }, + { zip: '2800', city: 'Delémont 2', canton: 'JU' }, + { zip: '2802', city: 'Develier', canton: 'JU' }, + { zip: '2803', city: 'Bourrignon', canton: 'JU' }, + { zip: '2805', city: 'Soyhières', canton: 'JU' }, + { zip: '2806', city: 'Mettembert', canton: 'JU' }, + { zip: '2807', city: 'Pleigne', canton: 'JU' }, + { zip: '2812', city: 'Movelier', canton: 'JU' }, + { zip: '2813', city: 'Ederswiler', canton: 'JU' }, + { zip: '2822', city: 'Courroux', canton: 'JU' }, + { zip: '2823', city: 'Courcelon', canton: 'JU' }, + { zip: '2824', city: 'Vicques', canton: 'JU' }, + { zip: '2825', city: 'Courchapoix', canton: 'JU' }, + { zip: '2826', city: 'Corban', canton: 'JU' }, + { zip: '2828', city: 'Montsevelier', canton: 'JU' }, + { zip: '2829', city: 'Vermes', canton: 'JU' }, + { zip: '2830', city: 'Vellerat', canton: 'JU' }, + { zip: '2832', city: 'Rebeuvelier', canton: 'JU' }, + { zip: '2842', city: 'Rossemaison', canton: 'JU' }, + { zip: '2843', city: 'Châtillon JU', canton: 'JU' }, + { zip: '2852', city: 'Courtételle', canton: 'JU' }, + { zip: '2853', city: 'Courfaivre', canton: 'JU' }, + { zip: '2854', city: 'Bassecourt', canton: 'JU' }, + { zip: '2855', city: 'Glovelier', canton: 'JU' }, + { zip: '2856', city: 'Boécourt', canton: 'JU' }, + { zip: '2857', city: 'Montavon', canton: 'JU' }, + { zip: '2863', city: 'Undervelier', canton: 'JU' }, + { zip: '2864', city: 'Soulce', canton: 'JU' }, + { zip: '2873', city: 'Saulcy', canton: 'JU' }, + { zip: '2336', city: 'Les Bois', canton: 'JU' }, + { zip: '2338', city: 'Muriaux', canton: 'JU' }, + { zip: '2340', city: 'Le Noirmont', canton: 'JU' }, + { zip: '2350', city: 'Saignelégier', canton: 'JU' }, + { zip: '2353', city: 'Les Pommerats', canton: 'JU' }, + { zip: '2354', city: 'Goumois', canton: 'JU' }, + { zip: '2360', city: 'Le Bémont JU', canton: 'JU' }, + { zip: '2362', city: 'Montfaucon', canton: 'JU' }, + { zip: '2363', city: 'Les Enfers', canton: 'JU' }, + { zip: '2364', city: 'St-Brais', canton: 'JU' }, + { zip: '2714', city: 'Les Genevez JU', canton: 'JU' }, + { zip: '2718', city: 'Fornet-Dessus', canton: 'JU' }, + { zip: '2882', city: 'St-Ursanne', canton: 'JU' }, + { zip: '2887', city: 'Soubey', canton: 'JU' }, + { zip: '2883', city: 'Montmelon', canton: 'JU' }, + { zip: '2884', city: 'Montenol', canton: 'JU' }, + { zip: '2885', city: 'Epauvillers', canton: 'JU' }, + { zip: '2886', city: 'Epiquerez', canton: 'JU' }, + { zip: '2888', city: 'Seleute', canton: 'JU' }, + { zip: '2889', city: 'Ocourt', canton: 'JU' }, + { zip: '2900', city: 'Porrentruy 1', canton: 'JU' }, + { zip: '2902', city: 'Fontenais', canton: 'JU' }, + { zip: '2903', city: 'Villars-sur-Fontenais', canton: 'JU' }, + { zip: '2904', city: 'Bressaucourt', canton: 'JU' }, + { zip: '2905', city: 'Courtedoux', canton: 'JU' }, + { zip: '2906', city: 'Chevenez', canton: 'JU' }, + { zip: '2907', city: 'Rocourt', canton: 'JU' }, + { zip: '2908', city: 'Grandfontaine', canton: 'JU' }, + { zip: '2912', city: 'Roche-d\'Or', canton: 'JU' }, + { zip: '2914', city: 'Damvant', canton: 'JU' }, + { zip: '2915', city: 'Bure', canton: 'JU' }, + { zip: '2916', city: 'Fahy', canton: 'JU' }, + { zip: '2922', city: 'Courchavon', canton: 'JU' }, + { zip: '2923', city: 'Courtemaîche', canton: 'JU' }, + { zip: '2924', city: 'Montignez', canton: 'JU' }, + { zip: '2925', city: 'Buix', canton: 'JU' }, + { zip: '2926', city: 'Boncourt', canton: 'JU' }, + { zip: '2932', city: 'Coeuve', canton: 'JU' }, + { zip: '2933', city: 'Damphreux', canton: 'JU' }, + { zip: '2935', city: 'Beurnevésin', canton: 'JU' }, + { zip: '2942', city: 'Alle', canton: 'JU' }, + { zip: '2943', city: 'Vendlincourt', canton: 'JU' }, + { zip: '2944', city: 'Bonfol', canton: 'JU' }, + { zip: '2946', city: 'Miécourt', canton: 'JU' }, + { zip: '2947', city: 'Charmoille', canton: 'JU' }, + { zip: '2950', city: 'Courtemautruy', canton: 'JU' }, + { zip: '2952', city: 'Cornol', canton: 'JU' }, + { zip: '2953', city: 'Fregiécourt', canton: 'JU' }, + { zip: '2954', city: 'Asuel', canton: 'JU' }, + { zip: '6000', city: 'Luzern 14', canton: 'LU' }, + { zip: '6002', city: 'Luzern', canton: 'LU' }, + { zip: '6003', city: 'Luzern', canton: 'LU' }, + { zip: '6004', city: 'Luzern', canton: 'LU' }, + { zip: '6005', city: 'Luzern', canton: 'LU' }, + { zip: '6006', city: 'Luzern', canton: 'LU' }, + { zip: '6007', city: 'Luzern', canton: 'LU' }, + { zip: '6014', city: 'Luzern', canton: 'LU' }, + { zip: '6015', city: 'Luzern', canton: 'LU' }, + { zip: '6009', city: 'Luzern', canton: 'LU' }, + { zip: '6010', city: 'Kriens', canton: 'LU' }, + { zip: '6011', city: 'Kriens', canton: 'LU' }, + { zip: '6012', city: 'Obernau', canton: 'LU' }, + { zip: '6013', city: 'Eigenthal', canton: 'LU' }, + { zip: '6030', city: 'Ebikon', canton: 'LU' }, + { zip: '6031', city: 'Ebikon', canton: 'LU' }, + { zip: '6033', city: 'Buchrain', canton: 'LU' }, + { zip: '6035', city: 'Perlen', canton: 'LU' }, + { zip: '6036', city: 'Dierikon', canton: 'LU' }, + { zip: '6037', city: 'Root', canton: 'LU' }, + { zip: '6038', city: 'Honau', canton: 'LU' }, + { zip: '6039', city: 'Root D4', canton: 'LU' }, + { zip: '6043', city: 'Adligenswil', canton: 'LU' }, + { zip: '6044', city: 'Udligenswil', canton: 'LU' }, + { zip: '6045', city: 'Meggen', canton: 'LU' }, + { zip: '6047', city: 'Kastanienbaum', canton: 'LU' }, + { zip: '6048', city: 'Horw', canton: 'LU' }, + { zip: '6102', city: 'Malters', canton: 'LU' }, + { zip: '6103', city: 'Schwarzenberg LU', canton: 'LU' }, + { zip: '6344', city: 'Meierskappel', canton: 'LU' }, + { zip: '6353', city: 'Weggis', canton: 'LU' }, + { zip: '6354', city: 'Vitznau', canton: 'LU' }, + { zip: '6356', city: 'Rigi Kaltbad', canton: 'LU' }, + { zip: '6404', city: 'Greppen', canton: 'LU' }, + { zip: '6020', city: 'Emmenbrücke', canton: 'LU' }, + { zip: '6021', city: 'Emmenbrücke 1', canton: 'LU' }, + { zip: '6023', city: 'Rothenburg', canton: 'LU' }, + { zip: '6026', city: 'Rain', canton: 'LU' }, + { zip: '6027', city: 'Römerswil LU', canton: 'LU' }, + { zip: '6028', city: 'Herlisberg', canton: 'LU' }, + { zip: '6032', city: 'Emmen', canton: 'LU' }, + { zip: '6034', city: 'Inwil', canton: 'LU' }, + { zip: '6274', city: 'Eschenbach LU', canton: 'LU' }, + { zip: '6275', city: 'Ballwil', canton: 'LU' }, + { zip: '6276', city: 'Hohenrain', canton: 'LU' }, + { zip: '6277', city: 'Kleinwangen', canton: 'LU' }, + { zip: '6280', city: 'Urswil', canton: 'LU' }, + { zip: '6281', city: 'Hochdorf', canton: 'LU' }, + { zip: '6283', city: 'Baldegg', canton: 'LU' }, + { zip: '6284', city: 'Sulz LU', canton: 'LU' }, + { zip: '6285', city: 'Hitzkirch', canton: 'LU' }, + { zip: '6286', city: 'Altwis', canton: 'LU' }, + { zip: '6287', city: 'Aesch LU', canton: 'LU' }, + { zip: '6288', city: 'Schongau', canton: 'LU' }, + { zip: '6289', city: 'Hämikon', canton: 'LU' }, + { zip: '6294', city: 'Ermensee', canton: 'LU' }, + { zip: '6295', city: 'Mosen', canton: 'LU' }, + { zip: '5735', city: 'Pfeffikon LU', canton: 'LU' }, + { zip: '6016', city: 'Hellbühl', canton: 'LU' }, + { zip: '6017', city: 'Ruswil', canton: 'LU' }, + { zip: '6018', city: 'Buttisholz', canton: 'LU' }, + { zip: '6019', city: 'Sigigen', canton: 'LU' }, + { zip: '6022', city: 'Grosswangen', canton: 'LU' }, + { zip: '6024', city: 'Hildisrieden', canton: 'LU' }, + { zip: '6025', city: 'Neudorf', canton: 'LU' }, + { zip: '6203', city: 'Sempach Station', canton: 'LU' }, + { zip: '6204', city: 'Sempach', canton: 'LU' }, + { zip: '6205', city: 'Eich', canton: 'LU' }, + { zip: '6206', city: 'Neuenkirch', canton: 'LU' }, + { zip: '6207', city: 'Nottwil Paraplegikerzentrum', canton: 'LU' }, + { zip: '6208', city: 'Oberkirch LU', canton: 'LU' }, + { zip: '6210', city: 'Sursee', canton: 'LU' }, + { zip: '6212', city: 'Kaltbach', canton: 'LU' }, + { zip: '6213', city: 'Knutwil', canton: 'LU' }, + { zip: '6214', city: 'Schenkon', canton: 'LU' }, + { zip: '6215', city: 'Beromünster', canton: 'LU' }, + { zip: '6216', city: 'Mauensee', canton: 'LU' }, + { zip: '6221', city: 'Rickenbach LU', canton: 'LU' }, + { zip: '6222', city: 'Gunzwil', canton: 'LU' }, + { zip: '6231', city: 'Schlierbach', canton: 'LU' }, + { zip: '6232', city: 'Geuensee', canton: 'LU' }, + { zip: '6233', city: 'Büron', canton: 'LU' }, + { zip: '6234', city: 'Triengen', canton: 'LU' }, + { zip: '6235', city: 'Winikon', canton: 'LU' }, + { zip: '6236', city: 'Wilihof', canton: 'LU' }, + { zip: '4806', city: 'Wikon', canton: 'LU' }, + { zip: '4915', city: 'St. Urban', canton: 'LU' }, + { zip: '6122', city: 'Menznau', canton: 'LU' }, + { zip: '6123', city: 'Geiss', canton: 'LU' }, + { zip: '6125', city: 'Menzberg', canton: 'LU' }, + { zip: '6126', city: 'Daiwil', canton: 'LU' }, + { zip: '6130', city: 'Willisau', canton: 'LU' }, + { zip: '6132', city: 'Rohrmatt', canton: 'LU' }, + { zip: '6133', city: 'Hergiswil b. Willisau', canton: 'LU' }, + { zip: '6142', city: 'Gettnau', canton: 'LU' }, + { zip: '6143', city: 'Ohmstal', canton: 'LU' }, + { zip: '6144', city: 'Zell LU', canton: 'LU' }, + { zip: '6145', city: 'Fischbach LU', canton: 'LU' }, + { zip: '6146', city: 'Grossdietwil', canton: 'LU' }, + { zip: '6147', city: 'Altbüron', canton: 'LU' }, + { zip: '6152', city: 'Hüswil', canton: 'LU' }, + { zip: '6153', city: 'Ufhusen', canton: 'LU' }, + { zip: '6154', city: 'Hofstatt', canton: 'LU' }, + { zip: '6156', city: 'Luthern', canton: 'LU' }, + { zip: '6211', city: 'Buchs LU', canton: 'LU' }, + { zip: '6217', city: 'Kottwil', canton: 'LU' }, + { zip: '6218', city: 'Ettiswil', canton: 'LU' }, + { zip: '6242', city: 'Wauwil', canton: 'LU' }, + { zip: '6243', city: 'Egolzwil', canton: 'LU' }, + { zip: '6244', city: 'Nebikon', canton: 'LU' }, + { zip: '6245', city: 'Ebersecken', canton: 'LU' }, + { zip: '6246', city: 'Altishofen', canton: 'LU' }, + { zip: '6247', city: 'Schötz', canton: 'LU' }, + { zip: '6248', city: 'Alberswil', canton: 'LU' }, + { zip: '6252', city: 'Dagmersellen', canton: 'LU' }, + { zip: '6253', city: 'Uffikon', canton: 'LU' }, + { zip: '6260', city: 'Reiden', canton: 'LU' }, + { zip: '6262', city: 'Langnau b. Reiden', canton: 'LU' }, + { zip: '6263', city: 'Richenthal', canton: 'LU' }, + { zip: '6264', city: 'Pfaffnau', canton: 'LU' }, + { zip: '6265', city: 'Roggliswil', canton: 'LU' }, + { zip: '6105', city: 'Schachen LU', canton: 'LU' }, + { zip: '6106', city: 'Werthenstein', canton: 'LU' }, + { zip: '6110', city: 'Fontannen b. Wolhusen', canton: 'LU' }, + { zip: '6112', city: 'Doppleschwand', canton: 'LU' }, + { zip: '6113', city: 'Romoos', canton: 'LU' }, + { zip: '6114', city: 'Steinhuserberg', canton: 'LU' }, + { zip: '6160', city: 'Entlebuch Businesszentrum', canton: 'LU' }, + { zip: '6162', city: 'Rengg', canton: 'LU' }, + { zip: '6163', city: 'Ebnet', canton: 'LU' }, + { zip: '6166', city: 'Hasle LU', canton: 'LU' }, + { zip: '6167', city: 'Bramboden', canton: 'LU' }, + { zip: '6170', city: 'Schüpfheim', canton: 'LU' }, + { zip: '6173', city: 'Flühli LU', canton: 'LU' }, + { zip: '6174', city: 'Sörenberg', canton: 'LU' }, + { zip: '6182', city: 'Escholzmatt', canton: 'LU' }, + { zip: '6192', city: 'Wiggen', canton: 'LU' }, + { zip: '6196', city: 'Marbach LU', canton: 'LU' }, + { zip: '2012', city: 'Auvernier', canton: 'NE' }, + { zip: '2013', city: 'Colombier NE', canton: 'NE' }, + { zip: '2014', city: 'Bôle', canton: 'NE' }, + { zip: '2015', city: 'Areuse', canton: 'NE' }, + { zip: '2016', city: 'Cortaillod', canton: 'NE' }, + { zip: '2017', city: 'Boudry', canton: 'NE' }, + { zip: '2019', city: 'Chambrelien', canton: 'NE' }, + { zip: '2022', city: 'Bevaix', canton: 'NE' }, + { zip: '2023', city: 'Gorgier', canton: 'NE' }, + { zip: '2024', city: 'St-Aubin-Sauges', canton: 'NE' }, + { zip: '2025', city: 'Chez-le-Bart', canton: 'NE' }, + { zip: '2027', city: 'Montalchez', canton: 'NE' }, + { zip: '2028', city: 'Vaumarcus', canton: 'NE' }, + { zip: '2034', city: 'Peseux', canton: 'NE' }, + { zip: '2035', city: 'Corcelles NE', canton: 'NE' }, + { zip: '2036', city: 'Cormondrèche', canton: 'NE' }, + { zip: '2037', city: 'Montezillon', canton: 'NE' }, + { zip: '2149', city: 'Champ-du-Moulin', canton: 'NE' }, + { zip: '2300', city: 'La Chaux-de-Fonds', canton: 'NE' }, + { zip: '2301', city: 'La Chaux-de-Fonds', canton: 'NE' }, + { zip: '2303', city: 'La Chaux-de-Fonds', canton: 'NE' }, + { zip: '2304', city: 'La Chaux-de-Fonds', canton: 'NE' }, + { zip: '2314', city: 'La Sagne NE', canton: 'NE' }, + { zip: '2322', city: 'Le Crêt-du-Locle', canton: 'NE' }, + { zip: '2325', city: 'Les Planchettes', canton: 'NE' }, + { zip: '2316', city: 'Les Ponts-de-Martel', canton: 'NE' }, + { zip: '2318', city: 'Brot-Plamboz', canton: 'NE' }, + { zip: '2400', city: 'Le Prévoux', canton: 'NE' }, + { zip: '2405', city: 'La Chaux-du-Milieu', canton: 'NE' }, + { zip: '2406', city: 'Les Taillères', canton: 'NE' }, + { zip: '2414', city: 'Le Cerneux-Péquignot', canton: 'NE' }, + { zip: '2416', city: 'Les Brenets', canton: 'NE' }, + { zip: '2000', city: 'Neuchâtel', canton: 'NE' }, + { zip: '2001', city: 'Neuchâtel 1', canton: 'NE' }, + { zip: '2002', city: 'Neuchâtel 2', canton: 'NE' }, + { zip: '2010', city: 'Neuchâtel OFS', canton: 'NE' }, + { zip: '2067', city: 'Chaumont', canton: 'NE' }, + { zip: '2068', city: 'Hauterive NE', canton: 'NE' }, + { zip: '2072', city: 'St-Blaise', canton: 'NE' }, + { zip: '2073', city: 'Enges', canton: 'NE' }, + { zip: '2074', city: 'Marin-Centre', canton: 'NE' }, + { zip: '2075', city: 'Thielle', canton: 'NE' }, + { zip: '2087', city: 'Cornaux NE', canton: 'NE' }, + { zip: '2088', city: 'Cressier NE', canton: 'NE' }, + { zip: '2523', city: 'Lignières', canton: 'NE' }, + { zip: '2525', city: 'Le Landeron', canton: 'NE' }, + { zip: '2042', city: 'Valangin', canton: 'NE' }, + { zip: '2043', city: 'Boudevilliers', canton: 'NE' }, + { zip: '2046', city: 'Fontaines NE', canton: 'NE' }, + { zip: '2052', city: 'La Vue-des-Alpes', canton: 'NE' }, + { zip: '2053', city: 'Cernier', canton: 'NE' }, + { zip: '2054', city: 'Les Vieux-Prés', canton: 'NE' }, + { zip: '2056', city: 'Dombresson', canton: 'NE' }, + { zip: '2057', city: 'Villiers', canton: 'NE' }, + { zip: '2058', city: 'Le Pâquier NE', canton: 'NE' }, + { zip: '2063', city: 'Saules', canton: 'NE' }, + { zip: '2065', city: 'Savagnier', canton: 'NE' }, + { zip: '2206', city: 'Les Geneveys-sur-Coffrane', canton: 'NE' }, + { zip: '2207', city: 'Coffrane', canton: 'NE' }, + { zip: '2208', city: 'Les Hauts-Geneveys', canton: 'NE' }, + { zip: '2103', city: 'Noiraigue', canton: 'NE' }, + { zip: '2105', city: 'Travers', canton: 'NE' }, + { zip: '2108', city: 'Couvet', canton: 'NE' }, + { zip: '2112', city: 'Môtiers NE', canton: 'NE' }, + { zip: '2113', city: 'Boveresse', canton: 'NE' }, + { zip: '2114', city: 'Fleurier', canton: 'NE' }, + { zip: '2115', city: 'Buttes', canton: 'NE' }, + { zip: '2116', city: 'Mont-de-Buttes', canton: 'NE' }, + { zip: '2117', city: 'La Côte-aux-Fées', canton: 'NE' }, + { zip: '2123', city: 'St-Sulpice NE', canton: 'NE' }, + { zip: '2124', city: 'Les Sagnettes', canton: 'NE' }, + { zip: '2126', city: 'Les Verrières', canton: 'NE' }, + { zip: '2127', city: 'Les Bayards', canton: 'NE' }, + { zip: '6052', city: 'Hergiswil NW', canton: 'NW' }, + { zip: '6362', city: 'Stansstad', canton: 'NW' }, + { zip: '6363', city: 'Fürigen', canton: 'NW' }, + { zip: '6365', city: 'Kehrsiten', canton: 'NW' }, + { zip: '6370', city: 'Stans', canton: 'NW' }, + { zip: '6371', city: 'Stans', canton: 'NW' }, + { zip: '6372', city: 'Ennetmoos', canton: 'NW' }, + { zip: '6373', city: 'Ennetbürgen', canton: 'NW' }, + { zip: '6374', city: 'Buochs', canton: 'NW' }, + { zip: '6375', city: 'Beckenried', canton: 'NW' }, + { zip: '6376', city: 'Emmetten', canton: 'NW' }, + { zip: '6382', city: 'Büren NW', canton: 'NW' }, + { zip: '6383', city: 'Wiesenberg', canton: 'NW' }, + { zip: '6386', city: 'Wolfenschiessen', canton: 'NW' }, + { zip: '6387', city: 'Oberrickenbach', canton: 'NW' }, + { zip: '6053', city: 'Alpnachstad', canton: 'OW' }, + { zip: '6055', city: 'Alpnach Dorf', canton: 'OW' }, + { zip: '6056', city: 'Kägiswil', canton: 'OW' }, + { zip: '6060', city: 'Ramersberg', canton: 'OW' }, + { zip: '6061', city: 'Sarnen 1', canton: 'OW' }, + { zip: '6062', city: 'Wilen (Sarnen)', canton: 'OW' }, + { zip: '6063', city: 'Stalden (Sarnen)', canton: 'OW' }, + { zip: '6064', city: 'Kerns', canton: 'OW' }, + { zip: '6066', city: 'St. Niklausen OW', canton: 'OW' }, + { zip: '6067', city: 'Melchtal', canton: 'OW' }, + { zip: '6068', city: 'Melchsee-Frutt', canton: 'OW' }, + { zip: '6072', city: 'Sachseln', canton: 'OW' }, + { zip: '6073', city: 'Flüeli-Ranft', canton: 'OW' }, + { zip: '6074', city: 'Giswil', canton: 'OW' }, + { zip: '6078', city: 'Bürglen OW', canton: 'OW' }, + { zip: '6388', city: 'Grafenort', canton: 'OW' }, + { zip: '6390', city: 'Engelberg', canton: 'OW' }, + { zip: '6391', city: 'Engelberg', canton: 'OW' }, + { zip: '9000', city: 'St. Gallen', canton: 'SG' }, + { zip: '9001', city: 'St. Gallen', canton: 'SG' }, + { zip: '9004', city: 'St. Gallen', canton: 'SG' }, + { zip: '9006', city: 'St. Gallen', canton: 'SG' }, + { zip: '9007', city: 'St. Gallen', canton: 'SG' }, + { zip: '9008', city: 'St. Gallen', canton: 'SG' }, + { zip: '9010', city: 'St. Gallen', canton: 'SG' }, + { zip: '9011', city: 'St. Gallen', canton: 'SG' }, + { zip: '9012', city: 'St. Gallen', canton: 'SG' }, + { zip: '9013', city: 'St. Gallen', canton: 'SG' }, + { zip: '9014', city: 'St. Gallen', canton: 'SG' }, + { zip: '9015', city: 'St. Gallen', canton: 'SG' }, + { zip: '9016', city: 'St. Gallen', canton: 'SG' }, + { zip: '9020', city: 'St. Gallen', canton: 'SG' }, + { zip: '9021', city: 'St. Gallen MS', canton: 'SG' }, + { zip: '9023', city: 'St. Gallen', canton: 'SG' }, + { zip: '9024', city: 'St. Gallen', canton: 'SG' }, + { zip: '9026', city: 'St. Gallen K AG', canton: 'SG' }, + { zip: '9027', city: 'St. Gallen Mona Versand', canton: 'SG' }, + { zip: '9028', city: 'St. Gallen', canton: 'SG' }, + { zip: '9029', city: 'St. Gallen', canton: 'SG' }, + { zip: '9030', city: 'St. Josefen', canton: 'SG' }, + { zip: '9032', city: 'Engelburg', canton: 'SG' }, + { zip: '9034', city: 'Eggersriet', canton: 'SG' }, + { zip: '9036', city: 'Grub SG', canton: 'SG' }, + { zip: '9200', city: 'Gossau SG', canton: 'SG' }, + { zip: '9201', city: 'Gossau SG', canton: 'SG' }, + { zip: '9204', city: 'Andwil SG', canton: 'SG' }, + { zip: '9205', city: 'Waldkirch', canton: 'SG' }, + { zip: '9212', city: 'Arnegg', canton: 'SG' }, + { zip: '9300', city: 'Wittenbach', canton: 'SG' }, + { zip: '9301', city: 'Wittenbach', canton: 'SG' }, + { zip: '9304', city: 'Bernhardzell', canton: 'SG' }, + { zip: '9308', city: 'Lömmenschwil', canton: 'SG' }, + { zip: '9312', city: 'Häggenschwil', canton: 'SG' }, + { zip: '9313', city: 'Muolen', canton: 'SG' }, + { zip: '9033', city: 'Untereggen', canton: 'SG' }, + { zip: '9305', city: 'Berg SG', canton: 'SG' }, + { zip: '9323', city: 'Steinach', canton: 'SG' }, + { zip: '9327', city: 'Tübach', canton: 'SG' }, + { zip: '9400', city: 'Rorschach', canton: 'SG' }, + { zip: '9401', city: 'Rorschach', canton: 'SG' }, + { zip: '9402', city: 'Mörschwil', canton: 'SG' }, + { zip: '9403', city: 'Goldach', canton: 'SG' }, + { zip: '9404', city: 'Rorschacherberg', canton: 'SG' }, + { zip: '9422', city: 'Staad SG', canton: 'SG' }, + { zip: '9423', city: 'Altenrhein', canton: 'SG' }, + { zip: '9425', city: 'Thal', canton: 'SG' }, + { zip: '9424', city: 'Rheineck', canton: 'SG' }, + { zip: '9430', city: 'St. Margrethen SG', canton: 'SG' }, + { zip: '9434', city: 'Au SG', canton: 'SG' }, + { zip: '9435', city: 'Heerbrugg', canton: 'SG' }, + { zip: '9436', city: 'Balgach', canton: 'SG' }, + { zip: '9437', city: 'Marbach SG', canton: 'SG' }, + { zip: '9443', city: 'Widnau', canton: 'SG' }, + { zip: '9444', city: 'Diepoldsau', canton: 'SG' }, + { zip: '9445', city: 'Rebstein', canton: 'SG' }, + { zip: '9450', city: 'Altstätten SG 2', canton: 'SG' }, + { zip: '9451', city: 'Kriessern', canton: 'SG' }, + { zip: '9452', city: 'Hinterforst', canton: 'SG' }, + { zip: '9453', city: 'Eichberg', canton: 'SG' }, + { zip: '9462', city: 'Montlingen', canton: 'SG' }, + { zip: '9463', city: 'Oberriet SG', canton: 'SG' }, + { zip: '9464', city: 'Rüthi (Rheintal)', canton: 'SG' }, + { zip: '9465', city: 'Salez', canton: 'SG' }, + { zip: '9466', city: 'Sennwald', canton: 'SG' }, + { zip: '9467', city: 'Frümsen', canton: 'SG' }, + { zip: '9468', city: 'Sax', canton: 'SG' }, + { zip: '9469', city: 'Haag (Rheintal)', canton: 'SG' }, + { zip: '9470', city: 'Werdenberg', canton: 'SG' }, + { zip: '9471', city: 'Buchs SG 3', canton: 'SG' }, + { zip: '9472', city: 'Grabs', canton: 'SG' }, + { zip: '9473', city: 'Gams', canton: 'SG' }, + { zip: '9475', city: 'Sevelen', canton: 'SG' }, + { zip: '9476', city: 'Weite', canton: 'SG' }, + { zip: '9477', city: 'Trübbach', canton: 'SG' }, + { zip: '9478', city: 'Azmoos', canton: 'SG' }, + { zip: '9479', city: 'Malans SG', canton: 'SG' }, + { zip: '7310', city: 'Bad Ragaz', canton: 'SG' }, + { zip: '7312', city: 'Pfäfers', canton: 'SG' }, + { zip: '7313', city: 'St. Margrethenberg', canton: 'SG' }, + { zip: '7314', city: 'Vadura', canton: 'SG' }, + { zip: '7315', city: 'Vättis', canton: 'SG' }, + { zip: '7317', city: 'Vasön', canton: 'SG' }, + { zip: '7320', city: 'Sargans', canton: 'SG' }, + { zip: '7323', city: 'Wangs', canton: 'SG' }, + { zip: '7324', city: 'Vilters', canton: 'SG' }, + { zip: '7325', city: 'Schwendi im Weisstannental', canton: 'SG' }, + { zip: '7326', city: 'Weisstannen', canton: 'SG' }, + { zip: '8877', city: 'Murg', canton: 'SG' }, + { zip: '8878', city: 'Quinten', canton: 'SG' }, + { zip: '8879', city: 'Pizolpark (Mels)', canton: 'SG' }, + { zip: '8880', city: 'Walenstadt', canton: 'SG' }, + { zip: '8881', city: 'Tscherlach', canton: 'SG' }, + { zip: '8882', city: 'Unterterzen', canton: 'SG' }, + { zip: '8883', city: 'Quarten', canton: 'SG' }, + { zip: '8884', city: 'Oberterzen', canton: 'SG' }, + { zip: '8885', city: 'Mols', canton: 'SG' }, + { zip: '8886', city: 'Mädris-Vermol', canton: 'SG' }, + { zip: '8887', city: 'Mels', canton: 'SG' }, + { zip: '8888', city: 'Heiligkreuz (Mels)', canton: 'SG' }, + { zip: '8889', city: 'Plons', canton: 'SG' }, + { zip: '8890', city: 'Flums', canton: 'SG' }, + { zip: '8892', city: 'Berschis', canton: 'SG' }, + { zip: '8893', city: 'Flums Hochwiese', canton: 'SG' }, + { zip: '8894', city: 'Flumserberg Saxli', canton: 'SG' }, + { zip: '8895', city: 'Flumserberg Portels', canton: 'SG' }, + { zip: '8896', city: 'Flumserberg Bergheim', canton: 'SG' }, + { zip: '8897', city: 'Flumserberg Tannenheim', canton: 'SG' }, + { zip: '8898', city: 'Flumserberg Tannenbodenalp', canton: 'SG' }, + { zip: '8638', city: 'Goldingen', canton: 'SG' }, + { zip: '8640', city: 'Rapperswil SG', canton: 'SG' }, + { zip: '8645', city: 'Jona', canton: 'SG' }, + { zip: '8646', city: 'Wagen', canton: 'SG' }, + { zip: '8715', city: 'Bollingen', canton: 'SG' }, + { zip: '8716', city: 'Schmerikon', canton: 'SG' }, + { zip: '8717', city: 'Benken SG', canton: 'SG' }, + { zip: '8718', city: 'Schänis', canton: 'SG' }, + { zip: '8722', city: 'Kaltbrunn', canton: 'SG' }, + { zip: '8723', city: 'Rufi', canton: 'SG' }, + { zip: '8725', city: 'Ernetschwil', canton: 'SG' }, + { zip: '8726', city: 'Ricken SG', canton: 'SG' }, + { zip: '8727', city: 'Walde SG', canton: 'SG' }, + { zip: '8730', city: 'Uznach', canton: 'SG' }, + { zip: '8732', city: 'Neuhaus SG', canton: 'SG' }, + { zip: '8733', city: 'Eschenbach SG', canton: 'SG' }, + { zip: '8734', city: 'Ermenswil', canton: 'SG' }, + { zip: '8735', city: 'St. Gallenkappel', canton: 'SG' }, + { zip: '8737', city: 'Gommiswald', canton: 'SG' }, + { zip: '8738', city: 'Uetliburg SG', canton: 'SG' }, + { zip: '8739', city: 'Rieden SG', canton: 'SG' }, + { zip: '8740', city: 'Uznach Vögele AG', canton: 'SG' }, + { zip: '8866', city: 'Ziegelbrücke', canton: 'SG' }, + { zip: '8872', city: 'Weesen', canton: 'SG' }, + { zip: '8873', city: 'Amden', canton: 'SG' }, + { zip: '9114', city: 'Hoffeld', canton: 'SG' }, + { zip: '9115', city: 'Dicken', canton: 'SG' }, + { zip: '9122', city: 'Mogelsberg', canton: 'SG' }, + { zip: '9123', city: 'Nassen', canton: 'SG' }, + { zip: '9125', city: 'Brunnadern', canton: 'SG' }, + { zip: '9126', city: 'Necker', canton: 'SG' }, + { zip: '9127', city: 'St. Peterzell', canton: 'SG' }, + { zip: '9500', city: 'Wil SG', canton: 'SG' }, + { zip: '9533', city: 'Dietschwil', canton: 'SG' }, + { zip: '9534', city: 'Gähwil', canton: 'SG' }, + { zip: '9601', city: 'Lütisburg Station', canton: 'SG' }, + { zip: '9602', city: 'Müselbach', canton: 'SG' }, + { zip: '9604', city: 'Lütisburg', canton: 'SG' }, + { zip: '9606', city: 'Bütschwil', canton: 'SG' }, + { zip: '9607', city: 'Mosnang', canton: 'SG' }, + { zip: '9608', city: 'Ganterschwil', canton: 'SG' }, + { zip: '9612', city: 'Dreien', canton: 'SG' }, + { zip: '9613', city: 'Mühlrüti', canton: 'SG' }, + { zip: '9614', city: 'Libingen', canton: 'SG' }, + { zip: '9615', city: 'Dietfurt', canton: 'SG' }, + { zip: '9620', city: 'Lichtensteig', canton: 'SG' }, + { zip: '9621', city: 'Oberhelfenschwil', canton: 'SG' }, + { zip: '9622', city: 'Krinau', canton: 'SG' }, + { zip: '9630', city: 'Wattwil', canton: 'SG' }, + { zip: '9631', city: 'Ulisbach', canton: 'SG' }, + { zip: '9633', city: 'Hemberg', canton: 'SG' }, + { zip: '9642', city: 'Ebnat-Kappel', canton: 'SG' }, + { zip: '9643', city: 'Krummenau', canton: 'SG' }, + { zip: '9650', city: 'Nesslau', canton: 'SG' }, + { zip: '9651', city: 'Ennetbühl', canton: 'SG' }, + { zip: '9652', city: 'Neu St. Johann', canton: 'SG' }, + { zip: '9655', city: 'Stein SG', canton: 'SG' }, + { zip: '9656', city: 'Alt St. Johann', canton: 'SG' }, + { zip: '9657', city: 'Unterwasser', canton: 'SG' }, + { zip: '9658', city: 'Wildhaus', canton: 'SG' }, + { zip: '9113', city: 'Degersheim', canton: 'SG' }, + { zip: '9116', city: 'Wolfertswil', canton: 'SG' }, + { zip: '9203', city: 'Niederwil SG', canton: 'SG' }, + { zip: '9230', city: 'Flawil 1', canton: 'SG' }, + { zip: '9231', city: 'Egg (Flawil)', canton: 'SG' }, + { zip: '9240', city: 'Uzwil', canton: 'SG' }, + { zip: '9242', city: 'Oberuzwil', canton: 'SG' }, + { zip: '9243', city: 'Jonschwil', canton: 'SG' }, + { zip: '9244', city: 'Niederuzwil', canton: 'SG' }, + { zip: '9245', city: 'Oberbüren', canton: 'SG' }, + { zip: '9246', city: 'Niederbüren', canton: 'SG' }, + { zip: '9247', city: 'Henau', canton: 'SG' }, + { zip: '9248', city: 'Bichwil', canton: 'SG' }, + { zip: '9249', city: 'Niederstetten', canton: 'SG' }, + { zip: '9501', city: 'Wil SG 1', canton: 'SG' }, + { zip: '9512', city: 'Rossrüti', canton: 'SG' }, + { zip: '9523', city: 'Züberwangen', canton: 'SG' }, + { zip: '9524', city: 'Zuzwil SG', canton: 'SG' }, + { zip: '9525', city: 'Lenggenwil', canton: 'SG' }, + { zip: '9526', city: 'Zuckenriet', canton: 'SG' }, + { zip: '9527', city: 'Niederhelfenschwil', canton: 'SG' }, + { zip: '9532', city: 'Rickenbach b. Wil', canton: 'SG' }, + { zip: '9536', city: 'Schwarzenbach SG', canton: 'SG' }, + { zip: '9552', city: 'Bronschhofen', canton: 'SG' }, + { zip: '8213', city: 'Neunkirch', canton: 'SH' }, + { zip: '8214', city: 'Gächlingen', canton: 'SH' }, + { zip: '8224', city: 'Löhningen', canton: 'SH' }, + { zip: '8234', city: 'Stetten SH', canton: 'SH' }, + { zip: '8235', city: 'Lohn SH', canton: 'SH' }, + { zip: '8236', city: 'Opfertshofen SH', canton: 'SH' }, + { zip: '8239', city: 'Dörflingen', canton: 'SH' }, + { zip: '8240', city: 'Thayngen', canton: 'SH' }, + { zip: '8241', city: 'Barzheim', canton: 'SH' }, + { zip: '8242', city: 'Hofen SH', canton: 'SH' }, + { zip: '8243', city: 'Altdorf SH', canton: 'SH' }, + { zip: '8200', city: 'Schaffhausen', canton: 'SH' }, + { zip: '8201', city: 'Schaffhausen', canton: 'SH' }, + { zip: '8203', city: 'Schaffhausen', canton: 'SH' }, + { zip: '8207', city: 'Schaffhausen', canton: 'SH' }, + { zip: '8208', city: 'Schaffhausen', canton: 'SH' }, + { zip: '8212', city: 'Neuhausen am Rheinfall', canton: 'SH' }, + { zip: '8222', city: 'Beringen', canton: 'SH' }, + { zip: '8223', city: 'Guntmadingen', canton: 'SH' }, + { zip: '8231', city: 'Hemmental', canton: 'SH' }, + { zip: '8232', city: 'Merishausen', canton: 'SH' }, + { zip: '8233', city: 'Bargen SH', canton: 'SH' }, + { zip: '8454', city: 'Buchberg', canton: 'SH' }, + { zip: '8455', city: 'Rüdlingen', canton: 'SH' }, + { zip: '8225', city: 'Siblingen', canton: 'SH' }, + { zip: '8226', city: 'Schleitheim', canton: 'SH' }, + { zip: '8228', city: 'Beggingen', canton: 'SH' }, + { zip: '8260', city: 'Stein am Rhein 2 Stadt', canton: 'SH' }, + { zip: '8261', city: 'Hemishofen', canton: 'SH' }, + { zip: '8262', city: 'Ramsen', canton: 'SH' }, + { zip: '8263', city: 'Buch SH', canton: 'SH' }, + { zip: '8215', city: 'Hallau', canton: 'SH' }, + { zip: '8216', city: 'Oberhallau', canton: 'SH' }, + { zip: '8217', city: 'Wilchingen', canton: 'SH' }, + { zip: '8218', city: 'Osterfingen', canton: 'SH' }, + { zip: '8219', city: 'Trasadingen', canton: 'SH' }, + { zip: '4622', city: 'Egerkingen', canton: 'SO' }, + { zip: '4623', city: 'Neuendorf', canton: 'SO' }, + { zip: '4624', city: 'Härkingen', canton: 'SO' }, + { zip: '4625', city: 'Oberbuchsiten', canton: 'SO' }, + { zip: '4626', city: 'Niederbuchsiten', canton: 'SO' }, + { zip: '4628', city: 'Wolfwil', canton: 'SO' }, + { zip: '4702', city: 'Oensingen', canton: 'SO' }, + { zip: '4703', city: 'Kestenholz', canton: 'SO' }, + { zip: '4710', city: 'Balsthal', canton: 'SO' }, + { zip: '4712', city: 'Laupersdorf', canton: 'SO' }, + { zip: '4713', city: 'Matzendorf', canton: 'SO' }, + { zip: '4714', city: 'Aedermannsdorf', canton: 'SO' }, + { zip: '4715', city: 'Herbetswil', canton: 'SO' }, + { zip: '4716', city: 'Gänsbrunnen', canton: 'SO' }, + { zip: '4717', city: 'Mümliswil', canton: 'SO' }, + { zip: '4718', city: 'Holderbank SO', canton: 'SO' }, + { zip: '4719', city: 'Ramiswil', canton: 'SO' }, + { zip: '3253', city: 'Schnottwil', canton: 'SO' }, + { zip: '3254', city: 'Messen', canton: 'SO' }, + { zip: '3307', city: 'Brunnenthal', canton: 'SO' }, + { zip: '4571', city: 'Lüterkofen', canton: 'SO' }, + { zip: '4574', city: 'Nennigkofen', canton: 'SO' }, + { zip: '4576', city: 'Tscheppach', canton: 'SO' }, + { zip: '4577', city: 'Hessigkofen', canton: 'SO' }, + { zip: '4578', city: 'Bibern SO', canton: 'SO' }, + { zip: '4579', city: 'Gossliwil', canton: 'SO' }, + { zip: '4581', city: 'Küttigkofen', canton: 'SO' }, + { zip: '4582', city: 'Brügglen', canton: 'SO' }, + { zip: '4583', city: 'Aetigkofen', canton: 'SO' }, + { zip: '4584', city: 'Gächliwil', canton: 'SO' }, + { zip: '4585', city: 'Biezwil', canton: 'SO' }, + { zip: '4586', city: 'Kyburg-Buchegg', canton: 'SO' }, + { zip: '4587', city: 'Aetingen', canton: 'SO' }, + { zip: '4588', city: 'Unterramsern', canton: 'SO' }, + { zip: '4108', city: 'Witterswil', canton: 'SO' }, + { zip: '4112', city: 'Bättwil-Flüh', canton: 'SO' }, + { zip: '4114', city: 'Hofstetten SO', canton: 'SO' }, + { zip: '4115', city: 'Mariastein', canton: 'SO' }, + { zip: '4116', city: 'Metzerlen', canton: 'SO' }, + { zip: '4118', city: 'Rodersdorf', canton: 'SO' }, + { zip: '4143', city: 'Dornach', canton: 'SO' }, + { zip: '4145', city: 'Gempen', canton: 'SO' }, + { zip: '4146', city: 'Hochwald', canton: 'SO' }, + { zip: '4206', city: 'Seewen SO', canton: 'SO' }, + { zip: '4412', city: 'Nuglar', canton: 'SO' }, + { zip: '4413', city: 'Büren SO', canton: 'SO' }, + { zip: '4421', city: 'St. Pantaleon', canton: 'SO' }, + { zip: '4468', city: 'Kienberg', canton: 'SO' }, + { zip: '4632', city: 'Trimbach', canton: 'SO' }, + { zip: '4633', city: 'Hauenstein', canton: 'SO' }, + { zip: '4634', city: 'Wisen SO', canton: 'SO' }, + { zip: '4652', city: 'Winznau', canton: 'SO' }, + { zip: '4653', city: 'Obergösgen', canton: 'SO' }, + { zip: '4654', city: 'Lostorf', canton: 'SO' }, + { zip: '4655', city: 'Rohr b. Olten', canton: 'SO' }, + { zip: '5013', city: 'Niedergösgen', canton: 'SO' }, + { zip: '5015', city: 'Erlinsbach SO', canton: 'SO' }, + { zip: '4528', city: 'Zuchwil', canton: 'SO' }, + { zip: '4542', city: 'Luterbach', canton: 'SO' }, + { zip: '4543', city: 'Deitingen', canton: 'SO' }, + { zip: '4552', city: 'Derendingen', canton: 'SO' }, + { zip: '4553', city: 'Subingen', canton: 'SO' }, + { zip: '4554', city: 'Hüniken', canton: 'SO' }, + { zip: '4556', city: 'Steinhof SO', canton: 'SO' }, + { zip: '4557', city: 'Horriwil', canton: 'SO' }, + { zip: '4558', city: 'Heinrichswil', canton: 'SO' }, + { zip: '4562', city: 'Biberist', canton: 'SO' }, + { zip: '4563', city: 'Gerlafingen', canton: 'SO' }, + { zip: '4565', city: 'Recherswil', canton: 'SO' }, + { zip: '4566', city: 'Kriegstetten', canton: 'SO' }, + { zip: '4573', city: 'Lohn-Ammannsegg', canton: 'SO' }, + { zip: '2540', city: 'Grenchen 1', canton: 'SO' }, + { zip: '2544', city: 'Bettlach', canton: 'SO' }, + { zip: '2545', city: 'Selzach', canton: 'SO' }, + { zip: '4512', city: 'Bellach', canton: 'SO' }, + { zip: '4513', city: 'Langendorf', canton: 'SO' }, + { zip: '4514', city: 'Lommiswil', canton: 'SO' }, + { zip: '4515', city: 'Oberdorf SO', canton: 'SO' }, + { zip: '4522', city: 'Rüttenen', canton: 'SO' }, + { zip: '4523', city: 'Niederwil SO', canton: 'SO' }, + { zip: '4524', city: 'Oberbalmberg', canton: 'SO' }, + { zip: '4525', city: 'Balm b. Günsberg', canton: 'SO' }, + { zip: '4532', city: 'Feldbrunnen', canton: 'SO' }, + { zip: '4533', city: 'Riedholz', canton: 'SO' }, + { zip: '4534', city: 'Flumenthal', canton: 'SO' }, + { zip: '4535', city: 'Hubersdorf', canton: 'SO' }, + { zip: '4600', city: 'Olten', canton: 'SO' }, + { zip: '4601', city: 'Olten 1 Fächer', canton: 'SO' }, + { zip: '4605', city: 'Olten', canton: 'SO' }, + { zip: '4609', city: 'Olten Sonderdienste', canton: 'SO' }, + { zip: '4612', city: 'Wangen b. Olten', canton: 'SO' }, + { zip: '4613', city: 'Rickenbach SO', canton: 'SO' }, + { zip: '4614', city: 'Hägendorf', canton: 'SO' }, + { zip: '4615', city: 'Allerheiligenberg', canton: 'SO' }, + { zip: '4616', city: 'Kappel SO', canton: 'SO' }, + { zip: '4617', city: 'Gunzgen', canton: 'SO' }, + { zip: '4618', city: 'Boningen', canton: 'SO' }, + { zip: '4629', city: 'Fulenbach', canton: 'SO' }, + { zip: '4656', city: 'Starrkirch-Wil', canton: 'SO' }, + { zip: '4657', city: 'Dulliken', canton: 'SO' }, + { zip: '4658', city: 'Däniken SO', canton: 'SO' }, + { zip: '5012', city: 'Schönenwerd', canton: 'SO' }, + { zip: '5014', city: 'Gretzenbach', canton: 'SO' }, + { zip: '5746', city: 'Walterswil SO', canton: 'SO' }, + { zip: '4500', city: 'Solothurn', canton: 'SO' }, + { zip: '4501', city: 'Solothurn', canton: 'SO' }, + { zip: '4502', city: 'Solothurn', canton: 'SO' }, + { zip: '4503', city: 'Solothurn', canton: 'SO' }, + { zip: '4509', city: 'Solothurn', canton: 'SO' }, + { zip: '4204', city: 'Himmelried', canton: 'SO' }, + { zip: '4208', city: 'Nunningen', canton: 'SO' }, + { zip: '4226', city: 'Breitenbach', canton: 'SO' }, + { zip: '4227', city: 'Büsserach', canton: 'SO' }, + { zip: '4228', city: 'Erschwil', canton: 'SO' }, + { zip: '4229', city: 'Beinwil SO', canton: 'SO' }, + { zip: '4232', city: 'Fehren', canton: 'SO' }, + { zip: '4233', city: 'Meltingen', canton: 'SO' }, + { zip: '4234', city: 'Zullwil', canton: 'SO' }, + { zip: '4245', city: 'Kleinlützel', canton: 'SO' }, + { zip: '4247', city: 'Grindel', canton: 'SO' }, + { zip: '4252', city: 'Bärschwil', canton: 'SO' }, + { zip: '8836', city: 'Bennau', canton: 'SZ' }, + { zip: '8840', city: 'Einsiedeln', canton: 'SZ' }, + { zip: '8841', city: 'Gross', canton: 'SZ' }, + { zip: '8844', city: 'Euthal', canton: 'SZ' }, + { zip: '8846', city: 'Willerzell', canton: 'SZ' }, + { zip: '8847', city: 'Egg SZ', canton: 'SZ' }, + { zip: '6410', city: 'Rigi Scheidegg', canton: 'SZ' }, + { zip: '6442', city: 'Gersau', canton: 'SZ' }, + { zip: '8806', city: 'Bäch SZ', canton: 'SZ' }, + { zip: '8807', city: 'Freienbach', canton: 'SZ' }, + { zip: '8808', city: 'Pfäffikon SZ', canton: 'SZ' }, + { zip: '8832', city: 'Wilen b. Wollerau', canton: 'SZ' }, + { zip: '8834', city: 'Schindellegi', canton: 'SZ' }, + { zip: '8835', city: 'Feusisberg', canton: 'SZ' }, + { zip: '6402', city: 'Merlischachen', canton: 'SZ' }, + { zip: '6403', city: 'Küssnacht am Rigi', canton: 'SZ' }, + { zip: '6405', city: 'Immensee', canton: 'SZ' }, + { zip: '8852', city: 'Altendorf', canton: 'SZ' }, + { zip: '8853', city: 'Lachen SZ', canton: 'SZ' }, + { zip: '8854', city: 'Siebnen', canton: 'SZ' }, + { zip: '8855', city: 'Wangen SZ', canton: 'SZ' }, + { zip: '8856', city: 'Tuggen', canton: 'SZ' }, + { zip: '8857', city: 'Vorderthal', canton: 'SZ' }, + { zip: '8858', city: 'Innerthal', canton: 'SZ' }, + { zip: '8862', city: 'Schübelbach', canton: 'SZ' }, + { zip: '8863', city: 'Buttikon SZ', canton: 'SZ' }, + { zip: '8864', city: 'Reichenburg', canton: 'SZ' }, + { zip: '6414', city: 'Oberarth', canton: 'SZ' }, + { zip: '6415', city: 'Arth', canton: 'SZ' }, + { zip: '6416', city: 'Steinerberg', canton: 'SZ' }, + { zip: '6417', city: 'Sattel', canton: 'SZ' }, + { zip: '6418', city: 'Rothenthurm', canton: 'SZ' }, + { zip: '6422', city: 'Steinen', canton: 'SZ' }, + { zip: '6423', city: 'Seewen SZ', canton: 'SZ' }, + { zip: '6424', city: 'Lauerz', canton: 'SZ' }, + { zip: '6430', city: 'Schwyz', canton: 'SZ' }, + { zip: '6431', city: 'Schwyz', canton: 'SZ' }, + { zip: '6432', city: 'Rickenbach b. Schwyz', canton: 'SZ' }, + { zip: '6433', city: 'Stoos SZ', canton: 'SZ' }, + { zip: '6434', city: 'Illgau', canton: 'SZ' }, + { zip: '6436', city: 'Bisisthal', canton: 'SZ' }, + { zip: '6438', city: 'Ibach', canton: 'SZ' }, + { zip: '6440', city: 'Brunnen', canton: 'SZ' }, + { zip: '6443', city: 'Morschach', canton: 'SZ' }, + { zip: '6452', city: 'Riemenstalden', canton: 'SZ' }, + { zip: '8842', city: 'Unteriberg', canton: 'SZ' }, + { zip: '8843', city: 'Oberiberg', canton: 'SZ' }, + { zip: '8845', city: 'Studen SZ', canton: 'SZ' }, + { zip: '8849', city: 'Alpthal', canton: 'SZ' }, + { zip: '8580', city: 'Hefenhofen', canton: 'TG' }, + { zip: '8581', city: 'Schocherswil', canton: 'TG' }, + { zip: '8582', city: 'Dozwil', canton: 'TG' }, + { zip: '8587', city: 'Oberaach', canton: 'TG' }, + { zip: '8590', city: 'Romanshorn', canton: 'TG' }, + { zip: '8592', city: 'Uttwil', canton: 'TG' }, + { zip: '8593', city: 'Kesswil', canton: 'TG' }, + { zip: '8599', city: 'Salmsach', canton: 'TG' }, + { zip: '9306', city: 'Freidorf TG', canton: 'TG' }, + { zip: '9314', city: 'Steinebrunn', canton: 'TG' }, + { zip: '9315', city: 'Winden', canton: 'TG' }, + { zip: '9320', city: 'Arbon', canton: 'TG' }, + { zip: '9322', city: 'Egnach', canton: 'TG' }, + { zip: '9325', city: 'Roggwil TG', canton: 'TG' }, + { zip: '9326', city: 'Horn', canton: 'TG' }, + { zip: '8252', city: 'Schlatt TG', canton: 'TG' }, + { zip: '8253', city: 'Diessenhofen', canton: 'TG' }, + { zip: '8254', city: 'Basadingen', canton: 'TG' }, + { zip: '8255', city: 'Schlattingen', canton: 'TG' }, + { zip: '8259', city: 'Wagenhausen', canton: 'TG' }, + { zip: '8264', city: 'Eschenz', canton: 'TG' }, + { zip: '8265', city: 'Mammern', canton: 'TG' }, + { zip: '8266', city: 'Steckborn', canton: 'TG' }, + { zip: '8267', city: 'Berlingen', canton: 'TG' }, + { zip: '8500', city: 'Gerlikon', canton: 'TG' }, + { zip: '8501', city: 'Frauenfeld', canton: 'TG' }, + { zip: '8502', city: 'Frauenfeld', canton: 'TG' }, + { zip: '8503', city: 'Frauenfeld', canton: 'TG' }, + { zip: '8505', city: 'Pfyn', canton: 'TG' }, + { zip: '8506', city: 'Lanzenneunforn', canton: 'TG' }, + { zip: '8507', city: 'Hörhausen', canton: 'TG' }, + { zip: '8508', city: 'Homburg', canton: 'TG' }, + { zip: '8509', city: 'Frauenfeld', canton: 'TG' }, + { zip: '8510', city: 'Frauenfeld Kant. Verwaltung', canton: 'TG' }, + { zip: '8512', city: 'Thundorf', canton: 'TG' }, + { zip: '8524', city: 'Buch b. Frauenfeld', canton: 'TG' }, + { zip: '8525', city: 'Wilen b. Neunforn', canton: 'TG' }, + { zip: '8526', city: 'Oberneunforn', canton: 'TG' }, + { zip: '8532', city: 'Weiningen TG', canton: 'TG' }, + { zip: '8535', city: 'Herdern', canton: 'TG' }, + { zip: '8536', city: 'Hüttwilen', canton: 'TG' }, + { zip: '8537', city: 'Uerschhausen', canton: 'TG' }, + { zip: '8546', city: 'Kefikon TG', canton: 'TG' }, + { zip: '8547', city: 'Gachnang', canton: 'TG' }, + { zip: '8552', city: 'Felben-Wellhausen', canton: 'TG' }, + { zip: '8553', city: 'Eschikofen', canton: 'TG' }, + { zip: '8555', city: 'Müllheim Dorf', canton: 'TG' }, + { zip: '9507', city: 'Stettfurt', canton: 'TG' }, + { zip: '9548', city: 'Matzingen', canton: 'TG' }, + { zip: '8268', city: 'Mannenbach-Salenstein', canton: 'TG' }, + { zip: '8269', city: 'Fruthwilen', canton: 'TG' }, + { zip: '8272', city: 'Ermatingen', canton: 'TG' }, + { zip: '8273', city: 'Triboltingen', canton: 'TG' }, + { zip: '8274', city: 'Gottlieben', canton: 'TG' }, + { zip: '8280', city: 'Kreuzlingen', canton: 'TG' }, + { zip: '8285', city: 'Kreuzlingen Ifolor', canton: 'TG' }, + { zip: '8558', city: 'Raperswilen', canton: 'TG' }, + { zip: '8564', city: 'Engwilen', canton: 'TG' }, + { zip: '8565', city: 'Hugelshofen', canton: 'TG' }, + { zip: '8566', city: 'Ellighausen', canton: 'TG' }, + { zip: '8573', city: 'Siegershausen', canton: 'TG' }, + { zip: '8574', city: 'Illighausen', canton: 'TG' }, + { zip: '8585', city: 'Langrickenbach', canton: 'TG' }, + { zip: '8594', city: 'Güttingen', canton: 'TG' }, + { zip: '8595', city: 'Altnau', canton: 'TG' }, + { zip: '8596', city: 'Scherzingen', canton: 'TG' }, + { zip: '8597', city: 'Landschlacht', canton: 'TG' }, + { zip: '8598', city: 'Bottighofen', canton: 'TG' }, + { zip: '8355', city: 'Aadorf', canton: 'TG' }, + { zip: '8356', city: 'Ettenhausen TG', canton: 'TG' }, + { zip: '8357', city: 'Guntershausen b. Aadorf', canton: 'TG' }, + { zip: '8360', city: 'Eschlikon TG', canton: 'TG' }, + { zip: '8362', city: 'Balterswil', canton: 'TG' }, + { zip: '8363', city: 'Bichelsee', canton: 'TG' }, + { zip: '8370', city: 'Sirnach', canton: 'TG' }, + { zip: '8371', city: 'Busswil TG', canton: 'TG' }, + { zip: '8372', city: 'Wiezikon b. Sirnach', canton: 'TG' }, + { zip: '8374', city: 'Dussnang', canton: 'TG' }, + { zip: '8376', city: 'Fischingen', canton: 'TG' }, + { zip: '8522', city: 'Aawangen', canton: 'TG' }, + { zip: '9502', city: 'Braunau', canton: 'TG' }, + { zip: '9506', city: 'Lommis', canton: 'TG' }, + { zip: '9508', city: 'Weingarten-Kalthäusern', canton: 'TG' }, + { zip: '9535', city: 'Wilen b. Wil', canton: 'TG' }, + { zip: '9542', city: 'Münchwilen TG', canton: 'TG' }, + { zip: '9543', city: 'St. Margarethen TG', canton: 'TG' }, + { zip: '9545', city: 'Wängi', canton: 'TG' }, + { zip: '9546', city: 'Tuttwil', canton: 'TG' }, + { zip: '9547', city: 'Wittenwil', canton: 'TG' }, + { zip: '9553', city: 'Bettwiesen', canton: 'TG' }, + { zip: '9554', city: 'Tägerschen', canton: 'TG' }, + { zip: '9555', city: 'Tobel', canton: 'TG' }, + { zip: '9573', city: 'Littenheid', canton: 'TG' }, + { zip: '8514', city: 'Amlikon-Bissegg', canton: 'TG' }, + { zip: '8554', city: 'Bonau', canton: 'TG' }, + { zip: '8556', city: 'Illhart', canton: 'TG' }, + { zip: '8560', city: 'Märstetten', canton: 'TG' }, + { zip: '8561', city: 'Ottoberg', canton: 'TG' }, + { zip: '8570', city: 'Weinfelden', canton: 'TG' }, + { zip: '8572', city: 'Graltshausen', canton: 'TG' }, + { zip: '8575', city: 'Bürglen TG', canton: 'TG' }, + { zip: '8576', city: 'Mauren TG', canton: 'TG' }, + { zip: '8577', city: 'Schönholzerswilen', canton: 'TG' }, + { zip: '8583', city: 'Donzhausen', canton: 'TG' }, + { zip: '8584', city: 'Opfershofen TG', canton: 'TG' }, + { zip: '8586', city: 'Buchackern', canton: 'TG' }, + { zip: '8588', city: 'Zihlschlacht', canton: 'TG' }, + { zip: '8589', city: 'Sitterdorf', canton: 'TG' }, + { zip: '9213', city: 'Hauptwil', canton: 'TG' }, + { zip: '9214', city: 'Kradolf', canton: 'TG' }, + { zip: '9215', city: 'Buhwil', canton: 'TG' }, + { zip: '9216', city: 'Hohentannen', canton: 'TG' }, + { zip: '9217', city: 'Neukirch an der Thur', canton: 'TG' }, + { zip: '9220', city: 'Bischofszell', canton: 'TG' }, + { zip: '9223', city: 'Schweizersholz', canton: 'TG' }, + { zip: '9225', city: 'Wilen (Gottshaus)', canton: 'TG' }, + { zip: '9503', city: 'Lanterswil', canton: 'TG' }, + { zip: '9504', city: 'Friltschen', canton: 'TG' }, + { zip: '9514', city: 'Wuppenau', canton: 'TG' }, + { zip: '9515', city: 'Hosenruck', canton: 'TG' }, + { zip: '9517', city: 'Mettlen', canton: 'TG' }, + { zip: '9556', city: 'Zezikon', canton: 'TG' }, + { zip: '9562', city: 'Märwil', canton: 'TG' }, + { zip: '9565', city: 'Schmidshof', canton: 'TG' }, + { zip: '6500', city: 'Bellinzona 4', canton: 'TI' }, + { zip: '6501', city: 'Bellinzona', canton: 'TI' }, + { zip: '6503', city: 'Bellinzona', canton: 'TI' }, + { zip: '6512', city: 'Giubiasco', canton: 'TI' }, + { zip: '6513', city: 'Monte Carasso', canton: 'TI' }, + { zip: '6514', city: 'Sementina', canton: 'TI' }, + { zip: '6515', city: 'Gudo', canton: 'TI' }, + { zip: '6517', city: 'Arbedo', canton: 'TI' }, + { zip: '6518', city: 'Gorduno', canton: 'TI' }, + { zip: '6523', city: 'Preonzo', canton: 'TI' }, + { zip: '6524', city: 'Moleno', canton: 'TI' }, + { zip: '6525', city: 'Gnosca', canton: 'TI' }, + { zip: '6528', city: 'Camorino', canton: 'TI' }, + { zip: '6532', city: 'Castione', canton: 'TI' }, + { zip: '6533', city: 'Lumino', canton: 'TI' }, + { zip: '6582', city: 'Pianezzo', canton: 'TI' }, + { zip: '6583', city: 'S. Antonio (Val Morobbia)', canton: 'TI' }, + { zip: '6584', city: 'Carena', canton: 'TI' }, + { zip: '6592', city: 'S. Antonino', canton: 'TI' }, + { zip: '6593', city: 'Cadenazzo', canton: 'TI' }, + { zip: '6599', city: 'Robasacco', canton: 'TI' }, + { zip: '6702', city: 'Claro', canton: 'TI' }, + { zip: '6809', city: 'Medeglia', canton: 'TI' }, + { zip: '6810', city: 'Isone', canton: 'TI' }, + { zip: '6713', city: 'Malvaglia', canton: 'TI' }, + { zip: '6714', city: 'Semione', canton: 'TI' }, + { zip: '6715', city: 'Dongio', canton: 'TI' }, + { zip: '6716', city: 'Acquarossa', canton: 'TI' }, + { zip: '6717', city: 'Dangio', canton: 'TI' }, + { zip: '6718', city: 'Camperio', canton: 'TI' }, + { zip: '6719', city: 'Aquila', canton: 'TI' }, + { zip: '6720', city: 'Ghirone', canton: 'TI' }, + { zip: '6721', city: 'Motto (Blenio)', canton: 'TI' }, + { zip: '6722', city: 'Corzoneso', canton: 'TI' }, + { zip: '6723', city: 'Prugiasco', canton: 'TI' }, + { zip: '6724', city: 'Largario', canton: 'TI' }, + { zip: '6742', city: 'Pollegio', canton: 'TI' }, + { zip: '6743', city: 'Bodio TI', canton: 'TI' }, + { zip: '6744', city: 'Personico', canton: 'TI' }, + { zip: '6745', city: 'Giornico', canton: 'TI' }, + { zip: '6746', city: 'Calonico', canton: 'TI' }, + { zip: '6747', city: 'Chironico', canton: 'TI' }, + { zip: '6748', city: 'Anzonico', canton: 'TI' }, + { zip: '6749', city: 'Sobrio', canton: 'TI' }, + { zip: '6760', city: 'Calpiogna', canton: 'TI' }, + { zip: '6763', city: 'Mairengo', canton: 'TI' }, + { zip: '6764', city: 'Chiggiogna', canton: 'TI' }, + { zip: '6772', city: 'Rodi-Fiesso', canton: 'TI' }, + { zip: '6773', city: 'Prato (Leventina)', canton: 'TI' }, + { zip: '6774', city: 'Dalpe', canton: 'TI' }, + { zip: '6775', city: 'Ambrì', canton: 'TI' }, + { zip: '6776', city: 'Piotta', canton: 'TI' }, + { zip: '6777', city: 'Varenzo', canton: 'TI' }, + { zip: '6780', city: 'Madrano', canton: 'TI' }, + { zip: '6781', city: 'Bedretto', canton: 'TI' }, + { zip: '6516', city: 'Cugnasco', canton: 'TI' }, + { zip: '6571', city: 'Indemini', canton: 'TI' }, + { zip: '6572', city: 'Quartino', canton: 'TI' }, + { zip: '6573', city: 'Magadino', canton: 'TI' }, + { zip: '6574', city: 'Vira (Gambarogno)', canton: 'TI' }, + { zip: '6575', city: 'S. Nazzaro', canton: 'TI' }, + { zip: '6576', city: 'Gerra (Gambarogno)', canton: 'TI' }, + { zip: '6577', city: 'Ranzo', canton: 'TI' }, + { zip: '6578', city: 'Caviano', canton: 'TI' }, + { zip: '6579', city: 'Piazzogna', canton: 'TI' }, + { zip: '6594', city: 'Contone', canton: 'TI' }, + { zip: '6595', city: 'Riazzino', canton: 'TI' }, + { zip: '6596', city: 'Gordola', canton: 'TI' }, + { zip: '6597', city: 'Agarone', canton: 'TI' }, + { zip: '6598', city: 'Tenero', canton: 'TI' }, + { zip: '6600', city: 'Muralto', canton: 'TI' }, + { zip: '6601', city: 'Locarno', canton: 'TI' }, + { zip: '6602', city: 'Muralto', canton: 'TI' }, + { zip: '6604', city: 'Locarno', canton: 'TI' }, + { zip: '6605', city: 'Locarno', canton: 'TI' }, + { zip: '6611', city: 'Crana', canton: 'TI' }, + { zip: '6612', city: 'Ascona', canton: 'TI' }, + { zip: '6613', city: 'Porto Ronco', canton: 'TI' }, + { zip: '6614', city: 'Isole di Brissago', canton: 'TI' }, + { zip: '6616', city: 'Losone', canton: 'TI' }, + { zip: '6618', city: 'Arcegno', canton: 'TI' }, + { zip: '6622', city: 'Ronco sopra Ascona', canton: 'TI' }, + { zip: '6631', city: 'Corippo', canton: 'TI' }, + { zip: '6632', city: 'Vogorno', canton: 'TI' }, + { zip: '6633', city: 'Lavertezzo', canton: 'TI' }, + { zip: '6634', city: 'Brione (Verzasca)', canton: 'TI' }, + { zip: '6635', city: 'Gerra (Verzasca)', canton: 'TI' }, + { zip: '6636', city: 'Frasco', canton: 'TI' }, + { zip: '6637', city: 'Sonogno', canton: 'TI' }, + { zip: '6644', city: 'Orselina', canton: 'TI' }, + { zip: '6645', city: 'Brione sopra Minusio', canton: 'TI' }, + { zip: '6646', city: 'Contra', canton: 'TI' }, + { zip: '6647', city: 'Mergoscia', canton: 'TI' }, + { zip: '6648', city: 'Minusio', canton: 'TI' }, + { zip: '6652', city: 'Tegna', canton: 'TI' }, + { zip: '6653', city: 'Verscio', canton: 'TI' }, + { zip: '6654', city: 'Cavigliano', canton: 'TI' }, + { zip: '6655', city: 'Rasa', canton: 'TI' }, + { zip: '6656', city: 'Golino', canton: 'TI' }, + { zip: '6657', city: 'Palagnedra', canton: 'TI' }, + { zip: '6658', city: 'Borgnone', canton: 'TI' }, + { zip: '6659', city: 'Camedo', canton: 'TI' }, + { zip: '6661', city: 'Berzona', canton: 'TI' }, + { zip: '6662', city: 'Russo', canton: 'TI' }, + { zip: '6663', city: 'Spruga', canton: 'TI' }, + { zip: '6664', city: 'Vergeletto', canton: 'TI' }, + { zip: '6802', city: 'Rivera', canton: 'TI' }, + { zip: '6803', city: 'Camignolo', canton: 'TI' }, + { zip: '6804', city: 'Bironico', canton: 'TI' }, + { zip: '6805', city: 'Mezzovico', canton: 'TI' }, + { zip: '6806', city: 'Sigirino', canton: 'TI' }, + { zip: '6807', city: 'Taverne', canton: 'TI' }, + { zip: '6808', city: 'Torricella', canton: 'TI' }, + { zip: '6814', city: 'Cadempino', canton: 'TI' }, + { zip: '6815', city: 'Melide', canton: 'TI' }, + { zip: '6816', city: 'Bissone', canton: 'TI' }, + { zip: '6817', city: 'Maroggia', canton: 'TI' }, + { zip: '6818', city: 'Melano', canton: 'TI' }, + { zip: '6821', city: 'Rovio', canton: 'TI' }, + { zip: '6822', city: 'Arogno', canton: 'TI' }, + { zip: '6823', city: 'Pugerna', canton: 'TI' }, + { zip: '6825', city: 'Capolago', canton: 'TI' }, + { zip: '6827', city: 'Brusino Arsizio', canton: 'TI' }, + { zip: '6867', city: 'Serpiano', canton: 'TI' }, + { zip: '6900', city: 'Paradiso', canton: 'TI' }, + { zip: '6901', city: 'Lugano', canton: 'TI' }, + { zip: '6902', city: 'Lugano 2 Caselle', canton: 'TI' }, + { zip: '6903', city: 'Lugano', canton: 'TI' }, + { zip: '6904', city: 'Lugano 4 Caselle', canton: 'TI' }, + { zip: '6906', city: 'Lugano 6 Caselle', canton: 'TI' }, + { zip: '6907', city: 'Lugano 7 Caselle', canton: 'TI' }, + { zip: '6908', city: 'Massagno Caselle', canton: 'TI' }, + { zip: '6912', city: 'Pazzallo', canton: 'TI' }, + { zip: '6913', city: 'Carabbia', canton: 'TI' }, + { zip: '6914', city: 'Carona', canton: 'TI' }, + { zip: '6915', city: 'Pambio-Noranco', canton: 'TI' }, + { zip: '6916', city: 'Grancia', canton: 'TI' }, + { zip: '6917', city: 'Barbengo', canton: 'TI' }, + { zip: '6918', city: 'Figino', canton: 'TI' }, + { zip: '6919', city: 'Carabietta', canton: 'TI' }, + { zip: '6921', city: 'Vico Morcote', canton: 'TI' }, + { zip: '6922', city: 'Morcote', canton: 'TI' }, + { zip: '6924', city: 'Sorengo', canton: 'TI' }, + { zip: '6925', city: 'Gentilino', canton: 'TI' }, + { zip: '6926', city: 'Montagnola', canton: 'TI' }, + { zip: '6927', city: 'Agra', canton: 'TI' }, + { zip: '6928', city: 'Manno', canton: 'TI' }, + { zip: '6929', city: 'Gravesano', canton: 'TI' }, + { zip: '6930', city: 'Bedano', canton: 'TI' }, + { zip: '6932', city: 'Breganzona', canton: 'TI' }, + { zip: '6933', city: 'Muzzano', canton: 'TI' }, + { zip: '6934', city: 'Bioggio', canton: 'TI' }, + { zip: '6935', city: 'Bosco Luganese', canton: 'TI' }, + { zip: '6936', city: 'Cademario', canton: 'TI' }, + { zip: '6937', city: 'Breno', canton: 'TI' }, + { zip: '6938', city: 'Fescoggia', canton: 'TI' }, + { zip: '6939', city: 'Mugena', canton: 'TI' }, + { zip: '6942', city: 'Savosa', canton: 'TI' }, + { zip: '6943', city: 'Vezia', canton: 'TI' }, + { zip: '6944', city: 'Cureglia', canton: 'TI' }, + { zip: '6945', city: 'Origlio', canton: 'TI' }, + { zip: '6946', city: 'Ponte Capriasca', canton: 'TI' }, + { zip: '6947', city: 'Vaglio', canton: 'TI' }, + { zip: '6948', city: 'Porza', canton: 'TI' }, + { zip: '6949', city: 'Comano', canton: 'TI' }, + { zip: '6950', city: 'Tesserete', canton: 'TI' }, + { zip: '6951', city: 'Insone', canton: 'TI' }, + { zip: '6952', city: 'Canobbio', canton: 'TI' }, + { zip: '6953', city: 'Lugaggia', canton: 'TI' }, + { zip: '6954', city: 'Sala Capriasca', canton: 'TI' }, + { zip: '6955', city: 'Oggio', canton: 'TI' }, + { zip: '6956', city: 'Lopagno', canton: 'TI' }, + { zip: '6957', city: 'Roveredo TI', canton: 'TI' }, + { zip: '6958', city: 'Corticiasca', canton: 'TI' }, + { zip: '6959', city: 'Piandera Paese', canton: 'TI' }, + { zip: '6960', city: 'Odogno', canton: 'TI' }, + { zip: '6962', city: 'Viganello', canton: 'TI' }, + { zip: '6963', city: 'Cureggia', canton: 'TI' }, + { zip: '6964', city: 'Davesco-Soragno', canton: 'TI' }, + { zip: '6965', city: 'Cadro', canton: 'TI' }, + { zip: '6966', city: 'Villa Luganese', canton: 'TI' }, + { zip: '6967', city: 'Dino', canton: 'TI' }, + { zip: '6968', city: 'Sonvico', canton: 'TI' }, + { zip: '6974', city: 'Aldesago', canton: 'TI' }, + { zip: '6976', city: 'Castagnola', canton: 'TI' }, + { zip: '6977', city: 'Ruvigliana', canton: 'TI' }, + { zip: '6978', city: 'Gandria', canton: 'TI' }, + { zip: '6979', city: 'Brè sopra Lugano', canton: 'TI' }, + { zip: '6980', city: 'Castelrotto', canton: 'TI' }, + { zip: '6981', city: 'Beride di Bedigliora', canton: 'TI' }, + { zip: '6982', city: 'Agno', canton: 'TI' }, + { zip: '6983', city: 'Magliaso', canton: 'TI' }, + { zip: '6984', city: 'Pura', canton: 'TI' }, + { zip: '6986', city: 'Curio', canton: 'TI' }, + { zip: '6987', city: 'Caslano', canton: 'TI' }, + { zip: '6988', city: 'Ponte Tresa', canton: 'TI' }, + { zip: '6989', city: 'Purasca', canton: 'TI' }, + { zip: '6990', city: 'Cassina d\'Agno', canton: 'TI' }, + { zip: '6991', city: 'Neggio', canton: 'TI' }, + { zip: '6992', city: 'Cimo', canton: 'TI' }, + { zip: '6993', city: 'Iseo', canton: 'TI' }, + { zip: '6994', city: 'Aranno', canton: 'TI' }, + { zip: '6995', city: 'Molinazzo di Monteggio', canton: 'TI' }, + { zip: '6997', city: 'Sessa', canton: 'TI' }, + { zip: '6998', city: 'Monteggio 2', canton: 'TI' }, + { zip: '6999', city: 'Astano', canton: 'TI' }, + { zip: '6826', city: 'Riva San Vitale', canton: 'TI' }, + { zip: '6828', city: 'Balerna', canton: 'TI' }, + { zip: '6830', city: 'Chiasso 3', canton: 'TI' }, + { zip: '6832', city: 'Seseglio', canton: 'TI' }, + { zip: '6833', city: 'Vacallo', canton: 'TI' }, + { zip: '6834', city: 'Morbio Inferiore', canton: 'TI' }, + { zip: '6835', city: 'Morbio Superiore', canton: 'TI' }, + { zip: '6836', city: 'Serfontana', canton: 'TI' }, + { zip: '6837', city: 'Bruzella', canton: 'TI' }, + { zip: '6838', city: 'Muggio', canton: 'TI' }, + { zip: '6839', city: 'Sagno', canton: 'TI' }, + { zip: '6850', city: 'Mendrisio Stazione', canton: 'TI' }, + { zip: '6852', city: 'Genestrerio', canton: 'TI' }, + { zip: '6853', city: 'Ligornetto', canton: 'TI' }, + { zip: '6854', city: 'S. Pietro', canton: 'TI' }, + { zip: '6855', city: 'Stabio', canton: 'TI' }, + { zip: '6862', city: 'Rancate', canton: 'TI' }, + { zip: '6863', city: 'Besazio', canton: 'TI' }, + { zip: '6864', city: 'Arzo', canton: 'TI' }, + { zip: '6865', city: 'Tremona', canton: 'TI' }, + { zip: '6866', city: 'Meride', canton: 'TI' }, + { zip: '6872', city: 'Somazzo', canton: 'TI' }, + { zip: '6873', city: 'Corteglia', canton: 'TI' }, + { zip: '6874', city: 'Castel San Pietro', canton: 'TI' }, + { zip: '6875', city: 'Campora', canton: 'TI' }, + { zip: '6877', city: 'Coldrerio', canton: 'TI' }, + { zip: '6883', city: 'Novazzano', canton: 'TI' }, + { zip: '6526', city: 'Prosito', canton: 'TI' }, + { zip: '6527', city: 'Lodrino', canton: 'TI' }, + { zip: '6703', city: 'Osogna', canton: 'TI' }, + { zip: '6705', city: 'Cresciano', canton: 'TI' }, + { zip: '6707', city: 'Iragna', canton: 'TI' }, + { zip: '6710', city: 'Biasca', canton: 'TI' }, + { zip: '6670', city: 'Avegno', canton: 'TI' }, + { zip: '6672', city: 'Gordevio', canton: 'TI' }, + { zip: '6673', city: 'Maggia', canton: 'TI' }, + { zip: '6674', city: 'Someo', canton: 'TI' }, + { zip: '6675', city: 'Cevio', canton: 'TI' }, + { zip: '6676', city: 'Bignasco', canton: 'TI' }, + { zip: '6677', city: 'Aurigeno', canton: 'TI' }, + { zip: '6678', city: 'Lodano', canton: 'TI' }, + { zip: '6682', city: 'Linescio', canton: 'TI' }, + { zip: '6683', city: 'Niva (Vallemaggia)', canton: 'TI' }, + { zip: '6684', city: 'Cimalmotto', canton: 'TI' }, + { zip: '6685', city: 'Bosco/Gurin', canton: 'TI' }, + { zip: '6690', city: 'S. Carlo (Val Bavona)', canton: 'TI' }, + { zip: '6692', city: 'Brontallo', canton: 'TI' }, + { zip: '6693', city: 'Broglio', canton: 'TI' }, + { zip: '6694', city: 'Prato-Sornico', canton: 'TI' }, + { zip: '6695', city: 'Peccia', canton: 'TI' }, + { zip: '6696', city: 'Fusio', canton: 'TI' }, + { zip: '6377', city: 'Seelisberg', canton: 'UR' }, + { zip: '6441', city: 'Rütli', canton: 'UR' }, + { zip: '6454', city: 'Flüelen', canton: 'UR' }, + { zip: '6460', city: 'Altdorf UR 2', canton: 'UR' }, + { zip: '6461', city: 'Isenthal', canton: 'UR' }, + { zip: '6462', city: 'Seedorf UR', canton: 'UR' }, + { zip: '6463', city: 'Bürglen UR', canton: 'UR' }, + { zip: '6464', city: 'Spiringen', canton: 'UR' }, + { zip: '6465', city: 'Unterschächen', canton: 'UR' }, + { zip: '6466', city: 'Bauen', canton: 'UR' }, + { zip: '6467', city: 'Schattdorf', canton: 'UR' }, + { zip: '6468', city: 'Attinghausen', canton: 'UR' }, + { zip: '6469', city: 'Haldi b. Schattdorf', canton: 'UR' }, + { zip: '6472', city: 'Erstfeld', canton: 'UR' }, + { zip: '6473', city: 'Silenen', canton: 'UR' }, + { zip: '6474', city: 'Amsteg', canton: 'UR' }, + { zip: '6475', city: 'Bristen', canton: 'UR' }, + { zip: '6476', city: 'Intschi', canton: 'UR' }, + { zip: '6482', city: 'Gurtnellen', canton: 'UR' }, + { zip: '6484', city: 'Wassen UR', canton: 'UR' }, + { zip: '6485', city: 'Meien', canton: 'UR' }, + { zip: '6487', city: 'Göschenen', canton: 'UR' }, + { zip: '6490', city: 'Andermatt', canton: 'UR' }, + { zip: '6491', city: 'Realp', canton: 'UR' }, + { zip: '6493', city: 'Hospental', canton: 'UR' }, + { zip: '8751', city: 'Urnerboden', canton: 'UR' }, + { zip: '1844', city: 'Villeneuve VD', canton: 'VD' }, + { zip: '1845', city: 'Noville', canton: 'VD' }, + { zip: '1846', city: 'Chessel', canton: 'VD' }, + { zip: '1847', city: 'Rennaz', canton: 'VD' }, + { zip: '1852', city: 'Roche VD', canton: 'VD' }, + { zip: '1853', city: 'Yvorne', canton: 'VD' }, + { zip: '1854', city: 'Leysin', canton: 'VD' }, + { zip: '1856', city: 'Corbeyrier', canton: 'VD' }, + { zip: '1860', city: 'Aigle', canton: 'VD' }, + { zip: '1862', city: 'Les Mosses', canton: 'VD' }, + { zip: '1863', city: 'Le Sépey', canton: 'VD' }, + { zip: '1864', city: 'Vers-l\'Eglise', canton: 'VD' }, + { zip: '1865', city: 'Les Diablerets', canton: 'VD' }, + { zip: '1866', city: 'La Forclaz VD', canton: 'VD' }, + { zip: '1867', city: 'Panex', canton: 'VD' }, + { zip: '1880', city: 'Les Posses-sur-Bex', canton: 'VD' }, + { zip: '1882', city: 'Gryon', canton: 'VD' }, + { zip: '1884', city: 'Arveyes', canton: 'VD' }, + { zip: '1885', city: 'Chesières', canton: 'VD' }, + { zip: '1892', city: 'Morcles', canton: 'VD' }, + { zip: '1082', city: 'Corcelles-le-Jorat', canton: 'VD' }, + { zip: '1085', city: 'Vulliens', canton: 'VD' }, + { zip: '1088', city: 'Ropraz', canton: 'VD' }, + { zip: '1509', city: 'Vucherens', canton: 'VD' }, + { zip: '1510', city: 'Syens', canton: 'VD' }, + { zip: '1512', city: 'Chavannes-sur-Moudon', canton: 'VD' }, + { zip: '1513', city: 'Rossenges', canton: 'VD' }, + { zip: '1514', city: 'Bussy-sur-Moudon', canton: 'VD' }, + { zip: '1515', city: 'Villars-le-Comte', canton: 'VD' }, + { zip: '1521', city: 'Curtilles', canton: 'VD' }, + { zip: '1522', city: 'Lucens', canton: 'VD' }, + { zip: '1523', city: 'Granges-près-Marnand', canton: 'VD' }, + { zip: '1524', city: 'Marnand', canton: 'VD' }, + { zip: '1525', city: 'Henniez', canton: 'VD' }, + { zip: '1526', city: 'Forel-sur-Lucens', canton: 'VD' }, + { zip: '1530', city: 'Payerne', canton: 'VD' }, + { zip: '1535', city: 'Combremont-le-Grand', canton: 'VD' }, + { zip: '1536', city: 'Combremont-le-Petit', canton: 'VD' }, + { zip: '1537', city: 'Champtauroz', canton: 'VD' }, + { zip: '1538', city: 'Treytorrens (Payerne)', canton: 'VD' }, + { zip: '1543', city: 'Grandcour', canton: 'VD' }, + { zip: '1545', city: 'Chevroux', canton: 'VD' }, + { zip: '1551', city: 'Vers-chez-Perrin', canton: 'VD' }, + { zip: '1552', city: 'Trey', canton: 'VD' }, + { zip: '1554', city: 'Rossens VD', canton: 'VD' }, + { zip: '1555', city: 'Villarzel', canton: 'VD' }, + { zip: '1562', city: 'Corcelles-près-Payerne', canton: 'VD' }, + { zip: '1580', city: 'Avenches', canton: 'VD' }, + { zip: '1584', city: 'Villars-le-Grand', canton: 'VD' }, + { zip: '1585', city: 'Salavaux', canton: 'VD' }, + { zip: '1586', city: 'Vallamand', canton: 'VD' }, + { zip: '1587', city: 'Constantine', canton: 'VD' }, + { zip: '1588', city: 'Cudrefin', canton: 'VD' }, + { zip: '1589', city: 'Chabrey', canton: 'VD' }, + { zip: '1682', city: 'Lovatens', canton: 'VD' }, + { zip: '1683', city: 'Brenles', canton: 'VD' }, + { zip: '1031', city: 'Mex VD', canton: 'VD' }, + { zip: '1034', city: 'Boussens', canton: 'VD' }, + { zip: '1035', city: 'Bournens', canton: 'VD' }, + { zip: '1036', city: 'Sullens', canton: 'VD' }, + { zip: '1037', city: 'Etagnières', canton: 'VD' }, + { zip: '1038', city: 'Bercher', canton: 'VD' }, + { zip: '1040', city: 'Echallens', canton: 'VD' }, + { zip: '1041', city: 'Montaubion-Chardonney', canton: 'VD' }, + { zip: '1042', city: 'Assens', canton: 'VD' }, + { zip: '1043', city: 'Sugnens', canton: 'VD' }, + { zip: '1044', city: 'Fey', canton: 'VD' }, + { zip: '1045', city: 'Ogens', canton: 'VD' }, + { zip: '1046', city: 'Rueyres', canton: 'VD' }, + { zip: '1047', city: 'Oppens', canton: 'VD' }, + { zip: '1053', city: 'Cugy VD', canton: 'VD' }, + { zip: '1054', city: 'Morrens VD', canton: 'VD' }, + { zip: '1055', city: 'Froideville', canton: 'VD' }, + { zip: '1058', city: 'Villars-Tiercelin', canton: 'VD' }, + { zip: '1059', city: 'Peney-le-Jorat', canton: 'VD' }, + { zip: '1061', city: 'Villars-Mendraz', canton: 'VD' }, + { zip: '1062', city: 'Sottens', canton: 'VD' }, + { zip: '1063', city: 'Boulens', canton: 'VD' }, + { zip: '1302', city: 'Vufflens-la-Ville', canton: 'VD' }, + { zip: '1303', city: 'Penthaz', canton: 'VD' }, + { zip: '1305', city: 'Penthalaz', canton: 'VD' }, + { zip: '1306', city: 'Daillens', canton: 'VD' }, + { zip: '1307', city: 'Lussery-Villars', canton: 'VD' }, + { zip: '1375', city: 'Penthéréaz', canton: 'VD' }, + { zip: '1376', city: 'Eclagnens', canton: 'VD' }, + { zip: '1377', city: 'Oulens-sous-Echallens', canton: 'VD' }, + { zip: '1409', city: 'Chanéaz', canton: 'VD' }, + { zip: '1416', city: 'Pailly', canton: 'VD' }, + { zip: '1417', city: 'Epautheyres', canton: 'VD' }, + { zip: '1418', city: 'Vuarrens', canton: 'VD' }, + { zip: '1148', city: 'La Praz', canton: 'VD' }, + { zip: '1321', city: 'Arnex-sur-Orbe', canton: 'VD' }, + { zip: '1322', city: 'Croy', canton: 'VD' }, + { zip: '1323', city: 'Romainmôtier', canton: 'VD' }, + { zip: '1324', city: 'Premier', canton: 'VD' }, + { zip: '1325', city: 'Vaulion', canton: 'VD' }, + { zip: '1326', city: 'Juriens', canton: 'VD' }, + { zip: '1329', city: 'Bretonnières', canton: 'VD' }, + { zip: '1337', city: 'Vallorbe', canton: 'VD' }, + { zip: '1338', city: 'Ballaigues', canton: 'VD' }, + { zip: '1341', city: 'Orient', canton: 'VD' }, + { zip: '1342', city: 'Le Pont', canton: 'VD' }, + { zip: '1343', city: 'Les Charbonnières', canton: 'VD' }, + { zip: '1344', city: 'L\'Abbaye', canton: 'VD' }, + { zip: '1345', city: 'Le Séchey', canton: 'VD' }, + { zip: '1346', city: 'Les Bioux', canton: 'VD' }, + { zip: '1347', city: 'Le Solliat', canton: 'VD' }, + { zip: '1348', city: 'Le Brassus', canton: 'VD' }, + { zip: '1350', city: 'Orbe', canton: 'VD' }, + { zip: '1352', city: 'Agiez', canton: 'VD' }, + { zip: '1353', city: 'Bofflens', canton: 'VD' }, + { zip: '1354', city: 'Montcherand', canton: 'VD' }, + { zip: '1355', city: 'Sergey', canton: 'VD' }, + { zip: '1356', city: 'La Russille', canton: 'VD' }, + { zip: '1357', city: 'Lignerolle', canton: 'VD' }, + { zip: '1358', city: 'Valeyres-sous-Rances', canton: 'VD' }, + { zip: '1372', city: 'Bavois', canton: 'VD' }, + { zip: '1373', city: 'Chavornay', canton: 'VD' }, + { zip: '1374', city: 'Corcelles-sur-Chavornay', canton: 'VD' }, + { zip: '1400', city: 'Yverdon 2', canton: 'VD' }, + { zip: '1401', city: 'Yverdon-les-Bains', canton: 'VD' }, + { zip: '1404', city: 'Villars-Epeney', canton: 'VD' }, + { zip: '1405', city: 'Pomy', canton: 'VD' }, + { zip: '1406', city: 'Cronay', canton: 'VD' }, + { zip: '1407', city: 'Donneloye', canton: 'VD' }, + { zip: '1408', city: 'Prahins', canton: 'VD' }, + { zip: '1412', city: 'Ursins', canton: 'VD' }, + { zip: '1413', city: 'Orzens', canton: 'VD' }, + { zip: '1415', city: 'Démoret', canton: 'VD' }, + { zip: '1420', city: 'Fiez', canton: 'VD' }, + { zip: '1421', city: 'Fontaines-sur-Grandson', canton: 'VD' }, + { zip: '1422', city: 'Grandson', canton: 'VD' }, + { zip: '1423', city: 'Villars-Burquin', canton: 'VD' }, + { zip: '1424', city: 'Champagne', canton: 'VD' }, + { zip: '1425', city: 'Onnens VD', canton: 'VD' }, + { zip: '1426', city: 'Corcelles-près-Concise', canton: 'VD' }, + { zip: '1427', city: 'Bonvillars', canton: 'VD' }, + { zip: '1428', city: 'Mutrux', canton: 'VD' }, + { zip: '1429', city: 'Giez', canton: 'VD' }, + { zip: '1430', city: 'Orges', canton: 'VD' }, + { zip: '1431', city: 'Vugelles-La Mothe', canton: 'VD' }, + { zip: '1432', city: 'Gressy', canton: 'VD' }, + { zip: '1433', city: 'Suchy', canton: 'VD' }, + { zip: '1434', city: 'Ependes VD', canton: 'VD' }, + { zip: '1435', city: 'Essert-Pittet', canton: 'VD' }, + { zip: '1436', city: 'Treycovagnes', canton: 'VD' }, + { zip: '1437', city: 'Suscévaz', canton: 'VD' }, + { zip: '1438', city: 'Mathod', canton: 'VD' }, + { zip: '1439', city: 'Rances', canton: 'VD' }, + { zip: '1440', city: 'Montagny-Chamard', canton: 'VD' }, + { zip: '1441', city: 'Valeyres-sous-Montagny', canton: 'VD' }, + { zip: '1442', city: 'Montagny-près-Yverdon', canton: 'VD' }, + { zip: '1443', city: 'Essert-sous-Champvent', canton: 'VD' }, + { zip: '1445', city: 'Vuiteboeuf', canton: 'VD' }, + { zip: '1446', city: 'Baulmes', canton: 'VD' }, + { zip: '1450', city: 'La Sagne (Ste-Croix)', canton: 'VD' }, + { zip: '1452', city: 'Les Rasses', canton: 'VD' }, + { zip: '1453', city: 'Mauborget', canton: 'VD' }, + { zip: '1454', city: 'L\'Auberson', canton: 'VD' }, + { zip: '1462', city: 'Yvonand', canton: 'VD' }, + { zip: '1463', city: 'Rovray', canton: 'VD' }, + { zip: '1464', city: 'Chêne-Pâquier', canton: 'VD' }, + { zip: '1000', city: 'Lausanne 22', canton: 'VD' }, + { zip: '1001', city: 'Lausanne', canton: 'VD' }, + { zip: '1002', city: 'Lausanne', canton: 'VD' }, + { zip: '1003', city: 'Lausanne', canton: 'VD' }, + { zip: '1004', city: 'Lausanne', canton: 'VD' }, + { zip: '1005', city: 'Lausanne', canton: 'VD' }, + { zip: '1006', city: 'Lausanne', canton: 'VD' }, + { zip: '1007', city: 'Lausanne', canton: 'VD' }, + { zip: '1008', city: 'Jouxtens-Mézery', canton: 'VD' }, + { zip: '1010', city: 'Lausanne', canton: 'VD' }, + { zip: '1011', city: 'Lausanne', canton: 'VD' }, + { zip: '1012', city: 'Lausanne', canton: 'VD' }, + { zip: '1014', city: 'Lausanne Adm cant', canton: 'VD' }, + { zip: '1015', city: 'Lausanne', canton: 'VD' }, + { zip: '1018', city: 'Lausanne', canton: 'VD' }, + { zip: '1019', city: 'Lausanne Services spéciaux', canton: 'VD' }, + { zip: '1032', city: 'Romanel-sur-Lausanne', canton: 'VD' }, + { zip: '1033', city: 'Cheseaux-sur-Lausanne', canton: 'VD' }, + { zip: '1039', city: 'Cheseaux Polyval', canton: 'VD' }, + { zip: '1052', city: 'Le Mont-sur-Lausanne', canton: 'VD' }, + { zip: '1066', city: 'Epalinges', canton: 'VD' }, + { zip: '1009', city: 'Pully', canton: 'VD' }, + { zip: '1068', city: 'Les Monts-de-Pully', canton: 'VD' }, + { zip: '1070', city: 'Puidoux', canton: 'VD' }, + { zip: '1071', city: 'Rivaz', canton: 'VD' }, + { zip: '1072', city: 'Forel (Lavaux)', canton: 'VD' }, + { zip: '1073', city: 'Savigny', canton: 'VD' }, + { zip: '1076', city: 'Ferlens VD', canton: 'VD' }, + { zip: '1077', city: 'Servion', canton: 'VD' }, + { zip: '1078', city: 'Essertes', canton: 'VD' }, + { zip: '1080', city: 'Les Cullayes', canton: 'VD' }, + { zip: '1081', city: 'Montpreveyres', canton: 'VD' }, + { zip: '1083', city: 'Mézières VD', canton: 'VD' }, + { zip: '1084', city: 'Carrouge VD', canton: 'VD' }, + { zip: '1090', city: 'La Croix (Lutry)', canton: 'VD' }, + { zip: '1091', city: 'Aran', canton: 'VD' }, + { zip: '1092', city: 'Belmont-sur-Lausanne', canton: 'VD' }, + { zip: '1093', city: 'La Conversion', canton: 'VD' }, + { zip: '1094', city: 'Paudex', canton: 'VD' }, + { zip: '1095', city: 'Lutry', canton: 'VD' }, + { zip: '1096', city: 'Cully', canton: 'VD' }, + { zip: '1097', city: 'Riex', canton: 'VD' }, + { zip: '1098', city: 'Epesses', canton: 'VD' }, + { zip: '1607', city: 'Les Tavernes', canton: 'VD' }, + { zip: '1610', city: 'Vuibroye', canton: 'VD' }, + { zip: '1612', city: 'Ecoteaux', canton: 'VD' }, + { zip: '1613', city: 'Maracon', canton: 'VD' }, + { zip: '1026', city: 'Echandens-Denges', canton: 'VD' }, + { zip: '1027', city: 'Lonay', canton: 'VD' }, + { zip: '1028', city: 'Préverenges', canton: 'VD' }, + { zip: '1110', city: 'Morges 1', canton: 'VD' }, + { zip: '1112', city: 'Echichens', canton: 'VD' }, + { zip: '1113', city: 'St-Saphorin-sur-Morges', canton: 'VD' }, + { zip: '1114', city: 'Colombier VD', canton: 'VD' }, + { zip: '1115', city: 'Vullierens', canton: 'VD' }, + { zip: '1116', city: 'Cottens VD', canton: 'VD' }, + { zip: '1117', city: 'Grancy', canton: 'VD' }, + { zip: '1121', city: 'Bremblens', canton: 'VD' }, + { zip: '1122', city: 'Romanel-sur-Morges', canton: 'VD' }, + { zip: '1123', city: 'Aclens', canton: 'VD' }, + { zip: '1124', city: 'Gollion', canton: 'VD' }, + { zip: '1125', city: 'Monnaz', canton: 'VD' }, + { zip: '1126', city: 'Vaux-sur-Morges', canton: 'VD' }, + { zip: '1127', city: 'Clarmont', canton: 'VD' }, + { zip: '1128', city: 'Reverolle', canton: 'VD' }, + { zip: '1131', city: 'Tolochenaz', canton: 'VD' }, + { zip: '1132', city: 'Lully VD', canton: 'VD' }, + { zip: '1134', city: 'Chigny', canton: 'VD' }, + { zip: '1135', city: 'Denens', canton: 'VD' }, + { zip: '1136', city: 'Bussy-Chardonney', canton: 'VD' }, + { zip: '1141', city: 'Sévery', canton: 'VD' }, + { zip: '1142', city: 'Pampigny', canton: 'VD' }, + { zip: '1143', city: 'Apples', canton: 'VD' }, + { zip: '1144', city: 'Ballens', canton: 'VD' }, + { zip: '1145', city: 'Bière', canton: 'VD' }, + { zip: '1146', city: 'Mollens VD', canton: 'VD' }, + { zip: '1147', city: 'Montricher', canton: 'VD' }, + { zip: '1149', city: 'Berolle', canton: 'VD' }, + { zip: '1162', city: 'St-Prex', canton: 'VD' }, + { zip: '1163', city: 'Etoy', canton: 'VD' }, + { zip: '1164', city: 'Buchillon', canton: 'VD' }, + { zip: '1165', city: 'Allaman', canton: 'VD' }, + { zip: '1167', city: 'Lussy-sur-Morges', canton: 'VD' }, + { zip: '1168', city: 'Villars-sous-Yens', canton: 'VD' }, + { zip: '1169', city: 'Yens', canton: 'VD' }, + { zip: '1170', city: 'Aubonne', canton: 'VD' }, + { zip: '1172', city: 'Bougy-Villars', canton: 'VD' }, + { zip: '1173', city: 'Féchy', canton: 'VD' }, + { zip: '1174', city: 'Pizy', canton: 'VD' }, + { zip: '1175', city: 'Lavigny', canton: 'VD' }, + { zip: '1176', city: 'St-Livres', canton: 'VD' }, + { zip: '1187', city: 'St-Oyens', canton: 'VD' }, + { zip: '1188', city: 'Gimel', canton: 'VD' }, + { zip: '1189', city: 'Saubraz', canton: 'VD' }, + { zip: '1304', city: 'Dizy', canton: 'VD' }, + { zip: '1308', city: 'La Chaux (Cossonay)', canton: 'VD' }, + { zip: '1312', city: 'Eclépens', canton: 'VD' }, + { zip: '1313', city: 'Ferreyres', canton: 'VD' }, + { zip: '1315', city: 'La Sarraz', canton: 'VD' }, + { zip: '1316', city: 'Chevilly', canton: 'VD' }, + { zip: '1317', city: 'Orny', canton: 'VD' }, + { zip: '1318', city: 'Pompaples', canton: 'VD' }, + { zip: '1166', city: 'Perroy', canton: 'VD' }, + { zip: '1180', city: 'Tartegnin', canton: 'VD' }, + { zip: '1182', city: 'Gilly', canton: 'VD' }, + { zip: '1183', city: 'Bursins', canton: 'VD' }, + { zip: '1184', city: 'Vinzel', canton: 'VD' }, + { zip: '1185', city: 'Mont-sur-Rolle', canton: 'VD' }, + { zip: '1186', city: 'Essertines-sur-Rolle', canton: 'VD' }, + { zip: '1195', city: 'Dully', canton: 'VD' }, + { zip: '1196', city: 'Gland', canton: 'VD' }, + { zip: '1197', city: 'Prangins', canton: 'VD' }, + { zip: '1260', city: 'Nyon 2', canton: 'VD' }, + { zip: '1261', city: 'Marchissy', canton: 'VD' }, + { zip: '1262', city: 'Eysins', canton: 'VD' }, + { zip: '1263', city: 'Crassier', canton: 'VD' }, + { zip: '1264', city: 'St-Cergue', canton: 'VD' }, + { zip: '1265', city: 'La Cure', canton: 'VD' }, + { zip: '1266', city: 'Duillier', canton: 'VD' }, + { zip: '1267', city: 'Vich', canton: 'VD' }, + { zip: '1268', city: 'Begnins', canton: 'VD' }, + { zip: '1269', city: 'Bassins', canton: 'VD' }, + { zip: '1270', city: 'Trélex', canton: 'VD' }, + { zip: '1271', city: 'Givrins', canton: 'VD' }, + { zip: '1272', city: 'Genolier', canton: 'VD' }, + { zip: '1273', city: 'Arzier-Le Muids', canton: 'VD' }, + { zip: '1274', city: 'Signy-Centre', canton: 'VD' }, + { zip: '1275', city: 'Chéserex', canton: 'VD' }, + { zip: '1276', city: 'Gingins', canton: 'VD' }, + { zip: '1277', city: 'Borex', canton: 'VD' }, + { zip: '1278', city: 'La Rippe', canton: 'VD' }, + { zip: '1279', city: 'Bogis-Bossey', canton: 'VD' }, + { zip: '1291', city: 'Commugny', canton: 'VD' }, + { zip: '1295', city: 'Tannay', canton: 'VD' }, + { zip: '1296', city: 'Coppet', canton: 'VD' }, + { zip: '1297', city: 'Founex', canton: 'VD' }, + { zip: '1299', city: 'Crans VD', canton: 'VD' }, + { zip: '1020', city: 'Renens VD', canton: 'VD' }, + { zip: '1022', city: 'Chavannes-près-Renens', canton: 'VD' }, + { zip: '1023', city: 'Crissier', canton: 'VD' }, + { zip: '1024', city: 'Ecublens VD', canton: 'VD' }, + { zip: '1025', city: 'St-Sulpice VD', canton: 'VD' }, + { zip: '1029', city: 'Villars-Ste-Croix', canton: 'VD' }, + { zip: '1030', city: 'Bussigny', canton: 'VD' }, + { zip: '1658', city: 'Rossinière', canton: 'VD' }, + { zip: '1659', city: 'Rougemont', canton: 'VD' }, + { zip: '1660', city: 'La Lécherette', canton: 'VD' }, + { zip: '1800', city: 'Vevey 1', canton: 'VD' }, + { zip: '1801', city: 'Le Mont-Pèlerin', canton: 'VD' }, + { zip: '1802', city: 'Corseaux', canton: 'VD' }, + { zip: '1803', city: 'Chardonne', canton: 'VD' }, + { zip: '1804', city: 'Corsier-sur-Vevey', canton: 'VD' }, + { zip: '1805', city: 'Jongny', canton: 'VD' }, + { zip: '1806', city: 'St-Légier-La Chiésaz', canton: 'VD' }, + { zip: '1807', city: 'Blonay', canton: 'VD' }, + { zip: '1808', city: 'Les Monts-de-Corsier', canton: 'VD' }, + { zip: '1809', city: 'Fenil-sur-Corsier', canton: 'VD' }, + { zip: '1811', city: 'Vevey', canton: 'VD' }, + { zip: '1814', city: 'La Tour-de-Peilz', canton: 'VD' }, + { zip: '1815', city: 'Clarens', canton: 'VD' }, + { zip: '1816', city: 'Chailly-Montreux', canton: 'VD' }, + { zip: '1817', city: 'Brent', canton: 'VD' }, + { zip: '1818', city: 'Montreux Redoute', canton: 'VD' }, + { zip: '1820', city: 'Montreux 2', canton: 'VD' }, + { zip: '1822', city: 'Chernex', canton: 'VD' }, + { zip: '1823', city: 'Glion', canton: 'VD' }, + { zip: '1824', city: 'Caux', canton: 'VD' }, + { zip: '1832', city: 'Chamby', canton: 'VD' }, + { zip: '1833', city: 'Les Avants', canton: 'VD' }, + { zip: '3900', city: 'Brig', canton: 'VS' }, + { zip: '3901', city: 'Rothwald', canton: 'VS' }, + { zip: '3902', city: 'Glis', canton: 'VS' }, + { zip: '3903', city: 'Mund', canton: 'VS' }, + { zip: '3904', city: 'Naters', canton: 'VS' }, + { zip: '3907', city: 'Simplon Dorf', canton: 'VS' }, + { zip: '3911', city: 'Ried-Brig', canton: 'VS' }, + { zip: '3912', city: 'Termen', canton: 'VS' }, + { zip: '3913', city: 'Rosswald', canton: 'VS' }, + { zip: '3914', city: 'Blatten b. Naters', canton: 'VS' }, + { zip: '3939', city: 'Eggerberg', canton: 'VS' }, + { zip: '1911', city: 'Mayens-de-Chamoson', canton: 'VS' }, + { zip: '1955', city: 'Mayens-de-Chamoson', canton: 'VS' }, + { zip: '1957', city: 'Ardon', canton: 'VS' }, + { zip: '1963', city: 'Vétroz', canton: 'VS' }, + { zip: '1964', city: 'Conthey', canton: 'VS' }, + { zip: '1975', city: 'St-Séverin', canton: 'VS' }, + { zip: '1976', city: 'Aven', canton: 'VS' }, + { zip: '1993', city: 'Clèbes (Nendaz)', canton: 'VS' }, + { zip: '1994', city: 'Aproz (Nendaz)', canton: 'VS' }, + { zip: '1996', city: 'Condémines (Nendaz)', canton: 'VS' }, + { zip: '1997', city: 'Haute-Nendaz', canton: 'VS' }, + { zip: '1927', city: 'Chemin', canton: 'VS' }, + { zip: '1933', city: 'La Garde (Sembrancher)', canton: 'VS' }, + { zip: '1934', city: 'Le Châble VS', canton: 'VS' }, + { zip: '1936', city: 'Verbier', canton: 'VS' }, + { zip: '1937', city: 'Orsières', canton: 'VS' }, + { zip: '1938', city: 'Champex-Lac', canton: 'VS' }, + { zip: '1941', city: 'Vollèges', canton: 'VS' }, + { zip: '1942', city: 'Levron', canton: 'VS' }, + { zip: '1943', city: 'Praz-de-Fort', canton: 'VS' }, + { zip: '1944', city: 'La Fouly VS', canton: 'VS' }, + { zip: '1945', city: 'Chez Petit (Liddes)', canton: 'VS' }, + { zip: '1946', city: 'Bourg-St-Pierre', canton: 'VS' }, + { zip: '1947', city: 'Versegères', canton: 'VS' }, + { zip: '1948', city: 'Fionnay', canton: 'VS' }, + { zip: '3801', city: 'Jungfraujoch', canton: 'VS' }, + { zip: '3984', city: 'Fiesch', canton: 'VS' }, + { zip: '3985', city: 'Münster VS', canton: 'VS' }, + { zip: '3988', city: 'Obergesteln', canton: 'VS' }, + { zip: '3989', city: 'Selkingen', canton: 'VS' }, + { zip: '3994', city: 'Lax', canton: 'VS' }, + { zip: '3995', city: 'Steinhaus', canton: 'VS' }, + { zip: '3996', city: 'Binn', canton: 'VS' }, + { zip: '3997', city: 'Bellwald', canton: 'VS' }, + { zip: '3998', city: 'Reckingen VS', canton: 'VS' }, + { zip: '3999', city: 'Oberwald', canton: 'VS' }, + { zip: '1961', city: 'Vernamiège', canton: 'VS' }, + { zip: '1966', city: 'Saxonne (Ayent)', canton: 'VS' }, + { zip: '1968', city: 'Mase', canton: 'VS' }, + { zip: '1969', city: 'Eison (St-Martin)', canton: 'VS' }, + { zip: '1972', city: 'Anzère', canton: 'VS' }, + { zip: '1973', city: 'Nax', canton: 'VS' }, + { zip: '1981', city: 'Vex', canton: 'VS' }, + { zip: '1982', city: 'Euseigne', canton: 'VS' }, + { zip: '1983', city: 'Evolène', canton: 'VS' }, + { zip: '1984', city: 'La Tour VS', canton: 'VS' }, + { zip: '1985', city: 'La Forclaz VS', canton: 'VS' }, + { zip: '1986', city: 'Arolla', canton: 'VS' }, + { zip: '1987', city: 'Hérémence', canton: 'VS' }, + { zip: '1988', city: 'Thyon', canton: 'VS' }, + { zip: '3945', city: 'Niedergampel', canton: 'VS' }, + { zip: '3946', city: 'Turtmann', canton: 'VS' }, + { zip: '3947', city: 'Ergisch', canton: 'VS' }, + { zip: '3948', city: 'Unterems', canton: 'VS' }, + { zip: '3951', city: 'Agarn', canton: 'VS' }, + { zip: '3952', city: 'Susten', canton: 'VS' }, + { zip: '3953', city: 'Inden', canton: 'VS' }, + { zip: '3954', city: 'Leukerbad', canton: 'VS' }, + { zip: '3955', city: 'Albinen', canton: 'VS' }, + { zip: '3956', city: 'Guttet-Feschel', canton: 'VS' }, + { zip: '3957', city: 'Bratsch', canton: 'VS' }, + { zip: '3970', city: 'Salgesch', canton: 'VS' }, + { zip: '1906', city: 'Charrat', canton: 'VS' }, + { zip: '1907', city: 'Saxon', canton: 'VS' }, + { zip: '1908', city: 'Riddes', canton: 'VS' }, + { zip: '1912', city: 'Produit (Leytron)', canton: 'VS' }, + { zip: '1913', city: 'Saillon', canton: 'VS' }, + { zip: '1914', city: 'Auddes-sur-Riddes', canton: 'VS' }, + { zip: '1918', city: 'La Tzoumaz', canton: 'VS' }, + { zip: '1919', city: 'Martigny Groupe Mutuel', canton: 'VS' }, + { zip: '1920', city: 'Martigny', canton: 'VS' }, + { zip: '1921', city: 'Martigny-Croix', canton: 'VS' }, + { zip: '1926', city: 'Fully', canton: 'VS' }, + { zip: '1928', city: 'Ravoire', canton: 'VS' }, + { zip: '1929', city: 'Trient', canton: 'VS' }, + { zip: '1932', city: 'Bovernier', canton: 'VS' }, + { zip: '1868', city: 'Collombey', canton: 'VS' }, + { zip: '1870', city: 'Monthey 2', canton: 'VS' }, + { zip: '1871', city: 'Les Giettes', canton: 'VS' }, + { zip: '1872', city: 'Troistorrents', canton: 'VS' }, + { zip: '1873', city: 'Val-d\'Illiez', canton: 'VS' }, + { zip: '1874', city: 'Champéry', canton: 'VS' }, + { zip: '1875', city: 'Morgins', canton: 'VS' }, + { zip: '1893', city: 'Muraz (Collombey)', canton: 'VS' }, + { zip: '1895', city: 'Vionnaz', canton: 'VS' }, + { zip: '1896', city: 'Vouvry', canton: 'VS' }, + { zip: '1897', city: 'Les Evouettes', canton: 'VS' }, + { zip: '1898', city: 'St-Gingolph', canton: 'VS' }, + { zip: '1899', city: 'Torgon', canton: 'VS' }, + { zip: '3916', city: 'Ferden', canton: 'VS' }, + { zip: '3917', city: 'Goppenstein', canton: 'VS' }, + { zip: '3918', city: 'Wiler (Lötschen)', canton: 'VS' }, + { zip: '3919', city: 'Blatten (Lötschen)', canton: 'VS' }, + { zip: '3935', city: 'Bürchen', canton: 'VS' }, + { zip: '3938', city: 'Ausserberg', canton: 'VS' }, + { zip: '3940', city: 'Steg VS', canton: 'VS' }, + { zip: '3942', city: 'Niedergesteln', canton: 'VS' }, + { zip: '3943', city: 'Eischoll', canton: 'VS' }, + { zip: '3944', city: 'Unterbäch VS', canton: 'VS' }, + { zip: '3949', city: 'Hohtenn', canton: 'VS' }, + { zip: '3982', city: 'Bitsch', canton: 'VS' }, + { zip: '3983', city: 'Filet', canton: 'VS' }, + { zip: '3986', city: 'Ried-Mörel', canton: 'VS' }, + { zip: '3987', city: 'Riederalp', canton: 'VS' }, + { zip: '3991', city: 'Betten', canton: 'VS' }, + { zip: '3992', city: 'Bettmeralp', canton: 'VS' }, + { zip: '3993', city: 'Grengiols', canton: 'VS' }, + { zip: '1869', city: 'Massongex', canton: 'VS' }, + { zip: '1890', city: 'St-Maurice', canton: 'VS' }, + { zip: '1891', city: 'Vérossaz', canton: 'VS' }, + { zip: '1902', city: 'Evionnaz', canton: 'VS' }, + { zip: '1903', city: 'Collonges', canton: 'VS' }, + { zip: '1904', city: 'Vernayaz', canton: 'VS' }, + { zip: '1905', city: 'Dorénaz', canton: 'VS' }, + { zip: '1922', city: 'Les Granges (Salvan)', canton: 'VS' }, + { zip: '1923', city: 'Les Marécottes', canton: 'VS' }, + { zip: '1925', city: 'Le Châtelard VS', canton: 'VS' }, + { zip: '1958', city: 'St-Léonard', canton: 'VS' }, + { zip: '1977', city: 'Icogne', canton: 'VS' }, + { zip: '1978', city: 'Lens', canton: 'VS' }, + { zip: '3960', city: 'Loc', canton: 'VS' }, + { zip: '3961', city: 'St-Jean VS', canton: 'VS' }, + { zip: '3963', city: 'Crans-Montana 1', canton: 'VS' }, + { zip: '3965', city: 'Chippis', canton: 'VS' }, + { zip: '3966', city: 'Réchy', canton: 'VS' }, + { zip: '3967', city: 'Vercorin', canton: 'VS' }, + { zip: '3968', city: 'Veyras', canton: 'VS' }, + { zip: '3971', city: 'Chermignon', canton: 'VS' }, + { zip: '3972', city: 'Miège', canton: 'VS' }, + { zip: '3973', city: 'Venthône', canton: 'VS' }, + { zip: '3974', city: 'Mollens VS', canton: 'VS' }, + { zip: '3975', city: 'Randogne', canton: 'VS' }, + { zip: '3976', city: 'Noës', canton: 'VS' }, + { zip: '3977', city: 'Granges VS', canton: 'VS' }, + { zip: '3978', city: 'Flanthey', canton: 'VS' }, + { zip: '3979', city: 'Grône', canton: 'VS' }, + { zip: '1950', city: 'Sion', canton: 'VS' }, + { zip: '1951', city: 'Sion', canton: 'VS' }, + { zip: '1962', city: 'Pont-de-la-Morge (Sion)', canton: 'VS' }, + { zip: '1965', city: 'Chandolin (Savièse)', canton: 'VS' }, + { zip: '1967', city: 'Bramois', canton: 'VS' }, + { zip: '1971', city: 'Grimisuat', canton: 'VS' }, + { zip: '1974', city: 'Arbaz', canton: 'VS' }, + { zip: '1991', city: 'Arvillard (Salins)', canton: 'VS' }, + { zip: '1992', city: 'Crête-à-l\'Oeil(Les Agettes)', canton: 'VS' }, + { zip: '3905', city: 'Saas-Almagell', canton: 'VS' }, + { zip: '3906', city: 'Saas-Fee', canton: 'VS' }, + { zip: '3908', city: 'Saas-Balen', canton: 'VS' }, + { zip: '3910', city: 'Saas-Grund', canton: 'VS' }, + { zip: '3920', city: 'Zermatt', canton: 'VS' }, + { zip: '3922', city: 'Eisten', canton: 'VS' }, + { zip: '3923', city: 'Törbel', canton: 'VS' }, + { zip: '3924', city: 'St. Niklaus VS', canton: 'VS' }, + { zip: '3925', city: 'Grächen', canton: 'VS' }, + { zip: '3926', city: 'Embd', canton: 'VS' }, + { zip: '3927', city: 'Herbriggen', canton: 'VS' }, + { zip: '3928', city: 'Randa', canton: 'VS' }, + { zip: '3929', city: 'Täsch', canton: 'VS' }, + { zip: '3930', city: 'Visp', canton: 'VS' }, + { zip: '3931', city: 'Lalden', canton: 'VS' }, + { zip: '3932', city: 'Visperterminen', canton: 'VS' }, + { zip: '3933', city: 'Staldenried', canton: 'VS' }, + { zip: '3934', city: 'Zeneggen', canton: 'VS' }, + { zip: '3937', city: 'Baltschieder', canton: 'VS' }, + { zip: '6300', city: 'Zug', canton: 'ZG' }, + { zip: '6301', city: 'Zug', canton: 'ZG' }, + { zip: '6302', city: 'Zug', canton: 'ZG' }, + { zip: '6303', city: 'Zug', canton: 'ZG' }, + { zip: '6312', city: 'Steinhausen', canton: 'ZG' }, + { zip: '6313', city: 'Edlibach', canton: 'ZG' }, + { zip: '6314', city: 'Unterägeri', canton: 'ZG' }, + { zip: '6315', city: 'Morgarten', canton: 'ZG' }, + { zip: '6317', city: 'Oberwil b. Zug', canton: 'ZG' }, + { zip: '6318', city: 'Walchwil', canton: 'ZG' }, + { zip: '6319', city: 'Allenwinden', canton: 'ZG' }, + { zip: '6330', city: 'Cham', canton: 'ZG' }, + { zip: '6331', city: 'Hünenberg', canton: 'ZG' }, + { zip: '6332', city: 'Hagendorn', canton: 'ZG' }, + { zip: '6333', city: 'Hünenberg See', canton: 'ZG' }, + { zip: '6340', city: 'Baar', canton: 'ZG' }, + { zip: '6341', city: 'Baar', canton: 'ZG' }, + { zip: '6343', city: 'Buonas', canton: 'ZG' }, + { zip: '6345', city: 'Neuheim', canton: 'ZG' }, + { zip: '8143', city: 'Stallikon', canton: 'ZH' }, + { zip: '8906', city: 'Bonstetten', canton: 'ZH' }, + { zip: '8907', city: 'Wettswil', canton: 'ZH' }, + { zip: '8908', city: 'Hedingen', canton: 'ZH' }, + { zip: '8909', city: 'Zwillikon', canton: 'ZH' }, + { zip: '8910', city: 'Affoltern am Albis', canton: 'ZH' }, + { zip: '8911', city: 'Rifferswil', canton: 'ZH' }, + { zip: '8912', city: 'Obfelden', canton: 'ZH' }, + { zip: '8913', city: 'Ottenbach', canton: 'ZH' }, + { zip: '8914', city: 'Aeugstertal', canton: 'ZH' }, + { zip: '8915', city: 'Hausen am Albis', canton: 'ZH' }, + { zip: '8925', city: 'Ebertswil', canton: 'ZH' }, + { zip: '8926', city: 'Hauptikon', canton: 'ZH' }, + { zip: '8932', city: 'Mettmenstetten', canton: 'ZH' }, + { zip: '8933', city: 'Maschwanden', canton: 'ZH' }, + { zip: '8934', city: 'Knonau', canton: 'ZH' }, + { zip: '8245', city: 'Feuerthalen', canton: 'ZH' }, + { zip: '8246', city: 'Langwiesen', canton: 'ZH' }, + { zip: '8247', city: 'Flurlingen', canton: 'ZH' }, + { zip: '8248', city: 'Uhwiesen', canton: 'ZH' }, + { zip: '8414', city: 'Buch am Irchel', canton: 'ZH' }, + { zip: '8415', city: 'Gräslikon', canton: 'ZH' }, + { zip: '8416', city: 'Flaach', canton: 'ZH' }, + { zip: '8444', city: 'Henggart', canton: 'ZH' }, + { zip: '8447', city: 'Dachsen', canton: 'ZH' }, + { zip: '8450', city: 'Andelfingen', canton: 'ZH' }, + { zip: '8451', city: 'Kleinandelfingen', canton: 'ZH' }, + { zip: '8452', city: 'Adlikon b. Andelfingen', canton: 'ZH' }, + { zip: '8453', city: 'Alten', canton: 'ZH' }, + { zip: '8457', city: 'Humlikon', canton: 'ZH' }, + { zip: '8458', city: 'Dorf', canton: 'ZH' }, + { zip: '8459', city: 'Volken', canton: 'ZH' }, + { zip: '8460', city: 'Marthalen', canton: 'ZH' }, + { zip: '8461', city: 'Oerlingen', canton: 'ZH' }, + { zip: '8462', city: 'Rheinau', canton: 'ZH' }, + { zip: '8463', city: 'Benken ZH', canton: 'ZH' }, + { zip: '8464', city: 'Ellikon am Rhein', canton: 'ZH' }, + { zip: '8465', city: 'Wildensbuch', canton: 'ZH' }, + { zip: '8466', city: 'Trüllikon', canton: 'ZH' }, + { zip: '8467', city: 'Truttikon', canton: 'ZH' }, + { zip: '8468', city: 'Waltalingen', canton: 'ZH' }, + { zip: '8475', city: 'Ossingen', canton: 'ZH' }, + { zip: '8476', city: 'Unterstammheim', canton: 'ZH' }, + { zip: '8477', city: 'Oberstammheim', canton: 'ZH' }, + { zip: '8478', city: 'Thalheim an der Thur', canton: 'ZH' }, + { zip: '8058', city: 'Zürich', canton: 'ZH' }, + { zip: '8060', city: 'Zürich', canton: 'ZH' }, + { zip: '8152', city: 'Glattbrugg', canton: 'ZH' }, + { zip: '8180', city: 'Bülach', canton: 'ZH' }, + { zip: '8181', city: 'Höri', canton: 'ZH' }, + { zip: '8182', city: 'Hochfelden', canton: 'ZH' }, + { zip: '8184', city: 'Bachenbülach', canton: 'ZH' }, + { zip: '8185', city: 'Winkel', canton: 'ZH' }, + { zip: '8192', city: 'Zweidlen', canton: 'ZH' }, + { zip: '8193', city: 'Eglisau', canton: 'ZH' }, + { zip: '8194', city: 'Hüntwangen', canton: 'ZH' }, + { zip: '8195', city: 'Wasterkingen', canton: 'ZH' }, + { zip: '8196', city: 'Wil ZH', canton: 'ZH' }, + { zip: '8197', city: 'Rafz', canton: 'ZH' }, + { zip: '8302', city: 'Kloten', canton: 'ZH' }, + { zip: '8303', city: 'Bassersdorf', canton: 'ZH' }, + { zip: '8304', city: 'Wallisellen', canton: 'ZH' }, + { zip: '8305', city: 'Dietlikon', canton: 'ZH' }, + { zip: '8309', city: 'Nürensdorf', canton: 'ZH' }, + { zip: '8424', city: 'Embrach', canton: 'ZH' }, + { zip: '8425', city: 'Oberembrach', canton: 'ZH' }, + { zip: '8426', city: 'Lufingen', canton: 'ZH' }, + { zip: '8427', city: 'Freienstein', canton: 'ZH' }, + { zip: '8428', city: 'Teufen ZH', canton: 'ZH' }, + { zip: '8105', city: 'Regensdorf', canton: 'ZH' }, + { zip: '8106', city: 'Adlikon b. Regensdorf', canton: 'ZH' }, + { zip: '8107', city: 'Buchs ZH', canton: 'ZH' }, + { zip: '8108', city: 'Dällikon', canton: 'ZH' }, + { zip: '8112', city: 'Otelfingen', canton: 'ZH' }, + { zip: '8113', city: 'Boppelsen', canton: 'ZH' }, + { zip: '8114', city: 'Dänikon ZH', canton: 'ZH' }, + { zip: '8115', city: 'Hüttikon', canton: 'ZH' }, + { zip: '8153', city: 'Rümlang', canton: 'ZH' }, + { zip: '8154', city: 'Oberglatt ZH', canton: 'ZH' }, + { zip: '8155', city: 'Nassenwil', canton: 'ZH' }, + { zip: '8156', city: 'Oberhasli', canton: 'ZH' }, + { zip: '8157', city: 'Dielsdorf', canton: 'ZH' }, + { zip: '8158', city: 'Regensberg', canton: 'ZH' }, + { zip: '8162', city: 'Steinmaur', canton: 'ZH' }, + { zip: '8164', city: 'Bachs', canton: 'ZH' }, + { zip: '8165', city: 'Oberweningen', canton: 'ZH' }, + { zip: '8166', city: 'Niederweningen', canton: 'ZH' }, + { zip: '8172', city: 'Niederglatt ZH', canton: 'ZH' }, + { zip: '8173', city: 'Neerach', canton: 'ZH' }, + { zip: '8174', city: 'Stadel b. Niederglatt', canton: 'ZH' }, + { zip: '8175', city: 'Windlach', canton: 'ZH' }, + { zip: '8187', city: 'Weiach', canton: 'ZH' }, + { zip: '8340', city: 'Hinwil', canton: 'ZH' }, + { zip: '8342', city: 'Wernetshausen', canton: 'ZH' }, + { zip: '8344', city: 'Bäretswil', canton: 'ZH' }, + { zip: '8345', city: 'Adetswil', canton: 'ZH' }, + { zip: '8496', city: 'Steg im Tösstal', canton: 'ZH' }, + { zip: '8497', city: 'Fischenthal', canton: 'ZH' }, + { zip: '8498', city: 'Gibswil', canton: 'ZH' }, + { zip: '8607', city: 'Aathal-Seegräben', canton: 'ZH' }, + { zip: '8608', city: 'Bubikon', canton: 'ZH' }, + { zip: '8614', city: 'Bertschikon (Gossau ZH)', canton: 'ZH' }, + { zip: '8620', city: 'Wetzikon ZH', canton: 'ZH' }, + { zip: '8623', city: 'Wetzikon ZH', canton: 'ZH' }, + { zip: '8624', city: 'Grüt (Gossau ZH)', canton: 'ZH' }, + { zip: '8625', city: 'Gossau ZH', canton: 'ZH' }, + { zip: '8626', city: 'Ottikon (Gossau ZH)', canton: 'ZH' }, + { zip: '8627', city: 'Grüningen', canton: 'ZH' }, + { zip: '8630', city: 'Rüti ZH', canton: 'ZH' }, + { zip: '8632', city: 'Tann', canton: 'ZH' }, + { zip: '8633', city: 'Wolfhausen', canton: 'ZH' }, + { zip: '8635', city: 'Dürnten', canton: 'ZH' }, + { zip: '8636', city: 'Wald ZH', canton: 'ZH' }, + { zip: '8637', city: 'Laupen ZH', canton: 'ZH' }, + { zip: '8134', city: 'Adliswil', canton: 'ZH' }, + { zip: '8135', city: 'Sihlwald', canton: 'ZH' }, + { zip: '8136', city: 'Gattikon', canton: 'ZH' }, + { zip: '8800', city: 'Thalwil', canton: 'ZH' }, + { zip: '8802', city: 'Kilchberg ZH', canton: 'ZH' }, + { zip: '8803', city: 'Rüschlikon', canton: 'ZH' }, + { zip: '8804', city: 'Au ZH', canton: 'ZH' }, + { zip: '8805', city: 'Richterswil', canton: 'ZH' }, + { zip: '8810', city: 'Horgen', canton: 'ZH' }, + { zip: '8815', city: 'Horgenberg', canton: 'ZH' }, + { zip: '8816', city: 'Hirzel', canton: 'ZH' }, + { zip: '8820', city: 'Wädenswil', canton: 'ZH' }, + { zip: '8824', city: 'Schönenberg ZH', canton: 'ZH' }, + { zip: '8825', city: 'Hütten', canton: 'ZH' }, + { zip: '8833', city: 'Samstagern', canton: 'ZH' }, + { zip: '8942', city: 'Oberrieden', canton: 'ZH' }, + { zip: '8125', city: 'Zollikerberg', canton: 'ZH' }, + { zip: '8126', city: 'Zumikon', canton: 'ZH' }, + { zip: '8127', city: 'Forch', canton: 'ZH' }, + { zip: '8618', city: 'Oetwil am See', canton: 'ZH' }, + { zip: '8634', city: 'Hombrechtikon', canton: 'ZH' }, + { zip: '8700', city: 'Küsnacht ZH', canton: 'ZH' }, + { zip: '8702', city: 'Zollikon Dorf', canton: 'ZH' }, + { zip: '8703', city: 'Erlenbach ZH', canton: 'ZH' }, + { zip: '8704', city: 'Herrliberg', canton: 'ZH' }, + { zip: '8706', city: 'Meilen', canton: 'ZH' }, + { zip: '8707', city: 'Uetikon am See', canton: 'ZH' }, + { zip: '8708', city: 'Männedorf', canton: 'ZH' }, + { zip: '8712', city: 'Stäfa', canton: 'ZH' }, + { zip: '8713', city: 'Uerikon', canton: 'ZH' }, + { zip: '8714', city: 'Feldbach', canton: 'ZH' }, + { zip: '8307', city: 'Effretikon', canton: 'ZH' }, + { zip: '8308', city: 'Illnau', canton: 'ZH' }, + { zip: '8310', city: 'Kemptthal', canton: 'ZH' }, + { zip: '8312', city: 'Winterberg ZH', canton: 'ZH' }, + { zip: '8314', city: 'Kyburg', canton: 'ZH' }, + { zip: '8315', city: 'Lindau', canton: 'ZH' }, + { zip: '8317', city: 'Tagelswangen', canton: 'ZH' }, + { zip: '8320', city: 'Fehraltorf', canton: 'ZH' }, + { zip: '8322', city: 'Madetswil', canton: 'ZH' }, + { zip: '8330', city: 'Pfäffikon ZH', canton: 'ZH' }, + { zip: '8331', city: 'Auslikon', canton: 'ZH' }, + { zip: '8332', city: 'Rumlikon', canton: 'ZH' }, + { zip: '8335', city: 'Hittnau', canton: 'ZH' }, + { zip: '8484', city: 'Neschwil', canton: 'ZH' }, + { zip: '8489', city: 'Wildberg', canton: 'ZH' }, + { zip: '8492', city: 'Wila', canton: 'ZH' }, + { zip: '8493', city: 'Saland', canton: 'ZH' }, + { zip: '8494', city: 'Bauma', canton: 'ZH' }, + { zip: '8499', city: 'Sternenberg', canton: 'ZH' }, + { zip: '8044', city: 'Gockhausen', canton: 'ZH' }, + { zip: '8117', city: 'Fällanden', canton: 'ZH' }, + { zip: '8118', city: 'Pfaffhausen', canton: 'ZH' }, + { zip: '8121', city: 'Benglen', canton: 'ZH' }, + { zip: '8122', city: 'Binz', canton: 'ZH' }, + { zip: '8123', city: 'Ebmatingen', canton: 'ZH' }, + { zip: '8124', city: 'Maur', canton: 'ZH' }, + { zip: '8132', city: 'Egg b. Zürich', canton: 'ZH' }, + { zip: '8133', city: 'Esslingen', canton: 'ZH' }, + { zip: '8306', city: 'Brüttisellen', canton: 'ZH' }, + { zip: '8600', city: 'Dübendorf 1', canton: 'ZH' }, + { zip: '8602', city: 'Wangen b. Dübendorf', canton: 'ZH' }, + { zip: '8603', city: 'Schwerzenbach', canton: 'ZH' }, + { zip: '8604', city: 'Volketswil', canton: 'ZH' }, + { zip: '8605', city: 'Gutenswil', canton: 'ZH' }, + { zip: '8606', city: 'Greifensee', canton: 'ZH' }, + { zip: '8610', city: 'Uster', canton: 'ZH' }, + { zip: '8613', city: 'Uster 3', canton: 'ZH' }, + { zip: '8615', city: 'Wermatswil', canton: 'ZH' }, + { zip: '8616', city: 'Riedikon', canton: 'ZH' }, + { zip: '8617', city: 'Mönchaltorf', canton: 'ZH' }, + { zip: '8311', city: 'Brütten', canton: 'ZH' }, + { zip: '8352', city: 'Elsau', canton: 'ZH' }, + { zip: '8353', city: 'Elgg', canton: 'ZH' }, + { zip: '8354', city: 'Hofstetten ZH', canton: 'ZH' }, + { zip: '8400', city: 'Winterthur', canton: 'ZH' }, + { zip: '8401', city: 'Winterthur', canton: 'ZH' }, + { zip: '8403', city: 'Winterthur', canton: 'ZH' }, + { zip: '8404', city: 'Stadel (Winterthur)', canton: 'ZH' }, + { zip: '8405', city: 'Winterthur', canton: 'ZH' }, + { zip: '8406', city: 'Winterthur', canton: 'ZH' }, + { zip: '8408', city: 'Winterthur', canton: 'ZH' }, + { zip: '8409', city: 'Winterthur', canton: 'ZH' }, + { zip: '8412', city: 'Hünikon (Neftenbach)', canton: 'ZH' }, + { zip: '8413', city: 'Neftenbach', canton: 'ZH' }, + { zip: '8418', city: 'Schlatt ZH', canton: 'ZH' }, + { zip: '8421', city: 'Dättlikon', canton: 'ZH' }, + { zip: '8422', city: 'Pfungen', canton: 'ZH' }, + { zip: '8442', city: 'Hettlingen', canton: 'ZH' }, + { zip: '8471', city: 'Berg (Dägerlen)', canton: 'ZH' }, + { zip: '8472', city: 'Seuzach', canton: 'ZH' }, + { zip: '8474', city: 'Dinhard', canton: 'ZH' }, + { zip: '8479', city: 'Altikon', canton: 'ZH' }, + { zip: '8482', city: 'Sennhof (Winterthur)', canton: 'ZH' }, + { zip: '8483', city: 'Kollbrunn', canton: 'ZH' }, + { zip: '8486', city: 'Rikon im Tösstal', canton: 'ZH' }, + { zip: '8487', city: 'Rämismühle', canton: 'ZH' }, + { zip: '8488', city: 'Turbenthal', canton: 'ZH' }, + { zip: '8495', city: 'Schmidrüti', canton: 'ZH' }, + { zip: '8523', city: 'Hagenbuch ZH', canton: 'ZH' }, + { zip: '8542', city: 'Wiesendangen', canton: 'ZH' }, + { zip: '8543', city: 'Gundetswil', canton: 'ZH' }, + { zip: '8544', city: 'Attikon', canton: 'ZH' }, + { zip: '8545', city: 'Rickenbach ZH', canton: 'ZH' }, + { zip: '8548', city: 'Ellikon an der Thur', canton: 'ZH' }, + { zip: '8010', city: 'Zürich', canton: 'ZH' }, + { zip: '8011', city: 'Zürich Mülligen SC', canton: 'ZH' }, + { zip: '8012', city: 'Zürich', canton: 'ZH' }, + { zip: '8102', city: 'Oberengstringen', canton: 'ZH' }, + { zip: '8103', city: 'Unterengstringen', canton: 'ZH' }, + { zip: '8104', city: 'Weiningen ZH', canton: 'ZH' }, + { zip: '8142', city: 'Uitikon Waldegg', canton: 'ZH' }, + { zip: '8901', city: 'Urdorf', canton: 'ZH' }, + { zip: '8902', city: 'Urdorf', canton: 'ZH' }, + { zip: '8903', city: 'Birmensdorf ZH', canton: 'ZH' }, + { zip: '8904', city: 'Aesch ZH', canton: 'ZH' }, + { zip: '8951', city: 'Fahrweid', canton: 'ZH' }, + { zip: '8952', city: 'Schlieren', canton: 'ZH' }, + { zip: '8953', city: 'Dietikon 2', canton: 'ZH' }, + { zip: '8954', city: 'Geroldswil', canton: 'ZH' }, + { zip: '8955', city: 'Oetwil an der Limmat', canton: 'ZH' }, + { zip: '8000', city: 'Zürich', canton: 'ZH' }, + { zip: '8001', city: 'Zürich', canton: 'ZH' }, + { zip: '8002', city: 'Zürich', canton: 'ZH' }, + { zip: '8003', city: 'Zürich', canton: 'ZH' }, + { zip: '8004', city: 'Zürich', canton: 'ZH' }, + { zip: '8005', city: 'Zürich', canton: 'ZH' }, + { zip: '8006', city: 'Zürich', canton: 'ZH' }, + { zip: '8008', city: 'Zürich', canton: 'ZH' }, + { zip: '8017', city: 'Zürich', canton: 'ZH' }, + { zip: '8018', city: 'Zürich PF', canton: 'ZH' }, + { zip: '8021', city: 'Zürich 1', canton: 'ZH' }, + { zip: '8022', city: 'Zürich', canton: 'ZH' }, + { zip: '8024', city: 'Zürich', canton: 'ZH' }, + { zip: '8027', city: 'Zürich', canton: 'ZH' }, + { zip: '8031', city: 'Zürich', canton: 'ZH' }, + { zip: '8032', city: 'Zürich', canton: 'ZH' }, + { zip: '8034', city: 'Zürich', canton: 'ZH' }, + { zip: '8036', city: 'Zürich', canton: 'ZH' }, + { zip: '8037', city: 'Zürich', canton: 'ZH' }, + { zip: '8038', city: 'Zürich', canton: 'ZH' }, + { zip: '8040', city: 'Zürich', canton: 'ZH' }, + { zip: '8041', city: 'Zürich', canton: 'ZH' }, + { zip: '8042', city: 'Zürich', canton: 'ZH' }, + { zip: '8045', city: 'Zürich', canton: 'ZH' }, + { zip: '8046', city: 'Zürich', canton: 'ZH' }, + { zip: '8047', city: 'Zürich', canton: 'ZH' }, + { zip: '8048', city: 'Zürich', canton: 'ZH' }, + { zip: '8049', city: 'Zürich', canton: 'ZH' }, + { zip: '8050', city: 'Zürich', canton: 'ZH' }, + { zip: '8051', city: 'Zürich', canton: 'ZH' }, + { zip: '8052', city: 'Zürich', canton: 'ZH' }, + { zip: '8053', city: 'Zürich', canton: 'ZH' }, + { zip: '8055', city: 'Zürich', canton: 'ZH' }, + { zip: '8057', city: 'Zürich', canton: 'ZH' }, + { zip: '8063', city: 'Zürich', canton: 'ZH' }, + { zip: '8064', city: 'Zürich', canton: 'ZH' }, + { zip: '8070', city: 'Zürich', canton: 'ZH' }, + { zip: '8071', city: 'Zürich CS PZ', canton: 'ZH' }, + { zip: '8074', city: 'Zürich Voice Pub', canton: 'ZH' }, + { zip: '8075', city: 'Zürich', canton: 'ZH' }, + { zip: '8080', city: 'Zürich 80', canton: 'ZH' }, + { zip: '8081', city: 'Zürich Helsana', canton: 'ZH' }, + { zip: '8085', city: 'Zürich Versicherung', canton: 'ZH' }, + { zip: '8086', city: 'Zürich R Digest', canton: 'ZH' }, + { zip: '8087', city: 'Zürich', canton: 'ZH' }, + { zip: '8088', city: 'Zürich', canton: 'ZH' }, + { zip: '8090', city: 'Zürich', canton: 'ZH' }, + { zip: '8091', city: 'Zürich', canton: 'ZH' }, + { zip: '8092', city: 'Zürich ETH-Zentrum', canton: 'ZH' }, + { zip: '8093', city: 'Zürich', canton: 'ZH' }, + { zip: '8096', city: 'Zürich IBRS local', canton: 'ZH' }, + { zip: '8098', city: 'Zürich', canton: 'ZH' }, + { zip: '8099', city: 'Zürich', canton: 'ZH' }, +] + diff --git a/app/src/App.vue b/app/src/App.vue new file mode 100644 index 0000000..9d87945 --- /dev/null +++ b/app/src/App.vue @@ -0,0 +1,7 @@ + + + diff --git a/app/src/assets/quasar-logo-vertical.svg b/app/src/assets/quasar-logo-vertical.svg new file mode 100644 index 0000000..8210831 --- /dev/null +++ b/app/src/assets/quasar-logo-vertical.svg @@ -0,0 +1,15 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/boot/.gitkeep b/app/src/boot/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/app/src/boot/i18n.ts b/app/src/boot/i18n.ts new file mode 100644 index 0000000..7433316 --- /dev/null +++ b/app/src/boot/i18n.ts @@ -0,0 +1,33 @@ +import { defineBoot } from '#q-app/wrappers'; +import { createI18n } from 'vue-i18n'; + +import messages from 'src/i18n'; + +export type MessageLanguages = keyof typeof messages; +// Use a permissive message schema so different locales may contain different string values +export type MessageSchema = Record; + +// See https://vue-i18n.intlify.dev/guide/advanced/typescript.html#global-resource-schema-type-definition +/* eslint-disable @typescript-eslint/no-empty-object-type */ +declare module 'vue-i18n' { + // define the locale messages schema + export interface DefineLocaleMessage extends MessageSchema {} + + // define the datetime format schema + export interface DefineDateTimeFormat {} + + // define the number format schema + export interface DefineNumberFormat {} +} +/* eslint-enable @typescript-eslint/no-empty-object-type */ + +export default defineBoot(({ app }) => { + const i18n = createI18n<{ message: MessageSchema }, MessageLanguages>({ + locale: 'it-IT', + legacy: false, + messages, + }); + + // Set i18n instance on app + app.use(i18n); +}); diff --git a/app/src/components/AddressInput.vue b/app/src/components/AddressInput.vue new file mode 100644 index 0000000..1e25435 --- /dev/null +++ b/app/src/components/AddressInput.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/app/src/components/AddressModal.vue b/app/src/components/AddressModal.vue new file mode 100644 index 0000000..fb19755 --- /dev/null +++ b/app/src/components/AddressModal.vue @@ -0,0 +1,323 @@ + + + + + diff --git a/app/src/components/CommentAttachment.vue b/app/src/components/CommentAttachment.vue new file mode 100644 index 0000000..a5f6907 --- /dev/null +++ b/app/src/components/CommentAttachment.vue @@ -0,0 +1,391 @@ + + + + + diff --git a/app/src/components/SchoolModal.vue b/app/src/components/SchoolModal.vue new file mode 100644 index 0000000..d43b771 --- /dev/null +++ b/app/src/components/SchoolModal.vue @@ -0,0 +1,305 @@ + + + + + diff --git a/app/src/components/SimpleAttachment.vue b/app/src/components/SimpleAttachment.vue new file mode 100644 index 0000000..263e41c --- /dev/null +++ b/app/src/components/SimpleAttachment.vue @@ -0,0 +1,340 @@ + + + + + diff --git a/app/src/components/StepsStepper.vue b/app/src/components/StepsStepper.vue new file mode 100644 index 0000000..85b306a --- /dev/null +++ b/app/src/components/StepsStepper.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/app/src/components/steps/ChildrenStep.vue b/app/src/components/steps/ChildrenStep.vue new file mode 100644 index 0000000..00c86cf --- /dev/null +++ b/app/src/components/steps/ChildrenStep.vue @@ -0,0 +1,441 @@ + + + + + diff --git a/app/src/components/steps/IncomeStep.vue b/app/src/components/steps/IncomeStep.vue new file mode 100644 index 0000000..8d4ac45 --- /dev/null +++ b/app/src/components/steps/IncomeStep.vue @@ -0,0 +1,183 @@ + + + + + diff --git a/app/src/components/steps/MaritalStep.vue b/app/src/components/steps/MaritalStep.vue new file mode 100644 index 0000000..b0c54b6 --- /dev/null +++ b/app/src/components/steps/MaritalStep.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/app/src/components/steps/TaxpayerStep.vue b/app/src/components/steps/TaxpayerStep.vue new file mode 100644 index 0000000..ea02911 --- /dev/null +++ b/app/src/components/steps/TaxpayerStep.vue @@ -0,0 +1,148 @@ + + + + + + + + diff --git a/app/src/components/steps/WelcomeStep.vue b/app/src/components/steps/WelcomeStep.vue new file mode 100644 index 0000000..5258187 --- /dev/null +++ b/app/src/components/steps/WelcomeStep.vue @@ -0,0 +1,36 @@ + + + + diff --git a/app/src/css/app.scss b/app/src/css/app.scss new file mode 100644 index 0000000..ecac98f --- /dev/null +++ b/app/src/css/app.scss @@ -0,0 +1 @@ +// app global css in SCSS form diff --git a/app/src/css/quasar.variables.scss b/app/src/css/quasar.variables.scss new file mode 100644 index 0000000..2605a0d --- /dev/null +++ b/app/src/css/quasar.variables.scss @@ -0,0 +1,25 @@ +// Quasar SCSS (& Sass) Variables +// -------------------------------------------------- +// To customize the look and feel of this app, you can override +// the Sass/SCSS variables found in Quasar's source Sass/SCSS files. + +// Check documentation for full list of Quasar variables + +// Your own variables (that are declared here) and Quasar's own +// ones will be available out of the box in your .vue/.scss/.sass files + +// It's highly recommended to change the default colors +// to match your app's branding. +// Tip: Use the "Theme Builder" on Quasar's documentation website. + +$primary: #1976d2; +$secondary: #26a69a; +$accent: #9c27b0; + +$dark: #1d1d1d; +$dark-page: #121212; + +$positive: #21ba45; +$negative: #c10015; +$info: #31ccec; +$warning: #f2c037; diff --git a/app/src/data/countryCodes.ts b/app/src/data/countryCodes.ts new file mode 100644 index 0000000..0e47773 --- /dev/null +++ b/app/src/data/countryCodes.ts @@ -0,0 +1,4570 @@ +// Common ISO alpha-2 country codes used by the app. +// Keep this list curated; expand if needed. +export const COUNTRY_CODES = [ + 'IT','US','DE','FR','ES','GB','CH','AT','BE','NL','PT','PL','RO','RU','CN','JP','IN','BR','AR','MX','ZA','SE','NO','DK','FI','IE','GR','HU','CZ','SK','SI','HR','BG','TR','IL','EG','AU','NZ','KR','VN','TH','MY','SG','ID','PH' +] + +export default COUNTRY_CODES + +export type PostalPlace = { + postalCode: string; + placeName: string; + cantonCode: string; +}; + +export const CH_POSTAL_PLACES: PostalPlace[] = [ + { postalCode: "5000", placeName: "Aarau", cantonCode: "AG" }, + { postalCode: "5001", placeName: "Aarau 1", cantonCode: "AG" }, + { postalCode: "5004", placeName: "Aarau", cantonCode: "AG" }, + { postalCode: "5017", placeName: "Barmelweid", cantonCode: "AG" }, + { postalCode: "5018", placeName: "Erlinsbach", cantonCode: "AG" }, + { postalCode: "5022", placeName: "Rombach", cantonCode: "AG" }, + { postalCode: "5023", placeName: "Biberstein", cantonCode: "AG" }, + { postalCode: "5024", placeName: "Küttigen", cantonCode: "AG" }, + { postalCode: "5025", placeName: "Asp", cantonCode: "AG" }, + { postalCode: "5026", placeName: "Densbüren", cantonCode: "AG" }, + { postalCode: "5032", placeName: "Aarau Rohr", cantonCode: "AG" }, + { postalCode: "5033", placeName: "Buchs AG", cantonCode: "AG" }, + { postalCode: "5034", placeName: "Suhr", cantonCode: "AG" }, + { postalCode: "5035", placeName: "Unterentfelden", cantonCode: "AG" }, + { postalCode: "5036", placeName: "Oberentfelden", cantonCode: "AG" }, + { postalCode: "5037", placeName: "Muhen", cantonCode: "AG" }, + { postalCode: "5042", placeName: "Hirschthal", cantonCode: "AG" }, + { postalCode: "5722", placeName: "Gränichen", cantonCode: "AG" }, + { postalCode: "5300", placeName: "Turgi", cantonCode: "AG" }, + { postalCode: "5301", placeName: "Siggenthal Station", cantonCode: "AG" }, + { postalCode: "5303", placeName: "Würenlingen", cantonCode: "AG" }, + { postalCode: "5400", placeName: "Baden", cantonCode: "AG" }, + { postalCode: "5401", placeName: "Baden", cantonCode: "AG" }, + { postalCode: "5402", placeName: "Baden", cantonCode: "AG" }, + { postalCode: "5404", placeName: "Baden", cantonCode: "AG" }, + { postalCode: "5405", placeName: "Baden", cantonCode: "AG" }, + { postalCode: "5405", placeName: "Dättwil AG", cantonCode: "AG" }, + { postalCode: "5406", placeName: "Rütihof", cantonCode: "AG" }, + { postalCode: "5406", placeName: "Baden", cantonCode: "AG" }, + { postalCode: "5408", placeName: "Ennetbaden", cantonCode: "AG" }, + { postalCode: "5412", placeName: "Vogelsang AG", cantonCode: "AG" }, + { postalCode: "5412", placeName: "Gebenstorf", cantonCode: "AG" }, + { postalCode: "5413", placeName: "Birmenstorf AG", cantonCode: "AG" }, + { postalCode: "5415", placeName: "Rieden AG", cantonCode: "AG" }, + { postalCode: "5415", placeName: "Nussbaumen AG", cantonCode: "AG" }, + { postalCode: "5415", placeName: "Hertenstein AG", cantonCode: "AG" }, + { postalCode: "5416", placeName: "Kirchdorf AG", cantonCode: "AG" }, + { postalCode: "5417", placeName: "Untersiggenthal", cantonCode: "AG" }, + { postalCode: "5420", placeName: "Ehrendingen", cantonCode: "AG" }, + { postalCode: "5423", placeName: "Freienwil", cantonCode: "AG" }, + { postalCode: "5430", placeName: "Wettingen 1", cantonCode: "AG" }, + { postalCode: "5430", placeName: "Wettingen 3", cantonCode: "AG" }, + { postalCode: "5430", placeName: "Wettingen", cantonCode: "AG" }, + { postalCode: "5432", placeName: "Neuenhof", cantonCode: "AG" }, + { postalCode: "5436", placeName: "Würenlos", cantonCode: "AG" }, + { postalCode: "5442", placeName: "Fislisbach", cantonCode: "AG" }, + { postalCode: "5443", placeName: "Niederrohrdorf", cantonCode: "AG" }, + { postalCode: "5444", placeName: "Künten", cantonCode: "AG" }, + { postalCode: "5452", placeName: "Oberrohrdorf", cantonCode: "AG" }, + { postalCode: "5453", placeName: "Remetschwil", cantonCode: "AG" }, + { postalCode: "5454", placeName: "Bellikon", cantonCode: "AG" }, + { postalCode: "5506", placeName: "Mägenwil", cantonCode: "AG" }, + { postalCode: "5507", placeName: "Mellingen", cantonCode: "AG" }, + { postalCode: "5512", placeName: "Wohlenschwil", cantonCode: "AG" }, + { postalCode: "5608", placeName: "Stetten AG", cantonCode: "AG" }, + { postalCode: "8109", placeName: "Kloster Fahr", cantonCode: "AG" }, + { postalCode: "8956", placeName: "Killwangen", cantonCode: "AG" }, + { postalCode: "8957", placeName: "Spreitenbach", cantonCode: "AG" }, + { postalCode: "8962", placeName: "Bergdietikon", cantonCode: "AG" }, + { postalCode: "5445", placeName: "Eggenwil", cantonCode: "AG" }, + { postalCode: "5522", placeName: "Tägerig", cantonCode: "AG" }, + { postalCode: "5524", placeName: "Niederwil AG", cantonCode: "AG" }, + { postalCode: "5524", placeName: "Nesselnbach", cantonCode: "AG" }, + { postalCode: "5525", placeName: "Fischbach-Göslikon", cantonCode: "AG" }, + { postalCode: "5605", placeName: "Dottikon", cantonCode: "AG" }, + { postalCode: "5607", placeName: "Hägglingen", cantonCode: "AG" }, + { postalCode: "5610", placeName: "Wohlen AG", cantonCode: "AG" }, + { postalCode: "5610", placeName: "Wohlen AG 1", cantonCode: "AG" }, + { postalCode: "5611", placeName: "Anglikon", cantonCode: "AG" }, + { postalCode: "5612", placeName: "Villmergen", cantonCode: "AG" }, + { postalCode: "5613", placeName: "Hilfikon", cantonCode: "AG" }, + { postalCode: "5614", placeName: "Sarmenstorf", cantonCode: "AG" }, + { postalCode: "5619", placeName: "Büttikon AG", cantonCode: "AG" }, + { postalCode: "5619", placeName: "Uezwil", cantonCode: "AG" }, + { postalCode: "5620", placeName: "Bremgarten AG", cantonCode: "AG" }, + { postalCode: "5620", placeName: "Bremgarten AG 1", cantonCode: "AG" }, + { postalCode: "5621", placeName: "Zufikon", cantonCode: "AG" }, + { postalCode: "5626", placeName: "Hermetschwil-Staffeln", cantonCode: "AG" }, + { postalCode: "8905", placeName: "Arni-Islisberg", cantonCode: "AG" }, + { postalCode: "8905", placeName: "Islisberg", cantonCode: "AG" }, + { postalCode: "8905", placeName: "Arni AG", cantonCode: "AG" }, + { postalCode: "8916", placeName: "Jonen", cantonCode: "AG" }, + { postalCode: "8917", placeName: "Oberlunkhofen", cantonCode: "AG" }, + { postalCode: "8918", placeName: "Unterlunkhofen", cantonCode: "AG" }, + { postalCode: "8964", placeName: "Rudolfstetten", cantonCode: "AG" }, + { postalCode: "8965", placeName: "Berikon", cantonCode: "AG" }, + { postalCode: "8966", placeName: "Oberwil-Lieli", cantonCode: "AG" }, + { postalCode: "8967", placeName: "Widen", cantonCode: "AG" }, + { postalCode: "5105", placeName: "Auenstein", cantonCode: "AG" }, + { postalCode: "5106", placeName: "Veltheim AG", cantonCode: "AG" }, + { postalCode: "5107", placeName: "Schinznach Dorf", cantonCode: "AG" }, + { postalCode: "5108", placeName: "Oberflachs", cantonCode: "AG" }, + { postalCode: "5112", placeName: "Thalheim AG", cantonCode: "AG" }, + { postalCode: "5116", placeName: "Schinznach Bad", cantonCode: "AG" }, + { postalCode: "5200", placeName: "Brugg AG", cantonCode: "AG" }, + { postalCode: "5201", placeName: "Brugg AG", cantonCode: "AG" }, + { postalCode: "5210", placeName: "Windisch", cantonCode: "AG" }, + { postalCode: "5212", placeName: "Hausen AG", cantonCode: "AG" }, + { postalCode: "5213", placeName: "Villnachern", cantonCode: "AG" }, + { postalCode: "5222", placeName: "Umiken", cantonCode: "AG" }, + { postalCode: "5223", placeName: "Riniken", cantonCode: "AG" }, + { postalCode: "5225", placeName: "Bözberg", cantonCode: "AG" }, + { postalCode: "5232", placeName: "Villigen PSI", cantonCode: "AG" }, + { postalCode: "5233", placeName: "Stilli", cantonCode: "AG" }, + { postalCode: "5234", placeName: "Villigen", cantonCode: "AG" }, + { postalCode: "5235", placeName: "Rüfenach AG", cantonCode: "AG" }, + { postalCode: "5236", placeName: "Remigen", cantonCode: "AG" }, + { postalCode: "5237", placeName: "Mönthal", cantonCode: "AG" }, + { postalCode: "5242", placeName: "Lupfig", cantonCode: "AG" }, + { postalCode: "5242", placeName: "Birr", cantonCode: "AG" }, + { postalCode: "5242", placeName: "Birr-Lupfig", cantonCode: "AG" }, + { postalCode: "5243", placeName: "Mülligen", cantonCode: "AG" }, + { postalCode: "5244", placeName: "Birrhard", cantonCode: "AG" }, + { postalCode: "5245", placeName: "Habsburg", cantonCode: "AG" }, + { postalCode: "5246", placeName: "Scherz", cantonCode: "AG" }, + { postalCode: "5318", placeName: "Mandach", cantonCode: "AG" }, + { postalCode: "5040", placeName: "Schöftland", cantonCode: "AG" }, + { postalCode: "5043", placeName: "Holziken", cantonCode: "AG" }, + { postalCode: "5044", placeName: "Schlossrued", cantonCode: "AG" }, + { postalCode: "5046", placeName: "Walde AG", cantonCode: "AG" }, + { postalCode: "5046", placeName: "Schmiedrued", cantonCode: "AG" }, + { postalCode: "5046", placeName: "Schmiedrued-Walde", cantonCode: "AG" }, + { postalCode: "5708", placeName: "Birrwil", cantonCode: "AG" }, + { postalCode: "5712", placeName: "Beinwil am See", cantonCode: "AG" }, + { postalCode: "5723", placeName: "Teufenthal AG", cantonCode: "AG" }, + { postalCode: "5724", placeName: "Dürrenäsch", cantonCode: "AG" }, + { postalCode: "5725", placeName: "Leutwil", cantonCode: "AG" }, + { postalCode: "5726", placeName: "Unterkulm", cantonCode: "AG" }, + { postalCode: "5727", placeName: "Oberkulm", cantonCode: "AG" }, + { postalCode: "5728", placeName: "Gontenschwil", cantonCode: "AG" }, + { postalCode: "5732", placeName: "Zetzwil", cantonCode: "AG" }, + { postalCode: "5733", placeName: "Leimbach AG", cantonCode: "AG" }, + { postalCode: "5734", placeName: "Reinach AG", cantonCode: "AG" }, + { postalCode: "5736", placeName: "Burg AG", cantonCode: "AG" }, + { postalCode: "5737", placeName: "Menziken", cantonCode: "AG" }, + { postalCode: "4333", placeName: "Münchwilen AG", cantonCode: "AG" }, + { postalCode: "4334", placeName: "Sisseln AG", cantonCode: "AG" }, + { postalCode: "5027", placeName: "Herznach", cantonCode: "AG" }, + { postalCode: "5028", placeName: "Ueken", cantonCode: "AG" }, + { postalCode: "5062", placeName: "Oberhof", cantonCode: "AG" }, + { postalCode: "5063", placeName: "Wölflinswil", cantonCode: "AG" }, + { postalCode: "5064", placeName: "Wittnau", cantonCode: "AG" }, + { postalCode: "5070", placeName: "Frick", cantonCode: "AG" }, + { postalCode: "5072", placeName: "Oeschgen", cantonCode: "AG" }, + { postalCode: "5073", placeName: "Gipf-Oberfrick", cantonCode: "AG" }, + { postalCode: "5074", placeName: "Eiken", cantonCode: "AG" }, + { postalCode: "5075", placeName: "Hornussen", cantonCode: "AG" }, + { postalCode: "5076", placeName: "Bözen", cantonCode: "AG" }, + { postalCode: "5077", placeName: "Elfingen", cantonCode: "AG" }, + { postalCode: "5078", placeName: "Effingen", cantonCode: "AG" }, + { postalCode: "5079", placeName: "Zeihen", cantonCode: "AG" }, + { postalCode: "5080", placeName: "Laufenburg", cantonCode: "AG" }, + { postalCode: "5082", placeName: "Kaisten", cantonCode: "AG" }, + { postalCode: "5083", placeName: "Ittenthal", cantonCode: "AG" }, + { postalCode: "5084", placeName: "Rheinsulz", cantonCode: "AG" }, + { postalCode: "5085", placeName: "Sulz AG", cantonCode: "AG" }, + { postalCode: "5272", placeName: "Gansingen", cantonCode: "AG" }, + { postalCode: "5273", placeName: "Oberhofen AG", cantonCode: "AG" }, + { postalCode: "5274", placeName: "Mettau", cantonCode: "AG" }, + { postalCode: "5275", placeName: "Etzgen", cantonCode: "AG" }, + { postalCode: "5276", placeName: "Wil AG", cantonCode: "AG" }, + { postalCode: "5277", placeName: "Hottwil", cantonCode: "AG" }, + { postalCode: "5326", placeName: "Schwaderloch", cantonCode: "AG" }, + { postalCode: "5102", placeName: "Rupperswil", cantonCode: "AG" }, + { postalCode: "5103", placeName: "Wildegg", cantonCode: "AG" }, + { postalCode: "5103", placeName: "Möriken AG", cantonCode: "AG" }, + { postalCode: "5113", placeName: "Holderbank AG", cantonCode: "AG" }, + { postalCode: "5502", placeName: "Hunzenschwil", cantonCode: "AG" }, + { postalCode: "5503", placeName: "Schafisheim", cantonCode: "AG" }, + { postalCode: "5504", placeName: "Othmarsingen", cantonCode: "AG" }, + { postalCode: "5505", placeName: "Brunegg", cantonCode: "AG" }, + { postalCode: "5600", placeName: "Lenzburg 1", cantonCode: "AG" }, + { postalCode: "5600", placeName: "Lenzburg", cantonCode: "AG" }, + { postalCode: "5600", placeName: "Ammerswil AG", cantonCode: "AG" }, + { postalCode: "5603", placeName: "Staufen", cantonCode: "AG" }, + { postalCode: "5604", placeName: "Hendschiken", cantonCode: "AG" }, + { postalCode: "5606", placeName: "Dintikon", cantonCode: "AG" }, + { postalCode: "5615", placeName: "Fahrwangen", cantonCode: "AG" }, + { postalCode: "5616", placeName: "Meisterschwanden", cantonCode: "AG" }, + { postalCode: "5617", placeName: "Tennwil", cantonCode: "AG" }, + { postalCode: "5702", placeName: "Niederlenz", cantonCode: "AG" }, + { postalCode: "5703", placeName: "Seon", cantonCode: "AG" }, + { postalCode: "5704", placeName: "Egliswil", cantonCode: "AG" }, + { postalCode: "5705", placeName: "Hallwil", cantonCode: "AG" }, + { postalCode: "5706", placeName: "Boniswil", cantonCode: "AG" }, + { postalCode: "5707", placeName: "Seengen", cantonCode: "AG" }, + { postalCode: "5618", placeName: "Bettwil", cantonCode: "AG" }, + { postalCode: "5622", placeName: "Waltenschwil", cantonCode: "AG" }, + { postalCode: "5623", placeName: "Boswil", cantonCode: "AG" }, + { postalCode: "5624", placeName: "Bünzen", cantonCode: "AG" }, + { postalCode: "5624", placeName: "Waldhäusern AG", cantonCode: "AG" }, + { postalCode: "5625", placeName: "Kallern", cantonCode: "AG" }, + { postalCode: "5627", placeName: "Besenbüren", cantonCode: "AG" }, + { postalCode: "5628", placeName: "Aristau", cantonCode: "AG" }, + { postalCode: "5630", placeName: "Muri AG", cantonCode: "AG" }, + { postalCode: "5632", placeName: "Buttwil", cantonCode: "AG" }, + { postalCode: "5634", placeName: "Merenschwand", cantonCode: "AG" }, + { postalCode: "5636", placeName: "Benzenschwil", cantonCode: "AG" }, + { postalCode: "5637", placeName: "Geltwil", cantonCode: "AG" }, + { postalCode: "5637", placeName: "Beinwil (Freiamt)", cantonCode: "AG" }, + { postalCode: "5642", placeName: "Mühlau", cantonCode: "AG" }, + { postalCode: "5643", placeName: "Alikon", cantonCode: "AG" }, + { postalCode: "5643", placeName: "Meienberg", cantonCode: "AG" }, + { postalCode: "5643", placeName: "Sins", cantonCode: "AG" }, + { postalCode: "5643", placeName: "Sins", cantonCode: "AG" }, + { postalCode: "5644", placeName: "Auw", cantonCode: "AG" }, + { postalCode: "5645", placeName: "Fenkrieden", cantonCode: "AG" }, + { postalCode: "5645", placeName: "Aettenschwil", cantonCode: "AG" }, + { postalCode: "5646", placeName: "Abtwil AG", cantonCode: "AG" }, + { postalCode: "5647", placeName: "Oberrüti", cantonCode: "AG" }, + { postalCode: "6042", placeName: "Dietwil", cantonCode: "AG" }, + { postalCode: "8919", placeName: "Rottenschwil", cantonCode: "AG" }, + { postalCode: "4303", placeName: "Kaiseraugst Liebrüti", cantonCode: "AG" }, + { postalCode: "4303", placeName: "Kaiseraugst", cantonCode: "AG" }, + { postalCode: "4305", placeName: "Olsberg", cantonCode: "AG" }, + { postalCode: "4310", placeName: "Rheinfelden", cantonCode: "AG" }, + { postalCode: "4310", placeName: "Rheinfelden 1", cantonCode: "AG" }, + { postalCode: "4312", placeName: "Magden", cantonCode: "AG" }, + { postalCode: "4313", placeName: "Möhlin", cantonCode: "AG" }, + { postalCode: "4314", placeName: "Zeiningen", cantonCode: "AG" }, + { postalCode: "4315", placeName: "Zuzgen", cantonCode: "AG" }, + { postalCode: "4316", placeName: "Hellikon", cantonCode: "AG" }, + { postalCode: "4317", placeName: "Wegenstetten", cantonCode: "AG" }, + { postalCode: "4322", placeName: "Mumpf", cantonCode: "AG" }, + { postalCode: "4323", placeName: "Wallbach", cantonCode: "AG" }, + { postalCode: "4324", placeName: "Obermumpf", cantonCode: "AG" }, + { postalCode: "4325", placeName: "Schupfart", cantonCode: "AG" }, + { postalCode: "4332", placeName: "Stein AG", cantonCode: "AG" }, + { postalCode: "4663", placeName: "Aarburg", cantonCode: "AG" }, + { postalCode: "4665", placeName: "Oftringen 1", cantonCode: "AG" }, + { postalCode: "4665", placeName: "Oftringen", cantonCode: "AG" }, + { postalCode: "4665", placeName: "Oftringen 2", cantonCode: "AG" }, + { postalCode: "4800", placeName: "Zofingen", cantonCode: "AG" }, + { postalCode: "4801", placeName: "Zofingen", cantonCode: "AG" }, + { postalCode: "4801", placeName: "Zofingen Ringier AG", cantonCode: "AG" }, + { postalCode: "4802", placeName: "Strengelbach", cantonCode: "AG" }, + { postalCode: "4803", placeName: "Vordemwald", cantonCode: "AG" }, + { postalCode: "4805", placeName: "Brittnau", cantonCode: "AG" }, + { postalCode: "4807", placeName: "Zofingen PostFinance", cantonCode: "AG" }, + { postalCode: "4807", placeName: "Zofingen PF", cantonCode: "AG" }, + { postalCode: "4808", placeName: "Zofingen PF", cantonCode: "AG" }, + { postalCode: "4808", placeName: "Zofingen PostFinance", cantonCode: "AG" }, + { postalCode: "4809", placeName: "Zofingen PF", cantonCode: "AG" }, + { postalCode: "4809", placeName: "Zofingen PF UBS", cantonCode: "AG" }, + { postalCode: "4809", placeName: "Zofingen PF UBS Verarb.", cantonCode: "AG" }, + { postalCode: "4809", placeName: "Zofingen Postfinance UBS", cantonCode: "AG" }, + { postalCode: "4810", placeName: "Zofingen PF", cantonCode: "AG" }, + { postalCode: "4812", placeName: "Mühlethal", cantonCode: "AG" }, + { postalCode: "4813", placeName: "Uerkheim", cantonCode: "AG" }, + { postalCode: "4814", placeName: "Bottenwil", cantonCode: "AG" }, + { postalCode: "4852", placeName: "Rothrist", cantonCode: "AG" }, + { postalCode: "4853", placeName: "Murgenthal", cantonCode: "AG" }, + { postalCode: "4853", placeName: "Riken AG", cantonCode: "AG" }, + { postalCode: "4853", placeName: "Murgenthal", cantonCode: "AG" }, + { postalCode: "4856", placeName: "Glashütten", cantonCode: "AG" }, + { postalCode: "5053", placeName: "Wittwil", cantonCode: "AG" }, + { postalCode: "5053", placeName: "Staffelbach", cantonCode: "AG" }, + { postalCode: "5054", placeName: "Moosleerau", cantonCode: "AG" }, + { postalCode: "5054", placeName: "Kirchleerau-Moosleerau", cantonCode: "AG" }, + { postalCode: "5054", placeName: "Kirchleerau", cantonCode: "AG" }, + { postalCode: "5056", placeName: "Attelwil", cantonCode: "AG" }, + { postalCode: "5057", placeName: "Reitnau", cantonCode: "AG" }, + { postalCode: "5058", placeName: "Wiliberg", cantonCode: "AG" }, + { postalCode: "5742", placeName: "Kölliken", cantonCode: "AG" }, + { postalCode: "5745", placeName: "Safenwil", cantonCode: "AG" }, + { postalCode: "5304", placeName: "Endingen", cantonCode: "AG" }, + { postalCode: "5305", placeName: "Unterendingen", cantonCode: "AG" }, + { postalCode: "5306", placeName: "Tegerfelden", cantonCode: "AG" }, + { postalCode: "5312", placeName: "Döttingen", cantonCode: "AG" }, + { postalCode: "5313", placeName: "Klingnau", cantonCode: "AG" }, + { postalCode: "5314", placeName: "Kleindöttingen", cantonCode: "AG" }, + { postalCode: "5315", placeName: "Böttstein", cantonCode: "AG" }, + { postalCode: "5316", placeName: "Leuggern", cantonCode: "AG" }, + { postalCode: "5317", placeName: "Hettenschwil", cantonCode: "AG" }, + { postalCode: "5322", placeName: "Koblenz", cantonCode: "AG" }, + { postalCode: "5323", placeName: "Rietheim", cantonCode: "AG" }, + { postalCode: "5324", placeName: "Full-Reuenthal", cantonCode: "AG" }, + { postalCode: "5325", placeName: "Leibstadt", cantonCode: "AG" }, + { postalCode: "5330", placeName: "Bad Zurzach", cantonCode: "AG" }, + { postalCode: "5332", placeName: "Rekingen AG", cantonCode: "AG" }, + { postalCode: "5333", placeName: "Baldingen", cantonCode: "AG" }, + { postalCode: "5334", placeName: "Böbikon", cantonCode: "AG" }, + { postalCode: "5425", placeName: "Schneisingen", cantonCode: "AG" }, + { postalCode: "5426", placeName: "Lengnau AG", cantonCode: "AG" }, + { postalCode: "5462", placeName: "Siglistorf", cantonCode: "AG" }, + { postalCode: "5463", placeName: "Wislikofen", cantonCode: "AG" }, + { postalCode: "5464", placeName: "Rümikon AG", cantonCode: "AG" }, + { postalCode: "5465", placeName: "Mellikon", cantonCode: "AG" }, + { postalCode: "5466", placeName: "Kaiserstuhl AG", cantonCode: "AG" }, + { postalCode: "5467", placeName: "Fisibach", cantonCode: "AG" }, + { postalCode: "9050", placeName: "Appenzell", cantonCode: "AI" }, + { postalCode: "9050", placeName: "Appenzell Eggerstanden", cantonCode: "AI" }, + { postalCode: "9050", placeName: "Appenzell Schlatt", cantonCode: "AI" }, + { postalCode: "9050", placeName: "Appenzell Enggenhütten", cantonCode: "AI" }, + { postalCode: "9050", placeName: "Appenzell Meistersrüte", cantonCode: "AI" }, + { postalCode: "9050", placeName: "Appenzell Steinegg", cantonCode: "AI" }, + { postalCode: "9054", placeName: "Haslen AI", cantonCode: "AI" }, + { postalCode: "9057", placeName: "Wasserauen", cantonCode: "AI" }, + { postalCode: "9057", placeName: "Weissbad", cantonCode: "AI" }, + { postalCode: "9057", placeName: "Schwende", cantonCode: "AI" }, + { postalCode: "9058", placeName: "Brülisau", cantonCode: "AI" }, + { postalCode: "9108", placeName: "Jakobsbad", cantonCode: "AI" }, + { postalCode: "9108", placeName: "Gontenbad", cantonCode: "AI" }, + { postalCode: "9108", placeName: "Gonten", cantonCode: "AI" }, + { postalCode: "9413", placeName: "Oberegg", cantonCode: "AI" }, + { postalCode: "9413", placeName: "Oberegg", cantonCode: "AI" }, + { postalCode: "9442", placeName: "Büriswilen", cantonCode: "AI" }, + { postalCode: "9063", placeName: "Stein AR", cantonCode: "AR" }, + { postalCode: "9064", placeName: "Hundwil", cantonCode: "AR" }, + { postalCode: "9100", placeName: "Herisau", cantonCode: "AR" }, + { postalCode: "9102", placeName: "Herisau", cantonCode: "AR" }, + { postalCode: "9103", placeName: "Schwellbrunn", cantonCode: "AR" }, + { postalCode: "9104", placeName: "Waldstatt", cantonCode: "AR" }, + { postalCode: "9105", placeName: "Schönengrund", cantonCode: "AR" }, + { postalCode: "9107", placeName: "Urnäsch", cantonCode: "AR" }, + { postalCode: "9112", placeName: "Schachen b. Herisau", cantonCode: "AR" }, + { postalCode: "9037", placeName: "Speicherschwendi", cantonCode: "AR" }, + { postalCode: "9042", placeName: "Speicher", cantonCode: "AR" }, + { postalCode: "9043", placeName: "Trogen", cantonCode: "AR" }, + { postalCode: "9052", placeName: "Niederteufen", cantonCode: "AR" }, + { postalCode: "9053", placeName: "Teufen AR", cantonCode: "AR" }, + { postalCode: "9055", placeName: "Bühler", cantonCode: "AR" }, + { postalCode: "9056", placeName: "Gais", cantonCode: "AR" }, + { postalCode: "9062", placeName: "Lustmühle", cantonCode: "AR" }, + { postalCode: "9035", placeName: "Grub AR", cantonCode: "AR" }, + { postalCode: "9038", placeName: "Rehetobel", cantonCode: "AR" }, + { postalCode: "9044", placeName: "Wald AR", cantonCode: "AR" }, + { postalCode: "9405", placeName: "Wienacht-Tobel", cantonCode: "AR" }, + { postalCode: "9410", placeName: "Heiden", cantonCode: "AR" }, + { postalCode: "9411", placeName: "Schachen b. Reute", cantonCode: "AR" }, + { postalCode: "9411", placeName: "Reute AR", cantonCode: "AR" }, + { postalCode: "9426", placeName: "Lutzenberg", cantonCode: "AR" }, + { postalCode: "9427", placeName: "Wolfhalden", cantonCode: "AR" }, + { postalCode: "9428", placeName: "Walzenhausen", cantonCode: "AR" }, + { postalCode: "2333", placeName: "La Ferrière", cantonCode: "BE" }, + { postalCode: "2345", placeName: "Le Cerneux-Veusil", cantonCode: "BE" }, + { postalCode: "2515", placeName: "Prêles", cantonCode: "BE" }, + { postalCode: "2516", placeName: "Lamboing", cantonCode: "BE" }, + { postalCode: "2517", placeName: "Diesse", cantonCode: "BE" }, + { postalCode: "2518", placeName: "Nods", cantonCode: "BE" }, + { postalCode: "2520", placeName: "La Neuveville", cantonCode: "BE" }, + { postalCode: "2534", placeName: "Les Prés-d'Orvin", cantonCode: "BE" }, + { postalCode: "2534", placeName: "Orvin", cantonCode: "BE" }, + { postalCode: "2535", placeName: "Frinvillier", cantonCode: "BE" }, + { postalCode: "2536", placeName: "Plagne", cantonCode: "BE" }, + { postalCode: "2537", placeName: "Vauffelin", cantonCode: "BE" }, + { postalCode: "2538", placeName: "Romont BE", cantonCode: "BE" }, + { postalCode: "2603", placeName: "Péry", cantonCode: "BE" }, + { postalCode: "2604", placeName: "La Heutte", cantonCode: "BE" }, + { postalCode: "2605", placeName: "Sonceboz-Sombeval", cantonCode: "BE" }, + { postalCode: "2606", placeName: "Corgémont", cantonCode: "BE" }, + { postalCode: "2607", placeName: "Cortébert", cantonCode: "BE" }, + { postalCode: "2608", placeName: "Courtelary", cantonCode: "BE" }, + { postalCode: "2608", placeName: "Montagne-de-Courtelary", cantonCode: "BE" }, + { postalCode: "2610", placeName: "St-Imier", cantonCode: "BE" }, + { postalCode: "2610", placeName: "Mont-Crosin", cantonCode: "BE" }, + { postalCode: "2610", placeName: "Mont-Soleil", cantonCode: "BE" }, + { postalCode: "2610", placeName: "Les Pontins", cantonCode: "BE" }, + { postalCode: "2612", placeName: "Cormoret", cantonCode: "BE" }, + { postalCode: "2613", placeName: "Villeret", cantonCode: "BE" }, + { postalCode: "2615", placeName: "Sonvilier", cantonCode: "BE" }, + { postalCode: "2615", placeName: "Montagne-de-Sonvilier", cantonCode: "BE" }, + { postalCode: "2616", placeName: "Renan BE", cantonCode: "BE" }, + { postalCode: "2710", placeName: "Tavannes", cantonCode: "BE" }, + { postalCode: "2712", placeName: "Le Fuet", cantonCode: "BE" }, + { postalCode: "2713", placeName: "Bellelay", cantonCode: "BE" }, + { postalCode: "2715", placeName: "Monible", cantonCode: "BE" }, + { postalCode: "2715", placeName: "Châtelat", cantonCode: "BE" }, + { postalCode: "2716", placeName: "Sornetan", cantonCode: "BE" }, + { postalCode: "2717", placeName: "Fornet-Dessous", cantonCode: "BE" }, + { postalCode: "2717", placeName: "Rebévelier", cantonCode: "BE" }, + { postalCode: "2720", placeName: "Tramelan", cantonCode: "BE" }, + { postalCode: "2720", placeName: "La Tanne", cantonCode: "BE" }, + { postalCode: "2722", placeName: "Les Reussilles", cantonCode: "BE" }, + { postalCode: "2723", placeName: "Mont-Tramelan", cantonCode: "BE" }, + { postalCode: "2732", placeName: "Loveresse", cantonCode: "BE" }, + { postalCode: "2732", placeName: "Saicourt", cantonCode: "BE" }, + { postalCode: "2732", placeName: "Saules BE", cantonCode: "BE" }, + { postalCode: "2732", placeName: "Reconvilier", cantonCode: "BE" }, + { postalCode: "2733", placeName: "Pontenet", cantonCode: "BE" }, + { postalCode: "2735", placeName: "Malleray-Bévilard", cantonCode: "BE" }, + { postalCode: "2735", placeName: "Bévilard", cantonCode: "BE" }, + { postalCode: "2735", placeName: "Champoz", cantonCode: "BE" }, + { postalCode: "2735", placeName: "Malleray", cantonCode: "BE" }, + { postalCode: "2736", placeName: "Sorvilier", cantonCode: "BE" }, + { postalCode: "2738", placeName: "Court", cantonCode: "BE" }, + { postalCode: "2740", placeName: "Moutier", cantonCode: "BE" }, + { postalCode: "2742", placeName: "Perrefitte", cantonCode: "BE" }, + { postalCode: "2743", placeName: "Eschert", cantonCode: "BE" }, + { postalCode: "2744", placeName: "Belprahon", cantonCode: "BE" }, + { postalCode: "2745", placeName: "Grandval", cantonCode: "BE" }, + { postalCode: "2746", placeName: "Crémines", cantonCode: "BE" }, + { postalCode: "2747", placeName: "Corcelles BE", cantonCode: "BE" }, + { postalCode: "2747", placeName: "Seehof", cantonCode: "BE" }, + { postalCode: "2748", placeName: "Souboz", cantonCode: "BE" }, + { postalCode: "2748", placeName: "Les Ecorcheresses", cantonCode: "BE" }, + { postalCode: "2762", placeName: "Roches BE", cantonCode: "BE" }, + { postalCode: "2827", placeName: "Schelten", cantonCode: "BE" }, + { postalCode: "2500", placeName: "Biel/Bienne 4", cantonCode: "BE" }, + { postalCode: "2500", placeName: "Biel/Bienne", cantonCode: "BE" }, + { postalCode: "2500", placeName: "Biel/Bienne 6", cantonCode: "BE" }, + { postalCode: "2501", placeName: "Biel/Bienne", cantonCode: "BE" }, + { postalCode: "2502", placeName: "Biel/Bienne", cantonCode: "BE" }, + { postalCode: "2503", placeName: "Biel/Bienne", cantonCode: "BE" }, + { postalCode: "2504", placeName: "Biel/Bienne", cantonCode: "BE" }, + { postalCode: "2505", placeName: "Biel/Bienne", cantonCode: "BE" }, + { postalCode: "2512", placeName: "Tüscherz-Alfermée", cantonCode: "BE" }, + { postalCode: "2513", placeName: "Twann", cantonCode: "BE" }, + { postalCode: "2514", placeName: "Ligerz", cantonCode: "BE" }, + { postalCode: "2532", placeName: "Macolin", cantonCode: "BE" }, + { postalCode: "2532", placeName: "Magglingen/Macolin", cantonCode: "BE" }, + { postalCode: "2533", placeName: "Evilard", cantonCode: "BE" }, + { postalCode: "2542", placeName: "Pieterlen", cantonCode: "BE" }, + { postalCode: "2543", placeName: "Lengnau BE", cantonCode: "BE" }, + { postalCode: "2552", placeName: "Orpund", cantonCode: "BE" }, + { postalCode: "2553", placeName: "Safnern", cantonCode: "BE" }, + { postalCode: "2554", placeName: "Meinisberg", cantonCode: "BE" }, + { postalCode: "2555", placeName: "Brügg BE", cantonCode: "BE" }, + { postalCode: "2556", placeName: "Scheuren", cantonCode: "BE" }, + { postalCode: "2556", placeName: "Schwadernau", cantonCode: "BE" }, + { postalCode: "2558", placeName: "Aegerten", cantonCode: "BE" }, + { postalCode: "2560", placeName: "Nidau", cantonCode: "BE" }, + { postalCode: "2562", placeName: "Port", cantonCode: "BE" }, + { postalCode: "2563", placeName: "Ipsach", cantonCode: "BE" }, + { postalCode: "2564", placeName: "Bellmund", cantonCode: "BE" }, + { postalCode: "2572", placeName: "Mörigen", cantonCode: "BE" }, + { postalCode: "2572", placeName: "Sutz", cantonCode: "BE" }, + { postalCode: "2557", placeName: "Studen BE", cantonCode: "BE" }, + { postalCode: "2565", placeName: "Jens", cantonCode: "BE" }, + { postalCode: "2575", placeName: "Gerolfingen", cantonCode: "BE" }, + { postalCode: "2575", placeName: "Hagneck", cantonCode: "BE" }, + { postalCode: "2575", placeName: "Täuffelen", cantonCode: "BE" }, + { postalCode: "2576", placeName: "Lüscherz", cantonCode: "BE" }, + { postalCode: "2577", placeName: "Siselen BE", cantonCode: "BE" }, + { postalCode: "2577", placeName: "Finsterhennen", cantonCode: "BE" }, + { postalCode: "3035", placeName: "Frieswil", cantonCode: "BE" }, + { postalCode: "3036", placeName: "Detligen", cantonCode: "BE" }, + { postalCode: "3053", placeName: "Lätti", cantonCode: "BE" }, + { postalCode: "3054", placeName: "Schüpfen", cantonCode: "BE" }, + { postalCode: "3225", placeName: "Müntschemier", cantonCode: "BE" }, + { postalCode: "3226", placeName: "Treiten", cantonCode: "BE" }, + { postalCode: "3232", placeName: "Ins", cantonCode: "BE" }, + { postalCode: "3233", placeName: "Tschugg", cantonCode: "BE" }, + { postalCode: "3234", placeName: "Vinelz", cantonCode: "BE" }, + { postalCode: "3235", placeName: "Erlach", cantonCode: "BE" }, + { postalCode: "3236", placeName: "Gampelen", cantonCode: "BE" }, + { postalCode: "3237", placeName: "Brüttelen", cantonCode: "BE" }, + { postalCode: "3238", placeName: "Gals", cantonCode: "BE" }, + { postalCode: "3250", placeName: "Lyss", cantonCode: "BE" }, + { postalCode: "3251", placeName: "Wengi b. Büren", cantonCode: "BE" }, + { postalCode: "3251", placeName: "Ruppoldsried", cantonCode: "BE" }, + { postalCode: "3252", placeName: "Worben", cantonCode: "BE" }, + { postalCode: "3255", placeName: "Rapperswil BE", cantonCode: "BE" }, + { postalCode: "3256", placeName: "Seewil", cantonCode: "BE" }, + { postalCode: "3256", placeName: "Dieterswil", cantonCode: "BE" }, + { postalCode: "3256", placeName: "Bangerten b. Dieterswil", cantonCode: "BE" }, + { postalCode: "3257", placeName: "Grossaffoltern", cantonCode: "BE" }, + { postalCode: "3257", placeName: "Ammerzwil BE", cantonCode: "BE" }, + { postalCode: "3262", placeName: "Suberg", cantonCode: "BE" }, + { postalCode: "3263", placeName: "Büetigen", cantonCode: "BE" }, + { postalCode: "3264", placeName: "Diessbach b. Büren", cantonCode: "BE" }, + { postalCode: "3266", placeName: "Wiler b. Seedorf", cantonCode: "BE" }, + { postalCode: "3267", placeName: "Seedorf BE", cantonCode: "BE" }, + { postalCode: "3268", placeName: "Lobsigen", cantonCode: "BE" }, + { postalCode: "3270", placeName: "Aarberg", cantonCode: "BE" }, + { postalCode: "3271", placeName: "Radelfingen b. Aarberg", cantonCode: "BE" }, + { postalCode: "3272", placeName: "Walperswil", cantonCode: "BE" }, + { postalCode: "3272", placeName: "Epsach", cantonCode: "BE" }, + { postalCode: "3273", placeName: "Kappelen", cantonCode: "BE" }, + { postalCode: "3274", placeName: "Merzligen", cantonCode: "BE" }, + { postalCode: "3274", placeName: "Hermrigen", cantonCode: "BE" }, + { postalCode: "3274", placeName: "Bühl b. Aarberg", cantonCode: "BE" }, + { postalCode: "3282", placeName: "Bargen BE", cantonCode: "BE" }, + { postalCode: "3283", placeName: "Kallnach", cantonCode: "BE" }, + { postalCode: "3283", placeName: "Niederried b. Kallnach", cantonCode: "BE" }, + { postalCode: "3292", placeName: "Busswil BE", cantonCode: "BE" }, + { postalCode: "3293", placeName: "Dotzigen", cantonCode: "BE" }, + { postalCode: "3294", placeName: "Meienried", cantonCode: "BE" }, + { postalCode: "3294", placeName: "Büren an der Aare", cantonCode: "BE" }, + { postalCode: "3295", placeName: "Rüti b. Büren", cantonCode: "BE" }, + { postalCode: "3296", placeName: "Arch", cantonCode: "BE" }, + { postalCode: "3297", placeName: "Leuzigen", cantonCode: "BE" }, + { postalCode: "3298", placeName: "Oberwil b. Büren", cantonCode: "BE" }, + { postalCode: "3360", placeName: "Herzogenbuchsee", cantonCode: "BE" }, + { postalCode: "3362", placeName: "Niederönz", cantonCode: "BE" }, + { postalCode: "3363", placeName: "Oberönz", cantonCode: "BE" }, + { postalCode: "3365", placeName: "Seeberg", cantonCode: "BE" }, + { postalCode: "3365", placeName: "Grasswil", cantonCode: "BE" }, + { postalCode: "3366", placeName: "Bettenhausen", cantonCode: "BE" }, + { postalCode: "3366", placeName: "Bollodingen", cantonCode: "BE" }, + { postalCode: "3367", placeName: "Ochlenberg", cantonCode: "BE" }, + { postalCode: "3367", placeName: "Thörigen", cantonCode: "BE" }, + { postalCode: "3368", placeName: "Bleienbach", cantonCode: "BE" }, + { postalCode: "3372", placeName: "Wanzwil", cantonCode: "BE" }, + { postalCode: "3373", placeName: "Röthenbach Herzogenbuchsee", cantonCode: "BE" }, + { postalCode: "3373", placeName: "Heimenhausen", cantonCode: "BE" }, + { postalCode: "3374", placeName: "Wangenried", cantonCode: "BE" }, + { postalCode: "3375", placeName: "Inkwil", cantonCode: "BE" }, + { postalCode: "3376", placeName: "Berken", cantonCode: "BE" }, + { postalCode: "3376", placeName: "Graben", cantonCode: "BE" }, + { postalCode: "3377", placeName: "Walliswil b. Wangen", cantonCode: "BE" }, + { postalCode: "3380", placeName: "Wangen an der Aare", cantonCode: "BE" }, + { postalCode: "3380", placeName: "Walliswil b. Niederbipp", cantonCode: "BE" }, + { postalCode: "3464", placeName: "Schmidigen-Mühleweg", cantonCode: "BE" }, + { postalCode: "3475", placeName: "Hermiswil", cantonCode: "BE" }, + { postalCode: "3475", placeName: "Riedtwil", cantonCode: "BE" }, + { postalCode: "3476", placeName: "Oschwand", cantonCode: "BE" }, + { postalCode: "4536", placeName: "Attiswil", cantonCode: "BE" }, + { postalCode: "4537", placeName: "Wiedlisbach", cantonCode: "BE" }, + { postalCode: "4538", placeName: "Oberbipp", cantonCode: "BE" }, + { postalCode: "4539", placeName: "Rumisberg", cantonCode: "BE" }, + { postalCode: "4539", placeName: "Farnern", cantonCode: "BE" }, + { postalCode: "4704", placeName: "Niederbipp", cantonCode: "BE" }, + { postalCode: "4704", placeName: "Wolfisberg", cantonCode: "BE" }, + { postalCode: "4900", placeName: "Langenthal", cantonCode: "BE" }, + { postalCode: "4901", placeName: "Langenthal", cantonCode: "BE" }, + { postalCode: "4911", placeName: "Schwarzhäusern", cantonCode: "BE" }, + { postalCode: "4912", placeName: "Aarwangen", cantonCode: "BE" }, + { postalCode: "4913", placeName: "Bannwil", cantonCode: "BE" }, + { postalCode: "4914", placeName: "Roggwil BE", cantonCode: "BE" }, + { postalCode: "4916", placeName: "Untersteckholz", cantonCode: "BE" }, + { postalCode: "4917", placeName: "Melchnau", cantonCode: "BE" }, + { postalCode: "4917", placeName: "Busswil b. Melchnau", cantonCode: "BE" }, + { postalCode: "4919", placeName: "Reisiswil", cantonCode: "BE" }, + { postalCode: "4922", placeName: "Thunstetten", cantonCode: "BE" }, + { postalCode: "4922", placeName: "Bützberg", cantonCode: "BE" }, + { postalCode: "4923", placeName: "Wynau", cantonCode: "BE" }, + { postalCode: "4924", placeName: "Obersteckholz", cantonCode: "BE" }, + { postalCode: "4932", placeName: "Lotzwil", cantonCode: "BE" }, + { postalCode: "4932", placeName: "Gutenburg", cantonCode: "BE" }, + { postalCode: "4933", placeName: "Rütschelen", cantonCode: "BE" }, + { postalCode: "4934", placeName: "Madiswil", cantonCode: "BE" }, + { postalCode: "4935", placeName: "Leimiswil", cantonCode: "BE" }, + { postalCode: "4936", placeName: "Kleindietwil", cantonCode: "BE" }, + { postalCode: "4937", placeName: "Ursenbach", cantonCode: "BE" }, + { postalCode: "4938", placeName: "Rohrbach", cantonCode: "BE" }, + { postalCode: "4938", placeName: "Rohrbachgraben", cantonCode: "BE" }, + { postalCode: "4942", placeName: "Walterswil BE", cantonCode: "BE" }, + { postalCode: "4943", placeName: "Oeschenbach", cantonCode: "BE" }, + { postalCode: "4944", placeName: "Auswil", cantonCode: "BE" }, + { postalCode: "4950", placeName: "Huttwil", cantonCode: "BE" }, + { postalCode: "4952", placeName: "Eriswil", cantonCode: "BE" }, + { postalCode: "4953", placeName: "Schwarzenbach (Huttwil)", cantonCode: "BE" }, + { postalCode: "4954", placeName: "Wyssachen", cantonCode: "BE" }, + { postalCode: "4955", placeName: "Gondiswil", cantonCode: "BE" }, + { postalCode: "3309", placeName: "Kernenried", cantonCode: "BE" }, + { postalCode: "3315", placeName: "Kräiligen", cantonCode: "BE" }, + { postalCode: "3315", placeName: "Bätterkinden", cantonCode: "BE" }, + { postalCode: "3324", placeName: "Hindelbank", cantonCode: "BE" }, + { postalCode: "3324", placeName: "Mötschwil", cantonCode: "BE" }, + { postalCode: "3325", placeName: "Hettiswil b. Hindelbank", cantonCode: "BE" }, + { postalCode: "3326", placeName: "Krauchthal", cantonCode: "BE" }, + { postalCode: "3400", placeName: "Burgdorf", cantonCode: "BE" }, + { postalCode: "3401", placeName: "Burgdorf", cantonCode: "BE" }, + { postalCode: "3412", placeName: "Heimiswil", cantonCode: "BE" }, + { postalCode: "3413", placeName: "Kaltacker", cantonCode: "BE" }, + { postalCode: "3414", placeName: "Oberburg", cantonCode: "BE" }, + { postalCode: "3415", placeName: "Schafhausen im Emmental", cantonCode: "BE" }, + { postalCode: "3415", placeName: "Rüegsauschachen", cantonCode: "BE" }, + { postalCode: "3415", placeName: "Hasle-Rüegsau", cantonCode: "BE" }, + { postalCode: "3415", placeName: "Hasle b. Burgdorf", cantonCode: "BE" }, + { postalCode: "3416", placeName: "Affoltern im Emmental", cantonCode: "BE" }, + { postalCode: "3417", placeName: "Rüegsau", cantonCode: "BE" }, + { postalCode: "3418", placeName: "Rüegsbach", cantonCode: "BE" }, + { postalCode: "3419", placeName: "Biembach im Emmental", cantonCode: "BE" }, + { postalCode: "3421", placeName: "Lyssach", cantonCode: "BE" }, + { postalCode: "3421", placeName: "Lyssach", cantonCode: "BE" }, + { postalCode: "3421", placeName: "Rüti b. Lyssach", cantonCode: "BE" }, + { postalCode: "3422", placeName: "Kirchberg BE", cantonCode: "BE" }, + { postalCode: "3422", placeName: "Rüdtligen", cantonCode: "BE" }, + { postalCode: "3422", placeName: "Alchenflüh", cantonCode: "BE" }, + { postalCode: "3423", placeName: "Ersigen", cantonCode: "BE" }, + { postalCode: "3424", placeName: "Niederösch", cantonCode: "BE" }, + { postalCode: "3424", placeName: "Oberösch", cantonCode: "BE" }, + { postalCode: "3425", placeName: "Willadingen", cantonCode: "BE" }, + { postalCode: "3425", placeName: "Koppigen", cantonCode: "BE" }, + { postalCode: "3426", placeName: "Aefligen", cantonCode: "BE" }, + { postalCode: "3427", placeName: "Utzenstorf", cantonCode: "BE" }, + { postalCode: "3428", placeName: "Wiler b. Utzenstorf", cantonCode: "BE" }, + { postalCode: "3429", placeName: "Hellsau", cantonCode: "BE" }, + { postalCode: "3429", placeName: "Höchstetten", cantonCode: "BE" }, + { postalCode: "3432", placeName: "Lützelflüh-Goldbach", cantonCode: "BE" }, + { postalCode: "3433", placeName: "Schwanden im Emmental", cantonCode: "BE" }, + { postalCode: "3435", placeName: "Ramsei", cantonCode: "BE" }, + { postalCode: "3436", placeName: "Zollbrück", cantonCode: "BE" }, + { postalCode: "3437", placeName: "Rüderswil", cantonCode: "BE" }, + { postalCode: "3438", placeName: "Lauperswil", cantonCode: "BE" }, + { postalCode: "3439", placeName: "Ranflüh", cantonCode: "BE" }, + { postalCode: "3452", placeName: "Grünenmatt", cantonCode: "BE" }, + { postalCode: "3453", placeName: "Heimisbach", cantonCode: "BE" }, + { postalCode: "3454", placeName: "Sumiswald", cantonCode: "BE" }, + { postalCode: "3455", placeName: "Grünen", cantonCode: "BE" }, + { postalCode: "3456", placeName: "Trachselwald", cantonCode: "BE" }, + { postalCode: "3457", placeName: "Wasen im Emmental", cantonCode: "BE" }, + { postalCode: "3462", placeName: "Weier im Emmental", cantonCode: "BE" }, + { postalCode: "3463", placeName: "Häusernmoos im Emmental", cantonCode: "BE" }, + { postalCode: "3465", placeName: "Dürrenroth", cantonCode: "BE" }, + { postalCode: "3472", placeName: "Rumendingen", cantonCode: "BE" }, + { postalCode: "3472", placeName: "Wynigen", cantonCode: "BE" }, + { postalCode: "3473", placeName: "Alchenstorf", cantonCode: "BE" }, + { postalCode: "3474", placeName: "Rüedisbach", cantonCode: "BE" }, + { postalCode: "3534", placeName: "Signau", cantonCode: "BE" }, + { postalCode: "3535", placeName: "Schüpbach", cantonCode: "BE" }, + { postalCode: "3536", placeName: "Aeschau", cantonCode: "BE" }, + { postalCode: "3537", placeName: "Eggiwil", cantonCode: "BE" }, + { postalCode: "3538", placeName: "Röthenbach im Emmental", cantonCode: "BE" }, + { postalCode: "3543", placeName: "Emmenmatt", cantonCode: "BE" }, + { postalCode: "3550", placeName: "Langnau im Emmental", cantonCode: "BE" }, + { postalCode: "3551", placeName: "Oberfrittenbach", cantonCode: "BE" }, + { postalCode: "3552", placeName: "Bärau", cantonCode: "BE" }, + { postalCode: "3553", placeName: "Gohl", cantonCode: "BE" }, + { postalCode: "3555", placeName: "Trubschachen", cantonCode: "BE" }, + { postalCode: "3556", placeName: "Trub", cantonCode: "BE" }, + { postalCode: "3557", placeName: "Fankhaus (Trub)", cantonCode: "BE" }, + { postalCode: "3618", placeName: "Süderen", cantonCode: "BE" }, + { postalCode: "4564", placeName: "Zielebach", cantonCode: "BE" }, + { postalCode: "6197", placeName: "Schangnau", cantonCode: "BE" }, + { postalCode: "1595", placeName: "Clavaleyres", cantonCode: "BE" }, + { postalCode: "1738", placeName: "Sangernboden", cantonCode: "BE" }, + { postalCode: "1797", placeName: "Münchenwiler", cantonCode: "BE" }, + { postalCode: "3000", placeName: "Bern 9", cantonCode: "BE" }, + { postalCode: "3000", placeName: "Bern 5", cantonCode: "BE" }, + { postalCode: "3000", placeName: "Bern 31", cantonCode: "BE" }, + { postalCode: "3000", placeName: "Bern 65", cantonCode: "BE" }, + { postalCode: "3000", placeName: "Bern 94", cantonCode: "BE" }, + { postalCode: "3000", placeName: "Bern 13", cantonCode: "BE" }, + { postalCode: "3000", placeName: "Bern 8", cantonCode: "BE" }, + { postalCode: "3000", placeName: "Bern 6", cantonCode: "BE" }, + { postalCode: "3000", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3000", placeName: "Bern 60 UPD", cantonCode: "BE" }, + { postalCode: "3000", placeName: "Bern 14", cantonCode: "BE" }, + { postalCode: "3000", placeName: "Bern 22", cantonCode: "BE" }, + { postalCode: "3000", placeName: "Bern 65 SBB", cantonCode: "BE" }, + { postalCode: "3000", placeName: "Bern 16", cantonCode: "BE" }, + { postalCode: "3000", placeName: "Bern 15", cantonCode: "BE" }, + { postalCode: "3001", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3002", placeName: "Bern PostFinance", cantonCode: "BE" }, + { postalCode: "3003", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3004", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3005", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3006", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3007", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3008", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3010", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3011", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3011", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3012", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3013", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3014", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3015", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3018", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3019", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3020", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3024", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3027", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3029", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3030", placeName: "Bern", cantonCode: "BE" }, + { postalCode: "3032", placeName: "Hinterkappelen", cantonCode: "BE" }, + { postalCode: "3033", placeName: "Wohlen b. Bern", cantonCode: "BE" }, + { postalCode: "3034", placeName: "Murzelen", cantonCode: "BE" }, + { postalCode: "3037", placeName: "Herrenschwanden", cantonCode: "BE" }, + { postalCode: "3038", placeName: "Kirchlindach", cantonCode: "BE" }, + { postalCode: "3039", placeName: "Bern PF OC", cantonCode: "BE" }, + { postalCode: "3039", placeName: "Bern PF Operations Center", cantonCode: "BE" }, + { postalCode: "3040", placeName: "Bern Verarb.zentr.", cantonCode: "BE" }, + { postalCode: "3040", placeName: "Bern Verarbeitungszentrum", cantonCode: "BE" }, + { postalCode: "3041", placeName: "Bern UBS", cantonCode: "BE" }, + { postalCode: "3042", placeName: "Ortschwaben", cantonCode: "BE" }, + { postalCode: "3043", placeName: "Uettligen", cantonCode: "BE" }, + { postalCode: "3044", placeName: "Innerberg", cantonCode: "BE" }, + { postalCode: "3045", placeName: "Meikirch", cantonCode: "BE" }, + { postalCode: "3046", placeName: "Wahlendorf", cantonCode: "BE" }, + { postalCode: "3047", placeName: "Bremgarten b. Bern", cantonCode: "BE" }, + { postalCode: "3048", placeName: "Worblaufen", cantonCode: "BE" }, + { postalCode: "3049", placeName: "Säriswil", cantonCode: "BE" }, + { postalCode: "3050", placeName: "Bern Swisscom", cantonCode: "BE" }, + { postalCode: "3052", placeName: "Zollikofen", cantonCode: "BE" }, + { postalCode: "3053", placeName: "Diemerswil", cantonCode: "BE" }, + { postalCode: "3053", placeName: "Münchenbuchsee", cantonCode: "BE" }, + { postalCode: "3053", placeName: "Wiggiswil", cantonCode: "BE" }, + { postalCode: "3053", placeName: "Deisswil b. Münchenbuchsee", cantonCode: "BE" }, + { postalCode: "3063", placeName: "Ittigen", cantonCode: "BE" }, + { postalCode: "3065", placeName: "Bolligen", cantonCode: "BE" }, + { postalCode: "3066", placeName: "Stettlen", cantonCode: "BE" }, + { postalCode: "3067", placeName: "Boll", cantonCode: "BE" }, + { postalCode: "3068", placeName: "Utzigen", cantonCode: "BE" }, + { postalCode: "3071", placeName: "Ostermundigen KATA", cantonCode: "BE" }, + { postalCode: "3072", placeName: "Ostermundigen 1", cantonCode: "BE" }, + { postalCode: "3072", placeName: "Ostermundigen", cantonCode: "BE" }, + { postalCode: "3073", placeName: "Gümligen", cantonCode: "BE" }, + { postalCode: "3074", placeName: "Muri b. Bern", cantonCode: "BE" }, + { postalCode: "3075", placeName: "Vielbringen b. Worb", cantonCode: "BE" }, + { postalCode: "3075", placeName: "Rüfenacht BE", cantonCode: "BE" }, + { postalCode: "3076", placeName: "Worb", cantonCode: "BE" }, + { postalCode: "3077", placeName: "Enggistein", cantonCode: "BE" }, + { postalCode: "3078", placeName: "Richigen", cantonCode: "BE" }, + { postalCode: "3082", placeName: "Schlosswil", cantonCode: "BE" }, + { postalCode: "3083", placeName: "Trimstein", cantonCode: "BE" }, + { postalCode: "3084", placeName: "Wabern", cantonCode: "BE" }, + { postalCode: "3085", placeName: "Wabern Weihnachten", cantonCode: "BE" }, + { postalCode: "3085", placeName: "Wabern 2 x Weihnachten", cantonCode: "BE" }, + { postalCode: "3086", placeName: "Englisberg", cantonCode: "BE" }, + { postalCode: "3086", placeName: "Zimmerwald", cantonCode: "BE" }, + { postalCode: "3087", placeName: "Niedermuhlern", cantonCode: "BE" }, + { postalCode: "3088", placeName: "Rüeggisberg", cantonCode: "BE" }, + { postalCode: "3088", placeName: "Oberbütschel", cantonCode: "BE" }, + { postalCode: "3089", placeName: "Hinterfultigen", cantonCode: "BE" }, + { postalCode: "3095", placeName: "Spiegel b. Bern", cantonCode: "BE" }, + { postalCode: "3096", placeName: "Oberbalm", cantonCode: "BE" }, + { postalCode: "3097", placeName: "Liebefeld", cantonCode: "BE" }, + { postalCode: "3098", placeName: "Schliern b. Köniz", cantonCode: "BE" }, + { postalCode: "3098", placeName: "Köniz", cantonCode: "BE" }, + { postalCode: "3099", placeName: "Rüti b. Riggisberg", cantonCode: "BE" }, + { postalCode: "3110", placeName: "Münsingen", cantonCode: "BE" }, + { postalCode: "3111", placeName: "Tägertschi", cantonCode: "BE" }, + { postalCode: "3112", placeName: "Allmendingen b. Bern", cantonCode: "BE" }, + { postalCode: "3113", placeName: "Rubigen", cantonCode: "BE" }, + { postalCode: "3114", placeName: "Wichtrach", cantonCode: "BE" }, + { postalCode: "3115", placeName: "Gerzensee", cantonCode: "BE" }, + { postalCode: "3116", placeName: "Noflen BE", cantonCode: "BE" }, + { postalCode: "3116", placeName: "Kirchdorf BE", cantonCode: "BE" }, + { postalCode: "3116", placeName: "Mühledorf BE", cantonCode: "BE" }, + { postalCode: "3122", placeName: "Kehrsatz", cantonCode: "BE" }, + { postalCode: "3123", placeName: "Belp", cantonCode: "BE" }, + { postalCode: "3124", placeName: "Belpberg", cantonCode: "BE" }, + { postalCode: "3125", placeName: "Toffen", cantonCode: "BE" }, + { postalCode: "3126", placeName: "Kaufdorf", cantonCode: "BE" }, + { postalCode: "3126", placeName: "Gelterfingen", cantonCode: "BE" }, + { postalCode: "3127", placeName: "Lohnstorf", cantonCode: "BE" }, + { postalCode: "3127", placeName: "Mühlethurnen", cantonCode: "BE" }, + { postalCode: "3128", placeName: "Kirchenthurnen", cantonCode: "BE" }, + { postalCode: "3128", placeName: "Rümligen", cantonCode: "BE" }, + { postalCode: "3132", placeName: "Riggisberg", cantonCode: "BE" }, + { postalCode: "3144", placeName: "Gasel", cantonCode: "BE" }, + { postalCode: "3145", placeName: "Niederscherli", cantonCode: "BE" }, + { postalCode: "3147", placeName: "Mittelhäusern", cantonCode: "BE" }, + { postalCode: "3148", placeName: "Lanzenhäusern", cantonCode: "BE" }, + { postalCode: "3150", placeName: "Schwarzenburg", cantonCode: "BE" }, + { postalCode: "3152", placeName: "Mamishaus", cantonCode: "BE" }, + { postalCode: "3153", placeName: "Rüschegg Gambach", cantonCode: "BE" }, + { postalCode: "3154", placeName: "Rüschegg Heubach", cantonCode: "BE" }, + { postalCode: "3155", placeName: "Helgisried-Rohrbach", cantonCode: "BE" }, + { postalCode: "3156", placeName: "Riffenmatt", cantonCode: "BE" }, + { postalCode: "3157", placeName: "Milken", cantonCode: "BE" }, + { postalCode: "3158", placeName: "Guggisberg", cantonCode: "BE" }, + { postalCode: "3159", placeName: "Riedstätt", cantonCode: "BE" }, + { postalCode: "3172", placeName: "Niederwangen b. Bern", cantonCode: "BE" }, + { postalCode: "3173", placeName: "Oberwangen b. Bern", cantonCode: "BE" }, + { postalCode: "3174", placeName: "Thörishaus", cantonCode: "BE" }, + { postalCode: "3176", placeName: "Neuenegg", cantonCode: "BE" }, + { postalCode: "3177", placeName: "Laupen BE", cantonCode: "BE" }, + { postalCode: "3179", placeName: "Kriechenwil", cantonCode: "BE" }, + { postalCode: "3183", placeName: "Albligen", cantonCode: "BE" }, + { postalCode: "3202", placeName: "Frauenkappelen", cantonCode: "BE" }, + { postalCode: "3203", placeName: "Mühleberg", cantonCode: "BE" }, + { postalCode: "3204", placeName: "Rosshäusern", cantonCode: "BE" }, + { postalCode: "3205", placeName: "Gümmenen", cantonCode: "BE" }, + { postalCode: "3206", placeName: "Ferenbalm", cantonCode: "BE" }, + { postalCode: "3206", placeName: "Gammen", cantonCode: "BE" }, + { postalCode: "3206", placeName: "Biberen", cantonCode: "BE" }, + { postalCode: "3206", placeName: "Rizenbach", cantonCode: "BE" }, + { postalCode: "3207", placeName: "Wileroltigen", cantonCode: "BE" }, + { postalCode: "3207", placeName: "Golaten", cantonCode: "BE" }, + { postalCode: "3208", placeName: "Gurbrü", cantonCode: "BE" }, + { postalCode: "3302", placeName: "Moosseedorf", cantonCode: "BE" }, + { postalCode: "3303", placeName: "Jegenstorf", cantonCode: "BE" }, + { postalCode: "3303", placeName: "Münchringen", cantonCode: "BE" }, + { postalCode: "3303", placeName: "Zuzwil BE", cantonCode: "BE" }, + { postalCode: "3303", placeName: "Ballmoos", cantonCode: "BE" }, + { postalCode: "3305", placeName: "Iffwil", cantonCode: "BE" }, + { postalCode: "3305", placeName: "Scheunen", cantonCode: "BE" }, + { postalCode: "3306", placeName: "Etzelkofen", cantonCode: "BE" }, + { postalCode: "3308", placeName: "Grafenried", cantonCode: "BE" }, + { postalCode: "3309", placeName: "Zauggenried", cantonCode: "BE" }, + { postalCode: "3312", placeName: "Fraubrunnen", cantonCode: "BE" }, + { postalCode: "3313", placeName: "Büren zum Hof", cantonCode: "BE" }, + { postalCode: "3314", placeName: "Schalunen", cantonCode: "BE" }, + { postalCode: "3317", placeName: "Limpach", cantonCode: "BE" }, + { postalCode: "3317", placeName: "Mülchi", cantonCode: "BE" }, + { postalCode: "3321", placeName: "Schönbühl Einkaufszentrum", cantonCode: "BE" }, + { postalCode: "3321", placeName: "Schönbühl EKZ", cantonCode: "BE" }, + { postalCode: "3322", placeName: "Urtenen-Schönbühl", cantonCode: "BE" }, + { postalCode: "3322", placeName: "Mattstetten", cantonCode: "BE" }, + { postalCode: "3323", placeName: "Bäriswil BE", cantonCode: "BE" }, + { postalCode: "3434", placeName: "Landiswil", cantonCode: "BE" }, + { postalCode: "3434", placeName: "Obergoldbach", cantonCode: "BE" }, + { postalCode: "3503", placeName: "Gysenstein", cantonCode: "BE" }, + { postalCode: "3504", placeName: "Oberhünigen", cantonCode: "BE" }, + { postalCode: "3504", placeName: "Niederhünigen", cantonCode: "BE" }, + { postalCode: "3506", placeName: "Grosshöchstetten", cantonCode: "BE" }, + { postalCode: "3507", placeName: "Biglen", cantonCode: "BE" }, + { postalCode: "3508", placeName: "Arni BE", cantonCode: "BE" }, + { postalCode: "3510", placeName: "Häutligen", cantonCode: "BE" }, + { postalCode: "3510", placeName: "Konolfingen", cantonCode: "BE" }, + { postalCode: "3510", placeName: "Freimettigen", cantonCode: "BE" }, + { postalCode: "3512", placeName: "Walkringen", cantonCode: "BE" }, + { postalCode: "3513", placeName: "Bigenthal", cantonCode: "BE" }, + { postalCode: "3531", placeName: "Oberthal", cantonCode: "BE" }, + { postalCode: "3532", placeName: "Zäziwil", cantonCode: "BE" }, + { postalCode: "3532", placeName: "Mirchel", cantonCode: "BE" }, + { postalCode: "3533", placeName: "Bowil", cantonCode: "BE" }, + { postalCode: "3629", placeName: "Kiesen", cantonCode: "BE" }, + { postalCode: "3629", placeName: "Jaberg", cantonCode: "BE" }, + { postalCode: "3629", placeName: "Oppligen", cantonCode: "BE" }, + { postalCode: "3671", placeName: "Herbligen", cantonCode: "BE" }, + { postalCode: "3671", placeName: "Brenzikofen", cantonCode: "BE" }, + { postalCode: "3672", placeName: "Oberdiessbach", cantonCode: "BE" }, + { postalCode: "3672", placeName: "Aeschlen b. Oberdiessbach", cantonCode: "BE" }, + { postalCode: "3673", placeName: "Linden", cantonCode: "BE" }, + { postalCode: "3674", placeName: "Bleiken b. Oberdiessbach", cantonCode: "BE" }, + { postalCode: "3600", placeName: "Thun", cantonCode: "BE" }, + { postalCode: "3602", placeName: "Thun", cantonCode: "BE" }, + { postalCode: "3603", placeName: "Thun", cantonCode: "BE" }, + { postalCode: "3604", placeName: "Thun", cantonCode: "BE" }, + { postalCode: "3607", placeName: "Thun", cantonCode: "BE" }, + { postalCode: "3608", placeName: "Thun", cantonCode: "BE" }, + { postalCode: "3609", placeName: "Thun", cantonCode: "BE" }, + { postalCode: "3612", placeName: "Steffisburg", cantonCode: "BE" }, + { postalCode: "3613", placeName: "Steffisburg", cantonCode: "BE" }, + { postalCode: "3614", placeName: "Unterlangenegg", cantonCode: "BE" }, + { postalCode: "3615", placeName: "Heimenschwand", cantonCode: "BE" }, + { postalCode: "3616", placeName: "Schwarzenegg", cantonCode: "BE" }, + { postalCode: "3617", placeName: "Fahrni b. Thun", cantonCode: "BE" }, + { postalCode: "3619", placeName: "Eriz", cantonCode: "BE" }, + { postalCode: "3619", placeName: "Innereriz", cantonCode: "BE" }, + { postalCode: "3622", placeName: "Homberg b. Thun", cantonCode: "BE" }, + { postalCode: "3623", placeName: "Horrenbach", cantonCode: "BE" }, + { postalCode: "3623", placeName: "Teuffenthal b. Thun", cantonCode: "BE" }, + { postalCode: "3623", placeName: "Buchen BE", cantonCode: "BE" }, + { postalCode: "3624", placeName: "Schwendibach", cantonCode: "BE" }, + { postalCode: "3624", placeName: "Goldiwil (Thun)", cantonCode: "BE" }, + { postalCode: "3625", placeName: "Heiligenschwendi", cantonCode: "BE" }, + { postalCode: "3626", placeName: "Hünibach", cantonCode: "BE" }, + { postalCode: "3627", placeName: "Heimberg", cantonCode: "BE" }, + { postalCode: "3628", placeName: "Uttigen", cantonCode: "BE" }, + { postalCode: "3631", placeName: "Höfen b. Thun", cantonCode: "BE" }, + { postalCode: "3632", placeName: "Niederstocken", cantonCode: "BE" }, + { postalCode: "3632", placeName: "Oberstocken", cantonCode: "BE" }, + { postalCode: "3633", placeName: "Amsoldingen", cantonCode: "BE" }, + { postalCode: "3634", placeName: "Thierachern", cantonCode: "BE" }, + { postalCode: "3635", placeName: "Uebeschi", cantonCode: "BE" }, + { postalCode: "3636", placeName: "Längenbühl", cantonCode: "BE" }, + { postalCode: "3636", placeName: "Forst b. Längenbühl", cantonCode: "BE" }, + { postalCode: "3638", placeName: "Pohlern", cantonCode: "BE" }, + { postalCode: "3638", placeName: "Blumenstein", cantonCode: "BE" }, + { postalCode: "3645", placeName: "Zwieselberg", cantonCode: "BE" }, + { postalCode: "3647", placeName: "Reutigen", cantonCode: "BE" }, + { postalCode: "3652", placeName: "Hilterfingen", cantonCode: "BE" }, + { postalCode: "3653", placeName: "Oberhofen am Thunersee", cantonCode: "BE" }, + { postalCode: "3654", placeName: "Gunten", cantonCode: "BE" }, + { postalCode: "3655", placeName: "Sigriswil", cantonCode: "BE" }, + { postalCode: "3656", placeName: "Tschingel ob Gunten", cantonCode: "BE" }, + { postalCode: "3656", placeName: "Aeschlen ob Gunten", cantonCode: "BE" }, + { postalCode: "3656", placeName: "Ringoldswil", cantonCode: "BE" }, + { postalCode: "3657", placeName: "Schwanden (Sigriswil)", cantonCode: "BE" }, + { postalCode: "3658", placeName: "Merligen", cantonCode: "BE" }, + { postalCode: "3661", placeName: "Uetendorf", cantonCode: "BE" }, + { postalCode: "3662", placeName: "Seftigen", cantonCode: "BE" }, + { postalCode: "3663", placeName: "Gurzelen", cantonCode: "BE" }, + { postalCode: "3664", placeName: "Burgistein", cantonCode: "BE" }, + { postalCode: "3665", placeName: "Wattenwil", cantonCode: "BE" }, + { postalCode: "1657", placeName: "Abländschen", cantonCode: "BE" }, + { postalCode: "3766", placeName: "Boltigen", cantonCode: "BE" }, + { postalCode: "3770", placeName: "Zweisimmen", cantonCode: "BE" }, + { postalCode: "3771", placeName: "Blankenburg", cantonCode: "BE" }, + { postalCode: "3772", placeName: "St. Stephan", cantonCode: "BE" }, + { postalCode: "3773", placeName: "Matten (St. Stephan)", cantonCode: "BE" }, + { postalCode: "3775", placeName: "Lenk im Simmental", cantonCode: "BE" }, + { postalCode: "3776", placeName: "Oeschseite", cantonCode: "BE" }, + { postalCode: "3777", placeName: "Saanenmöser", cantonCode: "BE" }, + { postalCode: "3778", placeName: "Schönried", cantonCode: "BE" }, + { postalCode: "3780", placeName: "Gstaad", cantonCode: "BE" }, + { postalCode: "3781", placeName: "Turbach", cantonCode: "BE" }, + { postalCode: "3782", placeName: "Lauenen b. Gstaad", cantonCode: "BE" }, + { postalCode: "3783", placeName: "Grund b. Gstaad", cantonCode: "BE" }, + { postalCode: "3784", placeName: "Feutersoey", cantonCode: "BE" }, + { postalCode: "3785", placeName: "Gsteig b. Gstaad", cantonCode: "BE" }, + { postalCode: "3792", placeName: "Saanen", cantonCode: "BE" }, + { postalCode: "3645", placeName: "Gwatt (Thun)", cantonCode: "BE" }, + { postalCode: "3646", placeName: "Einigen", cantonCode: "BE" }, + { postalCode: "3700", placeName: "Spiez", cantonCode: "BE" }, + { postalCode: "3702", placeName: "Hondrich", cantonCode: "BE" }, + { postalCode: "3703", placeName: "Aeschiried", cantonCode: "BE" }, + { postalCode: "3703", placeName: "Aeschi b. Spiez", cantonCode: "BE" }, + { postalCode: "3704", placeName: "Krattigen", cantonCode: "BE" }, + { postalCode: "3705", placeName: "Faulensee", cantonCode: "BE" }, + { postalCode: "3711", placeName: "Mülenen", cantonCode: "BE" }, + { postalCode: "3711", placeName: "Emdthal", cantonCode: "BE" }, + { postalCode: "3713", placeName: "Reichenbach im Kandertal", cantonCode: "BE" }, + { postalCode: "3714", placeName: "Wengi b. Frutigen", cantonCode: "BE" }, + { postalCode: "3714", placeName: "Frutigen", cantonCode: "BE" }, + { postalCode: "3715", placeName: "Adelboden", cantonCode: "BE" }, + { postalCode: "3716", placeName: "Kandergrund", cantonCode: "BE" }, + { postalCode: "3717", placeName: "Blausee-Mitholz", cantonCode: "BE" }, + { postalCode: "3718", placeName: "Kandersteg", cantonCode: "BE" }, + { postalCode: "3722", placeName: "Scharnachtal", cantonCode: "BE" }, + { postalCode: "3723", placeName: "Kiental", cantonCode: "BE" }, + { postalCode: "3724", placeName: "Ried (Frutigen)", cantonCode: "BE" }, + { postalCode: "3725", placeName: "Achseten", cantonCode: "BE" }, + { postalCode: "3752", placeName: "Wimmis", cantonCode: "BE" }, + { postalCode: "3753", placeName: "Oey", cantonCode: "BE" }, + { postalCode: "3754", placeName: "Diemtigen", cantonCode: "BE" }, + { postalCode: "3755", placeName: "Horboden", cantonCode: "BE" }, + { postalCode: "3756", placeName: "Zwischenflüh", cantonCode: "BE" }, + { postalCode: "3757", placeName: "Schwenden im Diemtigtal", cantonCode: "BE" }, + { postalCode: "3758", placeName: "Latterbach", cantonCode: "BE" }, + { postalCode: "3762", placeName: "Erlenbach im Simmental", cantonCode: "BE" }, + { postalCode: "3763", placeName: "Därstetten", cantonCode: "BE" }, + { postalCode: "3764", placeName: "Weissenburg", cantonCode: "BE" }, + { postalCode: "3765", placeName: "Oberwil im Simmental", cantonCode: "BE" }, + { postalCode: "3706", placeName: "Leissigen", cantonCode: "BE" }, + { postalCode: "3707", placeName: "Därligen", cantonCode: "BE" }, + { postalCode: "3800", placeName: "Sundlauenen", cantonCode: "BE" }, + { postalCode: "3800", placeName: "Interlaken", cantonCode: "BE" }, + { postalCode: "3800", placeName: "Unterseen", cantonCode: "BE" }, + { postalCode: "3800", placeName: "Interlaken", cantonCode: "BE" }, + { postalCode: "3800", placeName: "Matten b. Interlaken", cantonCode: "BE" }, + { postalCode: "3802", placeName: "Interlaken Ost", cantonCode: "BE" }, + { postalCode: "3803", placeName: "Beatenberg", cantonCode: "BE" }, + { postalCode: "3804", placeName: "Habkern", cantonCode: "BE" }, + { postalCode: "3805", placeName: "Goldswil b. Interlaken", cantonCode: "BE" }, + { postalCode: "3806", placeName: "Bönigen b. Interlaken", cantonCode: "BE" }, + { postalCode: "3807", placeName: "Iseltwald", cantonCode: "BE" }, + { postalCode: "3812", placeName: "Wilderswil", cantonCode: "BE" }, + { postalCode: "3813", placeName: "Saxeten", cantonCode: "BE" }, + { postalCode: "3814", placeName: "Gsteigwiler", cantonCode: "BE" }, + { postalCode: "3815", placeName: "Gündlischwand", cantonCode: "BE" }, + { postalCode: "3815", placeName: "Zweilütschinen", cantonCode: "BE" }, + { postalCode: "3816", placeName: "Lütschental", cantonCode: "BE" }, + { postalCode: "3816", placeName: "Burglauenen", cantonCode: "BE" }, + { postalCode: "3818", placeName: "Grindelwald", cantonCode: "BE" }, + { postalCode: "3822", placeName: "Isenfluh", cantonCode: "BE" }, + { postalCode: "3822", placeName: "Lauterbrunnen", cantonCode: "BE" }, + { postalCode: "3823", placeName: "Wengen", cantonCode: "BE" }, + { postalCode: "3823", placeName: "Eigergletscher", cantonCode: "BE" }, + { postalCode: "3823", placeName: "Kleine Scheidegg", cantonCode: "BE" }, + { postalCode: "3824", placeName: "Stechelberg", cantonCode: "BE" }, + { postalCode: "3825", placeName: "Mürren", cantonCode: "BE" }, + { postalCode: "3826", placeName: "Gimmelwald", cantonCode: "BE" }, + { postalCode: "3852", placeName: "Ringgenberg BE", cantonCode: "BE" }, + { postalCode: "3853", placeName: "Niederried b. Interlaken", cantonCode: "BE" }, + { postalCode: "3854", placeName: "Oberried am Brienzersee", cantonCode: "BE" }, + { postalCode: "3855", placeName: "Brienz BE", cantonCode: "BE" }, + { postalCode: "3855", placeName: "Axalp", cantonCode: "BE" }, + { postalCode: "3855", placeName: "Schwanden b. Brienz", cantonCode: "BE" }, + { postalCode: "3856", placeName: "Brienzwiler", cantonCode: "BE" }, + { postalCode: "3857", placeName: "Unterbach BE", cantonCode: "BE" }, + { postalCode: "3858", placeName: "Hofstetten b. Brienz", cantonCode: "BE" }, + { postalCode: "3860", placeName: "Rosenlaui", cantonCode: "BE" }, + { postalCode: "3860", placeName: "Brünig", cantonCode: "BE" }, + { postalCode: "3860", placeName: "Meiringen", cantonCode: "BE" }, + { postalCode: "3860", placeName: "Schattenhalb", cantonCode: "BE" }, + { postalCode: "3862", placeName: "Innertkirchen", cantonCode: "BE" }, + { postalCode: "3863", placeName: "Gadmen", cantonCode: "BE" }, + { postalCode: "3864", placeName: "Guttannen", cantonCode: "BE" }, + { postalCode: "6083", placeName: "Hasliberg Hohfluh", cantonCode: "BE" }, + { postalCode: "6084", placeName: "Hasliberg Wasserwendi", cantonCode: "BE" }, + { postalCode: "6085", placeName: "Hasliberg Goldern", cantonCode: "BE" }, + { postalCode: "6086", placeName: "Hasliberg Reuti", cantonCode: "BE" }, + { postalCode: "4040", placeName: "Basel", cantonCode: "BL" }, + { postalCode: "4042", placeName: "Basel PF OC", cantonCode: "BL" }, + { postalCode: "4042", placeName: "Basel PF Operations Center", cantonCode: "BL" }, + { postalCode: "4101", placeName: "Bruderholz", cantonCode: "BL" }, + { postalCode: "4102", placeName: "Binningen 1", cantonCode: "BL" }, + { postalCode: "4102", placeName: "Binningen", cantonCode: "BL" }, + { postalCode: "4103", placeName: "Bottmingen", cantonCode: "BL" }, + { postalCode: "4104", placeName: "Oberwil BL", cantonCode: "BL" }, + { postalCode: "4105", placeName: "Biel-Benken BL", cantonCode: "BL" }, + { postalCode: "4106", placeName: "Therwil", cantonCode: "BL" }, + { postalCode: "4107", placeName: "Ettingen", cantonCode: "BL" }, + { postalCode: "4123", placeName: "Allschwil 1", cantonCode: "BL" }, + { postalCode: "4123", placeName: "Allschwil", cantonCode: "BL" }, + { postalCode: "4124", placeName: "Schönenbuch", cantonCode: "BL" }, + { postalCode: "4127", placeName: "Birsfelden", cantonCode: "BL" }, + { postalCode: "4132", placeName: "Muttenz 1", cantonCode: "BL" }, + { postalCode: "4132", placeName: "Muttenz", cantonCode: "BL" }, + { postalCode: "4142", placeName: "Münchenstein 1", cantonCode: "BL" }, + { postalCode: "4142", placeName: "Münchenstein", cantonCode: "BL" }, + { postalCode: "4144", placeName: "Arlesheim", cantonCode: "BL" }, + { postalCode: "4147", placeName: "Aesch BL", cantonCode: "BL" }, + { postalCode: "4148", placeName: "Pfeffingen", cantonCode: "BL" }, + { postalCode: "4153", placeName: "Reinach BL", cantonCode: "BL" }, + { postalCode: "4153", placeName: "Reinach BL 1", cantonCode: "BL" }, + { postalCode: "2814", placeName: "Roggenburg", cantonCode: "BL" }, + { postalCode: "4117", placeName: "Burg im Leimental", cantonCode: "BL" }, + { postalCode: "4202", placeName: "Duggingen", cantonCode: "BL" }, + { postalCode: "4203", placeName: "Grellingen", cantonCode: "BL" }, + { postalCode: "4222", placeName: "Zwingen", cantonCode: "BL" }, + { postalCode: "4223", placeName: "Blauen", cantonCode: "BL" }, + { postalCode: "4224", placeName: "Nenzlingen", cantonCode: "BL" }, + { postalCode: "4225", placeName: "Brislach", cantonCode: "BL" }, + { postalCode: "4242", placeName: "Laufen", cantonCode: "BL" }, + { postalCode: "4243", placeName: "Dittingen", cantonCode: "BL" }, + { postalCode: "4244", placeName: "Röschenz", cantonCode: "BL" }, + { postalCode: "4246", placeName: "Wahlen b. Laufen", cantonCode: "BL" }, + { postalCode: "4253", placeName: "Liesberg", cantonCode: "BL" }, + { postalCode: "4254", placeName: "Liesberg Dorf", cantonCode: "BL" }, + { postalCode: "4133", placeName: "Pratteln", cantonCode: "BL" }, + { postalCode: "4133", placeName: "Pratteln 1", cantonCode: "BL" }, + { postalCode: "4302", placeName: "Augst BL", cantonCode: "BL" }, + { postalCode: "4304", placeName: "Giebenach", cantonCode: "BL" }, + { postalCode: "4402", placeName: "Frenkendorf", cantonCode: "BL" }, + { postalCode: "4410", placeName: "Liestal", cantonCode: "BL" }, + { postalCode: "4411", placeName: "Seltisberg", cantonCode: "BL" }, + { postalCode: "4414", placeName: "Füllinsdorf", cantonCode: "BL" }, + { postalCode: "4415", placeName: "Lausen", cantonCode: "BL" }, + { postalCode: "4416", placeName: "Bubendorf", cantonCode: "BL" }, + { postalCode: "4417", placeName: "Ziefen", cantonCode: "BL" }, + { postalCode: "4419", placeName: "Lupsingen", cantonCode: "BL" }, + { postalCode: "4422", placeName: "Arisdorf", cantonCode: "BL" }, + { postalCode: "4423", placeName: "Hersberg", cantonCode: "BL" }, + { postalCode: "4433", placeName: "Ramlinsburg", cantonCode: "BL" }, + { postalCode: "4441", placeName: "Thürnen", cantonCode: "BL" }, + { postalCode: "4442", placeName: "Diepflingen", cantonCode: "BL" }, + { postalCode: "4443", placeName: "Wittinsburg", cantonCode: "BL" }, + { postalCode: "4444", placeName: "Rümlingen", cantonCode: "BL" }, + { postalCode: "4445", placeName: "Häfelfingen", cantonCode: "BL" }, + { postalCode: "4446", placeName: "Buckten", cantonCode: "BL" }, + { postalCode: "4447", placeName: "Känerkinden", cantonCode: "BL" }, + { postalCode: "4448", placeName: "Läufelfingen", cantonCode: "BL" }, + { postalCode: "4450", placeName: "Sissach", cantonCode: "BL" }, + { postalCode: "4451", placeName: "Wintersingen", cantonCode: "BL" }, + { postalCode: "4452", placeName: "Itingen", cantonCode: "BL" }, + { postalCode: "4453", placeName: "Nusshof", cantonCode: "BL" }, + { postalCode: "4455", placeName: "Zunzgen", cantonCode: "BL" }, + { postalCode: "4456", placeName: "Tenniken", cantonCode: "BL" }, + { postalCode: "4460", placeName: "Gelterkinden", cantonCode: "BL" }, + { postalCode: "4461", placeName: "Böckten", cantonCode: "BL" }, + { postalCode: "4462", placeName: "Rickenbach BL", cantonCode: "BL" }, + { postalCode: "4463", placeName: "Buus", cantonCode: "BL" }, + { postalCode: "4464", placeName: "Maisprach", cantonCode: "BL" }, + { postalCode: "4465", placeName: "Hemmiken", cantonCode: "BL" }, + { postalCode: "4466", placeName: "Ormalingen", cantonCode: "BL" }, + { postalCode: "4467", placeName: "Rothenfluh", cantonCode: "BL" }, + { postalCode: "4469", placeName: "Anwil", cantonCode: "BL" }, + { postalCode: "4492", placeName: "Tecknau", cantonCode: "BL" }, + { postalCode: "4493", placeName: "Wenslingen", cantonCode: "BL" }, + { postalCode: "4494", placeName: "Oltingen", cantonCode: "BL" }, + { postalCode: "4495", placeName: "Zeglingen", cantonCode: "BL" }, + { postalCode: "4496", placeName: "Kilchberg BL", cantonCode: "BL" }, + { postalCode: "4497", placeName: "Rünenberg", cantonCode: "BL" }, + { postalCode: "4207", placeName: "Bretzwil", cantonCode: "BL" }, + { postalCode: "4418", placeName: "Reigoldswil", cantonCode: "BL" }, + { postalCode: "4424", placeName: "Arboldswil", cantonCode: "BL" }, + { postalCode: "4425", placeName: "Titterten", cantonCode: "BL" }, + { postalCode: "4426", placeName: "Lauwil", cantonCode: "BL" }, + { postalCode: "4431", placeName: "Bennwil", cantonCode: "BL" }, + { postalCode: "4432", placeName: "Lampenberg", cantonCode: "BL" }, + { postalCode: "4434", placeName: "Hölstein", cantonCode: "BL" }, + { postalCode: "4435", placeName: "Niederdorf", cantonCode: "BL" }, + { postalCode: "4436", placeName: "Oberdorf BL", cantonCode: "BL" }, + { postalCode: "4436", placeName: "Liedertswil", cantonCode: "BL" }, + { postalCode: "4437", placeName: "Waldenburg", cantonCode: "BL" }, + { postalCode: "4438", placeName: "Langenbruck", cantonCode: "BL" }, + { postalCode: "4457", placeName: "Diegten", cantonCode: "BL" }, + { postalCode: "4458", placeName: "Eptingen", cantonCode: "BL" }, + { postalCode: "4000", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4001", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4002", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4005", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4009", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4010", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4018", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4019", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4020", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4030", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4031", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4039", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4039", placeName: "Basel SSF", cantonCode: "BS" }, + { postalCode: "4041", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4041", placeName: "Basel UBS", cantonCode: "BS" }, + { postalCode: "4051", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4052", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4052", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4053", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4054", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4055", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4056", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4057", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4058", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4059", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4070", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4075", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4089", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4089", placeName: "Basel SPI GLS", cantonCode: "BS" }, + { postalCode: "4089", placeName: "Basel SPILOG", cantonCode: "BS" }, + { postalCode: "4089", placeName: "Basel SPI GLS Retour", cantonCode: "BS" }, + { postalCode: "4091", placeName: "Basel", cantonCode: "BS" }, + { postalCode: "4125", placeName: "Riehen", cantonCode: "BS" }, + { postalCode: "4125", placeName: "Riehen 1", cantonCode: "BS" }, + { postalCode: "4126", placeName: "Bettingen", cantonCode: "BS" }, + { postalCode: "1410", placeName: "Prévondavaux", cantonCode: "FR" }, + { postalCode: "1468", placeName: "Cheyres", cantonCode: "FR" }, + { postalCode: "1470", placeName: "Bollion", cantonCode: "FR" }, + { postalCode: "1470", placeName: "Seiry", cantonCode: "FR" }, + { postalCode: "1470", placeName: "Lully FR", cantonCode: "FR" }, + { postalCode: "1470", placeName: "Estavayer-le-Lac", cantonCode: "FR" }, + { postalCode: "1473", placeName: "Font", cantonCode: "FR" }, + { postalCode: "1473", placeName: "Châtillon FR", cantonCode: "FR" }, + { postalCode: "1474", placeName: "Châbles FR", cantonCode: "FR" }, + { postalCode: "1475", placeName: "Forel FR", cantonCode: "FR" }, + { postalCode: "1475", placeName: "Montbrelloz", cantonCode: "FR" }, + { postalCode: "1475", placeName: "Autavaux", cantonCode: "FR" }, + { postalCode: "1482", placeName: "Cugy FR", cantonCode: "FR" }, + { postalCode: "1483", placeName: "Vesin", cantonCode: "FR" }, + { postalCode: "1483", placeName: "Frasses", cantonCode: "FR" }, + { postalCode: "1483", placeName: "Montet (Broye)", cantonCode: "FR" }, + { postalCode: "1484", placeName: "Aumont", cantonCode: "FR" }, + { postalCode: "1484", placeName: "Granges-de-Vesin", cantonCode: "FR" }, + { postalCode: "1485", placeName: "Nuvilly", cantonCode: "FR" }, + { postalCode: "1486", placeName: "Vuissens", cantonCode: "FR" }, + { postalCode: "1489", placeName: "Murist", cantonCode: "FR" }, + { postalCode: "1527", placeName: "Villeneuve FR", cantonCode: "FR" }, + { postalCode: "1528", placeName: "Praratoud", cantonCode: "FR" }, + { postalCode: "1528", placeName: "Surpierre", cantonCode: "FR" }, + { postalCode: "1529", placeName: "Cheiry", cantonCode: "FR" }, + { postalCode: "1532", placeName: "Fétigny", cantonCode: "FR" }, + { postalCode: "1533", placeName: "Ménières", cantonCode: "FR" }, + { postalCode: "1534", placeName: "Chapelle (Broye)", cantonCode: "FR" }, + { postalCode: "1541", placeName: "Morens FR", cantonCode: "FR" }, + { postalCode: "1541", placeName: "Sévaz", cantonCode: "FR" }, + { postalCode: "1541", placeName: "Bussy FR", cantonCode: "FR" }, + { postalCode: "1542", placeName: "Rueyres-les-Prés", cantonCode: "FR" }, + { postalCode: "1544", placeName: "Gletterens", cantonCode: "FR" }, + { postalCode: "1563", placeName: "Dompierre FR", cantonCode: "FR" }, + { postalCode: "1564", placeName: "Domdidier", cantonCode: "FR" }, + { postalCode: "1565", placeName: "Vallon", cantonCode: "FR" }, + { postalCode: "1566", placeName: "St-Aubin FR", cantonCode: "FR" }, + { postalCode: "1566", placeName: "Les Friques", cantonCode: "FR" }, + { postalCode: "1567", placeName: "Delley", cantonCode: "FR" }, + { postalCode: "1568", placeName: "Portalban", cantonCode: "FR" }, + { postalCode: "1773", placeName: "Russy", cantonCode: "FR" }, + { postalCode: "1773", placeName: "Chandon", cantonCode: "FR" }, + { postalCode: "1773", placeName: "Léchelles", cantonCode: "FR" }, + { postalCode: "1774", placeName: "Cousset", cantonCode: "FR" }, + { postalCode: "1774", placeName: "Montagny-les-Monts", cantonCode: "FR" }, + { postalCode: "1774", placeName: "Cousset", cantonCode: "FR" }, + { postalCode: "1775", placeName: "Mannens", cantonCode: "FR" }, + { postalCode: "1775", placeName: "Grandsivaz", cantonCode: "FR" }, + { postalCode: "1776", placeName: "Montagny-la-Ville", cantonCode: "FR" }, + { postalCode: "1553", placeName: "Châtonnaye", cantonCode: "FR" }, + { postalCode: "1608", placeName: "Chapelle (Glâne)", cantonCode: "FR" }, + { postalCode: "1670", placeName: "Bionnens", cantonCode: "FR" }, + { postalCode: "1670", placeName: "Ursy", cantonCode: "FR" }, + { postalCode: "1670", placeName: "Esmonts", cantonCode: "FR" }, + { postalCode: "1673", placeName: "Ecublens FR", cantonCode: "FR" }, + { postalCode: "1673", placeName: "Gillarens", cantonCode: "FR" }, + { postalCode: "1673", placeName: "Promasens", cantonCode: "FR" }, + { postalCode: "1673", placeName: "Rue", cantonCode: "FR" }, + { postalCode: "1673", placeName: "Auboranges", cantonCode: "FR" }, + { postalCode: "1674", placeName: "Montet (Glâne)", cantonCode: "FR" }, + { postalCode: "1674", placeName: "Morlens", cantonCode: "FR" }, + { postalCode: "1674", placeName: "Vuarmarens", cantonCode: "FR" }, + { postalCode: "1675", placeName: "Blessens", cantonCode: "FR" }, + { postalCode: "1675", placeName: "Vauderens", cantonCode: "FR" }, + { postalCode: "1675", placeName: "Mossel", cantonCode: "FR" }, + { postalCode: "1676", placeName: "Chavannes-les-Forts", cantonCode: "FR" }, + { postalCode: "1677", placeName: "Prez-vers-Siviriez", cantonCode: "FR" }, + { postalCode: "1678", placeName: "Siviriez", cantonCode: "FR" }, + { postalCode: "1679", placeName: "Villaraboud", cantonCode: "FR" }, + { postalCode: "1680", placeName: "Berlens", cantonCode: "FR" }, + { postalCode: "1680", placeName: "Romont FR", cantonCode: "FR" }, + { postalCode: "1681", placeName: "Hennens", cantonCode: "FR" }, + { postalCode: "1681", placeName: "Billens", cantonCode: "FR" }, + { postalCode: "1684", placeName: "Mézières FR", cantonCode: "FR" }, + { postalCode: "1685", placeName: "Villariaz", cantonCode: "FR" }, + { postalCode: "1686", placeName: "Grangettes-près-Romont", cantonCode: "FR" }, + { postalCode: "1686", placeName: "La Neirigue", cantonCode: "FR" }, + { postalCode: "1687", placeName: "Estévenens", cantonCode: "FR" }, + { postalCode: "1687", placeName: "La Magne", cantonCode: "FR" }, + { postalCode: "1687", placeName: "Vuisternens-devant-Romont", cantonCode: "FR" }, + { postalCode: "1688", placeName: "Lieffrens", cantonCode: "FR" }, + { postalCode: "1688", placeName: "Sommentier", cantonCode: "FR" }, + { postalCode: "1689", placeName: "Le Châtelard-près-Romont", cantonCode: "FR" }, + { postalCode: "1690", placeName: "Lussy FR", cantonCode: "FR" }, + { postalCode: "1690", placeName: "Villaz-St-Pierre", cantonCode: "FR" }, + { postalCode: "1691", placeName: "Villarimboud", cantonCode: "FR" }, + { postalCode: "1692", placeName: "Massonnens", cantonCode: "FR" }, + { postalCode: "1694", placeName: "Orsonnens", cantonCode: "FR" }, + { postalCode: "1694", placeName: "Villargiroud", cantonCode: "FR" }, + { postalCode: "1694", placeName: "Villarsiviriaux", cantonCode: "FR" }, + { postalCode: "1694", placeName: "Chavannes-sous-Orsonnens", cantonCode: "FR" }, + { postalCode: "1697", placeName: "La Joux FR", cantonCode: "FR" }, + { postalCode: "1697", placeName: "Les Ecasseys", cantonCode: "FR" }, + { postalCode: "1748", placeName: "Torny-le-Grand", cantonCode: "FR" }, + { postalCode: "1749", placeName: "Middes", cantonCode: "FR" }, + { postalCode: "1625", placeName: "Sâles (Gruyère)", cantonCode: "FR" }, + { postalCode: "1625", placeName: "Maules", cantonCode: "FR" }, + { postalCode: "1626", placeName: "Rueyres-Treyfayes", cantonCode: "FR" }, + { postalCode: "1626", placeName: "Romanens", cantonCode: "FR" }, + { postalCode: "1626", placeName: "Treyfayes", cantonCode: "FR" }, + { postalCode: "1627", placeName: "Vaulruz", cantonCode: "FR" }, + { postalCode: "1628", placeName: "Vuadens", cantonCode: "FR" }, + { postalCode: "1630", placeName: "Bulle", cantonCode: "FR" }, + { postalCode: "1631", placeName: "Bulle centre de traitement", cantonCode: "FR" }, + { postalCode: "1632", placeName: "Riaz", cantonCode: "FR" }, + { postalCode: "1633", placeName: "Vuippens", cantonCode: "FR" }, + { postalCode: "1633", placeName: "Marsens", cantonCode: "FR" }, + { postalCode: "1634", placeName: "La Roche FR", cantonCode: "FR" }, + { postalCode: "1635", placeName: "La Tour-de-Trême", cantonCode: "FR" }, + { postalCode: "1636", placeName: "Broc", cantonCode: "FR" }, + { postalCode: "1637", placeName: "Charmey (Gruyère)", cantonCode: "FR" }, + { postalCode: "1638", placeName: "Morlon", cantonCode: "FR" }, + { postalCode: "1642", placeName: "Sorens", cantonCode: "FR" }, + { postalCode: "1643", placeName: "Gumefens", cantonCode: "FR" }, + { postalCode: "1644", placeName: "Avry-devant-Pont", cantonCode: "FR" }, + { postalCode: "1645", placeName: "Le Bry", cantonCode: "FR" }, + { postalCode: "1646", placeName: "Echarlens", cantonCode: "FR" }, + { postalCode: "1647", placeName: "Corbières", cantonCode: "FR" }, + { postalCode: "1648", placeName: "Hauteville", cantonCode: "FR" }, + { postalCode: "1649", placeName: "Pont-la-Ville", cantonCode: "FR" }, + { postalCode: "1651", placeName: "Villarvolard", cantonCode: "FR" }, + { postalCode: "1652", placeName: "Villarbeney", cantonCode: "FR" }, + { postalCode: "1652", placeName: "Botterens", cantonCode: "FR" }, + { postalCode: "1653", placeName: "Crésuz", cantonCode: "FR" }, + { postalCode: "1653", placeName: "Châtel-sur-Montsalvens", cantonCode: "FR" }, + { postalCode: "1654", placeName: "Cerniat FR", cantonCode: "FR" }, + { postalCode: "1656", placeName: "Im Fang", cantonCode: "FR" }, + { postalCode: "1656", placeName: "Jaun", cantonCode: "FR" }, + { postalCode: "1661", placeName: "Le Pâquier-Montbarry", cantonCode: "FR" }, + { postalCode: "1663", placeName: "Gruyères", cantonCode: "FR" }, + { postalCode: "1663", placeName: "Pringy", cantonCode: "FR" }, + { postalCode: "1663", placeName: "Moléson-sur-Gruyères", cantonCode: "FR" }, + { postalCode: "1663", placeName: "Epagny", cantonCode: "FR" }, + { postalCode: "1665", placeName: "Estavannens", cantonCode: "FR" }, + { postalCode: "1666", placeName: "Villars-sous-Mont", cantonCode: "FR" }, + { postalCode: "1666", placeName: "Grandvillard", cantonCode: "FR" }, + { postalCode: "1667", placeName: "Enney", cantonCode: "FR" }, + { postalCode: "1669", placeName: "Albeuve", cantonCode: "FR" }, + { postalCode: "1669", placeName: "Les Sciernes-d'Albeuve", cantonCode: "FR" }, + { postalCode: "1669", placeName: "Lessoc", cantonCode: "FR" }, + { postalCode: "1669", placeName: "Neirivue", cantonCode: "FR" }, + { postalCode: "1669", placeName: "Montbovon", cantonCode: "FR" }, + { postalCode: "1695", placeName: "Rueyres-St-Laurent", cantonCode: "FR" }, + { postalCode: "1695", placeName: "Villarlod", cantonCode: "FR" }, + { postalCode: "1695", placeName: "Estavayer-le-Gibloux", cantonCode: "FR" }, + { postalCode: "1695", placeName: "Villarsel-le-Gibloux", cantonCode: "FR" }, + { postalCode: "1696", placeName: "Vuisternens-en-Ogoz", cantonCode: "FR" }, + { postalCode: "1700", placeName: "Fribourg", cantonCode: "FR" }, + { postalCode: "1701", placeName: "Fribourg", cantonCode: "FR" }, + { postalCode: "1708", placeName: "Fribourg", cantonCode: "FR" }, + { postalCode: "1720", placeName: "Chésopelloz", cantonCode: "FR" }, + { postalCode: "1720", placeName: "Corminboeuf", cantonCode: "FR" }, + { postalCode: "1722", placeName: "Bourguillon", cantonCode: "FR" }, + { postalCode: "1723", placeName: "Marly", cantonCode: "FR" }, + { postalCode: "1723", placeName: "Marly 1", cantonCode: "FR" }, + { postalCode: "1723", placeName: "Villarsel-sur-Marly", cantonCode: "FR" }, + { postalCode: "1723", placeName: "Pierrafortscha", cantonCode: "FR" }, + { postalCode: "1724", placeName: "Ferpicloz", cantonCode: "FR" }, + { postalCode: "1724", placeName: "Montévraz", cantonCode: "FR" }, + { postalCode: "1724", placeName: "Bonnefontaine", cantonCode: "FR" }, + { postalCode: "1724", placeName: "Le Mouret", cantonCode: "FR" }, + { postalCode: "1724", placeName: "Senèdes", cantonCode: "FR" }, + { postalCode: "1724", placeName: "Essert FR", cantonCode: "FR" }, + { postalCode: "1724", placeName: "Oberried FR", cantonCode: "FR" }, + { postalCode: "1724", placeName: "Zénauva", cantonCode: "FR" }, + { postalCode: "1725", placeName: "Posieux", cantonCode: "FR" }, + { postalCode: "1726", placeName: "Grenilles", cantonCode: "FR" }, + { postalCode: "1726", placeName: "Farvagny", cantonCode: "FR" }, + { postalCode: "1726", placeName: "Posat", cantonCode: "FR" }, + { postalCode: "1726", placeName: "Farvagny-le-Grand", cantonCode: "FR" }, + { postalCode: "1726", placeName: "Farvagny-le-Petit", cantonCode: "FR" }, + { postalCode: "1727", placeName: "Corpataux", cantonCode: "FR" }, + { postalCode: "1727", placeName: "Magnedens", cantonCode: "FR" }, + { postalCode: "1728", placeName: "Rossens FR", cantonCode: "FR" }, + { postalCode: "1730", placeName: "Ecuvillens", cantonCode: "FR" }, + { postalCode: "1731", placeName: "Ependes FR", cantonCode: "FR" }, + { postalCode: "1732", placeName: "Arconciel", cantonCode: "FR" }, + { postalCode: "1733", placeName: "Treyvaux", cantonCode: "FR" }, + { postalCode: "1740", placeName: "Neyruz FR", cantonCode: "FR" }, + { postalCode: "1741", placeName: "Cottens FR", cantonCode: "FR" }, + { postalCode: "1742", placeName: "Autigny", cantonCode: "FR" }, + { postalCode: "1744", placeName: "Chénens", cantonCode: "FR" }, + { postalCode: "1745", placeName: "Lentigny", cantonCode: "FR" }, + { postalCode: "1746", placeName: "Prez-vers-Noréaz", cantonCode: "FR" }, + { postalCode: "1747", placeName: "Corserey", cantonCode: "FR" }, + { postalCode: "1752", placeName: "Villars-sur-Glâne", cantonCode: "FR" }, + { postalCode: "1752", placeName: "Villars-sur-Glâne 1", cantonCode: "FR" }, + { postalCode: "1753", placeName: "Matran", cantonCode: "FR" }, + { postalCode: "1754", placeName: "Rosé", cantonCode: "FR" }, + { postalCode: "1754", placeName: "Avry-sur-Matran", cantonCode: "FR" }, + { postalCode: "1754", placeName: "Corjolens", cantonCode: "FR" }, + { postalCode: "1754", placeName: "Avry-Centre FR", cantonCode: "FR" }, + { postalCode: "1756", placeName: "Onnens FR", cantonCode: "FR" }, + { postalCode: "1756", placeName: "Lovens", cantonCode: "FR" }, + { postalCode: "1757", placeName: "Noréaz", cantonCode: "FR" }, + { postalCode: "1762", placeName: "Givisiez", cantonCode: "FR" }, + { postalCode: "1763", placeName: "Granges-Paccot", cantonCode: "FR" }, + { postalCode: "1772", placeName: "Nierlet-les-Bois", cantonCode: "FR" }, + { postalCode: "1772", placeName: "Grolley", cantonCode: "FR" }, + { postalCode: "1772", placeName: "Ponthaux", cantonCode: "FR" }, + { postalCode: "1782", placeName: "Formangueires", cantonCode: "FR" }, + { postalCode: "1782", placeName: "Autafond", cantonCode: "FR" }, + { postalCode: "1782", placeName: "Lossy", cantonCode: "FR" }, + { postalCode: "1782", placeName: "Belfaux", cantonCode: "FR" }, + { postalCode: "1782", placeName: "Cormagens", cantonCode: "FR" }, + { postalCode: "1782", placeName: "La Corbaz", cantonCode: "FR" }, + { postalCode: "1583", placeName: "Villarepos", cantonCode: "FR" }, + { postalCode: "1721", placeName: "Cournillens", cantonCode: "FR" }, + { postalCode: "1721", placeName: "Misery-Courtion", cantonCode: "FR" }, + { postalCode: "1721", placeName: "Misery", cantonCode: "FR" }, + { postalCode: "1721", placeName: "Cormérod", cantonCode: "FR" }, + { postalCode: "1721", placeName: "Courtion", cantonCode: "FR" }, + { postalCode: "1783", placeName: "Pensier", cantonCode: "FR" }, + { postalCode: "1783", placeName: "Barberêche", cantonCode: "FR" }, + { postalCode: "1784", placeName: "Courtepin", cantonCode: "FR" }, + { postalCode: "1784", placeName: "Wallenried", cantonCode: "FR" }, + { postalCode: "1785", placeName: "Cressier FR", cantonCode: "FR" }, + { postalCode: "1786", placeName: "Sugiez", cantonCode: "FR" }, + { postalCode: "1787", placeName: "Môtier (Vully)", cantonCode: "FR" }, + { postalCode: "1787", placeName: "Mur (Vully) FR", cantonCode: "FR" }, + { postalCode: "1788", placeName: "Praz (Vully)", cantonCode: "FR" }, + { postalCode: "1789", placeName: "Lugnorre", cantonCode: "FR" }, + { postalCode: "1791", placeName: "Courtaman", cantonCode: "FR" }, + { postalCode: "1792", placeName: "Cordast", cantonCode: "FR" }, + { postalCode: "1792", placeName: "Guschelmuth", cantonCode: "FR" }, + { postalCode: "1793", placeName: "Jeuss", cantonCode: "FR" }, + { postalCode: "1794", placeName: "Salvenach", cantonCode: "FR" }, + { postalCode: "1795", placeName: "Courlevon", cantonCode: "FR" }, + { postalCode: "1796", placeName: "Courgevaux", cantonCode: "FR" }, + { postalCode: "3206", placeName: "Wallenbuch", cantonCode: "FR" }, + { postalCode: "3210", placeName: "Kerzers", cantonCode: "FR" }, + { postalCode: "3212", placeName: "Gurmels", cantonCode: "FR" }, + { postalCode: "3212", placeName: "Kleingurmels", cantonCode: "FR" }, + { postalCode: "3213", placeName: "Kleinbösingen", cantonCode: "FR" }, + { postalCode: "3213", placeName: "Liebistorf", cantonCode: "FR" }, + { postalCode: "3214", placeName: "Ulmiz", cantonCode: "FR" }, + { postalCode: "3215", placeName: "Gempenach", cantonCode: "FR" }, + { postalCode: "3215", placeName: "Lurtigen", cantonCode: "FR" }, + { postalCode: "3215", placeName: "Büchslen", cantonCode: "FR" }, + { postalCode: "3216", placeName: "Agriswil", cantonCode: "FR" }, + { postalCode: "3216", placeName: "Ried b. Kerzers", cantonCode: "FR" }, + { postalCode: "3280", placeName: "Greng", cantonCode: "FR" }, + { postalCode: "3280", placeName: "Murten", cantonCode: "FR" }, + { postalCode: "3280", placeName: "Meyriez", cantonCode: "FR" }, + { postalCode: "3284", placeName: "Fräschels", cantonCode: "FR" }, + { postalCode: "3285", placeName: "Galmiz", cantonCode: "FR" }, + { postalCode: "3286", placeName: "Muntelier", cantonCode: "FR" }, + { postalCode: "1712", placeName: "Tafers", cantonCode: "FR" }, + { postalCode: "1713", placeName: "St. Antoni", cantonCode: "FR" }, + { postalCode: "1714", placeName: "Heitenried", cantonCode: "FR" }, + { postalCode: "1715", placeName: "Alterswil FR", cantonCode: "FR" }, + { postalCode: "1716", placeName: "Plaffeien", cantonCode: "FR" }, + { postalCode: "1716", placeName: "Oberschrot", cantonCode: "FR" }, + { postalCode: "1716", placeName: "Schwarzsee", cantonCode: "FR" }, + { postalCode: "1717", placeName: "St. Ursen", cantonCode: "FR" }, + { postalCode: "1718", placeName: "Rechthalten", cantonCode: "FR" }, + { postalCode: "1719", placeName: "Brünisried", cantonCode: "FR" }, + { postalCode: "1719", placeName: "Zumholz", cantonCode: "FR" }, + { postalCode: "1734", placeName: "Tentlingen", cantonCode: "FR" }, + { postalCode: "1735", placeName: "Giffers", cantonCode: "FR" }, + { postalCode: "1736", placeName: "St. Silvester", cantonCode: "FR" }, + { postalCode: "1737", placeName: "Plasselb", cantonCode: "FR" }, + { postalCode: "3175", placeName: "Flamatt", cantonCode: "FR" }, + { postalCode: "3178", placeName: "Bösingen", cantonCode: "FR" }, + { postalCode: "3182", placeName: "Ueberstorf", cantonCode: "FR" }, + { postalCode: "3184", placeName: "Wünnewil", cantonCode: "FR" }, + { postalCode: "3185", placeName: "Schmitten FR", cantonCode: "FR" }, + { postalCode: "3186", placeName: "Düdingen", cantonCode: "FR" }, + { postalCode: "1609", placeName: "St-Martin FR", cantonCode: "FR" }, + { postalCode: "1609", placeName: "Besencens", cantonCode: "FR" }, + { postalCode: "1609", placeName: "Fiaugères", cantonCode: "FR" }, + { postalCode: "1609", placeName: "Fiaugères", cantonCode: "FR" }, + { postalCode: "1611", placeName: "Le Crêt-près-Semsales", cantonCode: "FR" }, + { postalCode: "1614", placeName: "Granges (Veveyse)", cantonCode: "FR" }, + { postalCode: "1615", placeName: "Bossonnens", cantonCode: "FR" }, + { postalCode: "1616", placeName: "Attalens", cantonCode: "FR" }, + { postalCode: "1617", placeName: "Tatroz", cantonCode: "FR" }, + { postalCode: "1617", placeName: "Remaufens", cantonCode: "FR" }, + { postalCode: "1618", placeName: "Châtel-St-Denis", cantonCode: "FR" }, + { postalCode: "1619", placeName: "Les Paccots", cantonCode: "FR" }, + { postalCode: "1623", placeName: "Semsales", cantonCode: "FR" }, + { postalCode: "1624", placeName: "La Verrerie", cantonCode: "FR" }, + { postalCode: "1624", placeName: "Progens", cantonCode: "FR" }, + { postalCode: "1624", placeName: "Progens", cantonCode: "FR" }, + { postalCode: "1624", placeName: "Grattavache", cantonCode: "FR" }, + { postalCode: "1699", placeName: "Porsel", cantonCode: "FR" }, + { postalCode: "1699", placeName: "Pont (Veveyse)", cantonCode: "FR" }, + { postalCode: "1699", placeName: "Bouloz", cantonCode: "FR" }, + { postalCode: "1699", placeName: "Porsel", cantonCode: "FR" }, + { postalCode: "1200", placeName: "Genève", cantonCode: "GE" }, + { postalCode: "1201", placeName: "Genève", cantonCode: "GE" }, + { postalCode: "1202", placeName: "Genève", cantonCode: "GE" }, + { postalCode: "1203", placeName: "Genève", cantonCode: "GE" }, + { postalCode: "1204", placeName: "Genève", cantonCode: "GE" }, + { postalCode: "1205", placeName: "Genève", cantonCode: "GE" }, + { postalCode: "1206", placeName: "Genève", cantonCode: "GE" }, + { postalCode: "1207", placeName: "Genève", cantonCode: "GE" }, + { postalCode: "1208", placeName: "Genève", cantonCode: "GE" }, + { postalCode: "1209", placeName: "Genève", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 70", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 84 Votations", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 14", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 20", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 5", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 22", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 28", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 27", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 1", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 11", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 26", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 23", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 71 CS CP", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 80", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 73", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 84 Votation", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 4", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 6", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 2", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 19", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 12", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 13", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 10", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 3", cantonCode: "GE" }, + { postalCode: "1211", placeName: "Genève 8", cantonCode: "GE" }, + { postalCode: "1212", placeName: "Grand-Lancy", cantonCode: "GE" }, + { postalCode: "1212", placeName: "Grand-Lancy 1", cantonCode: "GE" }, + { postalCode: "1213", placeName: "Onex", cantonCode: "GE" }, + { postalCode: "1213", placeName: "Petit-Lancy 1", cantonCode: "GE" }, + { postalCode: "1213", placeName: "Petit-Lancy", cantonCode: "GE" }, + { postalCode: "1214", placeName: "Vernier", cantonCode: "GE" }, + { postalCode: "1215", placeName: "Genève 15 Aéroport", cantonCode: "GE" }, + { postalCode: "1215", placeName: "Genève", cantonCode: "GE" }, + { postalCode: "1216", placeName: "Cointrin", cantonCode: "GE" }, + { postalCode: "1217", placeName: "Meyrin", cantonCode: "GE" }, + { postalCode: "1217", placeName: "Meyrin 1", cantonCode: "GE" }, + { postalCode: "1218", placeName: "Le Grand-Saconnex", cantonCode: "GE" }, + { postalCode: "1219", placeName: "Aïre", cantonCode: "GE" }, + { postalCode: "1219", placeName: "Le Lignon", cantonCode: "GE" }, + { postalCode: "1219", placeName: "Châtelaine", cantonCode: "GE" }, + { postalCode: "1220", placeName: "Les Avanchets", cantonCode: "GE" }, + { postalCode: "1222", placeName: "Vésenaz", cantonCode: "GE" }, + { postalCode: "1223", placeName: "Cologny", cantonCode: "GE" }, + { postalCode: "1224", placeName: "Chêne-Bougeries", cantonCode: "GE" }, + { postalCode: "1225", placeName: "Chêne-Bourg", cantonCode: "GE" }, + { postalCode: "1226", placeName: "Thônex", cantonCode: "GE" }, + { postalCode: "1227", placeName: "Les Acacias", cantonCode: "GE" }, + { postalCode: "1227", placeName: "Carouge GE", cantonCode: "GE" }, + { postalCode: "1228", placeName: "Plan-les-Ouates", cantonCode: "GE" }, + { postalCode: "1231", placeName: "Conches", cantonCode: "GE" }, + { postalCode: "1232", placeName: "Confignon", cantonCode: "GE" }, + { postalCode: "1233", placeName: "Bernex", cantonCode: "GE" }, + { postalCode: "1234", placeName: "Vessy", cantonCode: "GE" }, + { postalCode: "1236", placeName: "Cartigny", cantonCode: "GE" }, + { postalCode: "1237", placeName: "Avully", cantonCode: "GE" }, + { postalCode: "1239", placeName: "Collex", cantonCode: "GE" }, + { postalCode: "1240", placeName: "Genève", cantonCode: "GE" }, + { postalCode: "1241", placeName: "Puplinge", cantonCode: "GE" }, + { postalCode: "1242", placeName: "Satigny", cantonCode: "GE" }, + { postalCode: "1243", placeName: "Presinge", cantonCode: "GE" }, + { postalCode: "1244", placeName: "Choulex", cantonCode: "GE" }, + { postalCode: "1245", placeName: "Collonge-Bellerive", cantonCode: "GE" }, + { postalCode: "1246", placeName: "Corsier GE", cantonCode: "GE" }, + { postalCode: "1247", placeName: "Anières", cantonCode: "GE" }, + { postalCode: "1248", placeName: "Hermance", cantonCode: "GE" }, + { postalCode: "1251", placeName: "Gy", cantonCode: "GE" }, + { postalCode: "1252", placeName: "Meinier", cantonCode: "GE" }, + { postalCode: "1253", placeName: "Vandoeuvres", cantonCode: "GE" }, + { postalCode: "1254", placeName: "Jussy", cantonCode: "GE" }, + { postalCode: "1255", placeName: "Veyrier", cantonCode: "GE" }, + { postalCode: "1256", placeName: "Troinex", cantonCode: "GE" }, + { postalCode: "1257", placeName: "La Croix-de-Rozon", cantonCode: "GE" }, + { postalCode: "1258", placeName: "Perly", cantonCode: "GE" }, + { postalCode: "1281", placeName: "Russin", cantonCode: "GE" }, + { postalCode: "1283", placeName: "Dardagny", cantonCode: "GE" }, + { postalCode: "1283", placeName: "La Plaine", cantonCode: "GE" }, + { postalCode: "1284", placeName: "Chancy", cantonCode: "GE" }, + { postalCode: "1285", placeName: "Athenaz (Avusy)", cantonCode: "GE" }, + { postalCode: "1286", placeName: "Soral", cantonCode: "GE" }, + { postalCode: "1287", placeName: "Laconnex", cantonCode: "GE" }, + { postalCode: "1288", placeName: "Aire-la-Ville", cantonCode: "GE" }, + { postalCode: "1290", placeName: "Versoix", cantonCode: "GE" }, + { postalCode: "1292", placeName: "Chambésy", cantonCode: "GE" }, + { postalCode: "1293", placeName: "Bellevue", cantonCode: "GE" }, + { postalCode: "1294", placeName: "Genthod", cantonCode: "GE" }, + { postalCode: "1298", placeName: "Céligny", cantonCode: "GE" }, + { postalCode: "8750", placeName: "Klöntal", cantonCode: "GL" }, + { postalCode: "8750", placeName: "Glarus", cantonCode: "GL" }, + { postalCode: "8750", placeName: "Riedern", cantonCode: "GL" }, + { postalCode: "8752", placeName: "Näfels", cantonCode: "GL" }, + { postalCode: "8753", placeName: "Mollis", cantonCode: "GL" }, + { postalCode: "8754", placeName: "Netstal", cantonCode: "GL" }, + { postalCode: "8755", placeName: "Ennenda", cantonCode: "GL" }, + { postalCode: "8756", placeName: "Mitlödi", cantonCode: "GL" }, + { postalCode: "8757", placeName: "Filzbach", cantonCode: "GL" }, + { postalCode: "8758", placeName: "Obstalden", cantonCode: "GL" }, + { postalCode: "8759", placeName: "Netstal", cantonCode: "GL" }, + { postalCode: "8762", placeName: "Sool", cantonCode: "GL" }, + { postalCode: "8762", placeName: "Schwanden GL", cantonCode: "GL" }, + { postalCode: "8762", placeName: "Schwändi b. Schwanden", cantonCode: "GL" }, + { postalCode: "8765", placeName: "Engi", cantonCode: "GL" }, + { postalCode: "8766", placeName: "Matt", cantonCode: "GL" }, + { postalCode: "8767", placeName: "Elm", cantonCode: "GL" }, + { postalCode: "8772", placeName: "Nidfurn", cantonCode: "GL" }, + { postalCode: "8773", placeName: "Haslen GL", cantonCode: "GL" }, + { postalCode: "8774", placeName: "Leuggelbach", cantonCode: "GL" }, + { postalCode: "8775", placeName: "Luchsingen", cantonCode: "GL" }, + { postalCode: "8775", placeName: "Luchsingen-Hätzingen", cantonCode: "GL" }, + { postalCode: "8775", placeName: "Hätzingen", cantonCode: "GL" }, + { postalCode: "8777", placeName: "Betschwanden", cantonCode: "GL" }, + { postalCode: "8777", placeName: "Diesbach GL", cantonCode: "GL" }, + { postalCode: "8782", placeName: "Rüti GL", cantonCode: "GL" }, + { postalCode: "8783", placeName: "Linthal", cantonCode: "GL" }, + { postalCode: "8784", placeName: "Braunwald", cantonCode: "GL" }, + { postalCode: "8865", placeName: "Bilten", cantonCode: "GL" }, + { postalCode: "8867", placeName: "Niederurnen", cantonCode: "GL" }, + { postalCode: "8868", placeName: "Oberurnen", cantonCode: "GL" }, + { postalCode: "8874", placeName: "Mühlehorn", cantonCode: "GL" }, + { postalCode: "7077", placeName: "Valbella", cantonCode: "GR" }, + { postalCode: "7078", placeName: "Lenzerheide/Lai", cantonCode: "GR" }, + { postalCode: "7082", placeName: "Vaz/Obervaz", cantonCode: "GR" }, + { postalCode: "7083", placeName: "Lantsch/Lenz", cantonCode: "GR" }, + { postalCode: "7084", placeName: "Brienz/Brinzauls GR", cantonCode: "GR" }, + { postalCode: "7450", placeName: "Tiefencastel", cantonCode: "GR" }, + { postalCode: "7450", placeName: "Tiefencastel", cantonCode: "GR" }, + { postalCode: "7451", placeName: "Alvaschein", cantonCode: "GR" }, + { postalCode: "7452", placeName: "Cunter", cantonCode: "GR" }, + { postalCode: "7453", placeName: "Tinizong", cantonCode: "GR" }, + { postalCode: "7454", placeName: "Rona", cantonCode: "GR" }, + { postalCode: "7455", placeName: "Mulegns", cantonCode: "GR" }, + { postalCode: "7456", placeName: "Marmorera", cantonCode: "GR" }, + { postalCode: "7456", placeName: "Sur", cantonCode: "GR" }, + { postalCode: "7457", placeName: "Bivio", cantonCode: "GR" }, + { postalCode: "7458", placeName: "Mon", cantonCode: "GR" }, + { postalCode: "7459", placeName: "Stierva", cantonCode: "GR" }, + { postalCode: "7460", placeName: "Savognin", cantonCode: "GR" }, + { postalCode: "7462", placeName: "Salouf", cantonCode: "GR" }, + { postalCode: "7463", placeName: "Riom", cantonCode: "GR" }, + { postalCode: "7463", placeName: "Riom", cantonCode: "GR" }, + { postalCode: "7464", placeName: "Parsonz", cantonCode: "GR" }, + { postalCode: "7472", placeName: "Surava", cantonCode: "GR" }, + { postalCode: "7473", placeName: "Alvaneu Bad", cantonCode: "GR" }, + { postalCode: "7477", placeName: "Filisur", cantonCode: "GR" }, + { postalCode: "7482", placeName: "Stugl/Stuls", cantonCode: "GR" }, + { postalCode: "7482", placeName: "Bergün/Bravuogn", cantonCode: "GR" }, + { postalCode: "7482", placeName: "Preda", cantonCode: "GR" }, + { postalCode: "7484", placeName: "Latsch", cantonCode: "GR" }, + { postalCode: "7492", placeName: "Alvaneu Dorf", cantonCode: "GR" }, + { postalCode: "7493", placeName: "Schmitten (Albula)", cantonCode: "GR" }, + { postalCode: "7710", placeName: "Alp Grüm", cantonCode: "GR" }, + { postalCode: "7710", placeName: "Ospizio Bernina", cantonCode: "GR" }, + { postalCode: "7741", placeName: "S. Carlo (Poschiavo)", cantonCode: "GR" }, + { postalCode: "7742", placeName: "Sfazù", cantonCode: "GR" }, + { postalCode: "7742", placeName: "Poschiavo", cantonCode: "GR" }, + { postalCode: "7742", placeName: "La Rösa", cantonCode: "GR" }, + { postalCode: "7743", placeName: "Brusio", cantonCode: "GR" }, + { postalCode: "7743", placeName: "Miralago", cantonCode: "GR" }, + { postalCode: "7744", placeName: "Campocologno", cantonCode: "GR" }, + { postalCode: "7745", placeName: "Li Curt", cantonCode: "GR" }, + { postalCode: "7746", placeName: "Le Prese", cantonCode: "GR" }, + { postalCode: "7747", placeName: "Viano", cantonCode: "GR" }, + { postalCode: "7748", placeName: "Campascio", cantonCode: "GR" }, + { postalCode: "7527", placeName: "Brail", cantonCode: "GR" }, + { postalCode: "7530", placeName: "Zernez", cantonCode: "GR" }, + { postalCode: "7532", placeName: "Tschierv", cantonCode: "GR" }, + { postalCode: "7533", placeName: "Fuldera", cantonCode: "GR" }, + { postalCode: "7534", placeName: "Lü", cantonCode: "GR" }, + { postalCode: "7535", placeName: "Valchava", cantonCode: "GR" }, + { postalCode: "7536", placeName: "Sta. Maria Val Müstair", cantonCode: "GR" }, + { postalCode: "7537", placeName: "Müstair", cantonCode: "GR" }, + { postalCode: "7542", placeName: "Susch", cantonCode: "GR" }, + { postalCode: "7543", placeName: "Lavin", cantonCode: "GR" }, + { postalCode: "7545", placeName: "Guarda", cantonCode: "GR" }, + { postalCode: "7546", placeName: "Ardez", cantonCode: "GR" }, + { postalCode: "7550", placeName: "Scuol", cantonCode: "GR" }, + { postalCode: "7551", placeName: "Ftan", cantonCode: "GR" }, + { postalCode: "7552", placeName: "Vulpera", cantonCode: "GR" }, + { postalCode: "7553", placeName: "Tarasp", cantonCode: "GR" }, + { postalCode: "7554", placeName: "Sent", cantonCode: "GR" }, + { postalCode: "7554", placeName: "Crusch", cantonCode: "GR" }, + { postalCode: "7556", placeName: "Ramosch", cantonCode: "GR" }, + { postalCode: "7556", placeName: "Ramosch", cantonCode: "GR" }, + { postalCode: "7557", placeName: "Vnà", cantonCode: "GR" }, + { postalCode: "7558", placeName: "Strada", cantonCode: "GR" }, + { postalCode: "7559", placeName: "Tschlin", cantonCode: "GR" }, + { postalCode: "7560", placeName: "Martina", cantonCode: "GR" }, + { postalCode: "7562", placeName: "Samnaun-Compatsch", cantonCode: "GR" }, + { postalCode: "7563", placeName: "Samnaun Dorf", cantonCode: "GR" }, + { postalCode: "7012", placeName: "Felsberg", cantonCode: "GR" }, + { postalCode: "7013", placeName: "Domat/Ems", cantonCode: "GR" }, + { postalCode: "7014", placeName: "Trin", cantonCode: "GR" }, + { postalCode: "7015", placeName: "Tamins", cantonCode: "GR" }, + { postalCode: "7016", placeName: "Trin Mulin", cantonCode: "GR" }, + { postalCode: "7017", placeName: "Flims Dorf", cantonCode: "GR" }, + { postalCode: "7018", placeName: "Flims Waldhaus", cantonCode: "GR" }, + { postalCode: "7019", placeName: "Fidaz", cantonCode: "GR" }, + { postalCode: "7402", placeName: "Bonaduz", cantonCode: "GR" }, + { postalCode: "7403", placeName: "Rhäzüns", cantonCode: "GR" }, + { postalCode: "7202", placeName: "Says", cantonCode: "GR" }, + { postalCode: "7203", placeName: "Trimmis", cantonCode: "GR" }, + { postalCode: "7204", placeName: "Untervaz", cantonCode: "GR" }, + { postalCode: "7205", placeName: "Zizers", cantonCode: "GR" }, + { postalCode: "7206", placeName: "Igis", cantonCode: "GR" }, + { postalCode: "7208", placeName: "Malans GR", cantonCode: "GR" }, + { postalCode: "7302", placeName: "Landquart", cantonCode: "GR" }, + { postalCode: "7303", placeName: "Mastrils", cantonCode: "GR" }, + { postalCode: "7304", placeName: "Maienfeld", cantonCode: "GR" }, + { postalCode: "7306", placeName: "Fläsch", cantonCode: "GR" }, + { postalCode: "7307", placeName: "Jenins", cantonCode: "GR" }, + { postalCode: "7500", placeName: "St. Moritz", cantonCode: "GR" }, + { postalCode: "7500", placeName: "St. Moritz 3", cantonCode: "GR" }, + { postalCode: "7500", placeName: "St. Moritz 1", cantonCode: "GR" }, + { postalCode: "7502", placeName: "Bever", cantonCode: "GR" }, + { postalCode: "7502", placeName: "Bever", cantonCode: "GR" }, + { postalCode: "7503", placeName: "Samedan", cantonCode: "GR" }, + { postalCode: "7504", placeName: "Pontresina", cantonCode: "GR" }, + { postalCode: "7505", placeName: "Celerina/Schlarigna", cantonCode: "GR" }, + { postalCode: "7512", placeName: "Champfèr", cantonCode: "GR" }, + { postalCode: "7513", placeName: "Silvaplana-Surlej", cantonCode: "GR" }, + { postalCode: "7513", placeName: "Silvaplana", cantonCode: "GR" }, + { postalCode: "7514", placeName: "Sils/Segl Maria", cantonCode: "GR" }, + { postalCode: "7514", placeName: "Fex", cantonCode: "GR" }, + { postalCode: "7515", placeName: "Sils/Segl Baselgia", cantonCode: "GR" }, + { postalCode: "7516", placeName: "Maloja", cantonCode: "GR" }, + { postalCode: "7517", placeName: "Plaun da Lej", cantonCode: "GR" }, + { postalCode: "7522", placeName: "La Punt Chamues-ch", cantonCode: "GR" }, + { postalCode: "7522", placeName: "La Punt-Chamues-ch", cantonCode: "GR" }, + { postalCode: "7523", placeName: "Madulain", cantonCode: "GR" }, + { postalCode: "7523", placeName: "Madulain", cantonCode: "GR" }, + { postalCode: "7524", placeName: "Zuoz", cantonCode: "GR" }, + { postalCode: "7524", placeName: "Zuoz", cantonCode: "GR" }, + { postalCode: "7525", placeName: "S-chanf", cantonCode: "GR" }, + { postalCode: "7526", placeName: "Cinuos-chel", cantonCode: "GR" }, + { postalCode: "7526", placeName: "Chapella", cantonCode: "GR" }, + { postalCode: "7602", placeName: "Casaccia", cantonCode: "GR" }, + { postalCode: "7603", placeName: "Vicosoprano", cantonCode: "GR" }, + { postalCode: "7604", placeName: "Borgonovo", cantonCode: "GR" }, + { postalCode: "7605", placeName: "Stampa", cantonCode: "GR" }, + { postalCode: "7606", placeName: "Promontogno", cantonCode: "GR" }, + { postalCode: "7606", placeName: "Bondo", cantonCode: "GR" }, + { postalCode: "7608", placeName: "Castasegna", cantonCode: "GR" }, + { postalCode: "7610", placeName: "Soglio", cantonCode: "GR" }, + { postalCode: "6534", placeName: "S. Vittore", cantonCode: "GR" }, + { postalCode: "6534", placeName: "S. Vittore", cantonCode: "GR" }, + { postalCode: "6535", placeName: "Roveredo GR", cantonCode: "GR" }, + { postalCode: "6537", placeName: "Grono", cantonCode: "GR" }, + { postalCode: "6538", placeName: "Verdabbio", cantonCode: "GR" }, + { postalCode: "6538", placeName: "Verdabbio", cantonCode: "GR" }, + { postalCode: "6540", placeName: "Castaneda", cantonCode: "GR" }, + { postalCode: "6541", placeName: "Sta. Maria in Calanca", cantonCode: "GR" }, + { postalCode: "6542", placeName: "Buseno", cantonCode: "GR" }, + { postalCode: "6543", placeName: "Arvigo", cantonCode: "GR" }, + { postalCode: "6544", placeName: "Braggio", cantonCode: "GR" }, + { postalCode: "6545", placeName: "Selma", cantonCode: "GR" }, + { postalCode: "6546", placeName: "Cauco", cantonCode: "GR" }, + { postalCode: "6548", placeName: "Rossa", cantonCode: "GR" }, + { postalCode: "6549", placeName: "Laura", cantonCode: "GR" }, + { postalCode: "6556", placeName: "Leggia", cantonCode: "GR" }, + { postalCode: "6557", placeName: "Cama", cantonCode: "GR" }, + { postalCode: "6558", placeName: "Lostallo", cantonCode: "GR" }, + { postalCode: "6562", placeName: "Soazza", cantonCode: "GR" }, + { postalCode: "6563", placeName: "Mesocco", cantonCode: "GR" }, + { postalCode: "6565", placeName: "S. Bernardino", cantonCode: "GR" }, + { postalCode: "7000", placeName: "Chur", cantonCode: "GR" }, + { postalCode: "7001", placeName: "Chur", cantonCode: "GR" }, + { postalCode: "7004", placeName: "Chur", cantonCode: "GR" }, + { postalCode: "7006", placeName: "Chur", cantonCode: "GR" }, + { postalCode: "7007", placeName: "Chur", cantonCode: "GR" }, + { postalCode: "7023", placeName: "Haldenstein", cantonCode: "GR" }, + { postalCode: "7026", placeName: "Maladers", cantonCode: "GR" }, + { postalCode: "7027", placeName: "Lüen", cantonCode: "GR" }, + { postalCode: "7027", placeName: "Castiel", cantonCode: "GR" }, + { postalCode: "7027", placeName: "Calfreisen", cantonCode: "GR" }, + { postalCode: "7028", placeName: "St. Peter", cantonCode: "GR" }, + { postalCode: "7028", placeName: "Pagig", cantonCode: "GR" }, + { postalCode: "7029", placeName: "Peist", cantonCode: "GR" }, + { postalCode: "7050", placeName: "Arosa", cantonCode: "GR" }, + { postalCode: "7056", placeName: "Molinis", cantonCode: "GR" }, + { postalCode: "7057", placeName: "Langwies", cantonCode: "GR" }, + { postalCode: "7058", placeName: "Litzirüti", cantonCode: "GR" }, + { postalCode: "7062", placeName: "Passugg", cantonCode: "GR" }, + { postalCode: "7063", placeName: "Praden", cantonCode: "GR" }, + { postalCode: "7064", placeName: "Tschiertschen", cantonCode: "GR" }, + { postalCode: "7074", placeName: "Malix", cantonCode: "GR" }, + { postalCode: "7075", placeName: "Churwalden", cantonCode: "GR" }, + { postalCode: "7076", placeName: "Parpan", cantonCode: "GR" }, + { postalCode: "7212", placeName: "Seewis Dorf", cantonCode: "GR" }, + { postalCode: "7212", placeName: "Seewis-Pardisla", cantonCode: "GR" }, + { postalCode: "7212", placeName: "Seewis-Schmitten", cantonCode: "GR" }, + { postalCode: "7213", placeName: "Valzeina", cantonCode: "GR" }, + { postalCode: "7214", placeName: "Grüsch", cantonCode: "GR" }, + { postalCode: "7215", placeName: "Fanas", cantonCode: "GR" }, + { postalCode: "7220", placeName: "Schiers", cantonCode: "GR" }, + { postalCode: "7220", placeName: "Schiers", cantonCode: "GR" }, + { postalCode: "7222", placeName: "Lunden", cantonCode: "GR" }, + { postalCode: "7223", placeName: "Buchen im Prättigau", cantonCode: "GR" }, + { postalCode: "7224", placeName: "Putz", cantonCode: "GR" }, + { postalCode: "7226", placeName: "Fajauna", cantonCode: "GR" }, + { postalCode: "7226", placeName: "Stels", cantonCode: "GR" }, + { postalCode: "7226", placeName: "Stels", cantonCode: "GR" }, + { postalCode: "7228", placeName: "Pusserein", cantonCode: "GR" }, + { postalCode: "7228", placeName: "Schuders", cantonCode: "GR" }, + { postalCode: "7231", placeName: "Pragg-Jenaz", cantonCode: "GR" }, + { postalCode: "7232", placeName: "Furna", cantonCode: "GR" }, + { postalCode: "7233", placeName: "Jenaz", cantonCode: "GR" }, + { postalCode: "7235", placeName: "Fideris", cantonCode: "GR" }, + { postalCode: "7240", placeName: "Küblis", cantonCode: "GR" }, + { postalCode: "7241", placeName: "Conters im Prättigau", cantonCode: "GR" }, + { postalCode: "7242", placeName: "Luzein", cantonCode: "GR" }, + { postalCode: "7243", placeName: "Pany", cantonCode: "GR" }, + { postalCode: "7244", placeName: "Gadenstätt", cantonCode: "GR" }, + { postalCode: "7245", placeName: "Ascharina", cantonCode: "GR" }, + { postalCode: "7246", placeName: "St. Antönien", cantonCode: "GR" }, + { postalCode: "7247", placeName: "Saas im Prättigau", cantonCode: "GR" }, + { postalCode: "7249", placeName: "Serneus", cantonCode: "GR" }, + { postalCode: "7250", placeName: "Klosters", cantonCode: "GR" }, + { postalCode: "7252", placeName: "Klosters Dorf", cantonCode: "GR" }, + { postalCode: "7260", placeName: "Davos Dorf", cantonCode: "GR" }, + { postalCode: "7265", placeName: "Davos Wolfgang", cantonCode: "GR" }, + { postalCode: "7270", placeName: "Davos Platz", cantonCode: "GR" }, + { postalCode: "7270", placeName: "Davos Platz 1", cantonCode: "GR" }, + { postalCode: "7272", placeName: "Davos Clavadel", cantonCode: "GR" }, + { postalCode: "7276", placeName: "Davos Frauenkirch", cantonCode: "GR" }, + { postalCode: "7277", placeName: "Davos Glaris", cantonCode: "GR" }, + { postalCode: "7278", placeName: "Davos Monstein", cantonCode: "GR" }, + { postalCode: "7494", placeName: "Davos Wiesen", cantonCode: "GR" }, + { postalCode: "7031", placeName: "Laax GR", cantonCode: "GR" }, + { postalCode: "7032", placeName: "Laax GR 2", cantonCode: "GR" }, + { postalCode: "7104", placeName: "Arezen", cantonCode: "GR" }, + { postalCode: "7104", placeName: "Versam", cantonCode: "GR" }, + { postalCode: "7104", placeName: "Versam", cantonCode: "GR" }, + { postalCode: "7106", placeName: "Tenna", cantonCode: "GR" }, + { postalCode: "7107", placeName: "Safien Platz", cantonCode: "GR" }, + { postalCode: "7109", placeName: "Thalkirch", cantonCode: "GR" }, + { postalCode: "7110", placeName: "Peiden", cantonCode: "GR" }, + { postalCode: "7111", placeName: "Pitasch", cantonCode: "GR" }, + { postalCode: "7112", placeName: "Duvin", cantonCode: "GR" }, + { postalCode: "7113", placeName: "Camuns", cantonCode: "GR" }, + { postalCode: "7114", placeName: "Uors (Lumnezia)", cantonCode: "GR" }, + { postalCode: "7115", placeName: "Surcasti", cantonCode: "GR" }, + { postalCode: "7116", placeName: "St. Martin (Lugnez)", cantonCode: "GR" }, + { postalCode: "7116", placeName: "Tersnaus", cantonCode: "GR" }, + { postalCode: "7122", placeName: "Valendas", cantonCode: "GR" }, + { postalCode: "7122", placeName: "Carrera", cantonCode: "GR" }, + { postalCode: "7126", placeName: "Castrisch", cantonCode: "GR" }, + { postalCode: "7127", placeName: "Sevgein", cantonCode: "GR" }, + { postalCode: "7128", placeName: "Riein", cantonCode: "GR" }, + { postalCode: "7130", placeName: "Schnaus", cantonCode: "GR" }, + { postalCode: "7130", placeName: "Ilanz", cantonCode: "GR" }, + { postalCode: "7130", placeName: "Schnaus", cantonCode: "GR" }, + { postalCode: "7132", placeName: "Vals", cantonCode: "GR" }, + { postalCode: "7134", placeName: "Obersaxen", cantonCode: "GR" }, + { postalCode: "7137", placeName: "Flond", cantonCode: "GR" }, + { postalCode: "7138", placeName: "Surcuolm", cantonCode: "GR" }, + { postalCode: "7141", placeName: "Luven", cantonCode: "GR" }, + { postalCode: "7142", placeName: "Cumbel", cantonCode: "GR" }, + { postalCode: "7143", placeName: "Morissen", cantonCode: "GR" }, + { postalCode: "7144", placeName: "Vella", cantonCode: "GR" }, + { postalCode: "7145", placeName: "Degen", cantonCode: "GR" }, + { postalCode: "7146", placeName: "Vattiz", cantonCode: "GR" }, + { postalCode: "7147", placeName: "Vignogn", cantonCode: "GR" }, + { postalCode: "7148", placeName: "Lumbrein", cantonCode: "GR" }, + { postalCode: "7149", placeName: "Vrin", cantonCode: "GR" }, + { postalCode: "7151", placeName: "Schluein", cantonCode: "GR" }, + { postalCode: "7152", placeName: "Sagogn", cantonCode: "GR" }, + { postalCode: "7153", placeName: "Falera", cantonCode: "GR" }, + { postalCode: "7154", placeName: "Ruschein", cantonCode: "GR" }, + { postalCode: "7155", placeName: "Ladir", cantonCode: "GR" }, + { postalCode: "7155", placeName: "Ladir", cantonCode: "GR" }, + { postalCode: "7156", placeName: "Pigniu", cantonCode: "GR" }, + { postalCode: "7156", placeName: "Rueun", cantonCode: "GR" }, + { postalCode: "7157", placeName: "Siat", cantonCode: "GR" }, + { postalCode: "7158", placeName: "Waltensburg/Vuorz", cantonCode: "GR" }, + { postalCode: "7159", placeName: "Andiast", cantonCode: "GR" }, + { postalCode: "7162", placeName: "Tavanasa", cantonCode: "GR" }, + { postalCode: "7163", placeName: "Danis", cantonCode: "GR" }, + { postalCode: "7164", placeName: "Dardin", cantonCode: "GR" }, + { postalCode: "7165", placeName: "Breil/Brigels", cantonCode: "GR" }, + { postalCode: "7166", placeName: "Trun", cantonCode: "GR" }, + { postalCode: "7167", placeName: "Zignau", cantonCode: "GR" }, + { postalCode: "7168", placeName: "Schlans", cantonCode: "GR" }, + { postalCode: "7172", placeName: "Rabius", cantonCode: "GR" }, + { postalCode: "7173", placeName: "Surrein", cantonCode: "GR" }, + { postalCode: "7174", placeName: "S. Benedetg", cantonCode: "GR" }, + { postalCode: "7175", placeName: "Sumvitg", cantonCode: "GR" }, + { postalCode: "7176", placeName: "Cumpadials", cantonCode: "GR" }, + { postalCode: "7180", placeName: "Disentis/Mustér", cantonCode: "GR" }, + { postalCode: "7182", placeName: "Cavardiras", cantonCode: "GR" }, + { postalCode: "7183", placeName: "Mumpé Medel", cantonCode: "GR" }, + { postalCode: "7184", placeName: "Curaglia", cantonCode: "GR" }, + { postalCode: "7185", placeName: "Platta", cantonCode: "GR" }, + { postalCode: "7186", placeName: "Segnas", cantonCode: "GR" }, + { postalCode: "7187", placeName: "Camischolas", cantonCode: "GR" }, + { postalCode: "7188", placeName: "Sedrun", cantonCode: "GR" }, + { postalCode: "7189", placeName: "Rueras", cantonCode: "GR" }, + { postalCode: "7404", placeName: "Feldis/Veulden", cantonCode: "GR" }, + { postalCode: "7405", placeName: "Rothenbrunnen", cantonCode: "GR" }, + { postalCode: "7407", placeName: "Trans", cantonCode: "GR" }, + { postalCode: "7408", placeName: "Realta", cantonCode: "GR" }, + { postalCode: "7408", placeName: "Cazis", cantonCode: "GR" }, + { postalCode: "7411", placeName: "Sils im Domleschg", cantonCode: "GR" }, + { postalCode: "7412", placeName: "Scharans", cantonCode: "GR" }, + { postalCode: "7413", placeName: "Fürstenaubruck", cantonCode: "GR" }, + { postalCode: "7414", placeName: "Fürstenau", cantonCode: "GR" }, + { postalCode: "7415", placeName: "Rodels", cantonCode: "GR" }, + { postalCode: "7415", placeName: "Pratval", cantonCode: "GR" }, + { postalCode: "7416", placeName: "Almens", cantonCode: "GR" }, + { postalCode: "7417", placeName: "Paspels", cantonCode: "GR" }, + { postalCode: "7418", placeName: "Tumegl/Tomils", cantonCode: "GR" }, + { postalCode: "7419", placeName: "Scheid", cantonCode: "GR" }, + { postalCode: "7421", placeName: "Summaprada", cantonCode: "GR" }, + { postalCode: "7422", placeName: "Tartar", cantonCode: "GR" }, + { postalCode: "7423", placeName: "Portein", cantonCode: "GR" }, + { postalCode: "7423", placeName: "Sarn", cantonCode: "GR" }, + { postalCode: "7424", placeName: "Präz", cantonCode: "GR" }, + { postalCode: "7424", placeName: "Dalin", cantonCode: "GR" }, + { postalCode: "7425", placeName: "Masein", cantonCode: "GR" }, + { postalCode: "7426", placeName: "Flerden", cantonCode: "GR" }, + { postalCode: "7426", placeName: "Flerden", cantonCode: "GR" }, + { postalCode: "7427", placeName: "Urmein", cantonCode: "GR" }, + { postalCode: "7428", placeName: "Tschappina", cantonCode: "GR" }, + { postalCode: "7428", placeName: "Glaspass", cantonCode: "GR" }, + { postalCode: "7430", placeName: "Thusis", cantonCode: "GR" }, + { postalCode: "7430", placeName: "Rongellen", cantonCode: "GR" }, + { postalCode: "7431", placeName: "Obermutten", cantonCode: "GR" }, + { postalCode: "7431", placeName: "Mutten", cantonCode: "GR" }, + { postalCode: "7432", placeName: "Zillis", cantonCode: "GR" }, + { postalCode: "7433", placeName: "Wergenstein", cantonCode: "GR" }, + { postalCode: "7433", placeName: "Farden", cantonCode: "GR" }, + { postalCode: "7433", placeName: "Lohn GR", cantonCode: "GR" }, + { postalCode: "7433", placeName: "Donat", cantonCode: "GR" }, + { postalCode: "7433", placeName: "Mathon", cantonCode: "GR" }, + { postalCode: "7434", placeName: "Sufers", cantonCode: "GR" }, + { postalCode: "7435", placeName: "Splügen", cantonCode: "GR" }, + { postalCode: "7436", placeName: "Medels im Rheinwald", cantonCode: "GR" }, + { postalCode: "7437", placeName: "Nufenen", cantonCode: "GR" }, + { postalCode: "7438", placeName: "Hinterrhein", cantonCode: "GR" }, + { postalCode: "7440", placeName: "Andeer", cantonCode: "GR" }, + { postalCode: "7442", placeName: "Clugin", cantonCode: "GR" }, + { postalCode: "7443", placeName: "Pignia", cantonCode: "GR" }, + { postalCode: "7444", placeName: "Ausserferrera", cantonCode: "GR" }, + { postalCode: "7445", placeName: "Innerferrera", cantonCode: "GR" }, + { postalCode: "7445", placeName: "Innerferrera", cantonCode: "GR" }, + { postalCode: "7446", placeName: "Campsut-Cröt", cantonCode: "GR" }, + { postalCode: "7447", placeName: "Am Bach (Avers)", cantonCode: "GR" }, + { postalCode: "7447", placeName: "Cresta (Avers)", cantonCode: "GR" }, + { postalCode: "7448", placeName: "Juf", cantonCode: "GR" }, + { postalCode: "2800", placeName: "Delémont 2", cantonCode: "JU" }, + { postalCode: "2800", placeName: "Delémont", cantonCode: "JU" }, + { postalCode: "2800", placeName: "Delémont 1", cantonCode: "JU" }, + { postalCode: "2802", placeName: "Develier", cantonCode: "JU" }, + { postalCode: "2803", placeName: "Bourrignon", cantonCode: "JU" }, + { postalCode: "2805", placeName: "Soyhières", cantonCode: "JU" }, + { postalCode: "2806", placeName: "Mettembert", cantonCode: "JU" }, + { postalCode: "2807", placeName: "Pleigne", cantonCode: "JU" }, + { postalCode: "2807", placeName: "Lucelle", cantonCode: "JU" }, + { postalCode: "2812", placeName: "Movelier", cantonCode: "JU" }, + { postalCode: "2813", placeName: "Ederswiler", cantonCode: "JU" }, + { postalCode: "2822", placeName: "Courroux", cantonCode: "JU" }, + { postalCode: "2823", placeName: "Courcelon", cantonCode: "JU" }, + { postalCode: "2824", placeName: "Vicques", cantonCode: "JU" }, + { postalCode: "2825", placeName: "Courchapoix", cantonCode: "JU" }, + { postalCode: "2826", placeName: "Corban", cantonCode: "JU" }, + { postalCode: "2827", placeName: "Mervelier", cantonCode: "JU" }, + { postalCode: "2828", placeName: "Montsevelier", cantonCode: "JU" }, + { postalCode: "2829", placeName: "Vermes", cantonCode: "JU" }, + { postalCode: "2830", placeName: "Vellerat", cantonCode: "JU" }, + { postalCode: "2830", placeName: "Courrendlin", cantonCode: "JU" }, + { postalCode: "2832", placeName: "Rebeuvelier", cantonCode: "JU" }, + { postalCode: "2842", placeName: "Rossemaison", cantonCode: "JU" }, + { postalCode: "2843", placeName: "Châtillon JU", cantonCode: "JU" }, + { postalCode: "2852", placeName: "Courtételle", cantonCode: "JU" }, + { postalCode: "2853", placeName: "Courfaivre", cantonCode: "JU" }, + { postalCode: "2854", placeName: "Bassecourt", cantonCode: "JU" }, + { postalCode: "2855", placeName: "Glovelier", cantonCode: "JU" }, + { postalCode: "2856", placeName: "Boécourt", cantonCode: "JU" }, + { postalCode: "2857", placeName: "Montavon", cantonCode: "JU" }, + { postalCode: "2863", placeName: "Undervelier", cantonCode: "JU" }, + { postalCode: "2864", placeName: "Soulce", cantonCode: "JU" }, + { postalCode: "2873", placeName: "Saulcy", cantonCode: "JU" }, + { postalCode: "2336", placeName: "Les Bois", cantonCode: "JU" }, + { postalCode: "2338", placeName: "Muriaux", cantonCode: "JU" }, + { postalCode: "2338", placeName: "Les Emibois", cantonCode: "JU" }, + { postalCode: "2340", placeName: "Le Noirmont", cantonCode: "JU" }, + { postalCode: "2345", placeName: "Les Breuleux", cantonCode: "JU" }, + { postalCode: "2345", placeName: "La Chaux-des-Breuleux", cantonCode: "JU" }, + { postalCode: "2350", placeName: "Saignelégier", cantonCode: "JU" }, + { postalCode: "2353", placeName: "Les Pommerats", cantonCode: "JU" }, + { postalCode: "2354", placeName: "Goumois", cantonCode: "JU" }, + { postalCode: "2360", placeName: "Le Bémont JU", cantonCode: "JU" }, + { postalCode: "2362", placeName: "Montfaucon", cantonCode: "JU" }, + { postalCode: "2362", placeName: "Montfavergier", cantonCode: "JU" }, + { postalCode: "2363", placeName: "Les Enfers", cantonCode: "JU" }, + { postalCode: "2364", placeName: "St-Brais", cantonCode: "JU" }, + { postalCode: "2714", placeName: "Les Genevez JU", cantonCode: "JU" }, + { postalCode: "2714", placeName: "Le Prédame", cantonCode: "JU" }, + { postalCode: "2718", placeName: "Fornet-Dessus", cantonCode: "JU" }, + { postalCode: "2718", placeName: "Lajoux JU", cantonCode: "JU" }, + { postalCode: "2882", placeName: "St-Ursanne", cantonCode: "JU" }, + { postalCode: "2887", placeName: "Soubey", cantonCode: "JU" }, + { postalCode: "2882", placeName: "St-Ursanne", cantonCode: "JU" }, + { postalCode: "2883", placeName: "Montmelon", cantonCode: "JU" }, + { postalCode: "2884", placeName: "Montenol", cantonCode: "JU" }, + { postalCode: "2885", placeName: "Epauvillers", cantonCode: "JU" }, + { postalCode: "2886", placeName: "Epiquerez", cantonCode: "JU" }, + { postalCode: "2888", placeName: "Seleute", cantonCode: "JU" }, + { postalCode: "2889", placeName: "Ocourt", cantonCode: "JU" }, + { postalCode: "2900", placeName: "Porrentruy 1", cantonCode: "JU" }, + { postalCode: "2900", placeName: "Porrentruy", cantonCode: "JU" }, + { postalCode: "2900", placeName: "Porrentruy 2", cantonCode: "JU" }, + { postalCode: "2902", placeName: "Fontenais", cantonCode: "JU" }, + { postalCode: "2903", placeName: "Villars-sur-Fontenais", cantonCode: "JU" }, + { postalCode: "2904", placeName: "Bressaucourt", cantonCode: "JU" }, + { postalCode: "2905", placeName: "Courtedoux", cantonCode: "JU" }, + { postalCode: "2906", placeName: "Chevenez", cantonCode: "JU" }, + { postalCode: "2907", placeName: "Rocourt", cantonCode: "JU" }, + { postalCode: "2908", placeName: "Grandfontaine", cantonCode: "JU" }, + { postalCode: "2912", placeName: "Roche-d'Or", cantonCode: "JU" }, + { postalCode: "2912", placeName: "Réclère", cantonCode: "JU" }, + { postalCode: "2914", placeName: "Damvant", cantonCode: "JU" }, + { postalCode: "2915", placeName: "Bure", cantonCode: "JU" }, + { postalCode: "2916", placeName: "Fahy", cantonCode: "JU" }, + { postalCode: "2922", placeName: "Courchavon", cantonCode: "JU" }, + { postalCode: "2923", placeName: "Courtemaîche", cantonCode: "JU" }, + { postalCode: "2924", placeName: "Montignez", cantonCode: "JU" }, + { postalCode: "2925", placeName: "Buix", cantonCode: "JU" }, + { postalCode: "2926", placeName: "Boncourt", cantonCode: "JU" }, + { postalCode: "2932", placeName: "Coeuve", cantonCode: "JU" }, + { postalCode: "2933", placeName: "Damphreux", cantonCode: "JU" }, + { postalCode: "2933", placeName: "Lugnez", cantonCode: "JU" }, + { postalCode: "2935", placeName: "Beurnevésin", cantonCode: "JU" }, + { postalCode: "2942", placeName: "Alle", cantonCode: "JU" }, + { postalCode: "2943", placeName: "Vendlincourt", cantonCode: "JU" }, + { postalCode: "2944", placeName: "Bonfol", cantonCode: "JU" }, + { postalCode: "2946", placeName: "Miécourt", cantonCode: "JU" }, + { postalCode: "2947", placeName: "Charmoille", cantonCode: "JU" }, + { postalCode: "2950", placeName: "Courtemautruy", cantonCode: "JU" }, + { postalCode: "2950", placeName: "Courgenay", cantonCode: "JU" }, + { postalCode: "2952", placeName: "Cornol", cantonCode: "JU" }, + { postalCode: "2953", placeName: "Fregiécourt", cantonCode: "JU" }, + { postalCode: "2953", placeName: "Pleujouse", cantonCode: "JU" }, + { postalCode: "2954", placeName: "Asuel", cantonCode: "JU" }, + { postalCode: "6000", placeName: "Luzern 14", cantonCode: "LU" }, + { postalCode: "6000", placeName: "Luzern 6", cantonCode: "LU" }, + { postalCode: "6000", placeName: "Luzern 7", cantonCode: "LU" }, + { postalCode: "6000", placeName: "Luzern 15", cantonCode: "LU" }, + { postalCode: "6000", placeName: "Luzern 30 AAL", cantonCode: "LU" }, + { postalCode: "6000", placeName: "Luzern", cantonCode: "LU" }, + { postalCode: "6000", placeName: "Luzern 16", cantonCode: "LU" }, + { postalCode: "6002", placeName: "Luzern", cantonCode: "LU" }, + { postalCode: "6003", placeName: "Luzern", cantonCode: "LU" }, + { postalCode: "6004", placeName: "Luzern", cantonCode: "LU" }, + { postalCode: "6005", placeName: "Luzern", cantonCode: "LU" }, + { postalCode: "6006", placeName: "Luzern", cantonCode: "LU" }, + { postalCode: "6007", placeName: "Luzern", cantonCode: "LU" }, + { postalCode: "6014", placeName: "Luzern", cantonCode: "LU" }, + { postalCode: "6015", placeName: "Luzern", cantonCode: "LU" }, + { postalCode: "6005", placeName: "St. Niklausen LU", cantonCode: "LU" }, + { postalCode: "6009", placeName: "Luzern", cantonCode: "LU" }, + { postalCode: "6010", placeName: "Kriens", cantonCode: "LU" }, + { postalCode: "6010", placeName: "Kriens 2", cantonCode: "LU" }, + { postalCode: "6011", placeName: "Kriens", cantonCode: "LU" }, + { postalCode: "6012", placeName: "Obernau", cantonCode: "LU" }, + { postalCode: "6013", placeName: "Eigenthal", cantonCode: "LU" }, + { postalCode: "6030", placeName: "Ebikon", cantonCode: "LU" }, + { postalCode: "6031", placeName: "Ebikon", cantonCode: "LU" }, + { postalCode: "6033", placeName: "Buchrain", cantonCode: "LU" }, + { postalCode: "6035", placeName: "Perlen", cantonCode: "LU" }, + { postalCode: "6036", placeName: "Dierikon", cantonCode: "LU" }, + { postalCode: "6037", placeName: "Root", cantonCode: "LU" }, + { postalCode: "6038", placeName: "Honau", cantonCode: "LU" }, + { postalCode: "6038", placeName: "Gisikon", cantonCode: "LU" }, + { postalCode: "6039", placeName: "Root D4", cantonCode: "LU" }, + { postalCode: "6043", placeName: "Adligenswil", cantonCode: "LU" }, + { postalCode: "6044", placeName: "Udligenswil", cantonCode: "LU" }, + { postalCode: "6045", placeName: "Meggen", cantonCode: "LU" }, + { postalCode: "6047", placeName: "Kastanienbaum", cantonCode: "LU" }, + { postalCode: "6048", placeName: "Horw", cantonCode: "LU" }, + { postalCode: "6102", placeName: "Malters", cantonCode: "LU" }, + { postalCode: "6103", placeName: "Schwarzenberg LU", cantonCode: "LU" }, + { postalCode: "6344", placeName: "Meierskappel", cantonCode: "LU" }, + { postalCode: "6353", placeName: "Weggis", cantonCode: "LU" }, + { postalCode: "6354", placeName: "Vitznau", cantonCode: "LU" }, + { postalCode: "6356", placeName: "Rigi Kaltbad", cantonCode: "LU" }, + { postalCode: "6404", placeName: "Greppen", cantonCode: "LU" }, + { postalCode: "6020", placeName: "Emmenbrücke", cantonCode: "LU" }, + { postalCode: "6020", placeName: "Emmenbrücke 2", cantonCode: "LU" }, + { postalCode: "6021", placeName: "Emmenbrücke 1", cantonCode: "LU" }, + { postalCode: "6023", placeName: "Rothenburg", cantonCode: "LU" }, + { postalCode: "6026", placeName: "Rain", cantonCode: "LU" }, + { postalCode: "6027", placeName: "Römerswil LU", cantonCode: "LU" }, + { postalCode: "6028", placeName: "Herlisberg", cantonCode: "LU" }, + { postalCode: "6032", placeName: "Emmen", cantonCode: "LU" }, + { postalCode: "6034", placeName: "Inwil", cantonCode: "LU" }, + { postalCode: "6274", placeName: "Eschenbach LU", cantonCode: "LU" }, + { postalCode: "6275", placeName: "Ballwil", cantonCode: "LU" }, + { postalCode: "6276", placeName: "Hohenrain", cantonCode: "LU" }, + { postalCode: "6277", placeName: "Kleinwangen", cantonCode: "LU" }, + { postalCode: "6277", placeName: "Lieli LU", cantonCode: "LU" }, + { postalCode: "6280", placeName: "Urswil", cantonCode: "LU" }, + { postalCode: "6280", placeName: "Hochdorf", cantonCode: "LU" }, + { postalCode: "6281", placeName: "Hochdorf", cantonCode: "LU" }, + { postalCode: "6283", placeName: "Baldegg", cantonCode: "LU" }, + { postalCode: "6284", placeName: "Sulz LU", cantonCode: "LU" }, + { postalCode: "6284", placeName: "Gelfingen", cantonCode: "LU" }, + { postalCode: "6285", placeName: "Hitzkirch", cantonCode: "LU" }, + { postalCode: "6285", placeName: "Retschwil", cantonCode: "LU" }, + { postalCode: "6286", placeName: "Altwis", cantonCode: "LU" }, + { postalCode: "6287", placeName: "Aesch LU", cantonCode: "LU" }, + { postalCode: "6288", placeName: "Schongau", cantonCode: "LU" }, + { postalCode: "6289", placeName: "Hämikon", cantonCode: "LU" }, + { postalCode: "6289", placeName: "Müswangen", cantonCode: "LU" }, + { postalCode: "6289", placeName: "Hämikon", cantonCode: "LU" }, + { postalCode: "6294", placeName: "Ermensee", cantonCode: "LU" }, + { postalCode: "6295", placeName: "Mosen", cantonCode: "LU" }, + { postalCode: "5735", placeName: "Pfeffikon LU", cantonCode: "LU" }, + { postalCode: "6016", placeName: "Hellbühl", cantonCode: "LU" }, + { postalCode: "6017", placeName: "Ruswil", cantonCode: "LU" }, + { postalCode: "6018", placeName: "Buttisholz", cantonCode: "LU" }, + { postalCode: "6019", placeName: "Sigigen", cantonCode: "LU" }, + { postalCode: "6022", placeName: "Grosswangen", cantonCode: "LU" }, + { postalCode: "6024", placeName: "Hildisrieden", cantonCode: "LU" }, + { postalCode: "6025", placeName: "Neudorf", cantonCode: "LU" }, + { postalCode: "6203", placeName: "Sempach Station", cantonCode: "LU" }, + { postalCode: "6204", placeName: "Sempach", cantonCode: "LU" }, + { postalCode: "6205", placeName: "Eich", cantonCode: "LU" }, + { postalCode: "6206", placeName: "Neuenkirch", cantonCode: "LU" }, + { postalCode: "6207", placeName: "Nottwil Paraplegikerzentrum", cantonCode: "LU" }, + { postalCode: "6207", placeName: "Nottwil", cantonCode: "LU" }, + { postalCode: "6208", placeName: "Oberkirch LU", cantonCode: "LU" }, + { postalCode: "6210", placeName: "Sursee", cantonCode: "LU" }, + { postalCode: "6212", placeName: "Kaltbach", cantonCode: "LU" }, + { postalCode: "6212", placeName: "St. Erhard", cantonCode: "LU" }, + { postalCode: "6213", placeName: "Knutwil", cantonCode: "LU" }, + { postalCode: "6214", placeName: "Schenkon", cantonCode: "LU" }, + { postalCode: "6215", placeName: "Beromünster", cantonCode: "LU" }, + { postalCode: "6215", placeName: "Schwarzenbach LU", cantonCode: "LU" }, + { postalCode: "6216", placeName: "Mauensee", cantonCode: "LU" }, + { postalCode: "6221", placeName: "Rickenbach LU", cantonCode: "LU" }, + { postalCode: "6222", placeName: "Gunzwil", cantonCode: "LU" }, + { postalCode: "6231", placeName: "Schlierbach", cantonCode: "LU" }, + { postalCode: "6232", placeName: "Geuensee", cantonCode: "LU" }, + { postalCode: "6233", placeName: "Büron", cantonCode: "LU" }, + { postalCode: "6234", placeName: "Triengen", cantonCode: "LU" }, + { postalCode: "6234", placeName: "Kulmerau", cantonCode: "LU" }, + { postalCode: "6235", placeName: "Winikon", cantonCode: "LU" }, + { postalCode: "6236", placeName: "Wilihof", cantonCode: "LU" }, + { postalCode: "4806", placeName: "Wikon", cantonCode: "LU" }, + { postalCode: "4915", placeName: "St. Urban", cantonCode: "LU" }, + { postalCode: "6122", placeName: "Menznau", cantonCode: "LU" }, + { postalCode: "6123", placeName: "Geiss", cantonCode: "LU" }, + { postalCode: "6125", placeName: "Menzberg", cantonCode: "LU" }, + { postalCode: "6126", placeName: "Daiwil", cantonCode: "LU" }, + { postalCode: "6130", placeName: "Willisau", cantonCode: "LU" }, + { postalCode: "6132", placeName: "Rohrmatt", cantonCode: "LU" }, + { postalCode: "6133", placeName: "Hergiswil b. Willisau", cantonCode: "LU" }, + { postalCode: "6142", placeName: "Gettnau", cantonCode: "LU" }, + { postalCode: "6143", placeName: "Ohmstal", cantonCode: "LU" }, + { postalCode: "6144", placeName: "Zell LU", cantonCode: "LU" }, + { postalCode: "6145", placeName: "Fischbach LU", cantonCode: "LU" }, + { postalCode: "6146", placeName: "Grossdietwil", cantonCode: "LU" }, + { postalCode: "6147", placeName: "Altbüron", cantonCode: "LU" }, + { postalCode: "6152", placeName: "Hüswil", cantonCode: "LU" }, + { postalCode: "6153", placeName: "Ufhusen", cantonCode: "LU" }, + { postalCode: "6154", placeName: "Hofstatt", cantonCode: "LU" }, + { postalCode: "6156", placeName: "Luthern", cantonCode: "LU" }, + { postalCode: "6156", placeName: "Luthern Bad", cantonCode: "LU" }, + { postalCode: "6211", placeName: "Buchs LU", cantonCode: "LU" }, + { postalCode: "6217", placeName: "Kottwil", cantonCode: "LU" }, + { postalCode: "6218", placeName: "Ettiswil", cantonCode: "LU" }, + { postalCode: "6242", placeName: "Wauwil", cantonCode: "LU" }, + { postalCode: "6243", placeName: "Egolzwil", cantonCode: "LU" }, + { postalCode: "6244", placeName: "Nebikon", cantonCode: "LU" }, + { postalCode: "6245", placeName: "Ebersecken", cantonCode: "LU" }, + { postalCode: "6246", placeName: "Altishofen", cantonCode: "LU" }, + { postalCode: "6247", placeName: "Schötz", cantonCode: "LU" }, + { postalCode: "6248", placeName: "Alberswil", cantonCode: "LU" }, + { postalCode: "6252", placeName: "Dagmersellen", cantonCode: "LU" }, + { postalCode: "6253", placeName: "Uffikon", cantonCode: "LU" }, + { postalCode: "6260", placeName: "Reiden", cantonCode: "LU" }, + { postalCode: "6260", placeName: "Hintermoos", cantonCode: "LU" }, + { postalCode: "6260", placeName: "Reidermoos", cantonCode: "LU" }, + { postalCode: "6260", placeName: "Mehlsecken", cantonCode: "LU" }, + { postalCode: "6262", placeName: "Langnau b. Reiden", cantonCode: "LU" }, + { postalCode: "6263", placeName: "Richenthal", cantonCode: "LU" }, + { postalCode: "6264", placeName: "Pfaffnau", cantonCode: "LU" }, + { postalCode: "6265", placeName: "Roggliswil", cantonCode: "LU" }, + { postalCode: "6105", placeName: "Schachen LU", cantonCode: "LU" }, + { postalCode: "6106", placeName: "Werthenstein", cantonCode: "LU" }, + { postalCode: "6110", placeName: "Fontannen b. Wolhusen", cantonCode: "LU" }, + { postalCode: "6110", placeName: "Wolhusen", cantonCode: "LU" }, + { postalCode: "6112", placeName: "Doppleschwand", cantonCode: "LU" }, + { postalCode: "6113", placeName: "Romoos", cantonCode: "LU" }, + { postalCode: "6114", placeName: "Steinhuserberg", cantonCode: "LU" }, + { postalCode: "6160", placeName: "Entlebuch Businesszentrum", cantonCode: "LU" }, + { postalCode: "6160", placeName: "Entlebuch", cantonCode: "LU" }, + { postalCode: "6162", placeName: "Rengg", cantonCode: "LU" }, + { postalCode: "6162", placeName: "Finsterwald b. Entlebuch", cantonCode: "LU" }, + { postalCode: "6162", placeName: "Entlebuch", cantonCode: "LU" }, + { postalCode: "6163", placeName: "Ebnet", cantonCode: "LU" }, + { postalCode: "6166", placeName: "Hasle LU", cantonCode: "LU" }, + { postalCode: "6167", placeName: "Bramboden", cantonCode: "LU" }, + { postalCode: "6170", placeName: "Schüpfheim", cantonCode: "LU" }, + { postalCode: "6173", placeName: "Flühli LU", cantonCode: "LU" }, + { postalCode: "6174", placeName: "Sörenberg", cantonCode: "LU" }, + { postalCode: "6182", placeName: "Escholzmatt", cantonCode: "LU" }, + { postalCode: "6192", placeName: "Wiggen", cantonCode: "LU" }, + { postalCode: "6196", placeName: "Marbach LU", cantonCode: "LU" }, + { postalCode: "2012", placeName: "Auvernier", cantonCode: "NE" }, + { postalCode: "2013", placeName: "Colombier NE", cantonCode: "NE" }, + { postalCode: "2014", placeName: "Bôle", cantonCode: "NE" }, + { postalCode: "2015", placeName: "Areuse", cantonCode: "NE" }, + { postalCode: "2016", placeName: "Cortaillod", cantonCode: "NE" }, + { postalCode: "2017", placeName: "Boudry", cantonCode: "NE" }, + { postalCode: "2019", placeName: "Chambrelien", cantonCode: "NE" }, + { postalCode: "2019", placeName: "Rochefort", cantonCode: "NE" }, + { postalCode: "2022", placeName: "Bevaix", cantonCode: "NE" }, + { postalCode: "2023", placeName: "Gorgier", cantonCode: "NE" }, + { postalCode: "2024", placeName: "St-Aubin-Sauges", cantonCode: "NE" }, + { postalCode: "2025", placeName: "Chez-le-Bart", cantonCode: "NE" }, + { postalCode: "2027", placeName: "Montalchez", cantonCode: "NE" }, + { postalCode: "2027", placeName: "Fresens", cantonCode: "NE" }, + { postalCode: "2028", placeName: "Vaumarcus", cantonCode: "NE" }, + { postalCode: "2034", placeName: "Peseux", cantonCode: "NE" }, + { postalCode: "2035", placeName: "Corcelles NE", cantonCode: "NE" }, + { postalCode: "2036", placeName: "Cormondrèche", cantonCode: "NE" }, + { postalCode: "2037", placeName: "Montezillon", cantonCode: "NE" }, + { postalCode: "2149", placeName: "Champ-du-Moulin", cantonCode: "NE" }, + { postalCode: "2149", placeName: "Brot-Dessous", cantonCode: "NE" }, + { postalCode: "2149", placeName: "Fretereules", cantonCode: "NE" }, + { postalCode: "2300", placeName: "La Chaux-de-Fonds", cantonCode: "NE" }, + { postalCode: "2300", placeName: "La Cibourg", cantonCode: "NE" }, + { postalCode: "2301", placeName: "La Chaux-de-Fonds", cantonCode: "NE" }, + { postalCode: "2303", placeName: "La Chaux-de-Fonds", cantonCode: "NE" }, + { postalCode: "2304", placeName: "La Chaux-de-Fonds", cantonCode: "NE" }, + { postalCode: "2314", placeName: "La Sagne NE", cantonCode: "NE" }, + { postalCode: "2322", placeName: "Le Crêt-du-Locle", cantonCode: "NE" }, + { postalCode: "2325", placeName: "Les Planchettes", cantonCode: "NE" }, + { postalCode: "2333", placeName: "La Cibourg", cantonCode: "NE" }, + { postalCode: "2616", placeName: "La Cibourg", cantonCode: "NE" }, + { postalCode: "2316", placeName: "Les Ponts-de-Martel", cantonCode: "NE" }, + { postalCode: "2316", placeName: "Petit-Martel", cantonCode: "NE" }, + { postalCode: "2318", placeName: "Brot-Plamboz", cantonCode: "NE" }, + { postalCode: "2400", placeName: "Le Prévoux", cantonCode: "NE" }, + { postalCode: "2400", placeName: "Le Locle", cantonCode: "NE" }, + { postalCode: "2400", placeName: "Le Locle", cantonCode: "NE" }, + { postalCode: "2405", placeName: "La Chaux-du-Milieu", cantonCode: "NE" }, + { postalCode: "2406", placeName: "Les Taillères", cantonCode: "NE" }, + { postalCode: "2406", placeName: "La Brévine", cantonCode: "NE" }, + { postalCode: "2406", placeName: "Le Brouillet", cantonCode: "NE" }, + { postalCode: "2406", placeName: "La Châtagne", cantonCode: "NE" }, + { postalCode: "2414", placeName: "Le Cerneux-Péquignot", cantonCode: "NE" }, + { postalCode: "2416", placeName: "Les Brenets", cantonCode: "NE" }, + { postalCode: "2000", placeName: "Neuchâtel", cantonCode: "NE" }, + { postalCode: "2001", placeName: "Neuchâtel 1", cantonCode: "NE" }, + { postalCode: "2002", placeName: "Neuchâtel 2", cantonCode: "NE" }, + { postalCode: "2010", placeName: "Neuchâtel OFS", cantonCode: "NE" }, + { postalCode: "2067", placeName: "Chaumont", cantonCode: "NE" }, + { postalCode: "2068", placeName: "Hauterive NE", cantonCode: "NE" }, + { postalCode: "2072", placeName: "St-Blaise", cantonCode: "NE" }, + { postalCode: "2073", placeName: "Enges", cantonCode: "NE" }, + { postalCode: "2074", placeName: "Marin-Centre", cantonCode: "NE" }, + { postalCode: "2074", placeName: "Marin-Epagnier", cantonCode: "NE" }, + { postalCode: "2075", placeName: "Thielle", cantonCode: "NE" }, + { postalCode: "2075", placeName: "Wavre", cantonCode: "NE" }, + { postalCode: "2087", placeName: "Cornaux NE", cantonCode: "NE" }, + { postalCode: "2088", placeName: "Cressier NE", cantonCode: "NE" }, + { postalCode: "2523", placeName: "Lignières", cantonCode: "NE" }, + { postalCode: "2525", placeName: "Le Landeron", cantonCode: "NE" }, + { postalCode: "2037", placeName: "Montmollin", cantonCode: "NE" }, + { postalCode: "2042", placeName: "Valangin", cantonCode: "NE" }, + { postalCode: "2043", placeName: "Boudevilliers", cantonCode: "NE" }, + { postalCode: "2046", placeName: "Fontaines NE", cantonCode: "NE" }, + { postalCode: "2052", placeName: "La Vue-des-Alpes", cantonCode: "NE" }, + { postalCode: "2052", placeName: "Fontainemelon", cantonCode: "NE" }, + { postalCode: "2053", placeName: "Cernier", cantonCode: "NE" }, + { postalCode: "2054", placeName: "Les Vieux-Prés", cantonCode: "NE" }, + { postalCode: "2054", placeName: "Chézard-St-Martin", cantonCode: "NE" }, + { postalCode: "2056", placeName: "Dombresson", cantonCode: "NE" }, + { postalCode: "2057", placeName: "Villiers", cantonCode: "NE" }, + { postalCode: "2058", placeName: "Le Pâquier NE", cantonCode: "NE" }, + { postalCode: "2063", placeName: "Saules", cantonCode: "NE" }, + { postalCode: "2063", placeName: "Engollon", cantonCode: "NE" }, + { postalCode: "2063", placeName: "Vilars NE", cantonCode: "NE" }, + { postalCode: "2063", placeName: "Fenin", cantonCode: "NE" }, + { postalCode: "2065", placeName: "Savagnier", cantonCode: "NE" }, + { postalCode: "2206", placeName: "Les Geneveys-sur-Coffrane", cantonCode: "NE" }, + { postalCode: "2207", placeName: "Coffrane", cantonCode: "NE" }, + { postalCode: "2208", placeName: "Les Hauts-Geneveys", cantonCode: "NE" }, + { postalCode: "2103", placeName: "Noiraigue", cantonCode: "NE" }, + { postalCode: "2105", placeName: "Travers", cantonCode: "NE" }, + { postalCode: "2108", placeName: "Couvet", cantonCode: "NE" }, + { postalCode: "2112", placeName: "Môtiers NE", cantonCode: "NE" }, + { postalCode: "2113", placeName: "Boveresse", cantonCode: "NE" }, + { postalCode: "2114", placeName: "Fleurier", cantonCode: "NE" }, + { postalCode: "2115", placeName: "Buttes", cantonCode: "NE" }, + { postalCode: "2116", placeName: "Mont-de-Buttes", cantonCode: "NE" }, + { postalCode: "2117", placeName: "La Côte-aux-Fées", cantonCode: "NE" }, + { postalCode: "2123", placeName: "St-Sulpice NE", cantonCode: "NE" }, + { postalCode: "2124", placeName: "Les Sagnettes", cantonCode: "NE" }, + { postalCode: "2126", placeName: "Les Verrières", cantonCode: "NE" }, + { postalCode: "2127", placeName: "Les Bayards", cantonCode: "NE" }, + { postalCode: "6052", placeName: "Hergiswil NW", cantonCode: "NW" }, + { postalCode: "6362", placeName: "Stansstad", cantonCode: "NW" }, + { postalCode: "6363", placeName: "Fürigen", cantonCode: "NW" }, + { postalCode: "6363", placeName: "Bürgenstock", cantonCode: "NW" }, + { postalCode: "6363", placeName: "Obbürgen", cantonCode: "NW" }, + { postalCode: "6365", placeName: "Kehrsiten", cantonCode: "NW" }, + { postalCode: "6370", placeName: "Stans", cantonCode: "NW" }, + { postalCode: "6370", placeName: "Oberdorf NW", cantonCode: "NW" }, + { postalCode: "6371", placeName: "Stans", cantonCode: "NW" }, + { postalCode: "6372", placeName: "Ennetmoos", cantonCode: "NW" }, + { postalCode: "6373", placeName: "Ennetbürgen", cantonCode: "NW" }, + { postalCode: "6374", placeName: "Buochs", cantonCode: "NW" }, + { postalCode: "6375", placeName: "Beckenried", cantonCode: "NW" }, + { postalCode: "6376", placeName: "Emmetten", cantonCode: "NW" }, + { postalCode: "6382", placeName: "Büren NW", cantonCode: "NW" }, + { postalCode: "6383", placeName: "Wiesenberg", cantonCode: "NW" }, + { postalCode: "6383", placeName: "Wirzweli", cantonCode: "NW" }, + { postalCode: "6383", placeName: "Dallenwil", cantonCode: "NW" }, + { postalCode: "6383", placeName: "Niederrickenbach", cantonCode: "NW" }, + { postalCode: "6386", placeName: "Wolfenschiessen", cantonCode: "NW" }, + { postalCode: "6387", placeName: "Oberrickenbach", cantonCode: "NW" }, + { postalCode: "6010", placeName: "Kriens", cantonCode: "OW" }, + { postalCode: "6010", placeName: "Pilatus Kulm", cantonCode: "OW" }, + { postalCode: "6053", placeName: "Alpnachstad", cantonCode: "OW" }, + { postalCode: "6055", placeName: "Alpnach Dorf", cantonCode: "OW" }, + { postalCode: "6056", placeName: "Kägiswil", cantonCode: "OW" }, + { postalCode: "6060", placeName: "Ramersberg", cantonCode: "OW" }, + { postalCode: "6060", placeName: "Sarnen", cantonCode: "OW" }, + { postalCode: "6060", placeName: "Sarnen 2", cantonCode: "OW" }, + { postalCode: "6061", placeName: "Sarnen 1", cantonCode: "OW" }, + { postalCode: "6062", placeName: "Wilen (Sarnen)", cantonCode: "OW" }, + { postalCode: "6063", placeName: "Stalden (Sarnen)", cantonCode: "OW" }, + { postalCode: "6064", placeName: "Kerns", cantonCode: "OW" }, + { postalCode: "6066", placeName: "St. Niklausen OW", cantonCode: "OW" }, + { postalCode: "6067", placeName: "Melchtal", cantonCode: "OW" }, + { postalCode: "6068", placeName: "Melchsee-Frutt", cantonCode: "OW" }, + { postalCode: "6072", placeName: "Sachseln", cantonCode: "OW" }, + { postalCode: "6073", placeName: "Flüeli-Ranft", cantonCode: "OW" }, + { postalCode: "6074", placeName: "Giswil", cantonCode: "OW" }, + { postalCode: "6078", placeName: "Bürglen OW", cantonCode: "OW" }, + { postalCode: "6078", placeName: "Lungern", cantonCode: "OW" }, + { postalCode: "6388", placeName: "Grafenort", cantonCode: "OW" }, + { postalCode: "6390", placeName: "Engelberg", cantonCode: "OW" }, + { postalCode: "6391", placeName: "Engelberg", cantonCode: "OW" }, + { postalCode: "9000", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9001", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9004", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9006", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9007", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9008", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9010", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9011", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9012", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9013", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9014", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9015", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9016", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9020", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9021", placeName: "St. Gallen MS", cantonCode: "SG" }, + { postalCode: "9023", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9024", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9024", placeName: "St. Gallen Presse-Serv.Güll", cantonCode: "SG" }, + { postalCode: "9026", placeName: "St. Gallen K AG", cantonCode: "SG" }, + { postalCode: "9026", placeName: "St. Gallen Künzler AG", cantonCode: "SG" }, + { postalCode: "9027", placeName: "St. Gallen Mona Versand", cantonCode: "SG" }, + { postalCode: "9027", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9028", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9029", placeName: "St. Gallen", cantonCode: "SG" }, + { postalCode: "9029", placeName: "St. Gallen Sonderdienste", cantonCode: "SG" }, + { postalCode: "9030", placeName: "St. Josefen", cantonCode: "SG" }, + { postalCode: "9030", placeName: "Abtwil SG", cantonCode: "SG" }, + { postalCode: "9032", placeName: "Engelburg", cantonCode: "SG" }, + { postalCode: "9034", placeName: "Eggersriet", cantonCode: "SG" }, + { postalCode: "9036", placeName: "Grub SG", cantonCode: "SG" }, + { postalCode: "9200", placeName: "Gossau SG", cantonCode: "SG" }, + { postalCode: "9200", placeName: "Gossau SG 2", cantonCode: "SG" }, + { postalCode: "9201", placeName: "Gossau SG", cantonCode: "SG" }, + { postalCode: "9204", placeName: "Andwil SG", cantonCode: "SG" }, + { postalCode: "9205", placeName: "Waldkirch", cantonCode: "SG" }, + { postalCode: "9212", placeName: "Arnegg", cantonCode: "SG" }, + { postalCode: "9300", placeName: "Wittenbach", cantonCode: "SG" }, + { postalCode: "9301", placeName: "Wittenbach", cantonCode: "SG" }, + { postalCode: "9304", placeName: "Bernhardzell", cantonCode: "SG" }, + { postalCode: "9308", placeName: "Lömmenschwil", cantonCode: "SG" }, + { postalCode: "9312", placeName: "Häggenschwil", cantonCode: "SG" }, + { postalCode: "9313", placeName: "Muolen", cantonCode: "SG" }, + { postalCode: "9033", placeName: "Untereggen", cantonCode: "SG" }, + { postalCode: "9305", placeName: "Berg SG", cantonCode: "SG" }, + { postalCode: "9323", placeName: "Steinach", cantonCode: "SG" }, + { postalCode: "9327", placeName: "Tübach", cantonCode: "SG" }, + { postalCode: "9400", placeName: "Rorschach", cantonCode: "SG" }, + { postalCode: "9401", placeName: "Rorschach", cantonCode: "SG" }, + { postalCode: "9402", placeName: "Mörschwil", cantonCode: "SG" }, + { postalCode: "9403", placeName: "Goldach", cantonCode: "SG" }, + { postalCode: "9404", placeName: "Rorschacherberg", cantonCode: "SG" }, + { postalCode: "9422", placeName: "Staad SG", cantonCode: "SG" }, + { postalCode: "9423", placeName: "Altenrhein", cantonCode: "SG" }, + { postalCode: "9425", placeName: "Thal", cantonCode: "SG" }, + { postalCode: "9411", placeName: "Reute AR", cantonCode: "SG" }, + { postalCode: "9424", placeName: "Rheineck", cantonCode: "SG" }, + { postalCode: "9430", placeName: "St. Margrethen SG", cantonCode: "SG" }, + { postalCode: "9434", placeName: "Au SG", cantonCode: "SG" }, + { postalCode: "9435", placeName: "Heerbrugg", cantonCode: "SG" }, + { postalCode: "9436", placeName: "Balgach", cantonCode: "SG" }, + { postalCode: "9437", placeName: "Marbach SG", cantonCode: "SG" }, + { postalCode: "9442", placeName: "Berneck", cantonCode: "SG" }, + { postalCode: "9443", placeName: "Widnau", cantonCode: "SG" }, + { postalCode: "9444", placeName: "Diepoldsau", cantonCode: "SG" }, + { postalCode: "9445", placeName: "Rebstein", cantonCode: "SG" }, + { postalCode: "9450", placeName: "Altstätten SG 2", cantonCode: "SG" }, + { postalCode: "9450", placeName: "Altstätten SG", cantonCode: "SG" }, + { postalCode: "9450", placeName: "Lüchingen", cantonCode: "SG" }, + { postalCode: "9451", placeName: "Kriessern", cantonCode: "SG" }, + { postalCode: "9452", placeName: "Hinterforst", cantonCode: "SG" }, + { postalCode: "9453", placeName: "Eichberg", cantonCode: "SG" }, + { postalCode: "9462", placeName: "Montlingen", cantonCode: "SG" }, + { postalCode: "9462", placeName: "Montlingen", cantonCode: "SG" }, + { postalCode: "9463", placeName: "Oberriet SG", cantonCode: "SG" }, + { postalCode: "9464", placeName: "Rüthi (Rheintal)", cantonCode: "SG" }, + { postalCode: "9464", placeName: "Lienz", cantonCode: "SG" }, + { postalCode: "9465", placeName: "Salez", cantonCode: "SG" }, + { postalCode: "9466", placeName: "Sennwald", cantonCode: "SG" }, + { postalCode: "9467", placeName: "Frümsen", cantonCode: "SG" }, + { postalCode: "9468", placeName: "Sax", cantonCode: "SG" }, + { postalCode: "9469", placeName: "Haag (Rheintal)", cantonCode: "SG" }, + { postalCode: "9470", placeName: "Werdenberg", cantonCode: "SG" }, + { postalCode: "9470", placeName: "Buchs SG", cantonCode: "SG" }, + { postalCode: "9471", placeName: "Buchs SG 3", cantonCode: "SG" }, + { postalCode: "9471", placeName: "Buchs SG 1", cantonCode: "SG" }, + { postalCode: "9472", placeName: "Grabs", cantonCode: "SG" }, + { postalCode: "9472", placeName: "Grabserberg", cantonCode: "SG" }, + { postalCode: "9473", placeName: "Gams", cantonCode: "SG" }, + { postalCode: "9475", placeName: "Sevelen", cantonCode: "SG" }, + { postalCode: "9476", placeName: "Weite", cantonCode: "SG" }, + { postalCode: "9476", placeName: "Fontnas", cantonCode: "SG" }, + { postalCode: "9477", placeName: "Trübbach", cantonCode: "SG" }, + { postalCode: "9478", placeName: "Azmoos", cantonCode: "SG" }, + { postalCode: "9479", placeName: "Malans SG", cantonCode: "SG" }, + { postalCode: "9479", placeName: "Oberschan", cantonCode: "SG" }, + { postalCode: "9479", placeName: "Gretschins", cantonCode: "SG" }, + { postalCode: "7310", placeName: "Bad Ragaz", cantonCode: "SG" }, + { postalCode: "7310", placeName: "Bad Ragaz", cantonCode: "SG" }, + { postalCode: "7312", placeName: "Pfäfers", cantonCode: "SG" }, + { postalCode: "7313", placeName: "St. Margrethenberg", cantonCode: "SG" }, + { postalCode: "7314", placeName: "Vadura", cantonCode: "SG" }, + { postalCode: "7315", placeName: "Vättis", cantonCode: "SG" }, + { postalCode: "7317", placeName: "Vasön", cantonCode: "SG" }, + { postalCode: "7317", placeName: "Valens", cantonCode: "SG" }, + { postalCode: "7320", placeName: "Sargans", cantonCode: "SG" }, + { postalCode: "7323", placeName: "Wangs", cantonCode: "SG" }, + { postalCode: "7324", placeName: "Vilters", cantonCode: "SG" }, + { postalCode: "7325", placeName: "Schwendi im Weisstannental", cantonCode: "SG" }, + { postalCode: "7326", placeName: "Weisstannen", cantonCode: "SG" }, + { postalCode: "8877", placeName: "Murg", cantonCode: "SG" }, + { postalCode: "8878", placeName: "Quinten", cantonCode: "SG" }, + { postalCode: "8879", placeName: "Pizolpark (Mels)", cantonCode: "SG" }, + { postalCode: "8880", placeName: "Walenstadt", cantonCode: "SG" }, + { postalCode: "8881", placeName: "Tscherlach", cantonCode: "SG" }, + { postalCode: "8881", placeName: "Walenstadtberg", cantonCode: "SG" }, + { postalCode: "8882", placeName: "Unterterzen", cantonCode: "SG" }, + { postalCode: "8883", placeName: "Quarten", cantonCode: "SG" }, + { postalCode: "8884", placeName: "Oberterzen", cantonCode: "SG" }, + { postalCode: "8885", placeName: "Mols", cantonCode: "SG" }, + { postalCode: "8886", placeName: "Mädris-Vermol", cantonCode: "SG" }, + { postalCode: "8887", placeName: "Mels", cantonCode: "SG" }, + { postalCode: "8888", placeName: "Heiligkreuz (Mels)", cantonCode: "SG" }, + { postalCode: "8889", placeName: "Plons", cantonCode: "SG" }, + { postalCode: "8890", placeName: "Flums", cantonCode: "SG" }, + { postalCode: "8892", placeName: "Berschis", cantonCode: "SG" }, + { postalCode: "8893", placeName: "Flums Hochwiese", cantonCode: "SG" }, + { postalCode: "8894", placeName: "Flumserberg Saxli", cantonCode: "SG" }, + { postalCode: "8895", placeName: "Flumserberg Portels", cantonCode: "SG" }, + { postalCode: "8896", placeName: "Flumserberg Bergheim", cantonCode: "SG" }, + { postalCode: "8897", placeName: "Flumserberg Tannenheim", cantonCode: "SG" }, + { postalCode: "8898", placeName: "Flumserberg Tannenbodenalp", cantonCode: "SG" }, + { postalCode: "8638", placeName: "Goldingen", cantonCode: "SG" }, + { postalCode: "8640", placeName: "Rapperswil SG", cantonCode: "SG" }, + { postalCode: "8645", placeName: "Jona", cantonCode: "SG" }, + { postalCode: "8646", placeName: "Wagen", cantonCode: "SG" }, + { postalCode: "8715", placeName: "Bollingen", cantonCode: "SG" }, + { postalCode: "8716", placeName: "Schmerikon", cantonCode: "SG" }, + { postalCode: "8717", placeName: "Benken SG", cantonCode: "SG" }, + { postalCode: "8718", placeName: "Schänis", cantonCode: "SG" }, + { postalCode: "8722", placeName: "Kaltbrunn", cantonCode: "SG" }, + { postalCode: "8723", placeName: "Rufi", cantonCode: "SG" }, + { postalCode: "8723", placeName: "Maseltrangen", cantonCode: "SG" }, + { postalCode: "8725", placeName: "Ernetschwil", cantonCode: "SG" }, + { postalCode: "8725", placeName: "Gebertingen", cantonCode: "SG" }, + { postalCode: "8726", placeName: "Ricken SG", cantonCode: "SG" }, + { postalCode: "8727", placeName: "Walde SG", cantonCode: "SG" }, + { postalCode: "8730", placeName: "Uznach", cantonCode: "SG" }, + { postalCode: "8732", placeName: "Neuhaus SG", cantonCode: "SG" }, + { postalCode: "8733", placeName: "Eschenbach SG", cantonCode: "SG" }, + { postalCode: "8734", placeName: "Ermenswil", cantonCode: "SG" }, + { postalCode: "8735", placeName: "St. Gallenkappel", cantonCode: "SG" }, + { postalCode: "8735", placeName: "Rüeterswil", cantonCode: "SG" }, + { postalCode: "8737", placeName: "Gommiswald", cantonCode: "SG" }, + { postalCode: "8738", placeName: "Uetliburg SG", cantonCode: "SG" }, + { postalCode: "8739", placeName: "Rieden SG", cantonCode: "SG" }, + { postalCode: "8740", placeName: "Uznach Vögele AG", cantonCode: "SG" }, + { postalCode: "8740", placeName: "Uznach Vögele Versandhaus", cantonCode: "SG" }, + { postalCode: "8866", placeName: "Ziegelbrücke", cantonCode: "SG" }, + { postalCode: "8872", placeName: "Weesen", cantonCode: "SG" }, + { postalCode: "8873", placeName: "Amden", cantonCode: "SG" }, + { postalCode: "9114", placeName: "Hoffeld", cantonCode: "SG" }, + { postalCode: "9115", placeName: "Dicken", cantonCode: "SG" }, + { postalCode: "9122", placeName: "Mogelsberg", cantonCode: "SG" }, + { postalCode: "9122", placeName: "Ebersol", cantonCode: "SG" }, + { postalCode: "9123", placeName: "Nassen", cantonCode: "SG" }, + { postalCode: "9125", placeName: "Brunnadern", cantonCode: "SG" }, + { postalCode: "9126", placeName: "Necker", cantonCode: "SG" }, + { postalCode: "9127", placeName: "St. Peterzell", cantonCode: "SG" }, + { postalCode: "9500", placeName: "Wil SG", cantonCode: "SG" }, + { postalCode: "9533", placeName: "Dietschwil", cantonCode: "SG" }, + { postalCode: "9533", placeName: "Kirchberg SG", cantonCode: "SG" }, + { postalCode: "9534", placeName: "Gähwil", cantonCode: "SG" }, + { postalCode: "9601", placeName: "Lütisburg Station", cantonCode: "SG" }, + { postalCode: "9602", placeName: "Müselbach", cantonCode: "SG" }, + { postalCode: "9602", placeName: "Bazenheid", cantonCode: "SG" }, + { postalCode: "9604", placeName: "Lütisburg", cantonCode: "SG" }, + { postalCode: "9604", placeName: "Unterrindal", cantonCode: "SG" }, + { postalCode: "9606", placeName: "Bütschwil", cantonCode: "SG" }, + { postalCode: "9607", placeName: "Mosnang", cantonCode: "SG" }, + { postalCode: "9608", placeName: "Ganterschwil", cantonCode: "SG" }, + { postalCode: "9612", placeName: "Dreien", cantonCode: "SG" }, + { postalCode: "9613", placeName: "Mühlrüti", cantonCode: "SG" }, + { postalCode: "9614", placeName: "Libingen", cantonCode: "SG" }, + { postalCode: "9615", placeName: "Dietfurt", cantonCode: "SG" }, + { postalCode: "9620", placeName: "Lichtensteig", cantonCode: "SG" }, + { postalCode: "9621", placeName: "Oberhelfenschwil", cantonCode: "SG" }, + { postalCode: "9622", placeName: "Krinau", cantonCode: "SG" }, + { postalCode: "9630", placeName: "Wattwil", cantonCode: "SG" }, + { postalCode: "9631", placeName: "Ulisbach", cantonCode: "SG" }, + { postalCode: "9633", placeName: "Hemberg", cantonCode: "SG" }, + { postalCode: "9633", placeName: "Bächli (Hemberg)", cantonCode: "SG" }, + { postalCode: "9642", placeName: "Ebnat-Kappel", cantonCode: "SG" }, + { postalCode: "9643", placeName: "Krummenau", cantonCode: "SG" }, + { postalCode: "9650", placeName: "Nesslau", cantonCode: "SG" }, + { postalCode: "9651", placeName: "Ennetbühl", cantonCode: "SG" }, + { postalCode: "9652", placeName: "Neu St. Johann", cantonCode: "SG" }, + { postalCode: "9655", placeName: "Stein SG", cantonCode: "SG" }, + { postalCode: "9656", placeName: "Alt St. Johann", cantonCode: "SG" }, + { postalCode: "9657", placeName: "Unterwasser", cantonCode: "SG" }, + { postalCode: "9658", placeName: "Wildhaus", cantonCode: "SG" }, + { postalCode: "9113", placeName: "Degersheim", cantonCode: "SG" }, + { postalCode: "9116", placeName: "Wolfertswil", cantonCode: "SG" }, + { postalCode: "9203", placeName: "Niederwil SG", cantonCode: "SG" }, + { postalCode: "9230", placeName: "Flawil 1", cantonCode: "SG" }, + { postalCode: "9230", placeName: "Flawil 2 Botsberg", cantonCode: "SG" }, + { postalCode: "9230", placeName: "Flawil", cantonCode: "SG" }, + { postalCode: "9231", placeName: "Egg (Flawil)", cantonCode: "SG" }, + { postalCode: "9240", placeName: "Uzwil", cantonCode: "SG" }, + { postalCode: "9240", placeName: "Niederglatt SG", cantonCode: "SG" }, + { postalCode: "9242", placeName: "Oberuzwil", cantonCode: "SG" }, + { postalCode: "9243", placeName: "Jonschwil", cantonCode: "SG" }, + { postalCode: "9244", placeName: "Niederuzwil", cantonCode: "SG" }, + { postalCode: "9245", placeName: "Oberbüren", cantonCode: "SG" }, + { postalCode: "9245", placeName: "Sonnental", cantonCode: "SG" }, + { postalCode: "9246", placeName: "Niederbüren", cantonCode: "SG" }, + { postalCode: "9247", placeName: "Henau", cantonCode: "SG" }, + { postalCode: "9248", placeName: "Bichwil", cantonCode: "SG" }, + { postalCode: "9249", placeName: "Niederstetten", cantonCode: "SG" }, + { postalCode: "9249", placeName: "Algetshausen", cantonCode: "SG" }, + { postalCode: "9249", placeName: "Oberstetten", cantonCode: "SG" }, + { postalCode: "9500", placeName: "Wil SG", cantonCode: "SG" }, + { postalCode: "9501", placeName: "Wil SG 1", cantonCode: "SG" }, + { postalCode: "9512", placeName: "Rossrüti", cantonCode: "SG" }, + { postalCode: "9523", placeName: "Züberwangen", cantonCode: "SG" }, + { postalCode: "9524", placeName: "Zuzwil SG", cantonCode: "SG" }, + { postalCode: "9525", placeName: "Lenggenwil", cantonCode: "SG" }, + { postalCode: "9526", placeName: "Zuckenriet", cantonCode: "SG" }, + { postalCode: "9527", placeName: "Niederhelfenschwil", cantonCode: "SG" }, + { postalCode: "9532", placeName: "Rickenbach b. Wil", cantonCode: "SG" }, + { postalCode: "9536", placeName: "Schwarzenbach SG", cantonCode: "SG" }, + { postalCode: "9552", placeName: "Bronschhofen", cantonCode: "SG" }, + { postalCode: "9604", placeName: "Oberrindal", cantonCode: "SG" }, + { postalCode: "8213", placeName: "Neunkirch", cantonCode: "SH" }, + { postalCode: "8214", placeName: "Gächlingen", cantonCode: "SH" }, + { postalCode: "8224", placeName: "Löhningen", cantonCode: "SH" }, + { postalCode: "8234", placeName: "Stetten SH", cantonCode: "SH" }, + { postalCode: "8235", placeName: "Lohn SH", cantonCode: "SH" }, + { postalCode: "8236", placeName: "Opfertshofen SH", cantonCode: "SH" }, + { postalCode: "8236", placeName: "Büttenhardt", cantonCode: "SH" }, + { postalCode: "8239", placeName: "Dörflingen", cantonCode: "SH" }, + { postalCode: "8240", placeName: "Thayngen", cantonCode: "SH" }, + { postalCode: "8241", placeName: "Barzheim", cantonCode: "SH" }, + { postalCode: "8242", placeName: "Hofen SH", cantonCode: "SH" }, + { postalCode: "8242", placeName: "Bibern SH", cantonCode: "SH" }, + { postalCode: "8243", placeName: "Altdorf SH", cantonCode: "SH" }, + { postalCode: "8200", placeName: "Schaffhausen", cantonCode: "SH" }, + { postalCode: "8201", placeName: "Schaffhausen", cantonCode: "SH" }, + { postalCode: "8203", placeName: "Schaffhausen", cantonCode: "SH" }, + { postalCode: "8207", placeName: "Schaffhausen", cantonCode: "SH" }, + { postalCode: "8208", placeName: "Schaffhausen", cantonCode: "SH" }, + { postalCode: "8212", placeName: "Neuhausen am Rheinfall", cantonCode: "SH" }, + { postalCode: "8212", placeName: "Neuhausen am Rheinfall 1", cantonCode: "SH" }, + { postalCode: "8222", placeName: "Beringen", cantonCode: "SH" }, + { postalCode: "8223", placeName: "Guntmadingen", cantonCode: "SH" }, + { postalCode: "8231", placeName: "Hemmental", cantonCode: "SH" }, + { postalCode: "8232", placeName: "Merishausen", cantonCode: "SH" }, + { postalCode: "8233", placeName: "Bargen SH", cantonCode: "SH" }, + { postalCode: "8454", placeName: "Buchberg", cantonCode: "SH" }, + { postalCode: "8455", placeName: "Rüdlingen", cantonCode: "SH" }, + { postalCode: "8225", placeName: "Siblingen", cantonCode: "SH" }, + { postalCode: "8226", placeName: "Schleitheim", cantonCode: "SH" }, + { postalCode: "8228", placeName: "Beggingen", cantonCode: "SH" }, + { postalCode: "8260", placeName: "Stein am Rhein 2 Stadt", cantonCode: "SH" }, + { postalCode: "8260", placeName: "Stein am Rhein 1", cantonCode: "SH" }, + { postalCode: "8260", placeName: "Stein am Rhein", cantonCode: "SH" }, + { postalCode: "8261", placeName: "Hemishofen", cantonCode: "SH" }, + { postalCode: "8262", placeName: "Ramsen", cantonCode: "SH" }, + { postalCode: "8263", placeName: "Buch SH", cantonCode: "SH" }, + { postalCode: "8215", placeName: "Hallau", cantonCode: "SH" }, + { postalCode: "8216", placeName: "Oberhallau", cantonCode: "SH" }, + { postalCode: "8217", placeName: "Wilchingen", cantonCode: "SH" }, + { postalCode: "8218", placeName: "Osterfingen", cantonCode: "SH" }, + { postalCode: "8219", placeName: "Trasadingen", cantonCode: "SH" }, + { postalCode: "4622", placeName: "Egerkingen", cantonCode: "SO" }, + { postalCode: "4623", placeName: "Neuendorf", cantonCode: "SO" }, + { postalCode: "4624", placeName: "Härkingen", cantonCode: "SO" }, + { postalCode: "4625", placeName: "Oberbuchsiten", cantonCode: "SO" }, + { postalCode: "4626", placeName: "Niederbuchsiten", cantonCode: "SO" }, + { postalCode: "4628", placeName: "Wolfwil", cantonCode: "SO" }, + { postalCode: "4702", placeName: "Oensingen", cantonCode: "SO" }, + { postalCode: "4703", placeName: "Kestenholz", cantonCode: "SO" }, + { postalCode: "4710", placeName: "Balsthal", cantonCode: "SO" }, + { postalCode: "4712", placeName: "Laupersdorf", cantonCode: "SO" }, + { postalCode: "4713", placeName: "Matzendorf", cantonCode: "SO" }, + { postalCode: "4714", placeName: "Aedermannsdorf", cantonCode: "SO" }, + { postalCode: "4715", placeName: "Herbetswil", cantonCode: "SO" }, + { postalCode: "4716", placeName: "Gänsbrunnen", cantonCode: "SO" }, + { postalCode: "4716", placeName: "Welschenrohr", cantonCode: "SO" }, + { postalCode: "4717", placeName: "Mümliswil", cantonCode: "SO" }, + { postalCode: "4718", placeName: "Holderbank SO", cantonCode: "SO" }, + { postalCode: "4719", placeName: "Ramiswil", cantonCode: "SO" }, + { postalCode: "3253", placeName: "Schnottwil", cantonCode: "SO" }, + { postalCode: "3254", placeName: "Messen", cantonCode: "SO" }, + { postalCode: "3254", placeName: "Balm b. Messen", cantonCode: "SO" }, + { postalCode: "3307", placeName: "Brunnenthal", cantonCode: "SO" }, + { postalCode: "4571", placeName: "Lüterkofen", cantonCode: "SO" }, + { postalCode: "4571", placeName: "Ichertswil", cantonCode: "SO" }, + { postalCode: "4574", placeName: "Nennigkofen", cantonCode: "SO" }, + { postalCode: "4574", placeName: "Lüsslingen", cantonCode: "SO" }, + { postalCode: "4576", placeName: "Tscheppach", cantonCode: "SO" }, + { postalCode: "4577", placeName: "Hessigkofen", cantonCode: "SO" }, + { postalCode: "4578", placeName: "Bibern SO", cantonCode: "SO" }, + { postalCode: "4579", placeName: "Gossliwil", cantonCode: "SO" }, + { postalCode: "4581", placeName: "Küttigkofen", cantonCode: "SO" }, + { postalCode: "4582", placeName: "Brügglen", cantonCode: "SO" }, + { postalCode: "4583", placeName: "Aetigkofen", cantonCode: "SO" }, + { postalCode: "4583", placeName: "Mühledorf SO", cantonCode: "SO" }, + { postalCode: "4584", placeName: "Gächliwil", cantonCode: "SO" }, + { postalCode: "4584", placeName: "Lüterswil", cantonCode: "SO" }, + { postalCode: "4585", placeName: "Biezwil", cantonCode: "SO" }, + { postalCode: "4586", placeName: "Kyburg-Buchegg", cantonCode: "SO" }, + { postalCode: "4587", placeName: "Aetingen", cantonCode: "SO" }, + { postalCode: "4588", placeName: "Unterramsern", cantonCode: "SO" }, + { postalCode: "4588", placeName: "Oberramsern", cantonCode: "SO" }, + { postalCode: "4588", placeName: "Brittern", cantonCode: "SO" }, + { postalCode: "4108", placeName: "Witterswil", cantonCode: "SO" }, + { postalCode: "4112", placeName: "Bättwil-Flüh", cantonCode: "SO" }, + { postalCode: "4112", placeName: "Flüh", cantonCode: "SO" }, + { postalCode: "4112", placeName: "Bättwil", cantonCode: "SO" }, + { postalCode: "4114", placeName: "Hofstetten SO", cantonCode: "SO" }, + { postalCode: "4115", placeName: "Mariastein", cantonCode: "SO" }, + { postalCode: "4116", placeName: "Metzerlen", cantonCode: "SO" }, + { postalCode: "4118", placeName: "Rodersdorf", cantonCode: "SO" }, + { postalCode: "4143", placeName: "Dornach", cantonCode: "SO" }, + { postalCode: "4145", placeName: "Gempen", cantonCode: "SO" }, + { postalCode: "4146", placeName: "Hochwald", cantonCode: "SO" }, + { postalCode: "4206", placeName: "Seewen SO", cantonCode: "SO" }, + { postalCode: "4412", placeName: "Nuglar", cantonCode: "SO" }, + { postalCode: "4413", placeName: "Büren SO", cantonCode: "SO" }, + { postalCode: "4421", placeName: "St. Pantaleon", cantonCode: "SO" }, + { postalCode: "4468", placeName: "Kienberg", cantonCode: "SO" }, + { postalCode: "4632", placeName: "Trimbach", cantonCode: "SO" }, + { postalCode: "4633", placeName: "Hauenstein", cantonCode: "SO" }, + { postalCode: "4634", placeName: "Wisen SO", cantonCode: "SO" }, + { postalCode: "4652", placeName: "Winznau", cantonCode: "SO" }, + { postalCode: "4653", placeName: "Obergösgen", cantonCode: "SO" }, + { postalCode: "4654", placeName: "Lostorf", cantonCode: "SO" }, + { postalCode: "4655", placeName: "Rohr b. Olten", cantonCode: "SO" }, + { postalCode: "4655", placeName: "Stüsslingen", cantonCode: "SO" }, + { postalCode: "5013", placeName: "Niedergösgen", cantonCode: "SO" }, + { postalCode: "5015", placeName: "Erlinsbach SO", cantonCode: "SO" }, + { postalCode: "4528", placeName: "Zuchwil", cantonCode: "SO" }, + { postalCode: "4542", placeName: "Luterbach", cantonCode: "SO" }, + { postalCode: "4543", placeName: "Deitingen", cantonCode: "SO" }, + { postalCode: "4552", placeName: "Derendingen", cantonCode: "SO" }, + { postalCode: "4553", placeName: "Subingen", cantonCode: "SO" }, + { postalCode: "4554", placeName: "Hüniken", cantonCode: "SO" }, + { postalCode: "4554", placeName: "Etziken", cantonCode: "SO" }, + { postalCode: "4556", placeName: "Steinhof SO", cantonCode: "SO" }, + { postalCode: "4556", placeName: "Aeschi SO", cantonCode: "SO" }, + { postalCode: "4556", placeName: "Burgäschi", cantonCode: "SO" }, + { postalCode: "4556", placeName: "Bolken", cantonCode: "SO" }, + { postalCode: "4557", placeName: "Horriwil", cantonCode: "SO" }, + { postalCode: "4558", placeName: "Heinrichswil", cantonCode: "SO" }, + { postalCode: "4558", placeName: "Hersiwil", cantonCode: "SO" }, + { postalCode: "4558", placeName: "Winistorf", cantonCode: "SO" }, + { postalCode: "4562", placeName: "Biberist", cantonCode: "SO" }, + { postalCode: "4563", placeName: "Gerlafingen", cantonCode: "SO" }, + { postalCode: "4564", placeName: "Obergerlafingen", cantonCode: "SO" }, + { postalCode: "4565", placeName: "Recherswil", cantonCode: "SO" }, + { postalCode: "4566", placeName: "Kriegstetten", cantonCode: "SO" }, + { postalCode: "4566", placeName: "Halten", cantonCode: "SO" }, + { postalCode: "4566", placeName: "Oekingen", cantonCode: "SO" }, + { postalCode: "4573", placeName: "Lohn-Ammannsegg", cantonCode: "SO" }, + { postalCode: "2540", placeName: "Grenchen 1", cantonCode: "SO" }, + { postalCode: "2540", placeName: "Grenchen", cantonCode: "SO" }, + { postalCode: "2544", placeName: "Bettlach", cantonCode: "SO" }, + { postalCode: "2545", placeName: "Selzach", cantonCode: "SO" }, + { postalCode: "4512", placeName: "Bellach", cantonCode: "SO" }, + { postalCode: "4513", placeName: "Langendorf", cantonCode: "SO" }, + { postalCode: "4514", placeName: "Lommiswil", cantonCode: "SO" }, + { postalCode: "4515", placeName: "Oberdorf SO", cantonCode: "SO" }, + { postalCode: "4515", placeName: "Weissenstein b. Solothurn", cantonCode: "SO" }, + { postalCode: "4522", placeName: "Rüttenen", cantonCode: "SO" }, + { postalCode: "4523", placeName: "Niederwil SO", cantonCode: "SO" }, + { postalCode: "4524", placeName: "Oberbalmberg", cantonCode: "SO" }, + { postalCode: "4524", placeName: "Günsberg", cantonCode: "SO" }, + { postalCode: "4524", placeName: "Balmberg", cantonCode: "SO" }, + { postalCode: "4525", placeName: "Balm b. Günsberg", cantonCode: "SO" }, + { postalCode: "4532", placeName: "Feldbrunnen", cantonCode: "SO" }, + { postalCode: "4533", placeName: "Riedholz", cantonCode: "SO" }, + { postalCode: "4534", placeName: "Flumenthal", cantonCode: "SO" }, + { postalCode: "4535", placeName: "Hubersdorf", cantonCode: "SO" }, + { postalCode: "4535", placeName: "Kammersrohr", cantonCode: "SO" }, + { postalCode: "4600", placeName: "Olten", cantonCode: "SO" }, + { postalCode: "4601", placeName: "Olten 1 Fächer", cantonCode: "SO" }, + { postalCode: "4605", placeName: "Olten", cantonCode: "SO" }, + { postalCode: "4609", placeName: "Olten Sonderdienste", cantonCode: "SO" }, + { postalCode: "4609", placeName: "Olten", cantonCode: "SO" }, + { postalCode: "4612", placeName: "Wangen b. Olten", cantonCode: "SO" }, + { postalCode: "4613", placeName: "Rickenbach SO", cantonCode: "SO" }, + { postalCode: "4614", placeName: "Hägendorf", cantonCode: "SO" }, + { postalCode: "4615", placeName: "Allerheiligenberg", cantonCode: "SO" }, + { postalCode: "4616", placeName: "Kappel SO", cantonCode: "SO" }, + { postalCode: "4617", placeName: "Gunzgen", cantonCode: "SO" }, + { postalCode: "4618", placeName: "Boningen", cantonCode: "SO" }, + { postalCode: "4629", placeName: "Fulenbach", cantonCode: "SO" }, + { postalCode: "4656", placeName: "Starrkirch-Wil", cantonCode: "SO" }, + { postalCode: "4657", placeName: "Dulliken", cantonCode: "SO" }, + { postalCode: "4658", placeName: "Däniken SO", cantonCode: "SO" }, + { postalCode: "5012", placeName: "Schönenwerd", cantonCode: "SO" }, + { postalCode: "5012", placeName: "Wöschnau", cantonCode: "SO" }, + { postalCode: "5012", placeName: "Eppenberg", cantonCode: "SO" }, + { postalCode: "5014", placeName: "Gretzenbach", cantonCode: "SO" }, + { postalCode: "5746", placeName: "Walterswil SO", cantonCode: "SO" }, + { postalCode: "4500", placeName: "Solothurn", cantonCode: "SO" }, + { postalCode: "4501", placeName: "Solothurn", cantonCode: "SO" }, + { postalCode: "4502", placeName: "Solothurn", cantonCode: "SO" }, + { postalCode: "4503", placeName: "Solothurn", cantonCode: "SO" }, + { postalCode: "4509", placeName: "Solothurn", cantonCode: "SO" }, + { postalCode: "4204", placeName: "Himmelried", cantonCode: "SO" }, + { postalCode: "4208", placeName: "Nunningen", cantonCode: "SO" }, + { postalCode: "4226", placeName: "Breitenbach", cantonCode: "SO" }, + { postalCode: "4227", placeName: "Büsserach", cantonCode: "SO" }, + { postalCode: "4228", placeName: "Erschwil", cantonCode: "SO" }, + { postalCode: "4229", placeName: "Beinwil SO", cantonCode: "SO" }, + { postalCode: "4232", placeName: "Fehren", cantonCode: "SO" }, + { postalCode: "4233", placeName: "Meltingen", cantonCode: "SO" }, + { postalCode: "4234", placeName: "Zullwil", cantonCode: "SO" }, + { postalCode: "4245", placeName: "Kleinlützel", cantonCode: "SO" }, + { postalCode: "4247", placeName: "Grindel", cantonCode: "SO" }, + { postalCode: "4252", placeName: "Bärschwil", cantonCode: "SO" }, + { postalCode: "4252", placeName: "Bärschwil Dorf", cantonCode: "SO" }, + { postalCode: "8836", placeName: "Bennau", cantonCode: "SZ" }, + { postalCode: "8840", placeName: "Einsiedeln", cantonCode: "SZ" }, + { postalCode: "8840", placeName: "Trachslau", cantonCode: "SZ" }, + { postalCode: "8841", placeName: "Gross", cantonCode: "SZ" }, + { postalCode: "8844", placeName: "Euthal", cantonCode: "SZ" }, + { postalCode: "8846", placeName: "Willerzell", cantonCode: "SZ" }, + { postalCode: "8847", placeName: "Egg SZ", cantonCode: "SZ" }, + { postalCode: "6410", placeName: "Rigi Scheidegg", cantonCode: "SZ" }, + { postalCode: "6442", placeName: "Gersau", cantonCode: "SZ" }, + { postalCode: "8640", placeName: "Hurden", cantonCode: "SZ" }, + { postalCode: "8806", placeName: "Bäch SZ", cantonCode: "SZ" }, + { postalCode: "8807", placeName: "Freienbach", cantonCode: "SZ" }, + { postalCode: "8808", placeName: "Pfäffikon SZ", cantonCode: "SZ" }, + { postalCode: "8832", placeName: "Wilen b. Wollerau", cantonCode: "SZ" }, + { postalCode: "8832", placeName: "Wollerau", cantonCode: "SZ" }, + { postalCode: "8832", placeName: "Wollerau", cantonCode: "SZ" }, + { postalCode: "8834", placeName: "Schindellegi", cantonCode: "SZ" }, + { postalCode: "8835", placeName: "Feusisberg", cantonCode: "SZ" }, + { postalCode: "6402", placeName: "Merlischachen", cantonCode: "SZ" }, + { postalCode: "6403", placeName: "Küssnacht am Rigi", cantonCode: "SZ" }, + { postalCode: "6405", placeName: "Immensee", cantonCode: "SZ" }, + { postalCode: "8852", placeName: "Altendorf", cantonCode: "SZ" }, + { postalCode: "8853", placeName: "Lachen SZ", cantonCode: "SZ" }, + { postalCode: "8854", placeName: "Siebnen", cantonCode: "SZ" }, + { postalCode: "8854", placeName: "Galgenen", cantonCode: "SZ" }, + { postalCode: "8855", placeName: "Wangen SZ", cantonCode: "SZ" }, + { postalCode: "8856", placeName: "Tuggen", cantonCode: "SZ" }, + { postalCode: "8857", placeName: "Vorderthal", cantonCode: "SZ" }, + { postalCode: "8858", placeName: "Innerthal", cantonCode: "SZ" }, + { postalCode: "8862", placeName: "Schübelbach", cantonCode: "SZ" }, + { postalCode: "8863", placeName: "Buttikon SZ", cantonCode: "SZ" }, + { postalCode: "8864", placeName: "Reichenburg", cantonCode: "SZ" }, + { postalCode: "6410", placeName: "Rigi Klösterli", cantonCode: "SZ" }, + { postalCode: "6410", placeName: "Goldau", cantonCode: "SZ" }, + { postalCode: "6410", placeName: "Rigi Kulm", cantonCode: "SZ" }, + { postalCode: "6410", placeName: "Rigi Staffel", cantonCode: "SZ" }, + { postalCode: "6414", placeName: "Oberarth", cantonCode: "SZ" }, + { postalCode: "6415", placeName: "Arth", cantonCode: "SZ" }, + { postalCode: "6416", placeName: "Steinerberg", cantonCode: "SZ" }, + { postalCode: "6417", placeName: "Sattel", cantonCode: "SZ" }, + { postalCode: "6418", placeName: "Rothenthurm", cantonCode: "SZ" }, + { postalCode: "6422", placeName: "Steinen", cantonCode: "SZ" }, + { postalCode: "6423", placeName: "Seewen SZ", cantonCode: "SZ" }, + { postalCode: "6424", placeName: "Lauerz", cantonCode: "SZ" }, + { postalCode: "6430", placeName: "Schwyz", cantonCode: "SZ" }, + { postalCode: "6431", placeName: "Schwyz", cantonCode: "SZ" }, + { postalCode: "6432", placeName: "Rickenbach b. Schwyz", cantonCode: "SZ" }, + { postalCode: "6433", placeName: "Stoos SZ", cantonCode: "SZ" }, + { postalCode: "6434", placeName: "Illgau", cantonCode: "SZ" }, + { postalCode: "6436", placeName: "Bisisthal", cantonCode: "SZ" }, + { postalCode: "6436", placeName: "Muotathal", cantonCode: "SZ" }, + { postalCode: "6436", placeName: "Ried (Muotathal)", cantonCode: "SZ" }, + { postalCode: "6438", placeName: "Ibach", cantonCode: "SZ" }, + { postalCode: "6440", placeName: "Brunnen", cantonCode: "SZ" }, + { postalCode: "6443", placeName: "Morschach", cantonCode: "SZ" }, + { postalCode: "6452", placeName: "Riemenstalden", cantonCode: "SZ" }, + { postalCode: "8842", placeName: "Unteriberg", cantonCode: "SZ" }, + { postalCode: "8843", placeName: "Oberiberg", cantonCode: "SZ" }, + { postalCode: "8845", placeName: "Studen SZ", cantonCode: "SZ" }, + { postalCode: "8849", placeName: "Alpthal", cantonCode: "SZ" }, + { postalCode: "8580", placeName: "Hefenhofen", cantonCode: "TG" }, + { postalCode: "8580", placeName: "Biessenhofen", cantonCode: "TG" }, + { postalCode: "8580", placeName: "Hagenwil b. Amriswil", cantonCode: "TG" }, + { postalCode: "8580", placeName: "Amriswil", cantonCode: "TG" }, + { postalCode: "8580", placeName: "Sommeri", cantonCode: "TG" }, + { postalCode: "8581", placeName: "Schocherswil", cantonCode: "TG" }, + { postalCode: "8582", placeName: "Dozwil", cantonCode: "TG" }, + { postalCode: "8587", placeName: "Oberaach", cantonCode: "TG" }, + { postalCode: "8590", placeName: "Romanshorn", cantonCode: "TG" }, + { postalCode: "8592", placeName: "Uttwil", cantonCode: "TG" }, + { postalCode: "8593", placeName: "Kesswil", cantonCode: "TG" }, + { postalCode: "8599", placeName: "Salmsach", cantonCode: "TG" }, + { postalCode: "9306", placeName: "Freidorf TG", cantonCode: "TG" }, + { postalCode: "9314", placeName: "Steinebrunn", cantonCode: "TG" }, + { postalCode: "9315", placeName: "Winden", cantonCode: "TG" }, + { postalCode: "9315", placeName: "Neukirch (Egnach)", cantonCode: "TG" }, + { postalCode: "9320", placeName: "Arbon", cantonCode: "TG" }, + { postalCode: "9320", placeName: "Stachen", cantonCode: "TG" }, + { postalCode: "9320", placeName: "Frasnacht", cantonCode: "TG" }, + { postalCode: "9322", placeName: "Egnach", cantonCode: "TG" }, + { postalCode: "9325", placeName: "Roggwil TG", cantonCode: "TG" }, + { postalCode: "9326", placeName: "Horn", cantonCode: "TG" }, + { postalCode: "8252", placeName: "Schlatt TG", cantonCode: "TG" }, + { postalCode: "8253", placeName: "Diessenhofen", cantonCode: "TG" }, + { postalCode: "8253", placeName: "Willisdorf", cantonCode: "TG" }, + { postalCode: "8254", placeName: "Basadingen", cantonCode: "TG" }, + { postalCode: "8255", placeName: "Schlattingen", cantonCode: "TG" }, + { postalCode: "8259", placeName: "Wagenhausen", cantonCode: "TG" }, + { postalCode: "8259", placeName: "Rheinklingen", cantonCode: "TG" }, + { postalCode: "8259", placeName: "Etzwilen", cantonCode: "TG" }, + { postalCode: "8259", placeName: "Kaltenbach", cantonCode: "TG" }, + { postalCode: "8264", placeName: "Eschenz", cantonCode: "TG" }, + { postalCode: "8265", placeName: "Mammern", cantonCode: "TG" }, + { postalCode: "8266", placeName: "Steckborn", cantonCode: "TG" }, + { postalCode: "8267", placeName: "Berlingen", cantonCode: "TG" }, + { postalCode: "8500", placeName: "Gerlikon", cantonCode: "TG" }, + { postalCode: "8500", placeName: "Frauenfeld", cantonCode: "TG" }, + { postalCode: "8501", placeName: "Frauenfeld", cantonCode: "TG" }, + { postalCode: "8502", placeName: "Frauenfeld", cantonCode: "TG" }, + { postalCode: "8503", placeName: "Frauenfeld", cantonCode: "TG" }, + { postalCode: "8505", placeName: "Pfyn", cantonCode: "TG" }, + { postalCode: "8505", placeName: "Dettighofen", cantonCode: "TG" }, + { postalCode: "8506", placeName: "Lanzenneunforn", cantonCode: "TG" }, + { postalCode: "8507", placeName: "Hörhausen", cantonCode: "TG" }, + { postalCode: "8508", placeName: "Homburg", cantonCode: "TG" }, + { postalCode: "8509", placeName: "Frauenfeld", cantonCode: "TG" }, + { postalCode: "8510", placeName: "Frauenfeld Kant. Verwaltung", cantonCode: "TG" }, + { postalCode: "8510", placeName: "Frauenfeld", cantonCode: "TG" }, + { postalCode: "8512", placeName: "Thundorf", cantonCode: "TG" }, + { postalCode: "8512", placeName: "Wetzikon TG", cantonCode: "TG" }, + { postalCode: "8512", placeName: "Lustdorf", cantonCode: "TG" }, + { postalCode: "8524", placeName: "Buch b. Frauenfeld", cantonCode: "TG" }, + { postalCode: "8524", placeName: "Uesslingen", cantonCode: "TG" }, + { postalCode: "8525", placeName: "Wilen b. Neunforn", cantonCode: "TG" }, + { postalCode: "8525", placeName: "Niederneunforn", cantonCode: "TG" }, + { postalCode: "8526", placeName: "Oberneunforn", cantonCode: "TG" }, + { postalCode: "8532", placeName: "Weiningen TG", cantonCode: "TG" }, + { postalCode: "8532", placeName: "Warth", cantonCode: "TG" }, + { postalCode: "8535", placeName: "Herdern", cantonCode: "TG" }, + { postalCode: "8536", placeName: "Hüttwilen", cantonCode: "TG" }, + { postalCode: "8537", placeName: "Uerschhausen", cantonCode: "TG" }, + { postalCode: "8537", placeName: "Nussbaumen TG", cantonCode: "TG" }, + { postalCode: "8546", placeName: "Kefikon TG", cantonCode: "TG" }, + { postalCode: "8546", placeName: "Islikon", cantonCode: "TG" }, + { postalCode: "8547", placeName: "Gachnang", cantonCode: "TG" }, + { postalCode: "8552", placeName: "Felben-Wellhausen", cantonCode: "TG" }, + { postalCode: "8553", placeName: "Eschikofen", cantonCode: "TG" }, + { postalCode: "8553", placeName: "Hüttlingen", cantonCode: "TG" }, + { postalCode: "8553", placeName: "Mettendorf TG", cantonCode: "TG" }, + { postalCode: "8553", placeName: "Harenwilen", cantonCode: "TG" }, + { postalCode: "8555", placeName: "Müllheim Dorf", cantonCode: "TG" }, + { postalCode: "9507", placeName: "Stettfurt", cantonCode: "TG" }, + { postalCode: "9548", placeName: "Matzingen", cantonCode: "TG" }, + { postalCode: "8268", placeName: "Mannenbach-Salenstein", cantonCode: "TG" }, + { postalCode: "8268", placeName: "Salenstein", cantonCode: "TG" }, + { postalCode: "8269", placeName: "Fruthwilen", cantonCode: "TG" }, + { postalCode: "8272", placeName: "Ermatingen", cantonCode: "TG" }, + { postalCode: "8273", placeName: "Triboltingen", cantonCode: "TG" }, + { postalCode: "8274", placeName: "Gottlieben", cantonCode: "TG" }, + { postalCode: "8274", placeName: "Tägerwilen", cantonCode: "TG" }, + { postalCode: "8280", placeName: "Kreuzlingen", cantonCode: "TG" }, + { postalCode: "8280", placeName: "Kreuzlingen 1", cantonCode: "TG" }, + { postalCode: "8280", placeName: "Kreuzlingen 3", cantonCode: "TG" }, + { postalCode: "8285", placeName: "Kreuzlingen Ifolor", cantonCode: "TG" }, + { postalCode: "8285", placeName: "Kreuzlingen Ifolor AG", cantonCode: "TG" }, + { postalCode: "8558", placeName: "Raperswilen", cantonCode: "TG" }, + { postalCode: "8564", placeName: "Engwilen", cantonCode: "TG" }, + { postalCode: "8564", placeName: "Sonterswil", cantonCode: "TG" }, + { postalCode: "8564", placeName: "Gunterswilen", cantonCode: "TG" }, + { postalCode: "8564", placeName: "Hefenhausen", cantonCode: "TG" }, + { postalCode: "8564", placeName: "Lipperswil", cantonCode: "TG" }, + { postalCode: "8564", placeName: "Hattenhausen", cantonCode: "TG" }, + { postalCode: "8564", placeName: "Wäldi", cantonCode: "TG" }, + { postalCode: "8565", placeName: "Hugelshofen", cantonCode: "TG" }, + { postalCode: "8566", placeName: "Ellighausen", cantonCode: "TG" }, + { postalCode: "8566", placeName: "Neuwilen", cantonCode: "TG" }, + { postalCode: "8566", placeName: "Lippoldswilen", cantonCode: "TG" }, + { postalCode: "8566", placeName: "Dotnacht", cantonCode: "TG" }, + { postalCode: "8573", placeName: "Siegershausen", cantonCode: "TG" }, + { postalCode: "8573", placeName: "Alterswilen", cantonCode: "TG" }, + { postalCode: "8573", placeName: "Altishausen", cantonCode: "TG" }, + { postalCode: "8574", placeName: "Illighausen", cantonCode: "TG" }, + { postalCode: "8574", placeName: "Lengwil", cantonCode: "TG" }, + { postalCode: "8574", placeName: "Lengwil", cantonCode: "TG" }, + { postalCode: "8574", placeName: "Dettighofen (Lengwil)", cantonCode: "TG" }, + { postalCode: "8574", placeName: "Oberhofen TG", cantonCode: "TG" }, + { postalCode: "8585", placeName: "Langrickenbach", cantonCode: "TG" }, + { postalCode: "8585", placeName: "Schönenbaumgarten", cantonCode: "TG" }, + { postalCode: "8585", placeName: "Zuben", cantonCode: "TG" }, + { postalCode: "8585", placeName: "Herrenhof", cantonCode: "TG" }, + { postalCode: "8594", placeName: "Güttingen", cantonCode: "TG" }, + { postalCode: "8595", placeName: "Altnau", cantonCode: "TG" }, + { postalCode: "8596", placeName: "Scherzingen", cantonCode: "TG" }, + { postalCode: "8596", placeName: "Münsterlingen", cantonCode: "TG" }, + { postalCode: "8597", placeName: "Landschlacht", cantonCode: "TG" }, + { postalCode: "8598", placeName: "Bottighofen", cantonCode: "TG" }, + { postalCode: "8355", placeName: "Aadorf", cantonCode: "TG" }, + { postalCode: "8356", placeName: "Ettenhausen TG", cantonCode: "TG" }, + { postalCode: "8357", placeName: "Guntershausen b. Aadorf", cantonCode: "TG" }, + { postalCode: "8360", placeName: "Eschlikon TG", cantonCode: "TG" }, + { postalCode: "8360", placeName: "Wallenwil", cantonCode: "TG" }, + { postalCode: "8362", placeName: "Balterswil", cantonCode: "TG" }, + { postalCode: "8363", placeName: "Bichelsee", cantonCode: "TG" }, + { postalCode: "8370", placeName: "Sirnach", cantonCode: "TG" }, + { postalCode: "8371", placeName: "Busswil TG", cantonCode: "TG" }, + { postalCode: "8372", placeName: "Wiezikon b. Sirnach", cantonCode: "TG" }, + { postalCode: "8374", placeName: "Dussnang", cantonCode: "TG" }, + { postalCode: "8374", placeName: "Oberwangen TG", cantonCode: "TG" }, + { postalCode: "8376", placeName: "Fischingen", cantonCode: "TG" }, + { postalCode: "8376", placeName: "Au TG", cantonCode: "TG" }, + { postalCode: "8522", placeName: "Aawangen", cantonCode: "TG" }, + { postalCode: "8522", placeName: "Häuslenen", cantonCode: "TG" }, + { postalCode: "9502", placeName: "Braunau", cantonCode: "TG" }, + { postalCode: "9506", placeName: "Lommis", cantonCode: "TG" }, + { postalCode: "9508", placeName: "Weingarten-Kalthäusern", cantonCode: "TG" }, + { postalCode: "9532", placeName: "Rickenbach b. Wil", cantonCode: "TG" }, + { postalCode: "9535", placeName: "Wilen b. Wil", cantonCode: "TG" }, + { postalCode: "9542", placeName: "Münchwilen TG", cantonCode: "TG" }, + { postalCode: "9543", placeName: "St. Margarethen TG", cantonCode: "TG" }, + { postalCode: "9545", placeName: "Wängi", cantonCode: "TG" }, + { postalCode: "9546", placeName: "Tuttwil", cantonCode: "TG" }, + { postalCode: "9547", placeName: "Wittenwil", cantonCode: "TG" }, + { postalCode: "9553", placeName: "Bettwiesen", cantonCode: "TG" }, + { postalCode: "9554", placeName: "Tägerschen", cantonCode: "TG" }, + { postalCode: "9555", placeName: "Tobel", cantonCode: "TG" }, + { postalCode: "9573", placeName: "Littenheid", cantonCode: "TG" }, + { postalCode: "8514", placeName: "Amlikon-Bissegg", cantonCode: "TG" }, + { postalCode: "8554", placeName: "Bonau", cantonCode: "TG" }, + { postalCode: "8554", placeName: "Müllheim-Wigoltingen", cantonCode: "TG" }, + { postalCode: "8556", placeName: "Illhart", cantonCode: "TG" }, + { postalCode: "8556", placeName: "Lamperswil TG", cantonCode: "TG" }, + { postalCode: "8556", placeName: "Engwang", cantonCode: "TG" }, + { postalCode: "8556", placeName: "Wigoltingen", cantonCode: "TG" }, + { postalCode: "8560", placeName: "Märstetten", cantonCode: "TG" }, + { postalCode: "8561", placeName: "Ottoberg", cantonCode: "TG" }, + { postalCode: "8564", placeName: "Wagerswil", cantonCode: "TG" }, + { postalCode: "8570", placeName: "Weinfelden", cantonCode: "TG" }, + { postalCode: "8572", placeName: "Graltshausen", cantonCode: "TG" }, + { postalCode: "8572", placeName: "Andhausen", cantonCode: "TG" }, + { postalCode: "8572", placeName: "Guntershausen b. Berg", cantonCode: "TG" }, + { postalCode: "8572", placeName: "Berg TG", cantonCode: "TG" }, + { postalCode: "8572", placeName: "Berg TG", cantonCode: "TG" }, + { postalCode: "8575", placeName: "Bürglen TG", cantonCode: "TG" }, + { postalCode: "8575", placeName: "Istighofen", cantonCode: "TG" }, + { postalCode: "8576", placeName: "Mauren TG", cantonCode: "TG" }, + { postalCode: "8577", placeName: "Schönholzerswilen", cantonCode: "TG" }, + { postalCode: "8583", placeName: "Donzhausen", cantonCode: "TG" }, + { postalCode: "8583", placeName: "Sulgen", cantonCode: "TG" }, + { postalCode: "8583", placeName: "Götighofen", cantonCode: "TG" }, + { postalCode: "8584", placeName: "Opfershofen TG", cantonCode: "TG" }, + { postalCode: "8584", placeName: "Leimbach TG", cantonCode: "TG" }, + { postalCode: "8585", placeName: "Klarsreuti", cantonCode: "TG" }, + { postalCode: "8585", placeName: "Happerswil", cantonCode: "TG" }, + { postalCode: "8585", placeName: "Birwinken", cantonCode: "TG" }, + { postalCode: "8585", placeName: "Mattwil", cantonCode: "TG" }, + { postalCode: "8586", placeName: "Buchackern", cantonCode: "TG" }, + { postalCode: "8586", placeName: "Andwil TG", cantonCode: "TG" }, + { postalCode: "8586", placeName: "Ennetaach", cantonCode: "TG" }, + { postalCode: "8586", placeName: "Buch b. Kümmertshausen", cantonCode: "TG" }, + { postalCode: "8586", placeName: "Riedt b. Erlen", cantonCode: "TG" }, + { postalCode: "8586", placeName: "Engishofen", cantonCode: "TG" }, + { postalCode: "8586", placeName: "Kümmertshausen", cantonCode: "TG" }, + { postalCode: "8586", placeName: "Erlen", cantonCode: "TG" }, + { postalCode: "8588", placeName: "Zihlschlacht", cantonCode: "TG" }, + { postalCode: "8589", placeName: "Sitterdorf", cantonCode: "TG" }, + { postalCode: "9213", placeName: "Hauptwil", cantonCode: "TG" }, + { postalCode: "9214", placeName: "Kradolf", cantonCode: "TG" }, + { postalCode: "9215", placeName: "Buhwil", cantonCode: "TG" }, + { postalCode: "9215", placeName: "Schönenberg an der Thur", cantonCode: "TG" }, + { postalCode: "9216", placeName: "Hohentannen", cantonCode: "TG" }, + { postalCode: "9216", placeName: "Heldswil", cantonCode: "TG" }, + { postalCode: "9217", placeName: "Neukirch an der Thur", cantonCode: "TG" }, + { postalCode: "9220", placeName: "Bischofszell", cantonCode: "TG" }, + { postalCode: "9223", placeName: "Schweizersholz", cantonCode: "TG" }, + { postalCode: "9223", placeName: "Halden", cantonCode: "TG" }, + { postalCode: "9225", placeName: "Wilen (Gottshaus)", cantonCode: "TG" }, + { postalCode: "9225", placeName: "St. Pelagiberg", cantonCode: "TG" }, + { postalCode: "9503", placeName: "Lanterswil", cantonCode: "TG" }, + { postalCode: "9503", placeName: "Stehrenberg", cantonCode: "TG" }, + { postalCode: "9504", placeName: "Friltschen", cantonCode: "TG" }, + { postalCode: "9514", placeName: "Wuppenau", cantonCode: "TG" }, + { postalCode: "9515", placeName: "Hosenruck", cantonCode: "TG" }, + { postalCode: "9517", placeName: "Mettlen", cantonCode: "TG" }, + { postalCode: "9556", placeName: "Zezikon", cantonCode: "TG" }, + { postalCode: "9556", placeName: "Affeltrangen", cantonCode: "TG" }, + { postalCode: "9562", placeName: "Märwil", cantonCode: "TG" }, + { postalCode: "9562", placeName: "Buch b. Märwil", cantonCode: "TG" }, + { postalCode: "9565", placeName: "Schmidshof", cantonCode: "TG" }, + { postalCode: "9565", placeName: "Rothenhausen", cantonCode: "TG" }, + { postalCode: "9565", placeName: "Oberbussnang", cantonCode: "TG" }, + { postalCode: "9565", placeName: "Oppikon", cantonCode: "TG" }, + { postalCode: "9565", placeName: "Bussnang", cantonCode: "TG" }, + { postalCode: "6500", placeName: "Bellinzona 4", cantonCode: "TI" }, + { postalCode: "6500", placeName: "Bellinzona", cantonCode: "TI" }, + { postalCode: "6500", placeName: "Bellinzona 2", cantonCode: "TI" }, + { postalCode: "6500", placeName: "Bellinzona 5", cantonCode: "TI" }, + { postalCode: "6500", placeName: "Bellinzona VZ", cantonCode: "TI" }, + { postalCode: "6501", placeName: "Bellinzona", cantonCode: "TI" }, + { postalCode: "6503", placeName: "Bellinzona", cantonCode: "TI" }, + { postalCode: "6512", placeName: "Giubiasco", cantonCode: "TI" }, + { postalCode: "6513", placeName: "Monte Carasso", cantonCode: "TI" }, + { postalCode: "6514", placeName: "Sementina", cantonCode: "TI" }, + { postalCode: "6515", placeName: "Gudo", cantonCode: "TI" }, + { postalCode: "6517", placeName: "Arbedo", cantonCode: "TI" }, + { postalCode: "6518", placeName: "Gorduno", cantonCode: "TI" }, + { postalCode: "6523", placeName: "Preonzo", cantonCode: "TI" }, + { postalCode: "6524", placeName: "Moleno", cantonCode: "TI" }, + { postalCode: "6525", placeName: "Gnosca", cantonCode: "TI" }, + { postalCode: "6528", placeName: "Camorino", cantonCode: "TI" }, + { postalCode: "6532", placeName: "Castione", cantonCode: "TI" }, + { postalCode: "6533", placeName: "Lumino", cantonCode: "TI" }, + { postalCode: "6582", placeName: "Pianezzo", cantonCode: "TI" }, + { postalCode: "6583", placeName: "S. Antonio (Val Morobbia)", cantonCode: "TI" }, + { postalCode: "6584", placeName: "Carena", cantonCode: "TI" }, + { postalCode: "6592", placeName: "S. Antonino", cantonCode: "TI" }, + { postalCode: "6593", placeName: "Cadenazzo", cantonCode: "TI" }, + { postalCode: "6599", placeName: "Robasacco", cantonCode: "TI" }, + { postalCode: "6702", placeName: "Claro", cantonCode: "TI" }, + { postalCode: "6809", placeName: "Medeglia", cantonCode: "TI" }, + { postalCode: "6810", placeName: "Isone", cantonCode: "TI" }, + { postalCode: "6713", placeName: "Malvaglia", cantonCode: "TI" }, + { postalCode: "6714", placeName: "Semione", cantonCode: "TI" }, + { postalCode: "6715", placeName: "Dongio", cantonCode: "TI" }, + { postalCode: "6716", placeName: "Acquarossa", cantonCode: "TI" }, + { postalCode: "6716", placeName: "Leontica", cantonCode: "TI" }, + { postalCode: "6716", placeName: "Lottigna", cantonCode: "TI" }, + { postalCode: "6717", placeName: "Dangio", cantonCode: "TI" }, + { postalCode: "6717", placeName: "Torre", cantonCode: "TI" }, + { postalCode: "6718", placeName: "Camperio", cantonCode: "TI" }, + { postalCode: "6718", placeName: "Olivone", cantonCode: "TI" }, + { postalCode: "6719", placeName: "Aquila", cantonCode: "TI" }, + { postalCode: "6719", placeName: "Aquila", cantonCode: "TI" }, + { postalCode: "6719", placeName: "Aquila", cantonCode: "TI" }, + { postalCode: "6720", placeName: "Ghirone", cantonCode: "TI" }, + { postalCode: "6720", placeName: "Campo (Blenio)", cantonCode: "TI" }, + { postalCode: "6721", placeName: "Motto (Blenio)", cantonCode: "TI" }, + { postalCode: "6721", placeName: "Ludiano", cantonCode: "TI" }, + { postalCode: "6722", placeName: "Corzoneso", cantonCode: "TI" }, + { postalCode: "6723", placeName: "Prugiasco", cantonCode: "TI" }, + { postalCode: "6723", placeName: "Castro", cantonCode: "TI" }, + { postalCode: "6723", placeName: "Marolta", cantonCode: "TI" }, + { postalCode: "6724", placeName: "Largario", cantonCode: "TI" }, + { postalCode: "6724", placeName: "Ponto Valentino", cantonCode: "TI" }, + { postalCode: "6742", placeName: "Pollegio", cantonCode: "TI" }, + { postalCode: "6743", placeName: "Bodio TI", cantonCode: "TI" }, + { postalCode: "6744", placeName: "Personico", cantonCode: "TI" }, + { postalCode: "6745", placeName: "Giornico", cantonCode: "TI" }, + { postalCode: "6746", placeName: "Calonico", cantonCode: "TI" }, + { postalCode: "6746", placeName: "Lavorgo", cantonCode: "TI" }, + { postalCode: "6746", placeName: "Nivo", cantonCode: "TI" }, + { postalCode: "6747", placeName: "Chironico", cantonCode: "TI" }, + { postalCode: "6748", placeName: "Anzonico", cantonCode: "TI" }, + { postalCode: "6749", placeName: "Sobrio", cantonCode: "TI" }, + { postalCode: "6749", placeName: "Cavagnago", cantonCode: "TI" }, + { postalCode: "6760", placeName: "Calpiogna", cantonCode: "TI" }, + { postalCode: "6760", placeName: "Campello", cantonCode: "TI" }, + { postalCode: "6760", placeName: "Rossura", cantonCode: "TI" }, + { postalCode: "6760", placeName: "Faido", cantonCode: "TI" }, + { postalCode: "6760", placeName: "Carì", cantonCode: "TI" }, + { postalCode: "6760", placeName: "Molare", cantonCode: "TI" }, + { postalCode: "6763", placeName: "Mairengo", cantonCode: "TI" }, + { postalCode: "6763", placeName: "Osco", cantonCode: "TI" }, + { postalCode: "6764", placeName: "Chiggiogna", cantonCode: "TI" }, + { postalCode: "6764", placeName: "Chiggiogna", cantonCode: "TI" }, + { postalCode: "6772", placeName: "Rodi-Fiesso", cantonCode: "TI" }, + { postalCode: "6773", placeName: "Prato (Leventina)", cantonCode: "TI" }, + { postalCode: "6774", placeName: "Dalpe", cantonCode: "TI" }, + { postalCode: "6775", placeName: "Ambrì", cantonCode: "TI" }, + { postalCode: "6776", placeName: "Piotta", cantonCode: "TI" }, + { postalCode: "6777", placeName: "Varenzo", cantonCode: "TI" }, + { postalCode: "6777", placeName: "Quinto", cantonCode: "TI" }, + { postalCode: "6780", placeName: "Madrano", cantonCode: "TI" }, + { postalCode: "6780", placeName: "Airolo", cantonCode: "TI" }, + { postalCode: "6781", placeName: "Bedretto", cantonCode: "TI" }, + { postalCode: "6781", placeName: "Villa Bedretto", cantonCode: "TI" }, + { postalCode: "6516", placeName: "Cugnasco", cantonCode: "TI" }, + { postalCode: "6571", placeName: "Indemini", cantonCode: "TI" }, + { postalCode: "6572", placeName: "Quartino", cantonCode: "TI" }, + { postalCode: "6573", placeName: "Magadino", cantonCode: "TI" }, + { postalCode: "6574", placeName: "Vira (Gambarogno)", cantonCode: "TI" }, + { postalCode: "6575", placeName: "S. Nazzaro", cantonCode: "TI" }, + { postalCode: "6575", placeName: "Vairano", cantonCode: "TI" }, + { postalCode: "6576", placeName: "Gerra (Gambarogno)", cantonCode: "TI" }, + { postalCode: "6577", placeName: "Ranzo", cantonCode: "TI" }, + { postalCode: "6578", placeName: "Caviano", cantonCode: "TI" }, + { postalCode: "6579", placeName: "Piazzogna", cantonCode: "TI" }, + { postalCode: "6594", placeName: "Contone", cantonCode: "TI" }, + { postalCode: "6595", placeName: "Riazzino", cantonCode: "TI" }, + { postalCode: "6596", placeName: "Gordola", cantonCode: "TI" }, + { postalCode: "6597", placeName: "Agarone", cantonCode: "TI" }, + { postalCode: "6598", placeName: "Tenero", cantonCode: "TI" }, + { postalCode: "6600", placeName: "Muralto", cantonCode: "TI" }, + { postalCode: "6600", placeName: "Locarno", cantonCode: "TI" }, + { postalCode: "6600", placeName: "Locarno", cantonCode: "TI" }, + { postalCode: "6600", placeName: "Solduno", cantonCode: "TI" }, + { postalCode: "6601", placeName: "Locarno", cantonCode: "TI" }, + { postalCode: "6602", placeName: "Muralto", cantonCode: "TI" }, + { postalCode: "6604", placeName: "Locarno", cantonCode: "TI" }, + { postalCode: "6605", placeName: "Locarno", cantonCode: "TI" }, + { postalCode: "6611", placeName: "Crana", cantonCode: "TI" }, + { postalCode: "6611", placeName: "Mosogno", cantonCode: "TI" }, + { postalCode: "6611", placeName: "Gresso", cantonCode: "TI" }, + { postalCode: "6612", placeName: "Ascona", cantonCode: "TI" }, + { postalCode: "6613", placeName: "Porto Ronco", cantonCode: "TI" }, + { postalCode: "6614", placeName: "Isole di Brissago", cantonCode: "TI" }, + { postalCode: "6614", placeName: "Brissago", cantonCode: "TI" }, + { postalCode: "6616", placeName: "Losone", cantonCode: "TI" }, + { postalCode: "6618", placeName: "Arcegno", cantonCode: "TI" }, + { postalCode: "6622", placeName: "Ronco sopra Ascona", cantonCode: "TI" }, + { postalCode: "6631", placeName: "Corippo", cantonCode: "TI" }, + { postalCode: "6632", placeName: "Vogorno", cantonCode: "TI" }, + { postalCode: "6633", placeName: "Lavertezzo", cantonCode: "TI" }, + { postalCode: "6634", placeName: "Brione (Verzasca)", cantonCode: "TI" }, + { postalCode: "6635", placeName: "Gerra (Verzasca)", cantonCode: "TI" }, + { postalCode: "6636", placeName: "Frasco", cantonCode: "TI" }, + { postalCode: "6637", placeName: "Sonogno", cantonCode: "TI" }, + { postalCode: "6644", placeName: "Orselina", cantonCode: "TI" }, + { postalCode: "6645", placeName: "Brione sopra Minusio", cantonCode: "TI" }, + { postalCode: "6646", placeName: "Contra", cantonCode: "TI" }, + { postalCode: "6647", placeName: "Mergoscia", cantonCode: "TI" }, + { postalCode: "6648", placeName: "Minusio", cantonCode: "TI" }, + { postalCode: "6652", placeName: "Tegna", cantonCode: "TI" }, + { postalCode: "6653", placeName: "Verscio", cantonCode: "TI" }, + { postalCode: "6654", placeName: "Cavigliano", cantonCode: "TI" }, + { postalCode: "6655", placeName: "Rasa", cantonCode: "TI" }, + { postalCode: "6655", placeName: "Intragna", cantonCode: "TI" }, + { postalCode: "6655", placeName: "Verdasio", cantonCode: "TI" }, + { postalCode: "6656", placeName: "Golino", cantonCode: "TI" }, + { postalCode: "6657", placeName: "Palagnedra", cantonCode: "TI" }, + { postalCode: "6658", placeName: "Borgnone", cantonCode: "TI" }, + { postalCode: "6659", placeName: "Camedo", cantonCode: "TI" }, + { postalCode: "6659", placeName: "Moneto", cantonCode: "TI" }, + { postalCode: "6661", placeName: "Berzona", cantonCode: "TI" }, + { postalCode: "6661", placeName: "Loco", cantonCode: "TI" }, + { postalCode: "6661", placeName: "Auressio", cantonCode: "TI" }, + { postalCode: "6662", placeName: "Russo", cantonCode: "TI" }, + { postalCode: "6663", placeName: "Spruga", cantonCode: "TI" }, + { postalCode: "6663", placeName: "Comologno", cantonCode: "TI" }, + { postalCode: "6664", placeName: "Vergeletto", cantonCode: "TI" }, + { postalCode: "6802", placeName: "Rivera", cantonCode: "TI" }, + { postalCode: "6803", placeName: "Camignolo", cantonCode: "TI" }, + { postalCode: "6804", placeName: "Bironico", cantonCode: "TI" }, + { postalCode: "6805", placeName: "Mezzovico", cantonCode: "TI" }, + { postalCode: "6805", placeName: "Mezzovico", cantonCode: "TI" }, + { postalCode: "6806", placeName: "Sigirino", cantonCode: "TI" }, + { postalCode: "6807", placeName: "Taverne", cantonCode: "TI" }, + { postalCode: "6807", placeName: "Taverne", cantonCode: "TI" }, + { postalCode: "6808", placeName: "Torricella", cantonCode: "TI" }, + { postalCode: "6809", placeName: "Medeglia", cantonCode: "TI" }, + { postalCode: "6814", placeName: "Cadempino", cantonCode: "TI" }, + { postalCode: "6814", placeName: "Lamone", cantonCode: "TI" }, + { postalCode: "6814", placeName: "Lamone-Cadempino", cantonCode: "TI" }, + { postalCode: "6815", placeName: "Melide", cantonCode: "TI" }, + { postalCode: "6816", placeName: "Bissone", cantonCode: "TI" }, + { postalCode: "6817", placeName: "Maroggia", cantonCode: "TI" }, + { postalCode: "6818", placeName: "Melano", cantonCode: "TI" }, + { postalCode: "6821", placeName: "Rovio", cantonCode: "TI" }, + { postalCode: "6822", placeName: "Arogno", cantonCode: "TI" }, + { postalCode: "6823", placeName: "Pugerna", cantonCode: "TI" }, + { postalCode: "6825", placeName: "Capolago", cantonCode: "TI" }, + { postalCode: "6827", placeName: "Brusino Arsizio", cantonCode: "TI" }, + { postalCode: "6867", placeName: "Serpiano", cantonCode: "TI" }, + { postalCode: "6900", placeName: "Paradiso", cantonCode: "TI" }, + { postalCode: "6900", placeName: "Lugano", cantonCode: "TI" }, + { postalCode: "6900", placeName: "Massagno", cantonCode: "TI" }, + { postalCode: "6901", placeName: "Lugano", cantonCode: "TI" }, + { postalCode: "6902", placeName: "Lugano 2 Caselle", cantonCode: "TI" }, + { postalCode: "6902", placeName: "Lugano 2 Paradiso Caselle", cantonCode: "TI" }, + { postalCode: "6903", placeName: "Lugano", cantonCode: "TI" }, + { postalCode: "6904", placeName: "Lugano 4 Caselle", cantonCode: "TI" }, + { postalCode: "6904", placeName: "Lugano 4 Molino Nuovo Casel", cantonCode: "TI" }, + { postalCode: "6906", placeName: "Lugano 6 Caselle", cantonCode: "TI" }, + { postalCode: "6906", placeName: "Lugano 6 Cassarate Caselle", cantonCode: "TI" }, + { postalCode: "6907", placeName: "Lugano 7 Caselle", cantonCode: "TI" }, + { postalCode: "6908", placeName: "Massagno Caselle", cantonCode: "TI" }, + { postalCode: "6912", placeName: "Pazzallo", cantonCode: "TI" }, + { postalCode: "6913", placeName: "Carabbia", cantonCode: "TI" }, + { postalCode: "6914", placeName: "Carona", cantonCode: "TI" }, + { postalCode: "6915", placeName: "Pambio-Noranco", cantonCode: "TI" }, + { postalCode: "6916", placeName: "Grancia", cantonCode: "TI" }, + { postalCode: "6917", placeName: "Barbengo", cantonCode: "TI" }, + { postalCode: "6918", placeName: "Figino", cantonCode: "TI" }, + { postalCode: "6919", placeName: "Carabietta", cantonCode: "TI" }, + { postalCode: "6921", placeName: "Vico Morcote", cantonCode: "TI" }, + { postalCode: "6922", placeName: "Morcote", cantonCode: "TI" }, + { postalCode: "6924", placeName: "Sorengo", cantonCode: "TI" }, + { postalCode: "6925", placeName: "Gentilino", cantonCode: "TI" }, + { postalCode: "6926", placeName: "Montagnola", cantonCode: "TI" }, + { postalCode: "6927", placeName: "Agra", cantonCode: "TI" }, + { postalCode: "6928", placeName: "Manno", cantonCode: "TI" }, + { postalCode: "6929", placeName: "Gravesano", cantonCode: "TI" }, + { postalCode: "6930", placeName: "Bedano", cantonCode: "TI" }, + { postalCode: "6932", placeName: "Breganzona", cantonCode: "TI" }, + { postalCode: "6933", placeName: "Muzzano", cantonCode: "TI" }, + { postalCode: "6934", placeName: "Bioggio", cantonCode: "TI" }, + { postalCode: "6935", placeName: "Bosco Luganese", cantonCode: "TI" }, + { postalCode: "6936", placeName: "Cademario", cantonCode: "TI" }, + { postalCode: "6937", placeName: "Breno", cantonCode: "TI" }, + { postalCode: "6938", placeName: "Fescoggia", cantonCode: "TI" }, + { postalCode: "6938", placeName: "Vezio", cantonCode: "TI" }, + { postalCode: "6939", placeName: "Mugena", cantonCode: "TI" }, + { postalCode: "6939", placeName: "Arosio-Mugena", cantonCode: "TI" }, + { postalCode: "6939", placeName: "Arosio", cantonCode: "TI" }, + { postalCode: "6942", placeName: "Savosa", cantonCode: "TI" }, + { postalCode: "6943", placeName: "Vezia", cantonCode: "TI" }, + { postalCode: "6944", placeName: "Cureglia", cantonCode: "TI" }, + { postalCode: "6945", placeName: "Origlio", cantonCode: "TI" }, + { postalCode: "6946", placeName: "Ponte Capriasca", cantonCode: "TI" }, + { postalCode: "6946", placeName: "Ponte Capriasca", cantonCode: "TI" }, + { postalCode: "6947", placeName: "Vaglio", cantonCode: "TI" }, + { postalCode: "6948", placeName: "Porza", cantonCode: "TI" }, + { postalCode: "6949", placeName: "Comano", cantonCode: "TI" }, + { postalCode: "6950", placeName: "Tesserete", cantonCode: "TI" }, + { postalCode: "6951", placeName: "Insone", cantonCode: "TI" }, + { postalCode: "6951", placeName: "Scareglia", cantonCode: "TI" }, + { postalCode: "6951", placeName: "Bogno", cantonCode: "TI" }, + { postalCode: "6951", placeName: "Cozzo", cantonCode: "TI" }, + { postalCode: "6951", placeName: "Signôra", cantonCode: "TI" }, + { postalCode: "6951", placeName: "Colla", cantonCode: "TI" }, + { postalCode: "6952", placeName: "Canobbio", cantonCode: "TI" }, + { postalCode: "6953", placeName: "Lugaggia", cantonCode: "TI" }, + { postalCode: "6954", placeName: "Sala Capriasca", cantonCode: "TI" }, + { postalCode: "6954", placeName: "Bigorio", cantonCode: "TI" }, + { postalCode: "6955", placeName: "Oggio", cantonCode: "TI" }, + { postalCode: "6955", placeName: "Cagiallo", cantonCode: "TI" }, + { postalCode: "6955", placeName: "Oggio", cantonCode: "TI" }, + { postalCode: "6956", placeName: "Lopagno", cantonCode: "TI" }, + { postalCode: "6957", placeName: "Roveredo TI", cantonCode: "TI" }, + { postalCode: "6958", placeName: "Corticiasca", cantonCode: "TI" }, + { postalCode: "6958", placeName: "Corticiasca", cantonCode: "TI" }, + { postalCode: "6958", placeName: "Bidogno", cantonCode: "TI" }, + { postalCode: "6959", placeName: "Piandera Paese", cantonCode: "TI" }, + { postalCode: "6959", placeName: "Cimadera", cantonCode: "TI" }, + { postalCode: "6959", placeName: "Piandera Paese", cantonCode: "TI" }, + { postalCode: "6959", placeName: "Curtina", cantonCode: "TI" }, + { postalCode: "6959", placeName: "Certara", cantonCode: "TI" }, + { postalCode: "6959", placeName: "Maglio di Colla", cantonCode: "TI" }, + { postalCode: "6960", placeName: "Odogno", cantonCode: "TI" }, + { postalCode: "6962", placeName: "Viganello", cantonCode: "TI" }, + { postalCode: "6963", placeName: "Cureggia", cantonCode: "TI" }, + { postalCode: "6963", placeName: "Pregassona", cantonCode: "TI" }, + { postalCode: "6964", placeName: "Davesco-Soragno", cantonCode: "TI" }, + { postalCode: "6965", placeName: "Cadro", cantonCode: "TI" }, + { postalCode: "6966", placeName: "Villa Luganese", cantonCode: "TI" }, + { postalCode: "6967", placeName: "Dino", cantonCode: "TI" }, + { postalCode: "6968", placeName: "Sonvico", cantonCode: "TI" }, + { postalCode: "6974", placeName: "Aldesago", cantonCode: "TI" }, + { postalCode: "6976", placeName: "Castagnola", cantonCode: "TI" }, + { postalCode: "6977", placeName: "Ruvigliana", cantonCode: "TI" }, + { postalCode: "6978", placeName: "Gandria", cantonCode: "TI" }, + { postalCode: "6979", placeName: "Brè sopra Lugano", cantonCode: "TI" }, + { postalCode: "6980", placeName: "Castelrotto", cantonCode: "TI" }, + { postalCode: "6981", placeName: "Beride di Bedigliora", cantonCode: "TI" }, + { postalCode: "6981", placeName: "Biogno-Beride", cantonCode: "TI" }, + { postalCode: "6981", placeName: "Bedigliora", cantonCode: "TI" }, + { postalCode: "6981", placeName: "Banco", cantonCode: "TI" }, + { postalCode: "6981", placeName: "Bedigliora", cantonCode: "TI" }, + { postalCode: "6981", placeName: "Bombinasco", cantonCode: "TI" }, + { postalCode: "6982", placeName: "Agno", cantonCode: "TI" }, + { postalCode: "6983", placeName: "Magliaso", cantonCode: "TI" }, + { postalCode: "6984", placeName: "Pura", cantonCode: "TI" }, + { postalCode: "6986", placeName: "Curio", cantonCode: "TI" }, + { postalCode: "6986", placeName: "Novaggio", cantonCode: "TI" }, + { postalCode: "6986", placeName: "Miglieglia", cantonCode: "TI" }, + { postalCode: "6987", placeName: "Caslano", cantonCode: "TI" }, + { postalCode: "6988", placeName: "Ponte Tresa", cantonCode: "TI" }, + { postalCode: "6989", placeName: "Purasca", cantonCode: "TI" }, + { postalCode: "6990", placeName: "Cassina d'Agno", cantonCode: "TI" }, + { postalCode: "6991", placeName: "Neggio", cantonCode: "TI" }, + { postalCode: "6992", placeName: "Cimo", cantonCode: "TI" }, + { postalCode: "6992", placeName: "Vernate", cantonCode: "TI" }, + { postalCode: "6993", placeName: "Iseo", cantonCode: "TI" }, + { postalCode: "6994", placeName: "Aranno", cantonCode: "TI" }, + { postalCode: "6995", placeName: "Molinazzo di Monteggio", cantonCode: "TI" }, + { postalCode: "6995", placeName: "Madonna del Piano", cantonCode: "TI" }, + { postalCode: "6997", placeName: "Sessa", cantonCode: "TI" }, + { postalCode: "6998", placeName: "Monteggio 2", cantonCode: "TI" }, + { postalCode: "6998", placeName: "Monteggio", cantonCode: "TI" }, + { postalCode: "6998", placeName: "Termine", cantonCode: "TI" }, + { postalCode: "6999", placeName: "Astano", cantonCode: "TI" }, + { postalCode: "6825", placeName: "Capolago", cantonCode: "TI" }, + { postalCode: "6826", placeName: "Riva San Vitale", cantonCode: "TI" }, + { postalCode: "6828", placeName: "Balerna", cantonCode: "TI" }, + { postalCode: "6830", placeName: "Chiasso 3", cantonCode: "TI" }, + { postalCode: "6830", placeName: "Chiasso 1", cantonCode: "TI" }, + { postalCode: "6830", placeName: "Chiasso", cantonCode: "TI" }, + { postalCode: "6832", placeName: "Seseglio", cantonCode: "TI" }, + { postalCode: "6832", placeName: "Pedrinate", cantonCode: "TI" }, + { postalCode: "6833", placeName: "Vacallo", cantonCode: "TI" }, + { postalCode: "6834", placeName: "Morbio Inferiore", cantonCode: "TI" }, + { postalCode: "6835", placeName: "Morbio Superiore", cantonCode: "TI" }, + { postalCode: "6836", placeName: "Serfontana", cantonCode: "TI" }, + { postalCode: "6837", placeName: "Bruzella", cantonCode: "TI" }, + { postalCode: "6837", placeName: "Caneggio", cantonCode: "TI" }, + { postalCode: "6838", placeName: "Muggio", cantonCode: "TI" }, + { postalCode: "6838", placeName: "Cabbio", cantonCode: "TI" }, + { postalCode: "6838", placeName: "Scudellate", cantonCode: "TI" }, + { postalCode: "6839", placeName: "Sagno", cantonCode: "TI" }, + { postalCode: "6850", placeName: "Mendrisio Stazione", cantonCode: "TI" }, + { postalCode: "6850", placeName: "Mendrisio", cantonCode: "TI" }, + { postalCode: "6850", placeName: "Mendrisio Borgo", cantonCode: "TI" }, + { postalCode: "6852", placeName: "Genestrerio", cantonCode: "TI" }, + { postalCode: "6853", placeName: "Ligornetto", cantonCode: "TI" }, + { postalCode: "6854", placeName: "S. Pietro", cantonCode: "TI" }, + { postalCode: "6855", placeName: "Stabio", cantonCode: "TI" }, + { postalCode: "6862", placeName: "Rancate", cantonCode: "TI" }, + { postalCode: "6863", placeName: "Besazio", cantonCode: "TI" }, + { postalCode: "6864", placeName: "Arzo", cantonCode: "TI" }, + { postalCode: "6865", placeName: "Tremona", cantonCode: "TI" }, + { postalCode: "6866", placeName: "Meride", cantonCode: "TI" }, + { postalCode: "6872", placeName: "Somazzo", cantonCode: "TI" }, + { postalCode: "6872", placeName: "Salorino", cantonCode: "TI" }, + { postalCode: "6873", placeName: "Corteglia", cantonCode: "TI" }, + { postalCode: "6874", placeName: "Castel San Pietro", cantonCode: "TI" }, + { postalCode: "6875", placeName: "Campora", cantonCode: "TI" }, + { postalCode: "6875", placeName: "Monte", cantonCode: "TI" }, + { postalCode: "6875", placeName: "Casima", cantonCode: "TI" }, + { postalCode: "6877", placeName: "Coldrerio", cantonCode: "TI" }, + { postalCode: "6883", placeName: "Novazzano", cantonCode: "TI" }, + { postalCode: "6526", placeName: "Prosito", cantonCode: "TI" }, + { postalCode: "6527", placeName: "Lodrino", cantonCode: "TI" }, + { postalCode: "6703", placeName: "Osogna", cantonCode: "TI" }, + { postalCode: "6705", placeName: "Cresciano", cantonCode: "TI" }, + { postalCode: "6707", placeName: "Iragna", cantonCode: "TI" }, + { postalCode: "6710", placeName: "Biasca", cantonCode: "TI" }, + { postalCode: "6710", placeName: "Biasca Stazione", cantonCode: "TI" }, + { postalCode: "6670", placeName: "Avegno", cantonCode: "TI" }, + { postalCode: "6672", placeName: "Gordevio", cantonCode: "TI" }, + { postalCode: "6673", placeName: "Maggia", cantonCode: "TI" }, + { postalCode: "6674", placeName: "Someo", cantonCode: "TI" }, + { postalCode: "6674", placeName: "Riveo", cantonCode: "TI" }, + { postalCode: "6675", placeName: "Cevio", cantonCode: "TI" }, + { postalCode: "6676", placeName: "Bignasco", cantonCode: "TI" }, + { postalCode: "6677", placeName: "Aurigeno", cantonCode: "TI" }, + { postalCode: "6677", placeName: "Moghegno", cantonCode: "TI" }, + { postalCode: "6678", placeName: "Lodano", cantonCode: "TI" }, + { postalCode: "6678", placeName: "Coglio", cantonCode: "TI" }, + { postalCode: "6678", placeName: "Giumaglio", cantonCode: "TI" }, + { postalCode: "6682", placeName: "Linescio", cantonCode: "TI" }, + { postalCode: "6683", placeName: "Niva (Vallemaggia)", cantonCode: "TI" }, + { postalCode: "6683", placeName: "Cerentino", cantonCode: "TI" }, + { postalCode: "6684", placeName: "Cimalmotto", cantonCode: "TI" }, + { postalCode: "6684", placeName: "Campo (Vallemaggia)", cantonCode: "TI" }, + { postalCode: "6685", placeName: "Bosco/Gurin", cantonCode: "TI" }, + { postalCode: "6690", placeName: "S. Carlo (Val Bavona)", cantonCode: "TI" }, + { postalCode: "6690", placeName: "Cavergno", cantonCode: "TI" }, + { postalCode: "6692", placeName: "Brontallo", cantonCode: "TI" }, + { postalCode: "6692", placeName: "Menzonio", cantonCode: "TI" }, + { postalCode: "6693", placeName: "Broglio", cantonCode: "TI" }, + { postalCode: "6694", placeName: "Prato-Sornico", cantonCode: "TI" }, + { postalCode: "6695", placeName: "Peccia", cantonCode: "TI" }, + { postalCode: "6695", placeName: "Piano di Peccia", cantonCode: "TI" }, + { postalCode: "6696", placeName: "Fusio", cantonCode: "TI" }, + { postalCode: "6377", placeName: "Seelisberg", cantonCode: "UR" }, + { postalCode: "6441", placeName: "Rütli", cantonCode: "UR" }, + { postalCode: "6452", placeName: "Sisikon", cantonCode: "UR" }, + { postalCode: "6454", placeName: "Flüelen", cantonCode: "UR" }, + { postalCode: "6460", placeName: "Altdorf UR 2", cantonCode: "UR" }, + { postalCode: "6460", placeName: "Altdorf UR", cantonCode: "UR" }, + { postalCode: "6460", placeName: "Altdorf UR 1", cantonCode: "UR" }, + { postalCode: "6461", placeName: "Isenthal", cantonCode: "UR" }, + { postalCode: "6462", placeName: "Seedorf UR", cantonCode: "UR" }, + { postalCode: "6463", placeName: "Bürglen UR", cantonCode: "UR" }, + { postalCode: "6464", placeName: "Spiringen", cantonCode: "UR" }, + { postalCode: "6465", placeName: "Unterschächen", cantonCode: "UR" }, + { postalCode: "6466", placeName: "Bauen", cantonCode: "UR" }, + { postalCode: "6467", placeName: "Schattdorf", cantonCode: "UR" }, + { postalCode: "6468", placeName: "Attinghausen", cantonCode: "UR" }, + { postalCode: "6469", placeName: "Haldi b. Schattdorf", cantonCode: "UR" }, + { postalCode: "6472", placeName: "Erstfeld", cantonCode: "UR" }, + { postalCode: "6473", placeName: "Silenen", cantonCode: "UR" }, + { postalCode: "6474", placeName: "Amsteg", cantonCode: "UR" }, + { postalCode: "6475", placeName: "Bristen", cantonCode: "UR" }, + { postalCode: "6476", placeName: "Intschi", cantonCode: "UR" }, + { postalCode: "6482", placeName: "Gurtnellen", cantonCode: "UR" }, + { postalCode: "6484", placeName: "Wassen UR", cantonCode: "UR" }, + { postalCode: "6485", placeName: "Meien", cantonCode: "UR" }, + { postalCode: "6487", placeName: "Göschenen", cantonCode: "UR" }, + { postalCode: "6490", placeName: "Andermatt", cantonCode: "UR" }, + { postalCode: "6491", placeName: "Realp", cantonCode: "UR" }, + { postalCode: "6493", placeName: "Hospental", cantonCode: "UR" }, + { postalCode: "8751", placeName: "Urnerboden", cantonCode: "UR" }, + { postalCode: "1844", placeName: "Villeneuve VD", cantonCode: "VD" }, + { postalCode: "1845", placeName: "Noville", cantonCode: "VD" }, + { postalCode: "1846", placeName: "Chessel", cantonCode: "VD" }, + { postalCode: "1847", placeName: "Rennaz", cantonCode: "VD" }, + { postalCode: "1852", placeName: "Roche VD", cantonCode: "VD" }, + { postalCode: "1853", placeName: "Yvorne", cantonCode: "VD" }, + { postalCode: "1854", placeName: "Leysin", cantonCode: "VD" }, + { postalCode: "1856", placeName: "Corbeyrier", cantonCode: "VD" }, + { postalCode: "1860", placeName: "Aigle", cantonCode: "VD" }, + { postalCode: "1862", placeName: "Les Mosses", cantonCode: "VD" }, + { postalCode: "1862", placeName: "La Comballaz", cantonCode: "VD" }, + { postalCode: "1863", placeName: "Le Sépey", cantonCode: "VD" }, + { postalCode: "1864", placeName: "Vers-l'Eglise", cantonCode: "VD" }, + { postalCode: "1865", placeName: "Les Diablerets", cantonCode: "VD" }, + { postalCode: "1866", placeName: "La Forclaz VD", cantonCode: "VD" }, + { postalCode: "1867", placeName: "Panex", cantonCode: "VD" }, + { postalCode: "1867", placeName: "Ollon VD", cantonCode: "VD" }, + { postalCode: "1867", placeName: "St-Triphon", cantonCode: "VD" }, + { postalCode: "1880", placeName: "Les Posses-sur-Bex", cantonCode: "VD" }, + { postalCode: "1880", placeName: "Fenalet-sur-Bex", cantonCode: "VD" }, + { postalCode: "1880", placeName: "Frenières-sur-Bex", cantonCode: "VD" }, + { postalCode: "1880", placeName: "Bex", cantonCode: "VD" }, + { postalCode: "1880", placeName: "Les Plans-sur-Bex", cantonCode: "VD" }, + { postalCode: "1882", placeName: "Gryon", cantonCode: "VD" }, + { postalCode: "1884", placeName: "Arveyes", cantonCode: "VD" }, + { postalCode: "1884", placeName: "Villars-sur-Ollon", cantonCode: "VD" }, + { postalCode: "1884", placeName: "Huémoz", cantonCode: "VD" }, + { postalCode: "1885", placeName: "Chesières", cantonCode: "VD" }, + { postalCode: "1892", placeName: "Morcles", cantonCode: "VD" }, + { postalCode: "1892", placeName: "Lavey-Village", cantonCode: "VD" }, + { postalCode: "1892", placeName: "Lavey-les-Bains", cantonCode: "VD" }, + { postalCode: "1082", placeName: "Corcelles-le-Jorat", cantonCode: "VD" }, + { postalCode: "1085", placeName: "Vulliens", cantonCode: "VD" }, + { postalCode: "1088", placeName: "Ropraz", cantonCode: "VD" }, + { postalCode: "1509", placeName: "Vucherens", cantonCode: "VD" }, + { postalCode: "1510", placeName: "Syens", cantonCode: "VD" }, + { postalCode: "1510", placeName: "Moudon", cantonCode: "VD" }, + { postalCode: "1512", placeName: "Chavannes-sur-Moudon", cantonCode: "VD" }, + { postalCode: "1513", placeName: "Rossenges", cantonCode: "VD" }, + { postalCode: "1513", placeName: "Hermenches", cantonCode: "VD" }, + { postalCode: "1514", placeName: "Bussy-sur-Moudon", cantonCode: "VD" }, + { postalCode: "1515", placeName: "Villars-le-Comte", cantonCode: "VD" }, + { postalCode: "1521", placeName: "Curtilles", cantonCode: "VD" }, + { postalCode: "1522", placeName: "Lucens", cantonCode: "VD" }, + { postalCode: "1522", placeName: "Oulens-sur-Lucens", cantonCode: "VD" }, + { postalCode: "1523", placeName: "Granges-près-Marnand", cantonCode: "VD" }, + { postalCode: "1524", placeName: "Marnand", cantonCode: "VD" }, + { postalCode: "1525", placeName: "Henniez", cantonCode: "VD" }, + { postalCode: "1525", placeName: "Seigneux", cantonCode: "VD" }, + { postalCode: "1526", placeName: "Forel-sur-Lucens", cantonCode: "VD" }, + { postalCode: "1526", placeName: "Cremin", cantonCode: "VD" }, + { postalCode: "1530", placeName: "Payerne", cantonCode: "VD" }, + { postalCode: "1534", placeName: "Sassel", cantonCode: "VD" }, + { postalCode: "1535", placeName: "Combremont-le-Grand", cantonCode: "VD" }, + { postalCode: "1536", placeName: "Combremont-le-Petit", cantonCode: "VD" }, + { postalCode: "1537", placeName: "Champtauroz", cantonCode: "VD" }, + { postalCode: "1538", placeName: "Treytorrens (Payerne)", cantonCode: "VD" }, + { postalCode: "1543", placeName: "Grandcour", cantonCode: "VD" }, + { postalCode: "1545", placeName: "Chevroux", cantonCode: "VD" }, + { postalCode: "1551", placeName: "Vers-chez-Perrin", cantonCode: "VD" }, + { postalCode: "1552", placeName: "Trey", cantonCode: "VD" }, + { postalCode: "1554", placeName: "Rossens VD", cantonCode: "VD" }, + { postalCode: "1554", placeName: "Sédeilles", cantonCode: "VD" }, + { postalCode: "1555", placeName: "Villarzel", cantonCode: "VD" }, + { postalCode: "1562", placeName: "Corcelles-près-Payerne", cantonCode: "VD" }, + { postalCode: "1565", placeName: "Missy", cantonCode: "VD" }, + { postalCode: "1580", placeName: "Avenches", cantonCode: "VD" }, + { postalCode: "1580", placeName: "Donatyre", cantonCode: "VD" }, + { postalCode: "1580", placeName: "Oleyres", cantonCode: "VD" }, + { postalCode: "1584", placeName: "Villars-le-Grand", cantonCode: "VD" }, + { postalCode: "1585", placeName: "Salavaux", cantonCode: "VD" }, + { postalCode: "1585", placeName: "Cotterd", cantonCode: "VD" }, + { postalCode: "1585", placeName: "Bellerive VD", cantonCode: "VD" }, + { postalCode: "1586", placeName: "Vallamand", cantonCode: "VD" }, + { postalCode: "1587", placeName: "Constantine", cantonCode: "VD" }, + { postalCode: "1587", placeName: "Montmagny", cantonCode: "VD" }, + { postalCode: "1588", placeName: "Cudrefin", cantonCode: "VD" }, + { postalCode: "1589", placeName: "Chabrey", cantonCode: "VD" }, + { postalCode: "1595", placeName: "Faoug", cantonCode: "VD" }, + { postalCode: "1682", placeName: "Lovatens", cantonCode: "VD" }, + { postalCode: "1682", placeName: "Prévonloup", cantonCode: "VD" }, + { postalCode: "1682", placeName: "Villars-Bramard", cantonCode: "VD" }, + { postalCode: "1682", placeName: "Cerniaz VD", cantonCode: "VD" }, + { postalCode: "1682", placeName: "Dompierre VD", cantonCode: "VD" }, + { postalCode: "1683", placeName: "Brenles", cantonCode: "VD" }, + { postalCode: "1683", placeName: "Sarzens", cantonCode: "VD" }, + { postalCode: "1683", placeName: "Chesalles-sur-Moudon", cantonCode: "VD" }, + { postalCode: "1787", placeName: "Mur (Vully) VD", cantonCode: "VD" }, + { postalCode: "1031", placeName: "Mex VD", cantonCode: "VD" }, + { postalCode: "1034", placeName: "Boussens", cantonCode: "VD" }, + { postalCode: "1035", placeName: "Bournens", cantonCode: "VD" }, + { postalCode: "1036", placeName: "Sullens", cantonCode: "VD" }, + { postalCode: "1037", placeName: "Etagnières", cantonCode: "VD" }, + { postalCode: "1038", placeName: "Bercher", cantonCode: "VD" }, + { postalCode: "1040", placeName: "Echallens", cantonCode: "VD" }, + { postalCode: "1040", placeName: "Villars-le-Terroir", cantonCode: "VD" }, + { postalCode: "1040", placeName: "St-Barthélemy VD", cantonCode: "VD" }, + { postalCode: "1041", placeName: "Montaubion-Chardonney", cantonCode: "VD" }, + { postalCode: "1041", placeName: "Poliez-le-Grand", cantonCode: "VD" }, + { postalCode: "1041", placeName: "Poliez-Pittet", cantonCode: "VD" }, + { postalCode: "1041", placeName: "Bottens", cantonCode: "VD" }, + { postalCode: "1041", placeName: "Naz", cantonCode: "VD" }, + { postalCode: "1041", placeName: "Dommartin", cantonCode: "VD" }, + { postalCode: "1042", placeName: "Assens", cantonCode: "VD" }, + { postalCode: "1042", placeName: "Bioley-Orjulaz", cantonCode: "VD" }, + { postalCode: "1042", placeName: "Bettens", cantonCode: "VD" }, + { postalCode: "1043", placeName: "Sugnens", cantonCode: "VD" }, + { postalCode: "1044", placeName: "Fey", cantonCode: "VD" }, + { postalCode: "1045", placeName: "Ogens", cantonCode: "VD" }, + { postalCode: "1046", placeName: "Rueyres", cantonCode: "VD" }, + { postalCode: "1047", placeName: "Oppens", cantonCode: "VD" }, + { postalCode: "1053", placeName: "Cugy VD", cantonCode: "VD" }, + { postalCode: "1053", placeName: "Bretigny-sur-Morrens", cantonCode: "VD" }, + { postalCode: "1054", placeName: "Morrens VD", cantonCode: "VD" }, + { postalCode: "1055", placeName: "Froideville", cantonCode: "VD" }, + { postalCode: "1058", placeName: "Villars-Tiercelin", cantonCode: "VD" }, + { postalCode: "1059", placeName: "Peney-le-Jorat", cantonCode: "VD" }, + { postalCode: "1061", placeName: "Villars-Mendraz", cantonCode: "VD" }, + { postalCode: "1062", placeName: "Sottens", cantonCode: "VD" }, + { postalCode: "1063", placeName: "Boulens", cantonCode: "VD" }, + { postalCode: "1063", placeName: "Chapelle-sur-Moudon", cantonCode: "VD" }, + { postalCode: "1063", placeName: "Martherenges", cantonCode: "VD" }, + { postalCode: "1063", placeName: "Peyres-Possens", cantonCode: "VD" }, + { postalCode: "1302", placeName: "Vufflens-la-Ville", cantonCode: "VD" }, + { postalCode: "1303", placeName: "Penthaz", cantonCode: "VD" }, + { postalCode: "1305", placeName: "Penthalaz", cantonCode: "VD" }, + { postalCode: "1306", placeName: "Daillens", cantonCode: "VD" }, + { postalCode: "1307", placeName: "Lussery-Villars", cantonCode: "VD" }, + { postalCode: "1375", placeName: "Penthéréaz", cantonCode: "VD" }, + { postalCode: "1376", placeName: "Eclagnens", cantonCode: "VD" }, + { postalCode: "1376", placeName: "Goumoens-la-Ville", cantonCode: "VD" }, + { postalCode: "1376", placeName: "Goumoens-le-Jux", cantonCode: "VD" }, + { postalCode: "1377", placeName: "Oulens-sous-Echallens", cantonCode: "VD" }, + { postalCode: "1409", placeName: "Chanéaz", cantonCode: "VD" }, + { postalCode: "1410", placeName: "Correvon", cantonCode: "VD" }, + { postalCode: "1410", placeName: "Thierrens", cantonCode: "VD" }, + { postalCode: "1410", placeName: "Denezy", cantonCode: "VD" }, + { postalCode: "1410", placeName: "St-Cierges", cantonCode: "VD" }, + { postalCode: "1416", placeName: "Pailly", cantonCode: "VD" }, + { postalCode: "1417", placeName: "Epautheyres", cantonCode: "VD" }, + { postalCode: "1417", placeName: "Essertines-sur-Yverdon", cantonCode: "VD" }, + { postalCode: "1418", placeName: "Vuarrens", cantonCode: "VD" }, + { postalCode: "1515", placeName: "Neyruz-sur-Moudon", cantonCode: "VD" }, + { postalCode: "1148", placeName: "La Praz", cantonCode: "VD" }, + { postalCode: "1321", placeName: "Arnex-sur-Orbe", cantonCode: "VD" }, + { postalCode: "1322", placeName: "Croy", cantonCode: "VD" }, + { postalCode: "1323", placeName: "Romainmôtier", cantonCode: "VD" }, + { postalCode: "1324", placeName: "Premier", cantonCode: "VD" }, + { postalCode: "1325", placeName: "Vaulion", cantonCode: "VD" }, + { postalCode: "1326", placeName: "Juriens", cantonCode: "VD" }, + { postalCode: "1329", placeName: "Bretonnières", cantonCode: "VD" }, + { postalCode: "1337", placeName: "Vallorbe", cantonCode: "VD" }, + { postalCode: "1338", placeName: "Ballaigues", cantonCode: "VD" }, + { postalCode: "1341", placeName: "Orient", cantonCode: "VD" }, + { postalCode: "1341", placeName: "L'Orient", cantonCode: "VD" }, + { postalCode: "1342", placeName: "Le Pont", cantonCode: "VD" }, + { postalCode: "1343", placeName: "Les Charbonnières", cantonCode: "VD" }, + { postalCode: "1344", placeName: "L'Abbaye", cantonCode: "VD" }, + { postalCode: "1345", placeName: "Le Séchey", cantonCode: "VD" }, + { postalCode: "1345", placeName: "Le Lieu", cantonCode: "VD" }, + { postalCode: "1346", placeName: "Les Bioux", cantonCode: "VD" }, + { postalCode: "1347", placeName: "Le Solliat", cantonCode: "VD" }, + { postalCode: "1347", placeName: "Le Sentier", cantonCode: "VD" }, + { postalCode: "1348", placeName: "Le Brassus", cantonCode: "VD" }, + { postalCode: "1350", placeName: "Orbe", cantonCode: "VD" }, + { postalCode: "1352", placeName: "Agiez", cantonCode: "VD" }, + { postalCode: "1353", placeName: "Bofflens", cantonCode: "VD" }, + { postalCode: "1354", placeName: "Montcherand", cantonCode: "VD" }, + { postalCode: "1355", placeName: "Sergey", cantonCode: "VD" }, + { postalCode: "1355", placeName: "L'Abergement", cantonCode: "VD" }, + { postalCode: "1356", placeName: "La Russille", cantonCode: "VD" }, + { postalCode: "1356", placeName: "Les Clées", cantonCode: "VD" }, + { postalCode: "1357", placeName: "Lignerolle", cantonCode: "VD" }, + { postalCode: "1358", placeName: "Valeyres-sous-Rances", cantonCode: "VD" }, + { postalCode: "1372", placeName: "Bavois", cantonCode: "VD" }, + { postalCode: "1373", placeName: "Chavornay", cantonCode: "VD" }, + { postalCode: "1374", placeName: "Corcelles-sur-Chavornay", cantonCode: "VD" }, + { postalCode: "1400", placeName: "Yverdon 2", cantonCode: "VD" }, + { postalCode: "1400", placeName: "Yverdon-les-Bains", cantonCode: "VD" }, + { postalCode: "1400", placeName: "Cheseaux-Noréaz", cantonCode: "VD" }, + { postalCode: "1401", placeName: "Yverdon-les-Bains", cantonCode: "VD" }, + { postalCode: "1404", placeName: "Villars-Epeney", cantonCode: "VD" }, + { postalCode: "1404", placeName: "Cuarny", cantonCode: "VD" }, + { postalCode: "1405", placeName: "Pomy", cantonCode: "VD" }, + { postalCode: "1406", placeName: "Cronay", cantonCode: "VD" }, + { postalCode: "1407", placeName: "Donneloye", cantonCode: "VD" }, + { postalCode: "1407", placeName: "Mézery-près-Donneloye", cantonCode: "VD" }, + { postalCode: "1407", placeName: "Bioley-Magnoux", cantonCode: "VD" }, + { postalCode: "1407", placeName: "Gossens", cantonCode: "VD" }, + { postalCode: "1408", placeName: "Prahins", cantonCode: "VD" }, + { postalCode: "1412", placeName: "Ursins", cantonCode: "VD" }, + { postalCode: "1412", placeName: "Valeyres-sous-Ursins", cantonCode: "VD" }, + { postalCode: "1413", placeName: "Orzens", cantonCode: "VD" }, + { postalCode: "1415", placeName: "Démoret", cantonCode: "VD" }, + { postalCode: "1415", placeName: "Molondin", cantonCode: "VD" }, + { postalCode: "1420", placeName: "Fiez", cantonCode: "VD" }, + { postalCode: "1421", placeName: "Fontaines-sur-Grandson", cantonCode: "VD" }, + { postalCode: "1421", placeName: "Grandevent", cantonCode: "VD" }, + { postalCode: "1422", placeName: "Grandson", cantonCode: "VD" }, + { postalCode: "1423", placeName: "Villars-Burquin", cantonCode: "VD" }, + { postalCode: "1423", placeName: "Romairon", cantonCode: "VD" }, + { postalCode: "1423", placeName: "Vaugondry", cantonCode: "VD" }, + { postalCode: "1423", placeName: "Fontanezier", cantonCode: "VD" }, + { postalCode: "1424", placeName: "Champagne", cantonCode: "VD" }, + { postalCode: "1425", placeName: "Onnens VD", cantonCode: "VD" }, + { postalCode: "1426", placeName: "Corcelles-près-Concise", cantonCode: "VD" }, + { postalCode: "1426", placeName: "Concise", cantonCode: "VD" }, + { postalCode: "1427", placeName: "Bonvillars", cantonCode: "VD" }, + { postalCode: "1428", placeName: "Mutrux", cantonCode: "VD" }, + { postalCode: "1428", placeName: "Provence", cantonCode: "VD" }, + { postalCode: "1429", placeName: "Giez", cantonCode: "VD" }, + { postalCode: "1430", placeName: "Orges", cantonCode: "VD" }, + { postalCode: "1431", placeName: "Vugelles-La Mothe", cantonCode: "VD" }, + { postalCode: "1431", placeName: "Novalles", cantonCode: "VD" }, + { postalCode: "1432", placeName: "Gressy", cantonCode: "VD" }, + { postalCode: "1432", placeName: "Belmont-sur-Yverdon", cantonCode: "VD" }, + { postalCode: "1433", placeName: "Suchy", cantonCode: "VD" }, + { postalCode: "1434", placeName: "Ependes VD", cantonCode: "VD" }, + { postalCode: "1435", placeName: "Essert-Pittet", cantonCode: "VD" }, + { postalCode: "1436", placeName: "Treycovagnes", cantonCode: "VD" }, + { postalCode: "1436", placeName: "Chamblon", cantonCode: "VD" }, + { postalCode: "1437", placeName: "Suscévaz", cantonCode: "VD" }, + { postalCode: "1438", placeName: "Mathod", cantonCode: "VD" }, + { postalCode: "1439", placeName: "Rances", cantonCode: "VD" }, + { postalCode: "1440", placeName: "Montagny-Chamard", cantonCode: "VD" }, + { postalCode: "1441", placeName: "Valeyres-sous-Montagny", cantonCode: "VD" }, + { postalCode: "1442", placeName: "Montagny-près-Yverdon", cantonCode: "VD" }, + { postalCode: "1443", placeName: "Essert-sous-Champvent", cantonCode: "VD" }, + { postalCode: "1443", placeName: "Villars-sous-Champvent", cantonCode: "VD" }, + { postalCode: "1443", placeName: "Champvent", cantonCode: "VD" }, + { postalCode: "1445", placeName: "Vuiteboeuf", cantonCode: "VD" }, + { postalCode: "1446", placeName: "Baulmes", cantonCode: "VD" }, + { postalCode: "1450", placeName: "La Sagne (Ste-Croix)", cantonCode: "VD" }, + { postalCode: "1450", placeName: "Le Château-de-Ste-Croix", cantonCode: "VD" }, + { postalCode: "1450", placeName: "Ste-Croix", cantonCode: "VD" }, + { postalCode: "1452", placeName: "Les Rasses", cantonCode: "VD" }, + { postalCode: "1453", placeName: "Mauborget", cantonCode: "VD" }, + { postalCode: "1453", placeName: "Bullet", cantonCode: "VD" }, + { postalCode: "1454", placeName: "L'Auberson", cantonCode: "VD" }, + { postalCode: "1454", placeName: "La Vraconnaz", cantonCode: "VD" }, + { postalCode: "1462", placeName: "Yvonand", cantonCode: "VD" }, + { postalCode: "1463", placeName: "Rovray", cantonCode: "VD" }, + { postalCode: "1464", placeName: "Chêne-Pâquier", cantonCode: "VD" }, + { postalCode: "1464", placeName: "Chavannes-le-Chêne", cantonCode: "VD" }, + { postalCode: "1000", placeName: "Lausanne 22", cantonCode: "VD" }, + { postalCode: "1000", placeName: "Lausanne 14", cantonCode: "VD" }, + { postalCode: "1000", placeName: "Lausanne 26", cantonCode: "VD" }, + { postalCode: "1000", placeName: "Lausanne 12", cantonCode: "VD" }, + { postalCode: "1000", placeName: "Lausanne 27", cantonCode: "VD" }, + { postalCode: "1000", placeName: "Lausanne 18", cantonCode: "VD" }, + { postalCode: "1000", placeName: "Lausanne 10", cantonCode: "VD" }, + { postalCode: "1000", placeName: "Lausanne 16", cantonCode: "VD" }, + { postalCode: "1000", placeName: "Lausanne 25", cantonCode: "VD" }, + { postalCode: "1001", placeName: "Lausanne", cantonCode: "VD" }, + { postalCode: "1002", placeName: "Lausanne", cantonCode: "VD" }, + { postalCode: "1003", placeName: "Lausanne", cantonCode: "VD" }, + { postalCode: "1004", placeName: "Lausanne", cantonCode: "VD" }, + { postalCode: "1005", placeName: "Lausanne", cantonCode: "VD" }, + { postalCode: "1006", placeName: "Lausanne", cantonCode: "VD" }, + { postalCode: "1007", placeName: "Lausanne", cantonCode: "VD" }, + { postalCode: "1008", placeName: "Jouxtens-Mézery", cantonCode: "VD" }, + { postalCode: "1010", placeName: "Lausanne", cantonCode: "VD" }, + { postalCode: "1011", placeName: "Lausanne", cantonCode: "VD" }, + { postalCode: "1012", placeName: "Lausanne", cantonCode: "VD" }, + { postalCode: "1014", placeName: "Lausanne Adm cant", cantonCode: "VD" }, + { postalCode: "1014", placeName: "Lausanne Adm cant VD", cantonCode: "VD" }, + { postalCode: "1015", placeName: "Lausanne", cantonCode: "VD" }, + { postalCode: "1018", placeName: "Lausanne", cantonCode: "VD" }, + { postalCode: "1019", placeName: "Lausanne Services spéciaux", cantonCode: "VD" }, + { postalCode: "1019", placeName: "Lausanne", cantonCode: "VD" }, + { postalCode: "1032", placeName: "Romanel-sur-Lausanne", cantonCode: "VD" }, + { postalCode: "1033", placeName: "Cheseaux-sur-Lausanne", cantonCode: "VD" }, + { postalCode: "1039", placeName: "Cheseaux Polyval", cantonCode: "VD" }, + { postalCode: "1052", placeName: "Le Mont-sur-Lausanne", cantonCode: "VD" }, + { postalCode: "1066", placeName: "Epalinges", cantonCode: "VD" }, + { postalCode: "1009", placeName: "Pully", cantonCode: "VD" }, + { postalCode: "1068", placeName: "Les Monts-de-Pully", cantonCode: "VD" }, + { postalCode: "1070", placeName: "Puidoux", cantonCode: "VD" }, + { postalCode: "1071", placeName: "Rivaz", cantonCode: "VD" }, + { postalCode: "1071", placeName: "Chexbres", cantonCode: "VD" }, + { postalCode: "1071", placeName: "St-Saphorin (Lavaux)", cantonCode: "VD" }, + { postalCode: "1072", placeName: "Forel (Lavaux)", cantonCode: "VD" }, + { postalCode: "1073", placeName: "Savigny", cantonCode: "VD" }, + { postalCode: "1073", placeName: "Mollie-Margot", cantonCode: "VD" }, + { postalCode: "1076", placeName: "Ferlens VD", cantonCode: "VD" }, + { postalCode: "1077", placeName: "Servion", cantonCode: "VD" }, + { postalCode: "1078", placeName: "Essertes", cantonCode: "VD" }, + { postalCode: "1080", placeName: "Les Cullayes", cantonCode: "VD" }, + { postalCode: "1081", placeName: "Montpreveyres", cantonCode: "VD" }, + { postalCode: "1083", placeName: "Mézières VD", cantonCode: "VD" }, + { postalCode: "1084", placeName: "Carrouge VD", cantonCode: "VD" }, + { postalCode: "1090", placeName: "La Croix (Lutry)", cantonCode: "VD" }, + { postalCode: "1091", placeName: "Aran", cantonCode: "VD" }, + { postalCode: "1091", placeName: "Chenaux", cantonCode: "VD" }, + { postalCode: "1091", placeName: "Grandvaux", cantonCode: "VD" }, + { postalCode: "1092", placeName: "Belmont-sur-Lausanne", cantonCode: "VD" }, + { postalCode: "1093", placeName: "La Conversion", cantonCode: "VD" }, + { postalCode: "1094", placeName: "Paudex", cantonCode: "VD" }, + { postalCode: "1095", placeName: "Lutry", cantonCode: "VD" }, + { postalCode: "1096", placeName: "Cully", cantonCode: "VD" }, + { postalCode: "1096", placeName: "Villette (Lavaux)", cantonCode: "VD" }, + { postalCode: "1097", placeName: "Riex", cantonCode: "VD" }, + { postalCode: "1098", placeName: "Epesses", cantonCode: "VD" }, + { postalCode: "1607", placeName: "Les Tavernes", cantonCode: "VD" }, + { postalCode: "1607", placeName: "Les Thioleyres", cantonCode: "VD" }, + { postalCode: "1607", placeName: "Palézieux", cantonCode: "VD" }, + { postalCode: "1607", placeName: "Palézieux-Village", cantonCode: "VD" }, + { postalCode: "1608", placeName: "Oron-le-Châtel", cantonCode: "VD" }, + { postalCode: "1608", placeName: "Chesalles-sur-Oron", cantonCode: "VD" }, + { postalCode: "1608", placeName: "Bussigny-sur-Oron", cantonCode: "VD" }, + { postalCode: "1610", placeName: "Vuibroye", cantonCode: "VD" }, + { postalCode: "1610", placeName: "Oron-la-Ville", cantonCode: "VD" }, + { postalCode: "1610", placeName: "Châtillens", cantonCode: "VD" }, + { postalCode: "1612", placeName: "Ecoteaux", cantonCode: "VD" }, + { postalCode: "1613", placeName: "Maracon", cantonCode: "VD" }, + { postalCode: "1026", placeName: "Echandens-Denges", cantonCode: "VD" }, + { postalCode: "1026", placeName: "Echandens", cantonCode: "VD" }, + { postalCode: "1026", placeName: "Denges", cantonCode: "VD" }, + { postalCode: "1027", placeName: "Lonay", cantonCode: "VD" }, + { postalCode: "1028", placeName: "Préverenges", cantonCode: "VD" }, + { postalCode: "1110", placeName: "Morges 1", cantonCode: "VD" }, + { postalCode: "1110", placeName: "Morges", cantonCode: "VD" }, + { postalCode: "1110", placeName: "Morges 2", cantonCode: "VD" }, + { postalCode: "1112", placeName: "Echichens", cantonCode: "VD" }, + { postalCode: "1113", placeName: "St-Saphorin-sur-Morges", cantonCode: "VD" }, + { postalCode: "1114", placeName: "Colombier VD", cantonCode: "VD" }, + { postalCode: "1115", placeName: "Vullierens", cantonCode: "VD" }, + { postalCode: "1116", placeName: "Cottens VD", cantonCode: "VD" }, + { postalCode: "1117", placeName: "Grancy", cantonCode: "VD" }, + { postalCode: "1121", placeName: "Bremblens", cantonCode: "VD" }, + { postalCode: "1122", placeName: "Romanel-sur-Morges", cantonCode: "VD" }, + { postalCode: "1123", placeName: "Aclens", cantonCode: "VD" }, + { postalCode: "1124", placeName: "Gollion", cantonCode: "VD" }, + { postalCode: "1125", placeName: "Monnaz", cantonCode: "VD" }, + { postalCode: "1126", placeName: "Vaux-sur-Morges", cantonCode: "VD" }, + { postalCode: "1127", placeName: "Clarmont", cantonCode: "VD" }, + { postalCode: "1128", placeName: "Reverolle", cantonCode: "VD" }, + { postalCode: "1131", placeName: "Tolochenaz", cantonCode: "VD" }, + { postalCode: "1132", placeName: "Lully VD", cantonCode: "VD" }, + { postalCode: "1134", placeName: "Chigny", cantonCode: "VD" }, + { postalCode: "1134", placeName: "Vufflens-le-Château", cantonCode: "VD" }, + { postalCode: "1135", placeName: "Denens", cantonCode: "VD" }, + { postalCode: "1136", placeName: "Bussy-Chardonney", cantonCode: "VD" }, + { postalCode: "1141", placeName: "Sévery", cantonCode: "VD" }, + { postalCode: "1142", placeName: "Pampigny", cantonCode: "VD" }, + { postalCode: "1143", placeName: "Apples", cantonCode: "VD" }, + { postalCode: "1144", placeName: "Ballens", cantonCode: "VD" }, + { postalCode: "1145", placeName: "Bière", cantonCode: "VD" }, + { postalCode: "1146", placeName: "Mollens VD", cantonCode: "VD" }, + { postalCode: "1147", placeName: "Montricher", cantonCode: "VD" }, + { postalCode: "1148", placeName: "Cuarnens", cantonCode: "VD" }, + { postalCode: "1148", placeName: "L'Isle", cantonCode: "VD" }, + { postalCode: "1148", placeName: "Moiry VD", cantonCode: "VD" }, + { postalCode: "1148", placeName: "Villars-Bozon", cantonCode: "VD" }, + { postalCode: "1148", placeName: "Mont-la-Ville", cantonCode: "VD" }, + { postalCode: "1148", placeName: "Mauraz", cantonCode: "VD" }, + { postalCode: "1148", placeName: "La Coudre", cantonCode: "VD" }, + { postalCode: "1148", placeName: "Chavannes-le-Veyron", cantonCode: "VD" }, + { postalCode: "1149", placeName: "Berolle", cantonCode: "VD" }, + { postalCode: "1162", placeName: "St-Prex", cantonCode: "VD" }, + { postalCode: "1163", placeName: "Etoy", cantonCode: "VD" }, + { postalCode: "1164", placeName: "Buchillon", cantonCode: "VD" }, + { postalCode: "1165", placeName: "Allaman", cantonCode: "VD" }, + { postalCode: "1167", placeName: "Lussy-sur-Morges", cantonCode: "VD" }, + { postalCode: "1168", placeName: "Villars-sous-Yens", cantonCode: "VD" }, + { postalCode: "1169", placeName: "Yens", cantonCode: "VD" }, + { postalCode: "1170", placeName: "Aubonne", cantonCode: "VD" }, + { postalCode: "1172", placeName: "Bougy-Villars", cantonCode: "VD" }, + { postalCode: "1173", placeName: "Féchy", cantonCode: "VD" }, + { postalCode: "1174", placeName: "Pizy", cantonCode: "VD" }, + { postalCode: "1174", placeName: "Montherod", cantonCode: "VD" }, + { postalCode: "1175", placeName: "Lavigny", cantonCode: "VD" }, + { postalCode: "1176", placeName: "St-Livres", cantonCode: "VD" }, + { postalCode: "1187", placeName: "St-Oyens", cantonCode: "VD" }, + { postalCode: "1188", placeName: "Gimel", cantonCode: "VD" }, + { postalCode: "1189", placeName: "Saubraz", cantonCode: "VD" }, + { postalCode: "1304", placeName: "Dizy", cantonCode: "VD" }, + { postalCode: "1304", placeName: "Senarclens", cantonCode: "VD" }, + { postalCode: "1304", placeName: "Allens", cantonCode: "VD" }, + { postalCode: "1304", placeName: "Cossonay-Ville", cantonCode: "VD" }, + { postalCode: "1308", placeName: "La Chaux (Cossonay)", cantonCode: "VD" }, + { postalCode: "1312", placeName: "Eclépens", cantonCode: "VD" }, + { postalCode: "1313", placeName: "Ferreyres", cantonCode: "VD" }, + { postalCode: "1315", placeName: "La Sarraz", cantonCode: "VD" }, + { postalCode: "1316", placeName: "Chevilly", cantonCode: "VD" }, + { postalCode: "1317", placeName: "Orny", cantonCode: "VD" }, + { postalCode: "1318", placeName: "Pompaples", cantonCode: "VD" }, + { postalCode: "1166", placeName: "Perroy", cantonCode: "VD" }, + { postalCode: "1180", placeName: "Tartegnin", cantonCode: "VD" }, + { postalCode: "1180", placeName: "Rolle", cantonCode: "VD" }, + { postalCode: "1182", placeName: "Gilly", cantonCode: "VD" }, + { postalCode: "1183", placeName: "Bursins", cantonCode: "VD" }, + { postalCode: "1184", placeName: "Vinzel", cantonCode: "VD" }, + { postalCode: "1184", placeName: "Luins", cantonCode: "VD" }, + { postalCode: "1185", placeName: "Mont-sur-Rolle", cantonCode: "VD" }, + { postalCode: "1186", placeName: "Essertines-sur-Rolle", cantonCode: "VD" }, + { postalCode: "1188", placeName: "St-George", cantonCode: "VD" }, + { postalCode: "1195", placeName: "Dully", cantonCode: "VD" }, + { postalCode: "1195", placeName: "Bursinel", cantonCode: "VD" }, + { postalCode: "1196", placeName: "Gland", cantonCode: "VD" }, + { postalCode: "1197", placeName: "Prangins", cantonCode: "VD" }, + { postalCode: "1260", placeName: "Nyon 2", cantonCode: "VD" }, + { postalCode: "1260", placeName: "Nyon 1", cantonCode: "VD" }, + { postalCode: "1260", placeName: "Nyon", cantonCode: "VD" }, + { postalCode: "1261", placeName: "Marchissy", cantonCode: "VD" }, + { postalCode: "1261", placeName: "Le Vaud", cantonCode: "VD" }, + { postalCode: "1261", placeName: "Longirod", cantonCode: "VD" }, + { postalCode: "1262", placeName: "Eysins", cantonCode: "VD" }, + { postalCode: "1263", placeName: "Crassier", cantonCode: "VD" }, + { postalCode: "1264", placeName: "St-Cergue", cantonCode: "VD" }, + { postalCode: "1265", placeName: "La Cure", cantonCode: "VD" }, + { postalCode: "1266", placeName: "Duillier", cantonCode: "VD" }, + { postalCode: "1267", placeName: "Vich", cantonCode: "VD" }, + { postalCode: "1267", placeName: "Coinsins", cantonCode: "VD" }, + { postalCode: "1268", placeName: "Begnins", cantonCode: "VD" }, + { postalCode: "1268", placeName: "Burtigny", cantonCode: "VD" }, + { postalCode: "1269", placeName: "Bassins", cantonCode: "VD" }, + { postalCode: "1270", placeName: "Trélex", cantonCode: "VD" }, + { postalCode: "1271", placeName: "Givrins", cantonCode: "VD" }, + { postalCode: "1272", placeName: "Genolier", cantonCode: "VD" }, + { postalCode: "1273", placeName: "Arzier-Le Muids", cantonCode: "VD" }, + { postalCode: "1274", placeName: "Signy-Centre", cantonCode: "VD" }, + { postalCode: "1274", placeName: "Signy", cantonCode: "VD" }, + { postalCode: "1274", placeName: "Grens", cantonCode: "VD" }, + { postalCode: "1275", placeName: "Chéserex", cantonCode: "VD" }, + { postalCode: "1276", placeName: "Gingins", cantonCode: "VD" }, + { postalCode: "1277", placeName: "Borex", cantonCode: "VD" }, + { postalCode: "1277", placeName: "Arnex-sur-Nyon", cantonCode: "VD" }, + { postalCode: "1278", placeName: "La Rippe", cantonCode: "VD" }, + { postalCode: "1279", placeName: "Bogis-Bossey", cantonCode: "VD" }, + { postalCode: "1279", placeName: "Chavannes-de-Bogis", cantonCode: "VD" }, + { postalCode: "1290", placeName: "Chavannes-des-Bois", cantonCode: "VD" }, + { postalCode: "1291", placeName: "Commugny", cantonCode: "VD" }, + { postalCode: "1295", placeName: "Tannay", cantonCode: "VD" }, + { postalCode: "1295", placeName: "Mies", cantonCode: "VD" }, + { postalCode: "1296", placeName: "Coppet", cantonCode: "VD" }, + { postalCode: "1297", placeName: "Founex", cantonCode: "VD" }, + { postalCode: "1299", placeName: "Crans VD", cantonCode: "VD" }, + { postalCode: "1299", placeName: "Crans-près-Céligny", cantonCode: "VD" }, + { postalCode: "1008", placeName: "Prilly", cantonCode: "VD" }, + { postalCode: "1020", placeName: "Renens VD", cantonCode: "VD" }, + { postalCode: "1020", placeName: "Renens VD 1", cantonCode: "VD" }, + { postalCode: "1022", placeName: "Chavannes-près-Renens", cantonCode: "VD" }, + { postalCode: "1023", placeName: "Crissier", cantonCode: "VD" }, + { postalCode: "1023", placeName: "Crissier 1", cantonCode: "VD" }, + { postalCode: "1024", placeName: "Ecublens VD", cantonCode: "VD" }, + { postalCode: "1025", placeName: "St-Sulpice VD", cantonCode: "VD" }, + { postalCode: "1029", placeName: "Villars-Ste-Croix", cantonCode: "VD" }, + { postalCode: "1030", placeName: "Bussigny", cantonCode: "VD" }, + { postalCode: "1658", placeName: "Rossinière", cantonCode: "VD" }, + { postalCode: "1658", placeName: "La Tine", cantonCode: "VD" }, + { postalCode: "1659", placeName: "Rougemont", cantonCode: "VD" }, + { postalCode: "1659", placeName: "Flendruz", cantonCode: "VD" }, + { postalCode: "1660", placeName: "La Lécherette", cantonCode: "VD" }, + { postalCode: "1660", placeName: "Les Moulins", cantonCode: "VD" }, + { postalCode: "1660", placeName: "L'Etivaz", cantonCode: "VD" }, + { postalCode: "1660", placeName: "Château-d'Oex", cantonCode: "VD" }, + { postalCode: "1800", placeName: "Vevey 1", cantonCode: "VD" }, + { postalCode: "1800", placeName: "Vevey", cantonCode: "VD" }, + { postalCode: "1801", placeName: "Le Mont-Pèlerin", cantonCode: "VD" }, + { postalCode: "1802", placeName: "Corseaux", cantonCode: "VD" }, + { postalCode: "1803", placeName: "Chardonne", cantonCode: "VD" }, + { postalCode: "1804", placeName: "Corsier-sur-Vevey", cantonCode: "VD" }, + { postalCode: "1805", placeName: "Jongny", cantonCode: "VD" }, + { postalCode: "1806", placeName: "St-Légier-La Chiésaz", cantonCode: "VD" }, + { postalCode: "1807", placeName: "Blonay", cantonCode: "VD" }, + { postalCode: "1808", placeName: "Les Monts-de-Corsier", cantonCode: "VD" }, + { postalCode: "1809", placeName: "Fenil-sur-Corsier", cantonCode: "VD" }, + { postalCode: "1811", placeName: "Vevey", cantonCode: "VD" }, + { postalCode: "1811", placeName: "Vevey Services spéciaux", cantonCode: "VD" }, + { postalCode: "1814", placeName: "La Tour-de-Peilz", cantonCode: "VD" }, + { postalCode: "1815", placeName: "Clarens", cantonCode: "VD" }, + { postalCode: "1816", placeName: "Chailly-Montreux", cantonCode: "VD" }, + { postalCode: "1817", placeName: "Brent", cantonCode: "VD" }, + { postalCode: "1818", placeName: "Montreux Redoute", cantonCode: "VD" }, + { postalCode: "1818", placeName: "Montreux La Redoute", cantonCode: "VD" }, + { postalCode: "1820", placeName: "Montreux 2", cantonCode: "VD" }, + { postalCode: "1820", placeName: "Territet", cantonCode: "VD" }, + { postalCode: "1820", placeName: "Veytaux", cantonCode: "VD" }, + { postalCode: "1820", placeName: "Montreux", cantonCode: "VD" }, + { postalCode: "1820", placeName: "Montreux 1", cantonCode: "VD" }, + { postalCode: "1822", placeName: "Chernex", cantonCode: "VD" }, + { postalCode: "1823", placeName: "Glion", cantonCode: "VD" }, + { postalCode: "1824", placeName: "Caux", cantonCode: "VD" }, + { postalCode: "1832", placeName: "Chamby", cantonCode: "VD" }, + { postalCode: "1832", placeName: "Villard-sur-Chamby", cantonCode: "VD" }, + { postalCode: "1833", placeName: "Les Avants", cantonCode: "VD" }, + { postalCode: "3900", placeName: "Brig", cantonCode: "VS" }, + { postalCode: "3900", placeName: "Brigerbad", cantonCode: "VS" }, + { postalCode: "3900", placeName: "Gamsen", cantonCode: "VS" }, + { postalCode: "3901", placeName: "Rothwald", cantonCode: "VS" }, + { postalCode: "3902", placeName: "Glis", cantonCode: "VS" }, + { postalCode: "3903", placeName: "Mund", cantonCode: "VS" }, + { postalCode: "3903", placeName: "Birgisch", cantonCode: "VS" }, + { postalCode: "3904", placeName: "Naters", cantonCode: "VS" }, + { postalCode: "3907", placeName: "Simplon Dorf", cantonCode: "VS" }, + { postalCode: "3907", placeName: "Gabi (Simplon)", cantonCode: "VS" }, + { postalCode: "3907", placeName: "Gondo", cantonCode: "VS" }, + { postalCode: "3911", placeName: "Ried-Brig", cantonCode: "VS" }, + { postalCode: "3912", placeName: "Termen", cantonCode: "VS" }, + { postalCode: "3913", placeName: "Rosswald", cantonCode: "VS" }, + { postalCode: "3914", placeName: "Blatten b. Naters", cantonCode: "VS" }, + { postalCode: "3914", placeName: "Belalp", cantonCode: "VS" }, + { postalCode: "3939", placeName: "Eggerberg", cantonCode: "VS" }, + { postalCode: "1911", placeName: "Mayens-de-Chamoson", cantonCode: "VS" }, + { postalCode: "1955", placeName: "Mayens-de-Chamoson", cantonCode: "VS" }, + { postalCode: "1955", placeName: "Némiaz (Chamoson)", cantonCode: "VS" }, + { postalCode: "1955", placeName: "Les Vérines (Chamoson)", cantonCode: "VS" }, + { postalCode: "1955", placeName: "Grugnay (Chamoson)", cantonCode: "VS" }, + { postalCode: "1955", placeName: "Chamoson", cantonCode: "VS" }, + { postalCode: "1955", placeName: "St-Pierre-de-Clages", cantonCode: "VS" }, + { postalCode: "1957", placeName: "Ardon", cantonCode: "VS" }, + { postalCode: "1963", placeName: "Vétroz", cantonCode: "VS" }, + { postalCode: "1964", placeName: "Conthey", cantonCode: "VS" }, + { postalCode: "1975", placeName: "St-Séverin", cantonCode: "VS" }, + { postalCode: "1976", placeName: "Aven", cantonCode: "VS" }, + { postalCode: "1976", placeName: "Daillon", cantonCode: "VS" }, + { postalCode: "1976", placeName: "Erde", cantonCode: "VS" }, + { postalCode: "1993", placeName: "Clèbes (Nendaz)", cantonCode: "VS" }, + { postalCode: "1994", placeName: "Aproz (Nendaz)", cantonCode: "VS" }, + { postalCode: "1996", placeName: "Condémines (Nendaz)", cantonCode: "VS" }, + { postalCode: "1996", placeName: "Beuson (Nendaz)", cantonCode: "VS" }, + { postalCode: "1996", placeName: "Baar (Nendaz)", cantonCode: "VS" }, + { postalCode: "1996", placeName: "Bieudron (Nendaz)", cantonCode: "VS" }, + { postalCode: "1996", placeName: "Brignon (Nendaz)", cantonCode: "VS" }, + { postalCode: "1996", placeName: "Saclentse", cantonCode: "VS" }, + { postalCode: "1996", placeName: "Fey (Nendaz)", cantonCode: "VS" }, + { postalCode: "1996", placeName: "Basse-Nendaz", cantonCode: "VS" }, + { postalCode: "1997", placeName: "Haute-Nendaz", cantonCode: "VS" }, + { postalCode: "1997", placeName: "Sornard (Nendaz)", cantonCode: "VS" }, + { postalCode: "1997", placeName: "Siviez (Nendaz)", cantonCode: "VS" }, + { postalCode: "1927", placeName: "Chemin", cantonCode: "VS" }, + { postalCode: "1933", placeName: "La Garde (Sembrancher)", cantonCode: "VS" }, + { postalCode: "1933", placeName: "Vens (Sembrancher)", cantonCode: "VS" }, + { postalCode: "1933", placeName: "Sembrancher", cantonCode: "VS" }, + { postalCode: "1933", placeName: "Chamoille (Sembrancher)", cantonCode: "VS" }, + { postalCode: "1934", placeName: "Le Châble VS", cantonCode: "VS" }, + { postalCode: "1934", placeName: "Bruson", cantonCode: "VS" }, + { postalCode: "1936", placeName: "Verbier", cantonCode: "VS" }, + { postalCode: "1937", placeName: "Orsières", cantonCode: "VS" }, + { postalCode: "1938", placeName: "Champex-Lac", cantonCode: "VS" }, + { postalCode: "1941", placeName: "Vollèges", cantonCode: "VS" }, + { postalCode: "1941", placeName: "Cries (Vollèges)", cantonCode: "VS" }, + { postalCode: "1942", placeName: "Levron", cantonCode: "VS" }, + { postalCode: "1943", placeName: "Praz-de-Fort", cantonCode: "VS" }, + { postalCode: "1944", placeName: "La Fouly VS", cantonCode: "VS" }, + { postalCode: "1945", placeName: "Chez Petit (Liddes)", cantonCode: "VS" }, + { postalCode: "1945", placeName: "Vichères (Liddes)", cantonCode: "VS" }, + { postalCode: "1945", placeName: "Palasuit (Liddes)", cantonCode: "VS" }, + { postalCode: "1945", placeName: "Dranse (Liddes)", cantonCode: "VS" }, + { postalCode: "1945", placeName: "Chandonne (Liddes)", cantonCode: "VS" }, + { postalCode: "1945", placeName: "Rive Haute (Liddes)", cantonCode: "VS" }, + { postalCode: "1945", placeName: "Fontaine Dessus (Liddes)", cantonCode: "VS" }, + { postalCode: "1945", placeName: "Petit Vichères (Liddes)", cantonCode: "VS" }, + { postalCode: "1945", placeName: "Liddes", cantonCode: "VS" }, + { postalCode: "1945", placeName: "Fontaine Dessous (Liddes)", cantonCode: "VS" }, + { postalCode: "1945", placeName: "Les Moulins VS (Liddes)", cantonCode: "VS" }, + { postalCode: "1945", placeName: "Fornex (Liddes)", cantonCode: "VS" }, + { postalCode: "1946", placeName: "Bourg-St-Pierre", cantonCode: "VS" }, + { postalCode: "1947", placeName: "Versegères", cantonCode: "VS" }, + { postalCode: "1947", placeName: "Champsec", cantonCode: "VS" }, + { postalCode: "1948", placeName: "Fionnay", cantonCode: "VS" }, + { postalCode: "1948", placeName: "Lourtier", cantonCode: "VS" }, + { postalCode: "1948", placeName: "Sarreyer", cantonCode: "VS" }, + { postalCode: "3801", placeName: "Jungfraujoch", cantonCode: "VS" }, + { postalCode: "3984", placeName: "Fiesch", cantonCode: "VS" }, + { postalCode: "3984", placeName: "Fieschertal", cantonCode: "VS" }, + { postalCode: "3984", placeName: "Fiesch", cantonCode: "VS" }, + { postalCode: "3985", placeName: "Münster VS", cantonCode: "VS" }, + { postalCode: "3985", placeName: "Geschinen", cantonCode: "VS" }, + { postalCode: "3988", placeName: "Obergesteln", cantonCode: "VS" }, + { postalCode: "3988", placeName: "Ulrichen", cantonCode: "VS" }, + { postalCode: "3989", placeName: "Selkingen", cantonCode: "VS" }, + { postalCode: "3989", placeName: "Ritzingen", cantonCode: "VS" }, + { postalCode: "3989", placeName: "Blitzingen", cantonCode: "VS" }, + { postalCode: "3989", placeName: "Niederwald", cantonCode: "VS" }, + { postalCode: "3989", placeName: "Biel VS", cantonCode: "VS" }, + { postalCode: "3989", placeName: "Grafschaft", cantonCode: "VS" }, + { postalCode: "3994", placeName: "Lax", cantonCode: "VS" }, + { postalCode: "3995", placeName: "Steinhaus", cantonCode: "VS" }, + { postalCode: "3995", placeName: "Steinhaus", cantonCode: "VS" }, + { postalCode: "3995", placeName: "Mühlebach (Goms)", cantonCode: "VS" }, + { postalCode: "3995", placeName: "Ernen", cantonCode: "VS" }, + { postalCode: "3995", placeName: "Mühlebach (Goms)", cantonCode: "VS" }, + { postalCode: "3995", placeName: "Ausserbinn", cantonCode: "VS" }, + { postalCode: "3996", placeName: "Binn", cantonCode: "VS" }, + { postalCode: "3997", placeName: "Bellwald", cantonCode: "VS" }, + { postalCode: "3998", placeName: "Reckingen VS", cantonCode: "VS" }, + { postalCode: "3998", placeName: "Gluringen", cantonCode: "VS" }, + { postalCode: "3999", placeName: "Oberwald", cantonCode: "VS" }, + { postalCode: "1961", placeName: "Vernamiège", cantonCode: "VS" }, + { postalCode: "1966", placeName: "Saxonne (Ayent)", cantonCode: "VS" }, + { postalCode: "1966", placeName: "Botyre (Ayent)", cantonCode: "VS" }, + { postalCode: "1966", placeName: "Luc (Ayent)", cantonCode: "VS" }, + { postalCode: "1966", placeName: "Villa (Ayent)", cantonCode: "VS" }, + { postalCode: "1966", placeName: "Argnou (Ayent)", cantonCode: "VS" }, + { postalCode: "1966", placeName: "La Place (Ayent)", cantonCode: "VS" }, + { postalCode: "1966", placeName: "Fortunau (Ayent)", cantonCode: "VS" }, + { postalCode: "1966", placeName: "Blignou (Ayent)", cantonCode: "VS" }, + { postalCode: "1966", placeName: "Ayent", cantonCode: "VS" }, + { postalCode: "1966", placeName: "Signèse (Ayent)", cantonCode: "VS" }, + { postalCode: "1966", placeName: "St-Romain (Ayent)", cantonCode: "VS" }, + { postalCode: "1968", placeName: "Mase", cantonCode: "VS" }, + { postalCode: "1969", placeName: "Eison (St-Martin)", cantonCode: "VS" }, + { postalCode: "1969", placeName: "Liez (St-Martin)", cantonCode: "VS" }, + { postalCode: "1969", placeName: "St-Martin VS", cantonCode: "VS" }, + { postalCode: "1969", placeName: "Trogne (St-Martin)", cantonCode: "VS" }, + { postalCode: "1969", placeName: "Suen (St-Martin)", cantonCode: "VS" }, + { postalCode: "1972", placeName: "Anzère", cantonCode: "VS" }, + { postalCode: "1973", placeName: "Nax", cantonCode: "VS" }, + { postalCode: "1981", placeName: "Vex", cantonCode: "VS" }, + { postalCode: "1982", placeName: "Euseigne", cantonCode: "VS" }, + { postalCode: "1983", placeName: "Evolène", cantonCode: "VS" }, + { postalCode: "1983", placeName: "Lanna", cantonCode: "VS" }, + { postalCode: "1984", placeName: "La Tour VS", cantonCode: "VS" }, + { postalCode: "1984", placeName: "Les Haudères", cantonCode: "VS" }, + { postalCode: "1985", placeName: "La Forclaz VS", cantonCode: "VS" }, + { postalCode: "1985", placeName: "Villa (Evolène)", cantonCode: "VS" }, + { postalCode: "1985", placeName: "La Sage", cantonCode: "VS" }, + { postalCode: "1986", placeName: "Arolla", cantonCode: "VS" }, + { postalCode: "1987", placeName: "Hérémence", cantonCode: "VS" }, + { postalCode: "1988", placeName: "Thyon", cantonCode: "VS" }, + { postalCode: "1988", placeName: "Les Collons", cantonCode: "VS" }, + { postalCode: "3945", placeName: "Niedergampel", cantonCode: "VS" }, + { postalCode: "3945", placeName: "Gampel", cantonCode: "VS" }, + { postalCode: "3946", placeName: "Turtmann", cantonCode: "VS" }, + { postalCode: "3946", placeName: "Gruben", cantonCode: "VS" }, + { postalCode: "3947", placeName: "Ergisch", cantonCode: "VS" }, + { postalCode: "3948", placeName: "Unterems", cantonCode: "VS" }, + { postalCode: "3948", placeName: "Oberems", cantonCode: "VS" }, + { postalCode: "3951", placeName: "Agarn", cantonCode: "VS" }, + { postalCode: "3952", placeName: "Susten", cantonCode: "VS" }, + { postalCode: "3953", placeName: "Inden", cantonCode: "VS" }, + { postalCode: "3953", placeName: "Leuk Stadt", cantonCode: "VS" }, + { postalCode: "3953", placeName: "Varen", cantonCode: "VS" }, + { postalCode: "3954", placeName: "Leukerbad", cantonCode: "VS" }, + { postalCode: "3955", placeName: "Albinen", cantonCode: "VS" }, + { postalCode: "3956", placeName: "Guttet-Feschel", cantonCode: "VS" }, + { postalCode: "3957", placeName: "Bratsch", cantonCode: "VS" }, + { postalCode: "3957", placeName: "Erschmatt", cantonCode: "VS" }, + { postalCode: "3970", placeName: "Salgesch", cantonCode: "VS" }, + { postalCode: "1906", placeName: "Charrat", cantonCode: "VS" }, + { postalCode: "1907", placeName: "Saxon", cantonCode: "VS" }, + { postalCode: "1908", placeName: "Riddes", cantonCode: "VS" }, + { postalCode: "1911", placeName: "Ovronnaz", cantonCode: "VS" }, + { postalCode: "1912", placeName: "Produit (Leytron)", cantonCode: "VS" }, + { postalCode: "1912", placeName: "Dugny (Leytron)", cantonCode: "VS" }, + { postalCode: "1912", placeName: "Leytron", cantonCode: "VS" }, + { postalCode: "1912", placeName: "Montagnon (Leytron)", cantonCode: "VS" }, + { postalCode: "1913", placeName: "Saillon", cantonCode: "VS" }, + { postalCode: "1913", placeName: "Saillon", cantonCode: "VS" }, + { postalCode: "1914", placeName: "Auddes-sur-Riddes", cantonCode: "VS" }, + { postalCode: "1914", placeName: "Isérables", cantonCode: "VS" }, + { postalCode: "1918", placeName: "La Tzoumaz", cantonCode: "VS" }, + { postalCode: "1919", placeName: "Martigny Groupe Mutuel", cantonCode: "VS" }, + { postalCode: "1919", placeName: "Martigny Mutuel", cantonCode: "VS" }, + { postalCode: "1920", placeName: "Martigny", cantonCode: "VS" }, + { postalCode: "1920", placeName: "Martigny 1", cantonCode: "VS" }, + { postalCode: "1921", placeName: "Martigny-Croix", cantonCode: "VS" }, + { postalCode: "1926", placeName: "Fully", cantonCode: "VS" }, + { postalCode: "1928", placeName: "Ravoire", cantonCode: "VS" }, + { postalCode: "1929", placeName: "Trient", cantonCode: "VS" }, + { postalCode: "1932", placeName: "Bovernier", cantonCode: "VS" }, + { postalCode: "1932", placeName: "Les Valettes (Bovernier)", cantonCode: "VS" }, + { postalCode: "1868", placeName: "Collombey", cantonCode: "VS" }, + { postalCode: "1870", placeName: "Monthey 2", cantonCode: "VS" }, + { postalCode: "1870", placeName: "Monthey", cantonCode: "VS" }, + { postalCode: "1870", placeName: "Monthey", cantonCode: "VS" }, + { postalCode: "1870", placeName: "Monthey 1", cantonCode: "VS" }, + { postalCode: "1871", placeName: "Les Giettes", cantonCode: "VS" }, + { postalCode: "1871", placeName: "Choëx", cantonCode: "VS" }, + { postalCode: "1872", placeName: "Troistorrents", cantonCode: "VS" }, + { postalCode: "1873", placeName: "Val-d'Illiez", cantonCode: "VS" }, + { postalCode: "1873", placeName: "Les Crosets", cantonCode: "VS" }, + { postalCode: "1873", placeName: "Champoussin", cantonCode: "VS" }, + { postalCode: "1874", placeName: "Champéry", cantonCode: "VS" }, + { postalCode: "1875", placeName: "Morgins", cantonCode: "VS" }, + { postalCode: "1893", placeName: "Muraz (Collombey)", cantonCode: "VS" }, + { postalCode: "1895", placeName: "Vionnaz", cantonCode: "VS" }, + { postalCode: "1896", placeName: "Vouvry", cantonCode: "VS" }, + { postalCode: "1896", placeName: "Miex", cantonCode: "VS" }, + { postalCode: "1897", placeName: "Les Evouettes", cantonCode: "VS" }, + { postalCode: "1897", placeName: "Bouveret", cantonCode: "VS" }, + { postalCode: "1898", placeName: "St-Gingolph", cantonCode: "VS" }, + { postalCode: "1899", placeName: "Torgon", cantonCode: "VS" }, + { postalCode: "3916", placeName: "Ferden", cantonCode: "VS" }, + { postalCode: "3917", placeName: "Goppenstein", cantonCode: "VS" }, + { postalCode: "3917", placeName: "Kippel", cantonCode: "VS" }, + { postalCode: "3918", placeName: "Wiler (Lötschen)", cantonCode: "VS" }, + { postalCode: "3919", placeName: "Blatten (Lötschen)", cantonCode: "VS" }, + { postalCode: "3935", placeName: "Bürchen", cantonCode: "VS" }, + { postalCode: "3938", placeName: "Ausserberg", cantonCode: "VS" }, + { postalCode: "3940", placeName: "Steg VS", cantonCode: "VS" }, + { postalCode: "3942", placeName: "Niedergesteln", cantonCode: "VS" }, + { postalCode: "3942", placeName: "St. German", cantonCode: "VS" }, + { postalCode: "3942", placeName: "Raron", cantonCode: "VS" }, + { postalCode: "3943", placeName: "Eischoll", cantonCode: "VS" }, + { postalCode: "3944", placeName: "Unterbäch VS", cantonCode: "VS" }, + { postalCode: "3949", placeName: "Hohtenn", cantonCode: "VS" }, + { postalCode: "3982", placeName: "Bitsch", cantonCode: "VS" }, + { postalCode: "3983", placeName: "Filet", cantonCode: "VS" }, + { postalCode: "3983", placeName: "Mörel", cantonCode: "VS" }, + { postalCode: "3983", placeName: "Bister", cantonCode: "VS" }, + { postalCode: "3983", placeName: "Greich", cantonCode: "VS" }, + { postalCode: "3983", placeName: "Goppisberg", cantonCode: "VS" }, + { postalCode: "3986", placeName: "Ried-Mörel", cantonCode: "VS" }, + { postalCode: "3987", placeName: "Riederalp", cantonCode: "VS" }, + { postalCode: "3991", placeName: "Betten", cantonCode: "VS" }, + { postalCode: "3992", placeName: "Bettmeralp", cantonCode: "VS" }, + { postalCode: "3993", placeName: "Grengiols", cantonCode: "VS" }, + { postalCode: "3994", placeName: "Martisberg", cantonCode: "VS" }, + { postalCode: "1869", placeName: "Massongex", cantonCode: "VS" }, + { postalCode: "1890", placeName: "St-Maurice", cantonCode: "VS" }, + { postalCode: "1890", placeName: "Mex VS", cantonCode: "VS" }, + { postalCode: "1891", placeName: "Vérossaz", cantonCode: "VS" }, + { postalCode: "1902", placeName: "Evionnaz", cantonCode: "VS" }, + { postalCode: "1903", placeName: "Collonges", cantonCode: "VS" }, + { postalCode: "1904", placeName: "Vernayaz", cantonCode: "VS" }, + { postalCode: "1905", placeName: "Dorénaz", cantonCode: "VS" }, + { postalCode: "1922", placeName: "Les Granges (Salvan)", cantonCode: "VS" }, + { postalCode: "1922", placeName: "Salvan", cantonCode: "VS" }, + { postalCode: "1923", placeName: "Les Marécottes", cantonCode: "VS" }, + { postalCode: "1923", placeName: "Le Trétien", cantonCode: "VS" }, + { postalCode: "1925", placeName: "Le Châtelard VS", cantonCode: "VS" }, + { postalCode: "1925", placeName: "Finhaut", cantonCode: "VS" }, + { postalCode: "1958", placeName: "St-Léonard", cantonCode: "VS" }, + { postalCode: "1977", placeName: "Icogne", cantonCode: "VS" }, + { postalCode: "1978", placeName: "Lens", cantonCode: "VS" }, + { postalCode: "3960", placeName: "Loc", cantonCode: "VS" }, + { postalCode: "3960", placeName: "Niouc", cantonCode: "VS" }, + { postalCode: "3960", placeName: "Sierre", cantonCode: "VS" }, + { postalCode: "3960", placeName: "Corin-de-la-Crête", cantonCode: "VS" }, + { postalCode: "3960", placeName: "Muraz (Sierre)", cantonCode: "VS" }, + { postalCode: "3961", placeName: "St-Jean VS", cantonCode: "VS" }, + { postalCode: "3961", placeName: "Chandolin", cantonCode: "VS" }, + { postalCode: "3961", placeName: "Zinal", cantonCode: "VS" }, + { postalCode: "3961", placeName: "Ayer", cantonCode: "VS" }, + { postalCode: "3961", placeName: "St-Luc", cantonCode: "VS" }, + { postalCode: "3961", placeName: "Mission", cantonCode: "VS" }, + { postalCode: "3961", placeName: "Grimentz", cantonCode: "VS" }, + { postalCode: "3961", placeName: "Vissoie", cantonCode: "VS" }, + { postalCode: "3963", placeName: "Crans-Montana 1", cantonCode: "VS" }, + { postalCode: "3963", placeName: "Crans-Montana", cantonCode: "VS" }, + { postalCode: "3963", placeName: "Montana", cantonCode: "VS" }, + { postalCode: "3963", placeName: "Crans-Montana 2", cantonCode: "VS" }, + { postalCode: "3963", placeName: "Aminona", cantonCode: "VS" }, + { postalCode: "3965", placeName: "Chippis", cantonCode: "VS" }, + { postalCode: "3966", placeName: "Réchy", cantonCode: "VS" }, + { postalCode: "3966", placeName: "Chalais", cantonCode: "VS" }, + { postalCode: "3967", placeName: "Vercorin", cantonCode: "VS" }, + { postalCode: "3968", placeName: "Veyras", cantonCode: "VS" }, + { postalCode: "3971", placeName: "Chermignon", cantonCode: "VS" }, + { postalCode: "3971", placeName: "Chermignon-d'en-Bas", cantonCode: "VS" }, + { postalCode: "3971", placeName: "Ollon VS", cantonCode: "VS" }, + { postalCode: "3972", placeName: "Miège", cantonCode: "VS" }, + { postalCode: "3973", placeName: "Venthône", cantonCode: "VS" }, + { postalCode: "3974", placeName: "Mollens VS", cantonCode: "VS" }, + { postalCode: "3975", placeName: "Randogne", cantonCode: "VS" }, + { postalCode: "3976", placeName: "Noës", cantonCode: "VS" }, + { postalCode: "3976", placeName: "Champzabé", cantonCode: "VS" }, + { postalCode: "3977", placeName: "Granges VS", cantonCode: "VS" }, + { postalCode: "3978", placeName: "Flanthey", cantonCode: "VS" }, + { postalCode: "3979", placeName: "Grône", cantonCode: "VS" }, + { postalCode: "1950", placeName: "Sion", cantonCode: "VS" }, + { postalCode: "1950", placeName: "Sion 2", cantonCode: "VS" }, + { postalCode: "1950", placeName: "Sion 4", cantonCode: "VS" }, + { postalCode: "1951", placeName: "Sion", cantonCode: "VS" }, + { postalCode: "1958", placeName: "Uvrier", cantonCode: "VS" }, + { postalCode: "1962", placeName: "Pont-de-la-Morge (Sion)", cantonCode: "VS" }, + { postalCode: "1965", placeName: "Chandolin (Savièse)", cantonCode: "VS" }, + { postalCode: "1965", placeName: "Granois (Savièse)", cantonCode: "VS" }, + { postalCode: "1965", placeName: "Diolly (Savièse)", cantonCode: "VS" }, + { postalCode: "1965", placeName: "Mayens-de-la-Zour (Savièse)", cantonCode: "VS" }, + { postalCode: "1965", placeName: "La Muraz (Savièse)", cantonCode: "VS" }, + { postalCode: "1965", placeName: "Ormône (Savièse)", cantonCode: "VS" }, + { postalCode: "1965", placeName: "Drône (Savièse)", cantonCode: "VS" }, + { postalCode: "1965", placeName: "Savièse", cantonCode: "VS" }, + { postalCode: "1965", placeName: "Monteiller (Savièse)", cantonCode: "VS" }, + { postalCode: "1965", placeName: "St-Germain (Savièse)", cantonCode: "VS" }, + { postalCode: "1965", placeName: "Roumaz (Savièse)", cantonCode: "VS" }, + { postalCode: "1967", placeName: "Bramois", cantonCode: "VS" }, + { postalCode: "1971", placeName: "Grimisuat", cantonCode: "VS" }, + { postalCode: "1971", placeName: "Champlan (Grimisuat)", cantonCode: "VS" }, + { postalCode: "1974", placeName: "Arbaz", cantonCode: "VS" }, + { postalCode: "1991", placeName: "Arvillard (Salins)", cantonCode: "VS" }, + { postalCode: "1991", placeName: "Salins", cantonCode: "VS" }, + { postalCode: "1991", placeName: "Turin (Salins)", cantonCode: "VS" }, + { postalCode: "1991", placeName: "Misériez (Salins)", cantonCode: "VS" }, + { postalCode: "1991", placeName: "Pravidondaz (Salins)", cantonCode: "VS" }, + { postalCode: "1992", placeName: "Crête-à-l'Oeil(Les Agettes)", cantonCode: "VS" }, + { postalCode: "1992", placeName: "Les Mayens-de-Sion", cantonCode: "VS" }, + { postalCode: "1992", placeName: "La Vernaz (Les Agettes)", cantonCode: "VS" }, + { postalCode: "1992", placeName: "Crête-à-l'Oeil (Les Agettes)", cantonCode: "VS" }, + { postalCode: "1992", placeName: "Les Agettes", cantonCode: "VS" }, + { postalCode: "1993", placeName: "Veysonnaz", cantonCode: "VS" }, + { postalCode: "3905", placeName: "Saas-Almagell", cantonCode: "VS" }, + { postalCode: "3906", placeName: "Saas-Fee", cantonCode: "VS" }, + { postalCode: "3908", placeName: "Saas-Balen", cantonCode: "VS" }, + { postalCode: "3910", placeName: "Saas-Grund", cantonCode: "VS" }, + { postalCode: "3920", placeName: "Zermatt", cantonCode: "VS" }, + { postalCode: "3922", placeName: "Eisten", cantonCode: "VS" }, + { postalCode: "3922", placeName: "Stalden VS", cantonCode: "VS" }, + { postalCode: "3922", placeName: "Kalpetran", cantonCode: "VS" }, + { postalCode: "3923", placeName: "Törbel", cantonCode: "VS" }, + { postalCode: "3924", placeName: "St. Niklaus VS", cantonCode: "VS" }, + { postalCode: "3925", placeName: "Grächen", cantonCode: "VS" }, + { postalCode: "3926", placeName: "Embd", cantonCode: "VS" }, + { postalCode: "3927", placeName: "Herbriggen", cantonCode: "VS" }, + { postalCode: "3928", placeName: "Randa", cantonCode: "VS" }, + { postalCode: "3929", placeName: "Täsch", cantonCode: "VS" }, + { postalCode: "3930", placeName: "Visp", cantonCode: "VS" }, + { postalCode: "3930", placeName: "Eyholz", cantonCode: "VS" }, + { postalCode: "3931", placeName: "Lalden", cantonCode: "VS" }, + { postalCode: "3932", placeName: "Visperterminen", cantonCode: "VS" }, + { postalCode: "3933", placeName: "Staldenried", cantonCode: "VS" }, + { postalCode: "3934", placeName: "Zeneggen", cantonCode: "VS" }, + { postalCode: "3937", placeName: "Baltschieder", cantonCode: "VS" }, + { postalCode: "3937", placeName: "Baltschieder", cantonCode: "VS" }, + { postalCode: "6300", placeName: "Zug", cantonCode: "ZG" }, + { postalCode: "6300", placeName: "Zugerberg", cantonCode: "ZG" }, + { postalCode: "6301", placeName: "Zug", cantonCode: "ZG" }, + { postalCode: "6302", placeName: "Zug", cantonCode: "ZG" }, + { postalCode: "6303", placeName: "Zug", cantonCode: "ZG" }, + { postalCode: "6312", placeName: "Steinhausen", cantonCode: "ZG" }, + { postalCode: "6313", placeName: "Edlibach", cantonCode: "ZG" }, + { postalCode: "6313", placeName: "Finstersee", cantonCode: "ZG" }, + { postalCode: "6313", placeName: "Menzingen", cantonCode: "ZG" }, + { postalCode: "6314", placeName: "Unterägeri", cantonCode: "ZG" }, + { postalCode: "6314", placeName: "Neuägeri", cantonCode: "ZG" }, + { postalCode: "6315", placeName: "Morgarten", cantonCode: "ZG" }, + { postalCode: "6315", placeName: "Oberägeri", cantonCode: "ZG" }, + { postalCode: "6315", placeName: "Alosen", cantonCode: "ZG" }, + { postalCode: "6317", placeName: "Oberwil b. Zug", cantonCode: "ZG" }, + { postalCode: "6318", placeName: "Walchwil", cantonCode: "ZG" }, + { postalCode: "6319", placeName: "Allenwinden", cantonCode: "ZG" }, + { postalCode: "6330", placeName: "Cham", cantonCode: "ZG" }, + { postalCode: "6331", placeName: "Hünenberg", cantonCode: "ZG" }, + { postalCode: "6332", placeName: "Hagendorn", cantonCode: "ZG" }, + { postalCode: "6333", placeName: "Hünenberg See", cantonCode: "ZG" }, + { postalCode: "6340", placeName: "Baar", cantonCode: "ZG" }, + { postalCode: "6340", placeName: "Sihlbrugg", cantonCode: "ZG" }, + { postalCode: "6341", placeName: "Baar", cantonCode: "ZG" }, + { postalCode: "6343", placeName: "Buonas", cantonCode: "ZG" }, + { postalCode: "6343", placeName: "Holzhäusern ZG", cantonCode: "ZG" }, + { postalCode: "6343", placeName: "Rotkreuz", cantonCode: "ZG" }, + { postalCode: "6343", placeName: "Risch", cantonCode: "ZG" }, + { postalCode: "6345", placeName: "Neuheim", cantonCode: "ZG" }, + { postalCode: "8143", placeName: "Stallikon", cantonCode: "ZH" }, + { postalCode: "8143", placeName: "Uetliberg", cantonCode: "ZH" }, + { postalCode: "8906", placeName: "Bonstetten", cantonCode: "ZH" }, + { postalCode: "8907", placeName: "Wettswil", cantonCode: "ZH" }, + { postalCode: "8908", placeName: "Hedingen", cantonCode: "ZH" }, + { postalCode: "8909", placeName: "Zwillikon", cantonCode: "ZH" }, + { postalCode: "8910", placeName: "Affoltern am Albis", cantonCode: "ZH" }, + { postalCode: "8911", placeName: "Rifferswil", cantonCode: "ZH" }, + { postalCode: "8912", placeName: "Obfelden", cantonCode: "ZH" }, + { postalCode: "8913", placeName: "Ottenbach", cantonCode: "ZH" }, + { postalCode: "8914", placeName: "Aeugstertal", cantonCode: "ZH" }, + { postalCode: "8914", placeName: "Aeugst am Albis", cantonCode: "ZH" }, + { postalCode: "8915", placeName: "Hausen am Albis", cantonCode: "ZH" }, + { postalCode: "8925", placeName: "Ebertswil", cantonCode: "ZH" }, + { postalCode: "8926", placeName: "Hauptikon", cantonCode: "ZH" }, + { postalCode: "8926", placeName: "Uerzlikon", cantonCode: "ZH" }, + { postalCode: "8926", placeName: "Kappel am Albis", cantonCode: "ZH" }, + { postalCode: "8932", placeName: "Mettmenstetten", cantonCode: "ZH" }, + { postalCode: "8933", placeName: "Maschwanden", cantonCode: "ZH" }, + { postalCode: "8934", placeName: "Knonau", cantonCode: "ZH" }, + { postalCode: "8212", placeName: "Nohl", cantonCode: "ZH" }, + { postalCode: "8245", placeName: "Feuerthalen", cantonCode: "ZH" }, + { postalCode: "8246", placeName: "Langwiesen", cantonCode: "ZH" }, + { postalCode: "8247", placeName: "Flurlingen", cantonCode: "ZH" }, + { postalCode: "8248", placeName: "Uhwiesen", cantonCode: "ZH" }, + { postalCode: "8414", placeName: "Buch am Irchel", cantonCode: "ZH" }, + { postalCode: "8415", placeName: "Gräslikon", cantonCode: "ZH" }, + { postalCode: "8415", placeName: "Berg am Irchel", cantonCode: "ZH" }, + { postalCode: "8416", placeName: "Flaach", cantonCode: "ZH" }, + { postalCode: "8444", placeName: "Henggart", cantonCode: "ZH" }, + { postalCode: "8447", placeName: "Dachsen", cantonCode: "ZH" }, + { postalCode: "8450", placeName: "Andelfingen", cantonCode: "ZH" }, + { postalCode: "8451", placeName: "Kleinandelfingen", cantonCode: "ZH" }, + { postalCode: "8452", placeName: "Adlikon b. Andelfingen", cantonCode: "ZH" }, + { postalCode: "8453", placeName: "Alten", cantonCode: "ZH" }, + { postalCode: "8457", placeName: "Humlikon", cantonCode: "ZH" }, + { postalCode: "8458", placeName: "Dorf", cantonCode: "ZH" }, + { postalCode: "8459", placeName: "Volken", cantonCode: "ZH" }, + { postalCode: "8460", placeName: "Marthalen", cantonCode: "ZH" }, + { postalCode: "8461", placeName: "Oerlingen", cantonCode: "ZH" }, + { postalCode: "8462", placeName: "Rheinau", cantonCode: "ZH" }, + { postalCode: "8463", placeName: "Benken ZH", cantonCode: "ZH" }, + { postalCode: "8464", placeName: "Ellikon am Rhein", cantonCode: "ZH" }, + { postalCode: "8465", placeName: "Wildensbuch", cantonCode: "ZH" }, + { postalCode: "8465", placeName: "Rudolfingen", cantonCode: "ZH" }, + { postalCode: "8466", placeName: "Trüllikon", cantonCode: "ZH" }, + { postalCode: "8467", placeName: "Truttikon", cantonCode: "ZH" }, + { postalCode: "8468", placeName: "Waltalingen", cantonCode: "ZH" }, + { postalCode: "8468", placeName: "Guntalingen", cantonCode: "ZH" }, + { postalCode: "8475", placeName: "Ossingen", cantonCode: "ZH" }, + { postalCode: "8476", placeName: "Unterstammheim", cantonCode: "ZH" }, + { postalCode: "8477", placeName: "Oberstammheim", cantonCode: "ZH" }, + { postalCode: "8478", placeName: "Thalheim an der Thur", cantonCode: "ZH" }, + { postalCode: "8058", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8060", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8152", placeName: "Glattbrugg", cantonCode: "ZH" }, + { postalCode: "8152", placeName: "Opfikon", cantonCode: "ZH" }, + { postalCode: "8152", placeName: "Glattpark (Opfikon)", cantonCode: "ZH" }, + { postalCode: "8180", placeName: "Bülach", cantonCode: "ZH" }, + { postalCode: "8181", placeName: "Höri", cantonCode: "ZH" }, + { postalCode: "8182", placeName: "Hochfelden", cantonCode: "ZH" }, + { postalCode: "8184", placeName: "Bachenbülach", cantonCode: "ZH" }, + { postalCode: "8185", placeName: "Winkel", cantonCode: "ZH" }, + { postalCode: "8192", placeName: "Zweidlen", cantonCode: "ZH" }, + { postalCode: "8192", placeName: "Glattfelden", cantonCode: "ZH" }, + { postalCode: "8193", placeName: "Eglisau", cantonCode: "ZH" }, + { postalCode: "8194", placeName: "Hüntwangen", cantonCode: "ZH" }, + { postalCode: "8195", placeName: "Wasterkingen", cantonCode: "ZH" }, + { postalCode: "8196", placeName: "Wil ZH", cantonCode: "ZH" }, + { postalCode: "8197", placeName: "Rafz", cantonCode: "ZH" }, + { postalCode: "8302", placeName: "Kloten", cantonCode: "ZH" }, + { postalCode: "8303", placeName: "Bassersdorf", cantonCode: "ZH" }, + { postalCode: "8304", placeName: "Wallisellen", cantonCode: "ZH" }, + { postalCode: "8305", placeName: "Dietlikon", cantonCode: "ZH" }, + { postalCode: "8309", placeName: "Nürensdorf", cantonCode: "ZH" }, + { postalCode: "8424", placeName: "Embrach", cantonCode: "ZH" }, + { postalCode: "8425", placeName: "Oberembrach", cantonCode: "ZH" }, + { postalCode: "8426", placeName: "Lufingen", cantonCode: "ZH" }, + { postalCode: "8427", placeName: "Freienstein", cantonCode: "ZH" }, + { postalCode: "8427", placeName: "Rorbas", cantonCode: "ZH" }, + { postalCode: "8428", placeName: "Teufen ZH", cantonCode: "ZH" }, + { postalCode: "8105", placeName: "Regensdorf", cantonCode: "ZH" }, + { postalCode: "8105", placeName: "Watt", cantonCode: "ZH" }, + { postalCode: "8106", placeName: "Adlikon b. Regensdorf", cantonCode: "ZH" }, + { postalCode: "8107", placeName: "Buchs ZH", cantonCode: "ZH" }, + { postalCode: "8108", placeName: "Dällikon", cantonCode: "ZH" }, + { postalCode: "8112", placeName: "Otelfingen", cantonCode: "ZH" }, + { postalCode: "8113", placeName: "Boppelsen", cantonCode: "ZH" }, + { postalCode: "8114", placeName: "Dänikon ZH", cantonCode: "ZH" }, + { postalCode: "8115", placeName: "Hüttikon", cantonCode: "ZH" }, + { postalCode: "8153", placeName: "Rümlang", cantonCode: "ZH" }, + { postalCode: "8154", placeName: "Oberglatt ZH", cantonCode: "ZH" }, + { postalCode: "8155", placeName: "Nassenwil", cantonCode: "ZH" }, + { postalCode: "8155", placeName: "Niederhasli", cantonCode: "ZH" }, + { postalCode: "8156", placeName: "Oberhasli", cantonCode: "ZH" }, + { postalCode: "8157", placeName: "Dielsdorf", cantonCode: "ZH" }, + { postalCode: "8158", placeName: "Regensberg", cantonCode: "ZH" }, + { postalCode: "8162", placeName: "Steinmaur", cantonCode: "ZH" }, + { postalCode: "8162", placeName: "Sünikon", cantonCode: "ZH" }, + { postalCode: "8164", placeName: "Bachs", cantonCode: "ZH" }, + { postalCode: "8165", placeName: "Oberweningen", cantonCode: "ZH" }, + { postalCode: "8165", placeName: "Schleinikon", cantonCode: "ZH" }, + { postalCode: "8165", placeName: "Schöfflisdorf", cantonCode: "ZH" }, + { postalCode: "8166", placeName: "Niederweningen", cantonCode: "ZH" }, + { postalCode: "8172", placeName: "Niederglatt ZH", cantonCode: "ZH" }, + { postalCode: "8173", placeName: "Neerach", cantonCode: "ZH" }, + { postalCode: "8174", placeName: "Stadel b. Niederglatt", cantonCode: "ZH" }, + { postalCode: "8175", placeName: "Windlach", cantonCode: "ZH" }, + { postalCode: "8187", placeName: "Weiach", cantonCode: "ZH" }, + { postalCode: "8340", placeName: "Hinwil", cantonCode: "ZH" }, + { postalCode: "8342", placeName: "Wernetshausen", cantonCode: "ZH" }, + { postalCode: "8344", placeName: "Bäretswil", cantonCode: "ZH" }, + { postalCode: "8345", placeName: "Adetswil", cantonCode: "ZH" }, + { postalCode: "8496", placeName: "Steg im Tösstal", cantonCode: "ZH" }, + { postalCode: "8497", placeName: "Fischenthal", cantonCode: "ZH" }, + { postalCode: "8498", placeName: "Gibswil", cantonCode: "ZH" }, + { postalCode: "8607", placeName: "Aathal-Seegräben", cantonCode: "ZH" }, + { postalCode: "8608", placeName: "Bubikon", cantonCode: "ZH" }, + { postalCode: "8614", placeName: "Bertschikon (Gossau ZH)", cantonCode: "ZH" }, + { postalCode: "8620", placeName: "Wetzikon ZH", cantonCode: "ZH" }, + { postalCode: "8620", placeName: "Wetzikon ZH 1", cantonCode: "ZH" }, + { postalCode: "8623", placeName: "Wetzikon ZH", cantonCode: "ZH" }, + { postalCode: "8624", placeName: "Grüt (Gossau ZH)", cantonCode: "ZH" }, + { postalCode: "8625", placeName: "Gossau ZH", cantonCode: "ZH" }, + { postalCode: "8626", placeName: "Ottikon (Gossau ZH)", cantonCode: "ZH" }, + { postalCode: "8627", placeName: "Grüningen", cantonCode: "ZH" }, + { postalCode: "8630", placeName: "Rüti ZH", cantonCode: "ZH" }, + { postalCode: "8632", placeName: "Tann", cantonCode: "ZH" }, + { postalCode: "8633", placeName: "Wolfhausen", cantonCode: "ZH" }, + { postalCode: "8635", placeName: "Dürnten", cantonCode: "ZH" }, + { postalCode: "8636", placeName: "Wald ZH", cantonCode: "ZH" }, + { postalCode: "8637", placeName: "Laupen ZH", cantonCode: "ZH" }, + { postalCode: "8134", placeName: "Adliswil", cantonCode: "ZH" }, + { postalCode: "8134", placeName: "Adliswil 1", cantonCode: "ZH" }, + { postalCode: "8135", placeName: "Sihlwald", cantonCode: "ZH" }, + { postalCode: "8135", placeName: "Sihlbrugg Station", cantonCode: "ZH" }, + { postalCode: "8135", placeName: "Langnau am Albis", cantonCode: "ZH" }, + { postalCode: "8136", placeName: "Gattikon", cantonCode: "ZH" }, + { postalCode: "8800", placeName: "Thalwil", cantonCode: "ZH" }, + { postalCode: "8802", placeName: "Kilchberg ZH", cantonCode: "ZH" }, + { postalCode: "8803", placeName: "Rüschlikon", cantonCode: "ZH" }, + { postalCode: "8804", placeName: "Au ZH", cantonCode: "ZH" }, + { postalCode: "8805", placeName: "Richterswil", cantonCode: "ZH" }, + { postalCode: "8810", placeName: "Horgen", cantonCode: "ZH" }, + { postalCode: "8810", placeName: "Horgen 1", cantonCode: "ZH" }, + { postalCode: "8815", placeName: "Horgenberg", cantonCode: "ZH" }, + { postalCode: "8816", placeName: "Hirzel", cantonCode: "ZH" }, + { postalCode: "8820", placeName: "Wädenswil", cantonCode: "ZH" }, + { postalCode: "8824", placeName: "Schönenberg ZH", cantonCode: "ZH" }, + { postalCode: "8825", placeName: "Hütten", cantonCode: "ZH" }, + { postalCode: "8833", placeName: "Samstagern", cantonCode: "ZH" }, + { postalCode: "8942", placeName: "Oberrieden", cantonCode: "ZH" }, + { postalCode: "8125", placeName: "Zollikerberg", cantonCode: "ZH" }, + { postalCode: "8126", placeName: "Zumikon", cantonCode: "ZH" }, + { postalCode: "8127", placeName: "Forch", cantonCode: "ZH" }, + { postalCode: "8618", placeName: "Oetwil am See", cantonCode: "ZH" }, + { postalCode: "8634", placeName: "Hombrechtikon", cantonCode: "ZH" }, + { postalCode: "8700", placeName: "Küsnacht ZH", cantonCode: "ZH" }, + { postalCode: "8702", placeName: "Zollikon Dorf", cantonCode: "ZH" }, + { postalCode: "8702", placeName: "Zollikon", cantonCode: "ZH" }, + { postalCode: "8703", placeName: "Erlenbach ZH", cantonCode: "ZH" }, + { postalCode: "8704", placeName: "Herrliberg", cantonCode: "ZH" }, + { postalCode: "8706", placeName: "Meilen", cantonCode: "ZH" }, + { postalCode: "8707", placeName: "Uetikon am See", cantonCode: "ZH" }, + { postalCode: "8708", placeName: "Männedorf", cantonCode: "ZH" }, + { postalCode: "8712", placeName: "Stäfa", cantonCode: "ZH" }, + { postalCode: "8713", placeName: "Uerikon", cantonCode: "ZH" }, + { postalCode: "8714", placeName: "Feldbach", cantonCode: "ZH" }, + { postalCode: "8307", placeName: "Effretikon", cantonCode: "ZH" }, + { postalCode: "8307", placeName: "Ottikon b. Kemptthal", cantonCode: "ZH" }, + { postalCode: "8308", placeName: "Illnau", cantonCode: "ZH" }, + { postalCode: "8308", placeName: "Agasul", cantonCode: "ZH" }, + { postalCode: "8310", placeName: "Kemptthal", cantonCode: "ZH" }, + { postalCode: "8310", placeName: "Grafstal", cantonCode: "ZH" }, + { postalCode: "8312", placeName: "Winterberg ZH", cantonCode: "ZH" }, + { postalCode: "8314", placeName: "Kyburg", cantonCode: "ZH" }, + { postalCode: "8315", placeName: "Lindau", cantonCode: "ZH" }, + { postalCode: "8317", placeName: "Tagelswangen", cantonCode: "ZH" }, + { postalCode: "8320", placeName: "Fehraltorf", cantonCode: "ZH" }, + { postalCode: "8322", placeName: "Madetswil", cantonCode: "ZH" }, + { postalCode: "8322", placeName: "Gündisau", cantonCode: "ZH" }, + { postalCode: "8330", placeName: "Pfäffikon ZH", cantonCode: "ZH" }, + { postalCode: "8331", placeName: "Auslikon", cantonCode: "ZH" }, + { postalCode: "8332", placeName: "Rumlikon", cantonCode: "ZH" }, + { postalCode: "8332", placeName: "Russikon", cantonCode: "ZH" }, + { postalCode: "8335", placeName: "Hittnau", cantonCode: "ZH" }, + { postalCode: "8484", placeName: "Neschwil", cantonCode: "ZH" }, + { postalCode: "8484", placeName: "Weisslingen", cantonCode: "ZH" }, + { postalCode: "8484", placeName: "Theilingen", cantonCode: "ZH" }, + { postalCode: "8489", placeName: "Wildberg", cantonCode: "ZH" }, + { postalCode: "8489", placeName: "Schalchen", cantonCode: "ZH" }, + { postalCode: "8489", placeName: "Ehrikon", cantonCode: "ZH" }, + { postalCode: "8492", placeName: "Wila", cantonCode: "ZH" }, + { postalCode: "8493", placeName: "Saland", cantonCode: "ZH" }, + { postalCode: "8494", placeName: "Bauma", cantonCode: "ZH" }, + { postalCode: "8499", placeName: "Sternenberg", cantonCode: "ZH" }, + { postalCode: "8044", placeName: "Gockhausen", cantonCode: "ZH" }, + { postalCode: "8117", placeName: "Fällanden", cantonCode: "ZH" }, + { postalCode: "8118", placeName: "Pfaffhausen", cantonCode: "ZH" }, + { postalCode: "8121", placeName: "Benglen", cantonCode: "ZH" }, + { postalCode: "8122", placeName: "Binz", cantonCode: "ZH" }, + { postalCode: "8123", placeName: "Ebmatingen", cantonCode: "ZH" }, + { postalCode: "8124", placeName: "Maur", cantonCode: "ZH" }, + { postalCode: "8132", placeName: "Egg b. Zürich", cantonCode: "ZH" }, + { postalCode: "8132", placeName: "Hinteregg", cantonCode: "ZH" }, + { postalCode: "8133", placeName: "Esslingen", cantonCode: "ZH" }, + { postalCode: "8306", placeName: "Brüttisellen", cantonCode: "ZH" }, + { postalCode: "8600", placeName: "Dübendorf 1", cantonCode: "ZH" }, + { postalCode: "8600", placeName: "Dübendorf", cantonCode: "ZH" }, + { postalCode: "8602", placeName: "Wangen b. Dübendorf", cantonCode: "ZH" }, + { postalCode: "8603", placeName: "Schwerzenbach", cantonCode: "ZH" }, + { postalCode: "8604", placeName: "Volketswil", cantonCode: "ZH" }, + { postalCode: "8605", placeName: "Gutenswil", cantonCode: "ZH" }, + { postalCode: "8606", placeName: "Greifensee", cantonCode: "ZH" }, + { postalCode: "8606", placeName: "Nänikon", cantonCode: "ZH" }, + { postalCode: "8610", placeName: "Uster", cantonCode: "ZH" }, + { postalCode: "8610", placeName: "Uster 1", cantonCode: "ZH" }, + { postalCode: "8613", placeName: "Uster 3", cantonCode: "ZH" }, + { postalCode: "8614", placeName: "Sulzbach", cantonCode: "ZH" }, + { postalCode: "8615", placeName: "Wermatswil", cantonCode: "ZH" }, + { postalCode: "8615", placeName: "Freudwil", cantonCode: "ZH" }, + { postalCode: "8616", placeName: "Riedikon", cantonCode: "ZH" }, + { postalCode: "8617", placeName: "Mönchaltorf", cantonCode: "ZH" }, + { postalCode: "8311", placeName: "Brütten", cantonCode: "ZH" }, + { postalCode: "8352", placeName: "Elsau", cantonCode: "ZH" }, + { postalCode: "8352", placeName: "Ricketwil (Winterthur)", cantonCode: "ZH" }, + { postalCode: "8353", placeName: "Elgg", cantonCode: "ZH" }, + { postalCode: "8354", placeName: "Hofstetten ZH", cantonCode: "ZH" }, + { postalCode: "8354", placeName: "Dickbuch", cantonCode: "ZH" }, + { postalCode: "8400", placeName: "Winterthur", cantonCode: "ZH" }, + { postalCode: "8401", placeName: "Winterthur", cantonCode: "ZH" }, + { postalCode: "8403", placeName: "Winterthur", cantonCode: "ZH" }, + { postalCode: "8404", placeName: "Stadel (Winterthur)", cantonCode: "ZH" }, + { postalCode: "8404", placeName: "Reutlingen (Winterthur)", cantonCode: "ZH" }, + { postalCode: "8404", placeName: "Winterthur", cantonCode: "ZH" }, + { postalCode: "8405", placeName: "Winterthur", cantonCode: "ZH" }, + { postalCode: "8406", placeName: "Winterthur", cantonCode: "ZH" }, + { postalCode: "8408", placeName: "Winterthur", cantonCode: "ZH" }, + { postalCode: "8409", placeName: "Winterthur", cantonCode: "ZH" }, + { postalCode: "8412", placeName: "Hünikon (Neftenbach)", cantonCode: "ZH" }, + { postalCode: "8412", placeName: "Aesch (Neftenbach)", cantonCode: "ZH" }, + { postalCode: "8412", placeName: "Riet (Neftenbach)", cantonCode: "ZH" }, + { postalCode: "8413", placeName: "Neftenbach", cantonCode: "ZH" }, + { postalCode: "8418", placeName: "Schlatt ZH", cantonCode: "ZH" }, + { postalCode: "8421", placeName: "Dättlikon", cantonCode: "ZH" }, + { postalCode: "8422", placeName: "Pfungen", cantonCode: "ZH" }, + { postalCode: "8442", placeName: "Hettlingen", cantonCode: "ZH" }, + { postalCode: "8471", placeName: "Berg (Dägerlen)", cantonCode: "ZH" }, + { postalCode: "8471", placeName: "Dägerlen", cantonCode: "ZH" }, + { postalCode: "8471", placeName: "Bänk (Dägerlen)", cantonCode: "ZH" }, + { postalCode: "8471", placeName: "Oberwil (Dägerlen)", cantonCode: "ZH" }, + { postalCode: "8471", placeName: "Rutschwil (Dägerlen)", cantonCode: "ZH" }, + { postalCode: "8472", placeName: "Seuzach", cantonCode: "ZH" }, + { postalCode: "8474", placeName: "Dinhard", cantonCode: "ZH" }, + { postalCode: "8479", placeName: "Altikon", cantonCode: "ZH" }, + { postalCode: "8482", placeName: "Sennhof (Winterthur)", cantonCode: "ZH" }, + { postalCode: "8483", placeName: "Kollbrunn", cantonCode: "ZH" }, + { postalCode: "8486", placeName: "Rikon im Tösstal", cantonCode: "ZH" }, + { postalCode: "8487", placeName: "Rämismühle", cantonCode: "ZH" }, + { postalCode: "8487", placeName: "Zell ZH", cantonCode: "ZH" }, + { postalCode: "8488", placeName: "Turbenthal", cantonCode: "ZH" }, + { postalCode: "8495", placeName: "Schmidrüti", cantonCode: "ZH" }, + { postalCode: "8523", placeName: "Hagenbuch ZH", cantonCode: "ZH" }, + { postalCode: "8542", placeName: "Wiesendangen", cantonCode: "ZH" }, + { postalCode: "8543", placeName: "Gundetswil", cantonCode: "ZH" }, + { postalCode: "8543", placeName: "Kefikon ZH", cantonCode: "ZH" }, + { postalCode: "8543", placeName: "Bertschikon", cantonCode: "ZH" }, + { postalCode: "8544", placeName: "Attikon", cantonCode: "ZH" }, + { postalCode: "8545", placeName: "Rickenbach ZH", cantonCode: "ZH" }, + { postalCode: "8545", placeName: "Rickenbach Sulz", cantonCode: "ZH" }, + { postalCode: "8546", placeName: "Menzengrüt", cantonCode: "ZH" }, + { postalCode: "8548", placeName: "Ellikon an der Thur", cantonCode: "ZH" }, + { postalCode: "8010", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8011", placeName: "Zürich Mülligen SC", cantonCode: "ZH" }, + { postalCode: "8012", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8102", placeName: "Oberengstringen", cantonCode: "ZH" }, + { postalCode: "8103", placeName: "Unterengstringen", cantonCode: "ZH" }, + { postalCode: "8104", placeName: "Weiningen ZH", cantonCode: "ZH" }, + { postalCode: "8142", placeName: "Uitikon Waldegg", cantonCode: "ZH" }, + { postalCode: "8901", placeName: "Urdorf", cantonCode: "ZH" }, + { postalCode: "8901", placeName: "Urdorf Tessi", cantonCode: "ZH" }, + { postalCode: "8902", placeName: "Urdorf", cantonCode: "ZH" }, + { postalCode: "8903", placeName: "Birmensdorf ZH", cantonCode: "ZH" }, + { postalCode: "8904", placeName: "Aesch ZH", cantonCode: "ZH" }, + { postalCode: "8951", placeName: "Fahrweid", cantonCode: "ZH" }, + { postalCode: "8952", placeName: "Schlieren", cantonCode: "ZH" }, + { postalCode: "8953", placeName: "Dietikon 2", cantonCode: "ZH" }, + { postalCode: "8953", placeName: "Dietikon", cantonCode: "ZH" }, + { postalCode: "8953", placeName: "Dietikon 1", cantonCode: "ZH" }, + { postalCode: "8954", placeName: "Geroldswil", cantonCode: "ZH" }, + { postalCode: "8955", placeName: "Oetwil an der Limmat", cantonCode: "ZH" }, + { postalCode: "8000", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8001", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8002", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8003", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8004", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8005", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8006", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8008", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8017", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8018", placeName: "Zürich PF", cantonCode: "ZH" }, + { postalCode: "8021", placeName: "Zürich 1", cantonCode: "ZH" }, + { postalCode: "8022", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8024", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8027", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8031", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8032", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8034", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8036", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8037", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8038", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8040", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8041", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8042", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8044", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8045", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8046", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8047", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8048", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8049", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8050", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8051", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8052", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8053", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8055", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8057", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8063", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8064", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8070", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8071", placeName: "Zürich CS PZ", cantonCode: "ZH" }, + { postalCode: "8074", placeName: "Zürich Voice Pub", cantonCode: "ZH" }, + { postalCode: "8074", placeName: "Zürich Voice Publishing", cantonCode: "ZH" }, + { postalCode: "8075", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8080", placeName: "Zürich 80", cantonCode: "ZH" }, + { postalCode: "8081", placeName: "Zürich Helsana", cantonCode: "ZH" }, + { postalCode: "8081", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8085", placeName: "Zürich Versicherung", cantonCode: "ZH" }, + { postalCode: "8085", placeName: "Zürich Versich.", cantonCode: "ZH" }, + { postalCode: "8086", placeName: "Zürich R Digest", cantonCode: "ZH" }, + { postalCode: "8086", placeName: "Zürich Reader's Digest", cantonCode: "ZH" }, + { postalCode: "8087", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8088", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8090", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8091", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8092", placeName: "Zürich ETH-Zentrum", cantonCode: "ZH" }, + { postalCode: "8092", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8093", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8093", placeName: "Zürich ETH-Hönggerberg", cantonCode: "ZH" }, + { postalCode: "8096", placeName: "Zürich IBRS local", cantonCode: "ZH" }, + { postalCode: "8098", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8099", placeName: "Zürich", cantonCode: "ZH" }, + { postalCode: "8099", placeName: "Zürich Sonderdienste", cantonCode: "ZH" }, + +]; + +/** + * Return matching postal codes (strings) for a numeric prefix (1..4 digits). + * Example: `findPostalCodes('80')` -> ['8000','8001',...] + */ +export function findPostalCodes(input: string | number): string[] { + const q = String(input).trim(); + if (!/^[0-9]{1,4}$/.test(q)) return []; + const codes = CH_POSTAL_PLACES + .filter(p => p.postalCode.startsWith(q)) + .map(p => p.postalCode); + return Array.from(new Set(codes)).sort(); +} + +/** + * When a full 4-digit postal code is provided, return matching places + * including `placeName` and `cantonCode`. + */ +export function findPostalCodeDetails(input: string | number): PostalPlace[] { + const q = String(input).trim(); + if (q.length < 4) return []; + return CH_POSTAL_PLACES.filter(p => p.postalCode === q); +} + +// All unique postal codes (strings), sorted +export const ALL_CH_POSTAL_CODES: string[] = Array.from( + new Set(CH_POSTAL_PLACES.map(p => p.postalCode)) +).sort(); + +// Helper: return all postal codes as numbers (useful if caller expects numeric array) +export function ALL_CH_POSTAL_CODES_NUMBERS(): number[] { + return ALL_CH_POSTAL_CODES.map(s => Number(s)); +} diff --git a/app/src/env.d.ts b/app/src/env.d.ts new file mode 100644 index 0000000..12dcd18 --- /dev/null +++ b/app/src/env.d.ts @@ -0,0 +1,7 @@ +declare namespace NodeJS { + interface ProcessEnv { + NODE_ENV: string; + VUE_ROUTER_MODE: 'hash' | 'history' | 'abstract' | undefined; + VUE_ROUTER_BASE: string | undefined; + } +} diff --git a/app/src/i18n/en-US/index.ts b/app/src/i18n/en-US/index.ts new file mode 100644 index 0000000..250dbd4 --- /dev/null +++ b/app/src/i18n/en-US/index.ts @@ -0,0 +1,7 @@ +// This is just an example, +// so you can safely delete all default props below + +export default { + failed: 'Action failed', + success: 'Action was successful', +}; diff --git a/app/src/i18n/index.ts b/app/src/i18n/index.ts new file mode 100644 index 0000000..ef91326 --- /dev/null +++ b/app/src/i18n/index.ts @@ -0,0 +1,22 @@ +import enCommon from './locales/en-US/common' +import enAttachments from './locales/en-US/attachments' +import enSteps from './locales/en-US/steps' + +import itCommon from './locales/it-IT/common' +import itAttachments from './locales/it-IT/attachments' +import itSteps from './locales/it-IT/steps' + +import frCommon from './locales/fr-FR/common' +import frAttachments from './locales/fr-FR/attachments' +import frSteps from './locales/fr-FR/steps' + +import deCommon from './locales/de-DE/common' +import deAttachments from './locales/de-DE/attachments' +import deSteps from './locales/de-DE/steps' + +export default { + 'en-US': { ...enCommon, ...enAttachments, ...enSteps }, + 'it-IT': { ...itCommon, ...itAttachments, ...itSteps }, + 'fr-FR': { ...frCommon, ...frAttachments, ...frSteps }, + 'de-DE': { ...deCommon, ...deAttachments, ...deSteps } +} diff --git a/app/src/i18n/locales/de-DE/attachments.ts b/app/src/i18n/locales/de-DE/attachments.ts new file mode 100644 index 0000000..e897935 --- /dev/null +++ b/app/src/i18n/locales/de-DE/attachments.ts @@ -0,0 +1,14 @@ +export default { + attachments: 'Anhänge', + commenti: 'Kommentare', + pickFiles: 'Dateien auswählen', + confirmDeleteAttachment: 'Möchtest du diesen Anhang löschen? {filename}', + addAttachment: 'Anhängen', + fileTypeNotAllowed: 'Dateityp nicht erlaubt. Erlaubt: {allowed}', + missingUserOrSession: 'Benutzer oder Sitzung fehlt. Bitte Seite neu laden und erneut versuchen.', + fileUploaded: 'Datei hochgeladen', + uploadFailed: 'Upload fehlgeschlagen', + uploadCancelled: 'Upload abgebrochen', + fileDeleted: 'Datei gelöscht', + deleteFailed: 'Löschen fehlgeschlagen' +} as const diff --git a/app/src/i18n/locales/de-DE/common.ts b/app/src/i18n/locales/de-DE/common.ts new file mode 100644 index 0000000..e0cdb5f --- /dev/null +++ b/app/src/i18n/locales/de-DE/common.ts @@ -0,0 +1,33 @@ +export default { + button: { + saveAndNext: 'Speichern und weiter', + next: 'Weiter', + prev: 'Zurück', + cancel: 'Abbrechen', + save: 'Speichern' + }, + validation: { + required: 'Dieses Feld ist erforderlich', + minLength: 'Zu kurz', + maxAgeFromJan1: 'Ungültiges Geburtsdatum', + invalidZip: 'Ungültige PLZ', + insertAddress: 'Bitte Adresse eingeben' + }, + address: { + title: 'Adresse', + modalTitle: 'Adresse bearbeiten', + street: 'Strasse', + zip: 'PLZ', + city: 'Stadt', + country: 'Land', + foreign: 'Ausländische Adresse' + }, + enum: { + maritalStatus: { + SINGLE: 'Ledig', + SEPARATED: 'Getrennt', + MARRIED: 'Verheiratet', + PARTNERED: 'Partner' + } + } +} as const diff --git a/app/src/i18n/locales/de-DE/steps.ts b/app/src/i18n/locales/de-DE/steps.ts new file mode 100644 index 0000000..2c38aac --- /dev/null +++ b/app/src/i18n/locales/de-DE/steps.ts @@ -0,0 +1,118 @@ +export default { + WEL: 'Willkommen', + TAX: 'Angaben Steuerpflichtiger und vorherige Erklärung', + MAR: 'Zivilstand', + CHD: 'Kinder', + INC: 'Einkommen', + PRO: 'Berufsausgaben', + SID: 'Nebeneinkommen', + ANN: 'Renten', + INS: 'Versicherungs- und Krankheitskosten', + P3: 'Policen 3A / 3B', + BNK: 'Bankkonten', + AST: 'Andere Vermögenswerte', + DEB: 'Schulden / Hypotheken', + PROP: 'Immobilien', + FOR: 'Einkommen oder Vermögen im Ausland', + + taxpayer: { + prevPreparedByUs: 'Von uns vorbereitet?', + prevDeclaration: 'Frühere Erklärung', + firstName: 'Vorname', + lastName: 'Nachname', + birthDate: 'Geburtsdatum', + address: 'Adresse', + zip: 'PLZ', + city: 'Stadt' + }, + + marital: { + title: 'Zivilstand', + maritalStatus: 'Zivilstand', + previousDivorces: 'Frühere Scheidungen', + spouse: { + prefixSpouse: 'Ehepartner', + prefixPartner: 'Partner', + firstName: 'Vorname', + lastName: 'Nachname', + birthDate: 'Geburtsdatum', + address: 'Adresse', + zip: 'PLZ', + city: 'Stadt', + previousDivorces: 'Frühere Scheidungen' + } + }, + + maritalItem: { + celibate: 'Ledig', + maried: 'Verheiratet', + registrated: 'Registrierte häusliche Partnerschaft', + widower: 'Witwer / Witwe', + deadunion: 'Partnerschaft durch Tod aufgelöst', + divorced: 'Geschieden', + unionlegal: 'Partnerschaft durch gerichtliche Entscheidung aufgelöst', + separated: 'Getrennt', + uniondisappeared: 'Partnerschaft durch Verschollenheit aufgelöst' + }, + + // message used when spouse address field has no explicit label + 'marital.spouse.fillIfDifferent': 'Falls abweichend ausfüllen', + + income: { + employTypeLabel: 'Beschäftigungsart', + employTypeHint: 'Bitte eine Beschäftigungsart auswählen', + employType: { + EMPLOYED: 'Angestellt', + SELF_EMPLOYED: 'Selbstständig', + PENSIONER: 'Rentner/in', + UNEMPLOYED: 'Arbeitslos' + }, + attachments: { + salaryCertificate: 'Lohnbescheinigung', + accountingDocuments: 'Buchhaltungsunterlagen', + avsCertificate: 'AHV-Bescheinigung', + lppCertificate: 'BVG-Bescheinigung', + unemploymentCertificate: 'Arbeitslosenbescheinigung' + } + }, + + children: { + hasChildren: 'Haben Sie Kinder?', + addChild: 'Kind hinzufügen', + editChild: 'Kind bearbeiten', + listTitle: 'Kinderliste', + moreThanFiveChildrenNote: 'Notiz für mehr als fünf Kinder', + firstName: 'Vorname', + lastName: 'Nachname', + birthDate: 'Geburtsdatum', + sameHousehold: 'Im selben Haushalt', + addressIfDifferent: 'Adresse (falls abweichend)', + addressLabel: 'Adresse', + alimentiVersati: 'Unterhalt wird gezahlt', + school: 'Schule', + hasCareCost: 'Betreuungskosten', + careCosts: 'Betreuungskosten', + copyLastNameFromTaxpayer: 'Nachname vom Steuerpflichtigen übernehmen', + noAttachments: 'Dokumente anhängen' + }, + + informazionesualimenti: 'Informationen zu Unterhalt', + inserireindirizzocogniuge: 'Adresse des Ehepartners eingeben', + inserireindirizzopartner: 'Adresse des Partners eingeben', + indirizzocogniuge: 'Adresse des Ehepartners', + indirizzopartner: 'Adresse des Partners', + indirizzocogniugedefunto: 'Adresse des verstorbenen Ehepartners', + indirizzodeadpartner: 'Adresse des verstorbenen Partners', + indirizzoexcogniuge: 'Adresse des Ex-Ehepartners', + indirizzoexpartner: 'Adresse des Ex-Partners', + daticogniuge: 'Angaben zum Ehepartner', + datipartner: 'Angaben zum Partner', + daticogniugedefunto: 'Angaben zum verstorbenen Ehepartner', + datideadpartner: 'Angaben zum verstorbenen Partner', + datiexcogniuge: 'Angaben zum Ex-Ehepartner', + datideadexpartner: 'Angaben zum Ex-Partner', + datidisapparizedpartner: 'Angaben zum verschollenen Partner', + datadecesso: 'Sterbedatum', + datascomparsa: 'Datum des Verschwindens', + datascioglimento: 'Auflösungsdatum' +} as const diff --git a/app/src/i18n/locales/en-US/attachments.ts b/app/src/i18n/locales/en-US/attachments.ts new file mode 100644 index 0000000..e2d9fbc --- /dev/null +++ b/app/src/i18n/locales/en-US/attachments.ts @@ -0,0 +1,14 @@ +export default { + attachments: 'Attachments', + commenti: 'Comments', + pickFiles: 'Pick files', + confirmDeleteAttachment: 'Do you want to delete this attachment? {filename}', + addAttachment: 'Attach', + fileTypeNotAllowed: 'File type not allowed. Allowed: {allowed}', + missingUserOrSession: 'Missing user or session. Please reload and try again.', + fileUploaded: 'File uploaded', + uploadFailed: 'Upload failed', + uploadCancelled: 'Upload cancelled', + fileDeleted: 'File deleted', + deleteFailed: 'Delete failed' +} as const diff --git a/app/src/i18n/locales/en-US/common.ts b/app/src/i18n/locales/en-US/common.ts new file mode 100644 index 0000000..f9e3d43 --- /dev/null +++ b/app/src/i18n/locales/en-US/common.ts @@ -0,0 +1,33 @@ +export default { + button: { + saveAndNext: 'Save and Next', + next: 'Next', + prev: 'Back', + cancel: 'Cancel', + save: 'Save' + }, + validation: { + required: 'This field is required', + minLength: 'Too short', + maxAgeFromJan1: 'Invalid birth date', + invalidZip: 'Invalid ZIP', + insertAddress: 'Please enter an address' + }, + address: { + title: 'Address', + modalTitle: 'Edit address', + street: 'Street', + zip: 'ZIP', + city: 'City', + country: 'Country', + foreign: 'Foreign address' + }, + enum: { + maritalStatus: { + SINGLE: 'Single', + SEPARATED: 'Separated', + MARRIED: 'Married', + PARTNERED: 'Partnered' + } + } +} as const diff --git a/app/src/i18n/locales/en-US/steps.ts b/app/src/i18n/locales/en-US/steps.ts new file mode 100644 index 0000000..2b5869d --- /dev/null +++ b/app/src/i18n/locales/en-US/steps.ts @@ -0,0 +1,118 @@ +export default { + WEL: 'Welcome', + TAX: 'Taxpayer data & previous declaration', + MAR: 'Marital status', + CHD: 'Children', + INC: 'Income', + PRO: 'Professional expenses', + SID: 'Supplementary income', + ANN: 'Annuities', + INS: 'Insurance & medical expenses', + P3: 'Policies 3A / 3B', + BNK: 'Bank accounts', + AST: 'Other assets', + DEB: 'Debts / mortgages', + PROP: 'Properties', + FOR: 'Foreign income or assets', + + taxpayer: { + prevPreparedByUs: 'Prepared by us?', + prevDeclaration: 'Previous declaration', + firstName: 'First name', + lastName: 'Last name', + birthDate: 'Birth date', + address: 'Address', + zip: 'ZIP', + city: 'City' + }, + + marital: { + title: 'Marital status', + maritalStatus: 'Marital status', + previousDivorces: 'Previous divorces', + spouse: { + prefixSpouse: 'Spouse', + prefixPartner: 'Partner', + firstName: 'First name', + lastName: 'Last name', + birthDate: 'Birth date', + address: 'Address', + zip: 'ZIP', + city: 'City', + previousDivorces: 'Previous divorces' + } + }, + + maritalItem: { + celibate: 'Single', + maried: 'Married', + registrated: 'Registered domestic partnership', + widower: 'Widower/Widow', + deadunion: 'Union dissolved by death', + divorced: 'Divorced', + unionlegal: 'Union dissolved by legal decision', + separated: 'Separated', + uniondisappeared: 'Union dissolved by declaration of disappearance' + }, + + // message used when spouse address field has no explicit label + 'marital.spouse.fillIfDifferent': 'Fill if different', + + income: { + employTypeLabel: 'Employment type', + employTypeHint: 'Select an employment type', + employType: { + EMPLOYED: 'Employed', + SELF_EMPLOYED: 'Self-employed', + PENSIONER: 'Pensioner', + UNEMPLOYED: 'Unemployed' + }, + attachments: { + salaryCertificate: 'Salary certificate', + accountingDocuments: 'Accounting documents', + avsCertificate: 'AVS certificate', + lppCertificate: 'LPP certificate', + unemploymentCertificate: 'Unemployment certificate' + } + }, + + children: { + hasChildren: 'Do you have children?', + addChild: 'Add child', + editChild: 'Edit child', + listTitle: 'Children list', + moreThanFiveChildrenNote: 'More than five children note', + firstName: 'First name', + lastName: 'Last name', + birthDate: 'Birth date', + sameHousehold: 'Same household', + addressIfDifferent: 'Address (if different)', + addressLabel: 'Address', + alimentiVersati: 'Alimony paid', + school: 'School', + hasCareCost: 'Care costs', + careCosts: 'Care costs', + copyLastNameFromTaxpayer: 'Copy last name from taxpayer', + noAttachments: 'Attach documents' + }, + + informazionesualimenti: 'Alimony information', + inserireindirizzocogniuge: 'Enter spouse address', + inserireindirizzopartner: 'Enter partner address', + indirizzocogniuge: 'Spouse address', + indirizzopartner: 'Partner address', + indirizzocogniugedefunto: 'Deceased spouse address', + indirizzodeadpartner: 'Deceased partner address', + indirizzoexcogniuge: 'Ex-spouse address', + indirizzoexpartner: 'Ex-partner address', + daticogniuge: 'Spouse details', + datipartner: 'Partner details', + daticogniugedefunto: 'Deceased spouse details', + datideadpartner: 'Deceased partner details', + datiexcogniuge: 'Ex-spouse details', + datideadexpartner: 'Ex-partner details', + datidisapparizedpartner: 'Missing partner details', + datadecesso: 'Date of death', + datascomparsa: 'Date of disappearance', + datascioglimento: 'Dissolution date' +} as const diff --git a/app/src/i18n/locales/fr-FR/attachments.ts b/app/src/i18n/locales/fr-FR/attachments.ts new file mode 100644 index 0000000..89150e9 --- /dev/null +++ b/app/src/i18n/locales/fr-FR/attachments.ts @@ -0,0 +1,14 @@ +export default { + attachments: 'Pièces jointes', + commenti: 'Commentaires', + pickFiles: 'Choisir des fichiers', + confirmDeleteAttachment: 'Voulez-vous supprimer cette pièce jointe ? {filename}', + addAttachment: 'Joindre', + fileTypeNotAllowed: 'Type de fichier non autorisé. Autorisés : {allowed}', + missingUserOrSession: "Utilisateur ou session manquant. Rechargez la page et réessayez.", + fileUploaded: 'Fichier téléversé', + uploadFailed: 'Échec du téléversement', + uploadCancelled: 'Téléversement annulé', + fileDeleted: 'Fichier supprimé', + deleteFailed: 'Échec de la suppression' +} as const diff --git a/app/src/i18n/locales/fr-FR/common.ts b/app/src/i18n/locales/fr-FR/common.ts new file mode 100644 index 0000000..bc85c27 --- /dev/null +++ b/app/src/i18n/locales/fr-FR/common.ts @@ -0,0 +1,33 @@ +export default { + button: { + saveAndNext: 'Enregistrer et suivant', + next: 'Suivant', + prev: 'Précédent', + cancel: 'Annuler', + save: 'Enregistrer' + }, + validation: { + required: 'Ce champ est obligatoire', + minLength: 'Trop court', + maxAgeFromJan1: 'Date de naissance invalide', + invalidZip: 'Code postal invalide', + insertAddress: "Veuillez saisir l'adresse" + }, + address: { + title: 'Adresse', + modalTitle: "Modifier l'adresse", + street: 'Rue / Place', + zip: 'Code postal', + city: 'Ville', + country: 'Pays', + foreign: 'Adresse étrangère' + }, + enum: { + maritalStatus: { + SINGLE: 'Célibataire', + SEPARATED: 'Séparé', + MARRIED: 'Marié', + PARTNERED: 'Partenaire' + } + } +} as const diff --git a/app/src/i18n/locales/fr-FR/steps.ts b/app/src/i18n/locales/fr-FR/steps.ts new file mode 100644 index 0000000..dd0da5f --- /dev/null +++ b/app/src/i18n/locales/fr-FR/steps.ts @@ -0,0 +1,118 @@ +export default { + WEL: 'Bienvenue', + TAX: 'Données contribuable et déclaration précédente', + MAR: 'État civil', + CHD: 'Enfants', + INC: 'Revenus', + PRO: 'Frais professionnels', + SID: 'Revenu accessoire', + ANN: 'Rentes', + INS: 'Assurances et frais médicaux', + P3: 'Polices 3A / 3B', + BNK: 'Comptes bancaires', + AST: 'Autres biens / avoirs', + DEB: 'Dettes / hypothèques', + PROP: 'Immobilier', + FOR: "Revenus ou avoirs à l'étranger", + + taxpayer: { + prevPreparedByUs: 'Préparée par nous?', + prevDeclaration: 'Déclaration précédente', + firstName: 'Prénom', + lastName: 'Nom', + birthDate: 'Date de naissance', + address: 'Adresse', + zip: 'Code postal', + city: 'Ville' + }, + + marital: { + title: 'État civil', + maritalStatus: 'État civil', + previousDivorces: 'Divorces précédents', + spouse: { + prefixSpouse: 'Conjoint', + prefixPartner: 'Partenaire', + firstName: 'Prénom', + lastName: 'Nom', + birthDate: 'Date de naissance', + address: 'Adresse', + zip: 'Code postal', + city: 'Ville', + previousDivorces: 'Divorces précédents' + } + }, + + maritalItem: { + celibate: 'Célibataire', + maried: 'Marié(e)', + registrated: 'Union domestique enregistrée', + widower: 'Veuf / Veuve', + deadunion: 'Union dissoute par décès', + divorced: 'Divorcé(e)', + unionlegal: 'Union dissoute par décision judiciaire', + separated: 'Séparé(e)', + uniondisappeared: 'Union dissoute par déclaration de disparition' + }, + + // message used when spouse address field has no explicit label + 'marital.spouse.fillIfDifferent': 'Remplir si différent', + + income: { + employTypeLabel: "Type d'emploi", + employTypeHint: "Sélectionner un type d'emploi", + employType: { + EMPLOYED: 'Salarié', + SELF_EMPLOYED: 'Indépendant', + PENSIONER: 'Retraité', + UNEMPLOYED: 'Sans emploi' + }, + attachments: { + salaryCertificate: 'Certificat de salaire', + accountingDocuments: 'Documents comptables', + avsCertificate: 'Certificat AVS', + lppCertificate: 'Certificat LPP', + unemploymentCertificate: 'Certificat de chômage' + } + }, + + children: { + hasChildren: 'Avez-vous des enfants?', + addChild: 'Ajouter un enfant', + editChild: "Modifier l'enfant", + listTitle: 'Liste des enfants', + moreThanFiveChildrenNote: 'Note pour plus de cinq enfants', + firstName: 'Prénom', + lastName: 'Nom', + birthDate: 'Date de naissance', + sameHousehold: 'Même ménage', + addressIfDifferent: 'Adresse (si différente)', + addressLabel: 'Adresse', + alimentiVersati: 'Pension alimentaire versée', + school: 'École', + hasCareCost: 'Frais de garde', + careCosts: 'Frais de garde', + copyLastNameFromTaxpayer: 'Copier le nom du contribuable', + noAttachments: 'Joindre des documents' + }, + + informazionesualimenti: 'Informations sur la pension alimentaire', + inserireindirizzocogniuge: "Saisir l'adresse du conjoint", + inserireindirizzopartner: "Saisir l'adresse du partenaire", + indirizzocogniuge: 'Adresse du conjoint', + indirizzopartner: 'Adresse du partenaire', + indirizzocogniugedefunto: 'Adresse du conjoint décédé', + indirizzodeadpartner: 'Adresse du partenaire décédé', + indirizzoexcogniuge: "Adresse de l'ex-conjoint", + indirizzoexpartner: "Adresse de l'ex-partenaire", + daticogniuge: 'Données du conjoint', + datipartner: 'Données du partenaire', + daticogniugedefunto: 'Données du conjoint décédé', + datideadpartner: 'Données du partenaire décédé', + datiexcogniuge: "Données de l'ex-conjoint", + datideadexpartner: "Données de l'ex-partenaire", + datidisapparizedpartner: 'Données du partenaire disparu', + datadecesso: 'Date de décès', + datascomparsa: 'Date de disparition', + datascioglimento: 'Date de dissolution' +} as const diff --git a/app/src/i18n/locales/it-IT/attachments.ts b/app/src/i18n/locales/it-IT/attachments.ts new file mode 100644 index 0000000..efe1081 --- /dev/null +++ b/app/src/i18n/locales/it-IT/attachments.ts @@ -0,0 +1,14 @@ +export default { + attachments: 'Allegati', + commenti: 'Commenti', + pickFiles: 'Scegli file', + confirmDeleteAttachment: 'Vuoi eliminare questo allegato? {filename}', + addAttachment: 'Allega', + fileTypeNotAllowed: 'Tipo di file non consentito. Consentiti: {allowed}', + missingUserOrSession: 'Utente o sessione mancanti. Ricarica la pagina e riprova.', + fileUploaded: 'File caricato', + uploadFailed: 'Caricamento fallito', + uploadCancelled: 'Caricamento annullato', + fileDeleted: 'File eliminato', + deleteFailed: 'Eliminazione fallita' +} as const diff --git a/app/src/i18n/locales/it-IT/common.ts b/app/src/i18n/locales/it-IT/common.ts new file mode 100644 index 0000000..75999e6 --- /dev/null +++ b/app/src/i18n/locales/it-IT/common.ts @@ -0,0 +1,33 @@ +export default { + button: { + saveAndNext: 'Salva e Avanti', + next: 'Avanti', + prev: 'Indietro', + cancel: 'Annulla', + save: 'Salva' + }, + validation: { + required: 'Campo obbligatorio', + minLength: 'Troppo corto', + maxAgeFromJan1: 'Data di nascita non valida', + invalidZip: 'CAP non valido', + insertAddress: 'Inserire indirizzo' + }, + address: { + title: 'Indirizzo', + modalTitle: 'Modifica indirizzo', + street: 'Via / Piazza', + zip: 'CAP', + city: 'Città', + country: 'Nazione', + foreign: 'Indirizzo estero' + }, + enum: { + maritalStatus: { + SINGLE: 'Single', + SEPARATED: 'Separato', + MARRIED: 'Sposato', + PARTNERED: 'Unito civilmente' + } + } +} as const diff --git a/app/src/i18n/locales/it-IT/steps.ts b/app/src/i18n/locales/it-IT/steps.ts new file mode 100644 index 0000000..9a94c66 --- /dev/null +++ b/app/src/i18n/locales/it-IT/steps.ts @@ -0,0 +1,118 @@ +export default { + WEL: 'Benvenuto', + TAX: 'Dati contribuente e dichiarazione precedente', + MAR: 'Stato civile', + CHD: 'Figli', + INC: 'Redditi', + PRO: 'Spese professionali', + SID: 'Reddito accessorio', + ANN: 'Rendite', + INS: 'Spese assicurative e mediche', + P3: 'Polizze 3A / 3B', + BNK: 'Conti bancari', + AST: 'Altri beni / averi', + DEB: 'Debiti / ipoteche', + PROP: 'Immobili', + FOR: "Redditi o averi all’estero", + + taxpayer: { + prevPreparedByUs: 'Preparata da noi?', + prevDeclaration: 'Dichiarazione precedente', + firstName: 'Nome', + lastName: 'Cognome', + birthDate: 'Data di nascita', + address: 'Indirizzo', + zip: 'CAP', + city: 'Città' + }, + + marital: { + title: 'Stato civile', + maritalStatus: 'Stato civile', + previousDivorces: 'Divorzi precedenti', + spouse: { + prefixSpouse: 'Coniuge', + prefixPartner: 'Partner', + firstName: 'Nome', + lastName: 'Cognome', + birthDate: 'Data di nascita', + address: 'Indirizzo', + zip: 'CAP', + city: 'Città', + previousDivorces: 'Divorzi precedenti' + } + }, + + maritalItem: { + celibate: 'celibe/ nubile', + maried: 'Cognugato/a', + registrated: 'In unione domestica registrata', + widower: 'Vedovo/a', + deadunion: 'Unione domestica sciolta per decesso', + divorced: 'Divorziato/a', + unionlegal: 'Unione domestica sciolta per decisione legale', + separated: 'Separato/a', + uniondisappeared: 'Unione domestica sciolta per dichiarazione di scomparsa' + }, + + // message used when spouse address field has no explicit label + 'marital.spouse.fillIfDifferent': 'Compilare se diverso', + + income: { + employTypeLabel: 'Tipo di impiego', + employTypeHint: 'Selezionare un tipo di impiego', + employType: { + EMPLOYED: 'Dipendente', + SELF_EMPLOYED: 'Indipendente', + PENSIONER: 'Pensionato', + UNEMPLOYED: 'Disoccupato' + }, + attachments: { + salaryCertificate: 'Certificato salariale', + accountingDocuments: 'Documenti contabili', + avsCertificate: 'Certificato AVS', + lppCertificate: 'Certificato LPP', + unemploymentCertificate: 'Certificato disoccupazione' + } + }, + + children: { + hasChildren: 'Hai figli?', + addChild: 'Aggiungi figlio', + editChild: 'Modifica figlio', + listTitle: 'Elenco figli', + moreThanFiveChildrenNote: 'Nota per più di cinque figli', + firstName: 'Nome', + lastName: 'Cognome', + birthDate: 'Data di nascita', + sameHousehold: 'Stesso nucleo familiare', + addressIfDifferent: 'Indirizzo (se diverso)', + addressLabel: 'Indirizzo', + alimentiVersati: 'Vengono versati alimenti', + school: 'Scuola', + hasCareCost: 'Spese di cura', + careCosts: 'Spese di cura', + copyLastNameFromTaxpayer: 'Copia cognome dal contribuente', + noAttachments: 'Allega documenti' + }, + + informazionesualimenti: 'Informazioni su alimenti', + inserireindirizzocogniuge: "Inserire l'indirizzo del coniuge", + inserireindirizzopartner: "Inserire l'indirizzo del partner", + indirizzocogniuge: 'Indirizzo del coniuge', + indirizzopartner: 'Indirizzo del partner', + indirizzocogniugedefunto: 'Indirizzo del coniuge deceduto', + indirizzodeadpartner: 'Indirizzo del partner deceduto', + indirizzoexcogniuge: 'Indirizzo ex-coniuge', + indirizzoexpartner: 'Indirizzo ex-partner', + daticogniuge: 'Dati del coniuge', + datipartner: 'Dati del partner', + daticogniugedefunto: 'Dati del coniuge deceduto', + datideadpartner: 'Dati del partner deceduto', + datiexcogniuge: 'Dati ex-coniuge', + datideadexpartner: 'Dati ex-partner', + datidisapparizedpartner: 'Dati del partner scomparso', + datadecesso: 'Data di decesso', + datascomparsa: 'Data di scomparsa', + datascioglimento: 'Data di scioglimento' +} as const diff --git a/app/src/layouts/MainLayout.vue b/app/src/layouts/MainLayout.vue new file mode 100644 index 0000000..cae3e45 --- /dev/null +++ b/app/src/layouts/MainLayout.vue @@ -0,0 +1,102 @@ + + + diff --git a/app/src/pages/ErrorNotFound.vue b/app/src/pages/ErrorNotFound.vue new file mode 100644 index 0000000..eb5ff53 --- /dev/null +++ b/app/src/pages/ErrorNotFound.vue @@ -0,0 +1,23 @@ + + + diff --git a/app/src/pages/IndexPage.vue b/app/src/pages/IndexPage.vue new file mode 100644 index 0000000..6525da3 --- /dev/null +++ b/app/src/pages/IndexPage.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/app/src/router/index.ts b/app/src/router/index.ts new file mode 100644 index 0000000..ea3c763 --- /dev/null +++ b/app/src/router/index.ts @@ -0,0 +1,37 @@ +import { defineRouter } from '#q-app/wrappers'; +import { + createMemoryHistory, + createRouter, + createWebHashHistory, + createWebHistory, +} from 'vue-router'; +import routes from './routes'; + +/* + * If not building with SSR mode, you can + * directly export the Router instantiation; + * + * The function below can be async too; either use + * async/await or return a Promise which resolves + * with the Router instance. + */ + +export default defineRouter(function (/* { store, ssrContext } */) { + const createHistory = process.env.SERVER + ? createMemoryHistory + : process.env.VUE_ROUTER_MODE === 'history' + ? createWebHistory + : createWebHashHistory; + + const Router = createRouter({ + scrollBehavior: () => ({ left: 0, top: 0 }), + routes, + + // Leave this as is and make changes in quasar.conf.js instead! + // quasar.conf.js -> build -> vueRouterMode + // quasar.conf.js -> build -> publicPath + history: createHistory(process.env.VUE_ROUTER_BASE), + }); + + return Router; +}); diff --git a/app/src/router/routes.ts b/app/src/router/routes.ts new file mode 100644 index 0000000..1dbaa36 --- /dev/null +++ b/app/src/router/routes.ts @@ -0,0 +1,18 @@ +import type { RouteRecordRaw } from 'vue-router'; + +const routes: RouteRecordRaw[] = [ + { + path: '/', + component: () => import('layouts/MainLayout.vue'), + children: [{ path: '', component: () => import('pages/IndexPage.vue') }], + }, + + // Always leave this as last one, + // but you can also remove it + { + path: '/:catchAll(.*)*', + component: () => import('pages/ErrorNotFound.vue'), + }, +]; + +export default routes; diff --git a/app/src/schema.json b/app/src/schema.json new file mode 100644 index 0000000..bfa91c5 --- /dev/null +++ b/app/src/schema.json @@ -0,0 +1,283 @@ +{ + "steps": [ + { + "id": "welcome", + "order": 0, + "title": "Benvenuto", + "description": "", + "type": "intro", + "fields": [], + "attachments": [], + "pricing": [], + "next": "taxpayer" + }, + + { + "id": "taxpayer", + "order": 1, + "title": "Dati contribuente e dichiarazione precedente", + "description": "", + "fields": [ + { "key": "prevPreparedByUs", "type": "boolean", "required": true }, + { "key": "prevDeclaration", "type": "file", "requiredIf": { "prevPreparedByUs": false } }, + + { "key": "taxpayer.firstName", "type": "string", "required": true }, + { "key": "taxpayer.lastName", "type": "string", "required": true }, + { "key": "taxpayer.birthDate", "type": "date", "required": true }, + { "key": "taxpayer.address", "type": "string", "required": true }, + { "key": "taxpayer.zip", "type": "string", "required": true }, + { "key": "taxpayer.city", "type": "string", "required": true } + ], + "attachments": ["prevDeclaration"], + "pricing": [], + "next": "marital" + }, + + { + "id": "marital", + "order": 2, + "title": "Stato civile", + "description": "", + "fields": [ + { "key": "maritalStatus", "type": "enum", "values": ["SINGLE", "MARRIED", "PARTNERED"], "required": true }, + + { "key": "spouse.firstName", "type": "string", "requiredIf": { "maritalStatus": ["MARRIED","PARTNERED"] } }, + { "key": "spouse.lastName", "type": "string", "requiredIf": { "maritalStatus": ["MARRIED","PARTNERED"] } }, + { "key": "spouse.birthDate", "type": "date", "requiredIf": { "maritalStatus": ["MARRIED","PARTNERED"] } }, + { "key": "spouse.address", "type": "string", "requiredIf": { "maritalStatus": ["MARRIED","PARTNERED"] } }, + { "key": "spouse.zip", "type": "string", "requiredIf": { "maritalStatus": ["MARRIED","PARTNERED"] } }, + { "key": "spouse.city", "type": "string", "requiredIf": { "maritalStatus": ["MARRIED","PARTNERED"] } } + ], + "attachments": [], + "pricing": [ + { "amountCHF": 10, "condition": { "maritalStatus": ["MARRIED","PARTNERED"] } } + ], + "next": "children" + }, + + { + "id": "children", + "order": 3, + "title": "Figli", + "description": "", + "fields": [ + { "key": "hasChildren", "type": "boolean", "required": true }, + + { + "key": "children", + "type": "array", + "maxItems": 5, + "item": { + "firstName": "string", + "lastName": "string", + "birthDate": "date", + "sameHousehold": "boolean", + "addressIfDifferent": "string", + "school": "string", + "careCosts": "file" + } + }, + + { "key": "moreThanFiveChildrenNote", "type": "string", "required": false } + ], + "attachments": ["children[*].careCosts"], + "pricing": [ + { "amountCHF": 5, "perItem": "children" } + ], + "next": "income" + }, + + { + "id": "income", + "order": 4, + "title": "Redditi", + "description": "", + "fields": [ + { + "key": "incomeTypes", + "type": "array", + "values": ["EMPLOYED", "SELF_EMPLOYED", "PENSIONER", "UNEMPLOYED"] + }, + + { "key": "employment.percent", "type": "number", "requiredIf": { "incomeTypes": "EMPLOYED" } }, + { "key": "employment.detailsUnder70", "type": "string", "requiredIf": { "employment.percent": "<70" } } + ], + "attachments": [ + "salaryCertificate", + "accountingDocuments", + "avsCertificate", + "lppCertificate", + "unemploymentCertificate" + ], + "pricing": [], + "next": "professionalExpenses" + }, + + { + "id": "professionalExpenses", + "order": 5, + "title": "Spese professionali", + "description": "", + "fields": [ + { "key": "expensesChanged", "type": "boolean", "required": true }, + { "key": "workplaceDescription", "type": "string", "requiredIf": { "expensesChanged": true } }, + { "key": "commuteMethod", "type": "enum", "values": ["CAR", "BUS", "BIKE", "WALK"] }, + { "key": "commuteKm", "type": "number" }, + { "key": "lunchAtHome", "type": "boolean" }, + { "key": "eatsOut", "type": "boolean" }, + { "key": "hasCanteenOrVouchers", "type": "boolean", "requiredIf": { "eatsOut": true } } + ], + "attachments": ["transportSubscription"], + "pricing": [], + "next": "sideIncome" + }, + + { + "id": "sideIncome", + "order": 6, + "title": "Reddito accessorio", + "description": "", + "fields": [ + { "key": "hasSideIncome", "type": "boolean", "required": true } + ], + "attachments": ["sideIncomeDocuments"], + "pricing": [ + { "amountCHF": 5, "condition": { "hasSideIncome": true } } + ], + "next": "annuities" + }, + + { + "id": "annuities", + "order": 7, + "title": "Rendite", + "description": "", + "fields": [ + { "key": "hasAnnuities", "type": "boolean", "required": true } + ], + "attachments": ["annuityDocuments"], + "pricing": [ + { "amountCHF": 5, "condition": { "hasAnnuities": true } } + ], + "next": "insurance" + }, + + { + "id": "insurance", + "order": 8, + "title": "Spese assicurative e mediche", + "description": "", + "fields": [], + "attachments": ["healthInsuranceCertificate", "medicalExpenses"], + "pricing": [ + { "amountCHF": 5, "condition": { "medicalExpenses": true } } + ], + "next": "pillar3" + }, + + { + "id": "pillar3", + "order": 9, + "title": "Polizze 3A / 3B", + "description": "", + "fields": [ + { "key": "hasPillar3", "type": "boolean", "required": true } + ], + "attachments": ["pillar3Documents"], + "pricing": [ + { "amountCHF": 5, "condition": { "hasPillar3": true } } + ], + "next": "bankAccounts" + }, + + { + "id": "bankAccounts", + "order": 10, + "title": "Conti bancari", + "description": "", + "fields": [ + { "key": "hasBankAccounts", "type": "boolean", "required": true } + ], + "attachments": ["bankStatements"], + "pricing": [ + { "amountCHF": 2, "perExtraAttachmentAfter": 2 } + ], + "next": "otherAssets" + }, + + { + "id": "otherAssets", + "order": 11, + "title": "Altri beni / averi", + "description": "", + "fields": [ + { "key": "hasOtherAssets", "type": "boolean", "required": true }, + { "key": "otherAssetsList", "type": "array", "item": { "description": "string", "amount": "number" } } + ], + "attachments": ["otherAssetsDocuments"], + "pricing": [ + { "amountCHF": 5, "perItem": "otherAssetsList" } + ], + "next": "debts" + }, + + { + "id": "debts", + "order": 12, + "title": "Debiti / ipoteche", + "description": "", + "fields": [ + { "key": "hasDebts", "type": "boolean", "required": true } + ], + "attachments": ["debtCertificates"], + "pricing": [ + { "amountCHF": 5, "perAttachment": true } + ], + "next": "properties" + }, + + { + "id": "properties", + "order": 13, + "title": "Immobili", + "description": "", + "fields": [ + { "key": "hasProperties", "type": "boolean", "required": true }, + { + "key": "propertiesList", + "type": "array", + "item": { + "country": "enum", + "address": "string", + "purchaseYear": "number", + "buildingYear": "number", + "isRented": "boolean" + } + } + ], + "attachments": ["propertyDocuments", "deed", "maintenanceInvoices"], + "pricing": [ + { "amountCHF": 5, "condition": { "country": "SWISS" } }, + { "amountCHF": 7, "condition": { "country": "ITALY" } }, + { "amountCHF": 7, "condition": { "country": "FOREIGN" } } + ], + "next": "foreign" + }, + + { + "id": "foreign", + "order": 14, + "title": "Redditi o averi all’estero", + "description": "", + "fields": [ + { "key": "hasForeignAssets", "type": "boolean", "required": true }, + { "key": "foreignDescription", "type": "string", "requiredIf": { "hasForeignAssets": true } } + ], + "attachments": ["foreignDocuments"], + "pricing": [ + { "amountCHF": 5, "perAttachment": true } + ], + "next": null + } + ] +} diff --git a/app/src/stores/children.ts b/app/src/stores/children.ts new file mode 100644 index 0000000..b4a389e --- /dev/null +++ b/app/src/stores/children.ts @@ -0,0 +1,102 @@ +import { defineStore } from 'pinia' +import { LocalStorage } from 'quasar' +import type { Address } from '../types/address' + +interface CommentAttachment { + comments: string + attachments: string[] +} + +export interface ChildItem { + firstName: string + lastName: string + birthDate: string + sameHousehold: boolean + alimentiVersati?: boolean + school: string + hasCareCost: boolean + careCosts: CommentAttachment + address?: Address | null +} + +export interface ChildrenData { + hasChildren: boolean + children: ChildItem[] + moreThanFiveChildrenNote: string +} + +const STORAGE_KEY = 'children:v1' + +const DEFAULT: ChildrenData = { + hasChildren: false, + children: [], + moreThanFiveChildrenNote: '' +} + +export const useChildrenStore = defineStore('childrenstore', { + state: () => { + try { + let saved: unknown = LocalStorage.getItem(STORAGE_KEY) + if (typeof saved === 'string') { + try { + saved = JSON.parse(saved) + } catch { + saved = null + } + } + if (saved && typeof saved === 'object') { + return { data: { ...(saved as ChildrenData) } } + } + } catch { + // ignore and fall back to default + } + return { data: { ...DEFAULT } as ChildrenData } + }, + actions: { + persist() { + try { + // LocalStorage (and JSON) can fail when trying to serialize + // File objects. Build a serializable copy: drop `careCosts` + // (or convert to file meta) before persisting. + const serializable: ChildrenData = { + hasChildren: !!this.data.hasChildren, + children: Array.isArray(this.data.children) + ? this.data.children.map(c => { + return { + firstName: c.firstName, + lastName: c.lastName, + birthDate: c.birthDate, + sameHousehold: c.sameHousehold, + alimentiVersati: (c as Partial).alimentiVersati ?? false, + school: c.school, + hasCareCost: (c as Partial).hasCareCost ?? false, + careCosts: c.careCosts, + address: (c as Partial).address ?? null, + } + }) + : [], + moreThanFiveChildrenNote: this.data.moreThanFiveChildrenNote || '' + } + LocalStorage.set(STORAGE_KEY, serializable) + } catch (err) { + // keep errors visible in console to aid debugging but don't throw + console.error('children.store: persist error', err) + } + }, + getChildren() { + return this.data + }, + setChildren(partial: Partial) { + this.data = { ...this.data, ...partial } + this.persist() + }, + replaceChildren(payload: ChildrenData) { + this.data = payload + this.persist() + }, + resetChildren() { + this.data = { ...DEFAULT } + this.persist() + } + } +}) diff --git a/app/src/stores/income.ts b/app/src/stores/income.ts new file mode 100644 index 0000000..bbe39b1 --- /dev/null +++ b/app/src/stores/income.ts @@ -0,0 +1,66 @@ +import { defineStore } from 'pinia' +import { LocalStorage } from 'quasar' +import type { IncomeData } from '../types/types' + +const STORAGE_KEY = 'income:v1' + +const DEFAULT: IncomeData = { + employType: null, + attachments: { + salaryCertificate: { comments: '', attachments: [] }, + accountingDocuments: { comments: '', attachments: [] }, + avsCertificate: { comments: '', attachments: [] }, + lppCertificate: { comments: '', attachments: [] }, + unemploymentCertificate: { comments: '', attachments: [] } + } +} + +function isRecord(v: unknown): v is Record { + return !!v && typeof v === 'object' && !Array.isArray(v) +} + +export const useIncomeStore = defineStore('incomestore', { + state: () => { + try { + let saved: unknown = LocalStorage.getItem(STORAGE_KEY) + if (typeof saved === 'string') { + try { + saved = JSON.parse(saved) + } catch { + saved = null + } + } + if (isRecord(saved)) { + return { data: { ...DEFAULT, ...(saved as Partial) } as IncomeData } + } + } catch { + // ignore and fall back to default + } + + return { data: { ...DEFAULT } as IncomeData } + }, + actions: { + persist() { + try { + LocalStorage.set(STORAGE_KEY, this.data) + } catch (err) { + console.error('income.store: persist error', err) + } + }, + getIncome() { + return this.data + }, + setIncome(partial: Partial) { + this.data = { ...this.data, ...partial } + this.persist() + }, + replaceIncome(payload: IncomeData) { + this.data = payload + this.persist() + }, + resetIncome() { + this.data = { ...DEFAULT } + this.persist() + } + } +}) diff --git a/app/src/stores/index.ts b/app/src/stores/index.ts new file mode 100644 index 0000000..bf1cad9 --- /dev/null +++ b/app/src/stores/index.ts @@ -0,0 +1,32 @@ +import { defineStore } from '#q-app/wrappers'; +import { createPinia } from 'pinia'; + +/* + * When adding new properties to stores, you should also + * extend the `PiniaCustomProperties` interface. + * @see https://pinia.vuejs.org/core-concepts/plugins.html#typing-new-store-properties + */ +declare module 'pinia' { + // eslint-disable-next-line @typescript-eslint/no-empty-object-type + export interface PiniaCustomProperties { + // add your custom properties here, if any + } +} + +/* + * If not building with SSR mode, you can + * directly export the Store instantiation; + * + * The function below can be async too; either use + * async/await or return a Promise which resolves + * with the Store instance. + */ + +export default defineStore((/* { ssrContext } */) => { + const pinia = createPinia(); + + // You can add Pinia plugins here + // pinia.use(SomePiniaPlugin) + + return pinia; +}); diff --git a/app/src/stores/marital.ts b/app/src/stores/marital.ts new file mode 100644 index 0000000..7365259 --- /dev/null +++ b/app/src/stores/marital.ts @@ -0,0 +1,40 @@ +// Thin compatibility wrapper: marital API now lives in the `taxstore`. +import { computed } from 'vue' +import { useTaxstore } from './taxstore' +import type { AddressOut } from 'src/components/AddressInput.vue' +import type { CommentAttachmentData } from 'src/components/CommentAttachment.vue' + +export interface MaritalData { + alimentiVersati: boolean + alimentiCommenti: CommentAttachmentData + maritalStatus: string + spouseFirstName: string | number | null + spouseLastName: string | number | null + spouseBirthDate: string | number | FileList | null | undefined + spouseDeadDate: string | number | FileList | null | undefined + spouseTaxNumber: string + spouseAddress: AddressOut + marriageDate: string + separated: boolean + spouseAlimentiVersati: boolean +} + +export const useMaritalStore = () => { + const store = useTaxstore() + + const data = computed(() => store.getMarital()) + + function set(partial: Partial) { + store.setMarital(partial) + } + + function replace(payload: MaritalData) { + store.replaceMarital(payload) + } + + function reset() { + store.resetMarital() + } + + return { data, set, replace, reset } +} diff --git a/app/src/stores/taxpayer.ts b/app/src/stores/taxpayer.ts new file mode 100644 index 0000000..5ec023e --- /dev/null +++ b/app/src/stores/taxpayer.ts @@ -0,0 +1,34 @@ +import { computed } from 'vue' +import { useTaxstore } from './taxstore' +import type { AddressOut } from 'src/components/AddressInput.vue' +import type { CommentAttachmentData } from 'src/components/CommentAttachment.vue' + +export interface TaxpayerForm { + prevPreparedByUs: boolean + prevDeclaration: CommentAttachmentData + firstName: string + lastName: string + birthDate: string + address: AddressOut +} + +// Compatibility wrapper around `taxstore` for code expecting `useTaxpayerStore()` +export const useTaxpayerStore = () => { + const store = useTaxstore() + + const data = computed(() => store.getTaxpayer()) + + function set(partial: Partial) { + store.setTaxpayer(partial) + } + + function replace(payload: TaxpayerForm) { + store.replaceTaxpayer(payload) + } + + function reset() { + store.resetTaxpayer() + } + + return { data, set, replace, reset } +} diff --git a/app/src/stores/taxstore.ts b/app/src/stores/taxstore.ts new file mode 100644 index 0000000..1eb0d74 --- /dev/null +++ b/app/src/stores/taxstore.ts @@ -0,0 +1,121 @@ +import { defineStore } from 'pinia' +import { LocalStorage } from 'quasar' +import { type TaxpayerForm } from './taxpayer' +import { type MaritalData } from './marital' + +const STORAGE_KEY = 'taxstore:v1' + +const defaultTaxpayer: TaxpayerForm = { + prevPreparedByUs: false, + prevDeclaration: { comments: '', attachments: [] }, + firstName: '', + lastName: '', + birthDate: '', + address: { + street: '', + cap: '', + city: '', + country: { code: '', name: '' }, + canton: '' + } +} + +const defaultMarital: MaritalData = { + alimentiVersati: false, + alimentiCommenti: { comments: '', attachments: [] }, + maritalStatus: '', + spouseFirstName: '', + spouseLastName: '', + spouseBirthDate: '', + spouseDeadDate : '', + spouseTaxNumber: '', + spouseAddress: { street: '', cap: '', city: '', country: { code: '', name: '' }, canton: '' }, + marriageDate: '', + separated: false, + spouseAlimentiVersati: false +} + +export const useTaxstore = defineStore('taxstore', { + state: () => { + // try to load persisted state from Quasar LocalStorage + try { + const saved: unknown = LocalStorage.getItem(STORAGE_KEY) + if (saved && typeof saved === 'object') { + const s = saved as Record + if (Array.isArray(s.items)) { + const items = s.items as Array< + | { key: 'taxpayer'; data: TaxpayerForm } + | { key: 'marital'; data: MaritalData } + > + return { items } + } + } + } catch { + // ignore parsing errors and fall back to defaults + } + + return { + items: [ + { key: 'taxpayer', data: { ...defaultTaxpayer } as TaxpayerForm }, + { key: 'marital', data: { ...defaultMarital } as MaritalData } + ] as Array<{ key: 'taxpayer'; data: TaxpayerForm } | { key: 'marital'; data: MaritalData }> + } + }, + actions: { + // persist helper + persist() { + try { + LocalStorage.set(STORAGE_KEY, { items: this.items }) + } catch { + // ignore storage errors (e.g., quota exceeded) + } + }, + // Type-guard helpers + _findTaxpayer(): { key: 'taxpayer'; data: TaxpayerForm } | undefined { + return this.items.find((i): i is { key: 'taxpayer'; data: TaxpayerForm } => i.key === 'taxpayer') + }, + _findMarital(): { key: 'marital'; data: MaritalData } | undefined { + return this.items.find((i): i is { key: 'marital'; data: MaritalData } => i.key === 'marital') + }, + + // Taxpayer-specific helpers + getTaxpayer() { + return this._findTaxpayer()?.data + }, + setTaxpayer(partial: Partial) { + const it = this._findTaxpayer() + if (it) it.data = { ...it.data, ...partial } + this.persist() + }, + replaceTaxpayer(payload: TaxpayerForm) { + const it = this._findTaxpayer() + if (it) it.data = payload + this.persist() + }, + resetTaxpayer() { + const it = this._findTaxpayer() + if (it) it.data = { ...defaultTaxpayer } + this.persist() + }, + + // Marital-specific helpers + getMarital() { + return this._findMarital()?.data + }, + setMarital(partial: Partial) { + const it = this._findMarital() + if (it) it.data = { ...it.data, ...partial } + this.persist() + }, + replaceMarital(payload: MaritalData) { + const it = this._findMarital() + if (it) it.data = payload + this.persist() + }, + resetMarital() { + const it = this._findMarital() + if (it) it.data = { ...defaultMarital } + this.persist() + } + } +}) diff --git a/app/src/stores/userstore.ts b/app/src/stores/userstore.ts new file mode 100644 index 0000000..0c53f7f --- /dev/null +++ b/app/src/stores/userstore.ts @@ -0,0 +1,9 @@ +import { defineStore } from 'pinia' + +const ZERO_UUID = '00000000-0000-0000-0000-000000000000' + +export const useUserstore = defineStore('userstore', { + state: () => ({ + id: ZERO_UUID, + }), +}) diff --git a/app/src/types/address.ts b/app/src/types/address.ts new file mode 100644 index 0000000..0bbaf6e --- /dev/null +++ b/app/src/types/address.ts @@ -0,0 +1,17 @@ +export interface CountryRef { + code: string + name: string +} + +export interface Address { + street: string + zip: string + city: string + // when present, can be either a raw code (legacy) or an object with code+localized name + country?: string | CountryRef | null + // optional Swiss canton code (e.g. 'ZH', 'BE') when applicable + canton?: string | null + foreign: boolean +} + +export type PartialAddress = Partial
diff --git a/app/src/types/types.d.ts b/app/src/types/types.d.ts new file mode 100644 index 0000000..f821a36 --- /dev/null +++ b/app/src/types/types.d.ts @@ -0,0 +1,41 @@ +// Shared app-wide types + +// TypeScript descriptors for the form schema + +export interface StepDescriptor { + id: string + order: number + title: string + pricing?: PricingDescriptor[] + next?: string | null + prev?: string | null +} + +export interface PricingDescriptor { + amountCHF: number + condition?: Record + perItem?: string + perAttachment?: boolean + perExtraAttachmentAfter?: number +} + +export type EmployTypeValue = 'EMPLOYED' | 'SELF_EMPLOYED' | 'PENSIONER' | 'UNEMPLOYED' + + +export interface SimpleAttachmentData { + comments: string + attachments: string[] +} + + +export interface IncomeData { + employType: EmployTypeValue | null + attachments: { + salaryCertificate: SimpleAttachmentData + accountingDocuments: SimpleAttachmentData + avsCertificate: SimpleAttachmentData + lppCertificate: SimpleAttachmentData + unemploymentCertificate: SimpleAttachmentData + } +} + diff --git a/app/src/utils/api.ts b/app/src/utils/api.ts new file mode 100644 index 0000000..c78de6d --- /dev/null +++ b/app/src/utils/api.ts @@ -0,0 +1,256 @@ +export type ApiBaseUrl = string + +export const DEFAULT_API_BASE_URL: ApiBaseUrl = 'http://localhost:8082' + +export type UploadDocumentParams = { + user: string + session: string + prop?: string + file: File + baseUrl?: ApiBaseUrl + onProgress?: (fraction: number) => void + signal?: AbortSignal +} + +export type LoadAttachmentsParams = { + id: string + session: string + prop?: string + baseUrl?: ApiBaseUrl +} + +export type DeleteAttachmentParams = { + id: string + session: string + prop?: string + filename: string + baseUrl?: ApiBaseUrl +} + +export type ApiUploadResponse = { + ok?: boolean + files?: string[] +} + +export type ApiDeleteAttachmentResponse = { + ok?: boolean + deleted?: boolean + file?: string +} + +export type ApiAttachmentsListResponse = Record + +export class ApiError extends Error { + status: number | undefined + + constructor(message: string, status?: number) { + super(message) + this.name = 'ApiError' + this.status = status + } +} + +function apiUrl(baseUrl: ApiBaseUrl | undefined, path: string): string { + const base = (baseUrl || DEFAULT_API_BASE_URL).replace(/\/+$/, '') + const p = path.startsWith('/') ? path : `/${path}` + return `${base}${p}` +} + +async function parseJsonSafe(response: Response): Promise { + const text = await response.text() + if (!text) return null + try { + return JSON.parse(text) as unknown + } catch { + return text + } +} + +function normalizeUploadedFiles(payload: unknown): string[] { + if (!payload || typeof payload !== 'object') return [] + + const files = (payload as { files?: unknown }).files + if (!files) return [] + + if (Array.isArray(files)) { + const out: string[] = [] + + for (const item of files) { + if (typeof item === 'string') { + out.push(item) + continue + } + if (item && typeof item === 'object') { + const obj = item as { storedName?: unknown; originalName?: unknown; name?: unknown } + const name = + (typeof obj.storedName === 'string' && obj.storedName) || + (typeof obj.originalName === 'string' && obj.originalName) || + (typeof obj.name === 'string' && obj.name) || + '' + if (name) out.push(name) + } + } + + return out + } + + return [] +} + +export async function uploadDocument(params: UploadDocumentParams): Promise { + const { user, session, prop, file, baseUrl, onProgress, signal } = params + + if (!user) throw new ApiError('missing user') + if (!session) throw new ApiError('missing session') + if (!file) throw new ApiError('missing file') + + const url = apiUrl(baseUrl, '/upload') + + return await new Promise((resolve, reject) => { + const xhr = new XMLHttpRequest() + + if (signal) { + if (signal.aborted) { + reject(new ApiError('aborted')) + return + } + signal.addEventListener( + 'abort', + () => { + try { + xhr.abort() + } catch { + // ignore + } + }, + { once: true } + ) + } + + xhr.upload.onprogress = (e) => { + if (!onProgress) return + if (!e.lengthComputable) return + const fraction = e.total > 0 ? e.loaded / e.total : 0 + onProgress(Math.max(0, Math.min(1, fraction))) + } + + xhr.onload = () => { + const ok = xhr.status >= 200 && xhr.status < 300 + let parsed: unknown = null + try { + parsed = xhr.responseText ? (JSON.parse(xhr.responseText) as unknown) : null + } catch { + parsed = xhr.responseText + } + + if (!ok) { + reject(new ApiError(`Upload failed (HTTP ${xhr.status})`, xhr.status)) + return + } + + const files = normalizeUploadedFiles(parsed) + resolve({ ok: true, files }) + } + + xhr.onerror = () => { + reject(new ApiError('Upload failed (network error)')) + } + + xhr.onabort = () => { + reject(new ApiError('Upload cancelled')) + } + + const fd = new FormData() + fd.append('user', user) + fd.append('session', session) + if (prop) fd.append('prop', prop) + fd.append('documents', file) + + xhr.open('POST', url) + xhr.send(fd) + }) +} + +export async function loadAttachments(params: LoadAttachmentsParams): Promise { + const { id, session, prop, baseUrl } = params + + if (!id) throw new ApiError('missing id') + if (!session) throw new ApiError('missing session') + + const res = await fetch(apiUrl(baseUrl, '/loadattachments'), { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ id, session, prop }), + }) + + if (!res.ok) { + const body = await parseJsonSafe(res) + const msg = typeof body === 'string' ? body : `Load attachments failed (HTTP ${res.status})` + throw new ApiError(msg, res.status) + } + + const data = (await res.json()) as unknown + if (Array.isArray(data) && data.every((x) => typeof x === 'string')) { + return data + } + + return [] +} + +export async function deleteAttachment(params: DeleteAttachmentParams): Promise { + const { id, session, prop, filename, baseUrl } = params + + if (!id) throw new ApiError('missing id') + if (!session) throw new ApiError('missing session') + if (!filename) throw new ApiError('missing filename') + + const res = await fetch(apiUrl(baseUrl, '/deleteattachment'), { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ id, session, prop, filename }), + }) + + if (!res.ok) { + const body = await parseJsonSafe(res) + const msg = typeof body === 'string' ? body : `Delete attachment failed (HTTP ${res.status})` + throw new ApiError(msg, res.status) + } + + const data = (await res.json()) as unknown + return (data && typeof data === 'object' ? (data as ApiDeleteAttachmentResponse) : {}) +} + +export async function loadAttachmentsList(params: LoadAttachmentsParams): Promise { + const { id, session, prop, baseUrl } = params + + if (!id) throw new ApiError('missing id') + if (!session) throw new ApiError('missing session') + if (prop) throw new ApiError('prop is not supported for loadAttachmentsList') + + const res = await fetch(apiUrl(baseUrl, '/loadattachmentslist'), { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ id, session }), + }) + + if (!res.ok) { + const body = await parseJsonSafe(res) + const msg = typeof body === 'string' ? body : `Load attachments list failed (HTTP ${res.status})` + throw new ApiError(msg, res.status) + } + + const data = (await res.json()) as unknown + if (!data || typeof data !== 'object' || Array.isArray(data)) { + return {} + } + + const result: ApiAttachmentsListResponse = {} + for (const [key, value] of Object.entries(data as Record)) { + if (!key) continue + if (Array.isArray(value) && value.every((x) => typeof x === 'string')) { + result[key] = value + } + } + + return result +} diff --git a/app/tsconfig.json b/app/tsconfig.json new file mode 100644 index 0000000..cfde230 --- /dev/null +++ b/app/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "./.quasar/tsconfig.json", + "compilerOptions": { + "noImplicitAny": false + } +} diff --git a/info.pdf b/info.pdf new file mode 100644 index 0000000..6891560 Binary files /dev/null and b/info.pdf differ diff --git a/schema.json b/schema.json new file mode 100644 index 0000000..86b677b --- /dev/null +++ b/schema.json @@ -0,0 +1,283 @@ +{ + "steps": [ + { + "id": "welcome", + "order": 0, + "title": "Benvenuto", + "description": "", + "type": "intro", + "fields": [], + "attachments": [], + "pricing": [], + "next": "taxpayer" + }, + + { + "id": "taxpayer", + "order": 1, + "title": "Dati contribuente e dichiarazione precedente", + "description": "", + "fields": [ + { "key": "prevPreparedByUs", "type": "boolean", "required": true }, + { "key": "prevDeclaration", "type": "file", "requiredIf": { "prevPreparedByUs": false } }, + + { "key": "taxpayer.firstName", "type": "string", "required": true }, + { "key": "taxpayer.lastName", "type": "string", "required": true }, + { "key": "taxpayer.birthDate", "type": "date", "required": true }, + { "key": "taxpayer.address", "type": "string", "required": true }, + { "key": "taxpayer.zip", "type": "string", "required": true }, + { "key": "taxpayer.city", "type": "string", "required": true } + ], + "attachments": ["prevDeclaration"], + "pricing": [], + "next": "marital" + }, + + { + "id": "marital", + "order": 2, + "title": "Stato civile", + "description": "", + "fields": [ + { "key": "maritalStatus", "type": "enum", "values": ["SINGLE", "MARRIED","PARTNERED"], "required": true }, + + { "key": "spouse.firstName", "type": "string", "requiredIf": { "maritalStatus": ["MARRIED","PARTNERED"] } }, + { "key": "spouse.lastName", "type": "string", "requiredIf": { "maritalStatus": ["MARRIED","PARTNERED"] } }, + { "key": "spouse.birthDate", "type": "date", "requiredIf": { "maritalStatus": ["MARRIED","PARTNERED"] } }, + { "key": "spouse.address", "type": "string", "requiredIf": { "maritalStatus": ["MARRIED","PARTNERED"] } }, + { "key": "spouse.zip", "type": "string", "requiredIf": { "maritalStatus": ["MARRIED","PARTNERED"] } }, + { "key": "spouse.city", "type": "string", "requiredIf": { "maritalStatus": ["MARRIED","PARTNERED"] } } + ], + "attachments": [], + "pricing": [ + { "amountCHF": 10, "condition": { "maritalStatus": ["MARRIED","PARTNERED"] } } + ], + "next": "children" + }, + + { + "id": "children", + "order": 3, + "title": "Figli", + "description": "", + "fields": [ + { "key": "hasChildren", "type": "boolean", "required": true }, + + { + "key": "children", + "type": "array", + "maxItems": 5, + "item": { + "firstName": "string", + "lastName": "string", + "birthDate": "date", + "sameHousehold": "boolean", + "addressIfDifferent": "string", + "school": "string", + "careCosts": "file" + } + }, + + { "key": "moreThanFiveChildrenNote", "type": "string", "required": false } + ], + "attachments": ["children[*].careCosts"], + "pricing": [ + { "amountCHF": 5, "perItem": "children" } + ], + "next": "income" + }, + + { + "id": "income", + "order": 4, + "title": "Redditi", + "description": "", + "fields": [ + { + "key": "incomeTypes", + "type": "array", + "values": ["EMPLOYED", "SELF_EMPLOYED", "PENSIONER", "UNEMPLOYED"] + }, + + { "key": "employment.percent", "type": "number", "requiredIf": { "incomeTypes": "EMPLOYED" } }, + { "key": "employment.detailsUnder70", "type": "string", "requiredIf": { "employment.percent": "<70" } } + ], + "attachments": [ + "salaryCertificate", + "accountingDocuments", + "avsCertificate", + "lppCertificate", + "unemploymentCertificate" + ], + "pricing": [], + "next": "professionalExpenses" + }, + + { + "id": "professionalExpenses", + "order": 5, + "title": "Spese professionali", + "description": "", + "fields": [ + { "key": "expensesChanged", "type": "boolean", "required": true }, + { "key": "workplaceDescription", "type": "string", "requiredIf": { "expensesChanged": true } }, + { "key": "commuteMethod", "type": "enum", "values": ["CAR", "BUS", "BIKE", "WALK"] }, + { "key": "commuteKm", "type": "number" }, + { "key": "lunchAtHome", "type": "boolean" }, + { "key": "eatsOut", "type": "boolean" }, + { "key": "hasCanteenOrVouchers", "type": "boolean", "requiredIf": { "eatsOut": true } } + ], + "attachments": ["transportSubscription"], + "pricing": [], + "next": "sideIncome" + }, + + { + "id": "sideIncome", + "order": 6, + "title": "Reddito accessorio", + "description": "", + "fields": [ + { "key": "hasSideIncome", "type": "boolean", "required": true } + ], + "attachments": ["sideIncomeDocuments"], + "pricing": [ + { "amountCHF": 5, "condition": { "hasSideIncome": true } } + ], + "next": "annuities" + }, + + { + "id": "annuities", + "order": 7, + "title": "Rendite", + "description": "", + "fields": [ + { "key": "hasAnnuities", "type": "boolean", "required": true } + ], + "attachments": ["annuityDocuments"], + "pricing": [ + { "amountCHF": 5, "condition": { "hasAnnuities": true } } + ], + "next": "insurance" + }, + + { + "id": "insurance", + "order": 8, + "title": "Spese assicurative e mediche", + "description": "", + "fields": [], + "attachments": ["healthInsuranceCertificate", "medicalExpenses"], + "pricing": [ + { "amountCHF": 5, "condition": { "medicalExpenses": true } } + ], + "next": "pillar3" + }, + + { + "id": "pillar3", + "order": 9, + "title": "Polizze 3A / 3B", + "description": "", + "fields": [ + { "key": "hasPillar3", "type": "boolean", "required": true } + ], + "attachments": ["pillar3Documents"], + "pricing": [ + { "amountCHF": 5, "condition": { "hasPillar3": true } } + ], + "next": "bankAccounts" + }, + + { + "id": "bankAccounts", + "order": 10, + "title": "Conti bancari", + "description": "", + "fields": [ + { "key": "hasBankAccounts", "type": "boolean", "required": true } + ], + "attachments": ["bankStatements"], + "pricing": [ + { "amountCHF": 2, "perExtraAttachmentAfter": 2 } + ], + "next": "otherAssets" + }, + + { + "id": "otherAssets", + "order": 11, + "title": "Altri beni / averi", + "description": "", + "fields": [ + { "key": "hasOtherAssets", "type": "boolean", "required": true }, + { "key": "otherAssetsList", "type": "array", "item": { "description": "string", "amount": "number" } } + ], + "attachments": ["otherAssetsDocuments"], + "pricing": [ + { "amountCHF": 5, "perItem": "otherAssetsList" } + ], + "next": "debts" + }, + + { + "id": "debts", + "order": 12, + "title": "Debiti / ipoteche", + "description": "", + "fields": [ + { "key": "hasDebts", "type": "boolean", "required": true } + ], + "attachments": ["debtCertificates"], + "pricing": [ + { "amountCHF": 5, "perAttachment": true } + ], + "next": "properties" + }, + + { + "id": "properties", + "order": 13, + "title": "Immobili", + "description": "", + "fields": [ + { "key": "hasProperties", "type": "boolean", "required": true }, + { + "key": "propertiesList", + "type": "array", + "item": { + "country": "enum", + "address": "string", + "purchaseYear": "number", + "buildingYear": "number", + "isRented": "boolean" + } + } + ], + "attachments": ["propertyDocuments", "deed", "maintenanceInvoices"], + "pricing": [ + { "amountCHF": 5, "condition": { "country": "SWISS" } }, + { "amountCHF": 7, "condition": { "country": "ITALY" } }, + { "amountCHF": 7, "condition": { "country": "FOREIGN" } } + ], + "next": "foreign" + }, + + { + "id": "foreign", + "order": 14, + "title": "Redditi o averi all’estero", + "description": "", + "fields": [ + { "key": "hasForeignAssets", "type": "boolean", "required": true }, + { "key": "foreignDescription", "type": "string", "requiredIf": { "hasForeignAssets": true } } + ], + "attachments": ["foreignDocuments"], + "pricing": [ + { "amountCHF": 5, "perAttachment": true } + ], + "next": null + } + ] +} diff --git a/taxorganizer b/taxorganizer deleted file mode 160000 index c7eff53..0000000 --- a/taxorganizer +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c7eff530516180bb7fc3345c52fb8be829454d30 diff --git a/taxserver b/taxserver deleted file mode 160000 index fcb9f98..0000000 --- a/taxserver +++ /dev/null @@ -1 +0,0 @@ -Subproject commit fcb9f986111d7d023308e6b4afba8fb1b34a7720