Az internetes kommunikáció gerincét képező e-mailek mindennapi életünk, üzleti tranzakcióink és személyes kapcsolataink elengedhetetlen részét képezik. Azonban az e-mail alapvető protokolljai, mint az SMTP, eredetileg nem a mai szintű biztonsági fenyegetésekre lettek tervezve. Ez a sebezhetőség tette lehetővé a kiberbűnözők számára, hogy visszaéljenek az e-mail rendszerrel, például adathalászat, levélszemét (spam) terjesztése és domain-hamisítás (spoofing) révén. A digitális térben a bizalom alapvető érték, és az e-mail küldőjének hitelességének garantálása kulcsfontosságúvá vált a kiberbiztonsági stratégia részeként.
Ezen kihívásokra válaszul születtek meg az e-mail hitelesítési protokollok, amelyek célja a küldő azonosítása, az üzenet integritásának biztosítása és a hamisított e-mailek kiszűrése. A DKIM (DomainKeys Identified Mail) egyike ezeknek a protokolloknak, amely egy kifinomult kriptográfiai mechanizmust alkalmaz az e-mail üzenetek hitelességének ellenőrzésére. A DKIM nem csupán egy technikai megoldás; egy olyan bizalmi réteget ad az e-mail kommunikációhoz, amely nélkülözhetetlen a modern digitális ökoszisztémában.
Célja, hogy megakadályozza a spammerek és adathalászok által elkövetett visszaéléseket, akik gyakran hamisítják a küldő címét, hogy megtévesztő üzeneteket juttassanak el a címzettekhez. A DKIM egy digitális aláírást ad az e-mailhez, amely lehetővé teszi a fogadó szerver számára, hogy ellenőrizze, az üzenet valóban a feltüntetett domainről érkezett-e, és sértetlenül jutott-e el hozzá. Ez a mechanizmus jelentősen hozzájárul az e-mail kézbesíthetőségének javításához és a felhasználók védelméhez a káros tartalmaktól.
Mi is az a DKIM? A protokoll alapvető definíciója
A DKIM (DomainKeys Identified Mail) egy olyan technikai szabvány, amely lehetővé teszi az e-mail üzenetek digitális aláírását, ezzel biztosítva azok hitelességét és integritását. Lényegében egy módszer arra, hogy a küldő domainje kriptográfiailag megerősítse, hogy egy adott e-mailt valóban ő küldött, és az üzenet tartalma nem módosult a továbbítás során.
A protokoll az RFC 6376 szabványban van definiálva, és alapvetően a nyilvános kulcsú kriptográfia elvén működik. Ez azt jelenti, hogy minden DKIM-et használó domain rendelkezik egy kulcspárral: egy privát és egy publikus kulccsal. A privát kulcsot a küldő szerver biztonságosan tárolja és használja az e-mailek aláírására, míg a publikus kulcsot nyilvánosan hozzáférhetővé teszi a DNS (Domain Name System) rekordokon keresztül.
Amikor egy e-mailt küldenek, a küldő szerver a privát kulcsával digitálisan aláírja az üzenet bizonyos részeit (általában a fejlécet és a törzset). Ez az aláírás egy titkosított „pecsét”, amely az e-mailhez csatolódik. Amikor a fogadó e-mail szerver megkapja az üzenetet, lekéri a küldő domainjének publikus kulcsát a DNS-ből, és ennek segítségével ellenőrzi az aláírást. Ha az aláírás érvényes, az azt jelenti, hogy az e-mail valóban a megadott domainről származik, és nem módosították a továbbítás során. Ha az aláírás érvénytelen, az üzenet gyanússá válik, és spamként vagy adathalász kísérletként kezelhető.
A DKIM tehát egy bizalmi mechanizmus, amely segít a spam szűrőknek és a levelezőrendszereknek eldönteni, hogy egy beérkező e-mail megbízható-e. Növeli az e-mail kézbesíthetőségét, csökkenti a spam arányát a bejövő postafiókokban, és védi a felhasználókat a hamisított üzenetektől. Bár önmagában nem old meg minden e-mail biztonsági problémát, a többi hitelesítési protokollal, mint az SPF és a DMARC, együttműködve rendkívül hatékony védelmi vonalat képez.
Hogyan működik a DKIM? A digitális aláírás anatómiája
A DKIM működésének megértéséhez elengedhetetlen a digitális aláírás folyamatának részletes áttekintése. Ez a folyamat több lépésből áll, amelyek mind a küldő, mind a fogadó oldalon kulcsfontosságúak az e-mail hitelességének biztosításában.
A kulcspárok szerepe: privát és publikus kulcs
A DKIM alapja a nyilvános kulcsú kriptográfia, amely két egymással matematikailag összefüggő kulcsot használ: egy privát kulcsot és egy publikus kulcsot. A privát kulcsot, ahogy a neve is sugallja, titokban kell tartani, és csak a küldő szerver férhet hozzá. Ezzel a kulccsal történik az e-mail digitális aláírása. A publikus kulcs ezzel szemben nyilvánosan elérhető, és a DNS rendszerben van közzétéve. Ezt a kulcsot használják a fogadó szerverek az aláírás ellenőrzésére.
Amikor egy domain beállítja a DKIM-et, először is generálnia kell egy ilyen kulcspárt. A privát kulcsot általában egy hosszú, véletlenszerű karaktersorozat képzi, míg a publikus kulcs egy hasonlóan komplex, de a privát kulcshoz egyedileg kapcsolódó érték. A kulcsok biztonságos kezelése kiemelten fontos; a privát kulcs kompromittálása lehetővé tenné a támadó számára, hogy a domain nevében hamisított e-maileket küldjön.
Fejléc kanonizáció
Az e-mail aláírása előtt a DKIM protokollnak gondoskodnia kell arról, hogy az üzenet bizonyos részei standardizált formában legyenek. Ezt hívják kanonizációnak. A fejléc kanonizációja azt jelenti, hogy az e-mail fejlécében található mezőket (pl. From, To, Subject, Date) egy meghatározott szabályrendszer szerint normalizálják, mielőtt azokat az aláírási folyamatba bevonják. Ennek célja, hogy elkerüljék azokat az apró, de potenciálisan aláírás-érvénytelenítő módosításokat, amelyek az üzenet továbbítása során keletkezhetnek (pl. extra szóközök, sorvégi karakterek).
A DKIM két kanonizációs algoritmust definiál a fejléc számára: „simple” (egyszerű) és „relaxed” (laza).
A simple kanonizáció nagyon szigorú: minden apró módosítás a fejlécben (pl. extra szóközök, sorvégi karakterek) érvényteleníti az aláírást. Ez a legbiztonságosabb, de kevésbé toleráns a hálózati „zajjal” szemben.
A relaxed kanonizáció rugalmasabb: figyelmen kívül hagy bizonyos módosításokat, például a felesleges szóközöket, a fejléc mezők sorrendjét, vagy a nagy- és kisbetűk közötti különbséget a fejlécnevekben. Ez a gyakorlatban gyakrabban használt, mivel jobban tolerálja a továbbítás során esetlegesen bekövetkező apró változásokat anélkül, hogy érvénytelenítené az aláírást.
Törzs kanonizáció
Hasonlóan a fejléc kanonizációhoz, az e-mail törzsét is normalizálni kell az aláírás előtt. A törzs kanonizációja biztosítja, hogy az üzenet tartalmában bekövetkező apró, de jelentéktelen változások (pl. sorvégi karakterek, üres sorok hozzáadása) ne érvénytelenítsék az aláírást. Ennek célja, hogy az e-mail tartalmának integritását akkor is ellenőrizni lehessen, ha az átvitel során minimális, funkcionálisan irreleváns módosítások történnek.
A törzs kanonizációjára is létezik a „simple” és a „relaxed” algoritmus:
A simple törzs kanonizáció rendkívül szigorú: bármilyen változás a törzsben (beleértve az üres sorokat a végén) érvényteleníti az aláírást.
A relaxed törzs kanonizáció kevésbé szigorú: ignorálja a felesleges szóközöket a sorok végén, az üres sorokat az üzenet végén, és normalizálja a sorvégi karaktereket. Ez a gyakoribb választás, mivel az e-mailek gyakran átmennek különböző szervereken, amelyek apró módosításokat végezhetnek a formázáson anélkül, hogy a tartalom érdemben változna.
Az aláírás generálása
Miután a fejléc és a törzs kanonizálásra került a kiválasztott algoritmusok szerint, a következő lépés az aláírás generálása. A küldő e-mail szerver egy hash algoritmust (pl. SHA-256) alkalmaz a kanonizált fejléc és törzs kombinált adatain. A hash eredménye egy fix hosszúságú karakterlánc, egyfajta „ujjlenyomat” az üzenetről.
Ezt a hash értéket ezután a küldő domainjének privát kulcsával titkosítják. Az így kapott titkosított hash az digitális aláírás. Ez a folyamat biztosítja, hogy az aláírást csak az a fél hozhatta létre, aki rendelkezik a privát kulccsal, és hogy az aláírás egyedi az adott üzenetre nézve.
Az aláírás hozzáadása az e-mailhez
Az elkészült digitális aláírást egy speciális fejléc mezőbe, a DKIM-Signature
mezőbe illesztik be, mielőtt az e-mail elhagyja a küldő szervert. Ez a fejléc mező tartalmazza magát az aláírást (b=
tag), valamint számos paramétert, amelyek szükségesek az aláírás ellenőrzéséhez. Ezek a paraméterek a következők:
v
: A DKIM protokoll verziója (jelenleg mindig 1).a
: Az aláíráshoz használt algoritmus (pl. rsa-sha256).c
: A kanonizációs algoritmusok (pl. relaxed/simple).d
: Az aláíró domain (a küldő domainje).s
: A selector, amely a DNS-ben található publikus kulcs azonosítására szolgál.h
: Az aláírt fejléc mezők listája (pl. From, To, Subject, Date).bh
: A törzs hash-e (body hash).b
: Maga a digitális aláírás.t
: Az aláírás időbélyege (timestamp).x
: Az aláírás lejárati ideje (opcionális).l
: Az aláírt törzs hossza (opcionális, a teljes törzs helyett csak egy részét írja alá).z
: Az eredeti fejléc mezők másolata, mielőtt azok kanonizálásra kerültek (hibakereséshez).
Ez a DKIM-Signature
fejléc mező az e-mail többi fejlécével együtt kerül elküldésre a címzett felé. A fogadó szerver ezeket az információkat használja fel az aláírás ellenőrzéséhez.
A DKIM kulcsok gondos kezelése és a kanonizációs beállítások helyes megválasztása alapvető fontosságú a sikeres e-mail hitelesítéshez és a kézbesíthetőség maximalizálásához.
A DKIM ellenőrzési folyamata: validáció lépésről lépésre
Miután az aláírt e-mail megérkezett a fogadó levelezőszerverre, megkezdődik az ellenőrzési folyamat, amely biztosítja az üzenet hitelességét és integritását. Ez a folyamat a következő kulcsfontosságú lépésekből áll:
DNS lekérdezés: a publikus kulcs és a selector
Amikor a fogadó levelezőszerver megkap egy DKIM aláírással ellátott e-mailt, először megvizsgálja a DKIM-Signature
fejléc mezőt. Ebből a mezőből kiolvassa a d=
(aláíró domain) és az s=
(selector) paramétereket. Ezek az információk elengedhetetlenek a megfelelő publikus kulcs megtalálásához a DNS-ben.
A selector egy tetszőlegesen választott karakterlánc, amelyet a küldő domain határoz meg a DKIM kulcspár generálásakor. Célja, hogy egy domain több DKIM kulcspárt is használhasson egyszerre (pl. különböző szolgáltatásokhoz, vagy kulcsrotáció során). A fogadó szerver ezután egy speciális DNS lekérdezést indít a következő formában: selector._domainkey.domain.com
(ahol a „domain.com” az aláíró domain). Például, ha a selector „default” és a domain „example.com”, a lekérdezés a default._domainkey.example.com
címre irányul.
Ennek a DNS bejegyzésnek egy TXT rekordnak kell lennie, amely tartalmazza a domain publikus kulcsát és egyéb releváns DKIM paramétereket. Ha a DNS lekérdezés sikertelen, vagy nem talál érvényes DKIM rekordot, az ellenőrzés azonnal sikertelennek minősül.
Publikus kulcs lekérése és az aláírás ellenőrzése
Amennyiben a DNS lekérdezés sikeres volt, a fogadó szerver megkapja a TXT rekordból a küldő domainjének publikus kulcsát (a p=
tag értéke). Ezzel a kulccsal és a DKIM-Signature
fejlécben található egyéb paraméterekkel (kanonizációs algoritmusok, aláírt fejlécek listája, törzs hash) megkezdődik az aláírás ellenőrzése.
Az ellenőrzés menete a következő:
- Fejléc és törzs kanonizáció: A fogadó szerver a
c=
tagban megadott kanonizációs algoritmusok (pl. relaxed/simple) szerint kanonizálja az e-mail fejlécét és törzsét. Pontosan ugyanazokat a szabályokat kell alkalmaznia, mint amiket a küldő szerver használt az aláírás generálásakor. - Saját hash generálása: A kanonizált fejléc és törzs alapján a fogadó szerver a
a=
tagban megadott hash algoritmus (pl. SHA-256) segítségével generál egy saját hash értéket. - Aláírás visszafejtése: A
DKIM-Signature
fejlécben található digitális aláírást (b=
tag) a fogadó szerver a DNS-ből lekérdezett publikus kulccsal visszafejti. Ennek eredményeként megkapja az eredeti hash értéket, amelyet a küldő szerver generált. - Összehasonlítás: A fogadó szerver összehasonlítja az általa generált hash értéket azzal a hash értékkel, amelyet a publikus kulccsal visszafejtett az aláírásból.
Az eredmények értelmezése
Az összehasonlítás eredményétől függően a DKIM ellenőrzés a következő eredményekkel zárulhat:
- Pass (Sikeres): A két hash érték megegyezik. Ez azt jelenti, hogy az e-mailt valóban a feltüntetett domainről küldték, és tartalma nem módosult az átvitel során. Ez az eredmény nagyban növeli az üzenet megbízhatóságát, és valószínűsíti a kézbesítést a bejövő postafiókba.
- Fail (Sikertelen): A két hash érték nem egyezik meg. Ez arra utalhat, hogy az e-mailt meghamisították, vagy a tartalma módosult az átvitel során. Ebben az esetben az üzenetet spamként vagy adathalász kísérletként jelölhetik meg, vagy elutasíthatják.
- Neutral (Semleges): Az aláírás érvényes, de a domain hitelessége nem erősíthető meg teljes mértékben valamilyen okból (pl. aláírt, de nem releváns fejléc hiányzik). Ez ritka.
- Softfail (Részlegesen sikertelen): Az aláírás szintaktikailag helyes, de valamilyen okból mégsem ellenőrizhető teljesen (pl. a kulcs nem elérhető, de a hiba nem kritikus).
- None (Nincs): Az e-mail nem tartalmaz DKIM aláírást, vagy a küldő domain nem implementálta a DKIM-et. Ebben az esetben a fogadó szerver más hitelesítési mechanizmusokra (pl. SPF) támaszkodik, vagy alacsonyabb bizalmi szinttel kezeli az üzenetet.
- TempError (Ideiglenes hiba): A DNS lekérdezés vagy más hálózati probléma miatt az ellenőrzés átmenetileg nem hajtható végre. A szerver később újrapróbálkozhat.
- PermError (Végleges hiba): A DKIM aláírás szintaktikailag hibás, vagy a DNS rekord érvénytelen, ami megakadályozza az ellenőrzést.
A DKIM ellenőrzés eredménye egy fontos input a fogadó szerver spam szűrő rendszere számára. Bár egy sikeres DKIM ellenőrzés nem garantálja, hogy az e-mail legitim (egy rosszindulatú küldő is aláírhatja saját e-mailjeit), de jelentősen növeli az üzenet megbízhatóságát, különösen, ha más hitelesítési protokollokkal (SPF, DMARC) együtt használják.
A DKIM DNS rekord felépítése és beállítása

A DKIM implementációjának egyik legkritikusabb lépése a megfelelő DNS (Domain Name System) rekord beállítása. Ez a rekord tartalmazza a publikus kulcsot, amelyet a fogadó szerverek használnak az e-mailek aláírásának ellenőrzésére. A helytelen konfiguráció súlyos kézbesíthetőségi problémákat okozhat.
Selector kiválasztása
Minden DKIM kulcspárhoz tartozik egy selector. Ez egy szabadon választható aldomain-előtag, amelyet a DNS TXT rekord nevében használnak. Például, ha a selector „default
” és a domain „pelda.hu
„, akkor a DNS rekord neve „default._domainkey.pelda.hu
” lesz.
A selectorok használata több okból is előnyös:
- Több kulcs egy domainhez: Lehetővé teszi, hogy egyetlen domain több különböző DKIM kulcspárt használjon. Ez hasznos lehet, ha különböző e-mail szolgáltatásokat vesz igénybe (pl. marketing e-mailek egy szolgáltatón keresztül, tranzakciós e-mailek egy másikon keresztül), vagy ha rendszeres kulcsrotációt végez.
- Kulcsrotáció: Amikor eljön az ideje a DKIM kulcsok cseréjének (ami biztonsági szempontból ajánlott), egyszerűen generálhat egy új kulcspárt egy új selectorral (pl.
jan2024._domainkey.pelda.hu
). Amikor az új kulcs már éles, a régi selectorhoz tartozó rekordot törölheti. Ez lehetővé teszi a zökkenőmentes átállást a kulcsok cseréjekor. - Szolgáltató-specifikus kulcsok: Sok e-mail szolgáltató (pl. Mailchimp, SendGrid, Google Workspace) saját selector nevet javasol vagy ír elő a DKIM beállításokhoz.
Érdemes olyan selector nevet választani, amely leíró jellegű, de nem túl hosszú, és nem ütközik más DNS bejegyzésekkel.
TXT rekord szintaxisa és paraméterei
A DKIM publikus kulcs és a kapcsolódó beállítások egy TXT (Text) DNS rekordban kerülnek tárolásra. A rekord neve mindig a selector._domainkey.domain.com
formátumot követi, a tartalma pedig egy kulcs-érték párokból álló string.
Íme a legfontosabb paraméterek, amelyek egy DKIM TXT rekordban szerepelhetnek:
v=DKIM1
: Kötelező. A DKIM protokoll verziója. Jelenleg mindig „DKIM1”.p=
: Kötelező. A publikus kulcs. Ez egy Base64 kódolású karakterlánc, amely a privát kulccsal párosított nyilvános kulcsot tartalmazza. Ha a kulcsot eltávolítják (pl.p=
vagyp=;
), az a DKIM aláírások érvénytelenítését eredményezi. Ez hasznos lehet a kulcsok visszavonására, de óvatosan kell használni.k=
: Opcionális. A kulcs típusa. Alapértelmezett és leggyakoribb érték azrsa
.s=
: Opcionális. A szolgáltatás típusa, amelyre a kulcs érvényes. Alapértelmezett a*
(minden szolgáltatás). Lehetemail
is.t=y
: Opcionális. Tesztmód flag. Ha jelen van, az aláírások teszt módban vannak, és a fogadó szerverek kevésbé szigorúan kezelhetik a hibákat. Éles környezetben nem szabad használni.h=
: Opcionális. Hash algoritmus(ok) listája, amelyet a domain használhat. Pl.sha256
vagysha1:sha256
. Ha nincs megadva, az alapértelmezett azsha256
.g=
: Opcionális. Granularitás. Meghatározza, hogy mely címek használhatják az aláírást. A*
a leggyakoribb, ami azt jelenti, hogy bármelyik cím használhatja a doménben.n=
: Opcionális. Megjegyzés, emberi olvasásra szánt szöveg. Hibakeresésre hasznos.l=
: Opcionális. A törzs aláírt részének maximális hossza. Ha jelen van, a fogadó szerver csak az üzenet törzsének elsől
bájtját ellenőrzi.z=
: Opcionális. Egy lista az aláírt fejléc mezőkről az aláírás előtt. Hibakereséshez hasznos.
Példák DNS rekordokra
Íme egy tipikus DKIM TXT rekord példa:
Host: default._domainkey.pelda.hu
Type: TXT
Value: "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgR8Z1YQ2O7v2Z5D2X1Q7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y9R9Y7Y