From 420f079bbe04c2d819f629b1d1eecb878a319709 Mon Sep 17 00:00:00 2001 From: Marten Rebane Date: Wed, 20 May 2026 19:06:26 +0300 Subject: [PATCH] Remove ID-card reader support --- README.md | 38 +- doc/arhitektuur.md | 12 +- doc/model/id-card.puml | 43 +- doc/model/smart-card-reader.png | Bin 242262 -> 0 bytes doc/model/smart-card-reader.puml | 63 -- doc/model/smart-card-reader.svg | 1 - gradle/libs.versions.toml | 2 - .../ee/ria/DigiDoc/idcard/IdemiaWithPace.java | 4 +- .../java/ee/ria/DigiDoc/idcard/Token.java | 34 - libs/smart-card-reader-lib/build.gradle.kts | 12 - .../libs/acssmc-1.1.6.jar | Bin 57929 -> 0 bytes .../libs/androidSCardV1.2.jar | Bin 50701 -> 0 bytes .../src/main/AndroidManifest.xml | 4 - .../SmartCardReaderManager.java | 29 - .../SmartCardReaderStatus.java | 38 - .../usb/AcsUsbSmartCardReader.java | 87 -- .../usb/IdentivUsbSmartCardReader.java | 121 --- .../usb/UsbSmartCardReader.java | 37 - .../usb/UsbSmartCardReaderManager.java | 119 --- .../usb/UsbSmartCardReaderOnSubscribe.java | 169 ---- .../UsbSmartCardReaderTest.java | 740 ------------------ 21 files changed, 46 insertions(+), 1507 deletions(-) delete mode 100644 doc/model/smart-card-reader.png delete mode 100644 doc/model/smart-card-reader.svg delete mode 100644 libs/smart-card-reader-lib/libs/acssmc-1.1.6.jar delete mode 100644 libs/smart-card-reader-lib/libs/androidSCardV1.2.jar delete mode 100644 libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/SmartCardReaderManager.java delete mode 100644 libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/SmartCardReaderStatus.java delete mode 100644 libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/AcsUsbSmartCardReader.java delete mode 100644 libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/IdentivUsbSmartCardReader.java delete mode 100644 libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/UsbSmartCardReader.java delete mode 100644 libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/UsbSmartCardReaderManager.java delete mode 100644 libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/UsbSmartCardReaderOnSubscribe.java delete mode 100644 libs/smart-card-reader-lib/src/test/java/ee/ria/DigiDoc/smartcardreader/UsbSmartCardReaderTest.java diff --git a/README.md b/README.md index 414ff1c..344a523 100644 --- a/README.md +++ b/README.md @@ -77,21 +77,23 @@ The demo application (`demoapp/app`) provides a complete reference implementatio * `libs/id-card-lib/build/outputs/aar` * `libs/smart-card-reader-lib/build/outputs/aar` * Move the resulting `.aar` files to your project's `/libs` directory. -* Add the corresponding dependencies to your application's `build.gradle` file: - * `implementation files('app/libs/aar')` +* Add the dependencies to your application's `build.gradle` file: + * `implementation files('app/libs/id-card-lib.aar')` + * `implementation files('app/libs/smart-card-reader-lib.aar')` ## Overview ID card support for Android applications is based on two libraries: `id-card-lib` and `smart-card-reader-lib`. -* `smart-card-reader-lib` enables the use of the ID card over USB or NFC. It provides the low-level smart card reader interfaces and communication layer. +* `smart-card-reader-lib` enables the use of the ID card over NFC. It provides the NFC smart card reader interface and communication layer. * `id-card-lib` implements the APDU-based communication protocols required to use the core functionality across different types of ID cards (IDEMIA and Thales). + Integrating ID card support into an Android application proceeds as follows: -* The developer declares the permissions required for the chosen integration method in the application manifest. -* The developer creates a manager specific to the selected integration method. -* Using the manager, the developer detects the ID card and creates a card instance via the appropriate `factory` method. -* The developer establishes a secure communication channel between the card and the device using the card’s corresponding CAN code. +* The developer declares the NFC permission in the application manifest. +* The developer creates an `NfcSmartCardReaderManager` instance. +* Using the manager, the developer detects the ID card and creates a card instance via `TokenWithPace.create()`. +* The developer establishes a secure communication channel between the card and the device using the card’s CAN code. * The developer communicates with the card instance to use the desired functionalities—authentication, digital signing, etc. An example of using the NFC interface can be found in the demo application: `CardReaderFragment.kt`. The example is written in Kotlin, but the library can also be used in Java applications. The sample app additionally depends on the `libdigidocpp` library, which enables the creation of signed ASiC-E containers; however, this dependency is not required for using the ID card via NFC. @@ -149,7 +151,7 @@ public interface TokenWithPace extends Token { The `TokenWithPace` interface enables NFC communication with the ID card. An instance is obtained via its `create` factory method, which selects the correct implementation based on the card's ATS (*Answer To Select*). -Currently, two NFC-enabled ID card types are supported: IDEMIA (ID1) and Thales, implemented as `ID1WithPace` and `ThalesWithPace`. +Currently, two NFC-enabled ID card types are supported: IDEMIA and Thales, implemented as `IdemiaWithPace` and `ThalesWithPace`. After creating the instance, establish the communication channel using the card’s `CAN` code and the `tunnel` method. @@ -263,27 +265,19 @@ private fun exceptionHandler(ex: SmartCardReaderException) { ### Specifics of the NFC Interface -In general, using the ID card over **USB** and **NFC** interfaces is quite similar — -the main functions are the same, and the APDU protocol is largely identical. -However, the NFC interface has certain characteristics that may require adjustments in the application UI or communication flow. - -1. When the ID card is connected to a smart card reader via the device’s USB port, - it becomes immediately visible to the system, and certain functionalities — such as reading personal data or checking PIN retry counters — are available right away. - The card can remain inserted for long periods and does not require the user to hold it in place. - The user has time to interact with the device and enter any necessary information. +The NFC interface has certain characteristics that require attention in the application UI and communication flow. - When using the ID card via NFC, the user must know the NFC antenna’s location on the device and physically hold the card against it. +1. The user must know the NFC antenna’s location on the device and physically hold the card against it. This is often inconvenient and unstable. Additionally, the card cannot be accessed before a secure channel is established using the correct CAN code — for example, it is not possible to read PIN retry counters or display warnings to the user beforehand. While the user is holding the card near the NFC interface, it can be difficult to operate the device otherwise (e.g., to enter PIN or CAN codes). -2. When using the ID card via a USB smart card reader, the APDU protocol operates in plaintext. - Over the NFC interface, the APDU protocol is **encrypted and authenticated**. - Furthermore, the card may enforce additional restrictions — not all functionalities are available over NFC. +2. Over NFC, the APDU protocol is **encrypted and authenticated** using Secure Messaging. + The card may also enforce additional restrictions — not all functionalities are available over NFC. -3. The **CAN** is a six-digit, card-specific number required for communication with the card over NFC. +3. The **CAN** is a six-digit, card-specific number required to establish the PACE tunnel over NFC. Unlike PIN codes, the CAN cannot be changed or locked. As a protection mechanism against brute-force attempts, IDEMIA cards introduce a delay: after 10 consecutive incorrect CAN entries, the card enforces a **30-second delay** before the next CAN validation. - Once the correct CAN is entered, normal operation resumes immediately. + Once the correct CAN is entered, normal operation resumes immediately. diff --git a/doc/arhitektuur.md b/doc/arhitektuur.md index 0ff67d3..78021ec 100644 --- a/doc/arhitektuur.md +++ b/doc/arhitektuur.md @@ -135,7 +135,7 @@ Tuleb pidada silmas, et 100% ühilduvuse saavutamine ei osutunud võimalikuks. L `smart-card-reader-lib` on RIA MOPP-Android päritolu. Algselt oli tegu teegiga, mis pakkus abstraktset `SmartCardReader` liidest ning `SmartCardReaderManager` klassi, mis Android API vahendusel USB ühendusi monitooris ning ID-kaardi ühendumise tuvastas. Teek sisaldas tuge ACS ja Identiv kaardilugejatele. -NFC liidese loomise käigus refaktoreeriti USB liidese spetsiifiline kood eraldi alamteeki ning selle kõrvale loodi NFC spetsiifiline alamteek, mis realiseerib klassid `NfcSmartCardReaderManager` ja `NfcSmartCardReader`. Mõlemad alamteegid - USB ja NFC - jagavad `SmartCardReader` abstraktsiooni ja erindeid. Tulenevalt tehnoloogilistest eripäradest ei osutunud otstarbekaks haldurklasside - `UsbSmartCardReaderManager` ja `NfcSmartCardReaderManager` vaheline abstraktsioonide jagamine. Ilmselt on ka teegi kasutajal oluline teha vahet USB ja NFC liidese vahel, kuna need tingivad ka erinevad kasutajakogemused - USB kaardilugejas võib kaart olla pikalt ning rakendus saab sellega suhelda. NFC ühenduse hoidmine eeldab kasutajalt füüsilist pingutust ning kaardiga suhelda saab alles peale PACE tunneli loomist. +USB liidese spetsiifiline kood ning ACS ja Identiv kaardilugejate tugi on teegist eemaldatud. Teek realiseerib ainult NFC-spetsiifilised klassid `NfcSmartCardReaderManager` ja `NfcSmartCardReader`, mis jagavad `SmartCardReader` abstraktsiooni ja erindeid. NFC ühenduse hoidmine eeldab kasutajalt füüsilist pingutust ning kaardiga suhelda saab alles peale PACE tunneli loomist. Klass `NfcSmartCardReaderManager` on liidestumise alguspunkt integreerijale - selle klassi instantsi abil tuvastatakse seadme NFC toe olemasolu ning olek ja reageeritakse NFC võimelise ID-kaardi ilmumisele seadme kuuldeulatusse. Viimaseks otstarbeks on realiseeritud Android NFC liidese spetsiifilised *callbackid* ning integraator peab enda koodis keskenduma ennekõike ID-kaardi funktsionaalsuse kasutamisele, mitte Androidi ja ID-kaardi septsiifikale. @@ -147,19 +147,19 @@ Klass `NfcSmartCardReader` realiseerib `SmartCardReader` liidese. Siin luuakse I `id-card-lib` on RIA MOPP-Android päritolu. Kui rakendus on `smart-card-reader-lib` abil saanud `SmartCardReader` instantsi, siis antud teegi *factory* meetodeid kasutades luuakse juba konkreetset tüüpi ID-kaardi suhtlusprotokolli realiseerivad klassid, mis muuhulgas implementeerivad `Token` liidest. -USB ühenduse korral kasutab liidese `Token` *factory* meetod kaardi ATR väärtust konkreetse instantseeritava alamklassi tuvastamiseks. NFC ühenduse korral tuleb tuvastada kaardi ATS väärtus ning edasise suhtlemise jätkamiseks luua PACE protokolli kasutades autenditud ja krüpteeritud suhtluskanal kaardi ja seadme vahele. Selleks on `Token` liidesest päritud `TokenWithPace` liides, mille *factory* meetod tuvastab vaid NFC võimelisi kaarte ning mis kirjeldab meetodi `tunnel`, mida liidest implementeeriv klass peab realiseerima. +NFC ühenduse korral tuleb tuvastada kaardi ATS väärtus ning edasise suhtlemise jätkamiseks luua PACE protokolli kasutades autenditud ja krüpteeritud suhtluskanal kaardi ja seadme vahele. Selleks on `Token` liidesest päritud `TokenWithPace` liides, mille *factory* meetod tuvastab NFC võimelisi kaarte ATS väärtuse põhjal ning kirjeldab meetodi `tunnel`, mida liidest implementeeriv klass peab realiseerima. -`Token` liidest realiseerivad klassid `EstEIDv3d4` ja `EstEIDv3d5` ning `ID1`. Neist viimane kirjeldab IDEMIA ID1 kaardi APDU protokolli. +`Token` liidest realiseerivad klassid `Thales` ja `Idemia`. Neist viimane kirjeldab IDEMIA kaardi APDU protokolli. -`TokenWithPace` liidest realiseerib klass `ID1WithPace`, mis on klassi `ID1` alamklass ning täiendavalt realiseerib `ApduEncryptor` liidese, olles valmis `smart-card-reader-lib'i` klassile `NfcSmartCardReader` *Secure Messaging* sõnumite krüpteerimis-/dekrüpteerimisteenust pakkuma. +`TokenWithPace` liidest realiseerivad klassid `ThalesWithPace` ja `IdemiaWithPace`, mis on vastavate baasklasside alamklassid ning täiendavalt realiseerivad `ApduEncryptor` liidese, olles valmis `smart-card-reader-lib'i` klassile `NfcSmartCardReader` *Secure Messaging* sõnumite krüpteerimis-/dekrüpteerimisteenust pakkuma. -Klass `ID1WithPace` realiseerib ID-kaardi aspektid, mis on vajalikud NFC ühenduse vahendusel kasutamiseks: +Klassid `ThalesWithPace` ja `IdemiaWithPace` realiseerivad ID-kaardi aspektid, mis on vajalikud NFC ühenduse vahendusel kasutamiseks: * PACE protokolli abil kaardi ja seadme vahele turvalise suhtluskanali loomine * C-APDU sõnumite krüpteerimine ja MACimine - DO85, DO87, DO97 ning DO8E andmeobjektide loomine * R-APDU sõnumite dekrüpteerimine ja verifitseerimine - DO85, DO87, DO99 ning DO8E andmeobjektide töötlemine -Väärib märkimist, et vaid üks `ID1` klassi meetod on vajanud ülelaadimist APDU protokolli täpsustamiseks, kuna kaardi käitumine NFC ühenduse korral erineb käitumisest kaardilugejaga ühenduse korral, siiski tuleb öelda, et kuigi kõik klassi `ID1` poolt pakutavad funktsioonid on `ID1WithPace` poolt SM sõnumiteks teisendatavad, ei pruugi kogu kaardi funktsionaalsus olla üle NFC toetatud - nt. PUK koodide muutmine vms. +Kuigi kõik baasklasside poolt pakutavad funktsioonid on `WithPace` klasside poolt SM sõnumiteks teisendatavad, ei pruugi kogu kaardi funktsionaalsus olla üle NFC toetatud - nt. PUK koodide muutmine vms. diff --git a/doc/model/id-card.puml b/doc/model/id-card.puml index 727f26f..caa6e97 100644 --- a/doc/model/id-card.puml +++ b/doc/model/id-card.puml @@ -2,18 +2,17 @@ left to right direction -abstract class ee.ria.DigiDoc.idcard.EstEIDToken abstract class ee.ria.DigiDoc.idcard.PersonalData abstract class ee.ria.DigiDoc.smartcardreader.SmartCardReader -class ee.ria.DigiDoc.idcard.AlgorithmUtils class ee.ria.DigiDoc.idcard.CodeVerificationException -class ee.ria.DigiDoc.idcard.EstEIDv3d4 -class ee.ria.DigiDoc.idcard.EstEIDv3d5 -class ee.ria.DigiDoc.idcard.ID1 -class ee.ria.DigiDoc.idcard.ID1PersonalDataParser -class ee.ria.DigiDoc.idcard.ID1WithPace class ee.ria.DigiDoc.idcard.IdCardException +class ee.ria.DigiDoc.idcard.Idemia +class ee.ria.DigiDoc.idcard.IdemiaPersonalDataParser +class ee.ria.DigiDoc.idcard.IdemiaWithPace class ee.ria.DigiDoc.idcard.PaceTunnelException +class ee.ria.DigiDoc.idcard.Thales +class ee.ria.DigiDoc.idcard.ThalesPersonalDataParser +class ee.ria.DigiDoc.idcard.ThalesWithPace class ee.ria.DigiDoc.smartcardreader.ApduResponseException class ee.ria.DigiDoc.smartcardreader.SmartCardReaderException class ee.ria.DigiDoc.smartcardreader.nfc.NfcSmartCardReader @@ -39,28 +38,30 @@ package org.bouncycastle <> { package util {} } +enum ee.ria.DigiDoc.idcard.CardType enum ee.ria.DigiDoc.idcard.CertificateType enum ee.ria.DigiDoc.idcard.CodeType interface ee.ria.DigiDoc.idcard.Token interface ee.ria.DigiDoc.idcard.TokenWithPace -interface ee.ria.DigiDoc.smartcardreader.SmartCardReaderManager interface ee.ria.DigiDoc.smartcardreader.nfc.ApduEncryptor -ee.ria.DigiDoc.idcard.EstEIDToken ..> ee.ria.DigiDoc.smartcardreader.SmartCardReader -ee.ria.DigiDoc.idcard.EstEIDToken ..> ee.ria.DigiDoc.idcard.AlgorithmUtils -ee.ria.DigiDoc.idcard.EstEIDToken -up-|> ee.ria.DigiDoc.idcard.Token -ee.ria.DigiDoc.idcard.EstEIDv3d4 -up-|> ee.ria.DigiDoc.idcard.EstEIDToken -ee.ria.DigiDoc.idcard.EstEIDv3d4 ..> ee.ria.DigiDoc.smartcardreader.SmartCardReader -ee.ria.DigiDoc.idcard.EstEIDv3d5 -up-|> ee.ria.DigiDoc.idcard.EstEIDToken -ee.ria.DigiDoc.idcard.EstEIDv3d5 ..> ee.ria.DigiDoc.smartcardreader.SmartCardReader -ee.ria.DigiDoc.idcard.ID1 ..> ee.ria.DigiDoc.smartcardreader.SmartCardReader -ee.ria.DigiDoc.idcard.ID1 -up-|> ee.ria.DigiDoc.idcard.Token -ee.ria.DigiDoc.idcard.ID1WithPace -up-|> ee.ria.DigiDoc.idcard.ID1 -ee.ria.DigiDoc.idcard.ID1WithPace ..> ee.ria.DigiDoc.smartcardreader.nfc.NfcSmartCardReader -ee.ria.DigiDoc.idcard.ID1WithPace -up-|> ee.ria.DigiDoc.idcard.TokenWithPace -ee.ria.DigiDoc.idcard.ID1WithPace -up-|> ee.ria.DigiDoc.smartcardreader.nfc.ApduEncryptor +ee.ria.DigiDoc.idcard.Thales -up-|> ee.ria.DigiDoc.idcard.Token +ee.ria.DigiDoc.idcard.Thales ..> ee.ria.DigiDoc.smartcardreader.SmartCardReader +ee.ria.DigiDoc.idcard.Thales ..> ee.ria.DigiDoc.idcard.ThalesPersonalDataParser +ee.ria.DigiDoc.idcard.ThalesWithPace -up-|> ee.ria.DigiDoc.idcard.Thales +ee.ria.DigiDoc.idcard.ThalesWithPace -up-|> ee.ria.DigiDoc.idcard.TokenWithPace +ee.ria.DigiDoc.idcard.ThalesWithPace -up-|> ee.ria.DigiDoc.smartcardreader.nfc.ApduEncryptor +ee.ria.DigiDoc.idcard.ThalesWithPace ..> ee.ria.DigiDoc.smartcardreader.nfc.NfcSmartCardReader +ee.ria.DigiDoc.idcard.Idemia -up-|> ee.ria.DigiDoc.idcard.Token +ee.ria.DigiDoc.idcard.Idemia ..> ee.ria.DigiDoc.smartcardreader.SmartCardReader +ee.ria.DigiDoc.idcard.Idemia ..> ee.ria.DigiDoc.idcard.IdemiaPersonalDataParser +ee.ria.DigiDoc.idcard.IdemiaWithPace -up-|> ee.ria.DigiDoc.idcard.Idemia +ee.ria.DigiDoc.idcard.IdemiaWithPace -up-|> ee.ria.DigiDoc.idcard.TokenWithPace +ee.ria.DigiDoc.idcard.IdemiaWithPace -up-|> ee.ria.DigiDoc.smartcardreader.nfc.ApduEncryptor +ee.ria.DigiDoc.idcard.IdemiaWithPace ..> ee.ria.DigiDoc.smartcardreader.nfc.NfcSmartCardReader ee.ria.DigiDoc.idcard.Token ..> ee.ria.DigiDoc.smartcardreader.SmartCardReader ee.ria.DigiDoc.idcard.TokenWithPace ..> ee.ria.DigiDoc.smartcardreader.nfc.NfcSmartCardReader ee.ria.DigiDoc.idcard.TokenWithPace -up-|> ee.ria.DigiDoc.idcard.Token +ee.ria.DigiDoc.idcard.PersonalData ..> ee.ria.DigiDoc.idcard.CardType @enduml diff --git a/doc/model/smart-card-reader.png b/doc/model/smart-card-reader.png deleted file mode 100644 index f8356bc0cbbe3174a2fae41422d5e5c14d8e095c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242262 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

m>-hJ( z-UBHo4)c3A9RGHz(s;r8r(5-&LcZext+@ZB z=LNmoP=h1Jw#V<-OrQiVA;5a$#O1t|uV#)#ht{pK+CDBG$B>`hC+@3F zNX&=tQJoM|j-b~fEMd8A!X?tyv~8?=m2RoRcN3l@t0mW!=$_#u1kU+^#s4F?3C;S$ z(>#bO5B7@jxMiA^j`JokpMhobW|Z+(p^1tnn{O}ok%G%OTP+u1qj?~qN%}@bkS4Pd zpIYdjIaM3HQ3}(>X+p!D#Xm0r-@nLx?mn~`G5@bD_abFg*w1r23RDUJTZ;(00&Bv@ zx<-S<<;F&vXunXY|7FVzriDZr)q~Zu`aF8AH~+(nqkdZ(|CeD|hG=oNf#>4ar#A6Awr%c{fHEi?jkH zDTwK5nvkUG_li_{L%_7{JM;*PmO{C%ry=S;_B6*jQp7_7Ows;aEy6`NG(vv?o-xR| zaQ_CqRSE96ff~*&N^NOsIEupPD0skT=`K34Ax{di$$5b^KQZLusT2 z6_mRun}nI@dMK4$izk{r0KB~J>s2r>W@P6F2|s?K=-(IY#Q2?v=-%%xMEqu{$`z4Y zeia>$Oj&Iq+lQX>C3!4tX%glKXjzm5rM?OgMaQ@kG*sW~WEc+s@!&2@H?o6dGLTq2 z1~)75vN0L2^%bm#33oI*FZJGf_Wy#gmq$t)?(1Tu$nNi5Eu=)h1Yf>w6B|1*Sxy&) zB%tr}@RQb$!ZIj>3`r6nLB?MPDatBX+=ih?sfUgfI|VW4hNRweZV$$|_!3=KmfM~w z3bv*mL0uGFa&j z-^0tnQ2cFB5+f$<%--0WrVg$IH{OoFqpDv%w7}+T3H;aAodWmT3S6HkP3(~#{oFFE zW2wcZFTaw>Fz7iy6`^DeJX7)5!m}Y9Z4Xuk~vDm-djb^nrQ| znYmyi)hZP}8S^LX2!P$)lNgL^4GDTGuuq+g7ji33Xn0uBoPR%VAyoV&%=_ZOW^NxP zyj`S<;Ui(3#E`62n@svs3>f)L_3s#h#%flgaUoBr7ok56!XNhpyvhpATOl zyn=@P;)#kI)VGX+8lq*;VK{t~M-|0?HGG`7sEXoRql&dD-gojUC6aM}u;DQ>UkRrg zleVzL!RbUS;Mi8%qU!6!CfakIsUL@hJiFst1IHzb=%IIs!A*(OkEl@#L_3pIB5bAy zhopng2%imE)kBw^bh}#ZKsQ6wCOXI{@kKEo3`kWSEL_I-2-fI|sKv%tet{P=cdwXs znT>&4<|dY1y*UW);{K8c=Mx&=1e*B&ADt~G6E_o_d#8i&icW1I#cy_eFEWdaYzDdO z6tRFIMF<~1(ul=BcH<}-ZQl{7K1*0M7A&4@t%^^9 z-yJe!|BRXIkp;%GnRUeP_L#_(+{~SsXY{h~jEAfYGQUs5-o3Vb%u^!xK>949w zmV%@zC-ya}NEQ7N+%MZALXX0xwiw)T_t@v%doJ+}tRu9&ioqomRv|k@)W8e$^8cu5 z44128RfG0u3aCTo`n&0qi~M3BF!`XlZ8jKQW8A6CWp zQfVf)I5*`PGNs5~9!`}|+RRnBcX0l%ISn+_^;OT9676_FZE%&Ovf{$FO}(HeSxme@ z!4bV=xq;pc#Z1rf%Rkc=B~js2r>e%LEdRL{)*Ylxd>E2dMSq?AUF-wsK9?{kXNQSy`AAS}h{7HCnH zY04TY6iUpwTu86jru(K>IcvjfeBQiN@t)2#R4tC%aUDh))X|fa!eR&YeE+*_WpTvo z#Pmr1F!U^?!u|LcxVt{+5;K`B_pY4_VKFK%pA5#B9J3DhKW%2G$IsNgNnU-=Sy2=T z0H|(Ue&R}2mS25=#Y!`IS{?GNfqzva{&aLUg#^v|4%SDTY_jW*3r+k6>xx+ z(0mBMU5T+cIhNU-+)Egt^B-`IRvpJrxlJ#ruA`o40mOz7a786|1iFU%?}%#fUMO-u zIad{utxR6m+w9=8Uc(+3q){5e2 zJt~$Ihkaue80Op3yStea-a&l5KQhkK3FnuN?+p}Kwb45_jk6Wq>1jaCe8pkxX!g@h zZ!Iubq&YlCBh22sTff+S=`hSL)v$(T*yqkBZOhV$Q?vtK zVxmT1%RQJ#Jqe`YA?ht7sFmk8e70#y?*L@!q@-OnQ!;}j!VwNFtfg6Qx#xNmv`Hy_bU{;U%)=JFqi|9@fRP46I# z+>GJ`o+M)xdP!xM@33L8T?M=9WAZmU%c#umUbt9%H)3crntYOFLLuHnG2OUC-sNVd zLLbryBjkYq@?$2B1_9AH+edKGDWg=3*0myC6T-=rvC_w#`k(KCTvLYjT^Td}--ZWZ z6y4cDeXJ4*Q#$T?6kZYVTxXuiAm2zeGIWeZaw&hd39ii{AL!=!rgq* z8_}n{Z@6&*c6#K!5y!C1lSVlBTAWOJ>9x_WiJ)fpgZ8L#lMq8}ZIC#8G+AEJ&`+%2 z6TUOeZ&38!f7W#K9B*!>b!vC|dw8$^k~3Wm_{k#xvu&up8xi1lT~sAnyA0}oE$D+G zktYOW$LSfmgm6A`SyA!2#tty5c#{{H z$pT7PoSXFeCzH=b-a|L~jb>obV*z&B9;LX0AdwtGtMN+{N`!^_6eMco>LicMO$ga1 z4|E@h%c#=(Qa&Cm${~v}@4tZKh#O^N3c0SC45NTK$-u4jA zmK=B>9!_BBV6gKLiTt|Nj&R>#+-k4FTI-{Kd@h|sKYC{#cb-mL?VnkB2OmdL<81!JZSCk9gMVDN|7Twh&Oq)3!*EY$~4RYtiIt zm#Hf&FRA*<1CE%h12{cG`fk$CHTC5jKwPEvq+QhgJCJ z7k->r7#cEghpr`68FUT}td3N13AIbd^TlQW=?Hnn6t16N4-MZBIt%=)A5I z3+Mfy@nSEmMES$7tPaR@!aKCDkRYW&bQSiRCUUrIM(2$5!ZIi666fF<4=h+ zl~h^+<~ui=?|M*@v__9CJKFDLKFkVl%#lMhB2y^%0b&2vR^5T@;y(4Q0H)K4(}#2r zkfUc>ag@v)8!>%hEa3K77fBw&uSe=~b zyeU~BRTvJWfnXq$p#();lyDKOimKZ7-wwkKa*N(6;Xa0rR}#R@Y-I0dU`yA{u>|wX z>x8pI6x2yoJ3Bt_IIU4j;+Dws^WCu`ob#!()c;z!X>8(y07kNW47FFh;=i;A6(Zhk zd)3+ti4*GKShU-BR7J@|r`TrR^*qNzmw|xPwjv+;!b?xjDZUc8lLW7@B{`pK=I0h2 z#MSpc(skbZchd?Un@^&2#JXTf*#FVn|iMb+K22*Kl zaZ(`CJ3gx6myPTTZ#k^@$F?M+G(Cc9cc+xcdwc%D2cqiV>m&EPnt}akgDH#)9thgQ zs=ZyROdWi0*I#ML@0)3GJFLC!O2-SA=RwPS>N|fnOZTsxE6exYR)tM(+d+NM2R5m5 z^vJc~9ug{Yazi(XfB^@PLj5&-AitB|^CYbv)qO;TI|ODI@8`uMmfinf2FZ2OJ-H zl+m7z&o%f2VlFH_c}J%Yd+LdACoMdi-7}E8y%BnMVx&9U_YstiZ|rL}wjcqlMb?zF z9h%nPMVP#UIU7hb4(_d4AcG-@bK!KA2dPQ|f)XYW6eEmEmp;{uV-HFilXD&qw5rKs zW4`W&$M-xmm<+r3kHCGc$xt@UkBpd>iMIr}%jTP#Gg`9Wr!vRR8up1SW{S>J0R*i0 zRZF$0^Az;X#td!}TA9ABRwYN-^F~1Vd097OZ@6AXwG~1LrUA2kM^vpeJVEt zF<6cbKqD|SgAVwnJ(<7wGJM}zKG*B}7t_1PBw-aj)?}>>cXEWQJ@k>Z+Y8dKJIhP| z03pW`!_B+RcjFaDLqtocv3bsoirFI9e(?(D&8m@Vud5RDt7DY{bT{9=zFU0% z+VG~3#iO-v;_mypDI4u1ehTqF)Gn}D?CZn!^?s=^v=n}!tqM_dQy|hj>M;JurLU|7 zc-WmHUsfN%P;n)FUgde(zui#-X`5gz3v#>^xI4*fP z(w*tYZaKN2YSRfU`8M2!76He+t9zN@hR?ni)LS&AJ#Mr;0kj#T(9uo;Qm6_TfPpW9 zU<@A%fsEw+xoOne$;6@QhS^HrTC9>ORr3FQ zkkB4NglX`08C3a^zQ|uWP2Q0aQZa!{@^+T=#G`rmSVTZ~zPWSXq`hj;Z3ZsX+iofH z_A!b4r>_tSOF158*oXE1sQXFx#IJfAs_Bxd@+8JID%ijuu_N3XSus#wjI>1TL!#w7 za6>wjI&imoucGBg$1%tpwz)3zR$?$*;y9a4q2t7l1ugGHP-HLK_#_gkx3+?%jcEXA z2R~FqT|feP3u*?0LqYakB}D@R7|;d9X4ay2Fww9wQs-9;Go{B#0_}$6E|RiXtis@s zc(FON4-R}rA4K&xhRin4X}r^ja%atkJ@Yyk5=wsK^S_rvUhFys&h{@*z0V2}D9YIY015MKOQjzefv+(A&hr(AfOB1E{So$|82e zF$6#`7ic;RKI=T1h7VF?788G_Q74FM8Qlep$_u|W?^O6?7}<;{2VVdh z+iTc!z0X!Sib64*^l8b!Mnb4$-v(+%PKuj$^W64!8Qh8S?>l8gE>A(-=S}qzH1?$R zS-0blBW~X7*iqLgZ5VmfMFUZfd8vXAzF&j*H6aA5vny8yki}Mn1r6Wt?pE?f^&LnF zep^dA*uG0+EPo0L?$6nCCm~*AqSj+z<=Nk>!;@J&;;ZtPa+vwQzq{q$>KGp#<6f-b z2LSmyuZtS&?5-GohO||{!gu~PH(5P3FhAem#r_SI@QEOL;5<*fT9(Z zKt!7ZN(wlCGC-+5uksG|a|WMCoCsS9dgtuAamD%rwy0o)JN}L$5(LE2kmMnsEpX@4 zxb=7I1Rbi z+1ilETqblLd_ej@8+{j7cfc3y2zH^~70_KTA^6aGB;rKlsV*c$K&SqN`+Scous9io z+i@uM_Dz$N-LAAe08Mh*w;3MrIv@v~`E#{N=x@XNrhUtVk1grGn?=HLihuKsWUI{e zY4}Y@SdMu+anU(=TaFIM4y$V>{Gj7POl>Xw9U3_E;kU;eLu>682pp#PIgh+f4oe&k z{C-I0VzdLc4r(Or{u)6h>*r?p#K}RY5xLAAaC(eLb5r0LLSnvw)n;p?4!U)v!7}spnCv+b zQ6I#WEgU1ZbQ)g(PQ`=AV`&>7Y37`+0P;B(iKCMVZt?HWKR}w_9FD^!3Ga!DwJ=>< zmK~W8De#w!LEf`?d#Ok_fv4pHZ1z1<{duFNBk**Q&8R3F(kzx*$>qGovSvZ}5Dh7O zMs!#1q;9#(nm6Bs3DOK8K;l5%*A9@)X<%6*d?_Jp?VyG<4u|f{ODO z>DI)=CMfI>+ycZrYYgFEVKL;&s-b8`~pM#3`=H_gt z{W4Ec0bIGXrmhI(_{0kLxj1Unm(wNeGR2)p-)pXw_Lqp~#+Te%S$C+b zS(~3MjTtaX+3*7ES`+}i=W74`O%m=3r=af9 zPY<6eRnal&JK1dL`mF~ zWP-r9^B?|LT%l|PvBt;Suem^b>dFJVQUZ)#7z{ObBLX4){MB@Z;hto+kWP#U?#aU! zOD@bYXLA92ImbuCT+UZDXwomQZ(C1hf#TdIya}qE9KicF86TM)^~+ZJK|J)nH}o9} z`Uf!(yU`^;W1I!H)nKwgjjp<55}3_B1p83#QWmK}BQ*a1)I9(Mm<1dQO_#cwNhD?M z{B?Z3JDp}smLRd2UA^H!obdILKRrSm8PN^E^}?f1o5A1?Ohm4+-QRc6pITgzmq^FG z?HRFVWKrbh=?QKP_4n|}HC>uc{jt{?)^swpmuzY4d^;Pzb0(l{^?E^!vgZ59_$Qdo zvxohbDhYgAYbSe45SK0f=+qmY3{Bi$Vcm8l+AVq3+e7VLEr{+a{X86vbBOeql$nU zv{To+S)kpbHOgB%QmrE_30cS(^Q8gD#QagY*2b)1o+~5;MHBlzcNTsmR`uEiEW^Z40FCB;|Uad|)@j9~qKnnqzS$ z7VbC*mmRCzo6lW2oC9?jqNrYBL*wB#Q-mVWH2h-b88CmyQOI#)3!wy*kCr9!)&nu4 zGA0*b?@6*#hWm(1;uFGBuFRB6_Wk7j8@3(~H1#{C!Yjl;p=#q06~n1ME9ytMmHYDr(|xdgyq}5gHHhf_qz{RHdri<1 znZT7(rmPYr;99SLUTkdFpZl4o_y$B2{8D{$%CdBm&R1zemS?WWde8siY{zbx@Qs!_ zVUsUedp{FJbcojc;yJxuWqnT+Fw}dvI##0dI!V-N1i7)6DdG=I1RsQbgEPk#$QI?kKhh5}|Ceynvvnq|{QsF2Cd!ijtte05bSmeJIh3YUA~Ee!vGn zB+|7qy%ih==N9~SP{2g9Dn39)tpnA5NB8Ea;Jm9i1}AO;ka9Z})Q1BxzmwTqP7Ze- zkQKorL?k%}Q0hzC;P(%$!3`XePIW>85!NPa$nLio%mNhMzo)bjbq;0)P=|!u-?AJP zlt?;CjheTb725X=!_h;C0kSzVlN;49{LjRb2-DYv1DYZ$z!-B9QE|s1kzYsW7{bdP zL5Xn5+zH@jo4r@D=ceI>tbg-c8mab!KxWFYcgVdgwh}t9OXRS1-;aY(J98m-_PX#u zLzp~0ImNzzt{ji4f0v0mHRm2jN83GLmwR!mvO(@o_lJKOTw3Zh=0Z8{$L<&e6*N zXK83`g(EW@>o3@h5lhJ%7Z{UESCci5`#qiQVCYmbEO*Y*ej}-=RhT+x98?n93`k91 zQctrQi+#vcdJoN2f1JmG6^WG2xc0H6J-eW#Iz-E@?!kGEgx7)?DNc-=4@FWT<1 zEkkrY1lE;2r82#9;bxUkyF;bisiL!g7u@zO1S~lA2Pm&=bm9Gbf)(76uRHXMV^JFk zi|}GzS4wj1Zvj8h-phRpQ8$t{g3zWQLB{3L+hLNB#0`0RH#zh4V#Hs4fL+v&m16q| zr3VF7UfTvJd3?xe8l7wtogPApENjF8wVn%MkkI$@`bRDF>R2Rxa25F;52v(k9T|g7 z=^eqM-M<~BdRO{fS;k78|V2{9#PG;-! zHU4B2oGXJ`bY`KHB|~acGpwB&u{U1;@Pnk$nim{_9_4kCro`13;K^T?MbF`7Fj*rB zXI_w!nNB}UEVrkJ^K;MW^}ezDPR#9S#-D_@Q5Rj_#Ry6ni5gS|#C4WI=?d`Cm-yql z_)RPuYe8;q{cCKio=X234$5{o2$5zTBPs;Z9t$Y3 zJ6qt-!sFxmH=xhdH_nK^jn}V)W18Gd zx>c5fkYi#gRaG(0H$z-wtO9$7%+(Eas(AU$Z7X615b!7)Y6rIREp*?5A28=ifb-BV zPBk(ip=DZKiY3?yG4f-)`BOC^T|ySgO&{jtoC{*Jnz#8mav9|C*@ho?&C^Mvji)|c z;arL{3np6|?{b^qm*Hsgeas(kAB*8b>J%>z=c1^Di^*Gk582CSnQmr^Ni$tZKlJd^ zEkCTf1-HH`=981D#kGgXc|SPCOpnPc?O=!^>tgxg(H0y=JUu>!+hoiZR>RLtx+o3d zJkPFAx9qNj@^XrBr0}(k9!;xFo%#isOrDu{WZs~XzFEgJ6C(F*1buEIRlLW*>^wG%(_g69b2IItMYE>dHPdy;G(L)yUPXJb$cH$ABr7p+(Jk$Z~4GapgH}XL)#}5gLMox2F-OU=wREWdd9S z`d?n{Fc>Fuem79%<<{Ax#?Tm7_vv2RGR{q1F^`bJ!R2!u@wqaCJLGLuRgl-LRW5@g zf7*Jt;?U=HhGO%#X4yg^)v`-V1J`2n72T^Jg|sCInUFV@ZH{@3&J<|IMfsN^`jh^lJy^q0~~db`^n)~m5fW4Viah4-v9L) zV)GQAJhq2*IX0jSm)_!`IF4}fm;FP{BMyXth-CwW@E-YzgP1IqukfkZeU@P7mUZ03JdF>mZ8s;Y zXijbr4#8CSS_T1r?Zhb#bwanD>Hl^R42;1S7R__x%^gHmia<)Nttcj)(J4qkC-+{b~`_FEbw3=`Z4>JE5;d|&6^*Im1{ z#XYK=OmYg&pC(#3#7h2Mm8@P|8t->CHB9;5tKRk}kKeZF{VSP`sq2s!IVLi7ZBg6y zy~Ep0Z@=~+$M-(3SNk$G)mP$pI9>0D5&K>E*u5rEsm32b%kS%m_WbK7#;@E7Rk32iv6<(qKejLZ{=8yAbWbYS)&>_$J8UHQjVH<71V@OP zV$c^TqA*{flnsKSb!kL-pCf{V>bM1XZNYK}G7CuhaSVPV9-q}InovEF&4p)ninKND zanj4D=JoDrMsgCUzoM@2i@wMe(eO>thdtNq6ng{t+G%V!Rx=k9UmALx#_I_*Y2~X` z;0i6oEV-R;q7T?WUtMBSZ2YzL_FFS?u$JwNMrz+}O1z7B7NIb~n=Ed93i8vH!Gry# zH#l0BgtJkh+*1$%lJ4UAI3zh5=5vil%FZEU<}FpOmt?AHs0rOSzmn#nEg{ZqOT2YlqU=QIbwG1dW7P`UeBM-% znPfM2VIQ$Jno9c@%v0f-lb`A)jyivnR}6#w9V|ys+ss%eel12DQS&3wIJ~43oN>?e zzIh&>KB0%;m@V7EQfS{YT$YPn_`u+pG*;s!K&N98=a;(IvPvpHQ}8?>YEC|5GrbqX zhOu-Y|0lP%8)*9r-s{74LmEql_)!a|%g@jE&$Jf%JYl%S*S*?r3CM1DTeV$=qDEgW zV5M5Qn%xwyGriLBIh>uji$nBN?`BmNG*et5SePX@I$8+zS@)C$E!6_C68O0k&h=Dt z;()DLPj72@a736tTJEAAVpx-Po$>>!0>Z_{XoKX^1oWX`=#lE;i({~cTikQk3_>hU z(Wt5T%MosuZ<}^A;8uw3NeyY7PeO9H#wk<6JRPZdwLdju<2>cx)A=vfDgLFZ0nTxq z8c`_N>lO(4IbB7NtFBo?_yQ5FT~M|L&&@B+K$MDfN!+T-#8PRcYo`(`9jb8qnADAz zsECfdorVgRN^^$P1U*O~m^|?|yji$94BZ(EaPG;8!@V#R2F3%Gq)XFv=_h@s&0RyS zb_=GFZoSmMD zCKGh$z_Vy#1k^tH>}K|0Rg|Fy`%C+&+~Tuy9oJIo06pUghMv z8oi?w!47Tnf6G-(#^oyCCAk@}aaxwK{nD6b?$Hdbz^gJ;)Wl-ZC;xVVH29(iue*5cL-}u~9_fHNRSArQMGQV_bi5?Z z<|^UCP~tubc2Quppf*>+hq_ex$KGnMWz4bc6I->9+w3OTWxR@Sw7#A?=5_5PWd{!U z%KX^#es!Zb)ZsCS_5pOrqZR$lZn7M+M1#5h8=vWOI+6a}H&Tulp|_C$uyFe*E0VV1 z;^rkU**?HhyeJ_z>tZK)ugXpqVxt5-2qaYaG#qWD0oY;jnC}l&_GZ{ROhN~6>Cyzu zghv6jZ+D>tx{i!jWy#y;!ZDmR?NL)6=W+PUyYAx6oW-i)ubshkf1cTtux6r65P!+c z`&^=|;H~$ONw$sFRG9N0y*p&xdq1 z(&!gmr`|I$H~}>Kmn=q2+#58@OtUI=pWtFtyokqQ#BVZVqbfuiLOIW$vT$wQeIH3h zgI#(ohZ8zN4n{{=h%E$;LT-fRPI);09h&KTrKY{UpZ^v<(^x-$?T6b^X_fZ^HS?Q7 zyJvSk8ERg?E5fBkCi1$C^b6yFFClit^%q~-s_?d6C@RIphhtWNZy~wsOPKO!e>f7& z20El)e#xl>M`HY_fK=dMd^+NQ(?-rIHV1G(^UT>Wt@=Gqdz}g@m4{kv?_R*>y)dF7 zV_k>Q=wNvsElG{P&Y>G_?!sg-lB%kfSf}BWEOBmTNt8ba!n_WdaJP~nNkxCn4aTB} z%)YN9^Y7)ov6`E3l0fa$V5RsbXA|aZLE1<57SkXO)S1x?zkIq3ET%a0qsG}+nN(%l zxA>s?#qnY8A0nTxz+R=UH58niQd_vL@HFvTsl|%eo3p)^xb}3#A22M^I4cm-|3&lH zt@)dHy3(7mUG`oQju~nqFa{DjEWq= zL+*IOSbW#{+jkqtmFKTLXs5Q}Jf|%B?mV4)BKt7uTc3Fv^|?1(DXP+jZERV%M1$rv zSKWq*+w><69)-%+Fp0&>WV&Iq+=rfbq0@j;>#o65^Y-QpzAh$v<69qeEOWg&G53mR z%AmD8xM?{cJL&78Hnqlm%4;5&wr0v8Xi{UORcDr73gkNbs21oGEgG2sCglfyspwT| z|25p%3+n9eAv;$b+5>Bt(|Hvg-~{C3w((?JWJN?obg4hve1&u!#z%l~#syQ+OEEM; z2C*tsILd_SS==9Hb^^Vo;>^HLD&c2@Ngc7G#xT20ji!ie!dE1nqNHYJnsn z{-R|WMA%fQX5X`#qM02g@N=GKaAgzm=zMc5dg`Mj46_d!eX!?<5yK+8viR+Iq343-FiEiW^0Dvf(sBFP4)ZRHzU8jIDlH|0 zGTRSE)&5sl6>In)>M{PR&T4B(ZFgHiZFdswL*)V4kt?x`B3pD_{lnChVID~RSV5SW zjpm-9Z;hnlmTBGetJl$(XaL>owgn@$u=}Q&WD!>uH5CqVW!4mV_9$9!rofpE;513_ z!P@Wz8(gG%`;z~wx`u|uvkaMpK3)W;DtBQB^}*1@DakXCWzZ4jox% zYI<&VUyY(G&50&pV117y?vj*!zu?Ky@JAgsQh$!|S)VZ(_e?Hoq9CR;0rtRKaK-6N ztFM9U;-U*-8@o-gcpTxWX}(mV)wW_>0n`hJ%*XA7SFKq63D}=Ey%`^&!|!2#ZVi1q z#`Ss?Mv(R%K_bw$%vLa%9BT{Q#<2Z;kX8?4sD?b^Aw5-6`9NN@j)T0fn7Se9gFU&) zl7_R`8R)T%7Ir7(6|jw26BcG}VzXv@`I(l%koHHC+~svT+++&D%Z2?k33JytBE&zJ zvqwfpt6LPLgB4D~5<0dfC(J|VLVi<}UtQ2db$)9+Vp26Qyz|A#SV9@Xj)lwE(qCmw zFKt{Yb_x^Kdt+P(U%y*vHdw&WFxeakr3HF)dIvc*5FQl*eh;8``aNQB< zV$^xyb+sBak~5_OohyM25-^x)!_Q&AsE#Su z)8JY)p1qJ<|19}Av5xSA@6Vplimp`dF3Prf%>jCYJc`8P+}8A`I%!0~XOhzU*daT; z7k>hLS9y3Vl0&vv<*`%S{$v99Y}QBc`wx{873?pZ{u&b{oi7NPJFYAsw+KpD!au!m zMtT=mk<2{(lIvtO>IA)Lb?4Sv{>Db#Zp|~L=Vx*T#w)-(HdJh~J#pYJ>5d&4C6(Kk zLzX=Cm7On#ldx{jr&0C!N@+Kopl+nOXidA8&GBwHSsCvWfw%H~nBntH?M8~2sO~4E zJ?5J-Q+dgRf6+#^buLgeLfO0F`A(|H1G>X7r*h@@s@~FkRf0NtQ|+(ccYNP6Z69P< zy&ZI)tsG_G07MM(ZR&vSnh+YhcNt-{ZVA>PQ}q{(jyuG&vmC|B!Vu0SPZ8ihmJJAz z8BESUi61@d0Qe~jIR!nHSBWC-XR8r~1*6vJGf|;k4JIlL_^Oj>D)6)U(ud1enV2=h zzr2+j_m$lW5g#b`*iem)sS(wrpYZWM4Z&1-e+HP9Wm~F4d9X3bKhlZU-Xb=~jSd&skF7a9UFg3}xUhYSOO?!|O^ED`@-C6njz5k((Kd(XSt&5Bp4rVc z$w{%If8aYpUd*nU2?!lya&LI57` zrW!GSw8#ZDR@ONvb?!4G$&ef6;&yc8d7dlrt#@gGnsqJlZEIw~NS9f7`#l0Dq&^FZ zbi+|rlgcanCT)4aT)vr`^D`E#zwRmYN!k~m)|^_~eo|o4KtZm=KAr)Ez$#3{f0x@T zdymo*^v2nB>0GcrM&(7+?#>bDAK4d^Eic;l*xNRiDCbx+2j}io4PMfrBffa6t&6vO zVKu9o(E=esO%{wx9~Hj#%;4cjKh!RiQ^QZ@-x{lUKr(AbMuL42&qFJuSDYM%m#wG~ z#8n(z{SyZF1vI!GMV!e)5UBj=m)GGIHD} zbr&0zJrRd60e!@as}dtT;r}RlW+l?kBwXlY{+vc_cRjfdU%A)|YLdZSo6+4&aIWc> z2I?A?((lEon9pignRFFICmXRJo%`}^Kj-q=&bD5(SiZ<&(vl6Mz)Rk>$M>)#Iv12E z;>GC6=%{XGDs|!|{)vN0n|PW%^Fcf3jCZ7$6hWUxqnnC9g{aLk6I;Bfvfn%p{;6PGyZ%dhCTfh_(Rk!9kl6gSev!&=DlZ!KtHR@OHz-A~eYAKV7MktyL5il{LY*cMoPS3Ot4z8#G7Ca#AW z=i%N}O!sLBRsMuTkJgZo6vFrzQ{CQrN`kRz%B?UmDg5lmXDTeM8U?>tJ=Wy=24qRIHp?%}o_E!9XgX+X z)LZ5;aDgF~F?9)XaHGm532%X_GiflUAj6)SI>J+!(GfU{rJ*;@qhc}1SxrD z3ZFRTtL7fgZ;&P)%uRoa@F!3^Otdqi$#?W*H;y+AcEw1G z1ebbh$pt&aevbDY)u6H$?lf^@mNI-aZ|Qg8E3{O5iE5iHJ~Up=Z>*VGm;7<0iP(*) z$O)#5n0)LE8%1m9y!koG3HWvb$eeVI7Db|IG0VrP$}#m+1Z(WyNf{KU^m4uBC3IN> z3O1j3j}rMjBVyjsP8BIW)P7TK8P@fVsMc7K6%W^PyDb*X0Mq=!71eY(yk2y@ti&^E zgeeLJ-J@SLa_o^MYuodIqc)%9h}^7>l`T-CtQF#2Xy7Cs-f;p{4F4$#Ckd2_PQ(=50cps09p@o^ORj#m4D5JPCVga@XK1Q=Iui zEYwOy-F-?xG)B(!J8e1{dC*qx^4l_Qvc^c9j=jKlOSuHhZ-e%BS z`E+quK@7UzK`M>1WNyOW?P)jJfdJ(q>gTe9!FVIa0>Plx*|RWZcS-fDz6X0?!(|?? zRRAI>d>&8DVD*I0vZg(*GXbzMFagg4FN{_4p4^{nG3JNzVw)~Oui3L&hb68(EZWr7 z$a7$-nq*3@PED!Y;hg&UwcM0%BvABKXx!(JdD1>tpu+u(jN|is zzVk~shy5K;4>)b*P?tVP4{wpV0kMg%DmGUc4@>S{0*f7@sSni?YjK~+O&AhahrnLUtjJamAK6_y4DJblBH)`3nwDazWe}V13g-gapNqd z)^hxDJ8u+e z!O2Nmc^XYW+U)DfsgOglw3rre*Ls`e$OEG`#VNVSI9U|!CbL8qda<5a^#<4|`bmT} zeV>^06vAGPjqng1KBfcxuxiA+Z)uFKZll{GiE7Q6Z?m!e>DANUA?cehz^`P`a=84x z-CN^!B}4{fLl3Yv0(_EMz#}+cj75hZ=z%}fYblwfs!Lo0FHJuzgOeB%B{k&acr<7d}5p^I;O^Ge-orock(FG6tc|`s#1Sq8GO~`BRi(O$Et{Ycv ze^&=7d2ZdWOpn^VHnY-1!y6GYCwU2CoI{RMs{?WCVRUs}DjINLG$@BaPXjfHJDGQ` z%+(#jgj{A;j=F>`x}o;V4vIV8-1Z~>Nqt`B4T^p)7wZSNr}P%&uAPTU6EY&vha%5i zz64VDvkEr4kzRu9_o)K%Hl=rk^KhQfyGUAWy766Z+82}R6BgQq8ISey4G#XSy^^au zyd>7os_4Y;sb9=nCD6yd&{7aNi}$v1CO6HrX7IQRk~wg4>K=WGp($@XLB2l$M=UnLxU1}{W7~td{U?$PeI9Xx z6>hq3u55*az(g~HnZVA@^0u{v*tGaM-`iIq<+aD*0IeZSi|#9Yu+q%**)R0^4VD5>0llK zx4shLxmPglLYguBH3uQni|)25Hiu^7q@21^zuj7g6d(N;z!~`124Ynifc1&2a&4zt z-}i|E7dRT2UW{r~5ua

5_D!?OT%+tGG2|T8rxmr}XQ}L%lkj!IZ&%NHIpasFTEJ zYy}0ui;eEB!S-IzYlD>5+y>{I@uWu2y~lUy{!w(@lp-{PaM`EepO({E?CD_``RT%{ z4ta2yXZPPjutgK9swz?Q_K%74e4lQX*qWjkRAf2?F4A0-YzpT?Aq{mM$uS@Ro{UXF zujL}=%{ImDJwcs3jAGfr@j;lK&9GS4>4kRVS}t#|n3xExLyE3^wHFh_IAYG;{*azX z;3NP*ahjsj(qM@Rvoeg4(Cb7gD%LqOX?QR5f%#1ogcu`&CKmqFNHFIWkPX^_{Oeq; zhc>_nVpLLj-vj+fGl(Ya+a>TveMpoG!5HfIAHa6FVL)AKc?Gb8r%>Za;{~6s+l!)i z4(h?h!$qyEKvGkr^xt0!N8nupQF^@!cOdK5x>?Q4Lw#8JC79tRAl@8c1s!oW_dWxB z2Nib-!U1OD0xd^4m=3AKat^L2d=0Q1axUtj1g{E)`-Mu$lsJ_DMQZ>Y8(h(D4o&_a zdK84xA@nil3rob|c3+O5oaZLcoLX_{Fj;<+Jo~_n?pTe)o{Nbk`=^}9=-J~BCnMdo{^^ze($L1`wwNkCB}v!|c~#aM2` zQw}DIDu~{EaT2*zB zG;o@Hfcg;sPB0N@agE*qnx0A6e#x$R$b#<3Ug-li35ehJ-a?IByte`s8@0Wmi|<@*8u3n^7T?Hu7(4YmZIZ4(~41VT}Dw> zrC*eAvGqVkx@H&!U11CSu_1Hx__e+4{6N|>TS6>UzFj$5F^1S+Wyq@}keR}+0;udt znx)1EMPNwS3w|ob9ZZU&=tb_+tDz$u zUe}$_{YdTi0q}6mpC4{d0(St30p5dX0tErfX1_jfQM)tJ$deqclzHdV`9}XpTq5o& zV0QfO{*)Qp>9FzpHhJO3;*jpI`jB%deGDW{3_bp>KvEA8&u+?BM|17)CHA z>{P7?3ecZhmw+#U1t&V&y=@yLJve&Vs=?+sIwv???+ZAk<`{SPHJDQ-DJyk;0>1Jq z{f9z)gu8I?>K`I58=M-YS8>FqO)oHf1Lb8i7}41e+-Q3xEZAgEE^T^yR%+83+mYuW5+gr0{3~rEl+Vthx|Lf|QKaNub zN9CjG+&-X{rr;@#fh`#?$RN5mkQ@i#iI7JN4SBS7pzQj?U|ZmLqI6YL zuv{(`Do(u8KD-hZj7XVtdX7lFxEYy=>L55oRYn?+Yt|+~$mc3Yydz#UTG&fJ;p(<{ z4B0DSEJx~ViDQ(+?nn1uY7R_||NJYc60?bLZpTS0{UbeaNC5z|M@D$;a_~9yU&c*X!4{ z|NAFF<#D_5jqmc^RepXlCW*_4EY@eurz--2lQXwJM9YEJ0mjW%XwGx=YWGJ2LEB=G z-n1+Y6khV>B`@%(TGC8=6M`KGed5AQEu92N(kz%0=9Q**`Ytts`l=ZywiUkCILZ>t zf>SGiC5vR)7$61NO4RAb>Eo-rI|Iwk2OXw^=_{*SAypx1e?M$s!jbxELhDg?b_86Y zm&&@I@YwiscbVL0+gX{uF8c86_EyWcE<0O8^=Ogz`Ide6!gP1%?tzAFf*-G7*n;;E%uPhaf&kWJCHn$qD091wySsown0Hsg5PUh5&R19%n zu2q2Bz?dwSCa5}+6l3e#7&U=Zl|ETrC~A=w5S^)ey$h>;&gNIcOZwdV<%abUKjOPC z^~p?b{E5LExU?lW1mV!IO;v#&5hEOM7xs-Q$Q9~YZSU}DLgDE7P<0Rl3s@M7pj>kS z(&sy)^Iz-gRFD@Yl5FLke&8_Q&w=T<(HRp+r5qdjd%M7V7o1Tep-P&OQBCB! z6rePhshy4c_z-M%BcT}j?E*PK=h>OSjC05zJj7;3ykT82xw?HE+0L|I_;K;o)}svN zf@G=6>36Nnzc@@9!d{Y0o~3s^bAD_eX^F^R5d@rbm)QHeixcsnQqu9KWD|smsn{k} zgjkIgIsTwVtl*P*Vj1Y5P5x_3BL`||-!WJroZ~}`5>L2`EJq@<#$7x*sY$Iy$|2EM zs3lRi=&AhEH~En=Di4E}Bed0Mfsm_O@4#?|?etaNHM0(}O_~T#u;Eb1`XLgwvoogx_0D|0umw=+uZgr7=; z>WHkj>QSm7UgAWV?3RQLAxx6%YcD!bj$v?x0`m&fPvB8*yI&gf`|q+?|Io`NPhRUPF-L3>Q@98o1skMnb_OQRs$p=?0W|gT&!J zdI`2>47vwM6Ti;3snN&wQhL2~!Qjs0L+Qn$iU zxDfxi2b2usLiiq0@og)emTT1uKU=g#-vci8cgF*Oy3kSDgf1Fybi$4&tGM1uIE(?CIR# zm3!n5=ia7I?3kDri2c0tZDhn?+G(y|e}G(*2#W$Gdm_Gl1L9tIGR=9YPWz`C|?YPh>JexOxB8LIuaKG5n*N$ zBBG!{VwO)aH+SkxrbQ~f($LXG;DBV!O;l3da@kqUkOR6VRH)|jkkFCj5eZ-~gRa4{ z`!n0?M7=wOwrv_g^dhMzvhUUQj;HA^T(w=TwlO(p{a`#TOd;}QrZyuGQ}VVEOYQMa z^;Sasd$@NdKK^P5%gz9cHw6JGI9`HxK_k?2A&*oj@LZ4?9-<-VHe|zxn3KK?b!G;H zd&xLa(M5k!t%lT?#+PVVj&bK|kdjh`9pKyJWS4#WB@zw%QB>Qx0V<#V|Pmw|t%KP^`!_4G~YX?Weu}4&anczAS z^GVsC^J*n*DY^&sL7up!LWf8gVMwWmT1tyU`o0(ZtcSR`#sYjD0_Rh(;ql*mZ}`wt zU%@Z2b#_-LmDoYnjan~ZaWzV|9Gbc-uuLezO#RM8ix zh$g$J+#vH1GAyKpv3$@1>q9mGC+vp;y<%(SY$2#DLUBRdl7ZY_SQR}!Hl&qvt6D>t z`Sma{4lyF0lfL&smwk^Fj2Y7J`A}zc@(TcQB3ms8BNqnMBV$kCKM7DVe(PP0gn2M( z6DL~Zzwhp(%rpJtisJ17@RE5|0I-Zq>WL0I28%ZUcs)ucYxpGrM_vp{hs{=Dkj{66 zNRBi2^56XMlb*@+lcA2aC)5YA>2y+XY$F;xEaW^B^LhHThC zeUhhmH^%m4t3Ut?IrOo+#`%*GUl8wsoR1nT*+H-P@KsF z3F@!0u@uu$>Srn&p`jJ825Ut>AMbq1ozyOL>w6kn>@|g>;w%>2ieaF&Pe@gvnY?kin8nA0 zZ^w@xKR7|oekL6GK135NT8<`xcoX$c0Q%+lu{_&F2urH06TO z^?}X_-4wf%860h^;e6RX(?$-@?;D)Af7TAs-5v)!=1Ze7#B0$hQ3d~D!mtx-$lhQ7 zK%Cgh7vN8OPp$(39Dc7UTQ5Q#{w?Y@sKs&Boh*s|Ss1B0^qs?5tLLc8f)SmE0avsQ z#ysCMDzD-BNzInVI7EFp*?Z`y)F~3;VB<+N)xTPqv)MbpQTf@;vYjY#)r(9yhfGv! z+t*neW-PpjtMUYU@XO9?=_Sm^n%Z7Vir1Y=G@_?6l5zf>{zaWiJ5_b9k8t}R*~+E3 zT%H@BY{*U8G^g}*xSjh?)OQD@s)n6ip>2qzeS4MO^)YSNlAaR$ii@o{=8z9tBQi3{ z^JFKKbY_Y2Zkc?gIn^j)&v;Od9pd7#U0z&88`+r9lT<{iPA559q204}{&9k9O0@ju z*b+N@ePYPwAaI@}F}YH{c(?kl%B=dKX5?{h56Oe#^8>Agxb`w21lEQk_Crxo>mCV_%v~5Iep+KcCL@nVf(&?t zr66q!UB$e?Wo47OEOHnZfBhLdp^Vo`uW+6n(82n5T;{q3Dp++)kVpEcX_A8b`E5V1 z0eFDxF2GSrJl}#7#*jEAbw&W>XJ)2GY%(o4ER{3i7a15XZyK~|Fh0z zdei4uhk?}0;JQbbuuC$3IPh%ejdg;vG9-qM0B%h*?@rxo^0{ZXy?<`z^0Lb@v7uVY z@@o-i3IJCl&l=w)UCT8(hO3%DcuR1*HseL)8ErFQX$?rS5!gh%(J=ei$7|Bwy88Cw zoj8FDe-cTzJ?b21WM0rj5tZ&N&VSyJ6-=&D^d3S<6|bJkLoXzd_5z2TUd!0FXbA$} zN!+1P=&quMLuNxP_R(EFgYx17aYvzps-;)@M@Oo-ogxSk-7-r+!*Sd*$x3UU;t8RU=xN$5()t6#*i)AHA#n5*I_6 zb^eR#(l_FK68BXHarjH`9y-&uJqRN`xCUSzoQ1E$_iZK`sVkTj-0q@`8y(%LCMTn% z7uBqG{yJENjR znh_=vwvN1OJa-eQMSE;mPf;Z>8IN+bUlX3T2UDkYW)g2H?8|^td%U&o_m7bsu+maT zxZXe7DZks!Rn_F;tGhKbD-_#}-2L1(r)`j!*Eq3CIYqXn-`hu8L2!VHn5P;m9E+aaw zEQvuo3TAJZjuYbU9_o-)3h%H&|6Fp&(1xS@y3+Sn=w5rlv*7z~Nhu$B38bRIuYI5h zJLjmU6Au&Zyt)idNvM zgYx+MwZhmFv|6n%sT%36~U4#<}8-O5X=@sNWQhv(AeMuN{hfvWgJS_U+e1aMDh z^VD7@+KjVf)2U66K{-wB-%w$vrvRGWNSMaVBoNPB`l`->Z2qTDh=Touo^1F^d4#)n z)F=$y7<&FFHHbD>9RCT-oqWAMh$i|Esf0kf(`S^nSs-;Here!e|Hh-^g)zDeV=jij zSxGdX>$kBhn4he7cAKt|J@58ZaQwtC^(s?#cgi=#_EV|3W=#3d#8Azj zHLNTT-QLR1=YF=n`y*y41*T6PIUTmcERH)+_NV3qtnTm$gjA_*mpycDAAcUcA2RPq z*8Hd|Jt((FD0-~HNFl+>xcX|5?((gQY2m? zv`{-QlfF_c97`oCZk_kMf$i^k&xnlz!g}>E9Z-5Yokpa6N$cHorVh_d{liJ}0eG!V zyv<26Nzh2=J^jFiAxM2<%c zczjw$5l}+5-UB5hEscW38`)@={O)83q)-wYXw$C@fORaLoWBln%l5|_U|1MZu}E%L z#W8AT)@W=^*C8y3=KHkae(yotb3}$xyM{M}rV4aD+=m5TpPy8r)z=NX&bn7AVY!^mJ zp$M3!R${n_pCEiTADG`a-rwMnSHEaoPZnr=-?la4nbHZ31mg)VR?mOr3|N}t<_H-W zpdb86E5R&gT#H{pVQt$D78>##7~MwUy8V=V?yJK-BrFX8>Y(JxhZ2mq&c$I!DgmV0 z;IzHfeMTN&aa;NB40YCov|C)Z4xN{LtYW>`5_7oZWn{o*Up)Sd?&Hysm9kQ4$IGXv z{q|~gjSY!nr}wjOi;e5~w-IpQyf~wyfA6eeQDp8^#`WCNu3{(o_cxQ@Jig1kTrM(w zAeE-+)({7+bq|e(B4>CQ+4)0_^8{PFKTh;60Jy@=yg4qyKI)%m2)c3Md)C?Lj<%(k zN)BBns`6dlsseHKaFx}b@4Wb4VRf}Qw$J1k)tlo=Q_S2~6YhF!j}hui8jo^MJ^Y#s zbbZ?=)N=dpXZ>#QZgb_i?>Z#neH{jXFw`l)TePx|5SQIC2HAO zqEsj%X1Bi+|AfxC?*KM=IBS-qzNmNwR=J6e#%ef)2)yqIm-MYibI zUydnyutmy}&Q^Xv$&F!;qAcSj=>$3{UFr z-~41NP9C$MH+~b`$_gEv8Kl+-)n8B6iC&Q=orrNF9%s;1a45IJOVk$s;2x*XJj^~5 z)H(+BQ8Qc_rZCaD_xlus3zW+#nxfXMl`vfF1LCce(U|Mub^S;W}iE5I&EFUcTd-NSYpi~PVua8TpdLNuBd+7z^hoV zxFWHzng@oumgcj7;tV$s^3Z-+^{^&xg-)U(40e6iR_Uin4@425lN(MJT{@Su8WKl| zZx`h4{2E9MPF95V<>XU;NJs_=CU2W}{PSdf#fK&{$!#^rtY#lzKoEG*%jMes)X-VX zz17Yp4}+HoF;78;&-On2@}(N57I!bk9OT|0Xs72?zrihzLqFutTm@_QQ}Bp-*Ap605LZ|C76?-H+lUJU~9n@SmLTOvA-~t*k<5?N9|w_pKcgU zAK%H4o(NPDqt?9 z$M*Nh#VwhBufGz>Ior@x;c{B~=_n>y=L~(DqwOKFyn;?Gcb?5Yfk3u0###`7Ht64b$t{)W6WEGXVv5GOQvZk!=v4YjECk zZoov&?#ysGe5Ii-k@ffv&5X+J|9`sB^}BgwrSS|_{L~mewjk$$W6D2(4grWKEO~O_ zvNlB|h3Wfl-UPGPi58!WlhZ4trb=m*U1_T36=ZHz2W!tRu9}YBho=5i{Ki2q2)O8r zkkz7j&xhOR5*<&hmA<(YQ42>RX5!$e`U!Xefn%4^^&SBGMP+>`g_BdU zH5mz@?1{-rBTT7cj_}mLKn3_e5ahnI0>mDDQ8XsTU^eZ6bbz4PT);gi3^<)C%|E&h zKtih9#!qcj6nv_BZ1pcI6f1;c#B)_K#yGglbigo_vQ80T_hmsx(wn;Q_!UCuq zwg=fI_0%WAiKsbex{{Lm9LDAsmLSqQM#xYQIfv&43?83a&IHbp8w6hg7*4#D6jCi! z`WM1k{wfy+Nq>1jb5rSgG6|6Qp2Ghd5g5x!AC~rUSvLc zzA%uFAB-h09zfJ4gYE>Gup069n%IC~Ld8Ddi;e$Nf7#L@U=nd0=?vYB=ZRk}AM_Cg zrwuro$r19BAj%j&DDM$!Y!U`^+S38ji)a(iK`R&ozN&LF5wgnFp8(@81%jN|lJggp zs7%k;9QV1}Qg@U~g&bA#=zyD9`%jvWCD`!2gfWgfFfr_zxWeIdJ`M5foli*aIxTIR zcec5U%uMwk`Mc3Ze5zGRLQQ&xQH@Xisfb;Kuw6B$I;FQ?_Uvz|h9b#^6{sUB*kNfK zcTg)A!D6r&ZF|g=v;`BkCMclnU*nz{mOY@h*G0xp;6VUbGaVpi-PN+bmRWt3V&l@n z)O}~m*PA%T7l1Q@GN(-_BX*V4o4|*}U)}$8)6XhRsF96_6nrgfMt>h6!N4hok0UyS z;&`gm3CJ0_(UIm3OpGXK(r0Ck^OrmBflINw$oIB_zmJkrH}_g-;C#)0e%gUrJ#vi< zY-G|Lc@Cq_{JER5765hM%c_yiDdhT|jA>MCS}J>d3d z_QF;p^C_=ViO{+)RGV#W5HK5EX?k)SSLjob9TY^$I3g!z$U}u^Q6q~H!RUxR$R zqlBX~ZWkN|0Q(Yu2kMmbCfSB~gcR!({gJLEKv?0v9M{R4yu(lWf zl18BU*93A%P5bRsVXqDr1evsonT!)3_9$A!j0*OW_u3sm_M@PfMWuOlfgs?&gMr! zqqEnp&B9}t$jq+nq7nUHY=Q4Eb~c5iAKS%2X*kUN2*8=?UsjmOJkU7-gW&-RKn(72 z5_D`G9h}$kXc97@1zpmFtcehT2sjlk!S;V@{|9#4`mc8lmr}AJir}8X36|8FlLiV* zHUDGA`s^$zd=n@uwh<^`Ar%U}r`0fmfSpLUx2TBm~JWJt~Kah0vW=q<{h3`m?Ytds*(xiL}Zz_8NoeNrY|{OVBGU||&M!eUhY6|piapx_h* zET{xh1qHzrPe51vn%dcQsM(0=wwZ@-D1y=o-+W23#Em-4h1Ib>?__1xJTJ8&UDt7Fnfk z+ZH}`B^}~Z!4W}0=UoIb2kHJOH=>&kLF%uG< z)FP06yaPt*=>`=ph)CA*T#EH8K7xMo&O4ruY)7GQbw zU#lix?o$bGukvEjxF|9T`X)uPQy&Z}WbiE4amv}2E30?8|^QhBj zLCc#uVn7|j;DQ;&HSmtppSg-Dl!jzEbXyu!d3;*iPSL{xc|7=$doVEekgYt}wtDA+ z(TmN_>g4x`St2JOB^$xZfhzWY@3*9=6?yBlqfmfIOCxNgbhyOo4XR+raey!4a#T>R=b;Dr zkEdXIi+qIoY#vaCyZ6Jnpbu9cdZFMUME)!O0miXyfxBQXFafTi^#-CltUAm@0rdlz`9h%`jjV z19SQB-y6dqGkDxq@!|$EV_Ywd&`Vz{b zd*{w3{Nh0`i~qXhib13cAa7#ESSzw0tp^#m*4Mn{PRE zAxyW(!Pn-fB(R0b0*+}uy@!DKnoY#fb`^np5IFxVB*xPY>wrG&<=L;7CFzRnXK%QB zj=NKWZT3%7trQmgdC0MSGM`JaR<-~v_Ego7hv;pLx*Y74oVWaO1Dq~77hZ+FWH6!7 z%;;+4(f>UUzF!xDsO1a41SM*9r8l2FsUiMt&PK0jF)_o~*KGCISJE^v34~{T;@|i5 zs5d7Cvfi#hFmv_*Af;WVPUfI28+{gUnPmZ&6(e`u;6tx1X`i+$ug-saqMID$2y;xf z{57Oe6ct8>X}}C+(ghB;9#I@{P}L7go?a8{U!B+bR+nxuGhRvXQsr(+K zcLm_-bw{F+D%dL|N2O`1HKmRe+_y2Xw_AY75?nF%+SE)JEEwWvr&5I*7%xMroi7Lg z2Yv%N1?@fcB!vpZWZMEV#Fc@a%>k>Yufdg5E%Vd@&%^ZIuC)EjZ4Z23AC^7d@Dc6z z8h0&761YA*Qu(xnqBN}W<>(d>;?2gwc5M&-dr7KHG)80qJ-yxjk9?+12fEHT??SO7Utx792nV=C zs4Xj;T5A;6ktWfQ{}79=QFOb@zy|;P_wH>}<$L5SJqnJmR`WK7L`tuO>Fx&8i<}=1 zstrTDDP~L9$?J>rXw7f@*?2VD|0ycpN@8(;0rfss1ZYOd$KDruceg-0I|+u?ot*CzX@UcW%X&IWBz9@Px+f zjprKhq6C0G_0zVF!<+pc^7|H;1C}v6%m9iI&mH_lC#HRrl{QiP+IE992pq*{MB&qv zl99L$dOE@ReNz8b4XTaIzluFTyMYPi9B9s`d?&QioM=zfRl7e@`m{x=)*aP7rC{lt zCD>E~)#61lDtPxF25Oorzqm5k6>vO&&ERa3tu1|B$(%i+B5vvQ+WtjMp^mU;#4UlI zdkW7-i*~`?-q@un^4pwMVbdU+>>W3gFiNuYcXuj7T9c|ed)GLk)tS#f2zOg+lVse+ zZFPQBYeW|9^mwp17x00ra8sWK!~gSH8_lhA&{MP%!aKN^Ncux`rW;ZzDu$o!YQnjX zeAr4uOltZaj~_U2um|4oMNTMH0i>t+g|jx!ZUr{ugWvYI!Uz`ggTya-Z&m!sB0z4V z4o1rp2(in138wFzbH>2X`ZEa6^!~<SvcY$6cgg}o>dw|8AT$5AL9Y9&?J>Uj zZX=35Z?R0RHNYS<(r;LT*)ga2$+3M(W<|fZj`O`Kip+&pBZB{3^H5)JOq8;@05y0< zqRLDll!S3MA-hU%X=L&`n=pl9vYpH#RW0y~?1z;)KIh1zV#D{;*M{+n-t9VqU_F!GR4*k1}`5K|R{b|m2p-1uTyxk73lo7F#$it9~p zZz|7&owvC>aL1jR{p;0dP4#dt%T(0z-f4ZcHv`rGDB$oN>h10VrLFKEisEIKbsez% zMEW2Qw(tRw?Ip~68bSBX302`s5EMP6BAtA5-2;xK;G;V;oaBk|fi{+FY>6Pt6AUu* zAAGyudli&}->P-t)D$-|YZrG}`E_w9z?&V`e-z9gUVy0yeAm~ri=H+3UY6W*zu?c{ zqf10~uv|w8j08rMAfS*0o|Lm*??CgX0a+{v&6AO2IWW7w(_`p~+{p{3TlVa(U)0btTN zazA3!#q{fD(YbMvK;?zUWS-L*NPePnapOIVr2Chs!gUbC4xds@CnsDxoO!)|V6cqz%vS!3HZ zc+zww_-4PLN7dco9*C8Y6Ekg2_hf5zhsU`F9O?8dtG>L8OD6FB5BDU&O50+Qw*6wa zI9T!z-1h5xBZmjm?(PsfD9?5A`GoUyJ4*-jo6f3%R5feR77h2n1{e?ntJvWIc*+|d zf|WwB`_|pSL&_Xj$nrqGT6BL6ppi552iiSgAUMkaMO_CF6rBvi8h#c$(suW7Qh@EX zQb`dD&9AGAlhe!}AnMA0Pgfsz21j0{B%wmPiN-P5pqKUGoXI?JuLMiBtraLq)`OX) z^QNJ^$16Wf)>}S2H7xyS*JnfxGv@n09Wx|79Wim?_6i+;_xNP+Xv2&rmMq2oj@E#h z&JV=xQtM00rz`xV9OGqLB9I#1m>~VxELbWsO~IA--^U!_8E;7&U>Qp<@{8VekL2N- zfzQ*|(p8dvfl7$FtxGfo!zEfIZ1@0*`loDpRYa!@} zu)k&8PEEp=P+-Ekq*hKTAbU4xFesDoEAtTQ^>Zi>eJo7~o$tukwI}7vJk0Dj9FR?P%<=P3i)(0JDFnHF%k|Wc;u;qT))kZ(E=6NhgBMQM* z%2g0$(f3GIfmXnsitkGT{|pg#k6-8|0(~!CWPG$~bLg$@8mH2B9!fB0*b!z@ zT-&Awzk9N?<1M^KM9`)Dls2yyL?3VGish%=#ZX*_?=4s|?=4LXZnTV?LY!u(ZY^>s zk#%MZ%&ca+6yt8v*+tyDP&QQw4ZDRzF}MZabYWqYw0txi%Y*+X+}+>%2GL+V&T{oX zLW^`^Kjm2aCd{a4sTwhFn5Pc>ycUs9%OI#wU`JpmL?8a(V+k3|x44N?WNv-Dd%fk9 zANJYjG&r-bz?kC$SDAq9tDGyLe(kc+A1{PUND2RD<0(QgC>p4il-BxHMt`5)V$fxC zS(_>_a3g(CMZ9pb_3$fU4QDj!%geaI3Uw8J$%vnyj`Ee*~)AQ#Vih*1Sp`9jy)ZNw(p#4p6> zOxD=`nXFkJcpYMRZAN#Xd_rCIpRz|Vj{L(!R#g#B95C>QqE{JeXe=1U|Bgc+P~3E0Rt?xcVb!ZAf(Y*9L}{4d4C{p2>v4-x08_Furmpj-T@lVLBoW%9LAC zpHYAqB7nDW0|Bb9cWyE*Z2R-K>u55Q=u0qJ+)1qi5kcdxs#C~VnvGJpPswa#8CF?> zeV8mkV=y2=l7%SS9e1Gyas^ z3`F+dVky_nzDZ)eIZVjy@{B3OqctIVG#Qa|riJPbV07?1mv1*vSq5=sS$#|TmUnT$ zWps%he>r?d0{jIn;F5u|s9lzn$y*AX7LL7I(gdN8e8=FzUV09Odo{I*Wwpz8K*cRR^$axBqphMSut?D78m@mOSt??f?Qx0PTSM@g=nx!G2)xj26jh8s&!8Y3C! z3-^kQ`bC1+go1J>C%0!4MV%e!q}~7IC*eqR8wrZ;9kK^bScZ>nfeJTX!Mzm3z)3>W z_PfiwxOT@=FVBK#d*KcNOJ5X>x;mfknE|uBB8wJgn$_g-onCogVluoJ{8osO%lv;P zv@i}JUyDNW1Q=;@!I}ILWp2XfuaI@n(wK!-91@uc3LO%_!T!c@rF&+^+f)2^muuuC zyOZ7R3F2$S@zt2lKVU~5-A_`NpDRoDe6=%TtMs+Zu^dvJ?fw*XnYna-f2*p;QE~XR zGI^;ym}APUpAiIeOgJumV{ArXBHsiqN^U4efwd>#vR!o8d{@Q`vz)P|ye6F_Azw?6 zDxu|g<>?anmPc%IPFf_V_#c2utxU9KO%`{Y79|b+N5}%bUnc0hW!`Fo-60PIOVk@Q z)F$x6;T`Y%7GOj%C8T^hx-ZwaOCHAHW`92z8xa09ol_Iiotbn;@9I&}e*$Yh6;(5u z5>7S3Pe`{1ViUH5<3q_db*F6SrdVc&Y(g=?^i92wWLsAxY;DDkl0?L;{BwI8z}u;7 zwU_Vxj3Clu=}d#ZAQ~<|2Gix|ui zgCb>V2tJx7DV-n|KH7ZTX%Z#~eHQ!&ZX(9%LWFvkrghk8^qZ({mgXc${8;*GqdKxJzIrFr5+5iJj0_n^p#2 zS9Ff8g8XyH+=}l^kQbBv;-F5fm$L!L)Sf&JG8-Dp)tYhov;MxF>psIX9?sNdQao#k zC&TPbH@Rad+^ZsK-#Q*=O#W&`*gEDP8L1w{6Hd<50~0b!Lf;0Ypz-~=ybDz+-^ag$ zsR^uBJ5h}!{=hLi2hc)X=vioE7Ld33g;`P`Pl0jEy$=oNfv$)GdvY%pIxUZS1EWV3 z&m8rTxjm&&ytcq?T`(9V+x8mHI*x$qf&V{yzSySEW#u3^YBiJ^7>i%S7=LBX@!ttR z_&DR=i|XnJ__i5O=)xFIMT1ibmczONM1equ?W)vZ1{!iK2w!Cs4FR$XezX^GYzVrZ zg2yLt6N=>zM%t43U?A}R#^kE)?;mI4WlT#4J)G|NhdyH0Cya&%_CmAgAY(EhcVlvd z(EN)@|7AED)_2ES7>c-Uuko#j!zuLMu&NSG-udSLVo4Jd!ru;|HwqT8HG=`dkD!wA zuP@#XfCerctR@I$auspy;dG3EHh7kA0mjn54`ty!cxr9#%td}RT`Z56Axv0mNhlGU z$fWt2uXjG8YO;>;y*{s_JAh#ij&Zp_9asAIr-m5 zK#3&wHaUn{5iSQcx#Z^a$Ds6Mlz9B^2$6%9Y|cfgb7dM-5)67U5bvQ0Opv{bg<;Pc|`;6A0j z`4%B&IVd&GSOxPAPVl#ghC2;aZ9KO>+^QEx>t^Bs1it;4M58}I(@(tmw~VrbB#kIg zam>g}xy=og75yK^{yM7ab?qL97b&O+wjhltsDKg%NGXa4b|R^?lma4)7Ep0-rCUML z*a|4!VbF~dl5Sc+B&3nwyutl^pJ%-Pyo|BWIb)x}Vy(}*?40_O*6U92r4ZH~KPWH|!5+UKht)TY~RF#~4pp$+% z*a{7^5W(~p$Ud{(X>WZ1W@?40dn$F0Q}@X8;7{g-8Z-b8dj)hlx@KKr{j;dbr$W`z zWJ@68(`Nm2r?Ju7^}IYKQ{>^=@!xw1Tz83!QwiI#KJ$A0g({L zxcBCMs(kOY57x>x!vO8C8m_ym>hF^HfITuLNO8-$5S|3w^>feF*cbBO1>IKOz|EU& zgNAx`=A&cKe_)ME8rPo=Y<`$9yB>=~vwpjyX*Va*t8pezY){7Oi(FpZvj032!TWx{ ze5(E%xMH8pVdhT&n^Zx7*9RuzchK6f?V0fT?cs|oJsaSU{H8ck?X;cyngz@_RRN+s zlI15T7x-7PRDdX{Py z#r?(K&~F-cozdN5(>2Ag_Mm*xjyL~nX(P_UOP`)gsKFnu6}bOy$GpOd{#X_Nl#lvA zIv?fItg7bfQ~Ci6d--+n9xIk!CzEmcb>zi^$RSgrdEa`C%su?>1H|1snI%_Y`d~&5 zUx&%i=&Epy5{qO(Oq-T}zAe$&l$0#=VNoc(cm*@BA?bDYfa5uA-aBp)>e>gTE@}U6 z#hXf_#q!!xOh1P&H*m9<_LfEnv6g-qxR%qL#lJ|Tb-50AOxklYF=(hv2vsM(%Z`znt|yrImt#XEQmrwU5@PZNcLOf ze_V&4VWjHksX6`|1enUK3EQU0$`Z=nk-r8`70PHh=HXc1*;%>fl-Zei0Tp642Dw0Ff3|a|K}#a z2Z>B-RB>x_JJu^rYhOt-3x!qJRaIyI%SA1C{@rMEiy{hOjH=QLH_nT!FwfB&668-3 z3kblSk2xaVs`mf$Hof6fbCP4fg_+qyP8r(@hYgm;`T92jTNAOyjBYov$*NRbaw37w zGZu4O`)s0)Zp=U``tQwkvhw}h2a6Tb`M-PcUM7HTLbQXLQFw+@k^4=`QEw7{0 zUAJZNEe5tmHGfP!_^o(^_FlkJqf*!=!KCX$!gvN>|NT>)h@b;c*@2Hc`IM;=ORIgb z^BF{f58^v=|2S$in-<@ihi+;z%7J4{t8w6eK&61IxM%IXAhIeH=fnVy$xq(J8H4~| z(`)k|Flb*C&|BhWi85K|^RlH`v`J?(wo?2*KMBuA0z5-%1L;1-ULI1NIxhTbJcs24 z#B%ADhf`D=zK{XaIw1eU7cl$f=NAv%$baTKXd)$R|M0wAK6!D$Fju>VWzSRzF5hkK z4B~sGyV|;{xgLD^I8;>}H8Rfg86=C4;yETHc(?kJmnnABX}QreOa8RQT;m|t0Frc6 z;`~3a{MW|vE32GqDgzEtt-||Q)T#K6_fFogfVR3jxmwO2cwISSa2&#cba5N9RS#lb z9UP&T=17txGWZ_PwjH(s1b9^o^*}RD6$v}tV)|KxOW!DP?2*twU0nTbqq}3lA(jOD zBYcWi@INxlz6-EC#j-=Yaj6tj+p_xpU0oE;;**Fv%}cyVxSL-`t|ZKVVd#}fz-byh zK# zHsF#w%}NTcuTV@D10zwVIhs)ovu=E5c@1N@hALz*2U849P>VHO;Dtz^? z@r`mkn#FK`8=Q`cq@wfyr1{}IY3X1^+=uf0*X8zW;vDT*ihr|qbCdDJ_zG;k=oV!0 z&&86s;BAC=2_+0^L#&944QM_qng4sc5L?G$s9FbFCRt_pZvTXmH@DUyS=rmNhdr3G zR_|iUkTU;z0aV~!a2~36+Vc2OWGApE$?1lC7Z)NN(1zj&h0+F;&%qE3lkv7v;rhb* zA(eM;VbnYG{dJ-~7|-W&>~85LE`Z6#*(OKMwg^Z`+wipNha}2>b!LE)L^cZp28lEe zL{7`tev^<;;6+plL)AEtBvHh%fm(#ILJ&+%%5ZmXXM;6TmuYP@vOBlNkWmOCiD5P- zIqfVP6=MH1#H@2J_BbC1H{xlYoW-@zhHHNRxVarfyy&-+RJf8eyI)d(2GxqvJmp6PvJ z`6&0ADafQ(>-HW9wIKd|7=V>w?s6Nj$osG;aC7#xrET1v)`2@&)wAzrr-EMMZIpig z=uuUW-5<+F?Mg|y=<|)3Vr#*YD{YBF_TdReFC`es#NjhZPx1Q3?5VH3Ww%BR+h~#U zK-G&?x5T4?TglpkJVo+vR*g@twHY5?D7++ao9`30YTL}=JalUkE_uuicvrqEM^Vnv z=n+qvf-d~;Q$7-HWNlh84o}B8sr%X^k8A}6RU%E3&bj#8zsBS!&ygJtDC%z1MBdHY z#79kB%TQGN%zT*{g?H15`CtUbP+vN(pya8j%?}63@NVj2?c6RB0EHfzA;XduVK5|n zwRJc)1R1e`6sL7P?`u_E@|2zbfvUK4@@+!>6aZ6zA~~Pk>wWSoYd37%BLn zGNWP}vExLovY)7yH1Oh257#T#JwIt`cF-GNTp4;^VyIVZ#dhUIClyy(dr0KKupzjo z!Nj`a2n4E2KfYKROV~Oq>0lBcjI^~?LtD`u^B`5kU;H&OP|mDoCrrZYqcOcEJyRD) z?d~)Xw$&C_|F!D; z;yPc`LJDif5@nV=RNY?7?c@7591Lc9x!2^4Lzfb@Arl*Z5e?F?e@6tX<>4hv)^@o} z>3#IPHgroH1Hu3>i%T%JyPb^=qAuN1N9&H1Q1t<)S({Kv6F&=Y4yiKHI9UND&q!5b zgnRMIqG3gt)N4jjto7u>M19ZXea)LKpGIMbz?O#t89c$g(*7DDlc><2lH;Cx7d{USD``!yiYYwP%}%Cy5cH zqhKS?7*)fa#7>Sn_A#S~usm8JhP+8-6_DJ5i8t4Z`C>jps&-8As26>9T(cWIpexf89 zi7f)Td>oXsgg#J*M-{go*fiW*;`_lG5OM?>lAj2Vd3|&1WvUUc2lm=^gjKH(CQd8A z(V|m>gwGdAfL3Y0NR;M|E4F;yv{Bv|ATrTG$>1<>X;Oo?l$HE$EoL>(T(!y0gO#CDci zac?+k`yy3;-wRSSsnl{U^%}SdOr!alBe3{67JHoutoNJEI`WWAw z`_v{;uYU=dK*$)7Y+OFw=$xCU(4kv4j_=!A7W)?hap{zlE;&uL-LZXU{e!3rNI9J4 z<$K+5U%15gnkaYl!pBH<4c$`p9n9OTl!`H+B*DajhuB>r7uGo;dIS^bMLMaj69870 zqyfT?L_IHPB3X_EtXZ%|fvE+c>x_hLjhuKxCyem2JR;M!ZrJim9ph^CeCJ#_BSfX> z&RNiGZkJ|W$9op~0|rGx@KOR4?XgJTQkS8oP&0_Q4JYfS{YdUk+=zQ9ky~+JUKFlH z?R}5&`qMAKAfyzSV6EVTw^R;D;n!{JeL_2!QS^L{vy3>_ES>y_i%jN%d(BS7u@;rL{tJKo|2z;d-@5$0{uQf%NPzE(ulN$7m}TF4S+WJwk(6L(&p zdoypw`l=HPcU6S;sIlojIYdora4*(0cg?hM#DeWmvI?z_IXM^s=*E+bMP#k54&nan zYFQ}oDlq111nW34@k#Ow`JPSKZytV3tx$HG8LOyB0^De~q8U8NIMs2in|^Ah%h&+m zmmq1itHfJDRThB2^UI*yd$av7$r5i>`oBpEJA55!I_o1v5>I!@Wf*Cdf&%f2!lkDN zZlzRk(OLq^l1O0DC^38g@n?zXR)7Sj3LYgrgt){HTtO(46pjUl@)?Msg84j`fPu`r z;u*dps|?sjrN51y4wwFdNJpl?i#qrQ?hx=QC=_4t3*x9rXC>69j>R;Y5SHZaz-V4$ z0C1k+)6lz@HOSZ?xMcSSQ#XYhSQ$zh_c}0XoZ@Ttxuput8Sm;CX58rJjPx7`vunE+6!y^#OyXAnpVOs)3upxSDM~1loZ+ z4-Xr?HEk4SdCyDt3JQ^;cGqibRyi1DWlGHJ2z(et?<_Uxk$^VTbkD{qZ?!~JxTe(e z>yv70s5Zl2rN|oLAQz=$PlW+a%q~854QFP5*z`a*j64ea)wJb?CMW32*$R$i1B(w} zUccSAm)#?_EpjIoONv&`Ea@NIRyEI|g|RN9xs2oE_~-5Vqlvn)XVth7U(;PP{tCLg zYm=(z)y)}JZrGDXTO6rTLuwt;vycS{YKd4Y(2{ZguqvRZiSY*oUAUlszRw3V7fD-l zt_xr8-D|`|!?WZRh`I3wg4i+@!@duhM>2s~3(+tT<$noq72_dh_6n8Fevw;y^AFe# zg}m$eeI{)bKzXg%YtRr(W{RLAFkwHvQWiF4bve$}JqJcexb^#_M>;p7Ht_Y*d=NwyM{$Yq>64%yW=nDf;|}dzYyqA8AM0=_ zXqPgAI7QIvW)0QGtdNje>YP1=F8o25|0R|H)@qJ3J;6yJ_rJRGE_w)5P4;cOwW4B=Q6L4F&!jYaKm&t}`2n}E;E2{z|;wGduZQ{oBC z8X+sz6e=i8Y7tN9@cG85BP&>*`Z*EB9lx^I8*7n2Jqg06;{nzJUDEY0{+T1t_vef> zy^FE!UW6=&u=l&d-mV3`jUAfDh}xJRU`Vmk9Uck;u3&Bq2C7?IQ|)IrxutYgQ1emg?&4(wZ1DBmGn2FKfp z{fZ!GcVpUvl%GcSZRCAmpeg*xc$f0C&&bx5P-c;*rq)DYtMbWmkFaL9-|E@6@j%v& zqAlDGUdp~nKg;Q%2(aidM=yD#y5D-JX)hre5SM4fbiJY5Pdgpc+}{)LOJ66=T>FdF zbbE|Oaofq=`Qbjgagf&Z|LIDEj0wWHap#4a+BZyZAu&?}-nW~mh8!n+^;WJxJU`}s z8JupZNxR4Y+};S{q%Y=Y_se;ek4snizH?U)ZP$42`nzN1iSO}P0Igwn9ec_)hRf9Y zE?xTdJ2ym10_iLkgl!rb98MKX|AmGL7Te@B-Yvn}y*o2o=v!gt@O-l}ee0Q(WY?ke z{wM4=w?gHji5|Q0hz3~jl5;nJN+|BU_Hea`;YJ3ovOomgON;p;be2lp`DB7Nh6`2) z=lZk8OHh#Pp+jUuq`!=F2(b~W9HB=*)=ma%VLiPJCUij`B);DQ@I-!>)KyAb zQmE+UI}?Lx`C#0$Ey^>jJ=(~=T+e9|L7FzMVGT{kbK5Y9`xsM>3^xdzk?Bv}!!Kc2 z;e!u?Y<~8U?6p;#YGpc;K1k&+ zR~g+44rj>7FS+~hcc7$x5=N(9%vgXzymDmaX3;knnc>K9Ow=uZ9_R(K^128eTim~z zciC-{H%a!Bh}RKY16t*JmK?ruY~aIteiIWv`kO!Br|15g0#`RfJ1)FSAs8fpeniN) za5oh}(?k?i{YIMv4H2wRk#94=jKhXIkC=_%*xSfQDh**sEr#IiN9aUOU^Ab^sAD&= zrpNeF1tYH>+w?L(1N6-)Rc+nMJrpivrNh>>)A@Dd4v-g0BJ?2F*q z-iX`|fu}eextv_^?oK4G^4{I?B51H=9U+0Y<~m#ko;P2}5GTEM14-75b!@IjiUx>Z zF2bdBI(OM={wwz*x67@^JgOm+do;8?`%WTb*O~hbPsdrN9_Y3aWDyPR=S8uhBR(v5 zv(U(#z{ifmZEH_g94JR#EJtP7gKI`6gt@2JTP%X@Hejz%y=1cv^l{VDC*JTQ{>r<< z=*nXT`xPF5**72_%eFzWNEMEF`ZyRw)U6K9DxkwJ2i|95;pC!t+fNQB(BQM=FqhRj z*MFq65ckORtq7V_qAu+U`^lh~gmC>`T28M-NQzH&2&iOOW$&EZL2z!mimbYdScv0e ztjpr>BosXl(Nt;Q0i%@w`%}_Mt4Hm-Qi}!`F`X_W6?leM^~$97EZbpX2U@4LpT3Cg zINA8{IbP#3aco4hU#C||ow4ex62ZF3WD@sO37mHZx!_G>sCgJzwAZov z{Hy{|*Sp4Yh(vB5#I%D<#S+dpDf%$7U%=-=3B_Y4Mmm)8gZxbQ{GKpHhyD!Z-h17{ zFmNU>q*+gBYP#)CM`@&@yMCb?!_}nq$O(K%L!)wQ8qs7N2Lzwku{EP}{4w?0&xO0Z z?Ep^YG8WN8-;lv7Zt+Rav>9wytTh{WK#!$)au8A45?}XxoEOp z5HzTCilR0bNHol@igk0 zT$y1l=H4|&3{RukP7R1nvpi1d4%7G0f~D%2U3 zMz!>uckr6x{}}pk3-ba$Al%dyZEtz3bB;ddxR}1SyQoVslC}A(raM6Ryp2i~*<;DEEgsYw zL+#A<0e)ENkp%+S+43XT^CatmAxQcdhF@*QFAkSB-&Hk*p5JXAX%(SN_?2~8HB zm+3)G{knf|={X;)kll!>U+lCyHG3tO*k;$mi)MtHi$+&YC-b))jbV!&3bB( z8(sKFe>bb8kGcfdP}v3yeqAUhRfrzE6zD2(vgZ(bKi9|=nZqxB!q?<}$%6%6~3Bw*0*s);+6B9d(O zMnrLc#RE@2U#8e=dHW9St5~!HEKq6x!AV!1dw&Rxbir@f3!XqJB?uYc>;WGJai(%T_| z>-Uam;FM1+vW@7_Tei}ikPh43xc28^gRJL8TsYg&*5NR@;0gXT?41q0FQm>g?Esj)!c=3@@U+=snF>JN)uTfRBGMDPjQ zCBDQ5V}jb$vQRD_r4a-bsvNU6)~mpwh*I&uHQ1U(cO zq~8yMM6E8Qlt63kiq1&I{VbM`)QsK#VMa80tH(!@u76rtX?2v5x7VGH{+$oa13&MY zj9Yq@YEK}~vH-h7{rTx@EC{q@SgM*fN)VQ+c`DJ+(I=LD7y56r|L;b zpkvQYKHQ-98(^R?+AMAuS}0X9E2a|>%FKK8LVzZ*vvj#cwqOz5 z2Ag*=B3_%M=SjNk!{9#imVnaD7K8&B-8_t;bTGafb{Itq9a?VGTC31E+5Fxa;3e^^zxD`B+sw@vSluj05WvFd zEe`Kl19)ww#62dWaFk6SZVS+A&A1hlgDFMEeezamky-YP>{=lT^}y+6ovj9XC7o`J zS|rnQ$jTlR21Bwg>lnCb_iV_6;f11vbQErfA5hAL-6T4mEkHEd4%Sj#$0c!|MVTNHwnAb_F&DAH8{W(ihyR9Y~NnFw_6Frr|LrQNc>x zWF<-+;iC;E<`WbBEK3+r{nuUn&&w$km;qdnp5kz$Z&1U6fIg=WoaUY1zVQ(d#k0>z z!0IvqI}f)1oB@F*fQ*Tke$afk7bKdRf&zt^t718t)ZaDw3N5(^f9b|i_Dt#OIwg;7H z;EedFYGx9-+=`oQ_llk(NeQ6r-ZZ>s+cFVUvyX{Ck6N^mv{*^ld1i%&|oyiiO6iVpRs92EvPb*Qg54 zBia73RPt4Nk=c)xGAYLVT7;T$TYiYR^*Iz}r6Wf7a|)B85X>63It)MfqeFB17mNn7 zE{C+Ppa5zrqM?&IB7*v-hZqa!s`gT%X8(D+a z27ALm6m0(Qo%cE<-dv?`cQ@C!_$$C-1~;L2=8Q(?TakT&raV{+ZEuC z@lzU1=Fth5Fmg&r4zEhwp?aGHV6e`YYksBf71Dja-_oF4)bn0qpG!q|hDwC*MxfdubiguoZ!TI_o@)C4 ze-(<=B}fyV5f#ZRRS3}z`b!Nq9!J9yt2LPBci_mnfxYj%=cmVo*i*01&-EA&9L!AI zRu*#MYPwl`as0yV_+`TYT!P}IH{oVpoWM2qX|qm=HI?tfChq{-57H_>_@AAK_Fk`A z(X?04@M(zO0qXVA@uS)%@;S+?HN;P7E7=L7nh6ZgzQYlZtsZ3jCn^ua2Q6B6i|*A} zaVGlsiBu4`mc#M#yXFRU$5@3gr$@(@`d#|>qxUY@H`?Vt5_lyM=bLo9Z19)JiZtIJ zT3M#YTFJcaKhvn8ze$U;GU(S4Ugu_&QP}CPQ z=ez?FuV~ZVA*bOQ^Y{+EJPiZ|F%ovp`h*{JIF@DmJ-XSn03Awe163#Kfd@C zCt}0~OYix+a41s?&1;W6{w|erQdLO(AliAjb0bNm)-QrhRK&eV>>e;;)Hj`&BN1Oz zR)d44RMKSr$cOmyR=~oHGiRYMST|1b^K*-HnE(CC1cv#s=}6k14yBlFH288?0lNxf)gFBe|k26gI z5GiX~mkCEnl6-#up0mV+*^}`RR)Xz9+Ql;XqAkh?t6(o0qqs?P4UgPz4E}tf+|5ub zSZUA)gpaJ;Fx|p;m|pL1vwH*Vsfk<<-WI|}pi=Z?IOFvq7m+YgJJ98oZ-$VSR9V1ijWk;Cg-xyLV02L=)ob3x9% zH3yT%eOhzuKQyhI$+4puI24^7F#jC6M=a%T+U(RYh(1Jl6a>&moA6Ex?*Vlw2O3Ja z%|uh!B~;A((xU`QH?oD~>)oqShZ$yulB;8(aV28(GSDPxE62u9pD7Fce~UPFqvZ@F z))~L2yI83Z+}sKnf9q&LWDqDu$fA;nHWa|xegC}wr&SG=X)LlO(Cu^N+BD}j4muoE z{{1vdlCOLfdqYszgt2J+YHhZWQl4u?|)Y&~)fT#-%kA!&f$R~uS9N3gjbOQ6JdFY!!&A@rQ(E5=O}0S`&ajDX9X#r1iPR(~uI zJGQ~87RJQa7jV(rZX<;=hIjkNV z88%w0K#q%n)K$G(9dhL6(wtX-Jat|o1}LfkNIgNQ5vVTr>E_mqF0`>WHai^kb z-77Rv?|KDc(Cc@|e5Kytk+U(%fzuDW${(KJ@klmJu}|>Ck+2>7I+N=}75eY?CDZMFC)L&SEHCm`RAxq!NWq z(CbSgEZg{gx_h;Nn&5I%R=53teiJCfYT&EgA;mr8WX<-n1N^!k6)QW)kQ$7jDQ7dq zTvFMnfSf?;4UVTDO}{{-)K%ijXXk-M8U3-xdauAiEERjEOZF6Fiu52BZF7;x8~L;X z?gt{n?mgBLQPx{S?L+FTJ*sZd7dr+Ar}X^V3Yz5aX99C;1^eHcC)qk2S`jdyWOOJ( zAR^Jg$nJQAz*)Og%SO4@`j|9IpzFy z2k-3pUB&y7`=FKn!kU8l$Y~iOcJ4A3qj7pL{rd;&kPJ=7wR<1Nb!OIE`Ohn2CMm$8MTd8X}QAZ{mAY|8KMw zHx90`apZS(k7Vq9Cf=uaq*&O^0>s`gUZt>7Fz)LIggjxdzZ*m*RT+ahEOiYJV#>fA zS}k!u09%#hH8lgFpy;tgMvku!J>T@;5uL(=ozln8a?=;`R6u_CC@A!14J4hFKMvn4 zS=wXx!j!C5mHoY{%8Bo%XT{%`_x2CoTg^hB<2VO+a^k?a8@BP~CtA1DoUr_jq{ZQ( zB!jVPCZiY{=y-NsxTP0xE9(wFnRnnC{rYXuDE#O{75cWf)qe4bJZ{={i~5ye7kOf+ zPP*yJCYWFUAQbIXr5)1W*S?Xu*L`r^J)N9h<>Z_7tcYZCmp38=g{*Rl9W z1ke2T@-xS#pCQZ8lJsMd_}-OsH=v*5N6D|7#qqd{B6n`@dMx^mK5mh3znS>zGUuD8J3$&)m>UI%QEw(SpwhcOy!;Hr%y8JlV^k=K1-Rrxv1txl|6W`EiM4jwVWJzBCd0lTQcGy@CN3LE` zb|N~3r}sLcjZ}3^BAI@Fcc5xNy?xET-VLU3R(N+gMOHtN?=|J_nsPN^vYn#l+Fxcb zz)~1Iq`f8nO1`sG*Hxb74HacReC}!9uECZi9~BB%+1D0kiXBq!@a7u-I&=TcPI`%3 zib0ov&PlO795Z%3Wk}CoJ7cDO#%-N9v$y=);!RCmOmCddD1-Jme zB=-BqCq6T%sW_*bUhL2~Wu4-~VW!^!ArblYFnyN2^n%u6aisvAczaJ;hbc^3S6>wfv~WjViWnK0PZ! zXJUILOf)>x_)RmTxnb$h`LuO~5umSdXvpm;K8Z1(lv_;#gw_P?~0OjxY*yQJaF%j*r8UUpUiL~K5BgPnc3Cs`mEg30X9d1czX}H z7jQ2hH#+w<<4E+TX-{0@1o>hYFQ*+UMt*jF%Q|xU{PAac#_vt9yg0=*!h0P}-ffi) zo48v?XDUMco=?o=<=q^sW_8onozd!g!X7K(UW!cDHNy7WnQZi&qRA`XL!l3jOzM%L zajD+3hu&H_y46x4Zs#9%gxPYfQXVJ}j2-DE9cpQR-QKm;l)uZt+joa|PHz7<~fkX(R$t0hu+e5TZ5#S71rt-KC3~;_BB` zg86C~sMYJPNZLfUF4@}*w(y-}= z9zk8zEZS^auVperk`x?=%eGz5i-NRrz%(01#^D{S?{3G^4~EGDw5A=K?1pO;oxz3+ zH!V%?{H+s8o9%>RM@o+^uG7cY%}hE z-3??X$9$`qdL|b9a8T<0&rS|UpU@lSclP96hRO6l?DfQMN=-MQ^HYbYhPw0Aipg-- zYM$Q_-$rzhseZltX74|eFF;yAAf~oUBj+dAPO%@jGx0`LBrs8<^vZbM%PU$YnmG}l zh0mPdw_Dp1`}SISjBFle+NcSAyH{0(!u~j!Tw)L|{hgiVyhtCeX$ekWCQc!)`0X-y-ELZGzZN z|9>|@9Oh+HUj^Rk=V7=)_nZH;=Y8o}^#ubm(_V%&K71E-kxXa!>0V=?LZC;dT(i5> z`)u7xhMRc{9-0-vUdMQcgm^jQ>MfCt43kY}RL+L4i}DV4XtrN$X1F=e+eUlt#43K4 zIu?Gd69O#!f7_f8isR?viRX`7x6aMO!z0$CPB7Bd!&S0wsF*qxZjjv+61uQx_rrR` zX(U`GIXU@5h3wSR_3N(Ao^|&KySwSk!=ksp6FA+na}Awuu$?OYwb!`d@bim6MWG%xrvmyC0a_q3e?6 z=&lux&b9M=c5pLHZ_9IPY4xtNDx1xVUOc@sznGRnNl;b2ik#AMp@Bllc)lfq=CfvP zl8XKN8;}G%4_3A7npXU~zl%=c_<#y<@*gU`{6~j8OWcmG((hEJGnoIYv|ZMW(>W~v zTplOKP2Rrog91INInBdin`H-@Gp{LLvBlTuAIUe{-Sg%zh#O3mdEF{GFZnDd7h~)mYc;bJJPz+XYH9Ba<$+pH=I+RSafl)$88oE}rva zk^iY9I{l*_6EpLVFW1)Y>|~@+o<6%|LB-tUt7WTV*Ol*tTDrXJ;4znj>t0s2`De5@#ztUDQpZXb{t~D{Sr9*7KJ)n!O z^&aD^l*^Hmf#s;^nF~x#A69lrc{zrmMpzP6`rh-Y^C;FUH5X3_Nc8vGy^%I4(l$Qe z+~Ct%)wkfGWIQ!heoLcRZ#aO`~hsb~H^HFb$zEkeafL8>gQm?TLVtVI{! z$7Ofkp5_>2#oHkDxU2m|EBWe4VeKprwIP{P-17Ej%DEp;hbVB^Ne10>2rg?4U)7V% z)lnYpRPOj|>&2@(Z(m;=J?(v7^G4$vb7dMliwBn&&di3>QabI0#Ml`VoE<4luUyMi zrQb}O#MzA0o&37SSZqdh)7u!nZImkf!?eNGFDvfZyP zyz+H5 z`Bzq7%GT|_+hiOxX#X~tEu^C4pF=mSA>Z|HS zwWk+g1RML6-u1Y$qo8pi*Rx2CEg7?;G`z8HE3;m)JlW@2JjZ?RrRKF)vjfuLn=+I>r3 znqeC*=G{Coe0YooS_BvIRhEA@mOseFTD~w){g1)kBUUn%|JJV-dQfxd)H6C-TO{|(VT z|Eu%z<+csgSy#`A??E=$w?Id?GE3OWY*;2W*gW5Cy>}tkwmY>s?bTF;iH~0jby!Pq zwPTNu@{jd=7K<4!-Q{Lc{UCBHg*U06K^^sI9uyGmg5{s-ZkjLOXy&YYcVF}HP!8|R zhC^1p8hV&*vXCpS)|h>8T9$(mt_{ZOSh4{Bh-hK~c|E zOYN|vQQFPYWPCFU6`U=-FJIEBr`cmhMNnv#5%=~+M+b1|d(igWWo+XNiodcwH)~3~ zTq>+ld~t=KYN*=vPY*@Bx#j#!gA>bqWgqkuhsuXI9ed0!DD}Egvb=VqVtU_^8Wsv$ zDCg$l%$CJA%2S@vz(|HWj`mqJln7N2ehg+)67|s~oJ+f661xA#R`#Z({E39dN;UTg z(dw;>@c|-dj{)r5p(EQC?7Eerq=TC}z9!?K+iE$J0+DSuE+!h-SDuWJR!?}EwOc@% zH8Ah7gGyqSR-9!_gm`rQnM|uOjM?^G#A)3!OlLu%6r|!iD|}kRK*`wTWP30i;+a2?SMsgvp@8VxD{1mGcC; z1JyZ9PC#yl$jkxI4zhz?z+wvmqc3FcBG{Hba9mUA$a6Z`%Rye4lJFPKABEyZtQ{nt z?bW*<`XToz*lC#W3u0t1&Jy)&D&Bw}!!|KIkraoSV7MrdhEi))CiI`>7>t}$zdpQT z7Mq%mgUK~~Y3XG(FR!kqa0vGY52I**Vi*pnEji}fgRT`K(cY{SzEo73>QH!AAfc=`k%D&c1^J~|t(=<+oj$_>qLBvre4xD8C2cO_F zr2C3}A~YCYo=+aC2QTsD{j1<64;}xAnYF*Ls(SoYDVcwHLIc+-yEOjTCY~>IbfUvn zKlcuKpNf2W>r$|xuSR6G=E5|E?Hq?qy?-iZzwZPnnhy=vqxBPOb+agIJJqD@@e-B~ z8{X{H&dDH96R3{Yg0$}b=0szbY|11ChmRfolblRA_|avU^2Xso_qtt)-$$XWeK>uh z#!W`9M-UO8?Rwb8dnIwzGtkAKq*fyylYKNpn-+o2^AqC4-HpX5cB9uZ%zIEy--*$XrW~m4c^MzH^%>AOFc`a%}-CzC02WnS0r@1ulz5Wk-L5K4>ep z2#Jos#$A_EOz|2wH)9MWHOzyBzWT}(N|opGx85VJ`i3)zw}xJC$<&_k7*}o( zV$)reS|P#{OOr+<5ybrv{4b&i%-)FKtUU>s+}O^{(T3SUlm%EcnjDQ~>iiR5NLS|R@LfkLL^gs7nUJZX3l)bb&w_w_gd z1~?48PUn&vNuDU;S{R|74&h2@osrNx6SsfVu~kGvN_=q*|E#4Wt7Vxem&u4897b-%^qW@r&YE)_(syg;T*1Z^ z3*}sbyP6?1A) z@UH_fF%9LtFF;B({6vc_eHjW&#_}>K*cH=A;DEcH&>)Fw6iUwWIfU`wugmAZS8F-Q z$U&h5JscUYh|7}+3Jx{M)rMh>%fCVIv2^HYZ-X)+L3TKRJ$v-ITIlr#t!BWk2I$WS zpRE+85F}iJnQWNGCFj^wLB3}S1@&Nc!OMw@6VEjx9R>8kwdN!J1)$VmhSu zA$5NxSYXWzDc;r7Ey8mqznT()>_MyonQ3l!7?I819DNQGt!}WjY+1f3K0EECO+#^= z+X8#8R}D9zHAcYoyg@3`yLJAxfSY)KGG_2DWPi!mS&(t&_R3#`DbN#Yn50QXYakJh z!!rAtn;Drh-05(-tZhFan7y$o5*B)dMlm`uks@HnJ$vZ;_^aw&xQ09=(pifHuA$sq zvp2$-W_;?TEw)sh%X6eQgJlSt?<%kRJYGC0o^o;&k0Q+bdOonq2LKytUQ0=cgrY+n zigzk5=kW2S{##`BMPf$tHDr!JB$$@?sy_VJ7=9__nG=~=U=oxqI0k+0hYA5{-R>XH z*dbKWo9!o7xL&+(BtM*_vw)*slE4pv|9v!n!~yK<9Z#Ixjysdg#o+o@;Qxe5*OF9V zL$3h-Ur5kY$EEBH-|NvCF6Z?1&>e_;_YGoUM4B)|2sV-@dwE_4VV7teD^1h!Mw1+8 ztO%K`?K>wdr}=>{@4LIN*!1W?7ZHtU{e6hO&9!8GsLKlSHB|M(0rXswz6x=T$n0ND ziP*ecVw9=UQrHwHVw-_Wovb-dcNC28ZJnD=fC?0Vq;LY>ER|W>g+!iThBsr_uy$0N z+Otujk@B)GVr`X@d}nW|e{s$+L<_LS3FB35pyVY}203lM!hrpWpkF=5?j6ileMn!eFThoj<8?0P7>mET1eg#iC~w=`en!&ph3WjYnhp7I1}T-TF;qHusX8c15SUI9?S3#G4=Qyj&k zop{pVol|q!8r^pksTSK-DV0>GzpCJOF3n-M= z(|LDxmj#vw@N;6+%k1_(HD~twYeM9ifx(163QKa$vQebrr(kC3d8~%=Mc0iE@iG7@ zCB(|k(;h|Ao^cE{O14_&@L|3xF?f@Okb{uZpA-l${j%$8QjRGInPg_;VV59M>4Us{ z4qCr#hO@&&n+lp-+io35NC?YF{5jh`K%{HZDIt@FPo!`Eb1>pJNpuvY)x!sW<1_#D z;>8Ot8j2DrSScRw!7x3^co7(c!C*tYAHer)hN@^{3x*7!60|#19k$kS6F=Hob_>{$ z$+pBIWO@~cc4NFLLIOFguS43+h?D{c3R!L*S*AQip=KnJ;#zVPiQAQ}ZWqHKj5|@% z1t8IC66eMAf@b1~fIq$i(Rlx0hvWF;PysV|!k7jhKJ{$zPCK<&-_050$>$yI$o4%j zO&}g#OSOUP&*$cB7myw*I4Nw@rHk^2r& z?D?rqn}q4Vt#CKg(4x>c`Cx$GGI66mKOBER6^jgpxXE+kKLMMVZisCBKx1fHOHt5Y zI)Q8{IocrRRR#xQ{{O^`DiDL^O2>>4-vDaJN&91R}Fp@hJLFnUN z1uwv%ctX|fxgg~)0&cZ9Xz)w*eL*Ou@bwil6>BKIq#vZn9fHCIPi#BhVIZoWCk0zu z&x16okBKC?y@W=^b=8Z?`*wQeZnS zREkDt)ujYYVer-ssbF*yC#3bq-M|Drn&XgkGGvb;*>Dns!K(KNLVkTEyU2)Jzu6IF-Sdg6Jg<%aU!7qg49gyrIc zmv@)J8$$|ZaY98&@xsze)Zx&@K_CTtyk{k(VuXdK?W*Y4h}vOlqT#53b(LehA-*en zd+ozgy|MfbC{c=}WgaHFh5!=zUci;`3|Jf%>6F@P&<%)2jO-;~M@@2P1pNaN#8Hi1 zB$$o$*9zc^WU^d(2W3c!YRBpUbBPjl90Vy%A_^19&}V{$lt^3;y*wRZaAZqDud7TZ zxR`|4KsE{dzZZdyN+uSL(S$cSg9bnl4X*7fwiIu5cJitY)V}aL6`FIQ4)*q81{8&9e)3gqN^y*EE)0R)1#!^wqU9sWhBz8h zSwu85YP_;USq_O|(-`sABqS8(oL6M!(Nd+C@yu@Y-_TVnQ**jW4Jkz7Jw!rvMlQ53 zp<`4eW@6LVbe6Z9oLGqa_LhSq>W739W^h@`tZ5HissoubsCITC?~q|t(N|T7lZQC< z89kyz-}MU=&n@KnS*Rwq4?+~Nnn$j6!V=!5A#JoC5kWz3&P2JXbAwP!xKvnZY22Vi z_SBH|!`t1fYn8N;7098;NQdD-*s2jkU32?Gbd>ibv$<*z&CBNmEscgm9kCT_IDJ4e z{$fG%emj~Za@dYzgjzX^_jQtb%xIHlX$Y{GFe(Bh(Kq~gr1dBEl#Mze&H!?!p|n<^ z=~vt2-SD~tXC-H%PStkR&v_(W-J~6;F9hLb@;0XG=v+1Qy_$sHgau1)V}6?qe8KOP z89j3{L}!DyE3@GBrrF}EEjNWNZ|QZ*aHR#o{oP(}4xP|CtYOV&V3Oykkw#&m_Vhrl z*8y)H=V?V80s*A=KvLe4Y?eOVh&esVa8E4~W7xEegET-*8Rnqy<`Bpu<1sOBLoY9g z-;N@64n*xH>69NMi0Rv#hJ;*Rv6~Utf)vt!F1XTe5`EL(!v5?PR5D}vvvec#r|e< z04nJMG@v{C#GZW8K>w2FGU2mQp-ZbA3@tUS>pSv{w8j*L&m=_MR41E=p%NtCa6%wo zB*iFv4kgNX^7e#CLEWIvs9B4EMD*k9;DjVY8&~~6PHc7_AHt&ub(d~0FpquK z6osax2OI!5suK{@8zA!#e!NPsXm}g#fd}ZQiL^$9^fQAb^xBNH6IZQD`zx*aE*<(+ zUlMh6;8Soz`N*+FLy(jV8+mcDflx_Y z9)&xjHspL}>69u}hc#%gE<&(mDE{TJDawcKHP4%GAmRriW2)dA8*1nrhVTUT8kRwr z+X{hVw7*=zCemfUX=9>)Z@fl`_($g#LFQM>W*-k$I^&PmhELu;k3QESVJ8=bt&Ke4 z1G(sbP5|LiORGlI-v& zeK-#To9%S0o@;_cb#{`3>oqKMyzKIMm663?{?&bt1APB3k`4FvW8E{349x%=lq&x zzKa00TlQXW5^)`@7fYI*ZP2!aLO(5r5}};EhI^gNHO_&3SuaYB#|K7ZipPozyOPW+ zH#O&2`9J;Ll>$?xhS%GE*Dqvy4~V>5_i>ZA7dJXc{J7RE#R+MwK@27WQfb>EA%I}- zVqE8He%}Zy%|ryGf;QfR*lfGX_3iYn9`7W*a@&Ck>VB7n^;5%5yI5A{2{?sK1k~mp zE6K=AFFpC9+&sM~4_RjFY%Nxq=69ymVmaQV^`tPlkV|~33w0K0-iejU z#P=`dUbH{@0C^^1&r9}pf{+Zfq$g^vdIF$T6$FUN3vjo^`^c}2p{FGTC3tNji(Q9>X78UoZQnQZdzp~^KS=d&rUU*(?wJ@vMNl-;p z&_1NO@wAeov+$zOcX~<2oID--nxOjY{AaTo*N@%+^)bmTbW!`9;*ur`m{Gz*NkCEU zj^ih@88h-Rdh&nDVBMT*gkW$ZI48E;uU(Y-%kp(cg0I%Nm{FAGb7jq&20F+ULWK1U zt!AiIKvqHnJP=6;K}%K&o9l{Oq?#b>Pmvr;K_(|`fg>I;GF`@V?*o z?eC2Lobfxx9(!!J%3O2Jc|Z4k)%`mDJ&k$VUHT>v9^!T$VB6@$qZU!NSJrXht9VXA zB7dIhksBvohvoXYE-rY9ZnzhE$eRGpuuFB>k6@;9xob~4Ul_wn@o#7(S)*Gp>;L|W zxICEmyRPaT!K29a5s6RbhC*xTDc9EFMOO%}W`2Mr5Bqdye%Cqr=0t(@z(dcGl=09+ zU;i}#Di=Z1@r1n46ep6+^&syl#dY(ZV>UVCWsjn=1_F8Q2KucwPp ze0PqZC0D~94E2{U@FKeWc+llW4N ztA4LZrrM6N;rHC4^&-KFx3@LPMvh|@d{WY@G%+Silzl&cQU z3~>V`>6YVR?BCfgH(un8eBw?tcrHBs03syGoQXpDnG2{RUCU3svB~E+f82BX2DH%Y%N=NIyMiYjTY%M;YTzIj_4fg^N@ush z&I-P`l(On1jjfLC6bB1Z{Q{1ZS^`b_V%R`Z5gN1#y$Bozn4SlkbLZ^b&p7$_;&BTh zAksin<%|y9r6fI?`D@QfkrB_I(vE^!HAUKQ%-wSMMn5I%B-rKaYo{sLP7k+icd0Fa z@BPcDo?7DJu`Mn)7{K*{oe%P>h2w^#{5_ z^HjPl^bu+p$PDc+o_JDiljr+pr6fU#q=%2Bs89y|2-L2P*;M&!sGzlKJ5?pOyJS1% zVSu+=86+0$*nKiHIk1OxyDghs{MKb*XfJ89FBnLZ*-iYYbz@a-hIAnJ^H16orWhd!krS;0S;vi6`IR*n{N55?O=4pw z0mzj-w3#KaaY+`W{ZSoHUb2&~;RbxC^<`MIbgnCPC;FwXoZF$98=k?66ETfgZ9q`X zo5`bm%>%nU&_kAbmQ)=W7RoL3k#`UR1S4s-J;eA^3V-oOvSGAr4j@62z_ZHe;}j({ zI)d?^{Q^^#@qP8lT1<~O4&>9^O{=dAyfH8z7HIS5eU3|SM2@Dtyls^!tFYBIsl7PV z_mCdwZQ;oRNtq3Ke;@S^B6!PB6U!krkLIVq*B;(oO_wcR;Z9HC3ib}S1HD$VG!_&g zLfMY4`6JflkjN|H(#AA}QnefWaQHHJbL!O%1V8!*(7QZ30>U=Zpcojjk0`opr|1YIUTnvaVRZvyxnvKI^ zpu0uezyUK2Uq;q@AQL3a$%SXm zawr)E^}BeQh&%GJUjK!c3bgSpBzinI&eS(nd34IXZeaIHmwsl=%GlW~vTAJ7zRhA% zGl(nXxqg1lxBxETmL4*l)FN9NZz8E~B2m#;%O-vbjBz(Xt+@c-J&y)vul; z&XzXkQ+6JH%o6`DZhi?a2`Rja^hv>US1eZPT3i?-DRE4J}_%)*q9G~U-> z0@7QA3Z{ViIg>G^h3x=2+#~Fp-jtWo6}Au{;2OX~5}@){`&in!WgFoUZWh*!nn_@d zhdB*U;T7#??t+AwQ~%%cj);42^6$HUy>;vm;v3XN%o{2zJ zmDxDmq@o!r$6eePgZMN=Hq*1y2^Y+@>f+CreNq+5-8iFD>ZiKh4+wp`9r?CC)B)d5 zz}VMy$c^9}JKJZ*pH={;Ys|cr$ZG38VM&VEJBHU2YQpUmVpXV`7PRzXyt^)9{o_N) z2dCGFSkI_qx(_d)cIk@#D!@io_^S+IrOYr@ZmqsRG zXTkfd`ueMr5lPWCTL(=N@Uv`W96$#X&r!8i+{#qdxaX#2p;6D~Co{Y!3)qzz=4)Q$ z{e%pYmso3b%{MtHBenA%s~M81z*PmKYmH=9MgU6){xdDT8VpMNQ#6a#uWQ7HPk`_m zbK~cPv_C`bocr@>(DAmSQxUdF5f|vHvBY4~FFH%kzdO5q*UP5aJRwGk)#mk#@22~O zS+oHei;lsv(SS$h(b6Nc*7lDf!m5dPt!%TSuXI(=9D$=dwKLra$UPAH<*~`@(%@a^ z>**!1*N3q4u09NfC#j-{beyky_}9g%X9ai$_5yqf)HQbFtqN4ZQW@%66-^bFcFZs1=ApdH4dPva`jcyutFL z(@l&l4ZMZUy{kF$`V7*W=4wVism@02TOotu(p`_*%cQyUNqR20p4AfITqqauK z_3n6FM<+I>uGY>0dfD^^BdbV}9pgjqZ#4pv^MkQ%9w4yIuGqT=oJ9#3FwS4$V$yh1 zUrMC&U_2z2=J_@aBH&_NnLg42nEOBehYUj}b!YB{x!A+wkPON=BY_LF`wpVY)Xk?G zR48rkWho{+mi`+XsxtQt^QUA5C`p9Y(dQGmoQ^`P0z+uoDE0;ewB<8r)%s{(aPQVn z)fiR|d2a!{Qlg4vO{a(C@DLE;T|fHj;jm03qkskv>Q+))695NG_dKc#KYh|=$${0Z zMoL|6ib{*N%HKRzQaCTZ9dnbLzn9FSMx|)%*>dfM`9!bOH8R(rCmz^Iv1sob@qZ#G z7lAi%AI(@BLKfkf#kl7_w~31+GAG)TY&f6i1JY36?1V* zDb{(9HG9e{_JFF_bIICc`6HLGjS#}$FR58~&zSBzHo1^>K&$szZwWO&x&eLW_+KMx zR~=PL|E6xScy{VV*#W$K&3BEjC5}6CQL@*PLUf!aaDA%PLld0={debj>Rtsf2%cJVcGG|tHhS2@{^Q%8s04fmCvjhK= zNq&0z6+%4K=UU2V4exvu1_e~a{tI!`&+D(@C7LZaeMCf7b0)EjQ{t2?zz7b%ci=e| zCwUp;zw0Y=3W%VonTD+Cb|b#Ue`wd#r53s zd(Ign_JGN7a>K@ejGK{@UF>iN{;G^=^P33+^hVpMzs%+U_2moDZG3;W7-Q?7P+Hz( zBmv!hbF49KL{x?ge?;Z1BLK*?(+I&;Z%YB-)4)_HPVL=Pp1>+@72JFE6f$jdcz;qK zXpkN%-1{Wk_%g1h2Rja_Q;&MhQ}?|fG#E(e$Rm@NNz_;_@ zUnmx0iTy-Dmj8?H$0w~V!f~_OGL;rblwayzt-#bP++c;e>2%xMclpz+EXJL3MvA81 zu6KG02EMotfiB-W;Pv~*kF)j7QK32YUsph9!smO#fd&GAc4P;vu`bJ*?*AilQq0=t zFabY+rEOcj5&E6;?plDZ*-c<*CIKavVV)~OyDlOiNAGJ zYqJwE!Ix)T>{O-kA8*Uz*N8Noa^YZe0!1Bebk$@@>$gR5sXI7_XIL9qqh$JQ3JWO! zj7iAexrdK;v8KKd7$397Y)>R|E`Mz#Yv0O0wPCP9kjN%!f;e5sTSH|<&%i_+$AFYd?@W&;ddmT9C6bi zVt--q6EAh(aK9*b;b#$o{R(`np=K68) zyAqCt4dlUHuIiCZW%z{Wv42&2BlZ<@B3viSn#lqNgQSNYfQ8I3^lL9Y#8#d_Gt67T zRFYFo?}p<$x3MG=y97YVLL^k|*`6oc&9P-6jDW*(h`C^H*I42!a0NI{ z;oMIqS32hTpWS~BCeN>q(}u1j5$%?_o~Z5*Pq3-hSFG7At--XcZnmNfg7Oo4PvkR& zC+}^SZ7lnkQ*&eT?kr{pBD-GT8)(=TjNv(A4U-lt+1C7E+Akb$zchW}Hgb3VjFA&| zC5I;`BCUfF%76;~zS<@pj^jwPd6C43xS3A?6i%26?Dm3`+dLnlEIp*(=-n8rihbfe z{jDaM$d56we-FN0%e?vhBZXUb1gTHezTq>I+cSo0vM~f?_YQ!S`?@!OD8(tL;r1R= zVC34mxnnThW_U34BRs`C8lqg$4fl~NeY3Q?a;Y%Vf4D##+|-W2XC({F`-6><*4?GkQi%tH{DILLAAZOYgNi5vh@UQq#!*d7tHnopHFmHpuh7G3;$j z+0Q|!Ig^a;An#iP&~9&|GrSwRg`@`&Ik}&bAKE(iwqyo9bX8{gxl%#c`J#d$(G0^T zN|vJNHSrv+Ql$!PoA*qq_qGN-^~$5&t><dLuDz2wVcjD^&;4#YPe-Xd_C6H*glmhDzA)jhbZ71TYv zG?C3GH`^~t#Ja0LW4bGy{jfJrp7C2ANn}bO_bUE zYvu@i*z@k3-f$(qMl|Z!;R;r2`^})y%5I`;R<}4azNQ`xUBu`EKPp5!eC@Y~AE*65 z0h)F9i=R!XTG?txb zJ4&K|N%o1MX+2T5q%q8$fKb^K)i25Ff$?7_q483Q5J_z4+MmQtv&FN}Dmx^0`iVRT zWvY<%B*k|Gq^R4}1=^lmif+7#Z$^GW&1-MJJ*&8*80HC!R^PrJHcV>%ur)(s=&jls zF?}n(eeM%4jBVHAi{&(hV3v;vXgk>_ny(p`Jy8@}S-xp2BvU23$E2n5XQ^+C2@#L@ ziKW1jdSj3BdjN7O#~WSxlbdkNoZTI4S*XrmZb{2`XyjA4dTGOUnPKO}##v+k_&Ndh z@oU(Rsa4Jg-Q^Hn8S!z4oW@Y zi_XaXISE}Z#1~2&lG!|YyN{cE?CXy4S+C=0Qz)d&Au<0!28t%yp5tmoJtx!Mwef){ z3d3T17EwN21kdQR9!xJM63n1ZiE~A(m?=8?n?}(hzn?rrvtlMa_~reKPoykwM4aNf zu>42H!LOuUy1phRh~cLgC7CWC${P2!f*N7QGG2|yTE9zP8=RMqidi39=5QcsmKxIn ze-n~CoeVv4KLKZdZe3~XCBxQ3+w{YIB%OQD248D#5G(um{l!I&KEZ2fo)3-p zSm#czUY0jFccP4q9PI7$CPLq8pPH4hT+Jq{7kj@dbMY!e8~HHHHLse@upZc{uNOz? zb5V13o$cDQiBfZjDCB$4CHkyPNO18!&y(pnhrjdGeUH{qOYqpMhVNd-W#h z*&+==xKl8M;rkrJAE&aRd23FMDcafy@k5vcpc_Os7Lh6I1Zs=^U{{pP%i~sX?XBUZ zjpa-!-v0#wXdfSyrj5`CGkZQQi`D>~i&MQTG+k&9(YAXOT~MFb#Qe7vZl8 zI=kg>!L%odTf}MVS5J{Gs|E=AL<1qgYVXb-6Ex|dqyJUwsvZ<|!kxP&K1eB-xaK)% z%THOm9Zl?HhYQ&%|B#i!F%O~NukNr2*}b{R(=$of_`m?Rqcm^ZneSw;yp9!?@{G$l z8FFM@T;3DxXOAs3o>}TaeD~ehBUh{}lm#f@Ye|BA`7XsWdLqBs5)Ea%u838y->q>X zr-9%V;PSw(_P+6<0`xz2Emzgm4)ulE%m+S`{hOV!bYdR=D0N9$qfk`E8D3*-tvI5W zS=9ZSAy+Im1iL1Eba1t0-5!iJR6SL}w$sQAQGxpF?X6?feYWWCx<05Rz7QYJDMX)R zd*yuN+G9d5?*V!&c|!C4;eFLE(zaW)Cu!EQMAd7ZyL5R4O=O$|?Lmhe9&@tva9_B2 zdhddty5ziF+*HcAhX9Mhvcc;B*p<$cl^$1U7{4p;?3~~j=|4shwhRV+5gZo&&apQdiFp9#b%rHy$sMLm`|=~Z$%@lAT|LP zVF?j7^tCXX8mpHRU0!Se; zJD*`eZ{mb`&G$=p_ARZ_EWpy_Wv#9vWjb}dW_0a8W9k^Kums)rfPN9JhKKF@g)cGk z1-&cVkNHUIkN!fZAz2!^x~rdPHt22KH$P)gns}<)nO;rCP)c_kiy(F~oPbW+(mjpN zH-`Y<)epW2)xYapQo#F;(GDyi97ZgWo|^{Zx)U@11G1kD(l?DfZ`Y2V7et{nbmUis zDn~qn?1Y!Phs1u>!+u*OD+Y1#ltNaid{;{!QHp~uIwH=<>e%-;IiDoJJKlW z^0`bLucH0}L%Cyqt0(Volm1pa<*G{{t}#U6MY@?HkTYQQQ>zq`t4(4m`?oBL6()7c z!r9ZkMRo!|#J7hFqOGnm85YX2C7y|stvV^6obhJ7nF;LeYs3oSKG~f9oUVhM4g%bs z1TTSrniJaK3~nZCDA0&zF}%$JY`Mm9WPSwj(JHF%v6GvGBi7-_GD=(kz(+NJXxUHK z?d?DvCM)F9pPQ{9%vCyjs~D{hvcph33E|NBQ3)f&`t0fLn=-wV6)c03X#0 zZ83Wh8Vx=b|NM#Vi9a1k)7ZNfDgACOvX{K z{mzL>7WcJWc{u|xjfn2aJ0krvM&h{Z`1x7L`x9`6{kO3QpI~CCYP17M&_-m(blc(r zKarot`;Os|iNX%`548*as~~KWcrR1#;An~PNuz^Dkyi0(c?0hM4qz`K0K-la6)@@j zThJuqSK&N5au}Ww3QP70r|70dqtm;ZZ`X#AEoV!<*qBb~iy6q!cD`0TM8#M@GSQh$ zX9shJ%1#6DAx*@^o~j*7l39v(Il_%dPgD<(f?%JL$*eMwKP0eac8Qc+5toG~Ulmu3 z`o_4O+P>wLrjEgPYO&bjEZGFAf}r;n(l}5&!E42M4!>Xdv$vP3jC(+)2g&+( z&epxyS%C?@&W{p~G+-X}@G1do4q-vj2=w#m>xK0B$nY=GaN`}}z?%f~u`1x}@&@v6 za*81#bO+$C0D`Uh0k0(Qq@B9Q*?Ig?vhi7(et$BIcu^vOC=ls*wjd;Yjr9^_@djx4 zLl88XXDQjU-NP=5*wwFh<^3GTbES>#s-!z+CHK{L_&5a3qKm^HH^9TyOoyq+#-Xv&~+6GcWHZp^l&do7Mpwgej>fN*^Bqf~SQTP7Rrf&#!t zD7Zg8%;}X1V?QsXaBsL5h?{D;eCEo8NmC-i4#YndWkzn$D$Q*Noc4_&6*gRol6?SE zK>H0)@8`c3d7=BnJ1+;3UjUxYh?#kP`nr!FKiaM4hN+;DFMdZj*i4%s z>|AYbb;^Xikp9IuWgBI$ghB$G!-K`dt8@keK&(-MOl@F_*?X6MAbDaz z-3F1D9Un#c_oTH{3GgWubm;?@f2xFR8l%)jvrxx)aag7s#N7nySF^kU`Nsp>Jc*Tn zsN+!>O}||og8;aRHvr^uBk$4&G?{66N$ec^FPwu0F_l=bvLgVemXJhn0yp3@!UPv& zpFjP1`E@c>NYBiPdDx+*B$*~^>YoxmP+jvNvNQSpXB_@5!T09irb&d{c*g?QY>k>w z1Fvu=A1R%jTm)qzRuU+m;H_(aheO48Yqjsy$)XvUZPX8)E7YU5EWq)hgE^81vXqzc zmEAaRM!y-@gQYy*f9ohZb@hU55Oz&W^)671kfph+(O?^#G2;*~b;f)|0>J zZDR@=n8vB6f}pDYTh=wLPWX&@t9=pqrb3j>WYvUhlNg01KujkUrL4>Q-yb7Jehi=3 zvM!uhVfZrDz##SS+$c++H*;fnDnv~HvN{bmHwfe$DBn+uIjmM}^*P#nblZN1!r*(D zj8p%4>nRki`{XNGUCyS8Q5Lp2yr$JR&C{tHtzarNk46Q``7}YbUp61%gzE#dGg)W9 zq@X3n`MniQhzSo?*Z;;rA^bq|2lT)itFs|Cx?$iWz?sV~?`=pn*W@tVBr)tH_5cTs z`5JYcA%wwzDQF7kfGRfrsh7;-%TO*!@JfUk&g$u~jL-|yINnLR!p%#iXqZ5Z8?ph1 zXL0*FR(YG^;1AivtNJ~lJKm%nT74c+Fu{1WnzZU2(D9-?MZ;Rwu=Jn`qVwC=gvrCS zYw3Gpi~NBvNjUxa03ULoH}VEehSsl|uBX9k2>~{)!oUHf;H?0&f z05`$!3?2m;8#ThQrn7w{!t12xGtH(ZZEY8bmT}_(4jBw=BuYU80Ahb=RStl)xAXAKS}GSUZzHrIjKi7S zT56)-fo<)Ij z?#Prk0#2`<$T)DFk&;SmpxH0+S%~VD2NfNH9d~zU03ut7b&OE&4b@e%_{+Q~pQL+` z{u$Dc;#Do?yE$aMdu(`kpQ41IW6I?rd@~Wx_dRMR=wX>*`gkoa59$y6q6a;aGjOIqr*OdPMUc;WX{BWYIber{pDOpfe`mBYf)hHv{U zj?6ErrR#QYpv$p9CZ9}WOxut>|W}G%+&!OF% zT@s$3r6I75;HT4aS9tN-h%ropuvUIh#dop?;L&{B*`lSJ0E_6;3*Nyg$YS^ zn^iPvo3mZOv@0nB8@FgVZ@&PlN#xS-8NynlWjIcD<)EB}f&IX->7ict5ItsuaWkRN zSz3AyyWmU^&)QHTcNvr~Lt6&hQM`o%mOb-O?<5tOVmo^OsyOb75as+Q?rm#?w7fiF z-}GHe%o4jSl6B*6UNg@IU5y9`-!r|l*YZtzW{(gf*OM?pwDWS>Af9tC$T7b5u7vTa zxB`xOS=7?{#Ko}RhqDe~U-#2q`8?v9#~#R*k9R{yIUo^-mbYsB*C1YI;%0Yw7WSaO zqaLezthxx;F!oaQ(E)Lw(|d{KDm#|gho1)#DA8}ZhMMZTubY2U;-Z(X1e=ovZjo?? z23!fTPtn^QJLV%l;{iuvDl8;wN%a|%m+RLo!vQPW;XV7jrNGDJRGP6M_6SJM?k>(> zzoVfzjj%6o;|tLF5*E4e6Y+Qv;2L*AL5cW{j5g_<3p8GX#}|`G-~%+!q2*DMYS1(i z;feViPDb;=Se7v>hN!1-Nu;=6K&>)K^gHz0--OtrL5f8xwERQ*D{WZ%89kfLRe!&_ zDaqLL!l>X_WR~3yl$j~XOdFc^H+w_-$z|;ez*rB)GHP`}w;*Eo^U^NEj9UeZ{%crv z37qG@7nJT3lj(s*s!-9R08jL{<#}SqC9u;e=TjCSTNkVSsKe$)&y4@rXfOqO(Z{i@ zefAHb&-sqXSobQW@eofM$>gYC**5&rX+s_u*ETIK8$?iq>=_Id_; z?tfK~8!VogVPD_cpJnqyij`A~@=p;OlX%_!DDfBkH`HBqbE)oi$|(zNKqE0LeG zuS6_ATht8qe*gSpYv+qK_7Ps0*T~tFOFI3B@;wdd$>_9pR=F^{2L#3cf<<&sCm48g zil+~5Bo`giSxXWCx?pA@-66{;CjAmTZDk==KRPi+)b!<@s>xBdr%FD#s(xDhOAMGHiN~*>2>rDm&DRLUKkeowgk zS#FDYQ)ZuN=W+X$T+vK~L1Oh4|J@1u%LBY&N1)#(b$A6Ez<;WC-|8lb4p23q8|6gxi^GTDOiTE_Bs3@K`)b}lt2d>U+H*AJ+k8(*aN}Bqf?wAstv+{q*0Gx(6O3|eBe;KPjqf}`p`{}&H zN*`7`#3|Vvv$+v$o*S{qUAx~lHQv3sY9u4;PKQ@xcQBw~ z&Nk)`v#*eT(ZdfOj9^A%kHq((fbhu39NLK=erTzdjpHhwvG3>mG2x*aUOc}Q#kg}gS^&@Ealc+QCW5pV_(L}Ix=Mr zFH?Ha$ZaP`6a)!uSvf3dkn3G>>#x(3b#SN=N0Bi95%KuPXWn1oqy0qVAlY#6z1j2% z9}7Bf>i+Skf#{)L!x5&(4a!JT?+V*5Su~NONj;V!9R;OgNpM^>L!ZJW+PxS4vt9zWa#r0#ixDkRE??iu zFTSznx?Z|D#O|XxuGoXCY#pM>@iQtMsr5K$xxj%oWKd1s z@wtBH?!vEPr2g`Zc1;{Gi9MTkto``$p}mFL{Vkci zH)5C{hE2|Zd% zAuH?#wge#OJ@Rvv92#ds(tiMl7Je@%SW3nWotb?&N|OHigf>FM$U{*2G@?OaR?o+2yhdRy~yq}=*w z7)s82$LJr_x;~j7Y;FxAS_Rz@Ka~3t&J%~YaJcYUAM9359~qynZI5luV(1hb?%P;< zUgy26U#uTTRb^7dCH*K9(Pa~Bj>KRXG<_{6c76zhKx=_+IcFIRH6`n++d7C|PVkD4 zt!0CR?2S-6$EvdZ^ATQa`X*Rvt##8UiFhtrKJUOd+~L9v*RX#W5SV`|9w_c>&m5))f*!W=Z{3!m>~HQzJynbO zD(|WV+b`JXuj`#+W3RsV9wXIPaAdzot|n9);gow4*D&L~ZlV4DD#ge{z2VPL`NqC& z&^o8)*|^xl zrDEiBOcYz}kH$0&Co~9qr$6u=ez{oatr94cQgolC-tSU%L4015ca}BRP{vb>u-x2G z$(-DWy_<8o44VI3;MMzT`g*8PPI}YJ!dCgY{N$VC_IneG9jm6QVe_Ze{~F`+^}ROn zYQ=;%y4#J_k&^ayUG7X~m#QicG_GW!JY=%aq!gA=Z_DJJGcG-TonLlGZ++&T`u@Ps z=<(fjOxh*JqX&#F)pUDRj+9%uLvE-+QBG^F-|*8f+JG&$ru}LtYpr@5u%-ykD$H8t zF6C?lt5!e$5^GkwOcNMR5<6^q%VWYlFH=Ylzt~kqrRTz^FPXU4slQn&&1S8v)>Dr5 z%ykLo0+vJUg5^D;%*Qe`|5I*9|<}ijcV%BHDM|VxvESR$O zjQj>JBQYz*C!24)`iWP0aHwvrZz{u%iTy|-k)V4D)akDIj}=qjuXwP(-`4iNyE3Wx z8)t}|D_wN~U3tw|gRg-m&u?o;zSz4KyyRSWc-b!JeNu07JgtSpXHE-EF+b4P0D%52 z<2An_dPozxp_q3A@7x2qtRJ^yw{m?QVfH!tCN~W>wC(bvEq}{9&xpC~GJW0Urr|fe zs%jOuXX-Jv|Ud}asAxDOmR5p zKDt0yQYk%-)^ndm+G2Vu$}JL?G4ma>3_Hkoiao8yk?r~F`(!lLAJHGw6fN}r^J68k zs=K-=4p?_Qp-U56tC~dxMM=k2Zd#)*Av^Nq@@mG^p1L{xzEZ_y%Ih09Hd^?|7`avn z(UVEP#P>JEY{Wxiy8ch+nDBIB!`Vo$Sl$BqI7RMqhgGFs)VE5EAO5WKwM-K!0NKG! z1n9JXcdRCrg>#o4^pE#fEDbRG^5DHX+pXGS5~6&D!@$9xJG(>r&s;;sx_E{}rx@R! z5dz756+F;0)TnsXSMK_FCR1>%v5#V&OQy}8{Lh}DrnRpl0RLuMD;E6MjaIp8cX{5} zxBGE~5nae_PaC0Jhg;jEojNs`c{P4LH*NmLC8;J(LEr+d*#J%B^Oc^3b@r#Z$SO3` zDQvQAbxKsdood?=Sq+YT%9Z=PglN$w-lZH?tDmFZ-wmyzMO(NhMumDC!dp_ZvBp`j z-WAxlj)YpN{DB@H0}}M0$n&BzRd>pI%L9|foFmI@*)l+EC$5&G`YQF-Ey#(c6U~>- z?&E43`%2UXBI0G=i7h)Ox&4#ePC;M zkR8otZ=O(|2C?i+^xQTT6zqzvjAHN-8&jp~9nRZO?lP?6pW^jt+&Pg>%*#$pjf?ZW z>;{}-?MtT^9dG%j>iUBUynKMOmaIINr5Got=kxX&=YBU0?e(%Mc-wBgm2Ej~&)$il zQl?9FqY-QmXjJrliuns-J%4|<){S8i3`ckwq`ubFc$6b{%_Uc8h!S;5s?3r&8{ zr`A&xe%$72)MJl&S+FjCoCujbCQHBN2 znDvb1DCgKhNBEYxH%0Z6$l0CIpOU&iz2MW84a9XSKL%Wf8@TL}davKL&?r}81d8Yc zh~NPfsnw$i9nS9vY}%~^D|iVra*d21KofU+pBav*ZldCKgRLDw$F7kBz&3|l2g9LY z7;FIFRS7^R$_u;M2l57bZ+ccjW9F7N1z+=6Z`fbyGT`ni!5e!RgG%)9098~rbTCZF zF#C*O7E%X?1`ZGnsw0Grt-lEpFL2_?gK0O^MDyI&zN zDq2(i`RqHBM-?&hLlNA{>np+XgirW-r_Id$9#RZDG}^fT!q00B-4I!}HjQ@!-VD}T zKS;VNS7;`pQK-gpu_0>8Mb-t8q08nPkf~<eFK#X#d!kcc>9IUp^9=2`+r>-X(nAJAv(*Li zUiP(}?XB`oqtnsbo7)U6{gZ?8D+!I+`rDg7W@xovC+R$GAG_IH&Z}n-?;TS1(M;t+ zP~Et<)193pl2M`d7M?w>vBiU&obJaCn_Qjo66YFb^Y>($f0#2nvI`N!$NB&=kkp%? zfX%J{=?ookzMlW_-6!k*z%REC`5Yb7zCRG@1KVg|9Pb@>lf)N@0aoAg0N4cYdLo}i zXo*CG_JO4F-E;VIz7VYgga2fDb?f;?*Yd}hZC@jLC+Ki&XLg3^8Dzex^ZA9!*4iix zcqKPzAka-%@3i}hN1@8=UMStpRSiUsRW9R4VE^rBB12gIntz+w78-AQV{)oy-3r06 zL_M9EY_YNDU<61u&)A=j7frDD^#S??6{7Vv4>y;iF1~qC6&OH#$E75@DbFXP`LSG9 zWJ;oJGrJz!d)YVb+m#)PH{3J#vfTBB$bl~2cW=Vuq6S@y2DPN{^})F{CDw;Lil`Dd z&EqW@?wLRB^_t%N{kPDQ`qb7m^FB*|elIKmh&cad<%u<7`!2WGpN?sI2_X3j@zbZ$ z{n%qan0s-okMXTfy^nkqn}$^bZ@>jF<)N{KG(sPZNr+?CRX-k?2rs&4L@%&@ALAtLE0Eg-H z^Te7sx3$tg4}0iS3z18wll1E>I8zN1LB@*x^ye_IgcA9M!U>YYA*CR=He9}-zC?Q< zAl__!=JQwvcc&Q4AW^oeR~1po@`((&)r@;$LCklw(K@Xm?_eszpOTV~f#p|kSj+gW z$IAw~bCPX2HLAIci!h{2+(*JEKsQIAy_IAvvmCYsu1i+-q^EwkXrj-cbybEa5;_m@ z9eZdQo%W!rK9J!~Mt?*N=W*x|)OT%Se9*VjOpyD@6%U&oZtRNN7H`b0q zJd?Iph1jYrh)Z;|#S*S~*jkpH668-wQ;}7Ck;g1v)v0qltsvGohpmj(t*myqZ!G@3 zIpe#&i$|AFz1vXgxK>F__U&U{=7}pz^FBLxmU0s1N1M)yPNnDvMY@!zm5OL2oP3*9 zlWpmxH{Eg(_Z4x_Wrl4&AHNQH%#1CRPs_HBtr{wZ&Aa{U__=z>-8@W|zk_{UwEki! zW#i_a-YrY%=BbLad6r4XkmuHa^n35^<1w-=<9(N8Q-*{S;(zUmtoL(&dtu^6M%qkt zb3wQKZ%)Oya(wdEgPKC&$LT!F z*6UVGMrfrU6;~LHz0ASbEIs47J1@4#LQ^vHOf^00pK1lxf^)BX>wAJKjpMzkZCV5J zeL)Pf2Xw84uFA3U-0!>TlXS^RK{KoHze9q#Sh|_GqbK{nJ>`yUNn+XC*UdV>JCq&H z!gRMjd-lRa8}$T7j58BaI zMs6p#^JaqhX?3Zlo%bvl_6T}Qc$BFG78@{}Wx+!TWXP6+qe!Q=^E%4l3zJQc^ z`LN1e`}~@E9oy535;WN;{dLd6=749q{E9G?ax4iSId68b?bU0n2XLv)A|~&-Ya_ho z6gu&|`>ihhwDZ5pJ92D9a5tLOAXF&(1U-m>5W_d`c2yw?$p+?pT1ERO|N3DQp!)Ka z%H{pY(7n3NOU^y67Vl0>M%J;}V*_SQLQO?LMN5pt(p)tIe0w&Vt@M%QB;I3;tzW`) z3dHhEDA_Cny>Gz8u}av4o0f%ZAs%Eejx6!>PhqSu9}F{>X?g2doI1@?J0P}ocSdyg z0#~2QkA|>aPr7-ZRNj;0NS50k4XT^#knzmgqHAB-jzt-(DQ*QuM(V@ z8cHI4-s1oL-T=kZ)igl|rWVJg{PA0C50&rjclVA1H@uXFH;O{rPnQ?THyHqbj}Tk6pgd9Fu=+j-k2LYs!c@nB*~< z0)_Wuc<$LSnpAW#H+gX;ugQRKVlk$_=?w;uYynrh7GYXva;Znw93S({J@MJ1se5~% zTi|O)f!@5^lWFNqQ<*-v*FD*Y1c%@pyxkR(pYa!6{~#_6E$wtfzNpR=FOW+>na%Y;1xcM zU9x0N!06Os^`KEsqDS{&(giuZH&swukS+8BY!N6O>q+V0@|hdC8DTBNOL5r3=9GhE zMWbc(NsBkBtR+aki_n(GU-Q*$^cW!iAFpoib2SU^*Xt|pjP)|4)^zWV^>(H_+}d`7 zuJATlL@YML8???>v^us4ok&01#+RUb8;Ag_P?B-`BPqutWP(k*L#I<1B&R#`km=Gg z!?jCS0q!6K!%l-Z;-uM}N>P3=5_Ud6MSBBuks^*v)6HDp>xr&=hwX+ zQ2xXtg~b^98BSOf|0kUvf~SH65+Pe-*vQN;L)Am}+zYsm!l(T4Wt8N5&GzrS(y>2a zV_|W>L+70s)-0O_F5*r?TiL|4KMIOhRR~uT@P}QB-X8v6F4+s)tM7WJRrL#Ai+;md zJ!D>S=YP)7e>Z~cPbS07!=5|0HfVchuh^(xvGA!Pg2`#^LxvWDIxU6sJ4gU*Bu*{- zJ_UC|;k3i{>b2dxAN*pYetQjFa86y2zTelOW4wv-u!uY$*k`)rX~cu%?)GQ+@$-M! z@UvGm{xhJh{oc|m5H4!rN2FB$W`8PisD%lIfF4&Xp4`UM`79-2YH_Bdd+f;9FNZs# zE0jxaGS8N(>FKD=x(t+im!1+x&st9DUOHzBF=|?O%{*R`3*i~gM)FUFds@i&V6{Ob zV;?8;DUFb)8dgU?_eb!kyiN$@)Vh*9#uK>1;7CeMc4R}VUDe8(XC6X9Ov#<4bcK3^ zoaQGX<)S{s-SV$sw}tw@*;_fcAJ=0w^?pz0ei|!%l00jYdr|9Y-4ku%wJe!!)+G=G~%qT+kk z1kIpmk$3g0SnFLgoYLx5BE#%#$gZE?Vi~__9sLi?N|z0dkOW2*@S9>tMDV*-h6cZg zM%z>6I?;F1@g5n_Ckp?xRCWtfvJ3v!Tx_48|74Gy^IyY+gpiE+;9}?3hU(#uBUiUn z7q4tLgw}@}ZZUCI9L?L%4(@vMza+;-85wjqqJ&%lASLYrehO$%YhV5LXMLHIzV$!0)e3I+>ak4-x=y#|g2hnGYe1I4 z^?}T%(FQFc5R3xz29vL>^QjWe4_}P+H;T??4TVsz@HQcVKN7bLRA_#dT1Hw`GO{5tL$!3$vu6|cDssP!%`y5;v{4cf(elK6LE zpgpJDZUgtyE(Ex6_iUk{0{gyfmx*I3=;r-q-wflX+n1t~I=nahx7$T-{+4ih8KHHz zF;QD`UKHJCQO^J4bf-vdqflXNRBNiv$qhIWEXt*G-!{zo{Z@K;m1g+Jsy`##XyQHEt8eR9p=3EX$~;6GB? zvy$CS4chUCZB6JTou}t`P3W>l)c8~;_{0;>wR{zEtv{GjH)l&EEYaJO%}cY)zCCO} zrzfk32q9-Gjk^!W?^@AF8;GIiY7R7KID%GuXXof;C);6MM@0C+aC+E*z zq6<~{ZaZrh^-CbUG*#BorcEp77q3z1xJ$`1AA@<9`~8tVQfoU!WPi??-xtz*t+a+^ zuK*y?05srae~9|C4T*XV;#Rc}AoFN=7*pLI&QJlTn?-sm@4jS>C_V@%_RUI@U|R2) zUjCuk8msm0h6S=6bK4Kin*H|HH`bw^Awm(pTmQOlb|!JW*_pngP;YwOJ8Fp(d2v^5 zDADFiSF1G4xmdpU_OHEx^?R?YlXSLZuO@cvGZi2n(#ztBijpn)?h{t&3)nmz>Dz#o z^cMsJVI*=2FVt1R?k5dYJZ6Cq`$af2)_|fv4SkvIw`K8(d=t{&5Vuk`110xT%v(NP zHfh*5UeEaD`!$gFE&_|vtDmWCqqjP`o?O#eragX(LoBX#t#8!0Rx{sB&GmY|-?+_) zUC&fiP0g5OEQjRcc;-0|Kp>eN6P_mYn zO{i+RYyNcWExEn4onk-t{Cv+4GB!EmWZj1a_IEvysY|ci@gJdWQ>+TJps~vgJ)U7N zNrT}y$!0Evg7g=TIX(pz!&rfR2+0dXj~X$gc>u|z`7N8o1cd>?s|M`?`7fcWMsIfm z+BKyewnN z$$_^_MoAgXD2p{&+JYY(@Qh)^0PL5bZ!qNw#H(&F^V9951Q{s@aLa(hTkj zq5s@$5pZ|xmN8uFd;Y1%FIug6OGFEJPDWjt(09!C>Ilu)Nh?adox7;zkz!czR8J0} zajbI-#RP^(AFO{mbm~i|{NAtqtm)6dMg#`I4BJH_m7N35Z zD;Rd`nYy$JZ{i)!Dmd1*xNudf^(V&` zk2YmE)?|qh#$@VuIM#3vMeNk#B5=6}SgodXAn@k05E4a`HORSBWPOGV%tQSRSgT!$ z4JMJr4j_Am28hDoJgV#H_OYCp%JcgtBcPgY=*BDCdj7J;jH8sOamQfse;fovO7yl- z9(m+0%PCxKG$C(Pjx8l*d}TtE^nuPrQYDna|Bsn;mHh60(vbPI*ms$!h6p~7257~@A84(Q>){yx2PpxYDijXhe+)WijRLJGRIxUZ1-?k1esu07qcou@KV_LGadCMlS{ z->QFS#DOz$bFQ=U(tW(t(F75%c>(J8{8!uDl76flYD}~kl*^mP`ZzP}QEctp`lt@m zl^O8((K=ld6>RE4(32~X=fvGI?o2?ynI+VWb%fQvVlR|Ce5H5S3HaSb7pj#xB3dy7 zVhl94I`wSVC$+E#x4nu>I+Xnfo`n5b&3ts3|L4~ZL)sBJj*mUFIz03;>?3L|wMz$o z9DcS+qhEfZ_re{ufym5(Cu24FF2u*yJN7O6)nY8yKQ7_8FF;C(a2pNf!>geYwc7lu z-DE2T80S)-#p(Q+r6Ans`r6w%zkun9yqjI+!)m`9t<@%eJNDaK+g#tOB+mK|N*vtY z?8d3Xr~WFw;srE8;Ky+oclGPJQ9dkHJ*F4TgI~DlC>CST7e&0CJ`&J9W)#Zw=%#AhXUItn{y%4KO2v|$?lMusyO9uG zb_6v_Oy#3m>me({U&gyX=k3w~ek~b%&(Z6nn@zusM_laxF6=`qOEdox)%lgSfzg*n z{E%9O7dFk3nCJh8v-gauD%-Y&H;9-D#at@EKqy2+5dbK!Oq^CvyTt z0SOW$C?cSOfRat9NEVTdfgB}+2(OQ=b?!Os-uJcl-QC*#aZlmed#yF+m}B(ONADOI z*e;)PLZY)99j)KB6T<^+Ij_I^AhmRh#w?iM)Hr7v*H7p_(5H!)&Pi6BlL2TC>?8w^ znGC52rntkY6MxD$J}~-a;^K7>EY6j)k6lbdX8j4NkTF1r4Fjm?-eO&A@=m9#%}fNz zWz*TitWEmNy(Hx_c<;A5O;{t*bF&N}8pTWlqN0}eZ9MDoufKHaiv$NA{Ryvu{^}~G z#LbW1+(OK2z-Wv4A*VLQMZgpkzJY%F$P%uq#J~tr!CaIGO#(n|8&)ICj}!_ouN}kC zvDu`JhBI=IO*p6%ASenAl?RXvr+o$uT>3N-hkkW%w5SebIOzce1U|3F9Foz1{tV_H zDCW^O^JM}G4W{un2`x8S4^o;z$tS@^1_2tDQm?U{1-qx}K zp20LdW;BqD+xOpWrLPAmJVJf(xxkD%e3`I{dp+6QfswfJru7=_Qa;|k01%h%8O2f~vX8m-nA2~zq z6{>_ep!a$crF%IaX#%gC+snXfLmei*#Xn%E|$G6kYAvAUoQ%ZfiXL-KgSQUvjij4sQ={TgmdPg8`?Xo z!HtXANKu@V10!!Q4BwnDEo;??koi60dI$4Ex5h|13@>jsy^WyfqHT^CZ<59eh1-`F zT8z)TGw6Q808zUig_J*Yf|HZWJ!w$7qIIrUC-XMj&`~iB$C*lFEZ3lRmC5({W3*LM zo_EUuqJcwcSPf;HNuC$WNfg4F%(r?fD&hxZHCIxUCNDT4HYR?=M1hz~+MZ;UwITY1 zB`xgK9vjrg-FGji#)KcgsA92n*3HcIcqhf>>iRL4nBs=yjq2nAqSwx z9V*R`N+6#(gkBTOXyo`DLPI}Y{d2PI=jV?hZ8L8CD|`fz{ov{{G@FZL;rNOeP^@;^ z5@c(Cp#3CdXQH}|s^p;6Rago%s7UV&6O8m}GGxBjXNZqfe9=NH9}$kdnu(UbAPqRl zRgpx;>ov6)05rk+)OmPF$-MG@0GFK02kT$^%yurVqXpQTn&o%3Z7{>@Ed6fBYjRoJ z6RXzDec|$K+^)pcm*~A{lD8PKR!ImQ(>Dj1W-y{>Ug0snAAriHzChfL+k*~wlLe)pn-PvIE^lD~@Y1yW01zfDdxQq0S*`tw>@`ArsiUqOqeLFwKC z4wWT8R}j*vx!nq5z+K1MR9a5m{V$fs7unTy+{q_KzINnR{1UU{yhsjiC`6e7lwSCz zQ(bqeKP|3go0zojYOQnO9unSAYZxvM$Idkc~Fo%1+ zcG!Ravdx(m^KyoiXs#0Zv}`dd6_G*)E#@AL9Y=0mzx4PSEC2qr5wJY=+(E3W2hOJ% zA+B0#h0{4sFqZw1bz_dz>o6Lt;j?MTA{>VJ{?1+K_Xi+zt&!u@A=#)WomD#rK8o-G zcA1R(ch3i8pG-A?1*C)&r-D(VOQ@FK5F^INdM@e0suydzW+ws%KKhgc8hTf*Vpb7o z%W4R0iFeLyC~sEh#||lfE4&c_esIYzE2 zjgJ=>c8M^T=Cu3%ag`Doo_X|PkMLbw5enjJ`MQPDpz{+IFgnC!n@ntT#yRF}La9k!y zKl^@Iu3OpB)Mk-zZDZIyCC_~(XY+kRtfPH$X|mx>3yJ%|dEB&2eyNmS;Dc(9*ua@t z3qvq?eIMF^CF`HwB@ezy8!)u5L$>Nxd0v_3{~FAsZ?gS${>sw0%|gCD_x=S8!>gGy z>fyM#9+5{8yE@zy*n|p5`16!?EbDPmhhZxHo7*4Z%b;yQ}t*?(#)$ zs^jAALeZ{QuYnw)KH_pa#<~5q<2+H9Os%b%@^Zy<_0sA*{Q#vu4nA4vOB6CXpg|7t zt6zgm?a@}!p{jz`N2aTb{2UFOprutM$zTcvzt4ycvs8HojN>WQTeZxbMbU|QYP{U- zD}rVW#YYY8N%SlV9E&8owcCqR8*5P>YtG9631ugZ^+LIgkW89mtS^+KX%QF4P9dJt zGNXmIGUGoEFDtk9GMW?quQ7=6O3W!zcZ_^!0-^TuPE-;GJR+|70YZDIU-5TU7IjD` zCVX2Df$?+_lq!xT^{mi+OOE4bW$qGy5y~kMd(x)IDVaU1o zsJryBLws9?+RNA7!zk)oB`sZ?)GumG zGjOZ$GW^#FKws+3yMY@j`_E$@DhQBPXoE`!t}3u%JqWopT)by;&orO8G_{;u0%_|| zFLNA>SyNN{#>Xqg0zvA!L7*X^<*p^7P#3@MGSm@VYq_!y?D1*Idfq1KvBEZJ5jh5qhHbiSH7HrG-+AVxRf%KmvRMZ-&`nW<}hUG_Ee0QVR+WGR?5eE`GMUocX+)kuB_q^ zFv@Z&V^a`M*?D@ocQD{MF1Zew$i>D4l{@z}={f4}fWiC!WVO+nKG;O_IB4euQQM>Z z((*QlrC+M=h{e_sSfi=F5j}lla0*39{K-UK7=9<@$%pZS5celGVeF^rv?n)|_UO0* z?41YINhMEAO|F7`$<`o#L~GiSxn#XHOUir$(`GBX658O$ed6=E4Njj&Alj&;B$qbX z@I=*Mm!~NBBu|`WeRujLL@WkQXqpDaidQ#B^hWlPr?2*m+tLHB%s@>q8z0pU-lRm_9l=`gPtwm__xT^W@B0+p$r6S`Sh; z@^w@PkfixB%+yr6t@}w=bP10=d`TXv|Lqg8oMF#)tCFTt)kN4&9WOfeq2V}9^W?sO zykfrWW{#KBA*8y6lHyI>|Ab(PEssABe(xxWHQ^o_IIR^@9an9(oNrFYclJ{T5v02q zKBHhDDPLAZFTP~Ye|s*(v=CCC&PY<8#tykE)zTuHCbkmQ6o2tOJ6kP)0SiQ{rJM_| z0$sZZLQXAle!-@VXJ5jS#IxW(ElIp}BR`tiz7chIH}BiM=}qdDsI5?l=+epKVi6Z< zkI!Ev_ZlL0W-ejoPv5~5Jh)q}_r-S?$5OG#x#Km%%dQOwWgM{-+Aks;Zz71?)%x*h zYHsLcBk!L@vnv#DYmp2tIVImTtAhk@byEJeB9Dq3E8m^!yE=|IgPV8SEi1qNqbSGf zj)A0-=wgXO3Cb>EO&;2`bC@H(UOVpaKT7SL&B&M?p$Es^)mo@riVUaOY%%W>xYs2W zt9OF5$xRr5*#%(XlWGuNHb*XJyhAv}4b|_B#S(6#eTPyOCmVU}S1VuT@XXBpBg{}* zlG7uic@HRZDLn&{5$wDR*yoD2uY?sK^HCvvM%9-`FPL9b7vvDLFxM`+1u=tb04&G1 z1hS_?()x4fqmFKF@xIt)=W5OuMWIZOt2<&_fYF~6B<5yv zWYt$Il;)9f)JQUN9sW^zT)g{9oR7<|+ka;6yi+7Uc%7b@GhB1tJ00@_kpdYMvk%4R z;@}h_UZSPX>b0q&$#2;FA0a2*2<5)0_A#f+p2rPC&ls})Lg^qRxq##C-Y zjg00rr;y!u#V^Dy?K;M}|McbM*8o&TRxkPRb)QoG=9MAcaY`!Ptu1^0S!Q~FlrSvv zkBu$r*29=AdxgQue&dAGcaS16gMYO6qqAdo z@Xy+jcL2#X$JC3yu(IAUS;y_pu~k?sSLQ$XoS%D~u4eM;PTk%<^!+VCdrfWb1DLU+ zVnR%;-tYyWe+^#oT$c3F?_Wc&@QakR1+l;0ewCYl&kT*5Q`S>vs@Z&+;d|qfBltOL ze~9u|_nkh~UB2nxIi0lAE-Yc5(oV3U3AQvBX4pEg)rU1=(kT|`Xk1owxyBuM`2|0| z39B}-W|o8SKuRe}4ym+I`(Dm}^zX(K{iD~bwyl}_f1zZ?m&F8v^EkXb^k1yZ(>>Zu z<;~T=Il||6 zsI~>3^{+(RAlD-sOF@;&1apX>FCz}{B2i;Q=;9y!__;y6Z}Zo}Wnw4a?+D&v>u>*{ zTx-93rlA(^4|Qwf?89O;*2bAacm1aL6^e|6Zr^u#gT-?6!!4-%ws6_G(w8#sETocT z7AAN8LPnShV0by1z^d&8LwrA3&H^F|q?8tIsxF=jb1n8I^OMo*+dYDX0egZ>R9d6T z(@%)rDEpYcTYFiV`8`8v=bdpHp=-$sE~L`3#^Be@WizV?TMVneg{2bu0ablX`P0z# zSMp&Sw7VQ9Uij#LvJTgX8N=-i-7K<4JY?`xQm!lGv*0;126q|W+g})q3Hoo7T^HOSw{`}env8h)0&!)}D)pN6zY9Ll)sB0PFVaS?tbWK{3UEZ>sUw_LR?W4u=!g5+@sx;{WF z$kq@3vKi+9cvtg_f|-e1>oFq{JPe?+T9;j$EFLSu;d`amp6j&zYvHAn*0Y0rg)+NjKmOe_7{~pf)9a23Acg;}U3v zbX?PU|N6!F*>ziNpG2+@JiuA`muNdFe`W~c(r?U^Iqgqt{})qj^(RbEy_ZD-jCwsO z1``D>g;l7bg+xFjfLiFkp-dXrUiW@@tf{V-dm_7f9^(#q!*b?x>CS%T%Uz3x!oKV7 z^oUfn)&GAp*Sy-8+N2LLCA+7;rN|Pi%7HWzurY!#+o+Z>0%bX#?AZFqxnhSa_r}-6 zoICnH9L-Smwde{vZP8x6?6JwswO12@ySv%lS7tvO5nFZw(=#cmtX^&2bc{a41iU(- zO?aauVTX!(Fp4GRer3YDvBIUA+YKN*^6l(WANku4Y6q5-h(?F^cz%DkEq;G=$gDaR zMSEh_t!DZ}m`_JYMXT`z}%A0YXq zK-n&oHsc2HW6?l*5oe>?ac9iv*Tn6?hcV!i21HQ?)Hk9yH|Q7lwS{Vi_~{I z__xHasDqtz#;lWW-*ddayr~!D zu`Z)y{~UZ#N8$*8nqgSlG(j5RgbNeu0U45`s2BXvNk~aVg3?b7VUy9;nHt*%mo{Jr z+yWk*$)-Y#&rh+X7vJ}4{g+@>^X%67Lz_MmbP)0eZ&C9Vk6%7FpY|g+Q25Fk=c!Kx zx_5=xgm6gy$H>M>FcvRz%cOA+&3@MIJ_1MZ2UFm>^aBqq#Od@6l1%8;Zkf0(WUn8E3cLe*ycDa7#)E zhPlAL8-H_r%l|pUQ6&cA7YhW9xo8M!fv8dz^&@zo`*?iWowQ`H&}VLw{>fgoqx?5wTyBKuJhC-7j3C{AnDNjZZS!WP@{D3f^i^T*{+(MrxuFLiw}?nO_HB1(!heG zhJKNw1L~gmz489&0BWt(P3jWPaQcPwtdjmnJVGME#Art}u>ApEjb#hVtR5#c$Hap@ zvDyaau9q(<%fVvhry714kz&sP<6GXhB=v0_sEVW{?{6$U-bZ|?1*60dhP+v| zfzvW1sZZ+>mNm>ZjC672T_Yi`bxDw^(!-1-KQd;CTGoZ19t}P^#;ymbvgpxZ#;RG? z(;a0+8k6~Df3xSDdLk-&aRc1U8-R?0b@>lip-7FVk7Yf+fw+czMeg6+OZogWcNk|b z5+j{}23YzO)g6YDy1;35!NjyE{^b}fJ;rKC3b_B6mo_~>lS?4;IL^A0ogYP9*+_!7 zaD`3QDs-bkt1CEr8kEdU1>6cASx?=;_;^1Y$>z9DWX;`WC-DFIL;q8goQp}myn4ya zJm1!;fyoDqFlLKQv1U~ApnRj|dB`!oys~T$Jg&PEs#t)B5F`4+V!<>cmzLt9TF0Gy zhrgV`nEv0dE}FE2+-|-xtXm6|cO)kJy8_fbQ@T+YZK$@;x88^&+qC?TO+~W@^w z%Hk4#(-N63iXM-UO?%`rd!<=j2Qa!Q;k{nuX)mY$fSfmXNpkB?Jr*glBjZ#W>_|kp zrw)7+`9($`d34vL+t^fPv7TV7ue%&BRXUa6b?;8Hf;%_zrPls7@7|_cYT@q^*s`BF zj@>t!9ejQsPw-RYH?4cnAmYQ5Y`8IOXII*>q9#}4N3)DTcS2l#JX(R3JlNPLoXvf~bW(sB;*l{dR?eqaKUT*-Gc?a~l8Ki(TgRQCx z$!*f%;Om7fn84h#nENMX|L!G!y01?Si!&|5E!>BLs^SOo2%b;iC^;&kj_%2yZy(JU z^`ms*Olm6U?-Pi76E^6enuj>hTJgYqlb*b5u#^1v+fM`kKW025j31`Eebg~8%R0+F z>nQ@!{{O)N)tW;eW$;mgv9=~cHh@@q!CM^e!?{p@$pFY9LDOc;-9clqd5LI>P)?Vr z+D0z+Kph3vY`?Ohvt%G;EnHMNC8(-n8-oTi)o}n4>rStEaTPOw$hYMJ*0(#X|Jsx^ z&9rCF<(@=-YuQHkvI+Lqi7lfEy31aR#lE}s^t5TXJLK=-iBL0Oh5as&*@d!P3`D)& zOUhfS!p-DU@`=~Y`uAMmY|yCx_y%+eI=6MerLa&tjpjIfnnaML8(`< zjzu+&A0*%bu{Y;Oj|^ch#Jyl^+V00w^y(vHg1O2LVPc&`!Fw_J*7OdW*D@%4RmHFK zWsjiNbrhU$+j`bam}JGn=Y0or-p{SESs@Ss97KZaFDBGFr0aC?k8-7Kf?M~CiL_N#TImM2*2NPE&s-=S(WH1 z73~XWUN)4y!PHH9>vrE|LVIRt`TOpxd3)a`sIdKr=i8zLNsaBbMV6AygWq$%-F+$? zOBDOf$NaA>-=x;^KJ19~JVx0pMEsd%lxEr`e&=BHsDz%S)c%6U|DuXj9PIZT?qSus z|M>FP(I^8o9W}*gyLHsI#PG*%yRO4|ZTnswHS>0M0EC&DGTWXVd}dtoV$;KQwa4GT zpM-$DU9Wpj*X`=+L&KB3((|HLFxbT0?c%9t8i*Grn}*h!=@n$+I9F@hvWB)@UKB9v z$m>E#<2Gbm<(1Qt7cx{?t#aXz0xLtAR~ff;lz?|Mv#LcHw)4P7O0`U$ae|&2gW=?j z%!0KV>R2(fW9KmHw&LaCDKkG=%2@c`ZE)-~4Tk7;3L6{J$7fXaLPewR@NRr;IkN~r!=b8) zg2g!npF#AM;AsE4@Y!^)1YTan(y}}eoKfX4VFaP2Cx3wV3sUhQB=$8TPKyi$i$~Cc zT$@k;u|Fywq7~c30P)dOLsxyKF13+WPqX83uUtvxcuti9l&tHOkKIJxuPmAMt>a+D zHF^0c14hR9cT9i4sf*@Kj)G6=53dZQ&pr8eZD>Dlpk%P#M>XH!%LFXd7D!m^O-afR zH6CO+BLLQuxOXTr^l%Kay?QWXFj>2u6 z00LN_FD_oQ;2B;p&(rZL@fbgCOr|7xxG|KrYAbe@^r8@_1Y=%F6nWn9q0};!#rf^H zXl;genB}WbZlbn>zl48cxrAPA3bBu!YnDo z2RYPmHpdcWosCggWTH{w8lWy|m-O)xWrdGZT-AE@M6hZ*5Q072?MZX=%Vy1Kfy;=t zO@m+g%uLhV{bLrw3!Wesv13s_rg~W_Pp%B(bDW$>7_GAtc0Qw(8g%CLe?Eu|iuK_2 z20<&OfBRyu+V6ipyRG19EI-lrqDoov37S)+^FPL&0WuVnTDFHt&8S=WuV-ub%v<_j z4>vW4%_}`7vFh*FS9UhBulxYx@lawpwfLo?QmFZbH+q$x#YS#`qx|U@z z6LEh7a{8mn>43q0NpmxP|K)Q)D&GkBPDDhNQDq)*IDI7XYVr&Yz^IB3N_h+Tb{qmr zGTUii`)}suum3(uwv)&V(hV3*Ira_AR+U5cC!#Z$5*fwIQXNy}SWO?SSEZIEXM4>8CJ1>=8)xTG*g1`iFY*qm8pC>vO(Ol?Lqza zxL)-^_eW$9bj)VE)N>l(+RAhM}2De=jl~hOEcL0TMR_`GpkvCs(Wb9hZ*xVXLE)0467C+BmeqX%CQ_RzXK=Az2wB}MX=m!iGi-dtci zXCl<2s8PUnTAu&~Z!cUllz2f!3mD4N{Gvh+)~K)Ls71$=PeecU8d9KNkaJWK)*8*- z={&L6NA_*;i^zYPaLu?Y zhOlDZfb3L6-Y{OJ$R@<;bSFTC+qnXop8UrTXz5L}HJV_b#_%lf|3PxIbZFpxrh}s# zYNEKdelOaZV7is|#O!S65(k-v{5S18KWdT)`$$gYK3kk?_+5Ds#2iIp zCn0zpR@wM58Z?uY!b2gHi^k?jO8p1Otnnz#`Dte}nTspM2}Hqyt<$KC65(@@PshHm z&K7Ms6Bo_N(51ya+1K}ZE7@keDf+yc?eEMz|4}}3Yl6LNo;hrx|++pw&_B}s8 z&*mdbUI4a~mjcv@w!_3BFD8efe6_VCqE>?b<;+_+%XffBQZ$YySEPd&(XfupsBzMF zNLl{D@JI!>m&S`Qkxak)$H1S@&dyr+I%#?m=9=CBi#(EUc#vxIe!M@^S$RX!9^u>y zFy+eYB_IfHgo(jxT#(3u0J=F-^&675@-!=hi+^ssL&x!wmZwXDL?Q30PrN!}TR^_I zwk+?(clRY901|B=w$8wO;7M=k+c7C09^7QuY7dA%1aD&}#w!m`9-6zZ=I`xRm?drS zoN`a;d53&c1UgQe2ddoRYPVpOGF#>hFJYI7(MQ1*r|8W=-DM1IrLOS2=8T8lvyVV< zEow~m%hcqE0wo8>8?vfp(?Md)`hMz6aeE+)XSd9Lx}i9LdQ&0iM!!qg4|L_qbY{Ax z{4x9YuAe-GDV|pF+uS_Ba>TlbdVzLGQLlmnx+EzcBRxhb+y^jeXXcxbj)LaX?y4d1 zRa(K)k?3tj{?j5a`Sa<=h~CIAPFz?Yvx-{hbN7CC9qL#dGj)FT(X%bRCr&m0$^im? z9d}KhTY_q7(;=6^ai@HqkYTcUO-UNqaI7-9+`z1}{8t|}Xa{I3xrg`uD`l$xOD9gl{G)eMq<3iaig$>_e9(eN z!}Uax?CAC6(f8^9WPVT=b zH@(1FzI(}houv=VC9lwM1qiFOHyjs5UDZ;JG`i!%+WPJ^@7SdhH<^EOzR@D=Q6?20 zZUGSc&!pR;vHO0+mf+1+As-&-Ra`;1+)0wwACb)X;Y_aEV|%-`;!-+j^r4rVeF}kH zF_}!+$X1vbv%?vl8XYn0FeRPOEqPD-n^beYY-;rVCtLG~-e*l>W@CD6UZv}H-%&9g zE8z9qfdR<(05)zg9ajH!TTeTk2)w?p z35jAkSc+uPz|G=SY7R~`a4)VDp3PmC(|w7`h05>NP?J6I>4l7rx|0;Ed>YYVj{zj@##wzZ2srr;Na(*m0EQWvS(wU6;U^WQ ziV|g^hw(}U9F>EQmZMpuX0W4abJ?Aoi_oMml7^aW<}a*4fliHjQ#Ie2^H<|s^rC##>5dh@L--vmVo*S5W`|i> zMO_)(~4PX6l&6b4wU`n<(BlAyXE^Y)Qoy4n~t(ROnWE z_A#&SqhTQm1y1@X&!+E*9AK-A-=j($V^x4kYOS|qFvyr{QK`lp5&!+CRAL-J{6y98 z@m3SO=Y3N4Ka*Cux_lq%EVFdFTvj3;wHh>OVs=F-BeXQ>B6;fLmBZMj2dQLUehC{# zh_n*}I}o+g26X`cYf)|^?B51l|IOsn$45t0QLl}15_Gk3d>mnZuam0ic5ps(pRUw17mUOq7~;V2YQ*_9a|r*lC_;K5S{!PKcW_x! zgh}64xxm>%-5_Y%HYyEwoi)F+pOgJPPzGm|6FV!W**s zy&do7b$2hbG+Ff-EKqFH3Z zxenpbJdnW}5w4O1A!PX3o-uA_G@YgwkFt_!OsT?$o4^BU`$6dmRqu0&-CcNP*(UlW zN}o|u5xEAy%gouR!%w_@yx;S`)!|+LL{xb=zf>%krPvg*@yNOOlc;^L`x#Cqc=}@2 zby5_;>Yh1}g3xMMIbXXle@%^R#=M_gLvrE5=Pxk~OAx|}xL#m(={m?6Z4t>Ri$5I^ZIISf&qkVih4DS=B?P=Rp@XktGzWY9Zn7fZb`=V=kbr~ zd^$cNmukg;XNu>1Rz}@6+c4F^i<6CFhw{9FdL1w}U^Bu&e#5Gh3Ar4g|N}WorbU=!xIVS`M7$N^fhMa(N(nf3* zz*LeH6vQma-)SH&iy+V5)QNTE<$30V^Gi^}X*!|E1sft3oVW#>j~__k$XHPP3h{mg z;=P+k1?xA*=BWUzSgI%mljKH?G3_%p>`mkg;1`yl`6G<=f{CA40i|Fu5z zn@`V^-=Kb5G!^4*Y}U4Vz7gC7B@3Fm?%B`ribPX2ayQiRoqMxKzJXwd=gMeo<84P- zB@w{vN`ke&TjUR1bo9Cw??NULV#LQh)>%firjhkp@DOebuA;l&Z}C|&cJ=ph%Qggv zC5MQ=SY@j);C`Lf03x2-07}mg$IA!ZhXR62G`C8|u40P4G{TQ`8`?;SW2067;2?99 zuF?YJjwlsj_>7M-SgXLU;0GBzP7?*ftFFHod7>ClT#vJVb0~LvSX<|_>_2~V5^=`I&ST&R2NuJl5?0Bu z(|)8UXzzME`ch34nj@w%WGzBu@0t2cv7{7DnI8A{HMIc%KikVb zm+Kg=G6|M|QKrC`S5Ne#^nrmkgC|9cjJ#OsbR?TDEXwOx4b{ve%)1wXl7^t(!W3=| z*b%AG46ke3+t~B0%nR8QOG{@Hk`0+UFHfgG>ignALLEb2an{D5-Ru$5kk^KsjN#!!>lY9e45ZqaXsp3E!{lXxkTt}e739YEOtG&e&Rl*I- z2M+1B^A0Upt8HgLjeNQno{#{T3f5OR+-nN#s_Oi zVg3z}5ho{BXZV>pON$@KtgWZ{@4&uXn)%Ym2m`Wb=Y8Q+R0}qT#^rCMujGr1uS~7T z>&C*r1|%ieLK3D!^fUK^IUs;DTU^(5F`@<*BkO(G+xHK)?_thS&W9Lng3)PD*oD2z z3QV_Y+`RMxtV{HBehwQ@>6=|J2l=RYew`P~v=}UUCY%+e2Q?JxU-ZKa6KI833iGQ7 z6GgZ92FTl}&+}^gr2JOcJ-7n#X>G{!=fqux-A*P}RWxC!i_9 z3+T%Xi2V-Tjaz{iwv-$|5POeSPTw%kOto>36oAE!>Li9mDC|NvOhoL3Q;!H{(H^^c zmkQw+CL~vA_nk91rScqp0&i-OYlIG%vE}!wQk= zyhacY!WsPz^o{ZDO>s!H1W{%pMZ4cO#nZ?8Q@S)_M&bk;BX1wapBtJ?n$iyCv$CT8 z*^NBLum*cK7O0>YI#*a+2crWX* zZH$3x_%l{CA**__E=)!hZ6-cV{nVT5cE5O+${ujEQqtk*i&H};L+K7jx4(GjFJbYg zd0pz$r;T?MT5J4p2a2{dfP!X9#ufyR^=8z{LgrlIs8qWFB~SSNXZaFsZZ-!ie;VpP z>0O!YzF%k9enKZ?(Ho)Q1qDH;qE!Pr&ckbDbRr4z7Lf zklSGM)pI1*WAedG(S7A?r*M&(vdARwoaJMjVWpMw8r_XpY+#*aV>u#Z0b*pEQKSCs z+>(RhH%~p65Bl!#F7(o7ho3!i(jH?Wev*s7=Kj!rV4(E(8D{~J6_R2{a7`yyz-;0J zW!ks5z#)@Sw-|vVD9T0$bM3 zD`UOwJz70^#DC=OD)|P)NYkDK-VxU#u@p5bo(hK1}WDV7LUrAybc5EM=(7d)jdH4JQrie?zf(6Tml) zKgC@YeTpK68P^uJYiYc=VN>HSdO9J%Mep;HUHaeS?6RJW=bV;KQdOAfJ3Z?$0XurA zP6vDH4bXQKq$(Ns$0yh6avbNWcuiMs=hWn| zv68Cx9jnHi`a1ibYT}$hmLnFzH^V%|Z$%Gkmn1*2nQ-;Q53a-s&krI#6q(kH0kt-1 zD~*B)%%aStjHV>)E~#wf5j434YgmZ|*n$YQGw1T0-dy1F=fRelTl;EL9k1#w(YXD7 zUG^UFtrq6HnqEj+hv&wfmEU0 z_8=YmWaK1|Z;41uF1oWB!tT7Kuv1OR0aPEqKQRPnb%p}Ao0b)__?ETbfhh#vIDp;I zyswSDb(6_+Cv)SrHM2U;E2i2!d2CZBd*0e5Y{^-L@!pKDU2o>V@ZFzsoy4W7Ljx#M z`5>PoP**;D37#C{iSuxBtp#QtgyC;0EH&r6Ap5^d;^z_TLL)VL6L>3-m67?i*)aa6 z5-uCCrAYT`nXJ>p;6?{Dut+-QE%-dgc z7Kam#WEF6@g^;9f{F+lHTphjb@^Jqp$Hdnaw(2jG+>gsGYdzK(@8)9tF1_`0#rNzV zb#6agTs#s3v`Z=mekLQc=NZ9*GR-Z2x8I%YgxYErdnWZkH8}Xd4r7BKFjnMOV`)R zB^O4B#XqQi_Vr0}X7Qf5fFlv^!@(M1Qr}IS;u5)0dRcx9U>71qKj?A4!C-g{QsnX{ zmbwdD46~ee(|}p8P|G_T4u7HoK2O1cmYsI6UG|9n^&zODyg`GB4^wXfpDK=6tSCTj z6VkD{4r^yy8!x6(`p56rqtCQSD;Q?Evw0hy9GT#?zE zW2u_8=EWW7!IL4V0vV(hHHqOXX^tIh<2# zFdvy1rvLDecXrS%#n+#2pK7>{B&RlUY3 zei^H2Gijf>b!2ItAt+1uNDkE*r>qCKB-#?E>0TfEVLaoHd7CMwzQ zlIz8?g7SLY>!YV8wfE~!kG0o&#LRbN2kx2=h3wyBero_{PpzCyf6tU1$E8#q3lNV? zeIJ6EtVI;0ksRvmXAZ|9gAM*_+0-1ozumm)ZonZH=XF218zN`#1 zsM)VmySKyeBw)4;1DPaL(=ZL>uh^wgZEjEWS?2x%H}6IX+CAY8(CSw}zGx>Q0Zp5> zI(6UDqJ&bGRlQ%jr>Z3)_Kj^AuuOlyb3u(i@;P0RdnP0hUXB|`8UBxmo_%I}Na=G7bDAkW*Ku~AM9*?^eVQX0DJp( z@IW$B7t^^1-RIql3M)34fzqdZDk1etCURXmBhV4pJUE=n}*C9jt76It};#%B) zRHfD#>*5649>1eMXXO?p42{06khC@~`?`2^LqXweVGhUC+mXe&u>o58Le#V;w3+0< z;<_U}+owjh_;u2lCf6|>58?wC0aX+=ys#V(gF;7R(7ruemVP2q?@m#x%lAsuTg5BX z9>9T{JbR}N9$2n#ehuRv!X!^;z9N1geeA5U?6;Zqsay88>it07qxmou^p;JMA?M5y z>|1IF`npGrzjszue6{Qjsw(~ZlV zp@|@%QI>XTG8VF3NODN5HGX?VlPd2Kz)Hlub4`|Pmpw|YaN;p`)99C9*;u_elmsjf8!fbm;3S zL$-XO>X!58!yoR1D;!P$scEPIxNkS2qo=Z8)D%ITeHCm-g374pj*m^&} zUzwLLJzDhrr^l)x+LIO5&fVq7MtsLV=~jJB+~T6IUu?JMCX5s z%yEwyA{V?agD`>XR2k#h-rbRWRPqD>KmF*>c-#s=G?MZgBF^Lc!~~OGWt)fHM(Q zj;26SmKDhz0bd#gAI|F#No=%3NjCV!)!C?tir1kiL5ocL_SI+_-$d54@jS+qX8I|G7BJ=(C)>YLBct18(nlY5d9Kv4 zt1}ep@8sK47FW3ZNb8%NAFHF!aRi_)S8tyk(4`8_+!-DqLxI%rA`BR{zNEJSj-?W4dOo){`Dy^8dWT~FQBPj!r)Z+>a90Od%ri^ zyze7f&{OLw<1rA|^6N7gocEr~j@;2M{Wpfsp4bJSq~x0#sPcjmz%@FXP&me4VlbAr zNX^=4+oVV+bPTc*lH(vzs%5Hgn!a&1J)wCWCfR~T$>Zzq#wut+c>x40;v`>#5P1_r zlGH9tIC(|}MSCFDDd`gvre2=qY`4kxTGYWHoNb>(7;B-0hU(i(k_4yGTOwb(f8qGQ zcDcFetd*r#U|7Xwjbdaq+N6>T*BeSz80&1zm&J`5<|C1!`i=&q^&b6A0cj<1_M9xy z6}nCb4!B1eu?7TE<9Q`qUM_K8&!Vm6*fmaYDbUt~C|VgBZZYV?h-Pj&CgHO`lZC>!(3kmh>ak{i0R`SmU4D?kBvPKqI`^SU_=c*+*&H zV;TA^!J=o#xQ#x9+MJTkT`dtLY@6(UqApd(IankH9K? ze5;PuV9{mX50?IxFm#iASYr+I~9U0ql4<1r#G>)QGT=T>f_Fw_&< zOUe(S_$`e1$Sw0G@ozwE^C9-DXW82G#IbK^!*O&2<0>`S4ySJN?OZ@LoFLJKqC$(m z2SPU%^)YUZ2jnuQeJ2{IP+4T;3%|E3_{POUh5~yZw(&*(Ls6ZUw6oQw!lMmq`UU~i zNQb)dxHHFbl+*q>`T6;DLhsSq+ljjN@W|>I+tsuBLMD@l{K{$jO;UcKo5+uxpvr`m zp|h`P$=-cc9!LYos+Z`gn?13t3Pel|Sy&AVB>yCMDLKo|e=KeXYwnr;HteFK4nnw+%S!e*Fh zdhOcL`n612H1(1d_G3Tj4R4U&SdCn&UJoNU`?k{jy&3SZC_pWIW-|fn>Q)k2#E?NA z#-w%nY{kPRBW_cplHKUHUkYqxFz#+^V?QHC6)hU|ZviW6JW+-|j|q(xcvXzmFPF4l zM+QLT7*qb(L><(jD?fMOXMekQ?&G^w5-4;ylSR}Q3?c#f{^?vAF$Wx|w-E}tdmkLw z4JDK9OR-!k*4R%|z79NG4Yy_jFKZehlvx{hKanz756SN9N!@&agsetTw{KE?Xa|7? zWl6z1huaVZ4u;yzo0&M+s_4m+Wf6>6>`u56Ub#9hgq}FG8{d0+MrM5v8b>rNdOLz4 zuARtxx{oz|9#wpEZ&#ELpH|qXEWIIW^AZtx;k$N2px5`1dF(`@MGd@b)Y1V3<{S39 zqo{H@LUJrH8dK|qE5$2jOLEkKR|7RneApKKdppZJGE#)!;qhUsf~NY)!&JR41_JEg zYsK)=2VXY++px(*_pTFw{N9B9MOmNShr5CiL(lBznG!vuB}q3DhmEIp?vG^}PZW_+He*et zf^1@|dB)l+v=cBEv>UeKurN_|Bhg9H%?Hy&*0Y4v|H)~R}NuDKg& z6r-Vm)aGz}h2g1WEG`aVSl>q^ZMn2j^+`w?TSY>F%W#(vacuxa7NTOJjuQbcB&ka7 zD1W1p>6ypyDxV|4Wq+Hw%Wc#Rf;!JW$Msgw^^O7Se~fa-uJRL5;TV)Y*zyY&J~uxb zI;^IEtqV9~EBqs^Tim8G@`OR8#qXkQ)J&5hX@}|mJ0_DZ1UgtO%6E)0mrRP zoyNv#yIdCZ731GqU^1%LVesh1G)70oT|XRj`G#+pToyB&s32EQv&;X8Nn515d5f>W)YCm-xum_D}By1XFX(19k%Koc;U;IvHRibTzPV8*&6|8(fzuByL+DfiZ z%C?s*X5>xfjJ2%D6d>Lzllzlp4IGaNuw}HL{f7SG8l)a)wuA+rQU=3}c~IolmPZKc zKVenOa|)|Kys|WX3RQ4sMzI(FplEus1x~?!5(Yy6qJ(gznz*B;>E3nW6!WE=hqb z3hM*bCkm=RmkOrgI`NSoKa$T5ufhA7=)p^I?0z*}VeZxC5|1tM`|#Oy#(I4VqGEaE zq;7edk)?UVF|UaR&rmo0JCCv=)qp{%Tvai z7F$(|E%twS*nM(Aheviq!_=3vojNVKepO9#@y zPFqqEyy-3;{#K8P@2b>3mtA9Tw@NeT_^RvA3$8heY!60HXY%bUfVzAp2gFe?A%cDJuWetcw@koCfE zbyNC|?SC+{{c8|>VGO$$@1=Im8|13aIVip!u1S7?HhLG$Y@!3z91>4F&>oIOBLqV>U31>u|z)mE{iYfQH6n}I+MPU7* zpU*T+gQZ^-n6^jih6D*2_cj-OesMe^i>m@i`{Sd39SZFH2>)e2agB1x{nUCwUv~#i zKqin6vFC-Gr$0d-KX{=Fy1*N1;U6GY2pU4LE#)a<7>Y#Zn1MjG4I9+-euMq{TrR)n z#T=QWpz_gSeKzHIXuW(RMo>B`hg;ofN!>ame9y^^XY%uC-Js?P;%?b}6#gJf>49O6 zn;tSnlIl#4&TqA9T{76-IRi~ho`hnD`pi-*G+J7Gf+HU=5E~Tx{z9rJ9TCZW5^%vP zWH>1}n7p)S)*I%LE4(+wzrSfOhVqh zym+JgjWCLzo6xRQzw)PO%N4s)2Ig>_O|z+t1L=JrPM8{6w`xJuAZI6kIRDb5ghu#8 z$0z+KAEBj4^$2MnpMhPNNQ&z=nxiBN#WzGm38j$z)#j100ZwF#5>*8r2ZiLgSZ^~z zPKZ?LFeM+z9yBiH@`roRxD!$VPm!*23mJ}6S@+p1)FkD6PY+91UF#=-#eGgLtmXMk zlyDbNu!Is#1!G=qzt*SanhABJh}F_@!p%BIu7J8~&;UE6@7Cc?xf4pt$FA;EPVU@z zdm_B#b!nthOOD!Be~gQR@8IIep)Q_!qSWF6@`#X* zjT{H5+6IH>CUpMQpy+7U&{lM7laH7Giy6j^|f9o-!8Gn zCKr9N{^u?9q(Z9lloD#u^e|i7WS=8LSnM*$9L_2hKUV$&vztGgExRi0Dt?R(%eu+r zw3Zajf7V`L$=QKDruLdNTF3+-%zF7dp+;i`x$twx$Fn1KGuubJOY(jO>P$L|sPq z|M}8=&hLExJs#(A&iyzyUDxOH9}Sp^RBPrFy{vt?F2lvW=c0R8p$l_K)nbG1 zo+;LD;=IB$qnR1~@HF?U&J~H+ut6dpBsqphx|2$lb~{z6rlVN@=$se$dXGpTkL(<2 zZhlLcM3~pA=WVrAc)TjCQgw4!h+2n*ZMly#Bt%ZS<55E20RWtMwY*HCucD)C+p5l% zg35bpm-%`Q{os&uvg7={?b0sxM2XG{>7M?WPZg->kB9pR+^Lp|qaM@G!1LI?_*nz# zgqsZg>>?Hti%KUVB=v6fpdlER16?uGB66+tbYuNauI#X7bxE6xXjl$FBw(4G(BBH1%q4clZo<-_!gHY^{0Oe$pBB4^VbQ9^2&);&ts}x@1@z9 z{bzk=n>%4+gnt}Vz8s8}CFFxY_$&5)*=u`M75J1)JJ}cmoBM}5HM|n6)d$jPNKNrL zlRZ}3s|lW&6q=Z=u{6-StOVS4!_SX=PNk* zdyr?qLFUJ1iK>G0EmHy|$HmhqT@@ zbJM7$2dH^!Sm1Qnf3`CB57YD|AiT^sDfxv~3d<+Vw4JFUQxL3u)$wVgZ8=BLPe&2< z_jchca?JMlYhURKHFk641?^Rs^+hBJt|C3NETynHnlMdaq{-a<0~U$4eO;-|W2}^4 zV=~(mx97QJYu8KX#;7(JpdTJfkXM4HX})r2O#jd*psHe?$5<9@j!p+GfGQO`E*a0# z@6bbXe-6}B=}mt4|4OincI0MXJvI61u6;KJKW&vN%U*Gz{7c*Wfu9zu-XSiPD80>= zj1<2X?8D;54UobH5D_&`sO;r!0lTw2O8Ro<0|D3MxU~TrsNs`{qGS>G+mFsk@{6bT zeeS;;7o1~`tVa(~=K1RV7$bPrWS?}H_*0+`)7(VauTWqVXQJ8T z*i~MoeC_EGZg=Fl$`Uq6E~%2P<6+%0YYQnon|$`mURE#_sz^sLyQG>YOT@NjfsUc8 z)ye{(%x7});{Z=$L|K4M2tLJ(j7l~<~}-n(tRWM#`E2^&jrLV8B+b)0$%e=TP-;s z9}g)li(aZDqYzNp`ub$b{c8d%Mf@aus|qC&+^W8bgF!cbkQ!7e9FNDX`t->2;y`(K z_BvS|F|&7%HpFGx_n4iw?)PFwEuo^Z; zL1AOL7tSP>n!aB;Fawt2sU}2UlA|{h6t~=lzO~V2?U#bmCbIE8#L?g z%&UN9Mt^xfT|U3Af=lS7e1hK_D@V)9K7+;EwOz6XUi}!iIQ1^@L;E*DJvRPrrgbrX zXFaujRClG)fMyK(_^w=Dx#>tl=rqPyEEf3|Ap5NCS}l>Cy@y=I`nUE!T5frM?2lNM zuHV+b{==-IQNKlg23sS?nSQSO+NoWkmU?R+ zZ%_{q)m=@B!Xcb5A_)!`%5Sfo{$(6~6khf10ttbrNb$#p3tipkDor)DT-mFq@^6?x z>&qz~V>zuub9?WXl9PUbowu5vvb7DJx3sAK0Dor}&v|N%5KtH7?_V#krLT1G6Cgaz zj?r@e0@a2|^ZDP>qHUQ^Krg-n9#>2b+h)(wczKYlRblvtD}SK}-s1Ar`d4ekhOTk_ zUG6&Bz)Rd3Ul*hq*WEDcS;ryE+;W1j7#fv=OoifLNwqB|#ijrkL&F5@sy=*hswis^ z-v7V@&4>Y9dLocq1fZlZ1YbaaE8};7y?;fV3U!y{p9gNnczL(HYPK&MWj}W)8{%#m1+@M+WM!OM|VN4Er0?_alKIWjMPQU8- zV~_dk-H!6}zkTWE%LKXgT;Gsd{K^Ug{SxZCnI5&mM9A1;=!14TpFJuDi1BCbY@*B@MSDDJ84^F8obf#f(bG<$(u zMhnm!GVD5vrt^(+N60yA%a49f-Z9^5kzK#$8!%L=5X_Qk5IXJFGxojB8=}?nw$=Io zY^h4scfSD7$kzWZy#x501&BsCzDudFEo4q~L4M{hgS5q!FAg0aPPCXi?6`wB!|sd6 zoxkN(2YXvITY;EP7hNX|laS8{d`?0(wkL^SheVhoJ%eprrmI#h4`)?J3QgVNfm7${ z(F|`2{}I~J+5QT8+I4$wFZKV)xi_eATUpxKFYW=WBbNC7hXm})d$6FXb%Nk_>ZJ5- zW{nI~Cau6MmafM1`if|n6ta~7x~YJ3!U?G)qjMv8+u27M&xE!S@(=T}F`<$8GbJPk z`V+0Aso*wNXO;8VZSFoo&7l_Di;`@ulyx&R(ne<_C-qF*xwwXB;Xz(CtOU2nkr(F% z3TtzPpjo(p9{U+Enf#AaM@qgvMs7Z{5Sw|SbE{qFe$Fusq@aQ<7Ne#a!m;`s8zEME znGZU26;@J+O19R|=q794=-PgxuK^z~Pv{T&^j^2~zHmtBUQ*sjePeIZEccJl^5)Co zvQR6k#&n-><}AkVGFaQAapJUJc$}-W z-Y7Tw4v%!@4|e&Gt(M+E07A}(CE4S)@s_eSOlI$hZQ0(OBAA1rR1%gIT3Ztv))|eL zt8Zy59Xq#jXOgV*p!%ToM-c({zXdZ`9rs(V-=(&+A%{&}&*0st5QELl>B&B^ZB+k% zv;rJq_r2}_WQr!K(->^3|H~^4bw$ne@c0z9h%vL6!W|%f{Z(t^9+a~aH3#pkt9+`Yc9UD~Nz<3C(a9{K%i9-t3k|I- zx|GMI4Aaf`l{1$$D@@zbw;ekn?#y;f?ZUaVciG0H>(Bs^A(GAM&!_oA5vTDiRq~W( zx;)u2&s^`*2iih*o%dWYbNL{!`K&pK-{MU))+jP>R6cPJk(!d8>&tn#+Hb5%t>1kkji?9RP8gT}1 z2H6T_fxqGL1fGZbHf3Gyeo!WozIMr@Y5dL2E%PV+OS+|0ZW|`7p^Ccys$9qgwUki5 zDA%5?m3fv%%c~#eF%#<*zb$)g*8B64+tJ(MEfW_)OMcakNp(1kV$%B>Xp6w5tt&26!K zJ)K5&evR~!_l8dFM@q+hhK*ePVSXUcFWknRhLKBFJPUnyeu_;D7AK>51Y_2UU%=&g zFmf+DG1$ea$s|~eyF}Je-izXu9BCTyTPvfSlcj_k7xc=kQ*f)Pu^Qed(wsZ;FpfE% z*i&Rv7m1zz4iAk+Lu~B-=CI+15B|9~!5kxjVeJmvPK>=gd=4~}q73^@E_kJh znFNGIN&7uH&CO8kOd&-eveKM#;TIahB^&H`22-1i2`Pw&F$MpX22u6I7Ss8~-$Ea3 z0pr7I<$~cUl)gnXPnu?&eqr_6DY@8JBw1I6c0s1|yhiR+3sH^Ct*qxSHXr&SYLa2~ zS|+)F9nySbK5xKvAvm+jah@2MpnBgCLDcc!L|1T{4C|0@7_}W4A^w#h9|AUX{MB># zT?&CleV1$T)J`!5NsaUHw{{tjGAtDGcjImn&@un=_^=h%#-sOeBosn^N|9tRqd38F zbKt>M9tUTi7 zEs+r)lGbqwYA^+I3B8~Dl*t>J>SDyJ>G&nMBS!A}Kc#VGu-xsW_}kPnq;CrMg2&kid7B>?lHk4rU1$4$N-CEE1qB9W zMAaV!1&$7k9*zIqe^%lQYs_VGxPyk@PBtua2B zHF#nowJi6^@w8^&Pp|Kocy23O8pOQ=b`w?9>FaUVOV~zqg-Xj5=V|-v=dIq6j7*Rl3in z$??sDdm|p8EL8(aS$tUPKP>;KdQ#>rj^E5*z>yV3a(4^$*ADNoQ*=)VthmLka}I;v zh|`K&tr{ki!n?<&vRA;%?-;lCK=9!0Y)+vVUdQ9jS2DJo&EJ+BzFucpm;ATW$v-ew zxzT@6vL2tpSv_P=wB_0qzbGZ{)!nkDGI_zX&yC1EWF_VxYY^!{nd88WV=~o63i_Q5 z8=g{<)6?FTycQP)Bso}7Cl!qe)AhE3{n z(KRbJM>xmwidU{V5Sb@GR9F4d=hR?lkcr%ditI|O{P=I1TN?A6HS4t|J}~v~U|7=f zs`3PIeld$R%mzM!XwsNfM;!cGy&Z~aNLR1HJ*;J+>8_w5od zD-D;ksNZ3(EOok+hoYOBSdUcq#q;;eJDt#0Fx+JwmZs4)p7Nq3t=tkr=x90wfmX2)cW#M2`KD$q3fEsagVCz~Uxg0skBrJtt7$*!I^DkxuCJI& zH}0)+kag_GPFO7Db~H=y+?T@hS?y9@d~%!BEO&MB%DsA8H#h1qJ!N#J3b9dpY!HoT+#tPuF*P3!NRv! zk_y9(3m>Wd&w&+*gSQYRNE<*rn;_|?F#%{nX-FgIL6FG0I2WgqkXeZw`Ln`S=vdXI z=qz62C|Ootk)vcdKiro~L&osj6+6!l-traxk(%MzY+cn<@&^-({5^PxdC3Y7I7yCA zF6i5XX-C1670X(z2%k;Ca1Q`>U?!6T>fRc=C!*$`L+q3S4cEVYqql)o%TLVY-q*HXQd4>8~6sG zwAs8IQLaFP_mI8{i33|#g{4|lXS7UAj9Nome{Ed3SGwK80wOPb)>ljm9)Q42qp!%Z zQ7`L{)MsXR3bDZmX{znQ>OHz+Tk zP&E8WV)ut{GQy%*8-D~@xT*C$Is0h@t6GHc-Nv0T#cG`Qo^4a__6$J;_6w&U3M=b= zH+IwgJ?nImyTTr?<-6v&>bboai-&8{7w+*M0`P|D&^x5^~w>vC{y|&q%L_Cs&jVaca`}}97X?KX4|bERtjP0~*u1Y|$NWdrdc@VdzNJ{LyT3Xwm`}rTL5FNZUfZ6AH<$Rh zB-G|4oWUg54;E7F4`pXtAhYQ{1eAdf2CyY#D%C}*e6LxIYz86doDq(ApJXvO=V^qX zwEIN1C@BLI%=QE+kpKZ2$&iBTFV>j%2(?n5o@Dq+&G>FQBlgu}t^91uwu19P!Yl6L zgI(|!8-*;yXwEjl$A?x%Bx(QX`eNqrv|uFyr(k2LkQD;_Q$F|x*Pjo#6xEX8W}TBW zfZ<<8EJK%H5?+!0sK|R{&L}92u)d~0;=!HqP}+{AadqBO^=^%X&`RyA+^@{`*Fu5n zywE`i0dbYq#}t-VoWIdH+9J1oM6r0=X5-?*xd+F)r8Et-t@Vl$bIwiXA;|Ofrmlvh zBx$Q1XhUnR9Q~o#;a4@Jp!fa)((cGuW_CF)Ve>SGwWj{!SQVeWph(x?3fsy>1B&6f z-SZ+DNfR_@fNuHhvutO0S}r)%oPl|1T;l$AMz7hdOW`(^jvCN;ropyJ&aSzE{a12M z$_r-$VwNU*a&g#p9qp$_j{n1aGB?STKko3U@S4d-7ss5tjE1dRhZb)f3$eZ16(NiR zZ>yix{YTk`<1sWDdPd&pp2cs~)_qa(N{h59&(oncTDXr?DD|g506zLLU;u7q*l;#O zlZpf*v;;*gNxHNwUC;t@{clS%$AuVva?%H}b_xA6R2R+$(NF5B_lwEMo#C)kY+j{w z>GYGiapkHF(;?t6z}RWAS@V``noP0?QPdfLD=x!rJadhDV7aG5NmjXr$U02gTYvw= z?)&X>dG{YzMApmYR?W+J$vgYK�I2rouQ?Az@)*iHM{$g?ayzBU& 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 XZ-!Tf=#QiTax!XLw3HJS_ni2DlChti diff --git a/doc/model/smart-card-reader.puml b/doc/model/smart-card-reader.puml index 0e54eea..58d821c 100644 --- a/doc/model/smart-card-reader.puml +++ b/doc/model/smart-card-reader.puml @@ -5,27 +5,11 @@ left to right direction package ee.ria.DigiDoc.idcard {} abstract class ee.ria.DigiDoc.smartcardreader.SmartCardReader -abstract class ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReader -package "com" as ee.ria.DigiDoc.smartcardreader.usb.com <> { - package acs {} - package identive {} -} class ee.ria.DigiDoc.smartcardreader.ApduResponseException -class ee.ria.DigiDoc.smartcardreader.BuildConfig class ee.ria.DigiDoc.smartcardreader.SmartCardReaderException class ee.ria.DigiDoc.smartcardreader.nfc.NfcSmartCardReader class ee.ria.DigiDoc.smartcardreader.nfc.NfcSmartCardReaderManager -class ee.ria.DigiDoc.smartcardreader.usb.AcsUsbSmartCardReader -class ee.ria.DigiDoc.smartcardreader.usb.IdentivUsbSmartCardReader -class ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderManager -class ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderOnSubscribe - -package "core" as ee.ria.DigiDoc.smartcardreader.io.reactivex.rxjava3.core <> { - class Observable - class ObservableEmitter - interface ObservableOnSubscribe -} package java <> { package io {} @@ -43,30 +27,11 @@ package "nfc" as ee.ria.DigiDoc.smartcardreader.nfc.android.nfc <> { interface NfcAdapter.ReaderCallback } -package "usb" as ee.ria.DigiDoc.smartcardreader.usb.android.hardware.usb <> { - class UsbDevice - class UsbManager -} - -package "content" as ee.ria.DigiDoc.smartcardreader.usb.android.content <> { - class BroadcastReceiver - class Context - class Intent - class IntentFilter -} - - package "android" as ee.ria.DigiDoc.smartcardreader.android <> { class app.Activity - class app.PendingIntent } - -enum ee.ria.DigiDoc.smartcardreader.SmartCardReaderStatus -interface ee.ria.DigiDoc.smartcardreader.SmartCardReaderManager interface ee.ria.DigiDoc.smartcardreader.nfc.ApduEncryptor -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReader -up-|> ee.ria.DigiDoc.smartcardreader.SmartCardReader -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReader ..> ee.ria.DigiDoc.smartcardreader.usb.android.hardware.usb.UsbDevice ee.ria.DigiDoc.smartcardreader.nfc.NfcSmartCardReader -up-|> ee.ria.DigiDoc.smartcardreader.SmartCardReader ee.ria.DigiDoc.smartcardreader.nfc.NfcSmartCardReader ..> ee.ria.DigiDoc.smartcardreader.nfc.android.nfc.Tag ee.ria.DigiDoc.smartcardreader.nfc.NfcSmartCardReader ..> ee.ria.DigiDoc.smartcardreader.nfc.android.nfc.tech.IsoDep @@ -74,32 +39,4 @@ ee.ria.DigiDoc.smartcardreader.nfc.NfcSmartCardReaderManager ..> ee.ria.DigiDoc. ee.ria.DigiDoc.smartcardreader.nfc.NfcSmartCardReaderManager ..> ee.ria.DigiDoc.smartcardreader.nfc.android.nfc.NfcAdapter ee.ria.DigiDoc.smartcardreader.nfc.NfcSmartCardReaderManager ..> ee.ria.DigiDoc.smartcardreader.nfc.android.nfc.Tag ee.ria.DigiDoc.smartcardreader.nfc.NfcSmartCardReaderManager -up-|> ee.ria.DigiDoc.smartcardreader.nfc.android.nfc.NfcAdapter.ReaderCallback -ee.ria.DigiDoc.smartcardreader.usb.AcsUsbSmartCardReader -up-|> ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReader -ee.ria.DigiDoc.smartcardreader.usb.AcsUsbSmartCardReader ..> ee.ria.DigiDoc.smartcardreader.usb.android.hardware.usb.UsbDevice -ee.ria.DigiDoc.smartcardreader.usb.AcsUsbSmartCardReader ..> ee.ria.DigiDoc.smartcardreader.usb.android.hardware.usb.UsbManager -ee.ria.DigiDoc.smartcardreader.usb.AcsUsbSmartCardReader ..> ee.ria.DigiDoc.smartcardreader.usb.com.acs -ee.ria.DigiDoc.smartcardreader.usb.IdentivUsbSmartCardReader -up-|> ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReader -ee.ria.DigiDoc.smartcardreader.usb.IdentivUsbSmartCardReader ..> ee.ria.DigiDoc.smartcardreader.usb.android.content.Context -ee.ria.DigiDoc.smartcardreader.usb.IdentivUsbSmartCardReader ..> ee.ria.DigiDoc.smartcardreader.usb.android.hardware.usb.UsbDevice -ee.ria.DigiDoc.smartcardreader.usb.IdentivUsbSmartCardReader ..> ee.ria.DigiDoc.smartcardreader.usb.android.hardware.usb.UsbManager -ee.ria.DigiDoc.smartcardreader.usb.IdentivUsbSmartCardReader ..> ee.ria.DigiDoc.smartcardreader.usb.com.identive -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderManager ..> ee.ria.DigiDoc.smartcardreader.SmartCardReader -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderManager ..> ee.ria.DigiDoc.smartcardreader.usb.android.content.Context -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderManager ..> ee.ria.DigiDoc.smartcardreader.usb.android.hardware.usb.UsbDevice -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderManager ..> ee.ria.DigiDoc.smartcardreader.usb.android.hardware.usb.UsbManager -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderManager ..> ee.ria.DigiDoc.smartcardreader.io.reactivex.rxjava3.core.Observable -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderManager ..> ee.ria.DigiDoc.smartcardreader.SmartCardReaderStatus -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderManager -up-|> ee.ria.DigiDoc.smartcardreader.SmartCardReaderManager -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderOnSubscribe ..> ee.ria.DigiDoc.smartcardreader.SmartCardReader -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderOnSubscribe ..> ee.ria.DigiDoc.smartcardreader.android.app.PendingIntent -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderOnSubscribe ..> ee.ria.DigiDoc.smartcardreader.usb.android.content.BroadcastReceiver -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderOnSubscribe ..> ee.ria.DigiDoc.smartcardreader.usb.android.content.Context -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderOnSubscribe ..> ee.ria.DigiDoc.smartcardreader.usb.android.content.Intent -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderOnSubscribe ..> ee.ria.DigiDoc.smartcardreader.usb.android.content.IntentFilter -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderOnSubscribe ..> ee.ria.DigiDoc.smartcardreader.usb.android.hardware.usb.UsbDevice -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderOnSubscribe ..> ee.ria.DigiDoc.smartcardreader.usb.android.hardware.usb.UsbManager -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderOnSubscribe ..> ee.ria.DigiDoc.smartcardreader.BuildConfig -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderOnSubscribe ..> ee.ria.DigiDoc.smartcardreader.io.reactivex.rxjava3.core.ObservableEmitter -ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReaderOnSubscribe -up-|> ee.ria.DigiDoc.smartcardreader.io.reactivex.rxjava3.core.ObservableOnSubscribe -ee.ria.DigiDoc.smartcardreader.SmartCardReaderManager ..> ee.ria.DigiDoc.smartcardreader.io.reactivex.rxjava3.core.Observable @enduml diff --git a/doc/model/smart-card-reader.svg b/doc/model/smart-card-reader.svg deleted file mode 100644 index ae52ee5..0000000 --- a/doc/model/smart-card-reader.svg +++ /dev/null @@ -1 +0,0 @@ -eeriaDigiDocsmartcardreaderusbcom«External»androidhardwareusb«External»content«External»nfcandroidnfc«External»techNfcAdapterioreactivexrxjava3core«External»android«External»appjava«External»orgbouncycastle«External»ee.ria.DigiDoc.idcardSmartCardReaderApduResponseExceptionBuildConfigSmartCardReaderExceptionSmartCardReaderStatusSmartCardReaderManagerUsbSmartCardReaderAcsUsbSmartCardReaderIdentivUsbSmartCardReaderUsbSmartCardReaderManagerUsbSmartCardReaderOnSubscribeacsidentiveUsbDeviceUsbManagerBroadcastReceiverContextIntentIntentFilterNfcSmartCardReaderNfcSmartCardReaderManagerApduEncryptorTagIsoDepReaderCallbackObservableObservableEmitterObservableOnSubscribeActivityPendingIntentiosecurityutilutil \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3f2eb17..72cd184 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -21,7 +21,6 @@ material = "1.13.0" mockitoCore = "5.20.0" navigationFragmentKtx = "2.9.5" recyclerview = "1.4.0" -rxjava = "3.1.12" truth = "1.4.5" [libraries] @@ -50,7 +49,6 @@ material = { group = "com.google.android.material", name = "material", version.r mockito-core = { group = "org.mockito", name = "mockito-core", version.ref = "mockitoCore" } navigation-fragment-ktx = { module = "androidx.navigation:navigation-fragment-ktx", version.ref = "navigationFragmentKtx" } recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "recyclerview" } -rxjava = { group = "io.reactivex.rxjava3", name = "rxjava", version.ref = "rxjava" } truth = { group = "com.google.truth", name = "truth", version.ref = "truth" } [plugins] diff --git a/libs/id-card-lib/src/main/java/ee/ria/DigiDoc/idcard/IdemiaWithPace.java b/libs/id-card-lib/src/main/java/ee/ria/DigiDoc/idcard/IdemiaWithPace.java index e4d81b9..3487c19 100644 --- a/libs/id-card-lib/src/main/java/ee/ria/DigiDoc/idcard/IdemiaWithPace.java +++ b/libs/id-card-lib/src/main/java/ee/ria/DigiDoc/idcard/IdemiaWithPace.java @@ -61,10 +61,10 @@ import ee.ria.DigiDoc.utilsLib.logging.LoggingUtil; /** - * ID1WithPace extends ID1 APDU protocol with Secure Messaging and PACE capabilities + * IdemiaWithPace extends Idemia APDU protocol with Secure Messaging and PACE capabilities * enabling the use over NFC. It must implement the ApduEncryptor interface so that * NfcSmartCardReader class has an oracle to encrypt C-APDUs and decrypt R-APDUs - * so that the ID1 APDU protocol can remain mostly unchanged + * so that the Idemia APDU protocol can remain mostly unchanged * @noinspection FieldCanBeLocal, SameParameterValue */ class IdemiaWithPace extends Idemia implements TokenWithPace, ApduEncryptor { diff --git a/libs/id-card-lib/src/main/java/ee/ria/DigiDoc/idcard/Token.java b/libs/id-card-lib/src/main/java/ee/ria/DigiDoc/idcard/Token.java index dd76153..c2e8c5d 100644 --- a/libs/id-card-lib/src/main/java/ee/ria/DigiDoc/idcard/Token.java +++ b/libs/id-card-lib/src/main/java/ee/ria/DigiDoc/idcard/Token.java @@ -19,20 +19,12 @@ package ee.ria.DigiDoc.idcard; -import org.bouncycastle.util.encoders.Hex; - -import java.nio.charset.StandardCharsets; -import java.util.Arrays; - -import ee.ria.DigiDoc.smartcardreader.SmartCardReader; import ee.ria.DigiDoc.smartcardreader.SmartCardReaderException; -import ee.ria.DigiDoc.utilsLib.logging.LoggingUtil; /** * EstEID token interface. */ public interface Token { - String TAG = Token.class.getName(); /** * Read personal information of the cardholder. @@ -125,30 +117,4 @@ byte[] authenticate(byte[] pin1, byte[] token) */ byte[] decrypt(byte[] pin1, byte[] data, boolean ecc) throws SmartCardReaderException; - /** - * Create an instance of Token based on the current card in the reader. - * - * @param reader Smart card reader instance, must be connected. - * @return Token instance. - * @throws SmartCardReaderException When card is not supported or reader is not connected. - */ - static Token create(SmartCardReader reader) throws SmartCardReaderException { - byte[] atr = reader.atr(); - LoggingUtil.Companion.debugLog(TAG, "ATR: " + (atr == null ? "null" : Hex.toHexString(atr)), null); - - if (atr == null) { - throw new SmartCardReaderException("ATR cannot be null"); - } - if (Arrays.equals(Hex.decode("3bdb960080b1fe451f830012233f536549440f9000f1"), atr)) { - return new Idemia(reader); - } else if (Arrays.equals(Hex.decode("3bdc960080b1fe451f830012233f54654944320f9000c3"), atr)) { - return new Idemia(reader); - } else if (Arrays.equals(Hex.decode("3bff9600008031fe438031b85365494464b085051012233f1d"), atr)) { - Thales thales = new Thales(reader); - thales.selectMainAid(); - return thales; - } - - throw new SmartCardReaderException("Unsupported card ATR: " + new String(Hex.encode(atr), StandardCharsets.UTF_8)); - } } diff --git a/libs/smart-card-reader-lib/build.gradle.kts b/libs/smart-card-reader-lib/build.gradle.kts index 81b170f..0a56232 100644 --- a/libs/smart-card-reader-lib/build.gradle.kts +++ b/libs/smart-card-reader-lib/build.gradle.kts @@ -18,24 +18,12 @@ android { lint { lintConfig = file("../lint.xml") } - - buildFeatures { - buildConfig = true - } } dependencies { implementation(libs.androidx.annotation) implementation(libs.bcprov.jdk18on) implementation(libs.guava) - implementation(libs.rxjava) - - implementation( - files( - "libs/acssmc-1.1.6.jar", // ACS - "libs/androidSCardV1.2.jar" // Identiv - ) - ) implementation(project(":libs:card-utils-lib")) diff --git a/libs/smart-card-reader-lib/libs/acssmc-1.1.6.jar b/libs/smart-card-reader-lib/libs/acssmc-1.1.6.jar deleted file mode 100644 index ee5252dc6f88a3bb4d30e7723332b6fe5a7e3965..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57929 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 Kj;^PV{Of-@R7l?d diff --git a/libs/smart-card-reader-lib/libs/androidSCardV1.2.jar b/libs/smart-card-reader-lib/libs/androidSCardV1.2.jar deleted file mode 100644 index 845c50729deb30f84f99de7384955d1df927cba8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50701 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 z 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 B9;g5S diff --git a/libs/smart-card-reader-lib/src/main/AndroidManifest.xml b/libs/smart-card-reader-lib/src/main/AndroidManifest.xml index 735e97c..ec6d59e 100644 --- a/libs/smart-card-reader-lib/src/main/AndroidManifest.xml +++ b/libs/smart-card-reader-lib/src/main/AndroidManifest.xml @@ -1,9 +1,5 @@ - - diff --git a/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/SmartCardReaderManager.java b/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/SmartCardReaderManager.java deleted file mode 100644 index df3121e..0000000 --- a/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/SmartCardReaderManager.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2017 - 2025 Riigi Infosüsteemi Amet - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -package ee.ria.DigiDoc.smartcardreader; - -import io.reactivex.rxjava3.core.Observable; - -public interface SmartCardReaderManager { - - Observable status(); - - SmartCardReader connectedReader() throws SmartCardReaderException; -} diff --git a/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/SmartCardReaderStatus.java b/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/SmartCardReaderStatus.java deleted file mode 100644 index 7705f75..0000000 --- a/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/SmartCardReaderStatus.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2017 - 2025 Riigi Infosüsteemi Amet - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -package ee.ria.DigiDoc.smartcardreader; - -public enum SmartCardReaderStatus { - - /** - * No readers detected. - */ - IDLE, - - /** - * Supported reader detected and connected. - */ - READER_DETECTED, - - /** - * Card inside reader detected, ready to receive transmissions. - */ - CARD_DETECTED, -} diff --git a/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/AcsUsbSmartCardReader.java b/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/AcsUsbSmartCardReader.java deleted file mode 100644 index 8b639cb..0000000 --- a/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/AcsUsbSmartCardReader.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright 2017 - 2025 Riigi Infosüsteemi Amet - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -package ee.ria.DigiDoc.smartcardreader.usb; - -import android.hardware.usb.UsbDevice; -import android.hardware.usb.UsbManager; - -import com.acs.smartcard.Reader; -import com.acs.smartcard.ReaderException; - -import java.util.Arrays; - -import ee.ria.DigiDoc.smartcardreader.SmartCardReaderException; -import ee.ria.DigiDoc.utilsLib.logging.LoggingUtil; - -public final class AcsUsbSmartCardReader extends UsbSmartCardReader { - private static final String TAG = AcsUsbSmartCardReader.class.getName(); - private static final int SLOT = 0; - - private final Reader reader; - - public AcsUsbSmartCardReader(UsbManager usbManager) { - reader = new Reader(usbManager); - } - - @Override - public boolean supports(UsbDevice usbDevice) { - return reader.isSupported(usbDevice); - } - - @Override - public void open(UsbDevice usbDevice) { - reader.open(usbDevice); - } - - @Override - public void close() { - reader.close(); - } - - @Override - public boolean connected() { - if (reader.isOpened() && reader.getState(SLOT) == Reader.CARD_PRESENT) { - try { - reader.power(SLOT, Reader.CARD_WARM_RESET); - reader.setProtocol(SLOT, Reader.PROTOCOL_TX); - } catch (ReaderException e) { - LoggingUtil.Companion.errorLog(TAG, "Connecting to ACS reader exception: " + e.getMessage(), e); - } - } - return reader.isOpened() && reader.getState(SLOT) == Reader.CARD_SPECIFIC; - } - - @Override - public byte[] atr() { - return reader.getAtr(SLOT); - } - - @Override - protected byte[] transmit(byte[] apdu) throws SmartCardReaderException { - byte[] recv = new byte[1024]; - int len; - try { - len = reader.transmit(SLOT, apdu, apdu.length, recv, recv.length); - } catch (ReaderException e) { - throw new SmartCardReaderException(e); - } - return Arrays.copyOf(recv, len); - } -} diff --git a/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/IdentivUsbSmartCardReader.java b/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/IdentivUsbSmartCardReader.java deleted file mode 100644 index 552560e..0000000 --- a/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/IdentivUsbSmartCardReader.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright 2017 - 2025 Riigi Infosüsteemi Amet - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -package ee.ria.DigiDoc.smartcardreader.usb; - -import static com.identive.libs.WinDefs.SCARD_LEAVE_CARD; -import static com.identive.libs.WinDefs.SCARD_PROTOCOL_TX; -import static com.identive.libs.WinDefs.SCARD_SHARE_EXCLUSIVE; -import static com.identive.libs.WinDefs.SCARD_SPECIFIC; - -import android.content.Context; -import android.hardware.usb.UsbDevice; -import android.hardware.usb.UsbManager; - -import com.identive.libs.SCard; - -import java.util.ArrayList; -import java.util.Arrays; - -import ee.ria.DigiDoc.smartcardreader.SmartCardReaderException; - -public final class IdentivUsbSmartCardReader extends UsbSmartCardReader { - - private static final int VENDOR_ID = 1254; - - private final Context context; - private final UsbManager usbManager; - private final SCard sCard; - - public IdentivUsbSmartCardReader(Context context, UsbManager usbManager) { - this.context = context; - this.usbManager = usbManager; - sCard = new SCard(); - } - - @Override - public boolean supports(UsbDevice usbDevice) { - if (!usbManager.hasPermission(usbDevice) && usbDevice.getVendorId() == VENDOR_ID) { - return true; - } - open(usbDevice); - ArrayList readers = new ArrayList<>(); - sCard.SCardListReaders(context, readers); - return !readers.isEmpty(); - } - - @Override - public void open(UsbDevice usbDevice) { - sCard.SCardEstablishContext(context); - } - - @Override - public void close() { - sCard.SCardDisconnect(SCARD_LEAVE_CARD); - sCard.SCardReleaseContext(); - } - - @Override - public boolean connected() { - sCard.SCardEstablishContext(context); - - SCard.SCardState state = sCard.new SCardState(); - sCard.SCardStatus(state); - if (state.getnState() == SCARD_SPECIFIC) { - return true; - } - - ArrayList readers = new ArrayList<>(); - sCard.SCardListReaders(context, readers); - if (!readers.isEmpty()) { - sCard.SCardConnect(readers.get(0), SCARD_SHARE_EXCLUSIVE, (int) SCARD_PROTOCOL_TX); - } - return false; - } - - @Override - public byte[] atr() { - SCard.SCardState state = sCard.new SCardState(); - sCard.SCardStatus(state); - return Arrays.copyOf(state.getAbyATR(), state.getnATRlen()); - } - - @Override - protected byte[] transmit(byte[] apdu) throws SmartCardReaderException { - SCard.SCardIOBuffer io = sCard.new SCardIOBuffer(); - io.setAbyInBuffer(apdu); - io.setnInBufferSize(apdu.length); - io.setAbyOutBuffer(new byte[0x8000]); - io.setnOutBufferSize(0x8000); - sCard.SCardTransmit(io); - if (io.getnBytesReturned() == 0) { - throw new SmartCardReaderException("Failed to send apdu"); - } - String rstr = ""; - for (int k = 0; k < io.getnBytesReturned(); k++) { - int temp = io.getAbyOutBuffer()[k] & 0xFF; - if (temp < 16) { - rstr = rstr.toUpperCase() + "0" + Integer.toHexString(io.getAbyOutBuffer()[k]); - } else { - rstr = rstr.toUpperCase() + Integer.toHexString(temp); - } - } - return Arrays.copyOf(io.getAbyOutBuffer(), io.getnBytesReturned()); - } -} diff --git a/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/UsbSmartCardReader.java b/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/UsbSmartCardReader.java deleted file mode 100644 index d963d0a..0000000 --- a/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/UsbSmartCardReader.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2017 - 2025 Riigi Infosüsteemi Amet - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -package ee.ria.DigiDoc.smartcardreader.usb; - -import android.hardware.usb.UsbDevice; - -import ee.ria.DigiDoc.smartcardreader.SmartCardReader; - -/** - * Base class for smart card readers. - *

- * TODO Log all transmit commands in hex (request and response) - */ -public abstract class UsbSmartCardReader extends SmartCardReader { - - public abstract boolean supports(UsbDevice usbDevice); - - public abstract void open(UsbDevice usbDevice); - -} diff --git a/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/UsbSmartCardReaderManager.java b/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/UsbSmartCardReaderManager.java deleted file mode 100644 index db61368..0000000 --- a/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/UsbSmartCardReaderManager.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright 2017 - 2025 Riigi Infosüsteemi Amet - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -package ee.ria.DigiDoc.smartcardreader.usb; - -import android.content.Context; -import android.hardware.usb.UsbDevice; -import android.hardware.usb.UsbManager; - -import androidx.annotation.Nullable; - -import com.google.common.collect.ImmutableList; - -import java.util.concurrent.TimeUnit; - -import ee.ria.DigiDoc.smartcardreader.SmartCardReader; -import ee.ria.DigiDoc.smartcardreader.SmartCardReaderException; -import ee.ria.DigiDoc.smartcardreader.SmartCardReaderStatus; -import ee.ria.DigiDoc.smartcardreader.SmartCardReaderManager; -import io.reactivex.rxjava3.core.Observable; - -/** - * Manage smart card readers on Android platform. - */ -public final class UsbSmartCardReaderManager implements SmartCardReaderManager { - - /** - * Card connected retry interval in milliseconds. - */ - private static final int CONNECT_RETRY = 2500; - - private final UsbManager usbManager; - private final ImmutableList readers; - - private final Observable statusObservable; - - private SmartCardReader reader; - - public UsbSmartCardReaderManager(Context context, UsbManager usbManager, - ImmutableList readers) { - this.usbManager = usbManager; - this.readers = readers; - statusObservable = Observable - .create(new UsbSmartCardReaderOnSubscribe(context, this)) - .switchMap(readerOptional -> { - if (readerOptional.isPresent()) { - return Observable - .fromCallable(() -> { - readerOptional.get().connected(); - return readerOptional; - }) - .repeatWhen(completed -> - completed.delay(CONNECT_RETRY, TimeUnit.MILLISECONDS)); - } else { - return Observable.just(readerOptional); - } - }) - .map(readerOptional -> { - if (!readerOptional.isPresent()) { - reader = null; - return SmartCardReaderStatus.IDLE; - } - reader = readerOptional.get(); - if (reader.connected()) { - return SmartCardReaderStatus.CARD_DETECTED; - } else { - return SmartCardReaderStatus.READER_DETECTED; - } - }) - .replay(1) - .refCount(); - } - - boolean supports(UsbDevice usbDevice) { - return reader(usbDevice) != null; - } - - @Nullable - SmartCardReader reader(UsbDevice usbDevice) { - for (UsbSmartCardReader reader : readers) { - if (reader.supports(usbDevice)) { - if (usbManager.hasPermission(usbDevice)) { - reader.open(usbDevice); - } - return reader; - } - } - return null; - } - - @Override - public Observable status() { - return statusObservable; - } - - @Override - public SmartCardReader connectedReader() throws SmartCardReaderException { - if (reader == null || !reader.connected()) { - throw new SmartCardReaderException("Reader or card is not connected"); - } - return reader; - } -} diff --git a/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/UsbSmartCardReaderOnSubscribe.java b/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/UsbSmartCardReaderOnSubscribe.java deleted file mode 100644 index db7c152..0000000 --- a/libs/smart-card-reader-lib/src/main/java/ee/ria/DigiDoc/smartcardreader/usb/UsbSmartCardReaderOnSubscribe.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Copyright 2017 - 2025 Riigi Infosüsteemi Amet - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -package ee.ria.DigiDoc.smartcardreader.usb; - -import android.app.PendingIntent; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.hardware.usb.UsbDevice; -import android.hardware.usb.UsbManager; -import android.os.Build; - -import androidx.annotation.Nullable; - -import com.google.common.base.Optional; - -import ee.ria.DigiDoc.smartcardreader.BuildConfig; -import ee.ria.DigiDoc.smartcardreader.SmartCardReader; -import ee.ria.DigiDoc.utilsLib.logging.LoggingUtil; -import io.reactivex.rxjava3.core.ObservableEmitter; -import io.reactivex.rxjava3.core.ObservableOnSubscribe; - -final class UsbSmartCardReaderOnSubscribe implements ObservableOnSubscribe> { - private static final String TAG = UsbSmartCardReaderOnSubscribe.class.getName(); - private static final String ACTION_USB_DEVICE_PERMISSION = BuildConfig.LIBRARY_PACKAGE_NAME + - ".USB_DEVICE_PERMISSION"; - - private final Context context; - private final UsbManager usbManager; - private final UsbSmartCardReaderManager smartCardReaderManager; - - @Nullable private UsbDevice currentDevice; - @Nullable private SmartCardReader currentReader; - - UsbSmartCardReaderOnSubscribe(Context context, UsbSmartCardReaderManager smartCardReaderManager) { - this.context = context; - usbManager = (UsbManager) context.getSystemService(Context.USB_SERVICE); - this.smartCardReaderManager = smartCardReaderManager; - } - - @Override - public void subscribe(ObservableEmitter> emitter) { - BroadcastReceiver deviceAttachReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - UsbDevice device = getUsbDevice(intent); - LoggingUtil.Companion.debugLog(TAG, String.format("Smart card device attached: %s", device), null); - if (device != null && smartCardReaderManager.supports(device)) { - requestPermission(device); - } - } - }; - BroadcastReceiver deviceDetachReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - UsbDevice device = getUsbDevice(intent); - LoggingUtil.Companion.debugLog(TAG, String.format("Smart card device detached: %s", device), null); - if (device != null && currentDevice != null && - currentDevice.getDeviceId() == device.getDeviceId()) { - clearCurrent(); - emitter.onNext(Optional.absent()); - } - } - }; - BroadcastReceiver devicePermissionReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - boolean permissionGranted = intent.getBooleanExtra( - UsbManager.EXTRA_PERMISSION_GRANTED, false); - UsbDevice device = getUsbDevice(intent); - LoggingUtil.Companion.debugLog(TAG, String.format("Smart card device permission: granted: %s; device: %s", permissionGranted, - device), null); - if (permissionGranted && smartCardReaderManager.supports(device)) { - clearCurrent(); - currentDevice = device; - currentReader = smartCardReaderManager.reader(device); - emitter.onNext(Optional.fromNullable(currentReader)); - } - } - }; - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { - context.registerReceiver(deviceAttachReceiver, - new IntentFilter(UsbManager.ACTION_USB_DEVICE_ATTACHED), Context.RECEIVER_NOT_EXPORTED); - context.registerReceiver(deviceDetachReceiver, - new IntentFilter(UsbManager.ACTION_USB_DEVICE_DETACHED), Context.RECEIVER_NOT_EXPORTED); - context.registerReceiver(devicePermissionReceiver, - new IntentFilter(ACTION_USB_DEVICE_PERMISSION), Context.RECEIVER_NOT_EXPORTED); - } else { - context.registerReceiver(deviceAttachReceiver, - new IntentFilter(UsbManager.ACTION_USB_DEVICE_ATTACHED)); - context.registerReceiver(deviceDetachReceiver, - new IntentFilter(UsbManager.ACTION_USB_DEVICE_DETACHED)); - context.registerReceiver(devicePermissionReceiver, - new IntentFilter(ACTION_USB_DEVICE_PERMISSION)); - } - - emitter.setCancellable(() -> { - context.unregisterReceiver(deviceAttachReceiver); - context.unregisterReceiver(deviceDetachReceiver); - context.unregisterReceiver(devicePermissionReceiver); - clearCurrent(); - }); - - for (UsbDevice device : usbManager.getDeviceList().values()) { - if (smartCardReaderManager.supports(device)) { - requestPermission(device); - break; - } - } - } - - private void requestPermission(UsbDevice device) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { - Intent permissionIntent = new Intent(ACTION_USB_DEVICE_PERMISSION); - permissionIntent.setPackage(context.getPackageName()); - - usbManager.requestPermission(device, - PendingIntent - .getBroadcast(context, 0, permissionIntent, PendingIntent.FLAG_MUTABLE)); - } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { - usbManager.requestPermission(device, - PendingIntent - .getBroadcast(context, 0, new Intent(ACTION_USB_DEVICE_PERMISSION), PendingIntent.FLAG_MUTABLE)); - } else { - usbManager.requestPermission(device, - PendingIntent - .getBroadcast(context, 0, new Intent(ACTION_USB_DEVICE_PERMISSION), 0)); - } - } - - private void clearCurrent() { - currentDevice = null; - if (currentReader != null) { - try { - currentReader.close(); - } catch (Exception e) { - LoggingUtil.Companion.errorLog(TAG, String.format("Closing current reader %s", currentReader), e); - } - currentReader = null; - } - } - - private UsbDevice getUsbDevice(Intent intent) { - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.TIRAMISU) { - return intent.getParcelableExtra(UsbManager.EXTRA_DEVICE, UsbDevice.class); - } else { - return intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); - } - } -} diff --git a/libs/smart-card-reader-lib/src/test/java/ee/ria/DigiDoc/smartcardreader/UsbSmartCardReaderTest.java b/libs/smart-card-reader-lib/src/test/java/ee/ria/DigiDoc/smartcardreader/UsbSmartCardReaderTest.java deleted file mode 100644 index 4af35e4..0000000 --- a/libs/smart-card-reader-lib/src/test/java/ee/ria/DigiDoc/smartcardreader/UsbSmartCardReaderTest.java +++ /dev/null @@ -1,740 +0,0 @@ -package ee.ria.DigiDoc.smartcardreader; - -import static com.google.common.truth.Truth.assertThat; -import static org.hamcrest.CoreMatchers.equalTo; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import static org.mockito.Mockito.withSettings; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.mockito.Mock; -import org.mockito.MockMakers; - -import ee.ria.DigiDoc.smartcardreader.usb.UsbSmartCardReader; - -@SuppressWarnings("ResultOfMethodCallIgnored") -public final class UsbSmartCardReaderTest { - - @Rule public final ExpectedException exception = ExpectedException.none(); - - @Mock(mockMaker = MockMakers.SUBCLASS) - private SmartCardReader usbSmartCardReader; - - @Before - public void before() throws Exception { - usbSmartCardReader = mock(UsbSmartCardReader.class, withSettings().mockMaker(MockMakers.SUBCLASS)); - when(usbSmartCardReader.transmit(any())) - .thenReturn(new byte[] {(byte) 0x90, 0x00}); - } - - @Test - public void transmit_dataNull_leNull() throws Exception { - usbSmartCardReader.transmit(0x00, 0x01, 0x02, 0x03, null, null); - - verify(usbSmartCardReader).transmit(new byte[] {0x00, 0x01, 0x02, 0x03}); - } - - @Test - public void transmit_dataEmpty_leNull() throws Exception { - usbSmartCardReader.transmit(0x00, 0x01, 0x02, 0x03, new byte[0], null); - - verify(usbSmartCardReader).transmit(new byte[] {0x00, 0x01, 0x02, 0x03}); - } - - @Test - public void transmit_data255Bytes_leNull() throws Exception { - usbSmartCardReader.transmit(0x00, 0x01, 0x02, 0x03, new byte[] { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04}, null); - - verify(usbSmartCardReader).transmit(new byte[] {0x00, 0x01, 0x02, 0x03, (byte) 0xFF, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04}); - } - - @Test - public void transmit_data510Bytes_leNull() throws Exception { - usbSmartCardReader.transmit(0x00, 0x01, 0x02, 0x03, new byte[] { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09}, null); - - verify(usbSmartCardReader).transmit(new byte[] {0x10, 0x01, 0x02, 0x03, (byte) 0xFF, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04}); - verify(usbSmartCardReader).transmit(new byte[] {0x00, 0x01, 0x02, 0x03, (byte) 0xFF, - 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09}); - } - - @Test - public void transmit_data700Bytes_leNull() throws Exception { - usbSmartCardReader.transmit(0x00, 0x01, 0x02, 0x03, new byte[] { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09}, null); - - verify(usbSmartCardReader).transmit(new byte[] {0x10, 0x01, 0x02, 0x03, (byte) 0xFF, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04}); - verify(usbSmartCardReader).transmit(new byte[] {0x10, 0x01, 0x02, 0x03, (byte) 0xFF, - 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09}); - verify(usbSmartCardReader).transmit(new byte[] {0x00, 0x01, 0x02, 0x03, (byte) 0xBE, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09}); - } - - @Test - public void transmit_dataNull_lePresent() throws Exception { - usbSmartCardReader.transmit(0x00, 0x01, 0x02, 0x03, null, 0x00); - - verify(usbSmartCardReader).transmit(new byte[] {0x00, 0x01, 0x02, 0x03, 0x00}); - } - - @Test - public void transmit_data255Bytes_lePresent() throws Exception { - usbSmartCardReader.transmit(0x00, 0x01, 0x02, 0x03, new byte[] { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04}, 0x00); - - verify(usbSmartCardReader).transmit(new byte[] {0x00, 0x01, 0x02, 0x03, (byte) 0xFF, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, - 0x00}); - } - - @Test - public void transmit_data510Bytes_lePresent() throws Exception { - usbSmartCardReader.transmit(0x00, 0x01, 0x02, 0x03, new byte[] { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09}, 0x01); - - verify(usbSmartCardReader).transmit(new byte[] {0x10, 0x01, 0x02, 0x03, (byte) 0xFF, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, - 0x01}); - verify(usbSmartCardReader).transmit(new byte[] {0x00, 0x01, 0x02, 0x03, (byte) 0xFF, - 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x01}); - } - - @Test - public void transmit_data700Bytes_lePresent() throws Exception { - usbSmartCardReader.transmit(0x00, 0x01, 0x02, 0x03, new byte[] { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09}, 0x03); - - verify(usbSmartCardReader).transmit(new byte[] {0x10, 0x01, 0x02, 0x03, (byte) 0xFF, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, - 0x03}); - verify(usbSmartCardReader).transmit(new byte[] {0x10, 0x01, 0x02, 0x03, (byte) 0xFF, - 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x03}); - verify(usbSmartCardReader).transmit(new byte[] {0x00, 0x01, 0x02, 0x03, (byte) 0xBE, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x03}); - } - - @Test - public void transmit_response9000() throws Exception { - when(usbSmartCardReader.transmit(any())) - .thenReturn(new byte[] {(byte) 0x90, 0x00}); - - assertThat(usbSmartCardReader.transmit(0x00, 0x00, 0x00, 0x00, null, null)) - .isEqualTo(new byte[0]); - } - - @Test - public void transmit_responseDataAnd9000() throws Exception { - when(usbSmartCardReader.transmit(any())) - .thenReturn(new byte[] {0x01, 0x03, 0x05, (byte) 0x90, 0x00}); - - assertThat(usbSmartCardReader.transmit(0x00, 0x00, 0x00, 0x00, null, null)) - .isEqualTo(new byte[] {0x01, 0x03, 0x05}); - } - - @Test - public void transmit_responseDataAnd61XX() throws Exception { - when(usbSmartCardReader.transmit(any())) - .thenReturn( - new byte[] {0x01, 0x03, 0x05, 0x61, 0x05}, - new byte[] {0x05, 0x04, 0x03, 0x02, 0x01, (byte) 0x90, 0x00}); - - assertThat(usbSmartCardReader.transmit(0x00, 0x00, 0x00, 0x00, null, null)) - .isEqualTo(new byte[] {0x01, 0x03, 0x05, 0x05, 0x04, 0x03, 0x02, 0x01}); - } - - @Test - public void transmit_responseDataNot9000Nor61XX() throws Exception { - when(usbSmartCardReader.transmit(any())) - .thenReturn(new byte[] {0x67, 0x69}); - - exception.expect(equalTo(new ApduResponseException((byte) 0x67, (byte) 0x69))); - - usbSmartCardReader.transmit(0x00, 0x00, 0x00, 0x00, null, null); - } -}