Sifa Zilizohesabiwa katika JavaScript
Wakati wa kutangaza kitu majina ya sifa zake yaweza kuchukuliwa kutoka kwa anuwai. Sifa kama hizo huitwa sifa zilizohesabiwa. Tuangalie jinsi hii inafanyika. Tuchukulie tuna kitu kifuatacho:
let obj = {
a: 1,
b: 2,
c: 3
};
Tuchukulie jina la sifa fulani linahifadhiwa katika anuwai:
let key = 'a';
Wacha tufanye iweze badala ya jina la sifa lichukuliwe thamani kutoka kwa anuwai yetu. Ili kufanya hivyo anuwai inapaswa kuchukuliwa kwenye mabano mraba :
let obj = {
[key]: 1,
b: 2,
c: 3
};
Wakati wa kutangaza sifa zilizohesabiwa zinaweza kutekeleza baadhi ya msimbo. Mfano:
let obj = {
[key + '1']: 1,
[key + '2']: 2,
[key + '3']: 3
};
Katika msimbo unaofuata ufunguo ungepaswa kuchukuliwa kutoka kwa anuwai. Sahihisha kosa lililofanyika:
let key = 'x';
let obj = {
key: 1,
y: 2,
z: 3
};
Kimetolewa kitu:
let obj = {
x: 1,
y: 2,
z: 3
};
Zimetolewa anuwai:
let key1 = 'x';
let key2 = 'y';
let key3 = 'z';
Fanya iweze vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile vile