codice_fiscale 0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/codice_fiscale.rb +199 -0
- data/lib/db/a.db +436 -0
- data/lib/db/b.db +586 -0
- data/lib/db/c.db +1497 -0
- data/lib/db/d.db +107 -0
- data/lib/db/e.db +42 -0
- data/lib/db/ee.db +140 -0
- data/lib/db/f.db +309 -0
- data/lib/db/g.db +358 -0
- data/lib/db/h.db +1 -0
- data/lib/db/i.db +75 -0
- data/lib/db/j.db +11 -0
- data/lib/db/l.db +305 -0
- data/lib/db/m.db +848 -0
- data/lib/db/n.db +130 -0
- data/lib/db/o.db +178 -0
- data/lib/db/p.db +716 -0
- data/lib/db/q.db +31 -0
- data/lib/db/r.db +399 -0
- data/lib/db/s.db +1107 -0
- data/lib/db/t.db +381 -0
- data/lib/db/u.db +36 -0
- data/lib/db/v.db +494 -0
- data/lib/db/z.db +54 -0
- metadata +86 -0
@@ -0,0 +1,199 @@
|
|
1
|
+
#--
|
2
|
+
# Copyleft shura. [shura1991@gmail.com]
|
3
|
+
#
|
4
|
+
# This file is part of codice_fiscale.
|
5
|
+
#
|
6
|
+
# codice_fiscale is free software: you can redistribute it and/or modify
|
7
|
+
# it under the terms of the GNU Affero General Public License as published
|
8
|
+
# by the Free Software Foundation, either version 3 of the License, or
|
9
|
+
# (at your option) any later version.
|
10
|
+
#
|
11
|
+
# codice_fiscale is distributed in the hope that it will be useful,
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
+
# GNU Affero General Public License for more details.
|
15
|
+
#
|
16
|
+
# You should have received a copy of the GNU Affero General Public License
|
17
|
+
# along with codice_fiscale. If not, see <http://www.gnu.org/licenses/>.
|
18
|
+
#++
|
19
|
+
|
20
|
+
class CodiceFiscale < String
|
21
|
+
VERSION = '0.1'
|
22
|
+
|
23
|
+
MONTH = [nil, ?A, ?B, ?C, ?D, ?E, ?H, ?L, ?M, ?P, ?R, ?S, ?T]
|
24
|
+
|
25
|
+
ALFANUM_TO_CODE = {
|
26
|
+
odd: {
|
27
|
+
?0 => 1, ?1 => 0, ?2 => 5, ?3 => 7, ?4 => 9,
|
28
|
+
?5 => 13, ?6 => 15, ?7 => 17, ?8 => 19, ?9 => 21,
|
29
|
+
?A => 1, ?B => 0, ?C => 5, ?D => 7, ?E => 9,
|
30
|
+
?F => 13, ?G => 15, ?H => 17, ?I => 19, ?J => 21,
|
31
|
+
?K => 2, ?L => 4, ?M => 18, ?N => 20, ?O => 11,
|
32
|
+
?P => 3, ?Q => 6, ?R => 8, ?S => 12, ?T => 14,
|
33
|
+
?U => 16, ?V => 10, ?W => 22, ?X => 25,
|
34
|
+
?Y => 24, ?Z => 23
|
35
|
+
},
|
36
|
+
even: {
|
37
|
+
?0 => 0, ?1 => 1, ?2 => 2, ?3 => 3, ?4 => 4,
|
38
|
+
?5 => 5, ?6 => 6, ?7 => 7, ?8 => 8, ?9 => 9,
|
39
|
+
?A => 0, ?B => 1, ?C => 2, ?D => 3, ?E => 4,
|
40
|
+
?F => 5, ?G => 6, ?H => 7, ?I => 8, ?J => 9,
|
41
|
+
?K => 10, ?L => 11, ?M => 12, ?N => 13, ?O => 14,
|
42
|
+
?P => 15, ?Q => 16, ?R => 17, ?S => 18, ?T => 19,
|
43
|
+
?U => 20, ?V => 21, ?W => 22, ?X => 23, ?Y => 24,
|
44
|
+
?Z => 25
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
48
|
+
ALTERNATIVE = {
|
49
|
+
?0 => ?L, ?1 => ?M, ?2 => ?N, ?3 => ?P, ?4 => ?Q,
|
50
|
+
?5 => ?R, ?6 => ?S, ?7 => ?T, ?8 => ?U, ?9 => ?V,
|
51
|
+
0 => ?L, 1 => ?M, 2 => ?N, 3 => ?P, 4 => ?Q,
|
52
|
+
5 => ?R, 6 => ?S, 7 => ?T, 8 => ?U, 9 => ?V
|
53
|
+
}
|
54
|
+
|
55
|
+
DBDIR = File.realpath(File.join(File.dirname(__FILE__), 'db'))
|
56
|
+
|
57
|
+
attr_reader :name, :surname, :bday, :bplace, :gender
|
58
|
+
|
59
|
+
def name?
|
60
|
+
!!@name
|
61
|
+
end
|
62
|
+
|
63
|
+
def surname?
|
64
|
+
!!@surname
|
65
|
+
end
|
66
|
+
|
67
|
+
def bday?
|
68
|
+
!!@bday
|
69
|
+
end
|
70
|
+
|
71
|
+
def bplace?
|
72
|
+
!!@bplace
|
73
|
+
end
|
74
|
+
|
75
|
+
def gender?
|
76
|
+
!!@gender
|
77
|
+
end
|
78
|
+
|
79
|
+
def data?
|
80
|
+
self.name? and self.surname? and self.bday? and self.bplace? and self.gender?
|
81
|
+
end
|
82
|
+
|
83
|
+
def name=(n)
|
84
|
+
@name = n.upcase if n.is_a?(String) and n =~ /^[A-Z]+$/i
|
85
|
+
|
86
|
+
generate_code!
|
87
|
+
end
|
88
|
+
|
89
|
+
def surname=(s)
|
90
|
+
@surname = s.upcase if s.is_a?(String) and s =~ /^[A-Z]+$/i
|
91
|
+
|
92
|
+
generate_code!
|
93
|
+
end
|
94
|
+
|
95
|
+
def bday=(day)
|
96
|
+
@bday = case day
|
97
|
+
when Time
|
98
|
+
{
|
99
|
+
day: day.day,
|
100
|
+
mon: day.mon,
|
101
|
+
year: day.year.to_s[-2, 2].to_i
|
102
|
+
}
|
103
|
+
when String
|
104
|
+
self.bday = Time.new($4, $3, $1) if day =~ /^(\d{1,2})([^\dA-Z])(\d{1,2})\2(\d{2}||\d{4})$/i
|
105
|
+
@bday
|
106
|
+
else @bday
|
107
|
+
end
|
108
|
+
|
109
|
+
generate_code!
|
110
|
+
end
|
111
|
+
|
112
|
+
def bplace=(place)
|
113
|
+
return unless place.is_a?(String)
|
114
|
+
place.strip!
|
115
|
+
place.upcase!
|
116
|
+
if place =~ /^([A-Z']+\s*)+(?:\(([A-Z]{2})\))?$/
|
117
|
+
@bplace = {
|
118
|
+
city: $1.strip,
|
119
|
+
prov: $2
|
120
|
+
}
|
121
|
+
end
|
122
|
+
|
123
|
+
generate_code!
|
124
|
+
end
|
125
|
+
|
126
|
+
def gender=(gen)
|
127
|
+
if gen == :M or gen == :m or gen =~ /^m(ale)?$/i
|
128
|
+
@gender = :M
|
129
|
+
elsif gen == :F or gen == :f or gen =~ /^f(emale)?$/i
|
130
|
+
@gender = :F
|
131
|
+
end
|
132
|
+
|
133
|
+
generate_code!
|
134
|
+
end
|
135
|
+
|
136
|
+
def initialize(options = {})
|
137
|
+
self.name = options[:name]
|
138
|
+
self.surname = options[:surname]
|
139
|
+
self.bday = options[:bday]
|
140
|
+
self.bplace = options[:bplace]
|
141
|
+
self.gender = options[:gender]
|
142
|
+
end
|
143
|
+
|
144
|
+
def generate_code!
|
145
|
+
return unless self.data?
|
146
|
+
code = ""
|
147
|
+
|
148
|
+
# TRIPLET FOR SURNAME
|
149
|
+
code << (self.surname.scan(/[^AEIOU]/).join + self.surname.scan(/[AEIOU]/).join)[0, 3].ljust(3, 'X')
|
150
|
+
|
151
|
+
# TRIPLET FOR NAME
|
152
|
+
cons = self.name.scan(/[^AEIOU]/).join
|
153
|
+
cons << cons[1] && cons[1] = '' if cons.size > 3
|
154
|
+
code << (cons + self.name.scan(/[AEIOU]/).join)[0, 3].ljust(3, 'X')
|
155
|
+
|
156
|
+
# QUINTET FOR BDAY AND GENDER
|
157
|
+
code << self.bday[:year].to_s.rjust(2, '0')
|
158
|
+
code << CodiceFiscale::MONTH[self.bday[:mon]]
|
159
|
+
code << (self.bday[:day] + (self.gender == :F ? 40 : 0)).to_s.rjust(2, '0')
|
160
|
+
|
161
|
+
# QUARTET FOR BPLACE
|
162
|
+
code << self.belfiore_code(self.bplace[:city], self.bplace[:prov])
|
163
|
+
|
164
|
+
# CONTROL CODE
|
165
|
+
sum = 0
|
166
|
+
code.split(//).each_with_index {|ch, i|
|
167
|
+
sum += ALFANUM_TO_CODE[i.odd? ? :even : :odd][ch]
|
168
|
+
}
|
169
|
+
code << ((sum % 26) + 65).chr
|
170
|
+
|
171
|
+
self.replace(code)
|
172
|
+
end
|
173
|
+
|
174
|
+
def belfiore_code(city, province = nil)
|
175
|
+
code = nil
|
176
|
+
File.open(File.join(DBDIR, (province and province == 'EE' ? 'ee.db' : "#{city[0].downcase}.db"))) {|f|
|
177
|
+
f.each_line {|line|
|
178
|
+
co, c, p = line.strip.split(';')
|
179
|
+
code = co.dup and break if c == city and (province and province != 'EE' ? p == province : true)
|
180
|
+
}
|
181
|
+
}
|
182
|
+
|
183
|
+
code
|
184
|
+
end
|
185
|
+
|
186
|
+
def alternative(level = 1)
|
187
|
+
code = self.dup
|
188
|
+
code.scan(/[0-9]/).reverse[0, level].each {|n|
|
189
|
+
i = code.rindex(n)
|
190
|
+
code[i] = ALTERNATIVE[code[i]]
|
191
|
+
}
|
192
|
+
|
193
|
+
code
|
194
|
+
end
|
195
|
+
|
196
|
+
def alternative!(level = 1)
|
197
|
+
self.replace(self.alternative(level))
|
198
|
+
end
|
199
|
+
end
|
data/lib/db/a.db
ADDED
@@ -0,0 +1,436 @@
|
|
1
|
+
A001;ABANO;TE
|
2
|
+
A004;ABBADIA;CE
|
3
|
+
A005;ABBADIA;LA
|
4
|
+
A006;ABBADIA;SA
|
5
|
+
A007;ABBASANTA;OR
|
6
|
+
A008;ABBATEGGIO;PE
|
7
|
+
A010;ABBIATEGRASSO;MI
|
8
|
+
A012;ABETONE;PT
|
9
|
+
A013;ABRIOLA;PZ
|
10
|
+
A014;ACATE;RG
|
11
|
+
A015;ACCADIA;FG
|
12
|
+
A016;ACCEGLIO;CN
|
13
|
+
A017;ACCETTURA;MT
|
14
|
+
A018;ACCIANO;AQ
|
15
|
+
A019;ACCUMOLI;RI
|
16
|
+
A020;ACERENZA;PZ
|
17
|
+
A023;ACERNO;SA
|
18
|
+
A024;ACERRA;NA
|
19
|
+
A025;ACI;BO
|
20
|
+
A026;ACI;CA
|
21
|
+
A027;ACI;CA
|
22
|
+
A029;ACI;SA
|
23
|
+
A028;ACIREALE;CT
|
24
|
+
A031;ACQUACANINA;MC
|
25
|
+
A032;ACQUAFONDATA;FR
|
26
|
+
A033;ACQUAFORMOSA;CS
|
27
|
+
A034;ACQUAFREDDA;BS
|
28
|
+
A035;ACQUALAGNA;PU
|
29
|
+
A039;ACQUANEGRA;CR
|
30
|
+
A038;ACQUANEGRA;SU
|
31
|
+
A040;ACQUAPENDENTE;VT
|
32
|
+
A041;ACQUAPPESA;CS
|
33
|
+
A042;ACQUARICA;DE
|
34
|
+
A043;ACQUARO;VV
|
35
|
+
A044;ACQUASANTA;TE
|
36
|
+
A045;ACQUASPARTA;TR
|
37
|
+
A050;ACQUAVIVA;CO
|
38
|
+
A048;ACQUAVIVA;DE
|
39
|
+
A051;ACQUAVIVA D'ISERNIA;IS
|
40
|
+
A047;ACQUAVIVA;PI
|
41
|
+
A049;ACQUAVIVA;PL
|
42
|
+
M211;ACQUEDOLCI;ME
|
43
|
+
A052;ACQUI;TE
|
44
|
+
A053;ACRI;CS
|
45
|
+
A054;ACUTO;FR
|
46
|
+
A055;ADELFIA;BA
|
47
|
+
A056;ADRANO;CT
|
48
|
+
A057;ADRARA;SA
|
49
|
+
A058;ADRARA;SA
|
50
|
+
A059;ADRIA;RO
|
51
|
+
A060;ADRO;BS
|
52
|
+
A061;AFFI;VR
|
53
|
+
A062;AFFILE;RM
|
54
|
+
A064;AFRAGOLA;NA
|
55
|
+
A065;AFRICO;RC
|
56
|
+
A067;AGAZZANO;PC
|
57
|
+
A068;AGEROLA;NA
|
58
|
+
A069;AGGIUS;SS
|
59
|
+
A070;AGIRA;EN
|
60
|
+
A071;AGLIANA;PT
|
61
|
+
A072;AGLIANO;TE
|
62
|
+
A074;AGLIE';TO
|
63
|
+
H848;AGLIENTU;SS
|
64
|
+
A075;AGNA;PD
|
65
|
+
A076;AGNADELLO;CR
|
66
|
+
A077;AGNANA;CA
|
67
|
+
A080;AGNONE;IS
|
68
|
+
A082;AGNOSINE;BS
|
69
|
+
A083;AGORDO;BL
|
70
|
+
A084;AGOSTA;RM
|
71
|
+
A085;AGRA;VA
|
72
|
+
A087;AGRATE;BR
|
73
|
+
A088;AGRATE;CO
|
74
|
+
A089;AGRIGENTO;AG
|
75
|
+
A091;AGROPOLI;SA
|
76
|
+
A092;AGUGLIANO;AN
|
77
|
+
A093;AGUGLIARO;VI
|
78
|
+
A096;AICURZIO;MI
|
79
|
+
A097;AIDOMAGGIORE;OR
|
80
|
+
A098;AIDONE;EN
|
81
|
+
A100;AIELLI;AQ
|
82
|
+
A102;AIELLO;CA
|
83
|
+
A103;AIELLO;DE
|
84
|
+
A101;AIELLO;DE
|
85
|
+
A105;AIETA;CS
|
86
|
+
A106;AILANO;CE
|
87
|
+
A107;AILOCHE;BI
|
88
|
+
A109;AIRASCA;TO
|
89
|
+
A110;AIROLA;BN
|
90
|
+
A111;AIROLE;IM
|
91
|
+
A112;AIRUNO;LC
|
92
|
+
A113;AISONE;CN
|
93
|
+
A116;ALA;TN
|
94
|
+
A115;ALA';DE
|
95
|
+
A117;ALA;DI
|
96
|
+
A118;ALAGNA;PV
|
97
|
+
A119;ALAGNA;VA
|
98
|
+
A120;ALANNO;PE
|
99
|
+
A121;ALANO;DI
|
100
|
+
A122;ALASSIO;SV
|
101
|
+
A123;ALATRI;FR
|
102
|
+
A124;ALBA;CN
|
103
|
+
A125;ALBA;AD
|
104
|
+
A126;ALBAGIARA;OR
|
105
|
+
A127;ALBAIRATE;MI
|
106
|
+
A128;ALBANELLA;SA
|
107
|
+
A131;ALBANO;DI
|
108
|
+
A132;ALBANO;LA
|
109
|
+
A129;ALBANO;SA
|
110
|
+
A130;ALBANO;VE
|
111
|
+
A134;ALBAREDO;AR
|
112
|
+
A137;ALBAREDO D'ADIGE;VR
|
113
|
+
A135;ALBAREDO;PE
|
114
|
+
A138;ALBARETO;PR
|
115
|
+
A139;ALBARETTO;DE
|
116
|
+
A143;ALBAVILLA;CO
|
117
|
+
A145;ALBENGA;SV
|
118
|
+
A146;ALBERA;LI
|
119
|
+
A149;ALBEROBELLO;BA
|
120
|
+
A150;ALBERONA;FG
|
121
|
+
A153;ALBESE;CO
|
122
|
+
A154;ALBETTONE;VI
|
123
|
+
A155;ALBI;CZ
|
124
|
+
A158;ALBIANO;TN
|
125
|
+
A157;ALBIANO D'IVREA;TO
|
126
|
+
A159;ALBIATE;MI
|
127
|
+
A160;ALBIDONA;CS
|
128
|
+
A161;ALBIGNASEGO;PD
|
129
|
+
A162;ALBINEA;RE
|
130
|
+
A163;ALBINO;BG
|
131
|
+
A164;ALBIOLO;CO
|
132
|
+
A166;ALBISOLA;SU
|
133
|
+
A165;ALBISSOLA;MA
|
134
|
+
A167;ALBIZZATE;VA
|
135
|
+
A171;ALBONESE;PV
|
136
|
+
A172;ALBOSAGGIA;SO
|
137
|
+
A173;ALBUGNANO;AT
|
138
|
+
A175;ALBUZZANO;PV
|
139
|
+
A176;ALCAMO;TP
|
140
|
+
A177;ALCARA;LI
|
141
|
+
A178;ALDENO;TN
|
142
|
+
A179;ALDINO .ALDEIN.;BZ
|
143
|
+
A180;ALES;OR
|
144
|
+
A182;ALESSANDRIA;AL
|
145
|
+
A183;ALESSANDRIA;DE
|
146
|
+
A181;ALESSANDRIA;DE
|
147
|
+
A184;ALESSANO;LE
|
148
|
+
A185;ALEZIO;LE
|
149
|
+
A186;ALFANO;SA
|
150
|
+
A187;ALFEDENA;AQ
|
151
|
+
A188;ALFIANELLO;BS
|
152
|
+
A189;ALFIANO;NA
|
153
|
+
A191;ALFONSINE;RA
|
154
|
+
A192;ALGHERO;SS
|
155
|
+
A193;ALGUA;BG
|
156
|
+
A194;ALI';ME
|
157
|
+
A201;ALI';TE
|
158
|
+
A195;ALIA;PA
|
159
|
+
A196;ALIANO;MT
|
160
|
+
A197;ALICE;BE
|
161
|
+
A198;ALICE;CA
|
162
|
+
A199;ALICE;SU
|
163
|
+
A200;ALIFE;CE
|
164
|
+
A202;ALIMENA;PA
|
165
|
+
A203;ALIMINUSA;PA
|
166
|
+
A204;ALLAI;OR
|
167
|
+
A206;ALLEGHE;BL
|
168
|
+
A205;ALLEIN;AO
|
169
|
+
A207;ALLERONA;TR
|
170
|
+
A208;ALLISTE;LE
|
171
|
+
A210;ALLUMIERE;RM
|
172
|
+
A211;ALLUVIONI;CA
|
173
|
+
A214;ALME';BG
|
174
|
+
A216;ALMENNO;SA
|
175
|
+
A217;ALMENNO;SA
|
176
|
+
A218;ALMESE;TO
|
177
|
+
A220;ALONTE;VI
|
178
|
+
A221;ALPETTE;TO
|
179
|
+
A222;ALPIGNANO;TO
|
180
|
+
A223;ALSENO;PC
|
181
|
+
A224;ALSERIO;CO
|
182
|
+
A225;ALTAMURA;BA
|
183
|
+
A226;ALTARE;SV
|
184
|
+
A228;ALTAVILLA;IR
|
185
|
+
A229;ALTAVILLA;MI
|
186
|
+
A227;ALTAVILLA;MO
|
187
|
+
A230;ALTAVILLA;SI
|
188
|
+
A231;ALTAVILLA;VI
|
189
|
+
A233;ALTIDONA;AP
|
190
|
+
A234;ALTILIA;CS
|
191
|
+
A235;ALTINO;CH
|
192
|
+
A236;ALTISSIMO;VI
|
193
|
+
A237;ALTIVOLE;TV
|
194
|
+
A238;ALTO;CN
|
195
|
+
A239;ALTOFONTE;PA
|
196
|
+
A240;ALTOMONTE;CS
|
197
|
+
A241;ALTOPASCIO;LU
|
198
|
+
A242;ALVIANO;TR
|
199
|
+
A243;ALVIGNANO;CE
|
200
|
+
A244;ALVITO;FR
|
201
|
+
A246;ALZANO;LO
|
202
|
+
A245;ALZANO;SC
|
203
|
+
A249;ALZATE;BR
|
204
|
+
A251;AMALFI;SA
|
205
|
+
A252;AMANDOLA;AP
|
206
|
+
A253;AMANTEA;CS
|
207
|
+
A254;AMARO;UD
|
208
|
+
A255;AMARONI;CZ
|
209
|
+
A256;AMASENO;FR
|
210
|
+
A257;AMATO;CZ
|
211
|
+
A258;AMATRICE;RI
|
212
|
+
A259;AMBIVERE;BG
|
213
|
+
A260;AMBLAR;TN
|
214
|
+
A261;AMEGLIA;SP
|
215
|
+
A262;AMELIA;TR
|
216
|
+
A263;AMENDOLARA;CS
|
217
|
+
A264;AMENO;NO
|
218
|
+
A265;AMOROSI;BN
|
219
|
+
A267;AMPEZZO;UD
|
220
|
+
A268;ANACAPRI;NA
|
221
|
+
A269;ANAGNI;FR
|
222
|
+
A270;ANCARANO;TE
|
223
|
+
A271;ANCONA;AN
|
224
|
+
A272;ANDALI;CZ
|
225
|
+
A274;ANDALO;TN
|
226
|
+
A273;ANDALO;VA
|
227
|
+
A275;ANDEZENO;TO
|
228
|
+
A278;ANDORA;SV
|
229
|
+
A280;ANDORNO;MI
|
230
|
+
A281;ANDRANO;LE
|
231
|
+
A282;ANDRATE;TO
|
232
|
+
A283;ANDREIS;PN
|
233
|
+
A284;ANDRETTA;AV
|
234
|
+
A285;ANDRIA;BA
|
235
|
+
A286;ANDRIANO .ANDRIAN.;BZ
|
236
|
+
A287;ANELA;SS
|
237
|
+
A288;ANFO;BS
|
238
|
+
A290;ANGERA;VA
|
239
|
+
A291;ANGHIARI;AR
|
240
|
+
A292;ANGIARI;VR
|
241
|
+
A293;ANGOLO;TE
|
242
|
+
A294;ANGRI;SA
|
243
|
+
A295;ANGROGNA;TO
|
244
|
+
A297;ANGUILLARA;SA
|
245
|
+
A296;ANGUILLARA;VE
|
246
|
+
A299;ANNICCO;CR
|
247
|
+
A301;ANNONE;DI
|
248
|
+
A302;ANNONE;VE
|
249
|
+
A303;ANOIA;RC
|
250
|
+
A304;ANTEGNATE;BG
|
251
|
+
A306;ANTERIVO .ALTREI.;BZ
|
252
|
+
A305;ANTEY-SAINT-ANDRE';AO
|
253
|
+
A309;ANTICOLI;CO
|
254
|
+
A312;ANTIGNANO;AT
|
255
|
+
A313;ANTILLO;ME
|
256
|
+
A314;ANTONIMINA;RC
|
257
|
+
A315;ANTRODOCO;RI
|
258
|
+
A317;ANTRONA;SC
|
259
|
+
A318;ANVERSA;DE
|
260
|
+
A319;ANZANO;DE
|
261
|
+
A320;ANZANO;DI
|
262
|
+
A321;ANZI;PZ
|
263
|
+
A323;ANZIO;RM
|
264
|
+
A324;ANZOLA;DE
|
265
|
+
A325;ANZOLA D'OSSOLA;VB
|
266
|
+
A326;AOSTA;AO
|
267
|
+
A327;APECCHIO;PU
|
268
|
+
A328;APICE;BN
|
269
|
+
A329;APIRO;MC
|
270
|
+
A330;APOLLOSA;BN
|
271
|
+
A333;APPIANO;GE
|
272
|
+
A332;APPIANO;SU
|
273
|
+
A334;APPIGNANO;MC
|
274
|
+
A335;APPIGNANO;DE
|
275
|
+
A337;APRICA;SO
|
276
|
+
A338;APRICALE;IM
|
277
|
+
A339;APRICENA;FG
|
278
|
+
A340;APRIGLIANO;CS
|
279
|
+
A341;APRILIA;LT
|
280
|
+
A343;AQUARA;SA
|
281
|
+
A344;AQUILA D'ARROSCIA;IM
|
282
|
+
A346;AQUILEIA;UD
|
283
|
+
A347;AQUILONIA;AV
|
284
|
+
A348;AQUINO;FR
|
285
|
+
A350;ARADEO;LE
|
286
|
+
A351;ARAGONA;AG
|
287
|
+
A352;ARAMENGO;AT
|
288
|
+
A354;ARBA;PN
|
289
|
+
A357;ARBOREA;OR
|
290
|
+
A358;ARBORIO;VC
|
291
|
+
A359;ARBUS;CA
|
292
|
+
A360;ARCADE;TV
|
293
|
+
A363;ARCE;FR
|
294
|
+
A365;ARCENE;BG
|
295
|
+
A366;ARCEVIA;AN
|
296
|
+
A367;ARCHI;CH
|
297
|
+
A369;ARCIDOSSO;GR
|
298
|
+
A370;ARCINAZZO;RO
|
299
|
+
A371;ARCISATE;VA
|
300
|
+
A372;ARCO;TN
|
301
|
+
A373;ARCOLA;SP
|
302
|
+
A374;ARCOLE;VR
|
303
|
+
A375;ARCONATE;MI
|
304
|
+
A376;ARCORE;MI
|
305
|
+
A377;ARCUGNANO;VI
|
306
|
+
A379;ARDARA;SS
|
307
|
+
A380;ARDAULI;OR
|
308
|
+
M213;ARDEA;RM
|
309
|
+
A382;ARDENNO;SO
|
310
|
+
A383;ARDESIO;BG
|
311
|
+
A385;ARDORE;RC
|
312
|
+
A386;ARENA;VV
|
313
|
+
A387;ARENA;PO
|
314
|
+
A388;ARENZANO;GE
|
315
|
+
A389;ARESE;MI
|
316
|
+
A390;AREZZO;AR
|
317
|
+
A391;ARGEGNO;CO
|
318
|
+
A392;ARGELATO;BO
|
319
|
+
A393;ARGENTA;FE
|
320
|
+
A394;ARGENTERA;CN
|
321
|
+
A396;ARGUELLO;CN
|
322
|
+
A397;ARGUSTO;CZ
|
323
|
+
A398;ARI;CH
|
324
|
+
A399;ARIANO;IR
|
325
|
+
A400;ARIANO;NE
|
326
|
+
A401;ARICCIA;RM
|
327
|
+
A402;ARIELLI;CH
|
328
|
+
A403;ARIENZO;CE
|
329
|
+
A405;ARIGNANO;TO
|
330
|
+
A407;ARITZO;NU
|
331
|
+
A409;ARIZZANO;VB
|
332
|
+
A412;ARLENA;DI
|
333
|
+
A413;ARLUNO;MI
|
334
|
+
A414;ARMENO;NO
|
335
|
+
A415;ARMENTO;PZ
|
336
|
+
A418;ARMO;IM
|
337
|
+
A419;ARMUNGIA;CA
|
338
|
+
A424;ARNAD;AO
|
339
|
+
A421;ARNARA;FR
|
340
|
+
A422;ARNASCO;SV
|
341
|
+
A425;ARNESANO;LE
|
342
|
+
A427;AROLA;VB
|
343
|
+
A429;ARONA;NO
|
344
|
+
A430;AROSIO;CO
|
345
|
+
A431;ARPAIA;BN
|
346
|
+
A432;ARPAISE;BN
|
347
|
+
A433;ARPINO;FR
|
348
|
+
A434;ARQUA';PE
|
349
|
+
A435;ARQUA';PO
|
350
|
+
A437;ARQUATA;DE
|
351
|
+
A436;ARQUATA;SC
|
352
|
+
A438;ARRE;PD
|
353
|
+
A439;ARRONE;TR
|
354
|
+
A441;ARSAGO;SE
|
355
|
+
A443;ARSIE';BL
|
356
|
+
A444;ARSIERO;VI
|
357
|
+
A445;ARSITA;TE
|
358
|
+
A446;ARSOLI;RM
|
359
|
+
A447;ARTA;TE
|
360
|
+
A448;ARTEGNA;UD
|
361
|
+
A449;ARTENA;RM
|
362
|
+
A451;ARTOGNE;BS
|
363
|
+
A452;ARVIER;AO
|
364
|
+
A453;ARZACHENA;SS
|
365
|
+
A440;ARZAGO D'ADDA;BG
|
366
|
+
A454;ARZANA;NU
|
367
|
+
A455;ARZANO;NA
|
368
|
+
A456;ARZENE;PN
|
369
|
+
A458;ARZERGRANDE;PD
|
370
|
+
A459;ARZIGNANO;VI
|
371
|
+
A460;ASCEA;SA
|
372
|
+
A461;ASCIANO;SI
|
373
|
+
A462;ASCOLI;PI
|
374
|
+
A463;ASCOLI;SA
|
375
|
+
A464;ASCREA;RI
|
376
|
+
A465;ASIAGO;VI
|
377
|
+
A467;ASIGLIANO;VE
|
378
|
+
A466;ASIGLIANO;VE
|
379
|
+
A470;ASOLA;MN
|
380
|
+
A471;ASOLO;TV
|
381
|
+
A473;ASSAGO;MI
|
382
|
+
A474;ASSEMINI;CA
|
383
|
+
A475;ASSISI;PG
|
384
|
+
A476;ASSO;CO
|
385
|
+
A477;ASSOLO;OR
|
386
|
+
A478;ASSORO;EN
|
387
|
+
A479;ASTI;AT
|
388
|
+
A480;ASUNI;OR
|
389
|
+
A481;ATELETA;AQ
|
390
|
+
A482;ATELLA;PZ
|
391
|
+
A484;ATENA;LU
|
392
|
+
A485;ATESSA;CH
|
393
|
+
A486;ATINA;FR
|
394
|
+
A487;ATRANI;SA
|
395
|
+
A488;ATRI;TE
|
396
|
+
A489;ATRIPALDA;AV
|
397
|
+
A490;ATTIGLIANO;TR
|
398
|
+
A491;ATTIMIS;UD
|
399
|
+
A492;ATZARA;NU
|
400
|
+
A493;AUDITORE;PU
|
401
|
+
A494;AUGUSTA;SR
|
402
|
+
A495;AULETTA;SA
|
403
|
+
A496;AULLA;MS
|
404
|
+
A497;AURANO;VB
|
405
|
+
A499;AURIGO;IM
|
406
|
+
A501;AURONZO;DI
|
407
|
+
A502;AUSONIA;FR
|
408
|
+
A503;AUSTIS;NU
|
409
|
+
A506;AVEGNO;GE
|
410
|
+
A507;AVELENGO .HAFLING.;BZ
|
411
|
+
A508;AVELLA;AV
|
412
|
+
A509;AVELLINO;AV
|
413
|
+
A511;AVERARA;BG
|
414
|
+
A512;AVERSA;CE
|
415
|
+
A514;AVETRANA;TA
|
416
|
+
A515;AVEZZANO;AQ
|
417
|
+
A516;AVIANO;PN
|
418
|
+
A517;AVIATICO;BG
|
419
|
+
A518;AVIGLIANA;TO
|
420
|
+
A519;AVIGLIANO;PZ
|
421
|
+
M258;AVIGLIANO;UM
|
422
|
+
A520;AVIO;TN
|
423
|
+
A521;AVISE;AO
|
424
|
+
A522;AVOLA;SR
|
425
|
+
A523;AVOLASCA;AL
|
426
|
+
A094;AYAS;AO
|
427
|
+
A108;AYMAVILLES;AO
|
428
|
+
A525;AZEGLIO;TO
|
429
|
+
A526;AZZANELLO;CR
|
430
|
+
A527;AZZANO D'ASTI;AT
|
431
|
+
A530;AZZANO;DE
|
432
|
+
A529;AZZANO;ME
|
433
|
+
A528;AZZANO;SA
|
434
|
+
A531;AZZATE;VA
|
435
|
+
A532;AZZIO;VA
|
436
|
+
A533;AZZONE;BG
|