<# .SYNOPSIS Stellt die Zustimmungsseite des merchantCENTRAL eBay Connectors in der eigenen Azure-Subscription bereit. .DESCRIPTION eBay leitet den Browser nach der Zustimmung auf die Accept-URL des RuName um und haengt den Autorisierungscode als Query-Parameter an. Dieses Skript legt dafuer ein Speicherkonto mit statischer Website an und laedt eine einzelne HTML-Seite hoch, die den Code zum Kopieren anzeigt. Das Skript ist selbsttragend: Die Seite steckt weiter unten base64-kodiert darin. Es wird beim Ausrollen nichts nachgeladen - weder von ALTENBRAND noch von sonst jemandem. Wer das Skript einmal heruntergeladen hat, kann es ohne jede Verbindung nach aussen ausfuehren, und ALTENBRAND erfaehrt weder wann noch wie oft es laeuft. Es laeuft auch nichts serverseitig: kein Function-Code, keine Datenbank, keine Geheimnisse. Der Autorisierungscode wird ausschliesslich im Browser gelesen. Weil die Seite in der Subscription des Kunden liegt, verlaesst er dessen Infrastruktur nie. Bewusst kein ARM-Template: Die statische Website ist eine Datenebenen-Einstellung des Speicherkontos, die ARM nicht setzen kann. Ein Template braeuchte dafuer eine zusaetzliche deploymentScript-Ressource - mehr bewegliche Teile als das, was bereitgestellt wird. .NOTES Ausfuehren in der Azure Cloud Shell (PowerShell). Dort ist die Anmeldung bereits erfolgt, az und die noetigen Berechtigungen sind vorhanden. Voraussetzung: Rolle "Mitwirkender" (Contributor) auf der Subscription oder Ressourcengruppe. Es werden keine Rollenzuweisungen und keine verwaltete Identitaet angelegt, Owner ist also nicht noetig. .EXAMPLE ./deploy-ebay-consent-page.ps1 Fragt Ressourcengruppe und Region ab und gibt am Ende die Accept-URL aus. .EXAMPLE ./deploy-ebay-consent-page.ps1 -ShowPage > zustimmungsseite.html Schreibt die eingebettete Seite heraus, ohne etwas in Azure anzulegen - zum Nachlesen, was hochgeladen wuerde. #> [CmdletBinding()] param( [string] $ResourceGroup, [string] $Location, [string] $NamePrefix = 'mceconsent', # Gibt die eingebettete Seite aus und beendet sich. Legt nichts an. [switch] $ShowPage ) $ErrorActionPreference = 'Stop' # --------------------------------------------------------------------------------------------- # Die Zustimmungsseite, base64-kodiert. # # Beim Release setzt `.github/workflows/release-azure.yml` hier den Inhalt von # `azure/web/consent/index.html` ein - es gibt also nur eine gepflegte Fassung der Seite. # Im Repo steht der Platzhalter; dann liest das Skript die Seite aus dem Nachbarordner, # damit es sich auch aus dem Arbeitsverzeichnis heraus testen laesst. # # Base64 statt Klartext, weil die Seite Umlaute enthaelt: So haengt nichts an der Kodierung, # mit der PowerShell diese Datei einliest. Zum Nachlesen des Inhalts: -ShowPage. # --------------------------------------------------------------------------------------------- $ConsentPageBase64 = @' PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImRlIgogICAgICBkYXRhLXRpdGxlLWRlPSJlQmF5LVp1c3RpbW11bmcg4oCTIEF1 dG9yaXNpZXJ1bmdzY29kZSB8IG1lcmNoYW50Q0VOVFJBTCIKICAgICAgZGF0YS10aXRsZS1lbj0iZUJheSBjb25zZW50IOKAkyBh dXRob3JpemF0aW9uIGNvZGUgfCBtZXJjaGFudENFTlRSQUwiPgo8aGVhZD4KPG1ldGEgY2hhcnNldD0idXRmLTgiPgo8bWV0YSBu YW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgo8bWV0YSBuYW1lPSJy b2JvdHMiIGNvbnRlbnQ9Im5vaW5kZXgsIG5vZm9sbG93Ij4KPHRpdGxlPmVCYXktWnVzdGltbXVuZyDigJMgQXV0b3Jpc2llcnVu Z3Njb2RlIHwgbWVyY2hhbnRDRU5UUkFMPC90aXRsZT4KPCEtLQogIEFjY2VwdC1VUkwgZnVlciBkZW4gZUJheS1PQXV0aC1BYmxh dWYgZGVzIG1lcmNoYW50Q0VOVFJBTCBlQmF5IENvbm5lY3RvcnMuCgogIGVCYXkgbGVpdGV0IGRlbiBCcm93c2VyIG5hY2ggZGVy IFp1c3RpbW11bmcgaGllcmhlciB1bmQgaGFlbmd0IGRlbiBBdXRvcmlzaWVydW5nc2NvZGUgYWxzCiAgUXVlcnktUGFyYW1ldGVy IGFuLiBEaWVzZSBTZWl0ZSBsaWVzdCBpaG4gYXVzIGRlciBBZHJlc3NlIHVuZCB6ZWlndCBpaG4genVtIEtvcGllcmVuIGFuLgoK ICBTaWUgbGFldWZ0IHZvbGxzdGFlbmRpZyBpbSBCcm93c2VyOiBrZWluIFNlcnZlci1Db2RlLCBrZWluIFNwZWljaGVybiwga2Vp biBWZXJzYW5kIGFuIERyaXR0ZS4KICBTaWUgbGllZ3QgaW0gQXp1cmUtU3BlaWNoZXJrb250byBkZXMgS3VuZGVuLCBkYW1pdCBk ZXIgQ29kZSBkaWUgZWlnZW5lIEluZnJhc3RydWt0dXIgbmllCiAgdmVybGFlc3N0IC0gd2VkZXIgdW5zZXJlIG5vY2ggc29uc3Qg amVtYW5kZXMuCgogIERpZSBTZWl0ZSBpc3QgU0VMQlNUVFJBR0VORDogZGVwbG95LWViYXktY29uc2VudC1wYWdlLnBzMSBsYWVk dCBudXIgZGllc2UgZWluZSBEYXRlaSBpbiBkYXMKICBLdW5kZW4tU3BlaWNoZXJrb250by4gU3R5bGVzaGVldCwgU2tyaXB0IHVu ZCBMb2dvIHN0ZWhlbiBkZXNoYWxiIGluIGRlciBEYXRlaSBzZWxic3QuIERhcwogIExheW91dCBmb2xndCBhenVyZS93ZWIvYXNz ZXRzL2Nzcy9tZXJjaGFudGNlbnRyYWwuY3NzIChLb3BmbGVpc3RlLCBIZXJvLCBLYXJ0ZW4sIEZvb3RlcikgLQogIGJlaSBBZW5k ZXJ1bmdlbiBkb3J0IGhpZXIgbmFjaHppZWhlbi4KCiAgT2huZSBKYXZhU2NyaXB0IChldHdhIGltIERvd25sb2FkLUthbmFsLCBk ZXIgbnVyIFNrcmlwdGUgdm9tIGVpZ2VuZW4gU2VydmVyIHp1bGFlc3N0KSB6ZWlndAogIHNpZSBkaWUgZGV1dHNjaGUgQmVkaWVu aGlud2Vpcy1LYXJ0ZSB1bmQgYmxlbmRldCBkaWUgU3ByYWNodW1zY2hhbHR1bmcgYXVzLgotLT4KPHN0eWxlPgoqLCo6OmJlZm9y ZSwqOjphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjA7cGFkZGluZzowfQo6cm9vdHsKICBjb2xvci1zY2hlbWU6 bGlnaHQ7CiAgLS10ZWFsOiMwMDdCOEE7LS1jeWFuOiMwMEI0RDg7CiAgLS1iZzojRjVGN0Y4Oy0tY2FyZC1iZzojZmZmOy0tdGV4 dDojMWEyMzI3Oy0tbXV0ZWQ6IzVjNmI3MDstLWJvcmRlcjojZTNlOGVhOwogIC0tc2hhZG93OjAgMTBweCAzMHB4IC0xOHB4IHJn YmEoNiwzOCw0MywuMzUpOwogIC0tbm90ZXMtYmc6I2YzZjdmODstLWNvZGUtYmc6IzBBMkUzNTstLWNvZGUtZmc6I2UzZjRmNzsK ICAtLXN0ZXAtYmc6I2UzZjJmNDstLXN0ZXAtZmc6IzAwNTY2MjsKICAtLXdhcm4tYmc6I2ZmZjZlMDstLXdhcm4tbGluZTojZTZi MzRhOy0td2Fybi1mZzojNmQ1MzEyOwogIC0tb2s6IzFhN2Y0YjstLWxpbms6IzAwN0I4QTsKICAtLXRvcGJhcjpsaW5lYXItZ3Jh ZGllbnQoMTAwZGVnLCM4RkFCQUYgMCUsIzQ1Nzk3RiAzMCUsIzExNDA0QSA2NCUsIzA3MUUyMyAxMDAlKTsKICAtLWhlcm8tZ3Jh ZDpsaW5lYXItZ3JhZGllbnQoMTYwZGVnLCMwNzFFMjMgMCUsIzBBMkUzNSA1NSUsIzBFM0M0NiAxMDAlKTsKICAtLWZvb3Rlci1i ZzojMDcxRTIzOwp9CkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7CiAgOnJvb3R7CiAgICBjb2xvci1zY2hlbWU6 ZGFyazsKICAgIC0tYmc6IzEzMTcxYjstLWNhcmQtYmc6IzFjMjIyODstLXRleHQ6I2U4ZWFlZDstLW11dGVkOiM5YWE2YWI7LS1i b3JkZXI6IzJjMzQzYjsKICAgIC0tc2hhZG93OjAgMTJweCAzMnB4IC0xOHB4IHJnYmEoMCwwLDAsLjYpOwogICAgLS1ub3Rlcy1i ZzpyZ2JhKDI1NSwyNTUsMjU1LC4wNCk7LS1jb2RlLWJnOiMwYjEzMTY7LS1jb2RlLWZnOiNkNmVlZjI7CiAgICAtLXN0ZXAtYmc6 cmdiYSgwLDE4MCwyMTYsLjE0KTstLXN0ZXAtZmc6IzdmZGNlYzsKICAgIC0td2Fybi1iZzpyZ2JhKDIzMCwxNzksNzQsLjEpOy0t d2Fybi1saW5lOnJnYmEoMjMwLDE3OSw3NCwuNDUpOy0td2Fybi1mZzojZTNjNDg5OwogICAgLS1vazojNGJjZjhhOy0tbGluazoj NWZkMGU2OwogIH0KfQpib2R5e2ZvbnQtZmFtaWx5OiJTZWdvZSBVSSIsc3lzdGVtLXVpLC1hcHBsZS1zeXN0ZW0sc2Fucy1zZXJp ZjtiYWNrZ3JvdW5kOnZhcigtLWJnKTtjb2xvcjp2YXIoLS10ZXh0KTttaW4taGVpZ2h0OjEwMHZoO2Rpc3BsYXk6ZmxleDtmbGV4 LWRpcmVjdGlvbjpjb2x1bW47bGluZS1oZWlnaHQ6MS42NX0KW2hpZGRlbl17ZGlzcGxheTpub25lICFpbXBvcnRhbnR9Cgouc2l0 ZS1oZWFkZXJ7cG9zaXRpb246c3RpY2t5O3RvcDowO3otaW5kZXg6MzA7YmFja2dyb3VuZDp2YXIoLS10b3BiYXIpO2JveC1zaGFk b3c6MCA2cHggMjJweCAtMTZweCByZ2JhKDYsMzgsNDMsLjcpfQouaGVhZGVyLWlubmVye21heC13aWR0aDoxMjgwcHg7bWFyZ2lu OjAgYXV0bztwYWRkaW5nOjEwcHggMjJweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxcmVtfQouYnJhbmR7 ZmxleC1zaHJpbms6MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3RleHQtZGVjb3JhdGlvbjpub25lfQouYnJhbmQt bG9nb3toZWlnaHQ6NTRweDt3aWR0aDphdXRvO2Rpc3BsYXk6YmxvY2t9Ci5zaXRlLW5hdnttYXJnaW4tbGVmdDphdXRvO2Rpc3Bs YXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjVweH0KLnNpdGUtbmF2IGF7Y29sb3I6cmdiYSgyMzMsMjQ3LDI1MCwuODUp O3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtc2l6ZToxNS42cHg7Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6OHB4IDE0LjRweDti b3JkZXItcmFkaXVzOjk5OXB4O3doaXRlLXNwYWNlOm5vd3JhcH0KLnNpdGUtbmF2IGE6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3Jv dW5kOnJnYmEoMjU1LDI1NSwyNTUsLjEpfQouc2l0ZS1sYW5ne2Rpc3BsYXk6bm9uZTthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJw eDttYXJnaW46MCAzcHg7Zm9udC1zaXplOjE0LjRweDtmb250LXdlaWdodDo3MDB9Ci5qcyAuc2l0ZS1sYW5ne2Rpc3BsYXk6aW5s aW5lLWZsZXh9Ci5zaXRlLWxhbmdfX29wdHtjb2xvcjpyZ2JhKDIzMywyNDcsMjUwLC42KTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50 O2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6Mi44cHggOHB4O2JvcmRlci1yYWRpdXM6NnB4O2ZvbnQ6aW5oZXJpdH0K LnNpdGUtbGFuZ19fb3B0OmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4xKX0KLnNpdGUtbGFu Z19fb3B0LS1hY3RpdmV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjE4KX0KLnNpdGUtbGFuZ19fb3B0 OmZvY3VzLXZpc2libGV7b3V0bGluZToycHggc29saWQgIzdmZGNlYztvdXRsaW5lLW9mZnNldDoxcHh9Cjpyb290Om5vdChbbGFu Zz0iZW4iXSkgLmxhbmctZW4sCjpyb290W2xhbmc9ImVuIl0gLmxhbmctZGV7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9CgouaGVy b3twb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDp2YXIoLS1oZXJvLWdyYWQpO2NvbG9yOiNmZmZ9 Ci5oZXJvOjpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTQ1JTtyaWdodDotOCU7d2lkdGg6NjIwcHg7 aGVpZ2h0OjUyMHB4O2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSxyZ2JhKDAsMTgwLDIxNiwuMTcpLHRyYW5zcGFy ZW50IDYyJSk7cG9pbnRlci1ldmVudHM6bm9uZX0KLmhlcm8taW5uZXJ7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO21heC13 aWR0aDoxMjgwcHg7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjIuNnJlbSAxLjVyZW0gMi44cmVtO3RleHQtYWxpZ246Y2VudGVyfQou aGVyby1iYWRnZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6LjQ1cmVtO2ZvbnQtc2l6ZTouNzJy ZW07Zm9udC13ZWlnaHQ6NzAwO2xldHRlci1zcGFjaW5nOi4wOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjojYmZl OWYyO2JhY2tncm91bmQ6cmdiYSgwLDE4MCwyMTYsLjEyKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwxODAsMjE2LC4zKTtwYWRk aW5nOi4zMnJlbSAuOHJlbTtib3JkZXItcmFkaXVzOjk5OXB4O21hcmdpbi1ib3R0b206MS4xcmVtfQouaGVyby1iYWRnZTo6YmVm b3Jle2NvbnRlbnQ6IiI7d2lkdGg6N3B4O2hlaWdodDo3cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojMDBCNEQ4O2Jv eC1zaGFkb3c6MCAwIDAgM3B4IHJnYmEoMCwxODAsMjE2LC4yNSl9Ci5oZXJvIGgxe2ZvbnQtc2l6ZToycmVtO2ZvbnQtd2VpZ2h0 OjgwMDtsZXR0ZXItc3BhY2luZzotLjAyZW07bGluZS1oZWlnaHQ6MS4xNTttYXJnaW4tYm90dG9tOi42cmVtO2NvbG9yOiNmZmZ9 Ci5oZXJvIHB7Zm9udC1zaXplOjEuMDRyZW07Y29sb3I6cmdiYSgyMzMsMjQ3LDI1MCwuODIpO21heC13aWR0aDo2NDBweDttYXJn aW46MCBhdXRvfQoKbWFpbntmbGV4OjE7d2lkdGg6MTAwJTttYXgtd2lkdGg6NTJyZW07bWFyZ2luOjAgYXV0bztwYWRkaW5nOjIu MnJlbSAxLjVyZW0gMy40cmVtfQptYWluIGgye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOi42cmVtO2ZvbnQt c2l6ZToxLjE1cmVtO2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW46MCAwIC44NXJlbTtjb2xvcjp2YXIoLS10ZXh0KX0KbWFpbiBoMjo6 YmVmb3Jle2NvbnRlbnQ6IiI7d2lkdGg6NHB4O2hlaWdodDoxLjFlbTtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kOmxpbmVh ci1ncmFkaWVudCgxODBkZWcsdmFyKC0tdGVhbCksdmFyKC0tY3lhbikpO2ZsZXgtc2hyaW5rOjB9CnB7bWFyZ2luOi43NXJlbSAw fQphe2NvbG9yOnZhcigtLWxpbmspfQpzdHJvbmd7Zm9udC13ZWlnaHQ6NzAwfQouY2FyZHtiYWNrZ3JvdW5kOnZhcigtLWNhcmQt YmcpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjE2cHg7cGFkZGluZzoxLjVyZW0gMS42cmVt O2JveC1zaGFkb3c6dmFyKC0tc2hhZG93KTttYXJnaW46LjlyZW0gMH0KLmNhcmQgPiA6Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDow fQouY2FyZCA+IDpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0KLmNhcmQud2FybntiYWNrZ3JvdW5kOnZhcigtLXdhcm4tYmcp O2JvcmRlci1jb2xvcjp2YXIoLS13YXJuLWxpbmUpO2JvcmRlci1sZWZ0LXdpZHRoOjRweDtjb2xvcjp2YXIoLS13YXJuLWZnKTti b3gtc2hhZG93Om5vbmV9Ci5oaW50e2NvbG9yOnZhcigtLW11dGVkKTtmb250LXNpemU6LjlyZW19Ci5va3tjb2xvcjp2YXIoLS1v ayk7Zm9udC13ZWlnaHQ6NzAwfQouZXhwaXJlZHtjb2xvcjp2YXIoLS13YXJuLWZnKTtmb250LXdlaWdodDo3MDB9CmNvZGV7Zm9u dC1mYW1pbHk6IkNhc2NhZGlhIENvZGUiLCJDYXNjYWRpYSBNb25vIixDb25zb2xhcyxtb25vc3BhY2U7Zm9udC1zaXplOi44NmVt O2JhY2tncm91bmQ6dmFyKC0tbm90ZXMtYmcpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtwYWRkaW5nOi4wNXJlbSAu MzVyZW07Ym9yZGVyLXJhZGl1czo1cHh9Ci5jb2RlLXZhbHVle2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZDp2YXIoLS1jb2RlLWJn KTtjb2xvcjp2YXIoLS1jb2RlLWZnKTtib3JkZXI6MDtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoxcmVtIDEuMXJlbTttYXJn aW46MXJlbSAwO3dvcmQtYnJlYWs6YnJlYWstYWxsO2ZvbnQtc2l6ZTouOTJyZW07bGluZS1oZWlnaHQ6MS41fQpvbHtsaXN0LXN0 eWxlOm5vbmU7Y291bnRlci1yZXNldDpzdGVwO21hcmdpbjouNXJlbSAwfQpvbCA+IGxpe2NvdW50ZXItaW5jcmVtZW50OnN0ZXA7 cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1sZWZ0OjIuNnJlbTttYXJnaW46MXJlbSAwfQpvbCA+IGxpOmZpcnN0LWNoaWxke21h cmdpbi10b3A6MH0Kb2wgPiBsaTo6YmVmb3Jle2NvbnRlbnQ6Y291bnRlcihzdGVwKTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7 dG9wOi4wNXJlbTt3aWR0aDoxLjc1cmVtO2hlaWdodDoxLjc1cmVtO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0t c3RlcC1iZyk7Y29sb3I6dmFyKC0tc3RlcC1mZyk7Zm9udC1zaXplOi44NXJlbTtmb250LXdlaWdodDo4MDA7ZGlzcGxheTpmbGV4 O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfQouY29weS1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0 ZW1zOmNlbnRlcjtnYXA6Ljc1cmVtO2ZsZXgtd3JhcDp3cmFwfQouYnRue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6 Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzouNnJlbSAxLjE1cmVtO2JvcmRlci1yYWRpdXM6MTBweDtmb250 LXNpemU6LjlyZW07Zm9udC13ZWlnaHQ6NzAwO2N1cnNvcjpwb2ludGVyO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LWZhbWlseTpp bmhlcml0fQouYnRuLXByaW1hcnl7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTIwZGVnLCMwMDdCOEEg MCUsIzAwQjREOCAxMDAlKTtjb2xvcjojZmZmO2JveC1zaGFkb3c6MCAxMHB4IDI0cHggLTEycHggcmdiYSgwLDEyMywxMzgsLjYp fQouYnRuLXNlY29uZGFyeXtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXRlYWwpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6 dmFyKC0tbGluayl9Ci5idG46Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjNweCBzb2xpZCB2YXIoLS1jeWFuKTtvdXRsaW5lLW9mZnNl dDoycHh9Cgouc2l0ZS1mb290ZXJ7YmFja2dyb3VuZDp2YXIoLS1mb290ZXItYmcpO2NvbG9yOnJnYmEoMjMzLDI0NywyNTAsLjcy KTttYXJnaW4tdG9wOmF1dG87Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDYpfQouZm9vdGVyLWlubmVy e21heC13aWR0aDoxMjgwcHg7bWFyZ2luOjAgYXV0bztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29u dGVudDpzcGFjZS1iZXR3ZWVuO2ZsZXgtd3JhcDp3cmFwO2dhcDouNnJlbTtwYWRkaW5nOjEuMXJlbSAxLjVyZW19Ci5mb290ZXIt Y29weS1tYWlue2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkyKTtmb250LXNpemU6Ljc4cmVtO2ZvbnQtd2VpZ2h0OjcwMDtkaXNw bGF5OmJsb2NrfQouZm9vdGVyLXRhZ2xpbmV7Y29sb3I6cmdiYSgyMzMsMjQ3LDI1MCwuNSk7Zm9udC1zaXplOi42OHJlbTttYXJn aW4tdG9wOi4xNXJlbTtkaXNwbGF5OmJsb2NrfQouZm9vdGVyLWxlZ2Fse2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7 Z2FwOi40NXJlbTtmb250LXNpemU6LjcycmVtO2ZsZXgtd3JhcDp3cmFwfQouZm9vdGVyLWxlZ2FsIGF7Y29sb3I6IzdmZGNlYzt0 ZXh0LWRlY29yYXRpb246bm9uZX0KLmZvb3Rlci1sZWdhbCBhOmhvdmVye2NvbG9yOiNmZmZ9Ci5mb290ZXItbGVnYWwgc3Bhbntj b2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4yOCl9CgpAbWVkaWEobWF4LXdpZHRoOjY4MHB4KXsKICAuaGVhZGVyLWlubmVye2ZsZXgt d3JhcDp3cmFwO3BhZGRpbmc6LjVyZW0gMXJlbTtnYXA6LjVyZW19CiAgLmJyYW5kLWxvZ297aGVpZ2h0OjIuNXJlbX0KICAuc2l0 ZS1uYXZ7b3JkZXI6Mzt3aWR0aDoxMDAlO21hcmdpbi1sZWZ0OjA7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LXdyYXA6d3Jh cDtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xMyk7cGFkZGluZy10b3A6LjVyZW19CiAgLnNpdGUtbmF2 IGF7Zm9udC1zaXplOjE0cHg7cGFkZGluZzo2cHggMTFweH0KICAuaGVybyBoMXtmb250LXNpemU6MS42cmVtfQogIG1haW57cGFk ZGluZzoxLjhyZW0gMXJlbSAzcmVtfQogIC5jYXJke3BhZGRpbmc6MS4ycmVtIDEuMTVyZW19CiAgLmZvb3Rlci1pbm5lcntmbGV4 LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1zdGFydH0KfQo8L3N0eWxlPgo8c2NyaXB0PgovLyBTcHJhY2hlIHZv ciBkZW0gWmVpY2huZW4gZmVzdGxlZ2VuLCBkYW1pdCBlaW5lIGVuZ2xpc2NoZSBTZWl0ZSBuaWNodCBlcnN0IGRldXRzY2ggYXVm YmxpdHp0LgooZnVuY3Rpb24gKCkgewogIHZhciByb290ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCB2YWx1ZSA9IG51bGw7 CiAgdHJ5IHsgdmFsdWUgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21jLWxhbmcnKTsgfSBjYXRjaCAoZSkgeyAvKiBw cml2YXRlcyBGZW5zdGVyICovIH0KICB2YWx1ZSA9IHZhbHVlIHx8IChuYXZpZ2F0b3IubGFuZ3VhZ2UgfHwgJ2RlJykuc2xpY2Uo MCwgMikudG9Mb3dlckNhc2UoKTsKICByb290LmxhbmcgPSAodmFsdWUgPT09ICdlbicpID8gJ2VuJyA6ICdkZSc7CiAgcm9vdC5j bGFzc05hbWUgKz0gJyBqcyc7Cn0pKCk7Cjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PgoKPGhlYWRlciBjbGFzcz0ic2l0ZS1oZWFk ZXIiPgogIDxkaXYgY2xhc3M9ImhlYWRlci1pbm5lciI+CiAgICA8YSBocmVmPSJodHRwczovL3d3dy5tZXJjaGFudGNlbnRyYWwu ZGUiIGNsYXNzPSJicmFuZCIgYXJpYS1sYWJlbD0ibWVyY2hhbnRDRU5UUkFMIj4KICAgICAgPGltZyBzcmM9ImRhdGE6aW1hZ2Uv cG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBUjhBQUFCdUNBWUFBQUFlWGhlZEFBQkVla2xFUVZSNG5PMTlCM2dj eGZuK3pMWXJPdlV1V2IxWmN1OEZHM2M2d2RRUWFnaUJCSEFDSWJTUTVFZEwrRU1vSnZRU2VnMkVaakJnYkxDTmJia1hYR1JadmRz cWQrcFh0c3o4bjI5UE1ySjF1M3VTVHBhQmU1OUhMcnE5bWRrcDMzenpsWGN3cFJRRkVVUVFRWnhvTUNlOHhpQ0NDQ0tJb1BBSklv Z2dSZ3BCelNlSUlJSVlFUVNGVHhCQkJERWlDQXFmSUlJSVlrVEFqVXkxUWZ5Y1VIdWtqYk8zdTAySUVvMG5NRXBMaW5CR2hsbUNy dGVmRVlMQ0o0aGh4Mk92YnJ6MmszVlZ6eFBaN2VOVGpERExvVWR1WFpoenlSbmp5b0xEOGZOQlVQZ0VNZXhnV1VhaVJFSHcweDhZ SVl6aC9CL1VlbjVtQ0FxZklJWWRYc0VDc2tWTHZsQ0VHUndVUGljUkpOblhSbkVzZUk0ZFVoMUI0Uk5FRUVFY2cyNlhpSmN1ZS9Q OUxxYzh5cGUyaWhrT1JVZVlEcjc5cjB1dURROGR2SjB1S0h5Q0NDS0lZNkFvQk5VMnRNMTF5Vnc4SmJJUDRjTWpwOU1WcFJDQ2Rk UlpRd1NGVHhCQkJIRU1NTWJJSkhEdFRsSHlLWHdBZ21CdXgzaG9SK1ZnbkU4UVFRUXhJZ2dLbnlDQ0NHSkVFQlErUVFRUnhJamdo Tmg4Q0tXcUVZdkJHR0krQmwyT3JCQUUvRU53SnVXR1VNNWczNEVRcUIrTlNQMUdVQWhCaE5BaDkzRXZvSitoUEhodnNDb3lMS09X UFZMb25VUFFBbTZJTHQ2QjFFbDcrMEFOUjhLSVpVNnVjUitPc2VjNTF0Q1d3ekNZbkJCWGU3ZlRneFdpM1I0WWxCQ3JRUHRPenNh V1R2YXJUYVg1VzcrdlcxUmEzVHlucTF0TU1BbHNWMUo4Mk43eE9RbmZMamtsdTNES21GR2RSblh2S1c0SVdiTzVmTWFlUTRjWDFE ZTBUWFo3NUFpemlXdExqQS9iTnpZM1lmMkM2Vm1iWjAxSWFVTUJSbkZsczNuNzN0cXM0bXI3MktwYXg0UW1SMWVPMHkxRkt6SXht UVd1SXpMQ1VwV2VGTFY3ZEdiTTdoa1RVb3NtNUNWMFF6OE1CbTVSUXFLbzZIN1phdUVweHg0NzJKdjMxa2FzMzFJK1kzOUYwNXlH SXgzalhHNHBXdUJaWjFKYzJONEhiMW55MTR5VWFOSGZOcFRWMkUxYjk5VmxsRlcxaks3MHZtOTJwMHVNbDBVbGhPVllsOFhNdGNa R2hGUWt4WWNYcHlkSEZPZG54VmFNellsdmlZOE9OUTRJR1NUMmxSNnhydDFhUHZuNzRpTnpxK3BicHp0ZFVnekxNcDdZU0d2WjZN ejREYk1tcG14WVBEdXJ4bW9XQmxVK0xGaDd1NU9wckhPRVZ0ZTN4ZFllYVJ0MXVMa3IxZDdXbmVKb2Q2VjF1Y1JvU1pSdG9xallN SXRsazhCMVJ0ak1kWEZSdHJLTWxLaDlPZW5ScGRQR2pxcE5UWXlRQnZ1T0xvK0VKRWwvN0VNc0FqMWVxT3crMkdCYnU3Vjg2dDVE UitiVkhtNmY1SFNKc1p6QWRzZEdoSlNPeVVsWVAydGl5cWJGczdMcUJkNTRpWXVTak53ZStXZ2JPcnM5TFBIdU9acVFGU0k0MnAw Y0lWVFdiYnRWb0ZvQ0d4c3hHWUpVdmVpUGJ6OWZVZCt4a1Bpd2ZETUlJNGJEcnJjZi91WE1ndXc0Rit3U3o3KzNiZWJMSCsxOHJx Vk5tZ2pQVUtyQUh6MDFNZ2d6TEdLSVJ6eGpidTVkZDExMzZ0TnBTWkg5QnErMHFzWDAyT3NibDYzYVVQb1B3cGpNa0Jma0xhY25L QlpPakF5SElHUi8vdlQwQi81Ni9id0hSMmZHK1lyZkgxQmcxWWVyRCtUK2IxWFJzajBINjYrVUNCY0JXNTQzMW9IMmVRZnZIeGl6 M3VoYzRuRlBHalBxdGN2UEh2L28rVXNLeWdlcUlkenoxT3FMUGwxYi9xQ2llSHgrempBY2VtRFp3c1cvV0pSZkEvL2ZlYUF1OUxI WEN2KzJZVmYxSFF4clJvaktxcWFpdG8rQm51SFF1NCtjRnpscllwcXVVSGE2UmZUeE53ZEhmL3JOd1J0Mkg2eS9RcFRaS0JnZlJK VWZ5dXVGK2s3d3pvejZiNnFJS0RTRXE1eGFNT3F0ZTVZdC9FZm1xQ2hOUVhmN3Y3NjQ1djNWSmEvb3BWY3N2K1AwckF0UEcxc0J2 emxZMFdSKzR2WENaVjl2THJ1SElNSG1IWHZTcC8reEdtc0M4eUVuSmVMVFAxMDU4dy9uTE1pdlJRUEFZNjl1V0xCaFY4MWxaZFhO Q3pxN1BHbVVFVGdvMDV0L1JyMzFBWTdwQTlTbkR4aDFYbGg1Mmpoell0cnpsNXc1OXFXelRzMnJSd1BFbng3OC9QcTFPK3B1MHh4 N3hLQW4vbnJXS1F1bVp6WDNic1pQdkY1NDIvb2RWWGNSTEpqNzk0MTNmVUhieG1SRnYzdnIxYlArdEdSMlRxTmVHMTc5YU1lRUo5 N2MvZ0VoM2lHa2xES2RYZTQwUXJXVkU1YkJZa2lJVU05Z1JsUDRNSmhEcno2NGRNcmtndVRPUVdzK2psWm5abHUzbkVPVi9nSWVC b0lRQ1FrY1N5QTQ2YWI3Vi96ZjJwMkg3NFhKU1ludkRRRmtDTUdNOE1XbW1zZDNIL3p2SmMvOTM3bExKaFVrZC9WKy91V0dRMGwz TC85bXRhTkxMZ0MxbHlyTy9tWEFIekJnbUVIZjdUcnk5d08zLysvODUrNDVaODZNOGFudGFCRDRia2RGOUVQLzJmakVnZkxXS3hB aWlDZ2c2UFEzdE41cFNUQmozbkdnOGZjN2l0YjgvcDJWM3o5ejcwMEw3eGlYbTlDLzBScm82UEpFUWY4U1dkSlluQWhKaXFLTzFY c3J2OCs5OTlsMUcxd2lpb01KUjZUdTR4cUZFY0VLcU4rNnU4cks5Y1dqbHIrKythblMybzZsNm1KVFFPREFQTkxmakk1K2lqSHFk S0tNOWJ1UC9MMml4djVNNXFnbzNRbHVCSTVsVkEzcXZTKy96LzNuQ3h1KzZIQ1NMQ3JEd3ZMZGpUQy9vRy9LYXRyT3UrbWZYNTFY WG1lZmUvT1ZjemI2VzkrN1gzei9TSE1IbmtKbENlS3JFWUw1cWlFQSt0Vjk5RjhZT1FrVHYzWkgzVDFydDlmY3MyakdnYi9mdDJ6 aFF5bUpFYnJhUUYrMGQ3cmlOTWNlaEN5QzllVVZlNjk4dEgzQ0l5OFhybktLT0o0b0lIQzArc2JidHFJS3g2K3UvZnVLWDkxenc2 bVRycjFvMmg2dE5qZzlrdVhZOVEzQ1Y3L2RDcUZDWjdlYzBTT1JmUUEyQ0lROGtxSjVOdlByZ01qeHJCUDgvVm8vTmd0ZmIyL3ZO dDk0M3lmM2dPQWhrbE5UOEJ3RkplckNPV3gzejd6dW5rKytxem5jeXNPdlYzeGJsSHJqL1N2TDdSM3VBclVjelV6b1k4dXhkNGhq ZjMvZmlvMjk1UXdFejc2elplYXY3LzZrN2tDNTR3clluWW5zNmRrQi9RVHNQb29iVWRtTmRoeHN2dW5TMno0b0FnSHE3OWM1TmZk SnUzK3BJcU9JTUV2WE4xdks0dTk0Zk0waHAxdU9JN0pyWUczc1l6ZjcrMU5yTHJyeGdTOXJTMnZhbGtJNThNN2VmaDVBMklacUQx SFU3L0k4TzdTakY2VklFRmpwelU5M2pibnpzVzhQdFhkNXN2d2FlMFFSVVR5cTBIejhqUjBiL3ZmVjNpeC9xd3dMTVRXQXNGRzEy b0crZTUvNlFmdFMrNUNJNk52dDlROWNkdnNIWDFYVTJ2MCtCN0k4NjlFYmUwUWtXZUFaNVpsM044Kzg3N25DUGQxdUtaN0lUai9H bnFwakEzL2Y5L3lHM2FzMmxDUnFQY2xnVEk2dDE3L2g5T2JyNmN4YklvT0dwTm14UTdaT1VkZzNNQ2IzUExYbWhYVTc2dTd4N3NU K0R5UjBVSE03bWZUb0t4dXZoWFBzN1k5OHRWMGgxT3pkMmRDQXltbnRwR01mZkg3ZEh3Znl2VWRmL1c3aHc2OXUzU3dyaXJsM3NI ekRtd0NwaW5QTll4Vm9JaTdVNlpUU2x2MWo1YUZWRzBzU1VBREFZdUpldTdWOC9tMFBmL0d0V291UllFZlllMnc2RHJLc29ELys4 N09iMy9qczRBZWdyY0xDUFJrQTcvZlMrOXYvK3JkL3I5N2pGYllETTZHb2k0QVM5T0JMMzMzVVpPOGM0cHp1SGVmZXNlNGRiNE9q TkJqRXBXNVUwK1JhdE93ZksxNkdJKzJRUWNIUWo5ekxYOXQwLzBNdmJkanNGWmJ5d0lxQTV6Rkc5ejZ6NXYzMlR0ZkllUXg4SUJC dUVkVFpMYVlVVlRwK1Nmb0tERGg3OWc2ZUFXQ1grM3pkd1VkK2ZkY0hPMTBpaVR0bWNRMmtITm1OdnRwVS91RDN4UTBoL2pUOXYx L3V6WG5xblYzZlFMczFwVDFtRU1PWlZidUVkd0tDc0dXOXY0UHprQStBNEpRVWJQdnpJMThWbGxTM21OQ1FvTm9mbURjLzNmVzJ2 ZDFUY0d6ZjRHUDd4NkNQN252dW00dFdicXg1QXZyYmNPZUVjbGtCTWJ3Rk1Yd0lZbmdyWWpnTHdpenYxMWo0RHdyYW1IbEgwWkVi Q2NLY2F0ZnpObUJBWXc5OWJ1K2s0OS83Y3Uvc2dkV1BqNDRudkNPOG4zZGNlek1IdkVaRzFVNEp6N0F3bk5wckdQcjJRR1hYRmE5 OHVHT0E3ZkFGaW1TWjJIWVVOZDU0akIxcW9IMGplMUNEUTU3ejhab0Q0OUJQejlWT2owcGtNTnFwaGp2RkxYTWMyd1dkUjFrVHB5 NGF6UWxQa2FRZ1cydVhtTnNyQkdBQ3dFVG9VZXZiWkZteElkYkVFWjF5WU9KU3hpcDh2djdRL0FtamsxYnF0Yml5enNFLzhQeTZW VjYxMjdmZ2dSd1dUR1g1N0xrWnR5MmFsYlVpTnoybUVXeGI5VTN0b1d1M1ZNei9ZTldCcDV3aUcrOUxTNE5kcXRObHpiam55ZFgv ZVB2UlMyOGZpcHNhenRlcW9PbHRKeXdXVmxBMUlKWWhUZ1pqa1ZMRVNRcTFxUUlDTTBoUjZER3pFdFR1MXovZC80RjNuSFEwVXhD MnJBbGg1SEVXWkVaOW1Ka1N0VFhVS3JUSkN1RmFPMTJKNVRXT09SVTE5dE1SWi9FS2lrRWMvWHloNzQ2TzFRVk9FWXRsOWQxRWlV VEF3bGMxTlIxakJKVHgyZHJpbTIrNGRPWkdJemN3b1pSbE9CT2lpRUZXRTZtZk9EcmgzZEZac1J1eVU2TkxrK0xDbXFQQ0xTNkxp WlBCeSs3eVNHeWp2U3UwdUx3NVo5T3Vtb3UyN0d2NFk5ODUzNzhkRW5wenhlN0hyMTQ2WlZab2lHbkkyZnEwejRZRFkwTVJRUndt WFJnaldaU3B0Mi9BVktBM3JwU2d6OVlWWDMvVjBpbkxqcCtMTHJka1ljQ3VMM1BIYVBENjh3UWNUUllkUVF3Q213Zmh5WnlRT0Iv WUtVTXRUUFcxRjA3OTllSlpXZHRqbzBMY1RZNXU4NGVyOXAvKzJpZTdQNlRxQXFMYU5vU2V4UVhDeXlSZ3h6VkxKMXg1K3R6Yzc1 SmlRMTNOcmQzbWo3OCtzT1RsajNaOVRGV1BqSVlBSWdyYXZLZm1ZckNwNnJYMXFiY0tyK3B5NFF5dEl3eDBYRXlrZWUveU84OWFO RzlhUmt2ZnovSXlZdDBMWjJSL3NIVEptQzl2dkhmRnQ0Y2RkSnF2b3dMWUFncjNIcmx0MWNhUzVXZk96V3RBUTBGUHYwRWZjMWpw T205aDFwOFh6YzcrSWk4anB0bG1NY213UUJxYU9tejdTaHF6Qy9mVUx1MXJod0ZYNnNNdnIzL0JTMjZoTFN4NnZUMi9PaVB2eWl2 UG0vUmhYa2FzNi9oNEpqaE9WTlE2ckY5dkxKM3g0ZXFEOTlUYnBYbWlqbEZ4WU1BSWN5WTBKUy9taFYrZVBlN3hLV09TcTIwV1Fh NXFhQXQ5LzR1OWwzeTQ1dEFMRkdrTFBCakxpdHJXMDhwcTdPWjhIYzhuSEVsbG1aZ201a1Q5NTZJbG81Y3ZtSkZaa2h3ZmJuU2U2 VDc5bE53ak4xOTF5b1lQVngvNDk5K2ZYTE94cTVzbS9xQ3A5VzJIaUk3WThZeU51NnNUejV5VE83Ung3NFhxNFRPaG1lUGpsMTk4 eHRobkpoY2sxMXBNbkZKZTZ3aC81N005VjMyK29XSzVkNFAzdmI1ZzB5NHFhN3Fnb2JIamxsRUp4NzdyS1pQVDlrZ3lQcU5YbUhw RTJmTFc1M3RlY29za3htZGZZd2JaTEZ6OXhXZmsvOUZxNG8vemVCeDlTTjBFVTVNaU9vZGQrS2hwOW1HbW9wY2ZPRy9tNUQ3eE80 bXhZZDBUOGhJL0VtWGxzbmUvTEg3SHQ3dTFUem1ZUXpZcmYvaTUvenQzL0x4cG1TMTl5eG1mbS9nSlp2QjVMMys4NzFQTmNxaUM2 bzYweldoeWRERnhVVGFmczdTcXZwVmZ1YjdrUWRXajViTU5ET0k1cHVQSnU4OWVNR2R5dWtPcnJWTUtrcnYrZGVjWlovNzZ6by9x Wk15b2JzOWoyd0lUZ1VHdmY3enoxalBuNXQyR2hnalFDREtTYktzZnZlUE1pNmFOSGRWeDNNZEs1cWdveDV6SjZkdHV1SFRHTmdp UjZNVVhHMHBTeSt1Nno5WHo1c0Q0V1UxYzA2TzNuejVWejIwTk1UVmpjeEtjWTNNUzFsNXo0WlIxcjM2NGEzNTRxSGxJSVE0OUxW RGY3L0l6ODYrNC80K0wzKzZydVNUR2hyWE5tcEQ2NHFpRThOSi92NzNqVzBwQUEvSlJCQ1ZJcGtKWWVhMGpKajh6cms2ckpnaFpl L0t2NTU0L0lTK3hjekJCZVJjdUdWTnhwTG5qZ29kZjJiSVpnZGZwK01hb0p6VUdGZTZ1bm4zbW5Oei9vWUQwallDdXYzREN1WC85 M2Z6UCs4YVRKY2FHd1pnL2tmRHNONVgvK1dqdko1cGpUQWpxOWpDSkZYWDI4RkVKNGZhK0g0R0hlTWI0MUZWOWYvZkpOMFgvOUVo aWpDK2pQNXhLd20zbTJ2di9zT1Nqb2J4VmdBN3ZjQVpsMFcyL21YMWhYOEhURjVlZU5YNEZKcEtzYmF6dEtZbmwwTzh1bXZMTHZv S25MNjY5Y01vWEZwNDBhdHBiS0VIdFhlN1V3ODJkb0JQNnhLcE5KUlBkQ2h1blplZUJnVDc3MU93NzlRUlBMK1pOeWJEUG5wVDhP QnlEZkFIc1NUc09ORnhiVmpNMDJ3OEloNmd3b2ZpbCs1ZWU2MFB3OUVQZndLNFYzeFJkNmUxM0RhMnp4M1owNzAzejV3NGtYaVl5 ekVwdnZXYk8ydW5qVWdZVjN0QVhEQ2VncWZreHovN3psdE9PRVR4OWNmTlZzOWRtSm9aOEJWcXBIbXJxMjBicGZjNHlHRUhzeVZD aWdaY3VLdGpCTVhLSGFuZlJtSWRGWlkzelVRREFjQ2EwWU1xbysvNzIrd1hIQ0o2K3VQV2F1U3ZpSTRYdHF2YXFYUktxYldpUE42 cXZzOXVEQ2FHNmlvbENLTnZhNGNRakxueEFZR1FrV3IrKzVJenh4VnJQSk1XRnVTTERUY1ZhUXVQb0FyTXhSVmN1bmJ4SnU1eHdP V05VNURmZ0J2QU5paFRDV0RzNjNXYXRNamJzcVBxRnR1MEFJMHdWK1pvTHByeUYvTVRDR1ZrZmFKNTlxWUlrd2tmczJGZWY1bTk1 UHR2RWNHalpwZE11ejAyUEhaQ0xxcTNEaFhjVjFWK2g1eUVEd1RsblF0Sy9MajE3WWdrYUNhZ0Jlekw2ODIvbS9vMWh0T2N6Ukhp UEg1M3dxWkh3c2JkM3g2SmhSbnkwVFk0SU0xZm9lVDZiSE4yNUVNRThGR0N3d1dIRitlZHI1anlpOTV6Tkl0Q3gyWEdmYS9lTk55 M0ozdUdNUWljSkFuTHNnb1V4YjNybUMzcEd2dEFRRTRrTXM1YmJPK1N4MnVYd2FOYWsxQmVqd3EyYWhnbm93TVRZMElORmxlMis5 M0gxcE1NaXQzalVlbllNT3JyZHVLTE9jYXEyZHdzam5xTnRGWFdPMk01dXQxL2FTbjFUUjVwM2NXdHBGeFJTQlNaZGlpWU1hbkdE cHlYS3h1eS84SXl4dXdmNjNZTVZ6ZUd0N1o1c25lUVkxUVp5eVZuam5rTWpCSmcvK1duaEg4d2NuOUpxOUd4Q1RHaU5VUVNjMnkx YkI5b0dFQklsbFMwaDFRMXQwWlYxanJSR1IxZHllNGM3MXVVUnd5V0ZDclFuMEs4WHNpeGJPcm84cWI1c1Bpb29BVWJBMlBaT0Yy c3g4WU9QZzJKNE5ERTM1bzN4ZVlrYXRwVWZFQnRqcXpRS0NYQzVwUUgzelhBaE1EWWZpc0FPOEwzZUkyYUJnL3draDM3blVEUW1K MzZyVVhWbUU5ZXBYMDVQSEx3UDJGdWQzT0htcnNuYWhtK0MzQjRTODZlSHY2NHdqTzA0K2gxdnNKVWVhbzYwajBHREJBamw2ZU5H dlE3SG5JRit0NzZwUFJxOGhBaUNFbjJXemFBUUV6MDhkZXdvVFJ2SmlSQStFd3VTVnZoekRBcTFDdTFHY1dTRTZoOForbUw3Z2Zy UWo5Y1VuYk41Vi9VVkZiWDIwOVMrT3JaMU9rRjhQV2szR3BCRUpVU1VGSGlwUVFzZnpMQm82cmprei8xNUZyeVNFSjJ2QjBYMnYy K0dHME52Q0tSWEtCNlVGQnVxdTJ1QnhpS3dyRWZiOHVETm9VcUpEemYyRGhna3ZlbkIwZUV5S1FxeVFYQ2tiaFVEREhMVUw0eWl6 aTcza0FJT2N6TmlkdzdtZTgwT1o3UytuWTFCMFJFaFJRa3hvUU9MWGdza0tFRnB5WkdsL2p3cUNGeEFCcWFocVlOOThNWDFOM3ky OXRCeXhQS2NHcWdJMDhyQUllSS80UGhQQlVVWmlxY2RxMnNpUFRHeTBwK25UUUx2ZTRjNVNSRVFLY2dpSWxyTXZPSGhGck5JMFZ3 STZxOEpwQkVZcXBkdVVRNFpMSFdzMnkwSm1xZWpZUUpVSllyRUFoNm9nVk15d0xHSWdJMWhVTGxUTG85bzFUMm1ZSXpDYk9hR2th TUk4YjVmZUtqSkw2TTF5ekt5TjNwNzhJTllVZWNRcnJuN284K3FHbDJuRWZEbXFERXRKeW1vZ2tMRHpJYnNEd0NPMVU3eS9Fa0tI NVhyaFdQZHdsRHpld0FVcERmclR3ZWVWR0hpeGdCdUhJV0hKTm5CbWZnSkhGdFBqbHlJWVFGRlpwNzNTNk9CU0xHaDFOVGw5T0Js OTMvNmF0VVI1MmxxcExkbVJaQWREdEhPV3VrVmZnVGlEUlhZcXpWYkJNNHZxelhER0p5NVRqS2NOT2UvRXdXem1SY05VM1pWbWhE OU1QcUJBQUxudWx4aTNKREtHT1M5VmhhVDROUTlkbEVLV2ZWSmtIQjZzaEdrK2NKUTcvZDY3OHU5RXc5VWRWNm1KM2dnMUlKbmFN ZjBzUWt2VGhpZHVDWXV4bmJFcEI3M2ZxaTYyeVZaL3YxbTRmODZ1OFFNNHdUWUlIemhaeWQ4SWtQTklzTWlKMUd3MVpmZEJ3eDhN WkhtUFhmL2R2NUZGZ3NmRUcwRGRzK3dFTUVaQ0phNWdTSTJ5bXJYRjdZRTJkdTZDbzYwZEhDajR2Mm5ndmd4QXZpYVBscDE0RmFr azdVTmdpY3ZQZkovRDkxNitqVlRDcEtPMHJ6NHdndi8zZGJXaWVXQXBaajgzUEN6RXo3UmtTRlNZcFJ0VDMyTGE3YlBTVU5WVjIz MGtqblpGZUcyd1YrSWRySWdPUzdjamhTUDdHWGY2disrVkkxOFpSTjNIbWhJSGhVZlVZMSt3cWc5MGk2VTFOalAwa3NpdHBwdzR4 TjNuWG5WbU93RVhVUFE0ZVlPdHIzTGxmWnp2dVFaRDVGVzkrVFhzd09NY0p1WlpxWkdyd2NOeHhjZ2JxUGJnMUpXRjVabG9wOEE4 ak5qMnlQRFRXVmFrYmk5d1dmL1hibjNSdlFUQitTK2lSS0swbUx2WkZnZWpjMk8rNitSNEFFVWxUZEZpeEtPZ2lUUG54Nm82c1RX K3h6WURnbWxJeC9oL0dQREtaUFNWdWphY3loQ2I2M1lmYWNSeGF3L0FBNFY4SzZnRVVKRW1JVk9Ma2grU3k4cUdGSkFObjdmY01m N1gzMmZnMzdDNk9oeVE4cS96aE1Nc2xrRnc1UWF3SWVyOWwrbTlta0E1c2pKQnZESW1nUmV4L3RJVVh1WEo2MjkwejJraE9LZnBm QTVmVzdPTHA2VkhWcmFEeXpHM2NYMjY1NThvM0R1WU91d3QzVXpyMys2ZSt4NWYzanZxN2RXN0RvVGpTQitzU2ovTGU4aTBVb0JB YjVtZ3U1NWF0MEdvRmNkU0ZUd3MrOXVuYmx0YjAwNCtoR0E1L1E5c3NDSVdGcGpuK2MyU0luNDRydmk1QzgybGovc0wrM3FqdzI4 d05LSVVIT05scUNHWTZ0SFptTGUvSFQzbVgwVG1BZUtuNTNOQjVDVkVpMmVOVGZucjUrdXIzcU9FcWVHYTF4Q2o3Mng1YnRPbDNq dXNzdG5yb3dJTmJiL3RIZTU4YzREOVRGZmJTdzU0NXZORlg5cWFaY21xUlFZSFBjRUdrR2NPU2V2K3NsUmhaK1YxYUZ6Z2U3VkZ5 QkN1OXVONG0rNGIwWHQ1ZWRVWFhIRkx5WjlsSmNlNHpyK21ocFltTFZIMmsxck5wZFArSEJOMFoxbHRkMFh2SHpQR1JCQU9lVGsw dUZHWExTdEU2bk1mcjQ5NUVDTFV0dm9YUERrbTRWTDd2anR2TlcreWdEaGZNZGpxemNTUW9XZnFwZUxaMW1VSEIrMnQ3aTY4MktL dEhqWVJmU2ZEM2QvdW5WZjdlc1RjaEpYMlVLRWRnYmpvOElkdE1JRk0xSzM2Q1VkL3l5RkQrQ1dxMDU1WmMyV3lydTdGRDdGWjlJ bDhESWpoRjc2Y085blgyNG9XWC9hckt3bkpoVWs3VXBKakhDRVdIaEpJUlIzZExsTmg1czdJMHVyN0ZsbDFmYkp1dzQyWE56b2NF MkRqb2N5WVVHRGFza1l4YndQTTB3Q2gyNi85dFRmLys2K2xlZDZiNmZRNHNPQmhjbWdkNzQ4OU5hN1grNTFqc21PL3lBak9YSjdE NWtZMjlicGpvY3JiTXByN0djb1NQQkdpUk1GY2J5WC9QMWtSMXBTaERNKzJycTlzZFhqazMrcHR3K2VmbmY3MXlVMTlydCtzVEQv bmR6VTZHYTRScWEwdWlYdWkzV0hMdjV5WTlrajNodE5mdEtPUVRRbUsyN1ROOXYxa2cyOEhONzdTaDFYN3kvdnVQcDRyUm9ZTUMw bU5IZjZ1QlJOVXYrZnJmREpUSWtXLy9yN1UwKzcrNG4xQjQ5ZXkrT0xuRjUyb2RvajhyeFhQajB3ajM3OGZjOXpQY1JlSUZiVVlE UnZONm9DQi9LODVKTnZZZ0taMmRYblZsL3l4c3FTOTNWNXRudmVHV0hHdXEvVWZ2WCs4dmFlaWVXOVNrZDlQNVhDeHUwbHVOSmhL VGpaQU5yci9PbVp6M3l3dXZ3MVJZc25XcDBMRkszZVhQUFExNXNxSC9MZTZPSGxtVkt2cE9rUnVMMVg5L3dVYlQ2QXhhZmtiUHYz bTV1OU5LMDZES1RxTFRXK1VwR29naXhtL1hTUG42WE5weGVYbnoycGVObWxreGZEMFVpUEJ3V0VDaXpJSHloSXZWSWVQQjN3Tys4 TkVEMmZuOFNUOFo1bGl6NDQ2NVRrVzFuZWFzejlxOTdJSWFxY3hDQ3MxTC9oSFdHaS9ZaVBHOWRkUE8wOW5wVmE5R2s1dkRjL2VN ZTdaNnpWY1hhcjd3NVVwamxwRVovRVJGajNCcGJQK3VUQmhMekU3dFBtWnQvRmNNT1hCUC9UN0xrQjRQWnJULzNtcnQvT25NNXpi QmR3NFJwbDNmY2FaNzEvOXhLTTYxRmY4cENMZGxMUUdBQWZ6dE4vTzIvNWxXZm4vUkl1SXZTU29mKzhBSHhJZDE5LzZpSXYxN2lS MXRabnJIdkdHVWptUjZkSGZQRFVYOCs5ekJZaU5HcUhNUHo0Y2Q5Tml4OUxqVGV0Wm5sYmdDOE44TUt2RWhXRldIb0hxLzhQQjVH allUMVhldXRDbG9oSnV4eHZXWVFZeHc3SWttSmN6Z0JpRUc3NDVZenRiejUwUWVyRXZPai9RQ3FFbDRTOTl3YURBYURuR09LOTlj R3FxdXBKc2NKR3NCWHB2bzlDZUtQM0FSc1RDZ0FneXZxQm0wOTcvNm03ejBqTFRnbi9GSFkyTlpWa29KTUwvM0NqZzJUQTRSekk5 NU1WeWhxVkJXVDNlbVZjYy83VXZYZGNNMzJXTjQzR3JITVZVcC9YWlhqRThpRm9TbDcwODY4OGVNRmxlZW14cnJZT1Y3ckJ1Z2d4 V2hlS1FvUkF6V1hGajc2UkRQcW1MNERYK3AxL1hYelc2Yk5HM2FIbWNLbzNtTUJOTHZ6Uml5TDB4NEhxemd1L0doSVJicWtPNjVM S3FROTZBSkQ4SE11NU9CWWI2dUlSWWViNnNCQm5PWkY1emRzWi9VbFFEUSt6TklhRmNMN0w2YmwrVitEOVNsQTlpdG1UMGxvL2V2 THk2MWF1Ty9UQWgxOFgvWGJMOTFXL2M4bGNuQ3FFanIrUzFsdE5EMG0ybDBJV1FHVlJqWkROVG8vNVl0cVlwQlZ6cG1ZVVRoK1gz QndhWXRZOWk0VmFUYTFHNzJQbS9Vc3U5QmUvV0ZoUXMzaDI5dEtQMXh6TS8yaDEwVTNmRnpkY0xoRWhRaFZDS3IyRThYWEpOak5i TzNWc3d1dVpxZEd0SityOXJDYk9EV1ZSWDl6SmFwSXpCOFIxdXRkRUEyNjZiTmFXZ3F5NHVDZmUyUExRN3VMRzMyQU9Bc0NQSTZm dnVaWVoraUU2ak45N3hTOG0zSHpqcGRQWG1VMDhhdXQwNFpqSWtCS0VQWXh2am5VVzJjem13M3FYNWdIQ3JLWVd6Yjc1WVUzNE5a Y3RGdDZwM2MrOWZTTVlVdkQyQmR5KytzSjlTeC9aV1ZUMy9MZGJLcVlmTEcrZVZWWGZPaFdvaWoyaUhLYjFQYWpMYXVGMWIrMDF2 S3U5TnhOWWdZeHNYOCtxSGFSL0lieS81UUJzZnBRRDF6SkRJcVJ2KzRwNmtUc0tNZlAwZURmeFFGRGQwTXB2MzF1WFdsSnRIMTFl YXgvZmFPL0s2ZXp5Skl1aWJFTVlFN1BBZHRoQ3pFZGlJaXpWU2ZIaGg5SVNJOG96VTZKcTg3Tmk3UW14b2ZKQXFETWdYa2FVRkt6 M1BsWXpUNDJ1Z3hrS1NxcGFUTnYzMTJXV1Z0dEhWOWJhSnpRN3VuTTZ1c1Y0UlZZc0xNZTZMR2F1TlRZcXBDSXhOdXhRV25KRWNY NUdiTVhZblBqbXhOZ3c1VVMrSDl6RTRmTEkyQ3QzZk04amdXZXB4ZVRmeGJVUXAvTHR0c3I0d3AzVnMvYVZIRjdRNk9qS2wwUTUx Q1J3SFZIaDFvcThqTGpDeVdPU3RzeWZsbDRlRngxSytuRWRIMytuZlo5MndJeTJoWmlvM3JWSlRyZUlKSm40N3B1ZTcvazdsejJp REVkOGpYNzJsbWZpV1FyQ2N5aUFNWUR4Vk5RTlFBTVlJNHVKb3dMUERVMzRCT0VGZExZNjJYcnlXbjRNV2VDREJjd0xlTjllOHpy REFwZndqNHpKWkFoakRPODZFb25BUHljRWhVOFFRUVF4SWdpSzlpQ0NDR0pFRUJRK1FRUVJ4SWdnS0h5Q0NDS0lFVUZRK0FRUlJC QWpncUR3Q1NLSUlFWUVRZUVUUkJCQmpBaUN3aWVJSUlJWUVRU0ZUeEJCQkJFVVBrRUVFY1RQQjBITko0Z2dnaGdSQklWUEVFRUVN U0lJQ3A4Z2dnaGlSSEJDT1p5cDVFWkk3R1NRNUdLcEluazVCekJMTVc4aFdMQVJKSVFFVSt5RENPSm5ndUVWUHM0V2hqVHVpMVpx dDB5bDlwSnB0UFB3V05MZG5FZkY3aVFxZXlJd0loeGwrUTVHQ0d2QTFzaFNOaXg1SDQzSTJNMGxUOXVHNDhZZXhwSHBBeWJRQWtJ djJuSXdCQWhmaHBzdEJHT0tVWGg2TjdaRTZ0Y2tPakZ5bEZwNzZUaTB5ME1JNkk3WTJQeHVCT3lDQXdUdFBNSmlWNk9aK0NCOTg1 WVB2WUlSRTVQWHIzelNWczB6bmphQlFBTkdHQXlERVJYQ1JCeVowVy84YVhzdGh6ME9rOVk3K3NFMFNTa3JLRml3S2NnU0tXUGVn a1lLVlBZZzNGSWNZalF2anZaSlNLSUwyK0lDUnFEdHoxcFI1d3htS0JPZDUwU2NjSEpUYWdEUk5xM2FFRXRLUHJ1QTFoWmV5N3VQ VEVOc0R3K01RaEh3RDhIOFBzcUxBNHVCUVlpREEyRHZjd1FoRjdVY1poTEd2OE5ubi9ZV3lsaDBnSWxJODBzUUtkV2JvdGdWbDl2 VllvYVI1eHphREs5QXpuODNrazJacGN1Y0orOS9QNGZiZUdjSkZmVUZva3FLS0dBa24vcFlGbGR3UWNWQTIrVDU0dVliVEEyZlBV dTZmYjg0STJEa3BCRkYxbXUrSFl2NkNreEtrT3VkODErMmRPMzdEWEdQTERrOE5JcTFNa2pLdXZKaWZ1RjkvenYrYy9mN2x6NXVi dHYySitJaWd5b2J5T3dreERxeEVGN0gydUtLVUdqaUhqNWwraXFVT25jdkV6OU9sM2t2MFBCODkvRHBwb012ZkVVOFFJeW4veXhq WlpDWWRzbFZ3bWtQdlJtbyt2MVpLK3FjWVJPMldxNWFOUXVidytoSnFmbW81RlBGbjZiVFBhLzluVy9lOHh1R3g0aElGTGxraW1E UjZYeFRGVGJleXpkNkJSS1FuVHNUK2FhdGYwYk5XLzhzYm5teW5NMWUvUC93eEd2ZlptTHpmZDk2MXdQU2NqQ2Q1VER5dUlINkZB MGJUQmdqTnh0Wllvbk5ON3dzanpRZEdBZXY1cEdORzJTR2ZpdjcrbnhVY01GakEyb1FjSG5heStZZ04wR2lobFpncGhneFVUbmZI Q040NEtzdUIwTmJ5eGNSUmZ1N0p4S3NSQkZPbUxpejN3ZWVUa3dkNWZPcE9MUjI4bGl4c25Kckx0dlJtb3U2UzVhaUkrdnY5UlEr NW1iVDVqeUtKMTIzbkUyYjQ5ZVZ5VU1CY1ZRS2FOL3Jyd0o1bWVUUHZCQXBJbzZTMlFpaGdBa2ZmOWFLR1pTRHlNeDFnUlk4QVJN K1N2MU9HOTN5K0QzY2tVMjNnZWh3eTFRVlBJTUZmRk5TcVBvRE1IRnRXV3p0eC8rUlFwTExtZGo4ZGJyZmJTa1pwN1pwbURkd2xj bzRKdmNyWkk0d2ZGSHFLSnV1eWxnL3VrUVJLWkpydC95TzcyNVpqa05pL0g0TDJ0M0NLRzFWYytVZXpWSUxUSHpCMnVOL1IreGxZ WnpVbVFaRE50S25McDVCeUNreVhhYm9uTWJqUDZQdHRXYmEzVEpPWXVpUTJnbmZsWThXNFAyYlk0aVphL2p1YjBydGhydWtDZGN0 NWVmZXVYSTRyOFdSQ3BkZmIySmNpVTYzZnk4Q3gwelMzakNGZXJvd050a0NNa3ArclJXQ0VCTlhvSG54MzFBdzVONVZ0ajA3Uy83 d2tzTmNZK0Z0Ymc5RlRqZlFVS0tBQW9RUTZWSVFrempwZ0dGNzdDVnowSW00UDVQRGlJM0pNeDRVZHdkV0hCVnpxUis3R3dCMmRD dHR6MUdxTjZZT3BEblVVUmJPU3QwcEtrZTJEcGk0c2Z2NmZiZHBmNlpnWWtaYzhBQTRPSHBiNC9jeWtabjlMcHhUbWc4bVdRVEtE WWR5QmtMYjZTS0lLSVRqRDc3MHVXZk4zMzZGaGdsSzdiWndYUDdaY28rZmd1ZW9nSERaODJoSHJUbGc3VEJZSzcya3VXemNtUDNv WkJJK3hOMkpwWlhMYm1aM1BsTElVc1hXRFFNM1RKTVhxSFRkMU5LRW83SjFiMG1nVGpnK1ZNMVRodm5vb0ZJWnl4VGgyUHgrQy9s NGtNNEdFOVBkT0ZYMFUvaW82aStEa0ZLeDVyeUJ0SW5ZUzFKTkZxeTVpM0VNUm02UmNlUEl6SDRhQldrdW5nUXo3U1NRUFFpemNE VE1XbzhGYTcvbTBKYVMwWmpYNWtjUDFFWW5PaFZrS24zM0hibm9rL1NBVjBBSmtqWTkrb0RBSTg1b28rZ0xHVFlsWGc2amJUV1JB V21HSDJ1RlpURHl5SXdUUjJZMm81TkYrSkJ1TzZOOC90dkgrZG92bm5DN0NJS0ZaVVF0cm01b0FrWldNNE9zRmg4LzhIc1RWaGZK OGVBNU9IZW1yOFVoY2JwWGlGQkhXU2oydEdmOG9GSnJBdy9oQjk3RkxWSlFSMnVONnFFdHhRbG1qZ2dET1FVU21TS2xwdkI2bUNE K2ZrZHBMaDZ2OXpuUElxU1lJb3ZaeUl5dVl4dElFV2src0FoMndJSDBnYjhZYU44aUZpRTJmdXg2WDJVUis2RnAvbWkxUTIwemFF RWdpYVd0VHowSkhxbEFRaTVla1c2MmIvK0RlNENHZlhWR2d6ZlVVUm9RZ2VqUFdvRTVJNXZqOWpFUnFjTmlpQis0emNmVGhaV1ZO enpCTzdiL3dhbmhWVG1tQWdZaFVPbEZEMFd1ME94UDJZUUpuK1Bvdk8reE5jYU9XRTVHaXNnanB6MmEyTXZHa3BhaUJhVGwwQytz RmlVTU5BdG5yOTJJeFFoSFpXM0dCcTQrMGxLU2JERWp6cVZ6UXpTVWFBRmgxdXRaR3d4NGpKeFNTRFdPU0RjY0ZLWHBZQUVZOWZT TjdzZkNJMUZrWVZvTFNHMWhNcHQzanFHQUE1Q1c0bE9oejdTQUdZellpSlN0eHh1YlNYc2RSNXVMZm9Xc0xMTDR1UmRSUXBITHdL YW5lcTB3UW1aaEFQdWI2bWxRUXdFTzlmdE05c0F4WVpHUml4MzJMclBnUTl6MC9wZkN4bUdzcFh0RWdqaTUvRnhTdnlPU1RUdEZW K1AyRjFSMFlxbndpUmM0RVBoME1BV0FsbnBvQ2tLb2NLaHQ4V2V0Z0JiS1JxUnM4OGV1T2Z6Q2gxTGsvdXJXTzh5T0hYNEpIaXNJ SFlWeFMrbm4zTXFPdmZROUlYbHFLMko5M2hsVWpoRGFoaEI2aFRRZHRDZ1ZYMDhqQnovK205VlZ2UVMwQURCNnNYRUZXNDNxSS9a RFk0Mk9EMllUZzZUTTgzN1BGVnpRejQzckwwQWROWEUyRHphSEd4dWJXMHNuRC9ROG8xNVh3eUFrbDYwNmo4MDc1Mm0vVk9pMm1q bTZoa1BWUUY3UVQ2UEE1bkJGdU9BdDFiS3RYaFRvVC90YUswYWhkZmR2WVpGaTFxclR4R0lrY2FHVjh1TC9OeCtidzdyOUtSZmtn M3JxVEpqWXo5dEUycXBOdEt0eG9xS3paL0FzUmpKclBhd3NlR0F1Q29udEUvNUFNUks3VGFTMU1rMnBYSGVaMExUOUprbnh1dDIx QU84RngxaTU2VUEyU2p0bE93b0E1RDJ2ejdDSTFhZTVQSU5jeTVRaTJsbytFMUg2bEQrM3JBNTFyY0RuYk96b0RXaVlNQ0RoSTI1 K1lwNjVZZlZEY05UU0EvU0x4Y0lnVDBqdVI5eTh2MTgzRU5jbEU1ZnZRbkg1M3pFVHJ6bGRPZkRmS1dUbmMyOHlUTnRvSEpOZlp2 UmQwbHg4cXBGYUR2WWptbjNHWjJ6NnFXcDh3MkRoei9WOVZISWlZaStmNzYreHVTOUE2Skthd3V1b3EvVlpiSWtreGlwMFd5YmNN Nm8va2ZMMzl2dTFPWXl5NlhNSDFCZUtJck1XbnBqZDN2Z0luNEE3N3NUd2xNM2M2SE5xVUFCQVdvcmpMWnhpRTNVMEx2Vm9HWnEw alIxeklXeG0vY0FpVk0vUHVLbFEydnJNMit6V3g3NmpWT0YwTlJEd0hIYldweUNFaGl4OElBQ1U3SHp4ZFVYU0Z2Rk1qekRRc21u QmhhcWs2OGg0MnQzRVlsdjhrTndxL3F3VkFJN3BQMmNDQmI5MVlsSzdKUUx0ZVBwcnlhT3ZNdllLSGpuMTlOdUVpOSsvYUxBeEUr cWltSExkRHZiQ0R5Wkl5ZWNzWXlMUzlLOTU5WFJnNGlpZnB4ZWhDMGRBcDRkeDR0QkV3OWljUUlCMkhCWklSOTBzMkdVSENvZ0pz aWoyOGFSdWM2SmhQWTd5Ukl1SkNscGFDQWhjandlTE9DcXJBUVVBNVBDdThhQ1M2eHArR1l5NG1EeWZ0cHZCZ05yTHN0VFlNWU02 Y1hTT1laMzhqSnMyUzlIalgvTWV6d3pxVmNTQWhFQ0xXNTY2eElUYmN1RklyUmZkVGhDcktkSkZRaEhyYVIyTk9odUcxaVkvMW9v NlowUXNNbEhaaDlHSUNoL1pqY1MxOTc0b3NFVG9qYjN4QlJoS0VEeFM2dG0zc0djKy9SaTJHQjlMREJzWW5TWHlaejc1REk1TUYv WFZ5UElRNUduUFZvMkZHZ0JqTnJWRUhXSWkwazVJSkN0dE9SUm5ZUlhqdEFwZjMrMHhtc2lsWDU5clZJL1NmRkNOMTZBNjc2MXd0 bG9tT2pzZ1FwYzBINWdOV29FdTRKZ1hXN0FMQlFoS1M5RU13NTJhQVdQMWVML3NJV3ppaEZXcXFtRlVKR2Z4Njhpb0I5cFVaR0VP L2U5cFNjZTFidUV4NHNaZGVqVWJtL2V4aWNPYWNhUW1BWEdLb3lKK0tPM3haNjN3REVaRWlDakRFZW5IT2loT3RQQ1I5N3d4MWV3 OGRMRkx4MEt2R25JdERISkhUbjZXTysyUmYyTW13R2xqQmdGZnhGR1dhRFVSTTdna3RRQkdaaVpzMUE1c0dSNEQydkZRbWcvbUd1 M1dNUCsxcm5VSEZWMnAzZnhiNm03VFhTV2srZUE4UFRVRWRqRW1JcTBRaDhTU1FPUURFVWZsSEtyWHp4Z2hHYnlCVWRuVktCQlFK RVNiU3hjYjFRbjloV01MZkI2NStvRlNQeVFQWEpRZWV3UU5FWjROLzdxRFo4VW9yYWhzRTQrUm00L1p3OCs1NHkxa1M5NEhEZ3Fm VGU3NWc3UWNHajJVOXZpM1ZoRENZY2s3c1czb2MwYXpEc01uWEsxWTN2bnk4eEN4ckd2STVURVNtWWdTNGZSSGJ4bUpaRDNTWEZ4 ZzZFK0ZSUmlkT3l6Um1yNUFIZnJHWmdHOFlPR3AzNURJbkU5aEFoNFBDR0d3aW8xVFNPMjJCTTA2M08xWWFhdVpTZlcwQXZBZ3hZ N3VGOWs4S0xUWG1FaFg0d1E5NHpZRUNvclllaGhIWmVubXZQa0wybEVqR05VSnhtWVBZNnZHVVpsKzFVbmJhL1AxeGdhRUdSRXB3 cEZaUXhLZ1NzVzNjWHpEK25zOUx1SnplbUxZSEhpTTJNblgzb0N0MFlRSmlhblJOU2lDWGNoUkNoNnZZVjRyQVp3eldsVVlQU0Fm K045a00ybWFBbkV0V2xBN0VOemgwLzU0Q2VNakUvbEVnTFlVemZGTExZOGQvZjBKYVpBaUkyb3YxVFUyY3lBVUVxZDh3STI5NUor K2RqdFZtZUV3a3NxK09sdXJETkphWldYY0xmbDZ4MkVBRXgyWTl5WnRsWkZXMWhVbkdkZ0xtTkRFSFV4WWNrRG1BbWtwajdZdzdo alpvRTRjbXJ3ZGh5WHJ4b0twY0xkaDJ2ajl4WXJPMklBd2N6T2hsV3ppeEg1Qm1mNkNLaEtTTmoyMm5HVW81RlQ3aEJrU043bms5 ZHlFSzFSdkxvNUlLMVZqcnJTRWc1cG1VVHNaUWcrR2RhMUFrbk5NL200MFlzSkhrWkYwNE1NN05YdXVUd2U2UTNJKzRTZGNmbUlX OW5HZ1lqZFcycXBtUS95SkZpRG1SUEpnR2Nma0JjVDdZZ1RTMWNBcjdmVXo5TTdWTU1CTVRQNXVOblBKSHBmSXVHRUI5U3RIVXIx ZTExTjNoOC9wU0ZzcjRpd0NzV3JWQTJWS2JvS1ltSnlBSElGSWMzRVd4QXpwWnVlRDRUZG05TGVxN2g2SU9oMmxHZjRZbTVuWS9H K3dIL2xZNHZZWGw1aEo2MWk5UkY4V0FsNHpGancyRkFvTGVlOS94NWc3aXk3VGNxMWpXT0FzUnNLTW0zNkhUYUhxUTB4a1pnMGNM N1ZrRHpndmFFZkRkTnJkNkRObUpTQnJoVUZJRkpITVJHZjdGV00yV09nYVprakQ5Z2l1cmZoaWowRkVGSFFnTi82eWV3UE45K0V2 YUd1bEJUdWJ4K3A1dE5Wa1Fwa2lkdDM5TDRxY2VjREhBWmpTQWtkWk91dnVXNW1VR1liZnB5MGxVU2JzaXRFVlBoUW1XM29kRTVV aDRlaThqMHp0UlpjNWo1dW9jUFN5NE1acHBINWJISnUxdUgreVpYUFJHTDEyc0JnakQ3WTJXcU55QW5NRWFqb3cwekFjQ093Rk1Y bjlzOUlIQ2RLNGY0WS9CbTRtWWNKbW83TGszYTlOWUhZOS81bW93N2NDV28vTGpVWFQ1TisraGdZSjZtcGxsTzFQdjhvcTJqUXFG Z0VqVjBqZUI1YUNDMzhJcWd4UGM3aGxMRE9ZY3I3NkdXS1RMSXd6a2JUWDJkancxTmJoV0NzY3pCbkdlcGlQRHN5YzBheEg3ME81 Y3Qwc0FkUkNwM1pMSVpqTVRXMlZwdHd6aHlYNXpCOFFSMldNaFZQQ1hEcmVCRFZ3RHhITzNGNThrVDllam42QStDQndrL0xXWlg2 MXFhVWtnNGNnUzQxZ1RKamdUb2xyTTRlbnFCT0l5VmowTXRwMzhMTGpmVllnTkRHSGtGSysrblEyYS9FYi9lcHBPakJYVHhoQXZJ MGNudm9kc3NVTlBkMldLRWh4Vk16UlUwRjZiU1ZNZFBhQStZaDhBcUtCSGFYemtJRldLM3F3ekVha040Qngrb2Z2RWtRbEY2WmRS MHlrY1g4eVBmVHB0WHpEaHIvQU1FckV0NWNSMnMrYkdVVHpyenVmU1J3L2FFK1hwR3BYVGRPY0d1WUtwaWVtUjVoOXl5MTlOMjNH RmlzaWEvUit6dE15MFZjUXBEcVBXWFZ6UzBXcHMxdUhZNjJ3c0htRWp0cU9iUW5LeUFnZjRPZXAyZnhMdzZBOU1EUW5USGxqcUVG UFF3RzFIeHp0YjJLa2R6SU0zTmtGdTVUYmx2RzFKVHJiTHpjOWFTbWVvcmRiZzFDUVRISDdjV1M2R3VET1pTM2FLdTU2MXNreC9Z OVFjUFNTcTc2N2dmZDB2WGtNbllMWWhaVzI2cGw2S3JScWJJN09YWThEY0FRaUhYVTg3V3lZSXV1TU5JTXhjaEcrd3hLVEY1QmtS TnBleTlQT3c1UDFORWcxUGdZb1dMNisvV3VHNFkveVBZSGN4b3BvSVdKM1VnanJpWUU1NG9aakxIeWdjZHd3V1Zra0ppeitDei9u dGk4RzNlaldTcDdzZmYxVldjZENiall6eUIwMS9VbHo5dW5IeEY1aGN5UkJZYU4yc1k2V2lValdTanpHU0xFWGorTVErbjVZMWdx a1ZjU05YalBVS09wQkN4L2FlWmlqN1ZWekREUEVXWVM0VWROWG9SRUViVG93WjdoVHN0WGNxS2lNRGNnZlR4NkV3YmNjV3Fqbkdv YnltTWowVFppM3F2OW5Fc1ozSytFNUt5MGRoeTZXUmRMdjZHVjJINTVKNnJmRnNwa0xtM3AvVDlwcXpLajd5R1JKUTYvdm5UbzRK aThnaGtQYVZoMW1SdDBwSHNVZ0dkRWF2NXNKR3lVR3BzN0tjQlB0VHRFenFQZHF0U1pQeThTK1NtMnZheHErNnRKaGtRVE55V1R5 Mm9yRTlBdC93eSs4LzFYc093M0lMM2cyTGIvZXpMa1NqejlDSDJOVGtiRXN6TDdsM240TG5HSEFXTDhmdFlOYzBXZ3cvTHF0YWlK QzZLMWhXU3M0Y0hOR0Q1cldPZEphR1daU09yTDBCaDNpVXhRUGhhVFBLalJTa0p4SWNlZ2IwQUlDOEtiRWovTXJ6NFYyTkhDa3ZX NkdvaGpZS1BxU05HRUdjVm1MWC9TMUhjQ3JnY0ZWcmxpOTVKaDZXaXVqclR5eGFXMnd2ZVBEeG83MkwvYkZBTFNsSkIwVUtMMmV4 aXJQVWU2YXdYQlErd0pwS1UwRDdkcWY0UVVETWlTODl2NkFsZ1BFZGpDSGZRa2VDSFd3V2hrMU5FQ0tudkFLV2Z4MHFuRDZJNjhP SlZSRXFRT3VucFdQaXpvcFNDRG9TTXJpdnpPcHMzd2VtNWpJelAycTJxYnhmZkNnS20wMU00QXJLdEJyaGUyTjBZck9HZlkxcmEz NWROVEhnQ3RZTDVlR0FkWkN3am90WWNrbkpGM0JGMGg3clJsMUg1NDBpUFFwdndHYkUyZ3hUR3hCLzJ4ckg2Q3RaUkU4NlU3V2Nn MnJteDBJbEppOGczMS96Mll1M09yWjhheklNcWhmcWdRY3ZaU0tkVGNpeWZrMjZ0R1dsS2FpZkpnczJybENHTGtSMzJhTnpoMVNI dHZSTmpUdm4rcVhrSTdLQ2FDeGVaL0tBaGxJOUNvYll2VDQxOWt4Uy8rTlk4ZVY4OGxUT2dMQlhDaHRldXgrTTA4RXAwdkhoUzl6 SGNJcHQveGJxd3dtTXJOQ1ZkZDZNMjJQQXdRcjRxN0dxYVNyVVdETVlaNUFyaFVncW5jVHZzMGFsUk9RT1RNNHphZWpMaGxlWEhl WEExY3haMnBINXNpQXFOaURBVzJ0aXJKd1VwUmV0Q2JzZXVhZVhXNHdQNVpRRm9rU0F2NWp2L0xVaUwwc2hUZHI3OVlnTUp4dXhz MUVaUjNqdmNJSjR6dmxpT3d2ZklYWEE4K3Y0RDQ4VzZuYkhuUDB2VnFLWnVtMUEreEtiRVRhZW1UQWcrUVhLRUdLbzNLR1VXQWVV SWN3TWFPTGgxeWZXaWRGc3Ixa2JzQlo2bnFLRTVUT2VFWHlDTXlvYVFFUlBNckJGV25tNW0xLzFPUHE0VTBZNGR5bHR6QnhCZHBr RmhIcFRXQlh3M3J6bVZYTXBMVWlPdEJyQmZJZjJmQlIyM0JvMHJESDYya2JuTjF0UnllNUZ0VE93WXpJOEpZUnUvS0FOQmZsNnUz K0FJN0h5Qk9Tc3BhSkg3OWlNSFdBZXM2WW9tdHdlS3BmUXBZMEg1eXNhMndHZzZFUVVZSWpzNDd4cGtCS2lwQzE2SG0wdjNRcE9z NUxBdk1Gb3FERmlqVUwyWXg1NzBPK0hXMnJucTRYZ3dWSElDWXFleU1Pd0JHSWRqV3h0SzM2RkwzQVBCQStMZ25MNXRqOGdDUWpn dDBSZFI2ZXFudDhIVXk1UFg4dzdaVm5NTHNmT2NOZFUvai96T2U5Y0hldlJqa29TQzRrYmw3K3ZBVnBKMTdEUEhJVGE3MHc0eVpk V3cxamkzZTVXRnUxZ0xyU2ZLVmtnUENCc2FYMmtneVVjNnpCZXFockJjckYwVG5mR25GbkRhL3drZDFXZitqZjFCY1pYcU80THBU bUF6T05USU1tdUk1bXdwVjNjdE91SHpRMXdrRE1qNlRsNEh4ZGR6UzRNb0VxMU1lTkFHem13czN1bmMvTExBTTBtLzNQK25MRjJo djVCY3I3dUx1Wm94MTFzNDZ6VGZkRG9PSnRTSHR0aUNDMTVlcEZOb1B0UkE1SjJJbERrd05DLzBmYXFrSUZwUzFIMTlqY0k1UTU4 M0dXWnFERGtLbEt6S2IxYmJBSllWbEJGcnpwTDU1MS85eG5XdkxQZHdmYlZtblhhek10bnFvejlMaDZZQk1rNDM5OU5XTndIeDBP UzVLWnNGSGJ1YzVEdm9YUDBUU0xDa2dvM2hUSXRhSUd2a1puQit6WVBEamhReFREZHFwT2EwV3hVTEdid1phb0U2Lzl5QjVRSldj aW80UkROY2t4ODRSRU50UHVab2EwTjB6WEpmYUNCTmZZZkovR2F5WnhVZ2NKei96UzBsVnhydXQ0cjVkRUVVL3E1cEhHZlNGSUZq a0xJMGE1Tk41ZFBRTEpZS2ZLOTh0T1pRUnFMMDRCR3lCUXF1Z2w3ckpSY00yS04xcDNxQ0QyMGhUZXdPNG84QmhKdHBTMU5QZWNo NCsyVlJFRjJ0MmNxalRzdk1US05Kd3FTa1F6cmdlRWx4cUxWZlR1RzJUTWhaOHpTWk03QjlwTzJuV0VsWGUrOEFZTDEwUWhIYTJI aWR4dkduUGhCdlVLSUdyQVMyT05yS0o2K2VSQWh0WldPWVVTQmZrVlJ1SG5XZ0hiSWhzenVnU2RBR2dibkRsQmgyQ3g1eGxLRVV2 Y1VhU3pJWVFOVHpuaFJtZmFkWmluSGZXempQS00zSlRyc0ViN1o2OFpLb2lqTEl5VDJ6TzF6dFc0VitXUHp2VjlFd2ZESVM1ejRZ dTRxT0xjbnN2TWpqMTZDWEQwK25ZNlk0bDB3R3pSbXNUcUVVaG1uZWFvN0lBWURwWEdBNVBCaHFRZkg0SVFqc3plZ1FJRTJyVGZN SUVTYkNnb2M5RlQvTnc3KzRWN1VIZkhzL0tlMTAvQld4N2J3RFBVeTgzc0ErQVlzSm9wNTluMXltOU1TWk0xRGNGYUVEYy9mYkVG dCtjY3BmM1Z1b0hGM1RuSy9kNUZPeEVoaHVkZ0luWEh1bldpc05VUW1MYnFVNUc3blVGVzQ0M2ZuN1VDTXM4bE02STFKbi9RK1d3 QkVUNk1OZnFJa1pjQmRuZUxCWEZTNC81TWR0U01ZWThMT0I2a3RTckNpbDF4TGlQN2lpMmxFTnZpVDBqQ0szV1VKd2tDNVp4T0hX SG9RVElmblYydlZRYWJ0WGlEdVBzbDFUQjl2QXhUQXc3TFYxL0hXR09xV0QzeWJ3NGp4WnF5Q2RzU2h1NE1VT2s3eTZicDJiRzhO M29neUlRMnZOSEQzem9WZTlrc1hYTEczanFqY254cWQzQ3M1V2IrWWFNb3VVNFg5ajIzU25FUnplSmtEMEdrOHRzN2FYdmRNemg4 bE44R2V0SjB3SUtMMzM5T01yZ29EdllJaG9nUnZPaUk4TWRLSVJGOTBqN1ZrK3AyNU5MMkdndTJSblVIWXEyQUowNnhKbTdCWVVr bnhJR2thZUxINFduVmFyQ1JvZUdPSXFYMDY2dlFDSUEwN3M4NUdxZXVZMEJEVVZrYkVXYytNVzFxMnE5TG93R3VUTUxiYXBuSUxF MzFuazJjMUs2RVo2MkVJNFV2T3dWcUtiNVlxZG4wWjEybUFaQmNrZW1GZ2JoZ0R2S1VxS05xcnE2eFdUMFdFb1JqUjJzSzFRSFY2 V3dCWHVwWlJLOU85UllScUROZk53R1NuN25zYTVjcDlSdlFHclVnS2doWldGZWlVcmsyYnlEdEZEYzhjb2ZBU2hIK3NGV3FSenl3 US9ueFF3eEdUZlY0d1RWQ2pqSk51cFZqbnZkanJUQmdiSTdLWG8rRWtHRU9tdXVwVCtzREhKMXoyQTAwaWdZZVNBL1lVNXEyMzZo VUZ3YmtQcUcrRTE0bHJkVUJhU21lNWhjSmRsVFdDZFBLbE9aRHB4cWxWV0M0ZmxaUFZXWUZ4R2JNZjBrVm5ENEEwYndzVWdURC9N N28zSUFRbjlPT09ndmpicDZvNjZJRlk3TXBxZ2lIcFFTRUpaSzIxNGJ3b24yczNyWElxbFpyaWlyQmtlbTZPejlFa1hNRkY5NnJM aTZEZXBYS2J5LzB0NDFLK2JkeGZQMjZld2Q2RFU0Z1FNRGpCUVpzZTJtdVA4OHJmcTRWTGlvbllNZG1JMmlLRmlZNngwbHNLUnUw S0IxN0FkcW13QkJCV25mL2l4QkJPVlFBT1phOGVmbDhhZFdkZCtnYTVZRGRyclY4aHQ0VzBYdTVIeE16K3BoZ3Z1RUNYRmxNMm11 bjZYSGpxc1ptSURRemlDdGhNeGQ5cDBhYSt1aCs2QllqSG0xNGdBblFUWk9rNVZBU2VKUjBiZWpxM1dvWjN6SFc2SUNzUk5KY1BJ cm45UmNMY0VpeDBkbXJqUWoyMVdkenp0anU5akJkdm1oTGVpRkRJR2ZEenF2QWFXRFlRRVZHbnNKSGwwTWJSdXltVjRLUTRpaWY0 QSt2a045ckpYYTA0YTNBdzYvNUNDR1V6MXJ3RENRbUdnRnlXTXpkaHk0U1Y5NzBmOVRUT1RqSHU5UE9LRHRmbml5OWU5NHE3dERU YTZrNXJCbXpPbm12M2MwY2FhMWVLT21jemxXMVhHWkVIRGNtSU1UcFJpRHROU0djeHo1V01qSTJ4K1FhM2dqQUprNXVsV3pwWC90 aU9EU0M5NzFaTnhPZGV6UVBiQ2lnd0h4blNCaXZoZzlzQzFReW90SjBZS0xYb0s3ekVBUlJ4bVJ2OWlmV0EwZGxlV2pzMlBlQnBV RUxNRzVXMHBsRjZyY25HWlVuNzMrdndOcDU4REtYWjhSQzNKQktWTmRhTVFlRWl5NjZXMWpTV2ozZmFLMUFqQllUUHk0Z3grWWhV MnF3WTM3NWxYdnZXMTA4UzIxR1RIa3VGMEdXaG5YM0tSOWZrWTVuMy9WbnJieVZmbXgvVFh0RHBlTFBGOUhTTCs0MnlZM1RnUDlF emNST0dLOTdUeGRwclFneklXZThidHdKZzVFSVJ3SE9STFRJdVB5QnVwNkExOExIRmI1OVFlMWxpVUR3clhVUkc1UURybW9tZG5T bFlhVzhHYkhwODE3Q0pkV25IUjl3YUFRQitHaXNDZHR3V05MUkRPK2hnRGpLcGhyY3lxUHV3a3pjbUlBUnhsTkgyWFJEQXpkOEh1 MmZnUnZjMFZ6YUtlK2k5cjIvMGRLbnZNeVJDQ2xWM3kxa2M4L3FSMTl5OURsM0c1YTJQZk95SGxkUHIwMkc3UnQvTkZESUNIVzdm ZE92OXA0NmxJN0QwMUIzTTRmQ2tqUkZDMm1yQ0RkUlo2TFJXdkVJVVVXVU5Ta0R6aGtieEZwUjZ6UzZRd3RDd2ZucWovNGpkZXZi WDZBbXA0c2dhOHYzMTNnKy9OVTFUTW9wRCtQMEJSL2d1REVWT0RTeFN4VUFzb2Voem1ZTGRWUWtrT2FpOGJSKzIwVzA1ZEQ1WmpN VlNFOHlJTlBEbThOSDVkYnAxdGQ4TUZQbEN0WnhiNEs5Z0xyYnN0MXZuemNrVlJMb0Q2VHNDMjhWNXYzMWMvMDJGYWxYRm11MVNH VVZaQ3grRTN0eE9hZC9vK3gvM1J0L01RRDVvMFkyaDZkdTgrZFNReU5Rb08yd2x5elVNL3lxMTc0QVVWdHNma0NTRWFtckZaTzJx cm02ZGZZY2s5aTRBci9yWkRNV2JKTjNQS3ZibjJvT1hjMm1YeVBKOVlZV2d3Rnc5VmprSXpPMXVIb0FaaE5Hb2lWbExUZitzcitn UVVLeGwwd3dsWHo4Z2xaaXJFSXA0cWdyRGpaaU5peEpNNVNFTkJabHF2RlNzdkZhOGJ5emRNaHJSYzYrOEZiZVlLMEFESytZRU9i YzlwcTdadDB5cTZsbFlqZGtzUHR4QklORnhqY1czb21hQ3U4RVk1eUN1UzZFR1JsUndqRkV0Z0UzRGx3NWpDU0tQSWlpdm01cHVB MVVaR3pWYkhTMjdqMWRwT1hRQkpYZ1MrY1pOUXlkU0RaZWFzc1p5bWtBRXdiNGdRMHBKWldXNHRrOE5YQmxSbVI4aTBKaS9Fb1lZ QkltdGJwczZhdk56cW9sUUFreEVEQXhlVU8rVWxkRlo0TkF1eHFueWxpUFJnTWpOeHRXYmdsTDdRcVVnWnZ0UGpKRjd6QUJPN1hF UjVTYXc5UDhyaFBIanVtUVF0Ty9OanVyVHRQcVQ4aWhZN3RxRnlpTis4TFpVZFA3eGE0UlI0V2c3SDN0TlJCOFdnRGhCZ3lTd3Fs L3VaTE5QV3ZReHhqV1hycEhMRm14bkdVVXF5OWpQMmcrVmd0R2txTThXZTkrUEdyM2I2MHdTTFlHWXEwZ1A5WUt3TkN3aGtNVEZI N0pvNmQ1Q0N2QzNVTCtMQUhvRktlYnFFY3hlQkVleVRZZVNSRThVbXlnMllDN0dLNWJocDNqK1BBSVNHd0RiNUJ1NEJRaEVBTXky NGhiK3FoN1UvSFB2ZW5yQitJcFhGMVVabUx6OURtUVhXMll0TmZNMEwxTDNPdktMSVJBUXI4Z1dCQ1hQdmMvV2w0dlBUQ3hZd01T YjZNMEZTZFlPQ0xvMnREQmlBNVg4d1NDTGRGcll6STBjRU9xQWhPVnNRNkhxRGM5K3dVc1dCR2JPdXN0dmY2RTRSTk1HTkdxNzZi NStsemEvTzlyTFl3clVjOExweEtGeGMxNGJDaUNCNEROa1JMaHd5dGdUV2dDUEZpdEZYay9xclhTQTc5U2Vkbk0rYzNNZ24rT281 Z1ZRL3k0NWZIb3kvUUlJb2dzQmNrTmpZUC82eDRoNE1nUWs3dEJ6eHRFblhhR09zb1d5VVBQMVRhRWV0RWdIMTdKUnVmcWFtSzBz OEhNZEIrWnFtdHNoanZubzNNRzVQWm5NaGQvQzBjQmY1bGYxU0JHQ0pHSXpocnlmVk1BMG5MSThPNHgxZGdjbWJFMVVJVHhTblB4 R0pnSGhnYnV5S3l0QTgxR1o5UG1mYVBlRHFIekROQ25TTlViTGp1K0FjRFZnOG8rZTBMVWNhMkRvSEJMV0JSTytmUDlhSWpBSVRH RXNjVWYwQjE3SUpTM2w4ejRNYTJWWHZnOWN2eTRTMHZvYVU5bUtVSkVPZEJNRElZRzJRZ1FGNmU2b3FPeWRNK2R0SzBpbEpNNzAr RE1POXhRcjJTSlROdUlERnpJaXIwazNzeFJUUTFCNVFTU0tjSnhCWVozenZjRmt6VEY3cllrZjJjVTh0RFgyS3lZb2cvZzhNRGN5 a3JnamlpamJnYVZQVFkvY0drVllPRFdNemFyRFlNNkN3YWNBTWttVHozaXhKSEZrR3VsQlZpb3RHbi94ZFJSL2tNYUJDVXFWNCtK cHdMa2lXbEJNRE1JWi8vaVppWjVtbDhMMEFoTVpQcFd2Y1VHeEdCS2E5VWNLcmwrTkd1bEZ3UGFOcmk4cyt2dytlK01rK0ptUDJv Mk1jaHFadFFLaHdMNFBuZ0ZRS0JCQktxRVkzY3lLVE4xNDFOSWMzR2FJREFuSnI0Q21QbGlSNjh6ZW93MDdoK3Y5cVpHbTJEK09D bmZ3VVJsRHlqSERDS1UyZlQ1ei90NzlGTHBYaU5TdHVvR01mb0xpQTlwS1Ztb2QvZVl5bmVsQ3AvQXNDVWl1TnJGVWVxWGdSdkhE Y0xBRGRwRTh1UzN0RzRGUFpyclpTSTJwV2JUMGVPTVhQejVVYTRlckpjOHFsZ084N052ZmhrRkNEZ3ljNi9lS29WVEJYWGFjMUY3 bmVuSHNsYU9QajdROG9FRUNWL3cxdTJrNUxPbjZmZXYvWVZwMlBVN1V3aHdMMUlFdkN2QXVBOHZDaE9TOXIyZnFJZFpENFNOS3JC QXpZRjRGRGVTUFpiRUxYenE3TmVZdEZQWGNHbHphN0FsVXJlclNQMjJoU2ljUlphdUUwRG5ZV0dBRTZmSTZER2xmdHNGeU1ZZ2k5 YkpRMkNRTEVZZndpRUR6ekhqc3Blc1FWWHZJcXVhMldrd2l5d3NIRWNDRTluY1dtbTJ1S3FYSUNCVjA3SVpnTWV4a3lBdVBDMGdP ejF4bEZtdHl1SFowTzlXclhmbE1PcHVSNkkxUEczQUdlanExOVBuZjRMYTF2N0Rxalg3b1Zvcmc2U0RILytCbTNUMWRSQThxcXo5 djlWY0NJUE1uTmFjQXlKb2pFam1sZGNHOHVKTUhKNVdxL2EvbGdBQ215cXZSTW5OQnhLNW1QN1VweWZqV3VtRmZtcS9BU2hjVFZL M05WS3BYRGVMMUcyOWtMYlh6Q2F1OW5RTHA1alZuYnIzWmNIbUkxTWtVcmFMTVlVMUlHdmNmaTZ1WURXS0hiT2RTWnhRaW1NTE9p R28wZDk2bFVNclI3SGRkY21TN3FWWVE0ZksxQWp2a0hYV0xpWXlUWHRDRVFYSkJ6N001VVI3cEZhT0Q4OHhTQWtaVmMvbW5hMGJR dUFMb0ZMTGUvODdnYVV1czBIK29sb1BTWnExSHdqcEIxcFB2M3JiNnppbDVETTFzMXhybXZBTVFySVEwYzZOdmJqWWIwTzZYcDJ0 VlR3dC8zSnk3d2FtU1ZKdmluRndCUmVVRHNiT0JCSE1TdEZIVXpFaVdFc2pBTnVOd2xtN3VZbFg3eWR0MVR3dS9YeWFUQmxOZzdv M2JZb2w3UGhMZDJCVGY1Nm13WUoyMUhQazBJb3BLbjJOVm4vd01PYW43R1BpeHpwUCtyVVNLT0hURDdCRHROZUVvTzVtR3hXN3JF Z1JPU2lkNFMwZUpJUzZrRFc2aXcxTGhyOUpJR2dyZ3dnaWlCOHZBaXQ4Z2dnaWlDRDhSRkQ5Q0NLSUlFWUVRZUVUUkJCQmpBaUN3 aWVJSUlJWUVRU0ZUeEJCQkRFaUNBcWZJSUlJQW8wRS9qOXFrYUNBTGwzQWl3QUFBQUJKUlU1RXJrSmdnZz09IiBhbHQ9Im1lcmNo YW50Q0VOVFJBTCIgY2xhc3M9ImJyYW5kLWxvZ28iPgogICAgPC9hPgogICAgPG5hdiBjbGFzcz0ic2l0ZS1uYXYiIGFyaWEtbGFi ZWw9Ik5hdmlnYXRpb24iPgogICAgICA8YSBocmVmPSJodHRwczovL2hlbHAubWVyY2hhbnRjZW50cmFsLmRlL2ViYXkvYWNjb3Vu dHMvIiBjbGFzcz0ibGFuZy1kZSI+SGlsZmUgJmFtcDsgRG9rdW1lbnRhdGlvbjwvYT4KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9o ZWxwLm1lcmNoYW50Y2VudHJhbC5kZS9lbi9lYmF5L2FjY291bnRzLyIgY2xhc3M9ImxhbmctZW4iIGxhbmc9ImVuIj5IZWxwICZh bXA7IERvY3VtZW50YXRpb248L2E+CiAgICAgIDxzcGFuIGNsYXNzPSJzaXRlLWxhbmciIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVs PSJTcHJhY2hlIC8gTGFuZ3VhZ2UiPgogICAgICAgIDxidXR0b24gY2xhc3M9InNpdGUtbGFuZ19fb3B0IiB0eXBlPSJidXR0b24i IGRhdGEtbGFuZz0iZGUiPkRFPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0ic2l0ZS1sYW5nX19vcHQiIHR5cGU9ImJ1 dHRvbiIgZGF0YS1sYW5nPSJlbiI+RU48L2J1dHRvbj4KICAgICAgPC9zcGFuPgogICAgPC9uYXY+CiAgPC9kaXY+CjwvaGVhZGVy PgoKPHNlY3Rpb24gY2xhc3M9Imhlcm8iPgogIDxkaXYgY2xhc3M9Imhlcm8taW5uZXIgbGFuZy1kZSI+CiAgICA8c3BhbiBjbGFz cz0iaGVyby1iYWRnZSI+ZUJheSBDb25uZWN0b3IgwrcgWnVzdGltbXVuZzwvc3Bhbj4KICAgIDxoMT5lQmF5LVp1c3RpbW11bmc8 L2gxPgogICAgPHA+SGllcmhlciBsZWl0ZXQgZUJheSBuYWNoIElocmVyIFp1c3RpbW11bmcgenVyw7xjay4gRGVuIEF1dG9yaXNp ZXJ1bmdzY29kZSBmw7xnZW4gU2llIGluCiAgICAgICBCdXNpbmVzcyBDZW50cmFsIGVpbi48L3A+CiAgPC9kaXY+CiAgPGRpdiBj bGFzcz0iaGVyby1pbm5lciBsYW5nLWVuIiBsYW5nPSJlbiI+CiAgICA8c3BhbiBjbGFzcz0iaGVyby1iYWRnZSI+ZUJheSBDb25u ZWN0b3IgwrcgQ29uc2VudDwvc3Bhbj4KICAgIDxoMT5lQmF5IGNvbnNlbnQ8L2gxPgogICAgPHA+ZUJheSBzZW5kcyB5b3UgYmFj ayBoZXJlIGFmdGVyIHlvdXIgY29uc2VudC4gUGFzdGUgdGhlIGF1dGhvcml6YXRpb24gY29kZSBpbnRvCiAgICAgICBCdXNpbmVz cyBDZW50cmFsLjwvcD4KICA8L2Rpdj4KPC9zZWN0aW9uPgoKPG1haW4gaWQ9Im1haW4iPgoKICA8IS0tIENvZGUgZXJoYWx0ZW4g LS0+CiAgPGRpdiBjbGFzcz0iY2FyZCIgaWQ9InN1Y2Nlc3NDYXJkIiBoaWRkZW4+CiAgICA8aDI+PHNwYW4gY2xhc3M9Imxhbmct ZGUiPkF1dG9yaXNpZXJ1bmdzY29kZSBlcmhhbHRlbjwvc3Bhbj48c3BhbiBjbGFzcz0ibGFuZy1lbiI+QXV0aG9yaXphdGlvbiBj b2RlIHJlY2VpdmVkPC9zcGFuPjwvaDI+CiAgICA8cCBjbGFzcz0ibGFuZy1kZSI+S29waWVyZW4gU2llIGlobiB1bmQgZsO8Z2Vu IFNpZSBpaG4gaW4gQnVzaW5lc3MgQ2VudHJhbCB1bnRlcgogICAgICAgPHN0cm9uZz7igJ5BdXRvcmlzaWVydW5nc2NvZGUgZWlu Z2ViZW7igJw8L3N0cm9uZz4gZWluLjwvcD4KICAgIDxwIGNsYXNzPSJsYW5nLWVuIiBsYW5nPSJlbiI+Q29weSBpdCBhbmQgcGFz dGUgaXQgaW50byBCdXNpbmVzcyBDZW50cmFsIHVuZGVyCiAgICAgICA8c3Ryb25nPuKAnEVudGVyIEF1dGhvcml6YXRpb24gQ29k ZeKAnTwvc3Ryb25nPi48L3A+CgogICAgPGNvZGUgY2xhc3M9ImNvZGUtdmFsdWUiIGlkPSJjb2RlVmFsdWUiPjwvY29kZT4KCiAg ICA8ZGl2IGNsYXNzPSJjb3B5LXJvdyI+CiAgICAgIDxidXR0b24gaWQ9ImNvcHlCdG4iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0 biBidG4tcHJpbWFyeSI+PHNwYW4gY2xhc3M9ImxhbmctZGUiPkNvZGUga29waWVyZW48L3NwYW4+PHNwYW4gY2xhc3M9Imxhbmct ZW4iPkNvcHkgY29kZTwvc3Bhbj48L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBpZD0iY29weVVybEJ0biIgdHlwZT0iYnV0dG9uIiBj bGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkiPjxzcGFuIGNsYXNzPSJsYW5nLWRlIj5HYW56ZSBBZHJlc3NlIGtvcGllcmVuPC9zcGFu PjxzcGFuIGNsYXNzPSJsYW5nLWVuIj5Db3B5IGZ1bGwgYWRkcmVzczwvc3Bhbj48L2J1dHRvbj4KICAgICAgPHNwYW4gaWQ9ImNv cHlTdGF0ZSIgY2xhc3M9Im9rIiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9zcGFuPgogICAgPC9kaXY+CgogICAgPHAgY2xhc3M9Imhp bnQiIGlkPSJleHBpcnkiPjwvcD4KICA8L2Rpdj4KCiAgPCEtLSBlQmF5IGhhdCBhYmdlbGVobnQgLS0+CiAgPGRpdiBjbGFzcz0i Y2FyZCB3YXJuIiBpZD0iZXJyb3JDYXJkIiBoaWRkZW4+CiAgICA8aDI+PHNwYW4gY2xhc3M9ImxhbmctZGUiPmVCYXkgaGF0IGRp ZSBadXN0aW1tdW5nIGFiZ2VsZWhudDwvc3Bhbj48c3BhbiBjbGFzcz0ibGFuZy1lbiI+ZUJheSByZWZ1c2VkIHRoZSBjb25zZW50 PC9zcGFuPjwvaDI+CiAgICA8cCBjbGFzcz0ibGFuZy1kZSI+ZUJheSBoYXQgc3RhdHQgZWluZXMgQ29kZXMgZWluZW4gRmVobGVy IHp1csO8Y2tnZWdlYmVuLjwvcD4KICAgIDxwIGNsYXNzPSJsYW5nLWVuIiBsYW5nPSJlbiI+SW5zdGVhZCBvZiBhIGNvZGUsIGVC YXkgcmV0dXJuZWQgYW4gZXJyb3IuPC9wPgogICAgPGNvZGUgY2xhc3M9ImNvZGUtdmFsdWUiIGlkPSJlcnJvclZhbHVlIj48L2Nv ZGU+CiAgICA8cCBjbGFzcz0ibGFuZy1kZSI+UHLDvGZlbiBTaWUgaW4gQnVzaW5lc3MgQ2VudHJhbCBDbGllbnQmbmJzcDtJRCwg Q2xpZW50LUdlaGVpbW5pcywgUnVOYW1lIHVuZAogICAgICAgVW1nZWJ1bmcg4oCUIHNpZSBtw7xzc2VuIGFsbGUgenVtIHNlbGJl biBlQmF5LUtleXNldCBnZWjDtnJlbi4gRm9yZGVybiBTaWUgZGllIFp1c3RpbW11bmcKICAgICAgIGFuc2NobGllw59lbmQgZXJu ZXV0IGFuLjwvcD4KICAgIDxwIGNsYXNzPSJsYW5nLWVuIiBsYW5nPSJlbiI+Q2hlY2sgdGhlIGNsaWVudCBJRCwgY2xpZW50IHNl Y3JldCwgUnVOYW1lIGFuZCBlbnZpcm9ubWVudCBpbgogICAgICAgQnVzaW5lc3MgQ2VudHJhbCDigJQgdGhleSBhbGwgaGF2ZSB0 byBiZWxvbmcgdG8gdGhlIHNhbWUgZUJheSBrZXlzZXQuIFRoZW4gcmVxdWVzdCB0aGUKICAgICAgIGNvbnNlbnQgYWdhaW4uPC9w PgogIDwvZGl2PgoKICA8IS0tIERpcmVrdCBhdWZnZXJ1ZmVuIC8gb2huZSBDb2RlLiBTaWNodGJhciBvaG5lIEphdmFTY3JpcHQu IC0tPgogIDxkaXYgY2xhc3M9ImNhcmQiIGlkPSJpZGxlQ2FyZCI+CiAgICA8aDI+PHNwYW4gY2xhc3M9ImxhbmctZGUiPlp1c3Rp bW11bmdzc2VpdGUgZsO8ciBkZW4gZUJheSBDb25uZWN0b3I8L3NwYW4+PHNwYW4gY2xhc3M9ImxhbmctZW4iPkNvbnNlbnQgcGFn ZSBmb3IgdGhlIGVCYXkgQ29ubmVjdG9yPC9zcGFuPjwvaDI+CiAgICA8cCBjbGFzcz0ibGFuZy1kZSI+RGllc2UgU2VpdGUgd2ly ZCB2b24gZUJheSBhdWZnZXJ1ZmVuIOKAlCBuaWNodCBkaXJla3QuPC9wPgogICAgPHAgY2xhc3M9ImxhbmctZW4iIGxhbmc9ImVu Ij5lQmF5IG9wZW5zIHRoaXMgcGFnZSDigJQgeW91IGRvIG5vdCBvcGVuIGl0IGRpcmVjdGx5LjwvcD4KICAgIDxvbCBjbGFzcz0i bGFuZy1kZSI+CiAgICAgIDxsaT5JbiBCdXNpbmVzcyBDZW50cmFsOiA8c3Ryb25nPmVCYXktWnVzdGltbXVuZyBhbmZvcmRlcm48 L3N0cm9uZz48L2xpPgogICAgICA8bGk+QmVpIGVCYXkgYW5tZWxkZW4gdW5kIGRlbiBadWdyaWZmIGJlc3TDpHRpZ2VuPC9saT4K ICAgICAgPGxpPmVCYXkgbGVpdGV0IGhpZXJoZXIgenVyw7xjaywgdW5kIGRlciBDb2RlIGVyc2NoZWludCBhbiBkaWVzZXIgU3Rl bGxlPC9saT4KICAgIDwvb2w+CiAgICA8b2wgY2xhc3M9ImxhbmctZW4iIGxhbmc9ImVuIj4KICAgICAgPGxpPkluIEJ1c2luZXNz IENlbnRyYWw6IDxzdHJvbmc+UmVxdWVzdCBlQmF5IENvbnNlbnQ8L3N0cm9uZz48L2xpPgogICAgICA8bGk+U2lnbiBpbiB0byBl QmF5IGFuZCBjb25maXJtIHRoZSBhY2Nlc3M8L2xpPgogICAgICA8bGk+ZUJheSBzZW5kcyB5b3UgYmFjayBoZXJlLCBhbmQgdGhl IGNvZGUgYXBwZWFycyBpbiB0aGlzIHBsYWNlPC9saT4KICAgIDwvb2w+CiAgICA8cCBjbGFzcz0iaGludCBsYW5nLWRlIj5TZWhl biBTaWUgZGFzIGhpZXIgbmFjaCBlaW5lciBadXN0aW1tdW5nLCBoYXQgZUJheSBrZWluZW4gQ29kZSBtaXRnZXNjaGlja3QuCiAg ICAgICBQcsO8ZmVuIFNpZSBkYW5uLCBvYiBkaWUgQWNjZXB0LVVSTCBJaHJlcyBSdU5hbWUgZXhha3QgYXVmIGRpZXNlIEFkcmVz c2UgemVpZ3Qg4oCUIHVuZCBkYXNzCiAgICAgICBzaWUgbmljaHQgd2VpdGVybGVpdGV0OiBFaW5lIFdlaXRlcmxlaXR1bmcgdmVy d2lyZnQgZGVuIENvZGUuPC9wPgogICAgPHAgY2xhc3M9ImhpbnQgbGFuZy1lbiIgbGFuZz0iZW4iPklmIHlvdSBzZWUgdGhpcyBh ZnRlciBhIGNvbnNlbnQsIGVCYXkgc2VudCBubyBjb2RlLiBDaGVjayB0aGF0CiAgICAgICB0aGUgYWNjZXB0IFVSTCBvZiB5b3Vy IFJ1TmFtZSBwb2ludHMgZXhhY3RseSB0byB0aGlzIGFkZHJlc3Mg4oCUIGFuZCB0aGF0IGl0IGRvZXMgbm90CiAgICAgICByZWRp cmVjdDogYSByZWRpcmVjdCBkcm9wcyB0aGUgY29kZS48L3A+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgPHAg Y2xhc3M9ImhpbnQgbGFuZy1kZSI+RGllc2UgU2VpdGUgbMOkdWZ0IHZvbGxzdMOkbmRpZyBpbiBJaHJlbSBCcm93c2VyLiBEZXIg Q29kZSB3aXJkCiAgICAgIDxzdHJvbmc+bmljaHQgZ2VzcGVpY2hlcnQ8L3N0cm9uZz4gdW5kIDxzdHJvbmc+YW4gbmllbWFuZGVu IMO8YmVydHJhZ2VuPC9zdHJvbmc+LiBTaWUgbGllZ3QgaW4KICAgICAgSWhyZW0gZWlnZW5lbiBBenVyZS1TcGVpY2hlcmtvbnRv LCBkYW1pdCBlciBJaHJlIEluZnJhc3RydWt0dXIgbmljaHQgdmVybMOkc3N0LjwvcD4KICAgIDxwIGNsYXNzPSJoaW50IGxhbmct ZW4iIGxhbmc9ImVuIj5UaGlzIHBhZ2UgcnVucyBlbnRpcmVseSBpbiB5b3VyIGJyb3dzZXIuIFRoZSBjb2RlIGlzCiAgICAgIDxz dHJvbmc+bm90IHN0b3JlZDwvc3Ryb25nPiBhbmQgPHN0cm9uZz5ub3Qgc2VudCB0byBhbnlvbmU8L3N0cm9uZz4uIEl0IGxpdmVz IGluIHlvdXIgb3duCiAgICAgIEF6dXJlIHN0b3JhZ2UgYWNjb3VudCwgc28gdGhlIGNvZGUgbmV2ZXIgbGVhdmVzIHlvdXIgaW5m cmFzdHJ1Y3R1cmUuPC9wPgogIDwvZGl2PgoKPC9tYWluPgoKPGZvb3RlciBjbGFzcz0ic2l0ZS1mb290ZXIiPgogIDxkaXYgY2xh c3M9ImZvb3Rlci1pbm5lciI+CiAgICA8ZGl2PgogICAgICA8c3BhbiBjbGFzcz0iZm9vdGVyLWNvcHktbWFpbiI+JmNvcHk7IDIw MjYgQUxURU5CUkFORCBEYXRlbnRlY2huaWsgR21iSDwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9ImZvb3Rlci10YWdsaW5lIGxh bmctZGUiPm1lcmNoYW50Q0VOVFJBTCAmbmRhc2g7IERpZSBNdWx0aS1DaGFubmVsLVBsYXR0Zm9ybSBmJnV1bWw7ciBCdXNpbmVz cyBDZW50cmFsPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0iZm9vdGVyLXRhZ2xpbmUgbGFuZy1lbiI+bWVyY2hhbnRDRU5UUkFM ICZuZGFzaDsgVGhlIG11bHRpLWNoYW5uZWwgcGxhdGZvcm0gZm9yIEJ1c2luZXNzIENlbnRyYWw8L3NwYW4+CiAgICA8L2Rpdj4K ICAgIDxuYXYgY2xhc3M9ImZvb3Rlci1sZWdhbCIgYXJpYS1sYWJlbD0iTGVnYWwiPgogICAgICA8YSBocmVmPSJodHRwczovL3d3 dy5tZXJjaGFudGNlbnRyYWwuZGUvaW1wcmVzc3VtLyIgcmVsPSJub29wZW5lciI+PHNwYW4gY2xhc3M9ImxhbmctZGUiPkltcHJl c3N1bTwvc3Bhbj48c3BhbiBjbGFzcz0ibGFuZy1lbiI+SW1wcmludDwvc3Bhbj48L2E+CiAgICAgIDxzcGFuIGFyaWEtaGlkZGVu PSJ0cnVlIj4mbWlkZG90Ozwvc3Bhbj4KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cubWVyY2hhbnRjZW50cmFsLmRlL2RhdGVu c2NodXR6LyIgcmVsPSJub29wZW5lciI+PHNwYW4gY2xhc3M9ImxhbmctZGUiPkRhdGVuc2NodXR6PC9zcGFuPjxzcGFuIGNsYXNz PSJsYW5nLWVuIj5Qcml2YWN5PC9zcGFuPjwvYT4KICAgIDwvbmF2PgogIDwvZGl2Pgo8L2Zvb3Rlcj4KCjxzY3JpcHQ+CihmdW5j dGlvbiAoKSB7CiAgInVzZSBzdHJpY3QiOwoKICB2YXIgcm9vdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKICB2YXIgVEVY VCA9IHsKICAgIGRlOiB7CiAgICAgIGNvcGllZDogIiBrb3BpZXJ0IiwgY29kZTogIkNvZGUiLCBhZGRyZXNzOiAiQWRyZXNzZSIs CiAgICAgIG1hbnVhbDogIktvcGllcmVuIG5pY2h0IG3DtmdsaWNoIOKAlCBiaXR0ZSBtYXJraWVyZW4gdW5kIFN0cmcrQy4iLAog ICAgICB2YWxpZDogZnVuY3Rpb24gKHQpIHsgcmV0dXJuICJOb2NoIGV0d2EgIiArIHQgKyAiIE1pbnV0ZW4gZ8O8bHRpZyDigJQg ZGFuYWNoIG11c3MgZGllIFp1c3RpbW11bmcgbmV1IGFuZ2Vmb3JkZXJ0IHdlcmRlbi4iOyB9LAogICAgICBleHBpcmVkOiAiRGVy IENvZGUgaXN0IGFiZ2VsYXVmZW4uIiwgYWdhaW46ICIgRm9yZGVybiBTaWUgZGllIFp1c3RpbW11bmcgaW4gQnVzaW5lc3MgQ2Vu dHJhbCBlcm5ldXQgYW4uIgogICAgfSwKICAgIGVuOiB7CiAgICAgIGNvcGllZDogIiBjb3BpZWQiLCBjb2RlOiAiQ29kZSIsIGFk ZHJlc3M6ICJBZGRyZXNzIiwKICAgICAgbWFudWFsOiAiQ29weWluZyBpcyBub3QgcG9zc2libGUg4oCUIHBsZWFzZSBzZWxlY3Qg aXQgYW5kIHByZXNzIEN0cmwrQy4iLAogICAgICB2YWxpZDogZnVuY3Rpb24gKHQpIHsgcmV0dXJuICJWYWxpZCBmb3IgYWJvdXQg IiArIHQgKyAiIG1vcmUgbWludXRlcyDigJQgYWZ0ZXIgdGhhdCB0aGUgY29uc2VudCBoYXMgdG8gYmUgcmVxdWVzdGVkIGFnYWlu LiI7IH0sCiAgICAgIGV4cGlyZWQ6ICJUaGUgY29kZSBoYXMgZXhwaXJlZC4iLCBhZ2FpbjogIiBSZXF1ZXN0IHRoZSBjb25zZW50 IGFnYWluIGluIEJ1c2luZXNzIENlbnRyYWwuIgogICAgfQogIH07CgogIGZ1bmN0aW9uIHQoKSB7IHJldHVybiBURVhUW3Jvb3Qu bGFuZyA9PT0gImVuIiA/ICJlbiIgOiAiZGUiXTsgfQoKICAvLyDilIDilIAgU3ByYWNodW1zY2hhbHR1bmcg4pSA4pSACiAgZnVu Y3Rpb24gYXBwbHlMYW5nKCkgewogICAgdmFyIHRpdGxlID0gcm9vdC5nZXRBdHRyaWJ1dGUoImRhdGEtdGl0bGUtIiArIHJvb3Qu bGFuZyk7CiAgICBpZiAodGl0bGUpIGRvY3VtZW50LnRpdGxlID0gdGl0bGU7CiAgICB2YXIgb3B0aW9ucyA9IGRvY3VtZW50LnF1 ZXJ5U2VsZWN0b3JBbGwoIi5zaXRlLWxhbmdfX29wdCIpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsg aSsrKSB7CiAgICAgIHZhciBhY3RpdmUgPSBvcHRpb25zW2ldLmdldEF0dHJpYnV0ZSgiZGF0YS1sYW5nIikgPT09IHJvb3QubGFu ZzsKICAgICAgb3B0aW9uc1tpXS5jbGFzc0xpc3QudG9nZ2xlKCJzaXRlLWxhbmdfX29wdC0tYWN0aXZlIiwgYWN0aXZlKTsKICAg ICAgb3B0aW9uc1tpXS5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsIGFjdGl2ZSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogICAg fQogIH0KICB2YXIgbGFuZ09wdGlvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2l0ZS1sYW5nX19vcHQiKTsKICBm b3IgKHZhciBpID0gMDsgaSA8IGxhbmdPcHRpb25zLmxlbmd0aDsgaSsrKSB7CiAgICBsYW5nT3B0aW9uc1tpXS5hZGRFdmVudExp c3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsKICAgICAgcm9vdC5sYW5nID0gdGhpcy5nZXRBdHRyaWJ1dGUoImRhdGEtbGFu ZyIpOwogICAgICB0cnkgeyB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oIm1jLWxhbmciLCByb290LmxhbmcpOyB9IGNhdGNo IChlKSB7IC8qIHByaXZhdGVzIEZlbnN0ZXIgKi8gfQogICAgICBhcHBseUxhbmcoKTsKICAgICAgaWYgKGNvZGUpIHJlbmRlckV4 cGlyeShmYWxzZSk7CiAgICB9KTsKICB9CiAgYXBwbHlMYW5nKCk7CgogIC8vIOKUgOKUgCBDb2RlIGF1cyBkZXIgQWRyZXNzZSDi lIDilIAKICB2YXIgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTsKICB2YXIgY29k ZSA9IHBhcmFtcy5nZXQoImNvZGUiKTsKICB2YXIgZXJyb3IgPSBwYXJhbXMuZ2V0KCJlcnJvciIpOwogIHZhciBlcnJvckRlc2Ny aXB0aW9uID0gcGFyYW1zLmdldCgiZXJyb3JfZGVzY3JpcHRpb24iKTsKICB2YXIgZXhwaXJlc0luID0gcGFyc2VJbnQocGFyYW1z LmdldCgiZXhwaXJlc19pbiIpLCAxMCk7CgogIGZ1bmN0aW9uIHNob3coaWQpIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQp LmhpZGRlbiA9IGZhbHNlOyB9CiAgZnVuY3Rpb24gaGlkZShpZCkgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuaGlkZGVu ID0gdHJ1ZTsgfQoKICBpZiAoZXJyb3IpIHsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnJvclZhbHVlIikudGV4dENv bnRlbnQgPQogICAgICBlcnJvciArIChlcnJvckRlc2NyaXB0aW9uID8gIjogIiArIGVycm9yRGVzY3JpcHRpb24gOiAiIik7CiAg ICBoaWRlKCJpZGxlQ2FyZCIpOwogICAgc2hvdygiZXJyb3JDYXJkIik7CiAgICByZXR1cm47CiAgfQogIGlmICghY29kZSkgewog ICAgcmV0dXJuOyAvLyBkaWUgQmVkaWVuaGlud2Vpcy1LYXJ0ZSBibGVpYnQgc3RlaGVuCiAgfQoKICBkb2N1bWVudC5nZXRFbGVt ZW50QnlJZCgiY29kZVZhbHVlIikudGV4dENvbnRlbnQgPSBjb2RlOwogIGhpZGUoImlkbGVDYXJkIik7CiAgc2hvdygic3VjY2Vz c0NhcmQiKTsKCiAgLy8gRWluIEF1dG9yaXNpZXJ1bmdzY29kZSBpc3QgcnVuZCBmdWVuZiBNaW51dGVuIGd1ZWx0aWcuIFdlciBk YXMgbmljaHQgd2Vpc3MsIHByb2JpZXJ0CiAgLy8gc3BhZXRlciBlcm5ldXQgdW5kIGJla29tbXQgZWluZW4gbmljaHRzc2FnZW5k ZW4gaW52YWxpZF9ncmFudCAtIGRlc2hhbGIgc3RlaHQgZXMgaGllci4KICB2YXIgc2Vjb25kcyA9IGlzTmFOKGV4cGlyZXNJbikg PyAzMDAgOiBleHBpcmVzSW47CiAgdmFyIGV4cGlyeUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4cGlyeSIpOwogIHZh ciB0aW1lciA9IG51bGw7CgogIGZ1bmN0aW9uIHJlbmRlckV4cGlyeSh0aWNrKSB7CiAgICBpZiAoc2Vjb25kcyA8PSAwKSB7CiAg ICAgIGV4cGlyeUVsLnRleHRDb250ZW50ID0gIiI7CiAgICAgIHZhciBzdHJvbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz cGFuIik7CiAgICAgIHN0cm9uZy5jbGFzc05hbWUgPSAiZXhwaXJlZCI7CiAgICAgIHN0cm9uZy50ZXh0Q29udGVudCA9IHQoKS5l eHBpcmVkOwogICAgICBleHBpcnlFbC5hcHBlbmRDaGlsZChzdHJvbmcpOwogICAgICBleHBpcnlFbC5hcHBlbmRDaGlsZChkb2N1 bWVudC5jcmVhdGVUZXh0Tm9kZSh0KCkuYWdhaW4pKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIG0gPSBNYXRoLmZsb29y KHNlY29uZHMgLyA2MCksIHMgPSBzZWNvbmRzICUgNjA7CiAgICBleHBpcnlFbC50ZXh0Q29udGVudCA9IHQoKS52YWxpZChtICsg IjoiICsgKHMgPCAxMCA/ICIwIiA6ICIiKSArIHMpOwogICAgaWYgKHRpY2spIHsKICAgICAgc2Vjb25kcyAtPSAxOwogICAgICB0 aW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgcmVuZGVyRXhwaXJ5KHRydWUpOyB9LCAxMDAwKTsKICAgIH0K ICB9CiAgcmVuZGVyRXhwaXJ5KHRydWUpOwoKICBmdW5jdGlvbiBjb3B5KHRleHQsIGxhYmVsKSB7CiAgICB2YXIgc3RhdGUgPSBk b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29weVN0YXRlIik7CiAgICBmdW5jdGlvbiBkb25lKCkgewogICAgICBzdGF0ZS50ZXh0 Q29udGVudCA9IGxhYmVsKCkgKyB0KCkuY29waWVkOwogICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHN0YXRl LnRleHRDb250ZW50ID0gIiI7IH0sIDMwMDApOwogICAgfQogICAgLy8gQWVsdGVyZSBCcm93c2VyIHVuZCB1bnNpY2hlcmUgS29u dGV4dGUga2VubmVuIGRpZSBDbGlwYm9hcmQtQVBJIG5pY2h0LiBPaG5lIGRpZXNlbgogICAgLy8gWndlaWcgYmxpZWJlIGRlciBL bm9wZiB3aXJrdW5nc2xvcywgdW5kIGRlciBDb2RlIGxpZXNzZSBzaWNoIG51ciBtdWVoc2FtIG1hcmtpZXJlbi4KICAgIGZ1bmN0 aW9uIGZhbGxiYWNrKCkgewogICAgICB2YXIgYXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7CiAgICAg IGFyZWEudmFsdWUgPSB0ZXh0OwogICAgICBhcmVhLnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAiIik7CiAgICAgIGFyZWEuc3R5 bGUucG9zaXRpb24gPSAiZml4ZWQiOwogICAgICBhcmVhLnN0eWxlLm9wYWNpdHkgPSAiMCI7CiAgICAgIGRvY3VtZW50LmJvZHku YXBwZW5kQ2hpbGQoYXJlYSk7CiAgICAgIGFyZWEuc2VsZWN0KCk7CiAgICAgIHRyeSB7IGRvY3VtZW50LmV4ZWNDb21tYW5kKCJj b3B5Iik7IGRvbmUoKTsgfQogICAgICBjYXRjaCAoZSkgeyBzdGF0ZS50ZXh0Q29udGVudCA9IHQoKS5tYW51YWw7IH0KICAgICAg ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhcmVhKTsKICAgIH0KICAgIGlmIChuYXZpZ2F0b3IuY2xpcGJvYXJkICYmIHdpbmRv dy5pc1NlY3VyZUNvbnRleHQpIHsKICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dCkudGhlbihkb25lLCBm YWxsYmFjayk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGZhbGxiYWNrKCk7CiAgfQoKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZCgiY29weUJ0biIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgewogICAgY29weShjb2RlLCBmdW5jdGlv biAoKSB7IHJldHVybiB0KCkuY29kZTsgfSk7CiAgfSk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHlVcmxCdG4iKS5h ZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsKICAgIGNvcHkod2luZG93LmxvY2F0aW9uLmhyZWYsIGZ1bmN0 aW9uICgpIHsgcmV0dXJuIHQoKS5hZGRyZXNzOyB9KTsKICB9KTsKfSkoKTsKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo= '@ function Get-ConsentPageBytes { $encoded = ($ConsentPageBase64 -replace '\s', '') if ($encoded -eq '@@CONSENT_PAGE_BASE64@@') { # Unersetzter Platzhalter - das Skript laeuft aus dem Repo, nicht aus dem Download. $local = Join-Path $PSScriptRoot '../web/consent/index.html' if (-not (Test-Path $local)) { throw 'Dieses Skript enthaelt keine eingebettete Seite. Bitte die veroeffentlichte Fassung von https://downloads.merchantcentral.de/connector-ebay/azure/ verwenden.' } Write-Host 'Hinweis: Entwicklerlauf - die Seite wird aus dem Repo gelesen.' -ForegroundColor DarkGray return [System.IO.File]::ReadAllBytes((Resolve-Path $local)) } return [Convert]::FromBase64String($encoded) } $pageBytes = Get-ConsentPageBytes if ($pageBytes.Length -lt 500) { throw 'Die eingebettete Seite ist unerwartet klein. Bitte das Skript erneut herunterladen.' } if ($ShowPage) { [System.Text.Encoding]::UTF8.GetString($pageBytes) return } function Read-Value { param([string] $Prompt, [string] $Current, [string] $Default) if ($Current) { return $Current } $answer = Read-Host "$Prompt$(if ($Default) { " [$Default]" })" if (-not $answer -and $Default) { return $Default } if (-not $answer) { throw "Es wurde kein Wert fuer '$Prompt' angegeben." } return $answer } Write-Host '' Write-Host 'merchantCENTRAL eBay Connector - Zustimmungsseite bereitstellen' -ForegroundColor Cyan Write-Host '---------------------------------------------------------------' Write-Host '' $account = az account show --output json 2>$null | ConvertFrom-Json if (-not $account) { throw 'Keine aktive Azure-Anmeldung gefunden. In der Cloud Shell ist sie normalerweise vorhanden.' } Write-Host "Subscription: $($account.name)" -ForegroundColor DarkGray $ResourceGroup = Read-Value -Prompt 'Ressourcengruppe' -Current $ResourceGroup -Default 'rg-merchantcentral' $Location = Read-Value -Prompt 'Region' -Current $Location -Default 'westeurope' # Speicherkontonamen sind global eindeutig und auf 24 Kleinbuchstaben/Ziffern begrenzt. $suffix = -join ((48..57) + (97..122) | Get-Random -Count 8 | ForEach-Object { [char]$_ }) $storageName = ($NamePrefix + $suffix).ToLower() if ($storageName.Length -gt 24) { $storageName = $storageName.Substring(0, 24) } Write-Host '' Write-Host "Ressourcengruppe : $ResourceGroup" Write-Host "Region : $Location" Write-Host "Speicherkonto : $storageName" Write-Host '' if (-not (az group exists --name $ResourceGroup | ConvertFrom-Json)) { Write-Host 'Lege Ressourcengruppe an ...' az group create --name $ResourceGroup --location $Location --output none } Write-Host 'Lege Speicherkonto an ...' az storage account create ` --name $storageName ` --resource-group $ResourceGroup ` --location $Location ` --sku Standard_LRS ` --kind StorageV2 ` --min-tls-version TLS1_2 ` --allow-blob-public-access true ` --output none Write-Host 'Aktiviere statische Website ...' az storage blob service-properties update ` --account-name $storageName ` --static-website ` --index-document index.html ` --404-document index.html ` --output none Write-Host 'Lade die Seite in das Speicherkonto ...' $temp = Join-Path ([System.IO.Path]::GetTempPath()) "mce-consent-$suffix.html" [System.IO.File]::WriteAllBytes($temp, $pageBytes) az storage blob upload ` --account-name $storageName ` --container-name '$web' ` --name 'index.html' ` --file $temp ` --content-type 'text/html; charset=utf-8' ` --overwrite true ` --auth-mode login ` --output none Remove-Item $temp -Force $endpoint = (az storage account show ` --name $storageName ` --resource-group $ResourceGroup ` --query 'primaryEndpoints.web' ` --output tsv).TrimEnd('/') Write-Host '' Write-Host 'Fertig.' -ForegroundColor Green Write-Host '' Write-Host 'Diese Adresse im eBay Developer Portal als Accept-URL des RuName eintragen:' -ForegroundColor Cyan Write-Host '' Write-Host " $endpoint/" -ForegroundColor Yellow Write-Host '' Write-Host 'Wichtig: exakt so, mit abschliessendem Schraegstrich. Eine Weiterleitung an dieser' Write-Host 'Stelle wuerde den Autorisierungscode verwerfen.' Write-Host '' Write-Host 'Als Decline-URL kann dieselbe Adresse verwendet werden.' Write-Host ''