From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============5004460930658043878==" MIME-Version: 1.0 From: madprops at gmx.net Subject: [tpm2] Problem with Infineon Iridium SLB 9670 TPM2.0 Date: Sun, 18 Mar 2018 14:04:15 +0100 Message-ID: List-ID: To: tpm2@lists.01.org --===============5004460930658043878== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable --===============5004460930658043878== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBWZXJkYW5h O2ZvbnQtc2l6ZTogMTIuMHB4OyI+PGRpdj4KPGRpdiBjbGFzcz0ic2lnbmF0dXJlIj4KPGRpdiBj bGFzcz0ic2lnbmF0dXJlIj4KPGRpdj5JJiMzOTttIHRyeWluZyB0byBnZXQgYW4gJnF1b3Q7SW5m aW5lb24gSXJpZGl1bSBTTEIgOTY3MCBUUE0gMi4wIFNQSSBCb2FyZCZxdW90OyBydW4gb24gbXkg UmFzcGJlcnJ5IFBpIDMuIEkgaGF2ZSBkb3dubG9hZGVkLCBjb21waWxlZCBhbmQgaW5zdGFsbGVk IHRoZSBsYXRlc3QgdmVyc2lvbnMgb2YgdHBtMi1hYnJtZCwgdHBtMi10c3MgYW5kIHRwbTItdG9v bHMuIEkgc3RhcnRlZCB0cG0yLWFicm1kIGFzIHJvb3QsIGhvcGluZyB0aGF0IEkgY2FuIHRoZW4g aW50ZXJhY3Qgd2l0aCB0aGUgSW5maW5lb24gVFBNIHVzaW5nIHRwbTItdG9vbHMuICZxdW90O3Rw bTJfcGNybGlzdCZxdW90OyBhbmQgYWxsIG90aGVyIHRwbTJfKiBjb21tYW5kcywgaG93ZXZlciwg cmV0dXJuIGVycm9yICZxdW90O0VSUk9SOiBGYWlsZWQgdG8gaW5pdGlhbGl6ZSB0Y3RpIGNvbnRl eHQ6IDB4MSZxdW90Oy48L2Rpdj4KCjxkaXY+Jm5ic3A7PC9kaXY+Cgo8ZGl2PkFueSBpZGVhcz8g VGhhbmtzITwvZGl2PgoKPGRpdj4mbmJzcDs8L2Rpdj4KCjxkaXY+cGlAcmFzcGJlcnJ5cGk6fi9U UE0vdHBtMi1hYnJtZCAmIzM2OyB1bmFtZSAtYTxici8+CkxpbnV4IHJhc3BiZXJyeXBpIDQuNC41 MC12NysgIzEgU01QIFdlZCBNYXIgMTQgMTQ6MDE6MDAgUERUIDIwMTggYXJtdjdsIEdOVS9MaW51 eCAoJmx0Oz09IGluY2x1ZGVzIHBhdGNoIHByb3ZpZGVkIGJ5IEluZmluZW9uKTwvZGl2PgoKPGRp dj4mbmJzcDs8L2Rpdj4KCjxkaXY+cGlAcmFzcGJlcnJ5cGk6fi9UUE0vdHBtMi1hYnJtZCAmIzM2 OyBkbWVzZyAmIzEyNDsgZ3JlcCB0cG08YnIvPgpbJm5ic3A7Jm5ic3A7Jm5ic3A7IDMuNzAwMzg0 XSB0cG1fc3BpX3RpcyBzcGkwLjE6IDIuMCBUUE0gKGRldmljZS1pZCAweEI2QkMsIHJldi1pZCAx Nik8L2Rpdj4KCjxkaXY+Jm5ic3A7PC9kaXY+Cgo8ZGl2PnBpQHJhc3BiZXJyeXBpOi9ldGMgJiMz NjsgY2F0IC9ldGMvb3MtcmVsZWFzZTxici8+ClBSRVRUWV9OQU1FPSZxdW90O1Jhc3BiaWFuIEdO VS9MaW51eCA5IChzdHJldGNoKSZxdW90Ozxici8+Ck5BTUU9JnF1b3Q7UmFzcGJpYW4gR05VL0xp bnV4JnF1b3Q7PGJyLz4KVkVSU0lPTl9JRD0mcXVvdDs5JnF1b3Q7PGJyLz4KVkVSU0lPTj0mcXVv dDs5IChzdHJldGNoKSZxdW90Ozxici8+CklEPXJhc3BiaWFuPGJyLz4KSURfTElLRT1kZWJpYW48 YnIvPgpIT01FX1VSTD0mcXVvdDtodHRwOi8vd3d3LnJhc3BiaWFuLm9yZy8mcXVvdDs8YnIvPgpT VVBQT1JUX1VSTD0mcXVvdDtodHRwOi8vd3d3LnJhc3BiaWFuLm9yZy9SYXNwYmlhbkZvcnVtcyZx dW90Ozxici8+CkJVR19SRVBPUlRfVVJMPSZxdW90O2h0dHA6Ly93d3cucmFzcGJpYW4ub3JnL1Jh c3BiaWFuQnVncyZxdW90OzwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2PjwvZGl2PjwvYm9keT48 L2h0bWw+Cg== --===============5004460930658043878==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============8433442568699358327==" MIME-Version: 1.0 From: Philip Tricca Subject: Re: [tpm2] Problem with Infineon Iridium SLB 9670 TPM2.0 Date: Sun, 18 Mar 2018 22:07:37 -0700 Message-ID: <20180319050737.GE8769@intel.com> In-Reply-To: trinity-6e000144-63dc-4e2f-b8d1-cd689dbbc4a3-1521378255578@3c-app-gmx-bs78 List-ID: To: tpm2@lists.01.org --===============8433442568699358327== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hey there madprops, On Sun, Mar 18, 2018 at 02:04:15PM +0100, madprops(a)gmx.net wrote: > > =
>
>
>
I'm trying to get an "Infineon Iridium SLB 9670 TPM 2.0 SPI Boa= rd" run on my Raspberry Pi 3. I have downloaded, compiled and installe= d the latest versions of tpm2-abrmd, tpm2-tss and tpm2-tools. I started tpm= 2-abrmd as root, hoping that I can then interact with the Infineon TPM usin= g tpm2-tools. "tpm2_pcrlist" and all other tpm2_* commands, howev= er, return error "ERROR: Failed to initialize tcti context: 0x1".=
> = Can you please provide some more info about your configuration? Specifically: - the version of the TSS2 libraries you're using - the version of the tabrmd you're using - the configuration options you're passing to each A log file from the tabrmd with logging dialed all the way up would be helpful. Since tabrmd uses glib and it's logging infrastructure you dial up the debug output all the way by setting `G_MESSAGES_DEBUG=3Dall` in the daemon's environment. >
 
> = >
Any ideas? Thanks!
The most common issue we've seen people run into when installing from source is that the default value for the `prefix` and some other installation directories aren't what most expect. Still, if you're running the daemon as root you shouldn't have any issues w/r to permissions on the /dev/tpm0 device node so I wonder if this node even exists on your platform. You may want to check to see if `/dev/tpm0` is even present on your system. You're on an ARM platform which means the kernel will only be aware of the TPM2 device you've added if you configure the device tree properly. Regards, Philip >
pi(a)raspberrypi:~/TPM/tpm2-abrmd $ uname -a
> Linux raspberrypi 4.4.50-v7+ #1 SMP Wed Mar 14 14:01:00 PDT 2018 armv= 7l GNU/Linux (<=3D=3D includes patch provided by Infineon)
> = >
 
> = >
pi(a)raspberrypi:~/TPM/tpm2-abrmd $ dmesg | grep tpm
> [    3.700384] tpm_spi_tis spi0.1: 2.0 TPM (device-id 0xB6= BC, rev-id 16)
> = >
 
> = >
pi(a)raspberrypi:/etc $ cat /etc/os-release
> PRETTY_NAME=3D"Raspbian GNU/Linux 9 (stretch)"
> NAME=3D"Raspbian GNU/Linux"
> VERSION_ID=3D"9"
> VERSION=3D"9 (stretch)"
> ID=3Draspbian
> ID_LIKE=3Ddebian
> HOME_URL=3D"http://www.raspbian.org/"
> SUPPORT_URL=3D"http://www.raspbian.org/RaspbianForums"
> BUG_REPORT_URL=3D"http://www.raspbian.org/RaspbianBugs"
>
>
>
> _______________________________________________ > tpm2 mailing list > tpm2(a)lists.01.org > https://lists.01.org/mailman/listinfo/tpm2 --===============8433442568699358327==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============4300627016937504047==" MIME-Version: 1.0 From: Javier Martinez Canillas Subject: Re: [tpm2] Problem with Infineon Iridium SLB 9670 TPM2.0 Date: Mon, 19 Mar 2018 11:49:45 +0100 Message-ID: <741c056e-69bd-1998-3cd8-dd834b9e18c3@redhat.com> In-Reply-To: 20180319050737.GE8769@intel.com List-ID: To: tpm2@lists.01.org --===============4300627016937504047== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable On 03/19/2018 06:07 AM, Philip Tricca wrote: > Hey there madprops, > = > On Sun, Mar 18, 2018 at 02:04:15PM +0100, madprops(a)gmx.net wrote: >> >>
>>
>>
>>
I'm trying to get an "Infineon Iridium SLB 9670 TPM 2.0 SPI Bo= ard" run on my Raspberry Pi 3. I have downloaded, compiled and install= ed the latest versions of tpm2-abrmd, tpm2-tss and tpm2-tools. I started tp= m2-abrmd as root, hoping that I can then interact with the Infineon TPM usi= ng tpm2-tools. "tpm2_pcrlist" and all other tpm2_* commands, howe= ver, return error "ERROR: Failed to initialize tcti context: 0x1"= .
>> > = > Can you please provide some more info about your configuration? > Specifically: > - the version of the TSS2 libraries you're using > - the version of the tabrmd you're using > - the configuration options you're passing to each > = > A log file from the tabrmd with logging dialed all the way up would be > helpful. Since tabrmd uses glib and it's logging infrastructure you dial > up the debug output all the way by setting `G_MESSAGES_DEBUG=3Dall` in the > daemon's environment. > = >>
 
>> >>
Any ideas? Thanks!
> = > The most common issue we've seen people run into when installing from > source is that the default value for the `prefix` and some other > installation directories aren't what most expect. > = > Still, if you're running the daemon as root you shouldn't have any > issues w/r to permissions on the /dev/tpm0 device node so I wonder if > this node even exists on your platform. You may want to check to see if > `/dev/tpm0` is even present on your system. You're on an ARM platform > which means the kernel will only be aware of the TPM2 device you've > added if you configure the device tree properly. > = > Regards, > Philip > = We should probably add a FAQ to the tpm2-{tss,abrmd,tools} projects, since the same questions are being repeated over and over in the mailing list. Best regards, -- = Javier Martinez Canillas Software Engineer - Desktop Hardware Enablement Red Hat --===============4300627016937504047==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============8793028200071220832==" MIME-Version: 1.0 From: Philip Tricca Subject: Re: [tpm2] Problem with Infineon Iridium SLB 9670 TPM2.0 Date: Mon, 19 Mar 2018 08:31:04 -0700 Message-ID: <20180319153104.GG8769@intel.com> In-Reply-To: 741c056e-69bd-1998-3cd8-dd834b9e18c3@redhat.com List-ID: To: tpm2@lists.01.org --===============8793028200071220832== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable On Mon, Mar 19, 2018 at 11:49:45AM +0100, Javier Martinez Canillas wrote: > On 03/19/2018 06:07 AM, Philip Tricca wrote: > > Hey there madprops, > > = > > On Sun, Mar 18, 2018 at 02:04:15PM +0100, madprops(a)gmx.net wrote: > >> > >>
> >>
> >>
> >>
I'm trying to get an "Infineon Iridium SLB 9670 TPM 2.0 SPI = Board" run on my Raspberry Pi 3. I have downloaded, compiled and insta= lled the latest versions of tpm2-abrmd, tpm2-tss and tpm2-tools. I started = tpm2-abrmd as root, hoping that I can then interact with the Infineon TPM u= sing tpm2-tools. "tpm2_pcrlist" and all other tpm2_* commands, ho= wever, return error "ERROR: Failed to initialize tcti context: 0x1&quo= t;.
> >> > > = > > Can you please provide some more info about your configuration? > > Specifically: > > - the version of the TSS2 libraries you're using > > - the version of the tabrmd you're using > > - the configuration options you're passing to each > > = > > A log file from the tabrmd with logging dialed all the way up would be > > helpful. Since tabrmd uses glib and it's logging infrastructure you dial > > up the debug output all the way by setting `G_MESSAGES_DEBUG=3Dall` in = the > > daemon's environment. > > = > >>
 
> >> > >>
Any ideas? Thanks!
> > = > > The most common issue we've seen people run into when installing from > > source is that the default value for the `prefix` and some other > > installation directories aren't what most expect. > > = > > Still, if you're running the daemon as root you shouldn't have any > > issues w/r to permissions on the /dev/tpm0 device node so I wonder if > > this node even exists on your platform. You may want to check to see if > > `/dev/tpm0` is even present on your system. You're on an ARM platform > > which means the kernel will only be aware of the TPM2 device you've > > added if you configure the device tree properly. > > = > > Regards, > > Philip > > = > = > We should probably add a FAQ to the tpm2-{tss,abrmd,tools} projects, since > the same questions are being repeated over and over in the mailing list. No doubt. The first bit about providing additional data in bug reports / questions should probably land in the CONTRIBUTING.md files. A FAQ on the right wikis would be a good thing as well. With the churn in the TSS2 libs dying down I'll be refocusing on the tabrmd so I'll probably start there. If you've got the cycles and the motivation feel free to jump on the wiki and start adding content. Philip --===============8793028200071220832==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============3604235483766155794==" MIME-Version: 1.0 From: madprops at gmx.net Subject: Re: [tpm2] Problem with Infineon Iridium SLB 9670 TPM2.0 Date: Mon, 19 Mar 2018 21:17:33 +0100 Message-ID: In-Reply-To: 20180319050737.GE8769@intel.com List-ID: To: tpm2@lists.01.org --===============3604235483766155794== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable --===============3604235483766155794== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBWZXJkYW5h O2ZvbnQtc2l6ZTogMTIuMHB4OyI+PGRpdj4KPGRpdj5UaGFuayB5b3UsIFBoaWxpcCEgSSBtZWFu d2hpbGUgbm90aWNlZCB0aGUgdG9vbHMgd29yayB3aGVuIEkgc3RvcCB0cG0yLWFicm1kIGFuZCBj b25uZWN0IGRpcmVjdGx5IHRvIHRoZSBUUE06Jm5ic3A7PC9kaXY+Cgo8ZGl2PiZuYnNwOzwvZGl2 PgoKPGRpdj5waUByYXNwYmVycnlwaTp+ICYjMzY7IHN1ZG8gdHBtMl9wY3JsaXN0IC1UIGRldmlj ZTovZGV2L3RwbTA8YnIvPgpzaGExIDo8YnIvPgombmJzcDsgMCZuYnNwOyA6IDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA8YnIvPgombmJzcDsgMSZuYnNwOyA6IDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA8YnIvPgpbLi4uXTwvZGl2PgoKPGRp dj4mbmJzcDs8L2Rpdj4KCjxkaXY+UGxlYXNlIGZpbmQgYmVsb3cgdGhlIGluZm9ybWF0aW9uIHlv dSBhc2tlZCBmb3IuIFdoaWxlIHRwbTItYWJybWQgaXMgcnVubmluZyAoYXMgcm9vdCkgSSBzdGls bCBnZXQgdGhpczo8L2Rpdj4KCjxkaXY+Jm5ic3A7PC9kaXY+Cgo8ZGl2PnBpQHJhc3BiZXJyeXBp On4gJiMzNjsgdHBtMl9wY3JsaXN0PGJyLz4KRVJST1I6IEZhaWxlZCB0byBpbml0aWFsaXplIHRj dGkgY29udGV4dDogMHgxPC9kaXY+Cgo8ZGl2PiZuYnNwOzwvZGl2PgoKPGRpdj5waUByYXNwYmVy cnlwaTp+ICYjMzY7IGV4cG9ydCBUUE0yVE9PTFNfVENUSV9OQU1FPXRhYnJtZDxici8+CnBpQHJh c3BiZXJyeXBpOn4gJiMzNjsgdHBtMl9wY3JsaXN0PGJyLz4KRVJST1I6IFVua25vd24gdGN0aSwg Z290OiAmcXVvdDt0YWJybWQmcXVvdDs8L2Rpdj4KCjxkaXY+Jm5ic3A7PC9kaXY+Cgo8ZGl2Pj09 PT09PT09IFZlcnNpb25zOjwvZGl2PgoKPGRpdj50cG0yLWFicm1kOiAxLjMuMV9yYzA8YnIvPgp0 cG0yLXRvb2xzOiAzLjAuMzxici8+CnRwbTItdHNzOiAxLjQuMDwvZGl2PgoKPGRpdj4mbmJzcDs8 L2Rpdj4KCjxkaXY+PT09PT09PT0gL2Rldi90cG0wPC9kaXY+Cgo8ZGl2PnBpQHJhc3BiZXJyeXBp On4gJiMzNjsgbHMgLWxhIC9kZXYvdHBtMDxici8+CmNydy0tLS0tLS0gMSByb290IHJvb3QgMTAs IDIyNCBNYXIgMTcgMjE6MzUgL2Rldi90cG0wPC9kaXY+Cgo8ZGl2Pj09PT09PT09IHRwbTItYWJy bWQgTE9HPC9kaXY+Cgo8ZGl2PnJvb3RAcmFzcGJlcnJ5cGk6L2hvbWUvcGkjIHRwbTItYWJybWQ8 YnIvPgoqKiBJTkZPOiB0YWJybWQgc3RhcnR1cDxici8+CioqIChwcm9jZXNzOjE4NTIpOiBERUJV RzogdGN0aV9mYWN0b3J5X3NldF9wcm9wZXJ0eTxici8+CioqIChwcm9jZXNzOjE4NTIpOiBERUJV RzombmJzcDsmbmJzcDsgUFJPUF9UQ1RJX1RZUEU8YnIvPgoqKiAocHJvY2VzczoxODUyKTogREVC VUc6Jm5ic3A7Jm5ic3A7IHZhbHVlOiAweDE8YnIvPgoqKiAocHJvY2VzczoxODUyKTogREVCVUc6 IHRjdGlfZmFjdG9yeV9zZXRfcHJvcGVydHk8YnIvPgoqKiAocHJvY2VzczoxODUyKTogREVCVUc6 IFRjdGlGYWN0b3J5IHNldCBkZXZpY2VfbmFtZTogL2Rldi90cG0wPGJyLz4KKiogKHByb2Nlc3M6 MTg1Mik6IERFQlVHOiB0Y3RpX2ZhY3Rvcnlfc2V0X3Byb3BlcnR5PGJyLz4KKiogKHByb2Nlc3M6 MTg1Mik6IERFQlVHOiBUY3RpRmFjdG9yeSBzZXQgc29ja2V0X2FkZHJlc3M6IDEyNy4wLjAuMTxi ci8+CioqIChwcm9jZXNzOjE4NTIpOiBERUJVRzogdGN0aV9mYWN0b3J5X3NldF9wcm9wZXJ0eTxi ci8+CioqIChwcm9jZXNzOjE4NTIpOiBERUJVRzogVGN0aUZhY3Rvcnkgc2V0IHNvY2tldF9wb3J0 OiAyMzIxPGJyLz4KKiogSU5GTzogbG9nZ2luZyB0byBzdGRvdXQ8YnIvPgoqKiAodHBtMi1hYnJt ZDoxODUyKTogREVCVUc6IHRjdGlfZmFjdG9yeV9nZXRfdGN0aTxici8+CioqICh0cG0yLWFicm1k OjE4NTIpOiBERUJVRzogVGN0aURldmljZSBzZXQgZmlsZW5hbWU6IC9kZXYvdHBtMDxici8+Cioq IElORk86IGVudGVyaW5nIGdfbWFpbl9sb29wPGJyLz4KKiogSU5GTzogaW5pdF90aHJlYWRfZnVu YyBzdGFydDxici8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogcmFuZG9tX2NsYXNzX2lu aXQ8YnIvPgoqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IG9wZW5pbmcgZW50cm9weSBzb3Vy Y2U6IC9kZXYvdXJhbmRvbTxici8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogcmVhZGlu ZyBmcm9tIGVudHJvcHkgc291cmNlOiAvZGV2L3VyYW5kb208YnIvPgoqKiAodHBtMi1hYnJtZDox ODUyKTogREVCVUc6IHNlZWRpbmcgcmFuZCB3aXRoIC0xMjYzMDQ1Mjk1PGJyLz4KKiogKHRwbTIt YWJybWQ6MTg1Mik6IERFQlVHOiBjb25uZWN0aW9uX21hbmFnZXJfc2V0X3Byb3BlcnR5OiAweDE1 YzVlZjA8YnIvPgoqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6Jm5ic3A7Jm5ic3A7IG1heF9j b25uZWN0aW9uczogMHgxYjxici8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogQ29ubmVj dGlvbk1hbmFnZXI6IDB4MTVjNWVmMDxici8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzog SXBjRnJvbnRlbmREYnVzIHNldCBidXNfbmFtZTogY29tLmludGVsLnRzczIuVGFicm1kPGJyLz4K KiogKHRwbTItYWJybWQ6MTg1Mik6IERFQlVHOiBpcGNfZnJvbnRlbmRfY29ubmVjdDogMHg3NWIw MWEwODxici8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogdGN0aV9pbml0aWFsaXplOiAw eDE1YzUyMDA8YnIvPgoqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IHNhcGlfY29udGV4dF9p bml0IHcvIFRjdGk6IDB4MTVjNTIwMDxici8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzog dGN0aV9wZWVrX2NvbnRleHQ6IDB4MTVjNTIwMDxici8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBE RUJVRzogQWxsb2NhdGluZyAweDEwNDAgYnl0ZXMgZm9yIFNBUEkgY29udGV4dDxici8+CioqICh0 cG0yLWFicm1kOjE4NTIpOiBERUJVRzogYWNjZXNzX2Jyb2tlcl9zZXRfcHJvcGVydHk6IDB4NzVi MGI3MjA8YnIvPgoqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6Jm5ic3A7Jm5ic3A7IHNhcGlf Y29udGV4dDogMHg3NWIwYTY5MDxici8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogYWNj ZXNzX2Jyb2tlcl9zZXRfcHJvcGVydHk6IDB4NzViMGI3MjA8YnIvPgoqKiAodHBtMi1hYnJtZDox ODUyKTogREVCVUc6Jm5ic3A7Jm5ic3A7IHRjdGk6IDB4MTVjNTIwMDxici8+CioqICh0cG0yLWFi cm1kOjE4NTIpOiBERUJVRzogY3JlYXRlZCBBY2Nlc3NCcm9rZXI6IDB4NzViMGI3MjA8YnIvPgoq KiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IGFjY2Vzc19icm9rZXJfaW5pdF90cG06IDB4NzVi MGI3MjA8YnIvPgoqKiBJTkZPOiBvbl9idXNfYWNxdWlyZWQ6IGNvbS5pbnRlbC50c3MyLlRhYnJt ZDxici8+CioqIElORk86IG9uX25hbWVfYWNxdWlyZWQ6IGNvbS5pbnRlbC50c3MyLlRhYnJtZDxi ci8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogR290IHByb3h5IG9iamVjdCBmb3IgREJ1 cyBkYWVtb24uPGJyLz4KKiogKHRwbTItYWJybWQ6MTg1Mik6IERFQlVHOiBhY2Nlc3NfYnJva2Vy X2dldF90cG1fcHJvcGVydGllc19maXhlZDxici8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBERUJV RzogY29tbWFuZF9hdHRyc19jbGFzc19pbml0PGJyLz4KKiogKHRwbTItYWJybWQ6MTg1Mik6IERF QlVHOiBjcmVhdGVkIENvbW1hbmRBdHRyczogMHg3NWIwMTI2MDxici8+CioqICh0cG0yLWFicm1k OjE4NTIpOiBERUJVRzogR2V0Q2FwYWJpbHR5IGZvciAweDUwMCBjb21tYW5kczxici8+CioqICh0 cG0yLWFicm1kOjE4NTIpOiBERUJVRzogZ290IGF0dHJpYnV0ZXMgZm9yIDB4NWEgY29tbWFuZHM8 YnIvPgoqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IGNvbW1hbmRfc291cmNlX2NsYXNzX2lu aXQ8YnIvPgoqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IGNvbW1hbmRfc291cmNlX3NldF9w cm9wZXJ0aWVzOiAweDc1YjAyYzUwPGJyLz4KKiogKHRwbTItYWJybWQ6MTg1Mik6IERFQlVHOiZu YnNwOyZuYnNwOyBjb21tYW5kX2F0dHJzOiAweDc1YjAxMjYwPGJyLz4KKiogKHRwbTItYWJybWQ6 MTg1Mik6IERFQlVHOiBjb21tYW5kX3NvdXJjZV9zZXRfcHJvcGVydGllczogMHg3NWIwMmM1MDxi ci8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogY3JlYXRlZCBjb21tYW5kIHNvdXJjZTog MHg3NWIwMmM1MDxici8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogc2Vzc2lvbl9saXN0 X25ldyB3aXRoIG1heC1wZXItY29ubmVjdGlvbjogMHg0PGJyLz4KKiogKHRwbTItYWJybWQ6MTg1 Mik6IERFQlVHOiBzZXNzaW9uX2xpc3RfaW5pdDxici8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBE RUJVRzogc2Vzc2lvbl9saXN0X3NldF9wcm9wZXJ0eTogMHgxNWM1ZmIwIG1heC1wZXItY29ubmVj dGlvbjogNDxici8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogcmVzb3VyY2VfbWFuYWdl cl9zZXRfcHJvcGVydHk6IDB4NzViMDJjYTA8YnIvPgoqKiAodHBtMi1hYnJtZDoxODUyKTogREVC VUc6Jm5ic3A7Jm5ic3A7IGluX3F1ZXVlOiAweDc1YjAwZjkwPGJyLz4KKiogKHRwbTItYWJybWQ6 MTg1Mik6IERFQlVHOiByZXNvdXJjZV9tYW5hZ2VyX3NldF9wcm9wZXJ0eTogMHg3NWIwMmNhMDxi ci8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzombmJzcDsmbmJzcDsgYWNjZXNzX2Jyb2tl cjogMHg3NWIwYjcyMDxici8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogcmVzb3VyY2Vf bWFuYWdlcl9zZXRfcHJvcGVydHk6IDB4NzViMDJjYTA8YnIvPgoqKiAodHBtMi1hYnJtZDoxODUy KTogREVCVUc6IGNyZWF0ZWQgUmVzb3VyY2VNYW5hZ2VyOiAweDc1YjAyY2EwPGJyLz4KKiogKHRw bTItYWJybWQ6MTg1Mik6IERFQlVHOiByZXNwb25zZV9zaW5rX3NldF9wcm9wZXJ0eTxici8+Cioq ICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzombmJzcDsmbmJzcDsgc2V0dGluZyBQUk9QX0lOX1FV RVVFPGJyLz4KKiogKHRwbTItYWJybWQ6MTg1Mik6IERFQlVHOiBjcmVhdGVkIHJlc3BvbnNlIHNv dXJjZTogMHg3NWIwMTJhODxici8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogc291cmNl X2FkZF9zaW5rPGJyLz4KKiogKHRwbTItYWJybWQ6MTg1Mik6IERFQlVHOiBjb21tYW5kX3NvcnVj ZV9hZGRfc2luazogQ29tbWFuZFNvdXJjZTogMHg3NWIwMmM1MCAsIFNpbms6IDB4NzViMDJjYTA8 YnIvPgoqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IGNvbW1hbmRfc291cmNlX3NldF9wcm9w ZXJ0aWVzOiAweDc1YjAyYzUwPGJyLz4KKiogKHRwbTItYWJybWQ6MTg1Mik6IERFQlVHOiZuYnNw OyZuYnNwOyBzaW5rOiAweDc1YjAyY2EwPGJyLz4KKiogKHRwbTItYWJybWQ6MTg1Mik6IERFQlVH OiBzb3VyY2VfYWRkX3Npbms8YnIvPgoqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IHJlc291 cmNlX21hbmFnZXJfYWRkX3Npbms6IFJlc291cmNlTWFuYWdlcjogMHg3NWIwMmNhMCwgU2luazog MHg3NWIwMTJhODxici8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogcmVzb3VyY2VfbWFu YWdlcl9zZXRfcHJvcGVydHk6IDB4NzViMDJjYTA8YnIvPgoqKiAodHBtMi1hYnJtZDoxODUyKTog REVCVUc6Jm5ic3A7Jm5ic3A7IHNpbms6IDB4NzViMDEyYTg8YnIvPgoqKiBJTkZPOiBpbml0X3Ro cmVhZF9mdW5jIGRvbmU8YnIvPgoqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IHJlc291cmNl X21hbmFnZXJfdGhyZWFkIHN0YXJ0PGJyLz4KKiogKHRwbTItYWJybWQ6MTg1Mik6IERFQlVHOiBy ZXNwb25zZV9zaW5rX3RocmVhZCBibG9ja2luZyBvbiBpbnB1dCBxdWV1ZTogMHg3NWIwMGU1MDxi ci8+CioqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogbWVzc2FnZV9xdWV1ZV9kZXF1ZXVlIDB4 NzViMDBlNTA8YnIvPgoqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IG1lc3NhZ2VfcXVldWVf ZGVxdWV1ZSAweDc1YjAwZjkwPC9kaXY+Cgo8ZGl2PiZuYnNwOzwvZGl2PgoKPGRpdj49PT09PT09 PSBNSVNDPC9kaXY+Cgo8ZGl2PnBpQHJhc3BiZXJyeXBpOn4vVFBNL3RwbTItdHNzICYjMzY7IGNh dCAvZXRjL2RidXMtMS9zeXN0ZW0uZC90cG0yLWFicm1kLmNvbmY8YnIvPgombHQ7IURPQ1RZUEUg YnVzY29uZmlnIFBVQkxJQyAmcXVvdDstLy9mcmVlZGVza3RvcC8vRFREIEQtQlVTIEJ1cyBDb25m aWd1cmF0aW9uIDEuMC8vRU4mcXVvdDs8YnIvPgombmJzcDsmcXVvdDtodHRwOi8vd3d3LmZyZWVk ZXNrdG9wLm9yZy9zdGFuZGFyZHMvZGJ1cy8xLjAvYnVzY29uZmlnLmR0ZCZxdW90OyZndDs8YnIv PgombHQ7YnVzY29uZmlnJmd0Ozxici8+CiZuYnNwOyAmbHQ7IS0tIC4uL3N5c3RlbS5jb25mIGhh dmUgZGVuaWVkIGV2ZXJ5dGhpbmcsIHNvIHdlIGp1c3QgcHVuY2ggc29tZSBob2xlcyAtLSZndDs8 YnIvPgombmJzcDsgJmx0O3BvbGljeSB1c2VyPSZxdW90O3RzcyZxdW90OyZndDs8YnIvPgombmJz cDsmbmJzcDsmbmJzcDsgJmx0O2FsbG93IG93bj0mcXVvdDtjb20uaW50ZWwudHNzMi5UYWJybWQm cXVvdDsvJmd0Ozxici8+CiZuYnNwOyAmbHQ7L3BvbGljeSZndDs8YnIvPgombmJzcDsgJmx0O3Bv bGljeSB1c2VyPSZxdW90O3Jvb3QmcXVvdDsmZ3Q7PGJyLz4KJm5ic3A7Jm5ic3A7Jm5ic3A7ICZs dDthbGxvdyBvd249JnF1b3Q7Y29tLmludGVsLnRzczIuVGFicm1kJnF1b3Q7LyZndDs8YnIvPgom bmJzcDsgJmx0Oy9wb2xpY3kmZ3Q7PGJyLz4KJm5ic3A7ICZsdDtwb2xpY3kgY29udGV4dD0mcXVv dDtkZWZhdWx0JnF1b3Q7Jmd0Ozxici8+CiZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7YWxsb3cgc2Vu ZF9kZXN0aW5hdGlvbj0mcXVvdDtjb20uaW50ZWwudHNzMi5UYWJybWQmcXVvdDsvJmd0Ozxici8+ CiZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7YWxsb3cgcmVjZWl2ZV9zZW5kZXI9JnF1b3Q7Y29tLmlu dGVsLnRzczIuVGFicm1kJnF1b3Q7LyZndDs8YnIvPgombmJzcDsgJmx0Oy9wb2xpY3kmZ3Q7PGJy Lz4KJmx0Oy9idXNjb25maWcmZ3Q7PC9kaXY+Cgo8ZGl2PiZuYnNwOzwvZGl2PgoKPGRpdj4mbmJz cDs8L2Rpdj4KCjxkaXY+Jm5ic3A7CjxkaXYgbmFtZT0icXVvdGUiIHN0eWxlPSJtYXJnaW46MTBw eCA1cHggNXB4IDEwcHg7IHBhZGRpbmc6IDEwcHggMCAxMHB4IDEwcHg7IGJvcmRlci1sZWZ0OjJw eCBzb2xpZCAjQzNEOUU1OyB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2Rl OiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiPgo8ZGl2IHN0 eWxlPSJtYXJnaW46MCAwIDEwcHggMDsiPjxiPkdlc2VuZGV0OjwvYj4mbmJzcDtNb250YWcsIDE5 LiBNJmF1bWw7cnogMjAxOCB1bSAwNjowNyBVaHI8YnIvPgo8Yj5Wb246PC9iPiZuYnNwOyZxdW90 O1BoaWxpcCBUcmljY2EmcXVvdDsgJmx0O3BoaWxpcC5iLnRyaWNjYUBpbnRlbC5jb20mZ3Q7PGJy Lz4KPGI+QW46PC9iPiZuYnNwO21hZHByb3BzQGdteC5uZXQ8YnIvPgo8Yj5DYzo8L2I+Jm5ic3A7 dHBtMkBsaXN0cy4wMS5vcmc8YnIvPgo8Yj5CZXRyZWZmOjwvYj4mbmJzcDtSZTogW3RwbTJdIFBy b2JsZW0gd2l0aCBJbmZpbmVvbiBJcmlkaXVtIFNMQiA5NjcwIFRQTTIuMDwvZGl2PgoKPGRpdiBu YW1lPSJxdW90ZWQtY29udGVudCI+SGV5IHRoZXJlIG1hZHByb3BzLDxici8+Cjxici8+Ck9uIFN1 biwgTWFyIDE4LCAyMDE4IGF0IDAyOjA0OjE1UE0gKzAxMDAsIG1hZHByb3BzQGdteC5uZXQgd3Jv dGU6PGJyLz4KJmd0OyAmbHQ7aHRtbCZndDsmbHQ7aGVhZCZndDs8YnIvPgomZ3Q7ICZsdDttZXRh IGh0dHAtZXF1aXY9JnF1b3Q7Q29udGVudC1UeXBlJnF1b3Q7IGNvbnRlbnQ9JnF1b3Q7dGV4dC9o dG1sOyBjaGFyc2V0PXV0Zi04JnF1b3Q7Jmd0OyZsdDsvaGVhZCZndDsmbHQ7Ym9keSZndDsmbHQ7 ZGl2IHN0eWxlPSZxdW90O2ZvbnQtZmFtaWx5OiBWZXJkYW5hO2ZvbnQtc2l6ZTogMTIuMHB4OyZx dW90OyZndDsmbHQ7ZGl2Jmd0Ozxici8+CiZndDsgJmx0O2RpdiBjbGFzcz0mcXVvdDtzaWduYXR1 cmUmcXVvdDsmZ3Q7PGJyLz4KJmd0OyAmbHQ7ZGl2IGNsYXNzPSZxdW90O3NpZ25hdHVyZSZxdW90 OyZndDs8YnIvPgomZ3Q7ICZsdDtkaXYmZ3Q7SSYjMzk7bSB0cnlpbmcgdG8gZ2V0IGFuICZhbXA7 cXVvdDtJbmZpbmVvbiBJcmlkaXVtIFNMQiA5NjcwIFRQTSAyLjAgU1BJIEJvYXJkJmFtcDtxdW90 OyBydW4gb24gbXkgUmFzcGJlcnJ5IFBpIDMuIEkgaGF2ZSBkb3dubG9hZGVkLCBjb21waWxlZCBh bmQgaW5zdGFsbGVkIHRoZSBsYXRlc3QgdmVyc2lvbnMgb2YgdHBtMi1hYnJtZCwgdHBtMi10c3Mg YW5kIHRwbTItdG9vbHMuIEkgc3RhcnRlZCB0cG0yLWFicm1kIGFzIHJvb3QsIGhvcGluZyB0aGF0 IEkgY2FuIHRoZW4gaW50ZXJhY3Qgd2l0aCB0aGUgSW5maW5lb24gVFBNIHVzaW5nIHRwbTItdG9v bHMuICZhbXA7cXVvdDt0cG0yX3Bjcmxpc3QmYW1wO3F1b3Q7IGFuZCBhbGwgb3RoZXIgdHBtMl8q IGNvbW1hbmRzLCBob3dldmVyLCByZXR1cm4gZXJyb3IgJmFtcDtxdW90O0VSUk9SOiBGYWlsZWQg dG8gaW5pdGlhbGl6ZSB0Y3RpIGNvbnRleHQ6IDB4MSZhbXA7cXVvdDsuJmx0Oy9kaXYmZ3Q7PGJy Lz4KJmd0Ozxici8+Cjxici8+CkNhbiB5b3UgcGxlYXNlIHByb3ZpZGUgc29tZSBtb3JlIGluZm8g YWJvdXQgeW91ciBjb25maWd1cmF0aW9uPzxici8+ClNwZWNpZmljYWxseTo8YnIvPgotIHRoZSB2 ZXJzaW9uIG9mIHRoZSBUU1MyIGxpYnJhcmllcyB5b3UmIzM5O3JlIHVzaW5nPGJyLz4KLSB0aGUg dmVyc2lvbiBvZiB0aGUgdGFicm1kIHlvdSYjMzk7cmUgdXNpbmc8YnIvPgotIHRoZSBjb25maWd1 cmF0aW9uIG9wdGlvbnMgeW91JiMzOTtyZSBwYXNzaW5nIHRvIGVhY2g8YnIvPgo8YnIvPgpBIGxv ZyBmaWxlIGZyb20gdGhlIHRhYnJtZCB3aXRoIGxvZ2dpbmcgZGlhbGVkIGFsbCB0aGUgd2F5IHVw IHdvdWxkIGJlPGJyLz4KaGVscGZ1bC4gU2luY2UgdGFicm1kIHVzZXMgZ2xpYiBhbmQgaXQmIzM5 O3MgbG9nZ2luZyBpbmZyYXN0cnVjdHVyZSB5b3UgZGlhbDxici8+CnVwIHRoZSBkZWJ1ZyBvdXRw dXQgYWxsIHRoZSB3YXkgYnkgc2V0dGluZyAmIzk2O0dfTUVTU0FHRVNfREVCVUc9YWxsJiM5Njsg aW4gdGhlPGJyLz4KZGFlbW9uJiMzOTtzIGVudmlyb25tZW50Ljxici8+Cjxici8+CiZndDsgJmx0 O2RpdiZndDsmYW1wO25ic3A7Jmx0Oy9kaXYmZ3Q7PGJyLz4KJmd0Ozxici8+CiZndDsgJmx0O2Rp diZndDtBbnkgaWRlYXM/IFRoYW5rcyEmbHQ7L2RpdiZndDs8YnIvPgo8YnIvPgpUaGUgbW9zdCBj b21tb24gaXNzdWUgd2UmIzM5O3ZlIHNlZW4gcGVvcGxlIHJ1biBpbnRvIHdoZW4gaW5zdGFsbGlu ZyBmcm9tPGJyLz4Kc291cmNlIGlzIHRoYXQgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSAmIzk2 O3ByZWZpeCYjOTY7IGFuZCBzb21lIG90aGVyPGJyLz4KaW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVz IGFyZW4mIzM5O3Qgd2hhdCBtb3N0IGV4cGVjdC48YnIvPgo8YnIvPgpTdGlsbCwgaWYgeW91JiMz OTtyZSBydW5uaW5nIHRoZSBkYWVtb24gYXMgcm9vdCB5b3Ugc2hvdWxkbiYjMzk7dCBoYXZlIGFu eTxici8+Cmlzc3VlcyB3L3IgdG8gcGVybWlzc2lvbnMgb24gdGhlIC9kZXYvdHBtMCBkZXZpY2Ug bm9kZSBzbyBJIHdvbmRlciBpZjxici8+CnRoaXMgbm9kZSBldmVuIGV4aXN0cyBvbiB5b3VyIHBs YXRmb3JtLiBZb3UgbWF5IHdhbnQgdG8gY2hlY2sgdG8gc2VlIGlmPGJyLz4KJiM5NjsvZGV2L3Rw bTAmIzk2OyBpcyBldmVuIHByZXNlbnQgb24geW91ciBzeXN0ZW0uIFlvdSYjMzk7cmUgb24gYW4g QVJNIHBsYXRmb3JtPGJyLz4Kd2hpY2ggbWVhbnMgdGhlIGtlcm5lbCB3aWxsIG9ubHkgYmUgYXdh cmUgb2YgdGhlIFRQTTIgZGV2aWNlIHlvdSYjMzk7dmU8YnIvPgphZGRlZCBpZiB5b3UgY29uZmln dXJlIHRoZSBkZXZpY2UgdHJlZSBwcm9wZXJseS48YnIvPgo8YnIvPgpSZWdhcmRzLDxici8+ClBo aWxpcDxici8+Cjxici8+CiZndDsgJmx0O2RpdiZndDtwaUByYXNwYmVycnlwaTp+L1RQTS90cG0y LWFicm1kICYjMzY7IHVuYW1lIC1hJmx0O2JyJmd0Ozxici8+CiZndDsgTGludXggcmFzcGJlcnJ5 cGkgNC40LjUwLXY3JmFtcDsjNDM7ICMxIFNNUCBXZWQgTWFyIDE0IDE0OjAxOjAwIFBEVCAyMDE4 IGFybXY3bCBHTlUvTGludXggKCZhbXA7bHQ7PT0gaW5jbHVkZXMgcGF0Y2ggcHJvdmlkZWQgYnkg SW5maW5lb24pJmx0Oy9kaXYmZ3Q7PGJyLz4KJmd0Ozxici8+CiZndDsgJmx0O2RpdiZndDsmYW1w O25ic3A7Jmx0Oy9kaXYmZ3Q7PGJyLz4KJmd0Ozxici8+CiZndDsgJmx0O2RpdiZndDtwaUByYXNw YmVycnlwaTp+L1RQTS90cG0yLWFicm1kICYjMzY7IGRtZXNnICYjMTI0OyBncmVwIHRwbSZsdDti ciZndDs8YnIvPgomZ3Q7IFsmYW1wO25ic3A7JmFtcDtuYnNwOyZhbXA7bmJzcDsgMy43MDAzODRd IHRwbV9zcGlfdGlzIHNwaTAuMTogMi4wIFRQTSAoZGV2aWNlLWlkIDB4QjZCQywgcmV2LWlkIDE2 KSZsdDsvZGl2Jmd0Ozxici8+CiZndDs8YnIvPgomZ3Q7ICZsdDtkaXYmZ3Q7JmFtcDtuYnNwOyZs dDsvZGl2Jmd0Ozxici8+CiZndDs8YnIvPgomZ3Q7ICZsdDtkaXYmZ3Q7cGlAcmFzcGJlcnJ5cGk6 L2V0YyAmIzM2OyBjYXQgL2V0Yy9vcy1yZWxlYXNlJmx0O2JyJmd0Ozxici8+CiZndDsgUFJFVFRZ X05BTUU9JmFtcDtxdW90O1Jhc3BiaWFuIEdOVS9MaW51eCA5IChzdHJldGNoKSZhbXA7cXVvdDsm bHQ7YnImZ3Q7PGJyLz4KJmd0OyBOQU1FPSZhbXA7cXVvdDtSYXNwYmlhbiBHTlUvTGludXgmYW1w O3F1b3Q7Jmx0O2JyJmd0Ozxici8+CiZndDsgVkVSU0lPTl9JRD0mYW1wO3F1b3Q7OSZhbXA7cXVv dDsmbHQ7YnImZ3Q7PGJyLz4KJmd0OyBWRVJTSU9OPSZhbXA7cXVvdDs5IChzdHJldGNoKSZhbXA7 cXVvdDsmbHQ7YnImZ3Q7PGJyLz4KJmd0OyBJRD1yYXNwYmlhbiZsdDticiZndDs8YnIvPgomZ3Q7 IElEX0xJS0U9ZGViaWFuJmx0O2JyJmd0Ozxici8+CiZndDsgSE9NRV9VUkw9JmFtcDtxdW90Ozxh IGhyZWY9Imh0dHA6Ly93d3cucmFzcGJpYW4ub3JnLyZhbXA7cXVvdCIgdGFyZ2V0PSJfYmxhbmsi Pmh0dHA6Ly93d3cucmFzcGJpYW4ub3JnLyZhbXA7cXVvdDwvYT47Jmx0O2JyJmd0Ozxici8+CiZn dDsgU1VQUE9SVF9VUkw9JmFtcDtxdW90OzxhIGhyZWY9Imh0dHA6Ly93d3cucmFzcGJpYW4ub3Jn L1Jhc3BiaWFuRm9ydW1zJmFtcDtxdW90IiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL3d3dy5yYXNw Ymlhbi5vcmcvUmFzcGJpYW5Gb3J1bXMmYW1wO3F1b3Q8L2E+OyZsdDticiZndDs8YnIvPgomZ3Q7 IEJVR19SRVBPUlRfVVJMPSZhbXA7cXVvdDs8YSBocmVmPSJodHRwOi8vd3d3LnJhc3BiaWFuLm9y Zy9SYXNwYmlhbkJ1Z3MmYW1wO3F1b3QiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vd3d3LnJhc3Bi aWFuLm9yZy9SYXNwYmlhbkJ1Z3MmYW1wO3F1b3Q8L2E+OyZsdDsvZGl2Jmd0Ozxici8+CiZndDsg Jmx0Oy9kaXYmZ3Q7PGJyLz4KJmd0OyAmbHQ7L2RpdiZndDs8YnIvPgomZ3Q7ICZsdDsvZGl2Jmd0 OyZsdDsvZGl2Jmd0OyZsdDsvYm9keSZndDsmbHQ7L2h0bWwmZ3Q7PGJyLz4KPGJyLz4KJmd0OyBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzxici8+CiZndDsg dHBtMiBtYWlsaW5nIGxpc3Q8YnIvPgomZ3Q7IHRwbTJAbGlzdHMuMDEub3JnPGJyLz4KJmd0OyA8 YSBocmVmPSJodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3RwbTIiIHRhcmdl dD0iX2JsYW5rIj5odHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3RwbTI8L2E+ PGJyLz4KJm5ic3A7PC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cgo8ZGl2PiZuYnNwOzwvZGl2 PgoKPGRpdiBjbGFzcz0ic2lnbmF0dXJlIj4mbmJzcDs8L2Rpdj48L2Rpdj48L2JvZHk+PC9odG1s Pgo= --===============3604235483766155794==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============2260795995739197658==" MIME-Version: 1.0 From: Philip Tricca Subject: Re: [tpm2] Problem with Infineon Iridium SLB 9670 TPM2.0 Date: Tue, 20 Mar 2018 12:19:40 -0700 Message-ID: <20180320191940.GB2354@intel.com> In-Reply-To: trinity-07958541-2b38-44f7-9b7d-3b048705f126-1521490653093@3c-app-gmx-bs31 List-ID: To: tpm2@lists.01.org --===============2260795995739197658== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hey madprops, Thanks for the additional data. On Mon, Mar 19, 2018 at 09:17:33PM +0100, madprops(a)gmx.net wrote: > > =
>
Thank you, Philip! I meanwhile noticed the tools work when I stop tp= m2-abrmd and connect directly to the TPM: 
Well this debunks my theory that your issue was down in the dev tree :) >
 
> = >
pi(a)raspberrypi:~ $ sudo tpm2_pcrlist -T device:/dev/tpm0
> sha1 :
>   0  : 0000000000000000000000000000000000000000
>   1  : 0000000000000000000000000000000000000000
> [...]
> = >
 
> = >
Please find below the information you asked for. While tpm2-abrmd is= running (as root) I still get this:
> = >
 
> = >
pi(a)raspberrypi:~ $ tpm2_pcrlist
> ERROR: Failed to initialize tcti context: 0x1
Seeing this error while the tabrmd is running, but having the tools execute successfully with it stopped is a big hint. This indicates that the tools are probably trying to connect to the /dev/tpm0 device node directly instead of using the tabrmd. I've only see this happen if / when the tools are built in advance of building *and* installing the tabrmd. This happens because the tools build looks for the installed TCTI library for communicating with the daemon. If it doesn't find this library then the tools can't be linked against it and the build will fall back to using the device TCTI as the default. The `config.log` file in the tools build has the output from the `configure` script and this will tell you which TCTI modules are enabled / disabled. Another way to check this theory is to take one of the tools executables and use `readelf` to dump information about the libraries that it links to. If the tabrmd TCTI library isn't listed then something it up. Everything else below looks right. Regards, Philip >
 
> = >
pi(a)raspberrypi:~ $ export TPM2TOOLS_TCTI_NAME=3Dtabrmd
> pi(a)raspberrypi:~ $ tpm2_pcrlist
> ERROR: Unknown tcti, got: "tabrmd"
> = >
 
> = >
=3D=3D=3D=3D=3D=3D=3D=3D Versions:
> = >
tpm2-abrmd: 1.3.1_rc0
> tpm2-tools: 3.0.3
> tpm2-tss: 1.4.0
> = >
 
> = >
=3D=3D=3D=3D=3D=3D=3D=3D /dev/tpm0
> = >
pi(a)raspberrypi:~ $ ls -la /dev/tpm0
> crw------- 1 root root 10, 224 Mar 17 21:35 /dev/tpm0
> = >
=3D=3D=3D=3D=3D=3D=3D=3D tpm2-abrmd LOG
> = >
root(a)raspberrypi:/home/pi# tpm2-abrmd
> ** INFO: tabrmd startup
> ** (process:1852): DEBUG: tcti_factory_set_property
> ** (process:1852): DEBUG:   PROP_TCTI_TYPE
> ** (process:1852): DEBUG:   value: 0x1
> ** (process:1852): DEBUG: tcti_factory_set_property
> ** (process:1852): DEBUG: TctiFactory set device_name: /dev/tpm0
> ** (process:1852): DEBUG: tcti_factory_set_property
> ** (process:1852): DEBUG: TctiFactory set socket_address: 127.0.0.1
> ** (process:1852): DEBUG: tcti_factory_set_property
> ** (process:1852): DEBUG: TctiFactory set socket_port: 2321
> ** INFO: logging to stdout
> ** (tpm2-abrmd:1852): DEBUG: tcti_factory_get_tcti
> ** (tpm2-abrmd:1852): DEBUG: TctiDevice set filename: /dev/tpm0
> ** INFO: entering g_main_loop
> ** INFO: init_thread_func start
> ** (tpm2-abrmd:1852): DEBUG: random_class_init
> ** (tpm2-abrmd:1852): DEBUG: opening entropy source: /dev/urandom
> ** (tpm2-abrmd:1852): DEBUG: reading from entropy source: /dev/urandom
> ** (tpm2-abrmd:1852): DEBUG: seeding rand with -1263045295
> ** (tpm2-abrmd:1852): DEBUG: connection_manager_set_property: 0x15c5ef0 > ** (tpm2-abrmd:1852): DEBUG:   max_connections: 0x1b
> ** (tpm2-abrmd:1852): DEBUG: ConnectionManager: 0x15c5ef0
> ** (tpm2-abrmd:1852): DEBUG: IpcFrontendDbus set bus_name: com.intel.tss2= .Tabrmd
> ** (tpm2-abrmd:1852): DEBUG: ipc_frontend_connect: 0x75b01a08
> ** (tpm2-abrmd:1852): DEBUG: tcti_initialize: 0x15c5200
> ** (tpm2-abrmd:1852): DEBUG: sapi_context_init w/ Tcti: 0x15c5200
> ** (tpm2-abrmd:1852): DEBUG: tcti_peek_context: 0x15c5200
> ** (tpm2-abrmd:1852): DEBUG: Allocating 0x1040 bytes for SAPI context
> ** (tpm2-abrmd:1852): DEBUG: access_broker_set_property: 0x75b0b720
> ** (tpm2-abrmd:1852): DEBUG:   sapi_context: 0x75b0a690
> ** (tpm2-abrmd:1852): DEBUG: access_broker_set_property: 0x75b0b720
> ** (tpm2-abrmd:1852): DEBUG:   tcti: 0x15c5200
> ** (tpm2-abrmd:1852): DEBUG: created AccessBroker: 0x75b0b720
> ** (tpm2-abrmd:1852): DEBUG: access_broker_init_tpm: 0x75b0b720
> ** INFO: on_bus_acquired: com.intel.tss2.Tabrmd
> ** INFO: on_name_acquired: com.intel.tss2.Tabrmd
> ** (tpm2-abrmd:1852): DEBUG: Got proxy object for DBus daemon.
> ** (tpm2-abrmd:1852): DEBUG: access_broker_get_tpm_properties_fixed
> ** (tpm2-abrmd:1852): DEBUG: command_attrs_class_init
> ** (tpm2-abrmd:1852): DEBUG: created CommandAttrs: 0x75b01260
> ** (tpm2-abrmd:1852): DEBUG: GetCapabilty for 0x500 commands
> ** (tpm2-abrmd:1852): DEBUG: got attributes for 0x5a commands
> ** (tpm2-abrmd:1852): DEBUG: command_source_class_init
> ** (tpm2-abrmd:1852): DEBUG: command_source_set_properties: 0x75b02c50
> ** (tpm2-abrmd:1852): DEBUG:   command_attrs: 0x75b01260
> ** (tpm2-abrmd:1852): DEBUG: command_source_set_properties: 0x75b02c50
> ** (tpm2-abrmd:1852): DEBUG: created command source: 0x75b02c50
> ** (tpm2-abrmd:1852): DEBUG: session_list_new with max-per-connection: 0x= 4
> ** (tpm2-abrmd:1852): DEBUG: session_list_init
> ** (tpm2-abrmd:1852): DEBUG: session_list_set_property: 0x15c5fb0 max-per= -connection: 4
> ** (tpm2-abrmd:1852): DEBUG: resource_manager_set_property: 0x75b02ca0
> ** (tpm2-abrmd:1852): DEBUG:   in_queue: 0x75b00f90
> ** (tpm2-abrmd:1852): DEBUG: resource_manager_set_property: 0x75b02ca0
> ** (tpm2-abrmd:1852): DEBUG:   access_broker: 0x75b0b720
> ** (tpm2-abrmd:1852): DEBUG: resource_manager_set_property: 0x75b02ca0
> ** (tpm2-abrmd:1852): DEBUG: created ResourceManager: 0x75b02ca0
> ** (tpm2-abrmd:1852): DEBUG: response_sink_set_property
> ** (tpm2-abrmd:1852): DEBUG:   setting PROP_IN_QUEUE
> ** (tpm2-abrmd:1852): DEBUG: created response source: 0x75b012a8
> ** (tpm2-abrmd:1852): DEBUG: source_add_sink
> ** (tpm2-abrmd:1852): DEBUG: command_soruce_add_sink: CommandSource: 0x75= b02c50 , Sink: 0x75b02ca0
> ** (tpm2-abrmd:1852): DEBUG: command_source_set_properties: 0x75b02c50
> ** (tpm2-abrmd:1852): DEBUG:   sink: 0x75b02ca0
> ** (tpm2-abrmd:1852): DEBUG: source_add_sink
> ** (tpm2-abrmd:1852): DEBUG: resource_manager_add_sink: ResourceManager: = 0x75b02ca0, Sink: 0x75b012a8
> ** (tpm2-abrmd:1852): DEBUG: resource_manager_set_property: 0x75b02ca0
> ** (tpm2-abrmd:1852): DEBUG:   sink: 0x75b012a8
> ** INFO: init_thread_func done
> ** (tpm2-abrmd:1852): DEBUG: resource_manager_thread start
> ** (tpm2-abrmd:1852): DEBUG: response_sink_thread blocking on input queue= : 0x75b00e50
> ** (tpm2-abrmd:1852): DEBUG: message_queue_dequeue 0x75b00e50
> ** (tpm2-abrmd:1852): DEBUG: message_queue_dequeue 0x75b00f90
> >
 
> = >
=3D=3D=3D=3D=3D=3D=3D=3D MISC
> = >
pi(a)raspberrypi:~/TPM/tpm2-tss $ cat /etc/dbus-1/system.d/tpm2-abrm= d.conf
> <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configu= ration 1.0//EN"
>  "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd&q= uot;>
> <busconfig>
>   <!-- ../system.conf have denied everything, so we just punch so= me holes -->
>   <policy user=3D"tss">
>     <allow own=3D"com.intel.tss2.Tabrmd"/>=
>   </policy>
>   <policy user=3D"root">
>     <allow own=3D"com.intel.tss2.Tabrmd"/>=
>   </policy>
>   <policy context=3D"default">
>     <allow send_destination=3D"com.intel.tss2.Tabr= md"/>
>     <allow receive_sender=3D"com.intel.tss2.Tabrmd= "/>
>   </policy>
> </busconfig>
> = >
 
> = >
 
> = >
  >
>
Gesendet: Montag, 19. M=C3= =A4rz 2018 um 06:07 Uhr
> Von: "Philip Tricca" <philip.b.tricca(a)intel.co= m>
> An: madprops(a)gmx.net
> Cc: tpm2(a)lists.01.org
> Betreff: Re: [tpm2] Problem with Infineon Iridium SLB 9670 TP= M2.0
> = >
Hey there madprops,
>
> On Sun, Mar 18, 2018 at 02:04:15PM +0100, madprops(a)gmx.net wrote: > > <html><head>
> > <meta http-equiv=3D"Content-Type" content=3D"text/= html; charset=3Dutf-8"></head><body><div style=3D&qu= ot;font-family: Verdana;font-size: 12.0px;"><div>
> > <div class=3D"signature">
> > <div class=3D"signature">
> > <div>I'm trying to get an &quot;Infineon Iridium SLB 9670 = TPM 2.0 SPI Board&quot; run on my Raspberry Pi 3. I have downloaded, co= mpiled and installed the latest versions of tpm2-abrmd, tpm2-tss and tpm2-t= ools. I started tpm2-abrmd as root, hoping that I can then interact with th= e Infineon TPM using tpm2-tools. &quot;tpm2_pcrlist&quot; and all o= ther tpm2_* commands, however, return error &quot;ERROR: Failed to init= ialize tcti context: 0x1&quot;.</div>
> >
>
> Can you please provide some more info about your configuration?
> Specifically:
> - the version of the TSS2 libraries you're using
> - the version of the tabrmd you're using
> - the configuration options you're passing to each
>
> A log file from the tabrmd with logging dialed all the way up would be
> helpful. Since tabrmd uses glib and it's logging infrastructure you dial<= br> > up the debug output all the way by setting `G_MESSAGES_DEBUG=3Dall` in th= e
> daemon's environment.
>
> > <div>&nbsp;</div>
> >
> > <div>Any ideas? Thanks!</div>
>
> The most common issue we've seen people run into when installing from
> source is that the default value for the `prefix` and some other
> installation directories aren't what most expect.
>
> Still, if you're running the daemon as root you shouldn't have any
> issues w/r to permissions on the /dev/tpm0 device node so I wonder if
> this node even exists on your platform. You may want to check to see if > `/dev/tpm0` is even present on your system. You're on an ARM platform
> which means the kernel will only be aware of the TPM2 device you've
> added if you configure the device tree properly.
>
> Regards,
> Philip
>
> > <div>pi(a)raspberrypi:~/TPM/tpm2-abrmd $ uname -a<br>
> > Linux raspberrypi 4.4.50-v7&#43; #1 SMP Wed Mar 14 14:01:00 PDT = 2018 armv7l GNU/Linux (&lt;=3D=3D includes patch provided by Infineon)&= lt;/div>
> >
> > <div>&nbsp;</div>
> >
> > <div>pi(a)raspberrypi:~/TPM/tpm2-abrmd $ dmesg | grep tpm<b= r>
> > [&nbsp;&nbsp;&nbsp; 3.700384] tpm_spi_tis spi0.1: 2.0 TP= M (device-id 0xB6BC, rev-id 16)</div>
> >
> > <div>&nbsp;</div>
> >
> > <div>pi(a)raspberrypi:/etc $ cat /etc/os-release<br>
> > PRETTY_NAME=3D&quot;Raspbian GNU/Linux 9 (stretch)&quot;<= br>
> > NAME=3D&quot;Raspbian GNU/Linux&quot;<br>
> > VERSION_ID=3D&quot;9&quot;<br>
> > VERSION=3D&quot;9 (stretch)&quot;<br>
> > ID=3Draspbian<br>
> > ID_LIKE=3Ddebian<br>
> > HOME_URL=3D&quot;http://www.raspbian.org/&quot;<br>
> > SUPPORT_URL=3D&quot;http://www.raspbian.org/RaspbianForums&am= p;quot;<br>
> > BUG_REPORT_URL=3D&quot;http://www.raspbian.org/RaspbianBugs&= ;quot;</div>
> > </div>
> > </div>
> > </div></div></body></html>
>
> > _______________________________________________
> > tpm2 mailing list
> > tpm2(a)lists.01.org
> > https://lists.01.org/mailman/listinfo/tpm2
>  
>
>
>
> = >
 
> = >
 
--===============2260795995739197658==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============2192389622502624004==" MIME-Version: 1.0 From: Roberts, William C Subject: Re: [tpm2] Problem with Infineon Iridium SLB 9670 TPM2.0 Date: Fri, 23 Mar 2018 19:58:40 +0000 Message-ID: <476DC76E7D1DF2438D32BFADF679FC563FF07CF2@ORSMSX101.amr.corp.intel.com> In-Reply-To: 20180320191940.GB2354@intel.com List-ID: To: tpm2@lists.01.org --===============2192389622502624004== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable > -----Original Message----- > From: tpm2 [mailto:tpm2-bounces(a)lists.01.org] On Behalf Of Philip Tricca > Sent: Tuesday, March 20, 2018 12:20 PM > To: madprops(a)gmx.net > Cc: tpm2(a)lists.01.org > Subject: Re: [tpm2] Problem with Infineon Iridium SLB 9670 TPM2.0 > = > Hey madprops, > = > Thanks for the additional data. > = > On Mon, Mar 19, 2018 at 09:17:33PM +0100, madprops(a)gmx.net wrote: > > > > > charset=3Dutf-8">
> Verdana;font-size: 12.0px;">
Thank you, Philip! I meanwhile > > noticed the tools work when I stop tpm2-abrmd and connect directly to > > the TPM: 
> = > Well this debunks my theory that your issue was down in the dev tree :) > = > >
 
> > > >
pi(a)raspberrypi:~ $ sudo tpm2_pcrlist -T device:/dev/tpm0
> > sha1 :
> >   0  : 0000000000000000000000000000000000000000
> >   1  : 0000000000000000000000000000000000000000
> > [...]
> > > >
 
> > > >
Please find below the information you asked for. While tpm2-abrmd > > is running (as root) I still get this:
> > > >
 
> > > >
pi(a)raspberrypi:~ $ tpm2_pcrlist
> > ERROR: Failed to initialize tcti context: 0x1
> = > Seeing this error while the tabrmd is running, but having the tools execu= te > successfully with it stopped is a big hint. This indicates that the tools= are probably > trying to connect to the /dev/tpm0 device node directly instead of using = the > tabrmd. > = > I've only see this happen if / when the tools are built in advance of bui= lding *and* > installing the tabrmd. This happens because the tools build looks for the= installed > TCTI library for communicating with the daemon. If it doesn't find this l= ibrary then > the tools can't be linked against it and the build will fall back to usin= g the device > TCTI as the default. The `config.log` file in the tools build has the out= put from the > `configure` script and this will tell you which TCTI modules are enabled = / disabled. > = > Another way to check this theory is to take one of the tools executables = and use > `readelf` to dump information about the libraries that it links to. If th= e tabrmd > TCTI library isn't listed then something it up. You can also specify -v to your tool commands option list to see what tcti'= s it supports. The first tcti in the string is the default IIC. I should have had an addit= ional field for default. On master, we switched to dynamic TCTIs with abrmd always being the default. I think the 4.0 release, I'm going to add a field to explicitly say what th= e default Is. > = > Everything else below looks right. > = > Regards, > Philip > = > >
 
> > > >
pi(a)raspberrypi:~ $ export TPM2TOOLS_TCTI_NAME=3Dtabrmd
> > pi(a)raspberrypi:~ $ tpm2_pcrlist
> > ERROR: Unknown tcti, got: "tabrmd"
> > > >
 
> > > >
=3D=3D=3D=3D=3D=3D=3D=3D Versions:
> > > >
tpm2-abrmd: 1.3.1_rc0
> > tpm2-tools: 3.0.3
> > tpm2-tss: 1.4.0
> > > >
 
> > > >
=3D=3D=3D=3D=3D=3D=3D=3D /dev/tpm0
> > > >
pi(a)raspberrypi:~ $ ls -la /dev/tpm0
> > crw------- 1 root root 10, 224 Mar 17 21:35 /dev/tpm0
> > > >
=3D=3D=3D=3D=3D=3D=3D=3D tpm2-abrmd LOG
> > > >
root(a)raspberrypi:/home/pi# tpm2-abrmd
> > ** INFO: tabrmd startup
> > ** (process:1852): DEBUG: tcti_factory_set_property
> > ** (process:1852): DEBUG:   PROP_TCTI_TYPE
> > ** (process:1852): DEBUG:   value: 0x1
> > ** (process:1852): DEBUG: tcti_factory_set_property
> > ** (process:1852): DEBUG: TctiFactory set device_name: /dev/tpm0
> > ** (process:1852): DEBUG: tcti_factory_set_property
> > ** (process:1852): DEBUG: TctiFactory set socket_address: > > 127.0.0.1
> > ** (process:1852): DEBUG: tcti_factory_set_property
> > ** (process:1852): DEBUG: TctiFactory set socket_port: 2321
> > ** INFO: logging to stdout
> > ** (tpm2-abrmd:1852): DEBUG: tcti_factory_get_tcti
> > ** (tpm2-abrmd:1852): DEBUG: TctiDevice set filename: /dev/tpm0
> > ** INFO: entering g_main_loop
> > ** INFO: init_thread_func start
> > ** (tpm2-abrmd:1852): DEBUG: random_class_init
> > ** (tpm2-abrmd:1852): DEBUG: opening entropy source: /dev/urandom
> > ** (tpm2-abrmd:1852): DEBUG: reading from entropy source: > > /dev/urandom
> > ** (tpm2-abrmd:1852): DEBUG: seeding rand with -1263045295
> > ** (tpm2-abrmd:1852): DEBUG: connection_manager_set_property: > > 0x15c5ef0
> > ** (tpm2-abrmd:1852): DEBUG:   max_connections: 0x1b
> > ** (tpm2-abrmd:1852): DEBUG: ConnectionManager: 0x15c5ef0
> > ** (tpm2-abrmd:1852): DEBUG: IpcFrontendDbus set bus_name: > > com.intel.tss2.Tabrmd
> > ** (tpm2-abrmd:1852): DEBUG: ipc_frontend_connect: 0x75b01a08
> > ** (tpm2-abrmd:1852): DEBUG: tcti_initialize: 0x15c5200
> > ** (tpm2-abrmd:1852): DEBUG: sapi_context_init w/ Tcti: 0x15c5200
> > ** (tpm2-abrmd:1852): DEBUG: tcti_peek_context: 0x15c5200
> > ** (tpm2-abrmd:1852): DEBUG: Allocating 0x1040 bytes for SAPI > > context
> > ** (tpm2-abrmd:1852): DEBUG: access_broker_set_property: > > 0x75b0b720
> > ** (tpm2-abrmd:1852): DEBUG:   sapi_context: 0x75b0a690
> > ** (tpm2-abrmd:1852): DEBUG: access_broker_set_property: > > 0x75b0b720
> > ** (tpm2-abrmd:1852): DEBUG:   tcti: 0x15c5200
> > ** (tpm2-abrmd:1852): DEBUG: created AccessBroker: 0x75b0b720
> > ** (tpm2-abrmd:1852): DEBUG: access_broker_init_tpm: 0x75b0b720
> > ** INFO: on_bus_acquired: com.intel.tss2.Tabrmd
> > ** INFO: on_name_acquired: com.intel.tss2.Tabrmd
> > ** (tpm2-abrmd:1852): DEBUG: Got proxy object for DBus daemon.
> > ** (tpm2-abrmd:1852): DEBUG: > > access_broker_get_tpm_properties_fixed
> > ** (tpm2-abrmd:1852): DEBUG: command_attrs_class_init
> > ** (tpm2-abrmd:1852): DEBUG: created CommandAttrs: 0x75b01260
> > ** (tpm2-abrmd:1852): DEBUG: GetCapabilty for 0x500 commands
> > ** (tpm2-abrmd:1852): DEBUG: got attributes for 0x5a commands
> > ** (tpm2-abrmd:1852): DEBUG: command_source_class_init
> > ** (tpm2-abrmd:1852): DEBUG: command_source_set_properties: > > 0x75b02c50
> > ** (tpm2-abrmd:1852): DEBUG:   command_attrs: > 0x75b01260
> > ** (tpm2-abrmd:1852): DEBUG: command_source_set_properties: > > 0x75b02c50
> > ** (tpm2-abrmd:1852): DEBUG: created command source: 0x75b02c50
> > ** (tpm2-abrmd:1852): DEBUG: session_list_new with max-per-connection: > > 0x4
> > ** (tpm2-abrmd:1852): DEBUG: session_list_init
> > ** (tpm2-abrmd:1852): DEBUG: session_list_set_property: 0x15c5fb0 > > max-per-connection: 4
> > ** (tpm2-abrmd:1852): DEBUG: resource_manager_set_property: > > 0x75b02ca0
> > ** (tpm2-abrmd:1852): DEBUG:   in_queue: 0x75b00f90
> > ** (tpm2-abrmd:1852): DEBUG: resource_manager_set_property: > > 0x75b02ca0
> > ** (tpm2-abrmd:1852): DEBUG:   access_broker: 0x75b0b720
> > ** (tpm2-abrmd:1852): DEBUG: resource_manager_set_property: > > 0x75b02ca0
> > ** (tpm2-abrmd:1852): DEBUG: created ResourceManager: 0x75b02ca0
> > ** (tpm2-abrmd:1852): DEBUG: response_sink_set_property
> > ** (tpm2-abrmd:1852): DEBUG:   setting PROP_IN_QUEUE
> > ** (tpm2-abrmd:1852): DEBUG: created response source: 0x75b012a8
> > ** (tpm2-abrmd:1852): DEBUG: source_add_sink
> > ** (tpm2-abrmd:1852): DEBUG: command_soruce_add_sink: CommandSource: > > 0x75b02c50 , Sink: 0x75b02ca0
> > ** (tpm2-abrmd:1852): DEBUG: command_source_set_properties: > > 0x75b02c50
> > ** (tpm2-abrmd:1852): DEBUG:   sink: 0x75b02ca0
> > ** (tpm2-abrmd:1852): DEBUG: source_add_sink
> > ** (tpm2-abrmd:1852): DEBUG: resource_manager_add_sink: > > ResourceManager: 0x75b02ca0, Sink: 0x75b012a8
> > ** (tpm2-abrmd:1852): DEBUG: resource_manager_set_property: > > 0x75b02ca0
> > ** (tpm2-abrmd:1852): DEBUG:   sink: 0x75b012a8
> > ** INFO: init_thread_func done
> > ** (tpm2-abrmd:1852): DEBUG: resource_manager_thread start
> > ** (tpm2-abrmd:1852): DEBUG: response_sink_thread blocking on input > > queue: 0x75b00e50
> > ** (tpm2-abrmd:1852): DEBUG: message_queue_dequeue 0x75b00e50
> > ** (tpm2-abrmd:1852): DEBUG: message_queue_dequeue 0x75b00f90
> > > >
 
> > > >
=3D=3D=3D=3D=3D=3D=3D=3D MISC
> > > >
pi(a)raspberrypi:~/TPM/tpm2-tss $ cat > > /etc/dbus-1/system.d/tpm2-abrmd.conf
> > <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus > > Configuration 1.0//EN"
> >  "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dt > > d">
> > <busconfig>
> >   <!-- ../system.conf have denied everything, so we just punch > > some holes -->
  <policy user=3D"tss">
> >     <allow > > own=3D"com.intel.tss2.Tabrmd"/>
> >   </policy>
> >   <policy user=3D"root">
    > > <allow own=3D"com.intel.tss2.Tabrmd"/>
> >   </policy>
> >   <policy context=3D"default">
> >     <allow > > send_destination=3D"com.intel.tss2.Tabrmd"/>
> >     <allow > > receive_sender=3D"com.intel.tss2.Tabrmd"/>
> >   </policy>
> > </busconfig>
> > > >
 
> > > >
 
> > > >
  > >
> 10px 10px; border-left:2px solid #C3D9E5; word-wrap: break-word; > > -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"> > >
Gesendet: Montag, 19. M= =C3=A4rz > > 2018 um 06:07 Uhr
Von: "Philip Tricca" > > <philip.b.tricca(a)intel.com>
> > An: madprops(a)gmx.net
> > Cc: tpm2(a)lists.01.org
> > Betreff: Re: [tpm2] Problem with Infineon Iridium SLB 9670 > > TPM2.0
> > > >
Hey there madprops,

On Sun, Mar > > 18, 2018 at 02:04:15PM +0100, madprops(a)gmx.net wrote:
> > > <html><head>
> <meta > > http-equiv=3D"Content-Type" content=3D"text/html; > > charset=3Dutf-8"></head><body><div > > style=3D"font-family: Verdana;font-size: > > 12.0px;"><div>
> <div > > class=3D"signature">
> > > <div class=3D"signature">
> > > <div>I'm trying to get an &quot;Infineon Iridium SLB > > 9670 TPM 2.0 SPI Board&quot; run on my Raspberry Pi 3. I have > > downloaded, compiled and installed the latest versions of tpm2-abrmd, > > tpm2-tss and tpm2-tools. I started tpm2-abrmd as root, hoping that I > > can then interact with the Infineon TPM using tpm2-tools. > > &quot;tpm2_pcrlist&quot; and all other tpm2_* commands, > > however, return error &quot;ERROR: Failed to initialize tcti > > context: 0x1&quot;.</div>
>

Can you please > > provide some more info about your configuration?
Specifically:
> > - the version of the TSS2 libraries you're using
> > - the version of the tabrmd you're using
> > - the configuration options you're passing to each

A log file > > from the tabrmd with logging dialed all the way up would be
> > helpful. Since tabrmd uses glib and it's logging infrastructure you > > dial
up the debug output all the way by setting > > `G_MESSAGES_DEBUG=3Dall` in the
daemon's environment.

> > > <div>&nbsp;</div>
> > >
> > > <div>Any ideas? Thanks!</div>

The most > > common issue we've seen people run into when installing from
> > source is that the default value for the `prefix` and some other
> > installation directories aren't what most expect.

Still, if > > you're running the daemon as root you shouldn't have any
issues > > w/r to permissions on the /dev/tpm0 device node so I wonder if
> > this node even exists on your platform. You may want to check to see > > if
`/dev/tpm0` is even present on your system. You're on an ARM > > platform
which means the kernel will only be aware of the TPM2 > > device you've
added if you configure the device tree properly.
> >
Regards,
Philip

> > > <div>pi(a)raspberrypi:~/TPM/tpm2-abrmd $ uname -a<br>
> > > Linux raspberrypi 4.4.50-v7&#43; #1 SMP Wed Mar 14 14:01:00 > > PDT 2018 armv7l GNU/Linux (&lt;=3D=3D includes patch provided by > > Infineon)</div>
>
> > > <div>&nbsp;</div>
> > >
> > > <div>pi(a)raspberrypi:~/TPM/tpm2-abrmd $ dmesg | grep > > tpm<br>
> [&nbsp;&nbsp;&nbsp; 3.700384] > > tpm_spi_tis spi0.1: 2.0 TPM (device-id 0xB6BC, rev-id > > 16)</div>
>
> > > <div>&nbsp;</div>
> > >
> > > <div>pi(a)raspberrypi:/etc $ cat > > /etc/os-release<br>
> PRETTY_NAME=3D&quot;Raspbian > > GNU/Linux 9 (stretch)&quot;<br>
> > > NAME=3D&quot;Raspbian GNU/Linux&quot;<br>
> > > VERSION_ID=3D&quot;9&quot;<br>
> > > VERSION=3D&quot;9 (stretch)&quot;<br>
> > > ID=3Draspbian<br>
> ID_LIKE=3Ddebian<br>
> > > HOME_URL=3D&quot; > target=3D"_blank">http://www.raspbian.org/&quot;<br>
> > > SUPPORT_URL=3D&quot; > href=3D"http://www.raspbian.org/RaspbianForums&quot" > > target=3D"_blank">http://www.raspbian.org/RaspbianForums&quot;&l > > t;br>
> BUG_REPORT_URL=3D&quot; > href=3D"http://www.raspbian.org/RaspbianBugs&quot" > > target=3D"_blank">http://www.raspbian.org/RaspbianBugs&quot;< > > /div>
> > > </div>
> > > </div>
> > > </div></div></body></html>
> >
> > > _______________________________________________
> > > tpm2 mailing list
> > > tpm2(a)lists.01.org
> > > > target=3D"_blank">https://lists.01.org/mailman/listinfo/tpm2
> >  
> >
> >
> >
> > > >
 
> > > >
 
> _______________________________________________ > tpm2 mailing list > tpm2(a)lists.01.org > https://lists.01.org/mailman/listinfo/tpm2 --===============2192389622502624004==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============1031685279574950424==" MIME-Version: 1.0 From: madprops at gmx.net Subject: Re: [tpm2] Problem with Infineon Iridium SLB 9670 TPM2.0 Date: Fri, 23 Mar 2018 21:11:54 +0100 Message-ID: In-Reply-To: 476DC76E7D1DF2438D32BFADF679FC563FF07CF2@ORSMSX101.amr.corp.intel.com List-ID: To: tpm2@lists.01.org --===============1031685279574950424== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable --===============1031685279574950424== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBWZXJkYW5h O2ZvbnQtc2l6ZTogMTIuMHB4OyI+PGRpdj4KPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjog dHJhbnNwYXJlbnQ7IGJvdHRvbTogYXV0bzsgY29sb3I6IHJnYigwLCAwLCAwKTsgY3Vyc29yOiB0 ZXh0OyBkaXJlY3Rpb246IGx0cjsgZm9udC1mYW1pbHk6IFZlcmRhbmE7IGZvbnQtc2l6ZTogMTJw eDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQ6IG5vcm1hbDsgZm9udC13ZWlnaHQ6 IDQwMDsgbGVmdDogYXV0bzsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgbWFyZ2luLWJvdHRvbTog MHB4OyBtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLXRvcDogMHB4 OyBvcnBoYW5zOiAyOyBvdmVyZmxvdzogdmlzaWJsZTsgcGFkZGluZy1ib3R0b206IDBweDsgcGFk ZGluZy1sZWZ0OiAwcHg7IHBhZGRpbmctcmlnaHQ6IDBweDsgcGFkZGluZy10b3A6IDBweDsgcG9z aXRpb246IHN0YXRpYzsgcmlnaHQ6IGF1dG87IHRleHQtYWxpZ246IGxlZnQ7IHRleHQtZGVjb3Jh dGlvbjogbm9uZTsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHRvcDog YXV0bzsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyB3aGl0ZS1zcGFjZTogbm9ybWFs OyB3b3JkLXNwYWNpbmc6IDBweDsiPlRoYW5rcyBmb3IgdGhlIGluZm9ybWF0aW9uLCBXaWxsaWFt IGFuZCBQaGlsaXAhIFNvIHllcywgSSBpbnN0YWxsZWQgdGhlIHRvb2xzIGJlZm9yZSBJIGluc3Rh bGxlZCB0aGUmbmJzcDs8c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7 IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGRpc3BsYXk6IGlubGluZTsgZmxvYXQ6IG5vbmU7IGZvbnQt ZmFtaWx5OiBWZXJkYW5hOyBmb250LXNpemU6IDEycHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9u dC12YXJpYW50OiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3Jt YWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IGxlZnQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsg dGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IC13ZWJraXQtdGV4dC1zdHJv a2Utd2lkdGg6IDBweDsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd29yZC1zcGFjaW5nOiAwcHg7Ij50 YWJybWQuIEkgZm91bmQgY29ycmVzcG9uc2luZyBtZXNzYWdlcyBpbiB0aGUgY29uZmlnLmxvZzo8 L3NwYW4+PC9kaXY+Cgo8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsg Ym90dG9tOiBhdXRvOyBjb2xvcjogcmdiKDAsIDAsIDApOyBjdXJzb3I6IHRleHQ7IGRpcmVjdGlv bjogbHRyOyBmb250LWZhbWlseTogVmVyZGFuYTsgZm9udC1zaXplOiAxMnB4OyBmb250LXN0eWxl OiBub3JtYWw7IGZvbnQtdmFyaWFudDogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZWZ0OiBh dXRvOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1s ZWZ0OiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tdG9wOiAwcHg7IG9ycGhhbnM6IDI7 IG92ZXJmbG93OiB2aXNpYmxlOyBwYWRkaW5nLWJvdHRvbTogMHB4OyBwYWRkaW5nLWxlZnQ6IDBw eDsgcGFkZGluZy1yaWdodDogMHB4OyBwYWRkaW5nLXRvcDogMHB4OyBwb3NpdGlvbjogc3RhdGlj OyByaWdodDogYXV0bzsgdGV4dC1hbGlnbjogbGVmdDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB0 ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgdG9wOiBhdXRvOyAtd2Via2l0 LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3BhY2lu ZzogMHB4OyI+Jm5ic3A7PC9kaXY+Cgo8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiB0cmFu c3BhcmVudDsgYm90dG9tOiBhdXRvOyBjb2xvcjogcmdiKDAsIDAsIDApOyBjdXJzb3I6IHRleHQ7 IGRpcmVjdGlvbjogbHRyOyBmb250LWZhbWlseTogVmVyZGFuYTsgZm9udC1zaXplOiAxMnB4OyBm b250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudDogbm9ybWFsOyBmb250LXdlaWdodDogNDAw OyBsZWZ0OiBhdXRvOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBtYXJnaW4tYm90dG9tOiAwcHg7 IG1hcmdpbi1sZWZ0OiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tdG9wOiAwcHg7IG9y cGhhbnM6IDI7IG92ZXJmbG93OiB2aXNpYmxlOyBwYWRkaW5nLWJvdHRvbTogMHB4OyBwYWRkaW5n LWxlZnQ6IDBweDsgcGFkZGluZy1yaWdodDogMHB4OyBwYWRkaW5nLXRvcDogMHB4OyBwb3NpdGlv bjogc3RhdGljOyByaWdodDogYXV0bzsgdGV4dC1hbGlnbjogbGVmdDsgdGV4dC1kZWNvcmF0aW9u OiBub25lOyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgdG9wOiBhdXRv OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdv cmQtc3BhY2luZzogMHB4OyI+CjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFy ZW50OyBib3R0b206IGF1dG87IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGN1cnNvcjogdGV4dDsgZGly ZWN0aW9uOiBsdHI7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyBmb250LXNpemU6IDEycHg7IGxlZnQ6 IGF1dG87IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgbWFyZ2luLXJpZ2h0 OiAwcHg7IG1hcmdpbi10b3A6IDBweDsgb3ZlcmZsb3c6IHZpc2libGU7IHBhZGRpbmctYm90dG9t OiAwcHg7IHBhZGRpbmctbGVmdDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7IHBhZGRpbmctdG9w OiAwcHg7IHBvc2l0aW9uOiBzdGF0aWM7IHJpZ2h0OiBhdXRvOyB0b3A6IGF1dG87Ij5bLi4uXTwv ZGl2PgoKPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IGJvdHRvbTog YXV0bzsgY29sb3I6IHJnYigwLCAwLCAwKTsgY3Vyc29yOiB0ZXh0OyBkaXJlY3Rpb246IGx0cjsg Zm9udC1mYW1pbHk6IFZlcmRhbmE7IGZvbnQtc2l6ZTogMTJweDsgbGVmdDogYXV0bzsgbWFyZ2lu LWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2lu LXRvcDogMHB4OyBvdmVyZmxvdzogdmlzaWJsZTsgcGFkZGluZy1ib3R0b206IDBweDsgcGFkZGlu Zy1sZWZ0OiAwcHg7IHBhZGRpbmctcmlnaHQ6IDBweDsgcGFkZGluZy10b3A6IDBweDsgcG9zaXRp b246IHN0YXRpYzsgcmlnaHQ6IGF1dG87IHRvcDogYXV0bzsiPk5vIHBhY2thZ2UgJiMzOTt0Y3Rp LXRhYnJtZCYjMzk7IGZvdW5kPGJyIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVu dDsgYm90dG9tOiBhdXRvOyBjb2xvcjogcmdiKDAsIDAsIDApOyBjdXJzb3I6IHRleHQ7IGRpcmVj dGlvbjogbHRyOyBmb250LWZhbWlseTogVmVyZGFuYTsgZm9udC1zaXplOiAxMnB4OyBsZWZ0OiBh dXRvOyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7IG1hcmdpbi1yaWdodDog MHB4OyBtYXJnaW4tdG9wOiAwcHg7IG92ZXJmbG93OiB2aXNpYmxlOyBwYWRkaW5nLWJvdHRvbTog MHB4OyBwYWRkaW5nLWxlZnQ6IDBweDsgcGFkZGluZy1yaWdodDogMHB4OyBwYWRkaW5nLXRvcDog MHB4OyBwb3NpdGlvbjogc3RhdGljOyByaWdodDogYXV0bzsgdG9wOiBhdXRvOyIvPgpjb25maWd1 cmU6MTI4OTI6ICYjMzY7PyA9IDE8YnIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFy ZW50OyBib3R0b206IGF1dG87IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGN1cnNvcjogdGV4dDsgZGly ZWN0aW9uOiBsdHI7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyBmb250LXNpemU6IDEycHg7IGxlZnQ6 IGF1dG87IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgbWFyZ2luLXJpZ2h0 OiAwcHg7IG1hcmdpbi10b3A6IDBweDsgb3ZlcmZsb3c6IHZpc2libGU7IHBhZGRpbmctYm90dG9t OiAwcHg7IHBhZGRpbmctbGVmdDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7IHBhZGRpbmctdG9w OiAwcHg7IHBvc2l0aW9uOiBzdGF0aWM7IHJpZ2h0OiBhdXRvOyB0b3A6IGF1dG87Ii8+CmNvbmZp Z3VyZToxMjkwNjogJiMzNjtQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICZxdW90 O3RjdGktdGFicm1kJnF1b3Q7PGJyIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVu dDsgYm90dG9tOiBhdXRvOyBjb2xvcjogcmdiKDAsIDAsIDApOyBjdXJzb3I6IHRleHQ7IGRpcmVj dGlvbjogbHRyOyBmb250LWZhbWlseTogVmVyZGFuYTsgZm9udC1zaXplOiAxMnB4OyBsZWZ0OiBh dXRvOyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7IG1hcmdpbi1yaWdodDog MHB4OyBtYXJnaW4tdG9wOiAwcHg7IG92ZXJmbG93OiB2aXNpYmxlOyBwYWRkaW5nLWJvdHRvbTog MHB4OyBwYWRkaW5nLWxlZnQ6IDBweDsgcGFkZGluZy1yaWdodDogMHB4OyBwYWRkaW5nLXRvcDog MHB4OyBwb3NpdGlvbjogc3RhdGljOyByaWdodDogYXV0bzsgdG9wOiBhdXRvOyIvPgpQYWNrYWdl IHRjdGktdGFicm1kIHdhcyBub3QgZm91bmQgaW4gdGhlIHBrZy1jb25maWcgc2VhcmNoIHBhdGgu PGJyIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgYm90dG9tOiBhdXRvOyBj b2xvcjogcmdiKDAsIDAsIDApOyBjdXJzb3I6IHRleHQ7IGRpcmVjdGlvbjogbHRyOyBmb250LWZh bWlseTogVmVyZGFuYTsgZm9udC1zaXplOiAxMnB4OyBsZWZ0OiBhdXRvOyBtYXJnaW4tYm90dG9t OiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tdG9wOiAw cHg7IG92ZXJmbG93OiB2aXNpYmxlOyBwYWRkaW5nLWJvdHRvbTogMHB4OyBwYWRkaW5nLWxlZnQ6 IDBweDsgcGFkZGluZy1yaWdodDogMHB4OyBwYWRkaW5nLXRvcDogMHB4OyBwb3NpdGlvbjogc3Rh dGljOyByaWdodDogYXV0bzsgdG9wOiBhdXRvOyIvPgpQZXJoYXBzIHlvdSBzaG91bGQgYWRkIHRo ZSBkaXJlY3RvcnkgY29udGFpbmluZyAmIzk2O3RjdGktdGFicm1kLnBjJiMzOTs8YnIgc3R5bGU9 ImJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyBib3R0b206IGF1dG87IGNvbG9yOiByZ2Io MCwgMCwgMCk7IGN1cnNvcjogdGV4dDsgZGlyZWN0aW9uOiBsdHI7IGZvbnQtZmFtaWx5OiBWZXJk YW5hOyBmb250LXNpemU6IDEycHg7IGxlZnQ6IGF1dG87IG1hcmdpbi1ib3R0b206IDBweDsgbWFy Z2luLWxlZnQ6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi10b3A6IDBweDsgb3ZlcmZs b3c6IHZpc2libGU7IHBhZGRpbmctYm90dG9tOiAwcHg7IHBhZGRpbmctbGVmdDogMHB4OyBwYWRk aW5nLXJpZ2h0OiAwcHg7IHBhZGRpbmctdG9wOiAwcHg7IHBvc2l0aW9uOiBzdGF0aWM7IHJpZ2h0 OiBhdXRvOyB0b3A6IGF1dG87Ii8+CnRvIHRoZSBQS0dfQ09ORklHX1BBVEggZW52aXJvbm1lbnQg dmFyaWFibGU8YnIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyBib3R0b206 IGF1dG87IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGN1cnNvcjogdGV4dDsgZGlyZWN0aW9uOiBsdHI7 IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyBmb250LXNpemU6IDEycHg7IGxlZnQ6IGF1dG87IG1hcmdp bi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdp bi10b3A6IDBweDsgb3ZlcmZsb3c6IHZpc2libGU7IHBhZGRpbmctYm90dG9tOiAwcHg7IHBhZGRp bmctbGVmdDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7IHBhZGRpbmctdG9wOiAwcHg7IHBvc2l0 aW9uOiBzdGF0aWM7IHJpZ2h0OiBhdXRvOyB0b3A6IGF1dG87Ii8+Ck5vIHBhY2thZ2UgJiMzOTt0 Y3RpLXRhYnJtZCYjMzk7IGZvdW5kPGJyIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3Bh cmVudDsgYm90dG9tOiBhdXRvOyBjb2xvcjogcmdiKDAsIDAsIDApOyBjdXJzb3I6IHRleHQ7IGRp cmVjdGlvbjogbHRyOyBmb250LWZhbWlseTogVmVyZGFuYTsgZm9udC1zaXplOiAxMnB4OyBsZWZ0 OiBhdXRvOyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7IG1hcmdpbi1yaWdo dDogMHB4OyBtYXJnaW4tdG9wOiAwcHg7IG92ZXJmbG93OiB2aXNpYmxlOyBwYWRkaW5nLWJvdHRv bTogMHB4OyBwYWRkaW5nLWxlZnQ6IDBweDsgcGFkZGluZy1yaWdodDogMHB4OyBwYWRkaW5nLXRv cDogMHB4OyBwb3NpdGlvbjogc3RhdGljOyByaWdodDogYXV0bzsgdG9wOiBhdXRvOyIvPgpjb25m aWd1cmU6MTI5MDk6ICYjMzY7PyA9IDE8YnIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHRyYW5z cGFyZW50OyBib3R0b206IGF1dG87IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGN1cnNvcjogdGV4dDsg ZGlyZWN0aW9uOiBsdHI7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyBmb250LXNpemU6IDEycHg7IGxl ZnQ6IGF1dG87IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgbWFyZ2luLXJp Z2h0OiAwcHg7IG1hcmdpbi10b3A6IDBweDsgb3ZlcmZsb3c6IHZpc2libGU7IHBhZGRpbmctYm90 dG9tOiAwcHg7IHBhZGRpbmctbGVmdDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7IHBhZGRpbmct dG9wOiAwcHg7IHBvc2l0aW9uOiBzdGF0aWM7IHJpZ2h0OiBhdXRvOyB0b3A6IGF1dG87Ii8+CmNv bmZpZ3VyZToxMjkyMzogcmVzdWx0OiBubzxiciBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogdHJh bnNwYXJlbnQ7IGJvdHRvbTogYXV0bzsgY29sb3I6IHJnYigwLCAwLCAwKTsgY3Vyc29yOiB0ZXh0 OyBkaXJlY3Rpb246IGx0cjsgZm9udC1mYW1pbHk6IFZlcmRhbmE7IGZvbnQtc2l6ZTogMTJweDsg bGVmdDogYXV0bzsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4t cmlnaHQ6IDBweDsgbWFyZ2luLXRvcDogMHB4OyBvdmVyZmxvdzogdmlzaWJsZTsgcGFkZGluZy1i b3R0b206IDBweDsgcGFkZGluZy1sZWZ0OiAwcHg7IHBhZGRpbmctcmlnaHQ6IDBweDsgcGFkZGlu Zy10b3A6IDBweDsgcG9zaXRpb246IHN0YXRpYzsgcmlnaHQ6IGF1dG87IHRvcDogYXV0bzsiLz4K Tm8gcGFja2FnZSAmIzM5O3RjdGktdGFicm1kJiMzOTsgZm91bmQ8YnIgc3R5bGU9ImJhY2tncm91 bmQtY29sb3I6IHRyYW5zcGFyZW50OyBib3R0b206IGF1dG87IGNvbG9yOiByZ2IoMCwgMCwgMCk7 IGN1cnNvcjogdGV4dDsgZGlyZWN0aW9uOiBsdHI7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyBmb250 LXNpemU6IDEycHg7IGxlZnQ6IGF1dG87IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6 IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi10b3A6IDBweDsgb3ZlcmZsb3c6IHZpc2li bGU7IHBhZGRpbmctYm90dG9tOiAwcHg7IHBhZGRpbmctbGVmdDogMHB4OyBwYWRkaW5nLXJpZ2h0 OiAwcHg7IHBhZGRpbmctdG9wOiAwcHg7IHBvc2l0aW9uOiBzdGF0aWM7IHJpZ2h0OiBhdXRvOyB0 b3A6IGF1dG87Ii8+CmNvbmZpZ3VyZToxMjk4MDogY2hlY2tpbmcgZm9yIENSWVBUTzwvZGl2PgoK PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IGJvdHRvbTogYXV0bzsg Y29sb3I6IHJnYigwLCAwLCAwKTsgY3Vyc29yOiB0ZXh0OyBkaXJlY3Rpb246IGx0cjsgZm9udC1m YW1pbHk6IFZlcmRhbmE7IGZvbnQtc2l6ZTogMTJweDsgbGVmdDogYXV0bzsgbWFyZ2luLWJvdHRv bTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLXRvcDog MHB4OyBvdmVyZmxvdzogdmlzaWJsZTsgcGFkZGluZy1ib3R0b206IDBweDsgcGFkZGluZy1sZWZ0 OiAwcHg7IHBhZGRpbmctcmlnaHQ6IDBweDsgcGFkZGluZy10b3A6IDBweDsgcG9zaXRpb246IHN0 YXRpYzsgcmlnaHQ6IGF1dG87IHRvcDogYXV0bzsiPlsuLi5dPC9kaXY+Cgo8ZGl2IHN0eWxlPSJi YWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgYm90dG9tOiBhdXRvOyBjb2xvcjogcmdiKDAs IDAsIDApOyBjdXJzb3I6IHRleHQ7IGRpcmVjdGlvbjogbHRyOyBmb250LWZhbWlseTogVmVyZGFu YTsgZm9udC1zaXplOiAxMnB4OyBsZWZ0OiBhdXRvOyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdp bi1sZWZ0OiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tdG9wOiAwcHg7IG92ZXJmbG93 OiB2aXNpYmxlOyBwYWRkaW5nLWJvdHRvbTogMHB4OyBwYWRkaW5nLWxlZnQ6IDBweDsgcGFkZGlu Zy1yaWdodDogMHB4OyBwYWRkaW5nLXRvcDogMHB4OyBwb3NpdGlvbjogc3RhdGljOyByaWdodDog YXV0bzsgdG9wOiBhdXRvOyI+Jm5ic3A7PC9kaXY+Cgo8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNv bG9yOiB0cmFuc3BhcmVudDsgYm90dG9tOiBhdXRvOyBjb2xvcjogcmdiKDAsIDAsIDApOyBjdXJz b3I6IHRleHQ7IGRpcmVjdGlvbjogbHRyOyBmb250LWZhbWlseTogVmVyZGFuYTsgZm9udC1zaXpl OiAxMnB4OyBsZWZ0OiBhdXRvOyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7 IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tdG9wOiAwcHg7IG92ZXJmbG93OiB2aXNpYmxlOyBw YWRkaW5nLWJvdHRvbTogMHB4OyBwYWRkaW5nLWxlZnQ6IDBweDsgcGFkZGluZy1yaWdodDogMHB4 OyBwYWRkaW5nLXRvcDogMHB4OyBwb3NpdGlvbjogc3RhdGljOyByaWdodDogYXV0bzsgdG9wOiBh dXRvOyI+PHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyBjb2xvcjog cmdiKDAsIDAsIDApOyBkaXNwbGF5OiBpbmxpbmU7IGZsb2F0OiBub25lOyBmb250LWZhbWlseTog VmVyZGFuYTsgZm9udC1zaXplOiAxMnB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFu dDogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBo YW5zOiAyOyB0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IHRleHQtaW5k ZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRo OiAwcHg7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyI+V2hlbiBJIHNw ZWNpZnkgLXYgdG8gdGhlIHRvb2wgY29tbWFuZHMgb3B0aW9uIGxpc3QgSSBnZXQ6PC9zcGFuPjwv ZGl2PgoKPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IGJvdHRvbTog YXV0bzsgY29sb3I6IHJnYigwLCAwLCAwKTsgY3Vyc29yOiB0ZXh0OyBkaXJlY3Rpb246IGx0cjsg Zm9udC1mYW1pbHk6IFZlcmRhbmE7IGZvbnQtc2l6ZTogMTJweDsgbGVmdDogYXV0bzsgbWFyZ2lu LWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2lu LXRvcDogMHB4OyBvdmVyZmxvdzogdmlzaWJsZTsgcGFkZGluZy1ib3R0b206IDBweDsgcGFkZGlu Zy1sZWZ0OiAwcHg7IHBhZGRpbmctcmlnaHQ6IDBweDsgcGFkZGluZy10b3A6IDBweDsgcG9zaXRp b246IHN0YXRpYzsgcmlnaHQ6IGF1dG87IHRvcDogYXV0bzsiPiZuYnNwOzwvZGl2PgoKPGRpdiBz dHlsZT0iYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IGJvdHRvbTogYXV0bzsgY29sb3I6 IHJnYigwLCAwLCAwKTsgY3Vyc29yOiB0ZXh0OyBkaXJlY3Rpb246IGx0cjsgZm9udC1mYW1pbHk6 IFZlcmRhbmE7IGZvbnQtc2l6ZTogMTJweDsgbGVmdDogYXV0bzsgbWFyZ2luLWJvdHRvbTogMHB4 OyBtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLXRvcDogMHB4OyBv dmVyZmxvdzogdmlzaWJsZTsgcGFkZGluZy1ib3R0b206IDBweDsgcGFkZGluZy1sZWZ0OiAwcHg7 IHBhZGRpbmctcmlnaHQ6IDBweDsgcGFkZGluZy10b3A6IDBweDsgcG9zaXRpb246IHN0YXRpYzsg cmlnaHQ6IGF1dG87IHRvcDogYXV0bzsiPnBpQHJhc3BiZXJyeXBpOn4vVFBNL3RwbTItdHNzICYj MzY7IHN1ZG8gdHBtMl9nZXRyYW5kb20gMzIgLXY8YnIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6 IHRyYW5zcGFyZW50OyBib3R0b206IGF1dG87IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGN1cnNvcjog dGV4dDsgZGlyZWN0aW9uOiBsdHI7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyBmb250LXNpemU6IDEy cHg7IGxlZnQ6IGF1dG87IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgbWFy Z2luLXJpZ2h0OiAwcHg7IG1hcmdpbi10b3A6IDBweDsgb3ZlcmZsb3c6IHZpc2libGU7IHBhZGRp bmctYm90dG9tOiAwcHg7IHBhZGRpbmctbGVmdDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7IHBh ZGRpbmctdG9wOiAwcHg7IHBvc2l0aW9uOiBzdGF0aWM7IHJpZ2h0OiBhdXRvOyB0b3A6IGF1dG87 Ii8+CnRvb2w9JnF1b3Q7dHBtMl9nZXRyYW5kb20mcXVvdDsgdmVyc2lvbj0mcXVvdDszLjAuMyZx dW90OyB0Y3Rpcz0mcXVvdDtzb2NrZXQsZGV2aWNlLCZxdW90OzwvZGl2Pgo8L2Rpdj4KCjxkaXYg c3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyBib3R0b206IGF1dG87IGNvbG9y OiByZ2IoMCwgMCwgMCk7IGN1cnNvcjogdGV4dDsgZGlyZWN0aW9uOiBsdHI7IGZvbnQtZmFtaWx5 OiBWZXJkYW5hOyBmb250LXNpemU6IDEycHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJp YW50OiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxlZnQ6IGF1dG87IGxldHRlci1zcGFjaW5n OiBub3JtYWw7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgbWFyZ2luLXJp Z2h0OiAwcHg7IG1hcmdpbi10b3A6IDBweDsgb3JwaGFuczogMjsgb3ZlcmZsb3c6IHZpc2libGU7 IHBhZGRpbmctYm90dG9tOiAwcHg7IHBhZGRpbmctbGVmdDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAw cHg7IHBhZGRpbmctdG9wOiAwcHg7IHBvc2l0aW9uOiBzdGF0aWM7IHJpZ2h0OiBhdXRvOyB0ZXh0 LWFsaWduOiBsZWZ0OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IHRleHQtaW5kZW50OiAwcHg7IHRl eHQtdHJhbnNmb3JtOiBub25lOyB0b3A6IGF1dG87IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6 IDBweDsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd29yZC1zcGFjaW5nOiAwcHg7Ij4KPGRpdiBzdHls ZT0iYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IGJvdHRvbTogYXV0bzsgY29sb3I6IHJn YigwLCAwLCAwKTsgY3Vyc29yOiB0ZXh0OyBkaXJlY3Rpb246IGx0cjsgZm9udC1mYW1pbHk6IFZl cmRhbmE7IGZvbnQtc2l6ZTogMTJweDsgbGVmdDogYXV0bzsgbWFyZ2luLWJvdHRvbTogMHB4OyBt YXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLXRvcDogMHB4OyBvdmVy ZmxvdzogdmlzaWJsZTsgcGFkZGluZy1ib3R0b206IDBweDsgcGFkZGluZy1sZWZ0OiAwcHg7IHBh ZGRpbmctcmlnaHQ6IDBweDsgcGFkZGluZy10b3A6IDBweDsgcG9zaXRpb246IHN0YXRpYzsgcmln aHQ6IGF1dG87IHRvcDogYXV0bzsiPnBpQHJhc3BiZXJyeXBpOn4vVFBNL3RwbTItdHNzICYjMzY7 IHN1ZG8gdHBtMl9nZXRyYW5kb20gMzIgLVQgdGFicm1kPGJyIHN0eWxlPSJiYWNrZ3JvdW5kLWNv bG9yOiB0cmFuc3BhcmVudDsgYm90dG9tOiBhdXRvOyBjb2xvcjogcmdiKDAsIDAsIDApOyBjdXJz b3I6IHRleHQ7IGRpcmVjdGlvbjogbHRyOyBmb250LWZhbWlseTogVmVyZGFuYTsgZm9udC1zaXpl OiAxMnB4OyBsZWZ0OiBhdXRvOyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7 IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tdG9wOiAwcHg7IG92ZXJmbG93OiB2aXNpYmxlOyBw YWRkaW5nLWJvdHRvbTogMHB4OyBwYWRkaW5nLWxlZnQ6IDBweDsgcGFkZGluZy1yaWdodDogMHB4 OyBwYWRkaW5nLXRvcDogMHB4OyBwb3NpdGlvbjogc3RhdGljOyByaWdodDogYXV0bzsgdG9wOiBh dXRvOyIvPgpFUlJPUjogVW5rbm93biB0Y3RpLCBnb3Q6ICZxdW90O3RhYnJtZCZxdW90OzwvZGl2 PgoKPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IGJvdHRvbTogYXV0 bzsgY29sb3I6IHJnYigwLCAwLCAwKTsgY3Vyc29yOiB0ZXh0OyBkaXJlY3Rpb246IGx0cjsgZm9u dC1mYW1pbHk6IFZlcmRhbmE7IGZvbnQtc2l6ZTogMTJweDsgbGVmdDogYXV0bzsgbWFyZ2luLWJv dHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLXRv cDogMHB4OyBvdmVyZmxvdzogdmlzaWJsZTsgcGFkZGluZy1ib3R0b206IDBweDsgcGFkZGluZy1s ZWZ0OiAwcHg7IHBhZGRpbmctcmlnaHQ6IDBweDsgcGFkZGluZy10b3A6IDBweDsgcG9zaXRpb246 IHN0YXRpYzsgcmlnaHQ6IGF1dG87IHRvcDogYXV0bzsiPiZuYnNwOzwvZGl2PgoKPGRpdiBzdHls ZT0iYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IGJvdHRvbTogYXV0bzsgY29sb3I6IHJn YigwLCAwLCAwKTsgY3Vyc29yOiB0ZXh0OyBkaXJlY3Rpb246IGx0cjsgZm9udC1mYW1pbHk6IFZl cmRhbmE7IGZvbnQtc2l6ZTogMTJweDsgbGVmdDogYXV0bzsgbWFyZ2luLWJvdHRvbTogMHB4OyBt YXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLXRvcDogMHB4OyBvdmVy ZmxvdzogdmlzaWJsZTsgcGFkZGluZy1ib3R0b206IDBweDsgcGFkZGluZy1sZWZ0OiAwcHg7IHBh ZGRpbmctcmlnaHQ6IDBweDsgcGFkZGluZy10b3A6IDBweDsgcG9zaXRpb246IHN0YXRpYzsgcmln aHQ6IGF1dG87IHRvcDogYXV0bzsiPkkgcmUtY29uZmlndXJlZC9idWlsdC9pbnN0YWxsZWQgdGhl IHRvb2xzLCBidXQgdGhhdCBkaWQgbm90IGhlbHAuIEkgY2FuIHN0aWxsIGludGVyYWN0IHdpdGgg dGhlIFRQTSBieSBzdG9wcGluZyZuYnNwOzxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiB0 cmFuc3BhcmVudDsgY29sb3I6IHJnYigwLCAwLCAwKTsgY3Vyc29yOiB0ZXh0OyBkaXJlY3Rpb246 IGx0cjsgZGlzcGxheTogaW5saW5lOyBmbG9hdDogbm9uZTsgZm9udC1mYW1pbHk6IFZlcmRhbmE7 IGZvbnQtc2l6ZTogMTJweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQ6IG5vcm1h bDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogMjsg dGV4dC1hbGlnbjogbGVmdDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB0ZXh0LWluZGVudDogMHB4 OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyB3 aGl0ZS1zcGFjZTogbm9ybWFsOyB3b3JkLXNwYWNpbmc6IDBweDsiPnRhYnJtZCBhbmQgZXhlY3V0 aW5nOjwvc3Bhbj48L2Rpdj4KCjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFy ZW50OyBib3R0b206IGF1dG87IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGN1cnNvcjogdGV4dDsgZGly ZWN0aW9uOiBsdHI7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyBmb250LXNpemU6IDEycHg7IGxlZnQ6 IGF1dG87IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgbWFyZ2luLXJpZ2h0 OiAwcHg7IG1hcmdpbi10b3A6IDBweDsgb3ZlcmZsb3c6IHZpc2libGU7IHBhZGRpbmctYm90dG9t OiAwcHg7IHBhZGRpbmctbGVmdDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7IHBhZGRpbmctdG9w OiAwcHg7IHBvc2l0aW9uOiBzdGF0aWM7IHJpZ2h0OiBhdXRvOyB0b3A6IGF1dG87Ij4mbmJzcDs8 L2Rpdj4KCjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyBib3R0b206 IGF1dG87IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGN1cnNvcjogdGV4dDsgZGlyZWN0aW9uOiBsdHI7 IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyBmb250LXNpemU6IDEycHg7IGxlZnQ6IGF1dG87IG1hcmdp bi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdp bi10b3A6IDBweDsgb3ZlcmZsb3c6IHZpc2libGU7IHBhZGRpbmctYm90dG9tOiAwcHg7IHBhZGRp bmctbGVmdDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7IHBhZGRpbmctdG9wOiAwcHg7IHBvc2l0 aW9uOiBzdGF0aWM7IHJpZ2h0OiBhdXRvOyB0b3A6IGF1dG87Ij5waUByYXNwYmVycnlwaTp+L1RQ TS90cG0yLXRzcyAmIzM2OyBzdWRvIHRwbTJfZ2V0cmFuZG9tIDggLVQgZGV2aWNlOi9kZXYvdHBt MDxiciBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IGJvdHRvbTogYXV0bzsg Y29sb3I6IHJnYigwLCAwLCAwKTsgY3Vyc29yOiB0ZXh0OyBkaXJlY3Rpb246IGx0cjsgZm9udC1m YW1pbHk6IFZlcmRhbmE7IGZvbnQtc2l6ZTogMTJweDsgbGVmdDogYXV0bzsgbWFyZ2luLWJvdHRv bTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLXRvcDog MHB4OyBvdmVyZmxvdzogdmlzaWJsZTsgcGFkZGluZy1ib3R0b206IDBweDsgcGFkZGluZy1sZWZ0 OiAwcHg7IHBhZGRpbmctcmlnaHQ6IDBweDsgcGFkZGluZy10b3A6IDBweDsgcG9zaXRpb246IHN0 YXRpYzsgcmlnaHQ6IGF1dG87IHRvcDogYXV0bzsiLz4KMHhCQiAweDU4IDB4NzcgMHg3RiAweDU4 IDB4RkUgMHg1RCAweEZFPC9kaXY+CjwvZGl2PgoKPGRpdj4mbmJzcDsKPGRpdiBuYW1lPSJxdW90 ZSIgc3R5bGU9Im1hcmdpbjoxMHB4IDVweCA1cHggMTBweDsgcGFkZGluZzogMTBweCAwIDEwcHgg MTBweDsgYm9yZGVyLWxlZnQ6MnB4IHNvbGlkICNDM0Q5RTU7IHdvcmQtd3JhcDogYnJlYWstd29y ZDsgLXdlYmtpdC1uYnNwLW1vZGU6IHNwYWNlOyAtd2Via2l0LWxpbmUtYnJlYWs6IGFmdGVyLXdo aXRlLXNwYWNlOyI+CjxkaXYgc3R5bGU9Im1hcmdpbjowIDAgMTBweCAwOyI+PGI+R2VzZW5kZXQ6 PC9iPiZuYnNwO0ZyZWl0YWcsIDIzLiBNJmF1bWw7cnogMjAxOCB1bSAyMDo1OCBVaHI8YnIvPgo8 Yj5Wb246PC9iPiZuYnNwOyZxdW90O1JvYmVydHMsIFdpbGxpYW0gQyZxdW90OyAmbHQ7d2lsbGlh bS5jLnJvYmVydHNAaW50ZWwuY29tJmd0Ozxici8+CjxiPkFuOjwvYj4mbmJzcDsmcXVvdDtUcmlj Y2EsIFBoaWxpcCBCJnF1b3Q7ICZsdDtwaGlsaXAuYi50cmljY2FAaW50ZWwuY29tJmd0OywgJnF1 b3Q7bWFkcHJvcHNAZ214Lm5ldCZxdW90OyAmbHQ7bWFkcHJvcHNAZ214Lm5ldCZndDs8YnIvPgo8 Yj5DYzo8L2I+Jm5ic3A7JnF1b3Q7dHBtMkBsaXN0cy4wMS5vcmcmcXVvdDsgJmx0O3RwbTJAbGlz dHMuMDEub3JnJmd0Ozxici8+CjxiPkJldHJlZmY6PC9iPiZuYnNwO1JFOiBbdHBtMl0gUHJvYmxl bSB3aXRoIEluZmluZW9uIElyaWRpdW0gU0xCIDk2NzAgVFBNMi4wPC9kaXY+Cgo8ZGl2IG5hbWU9 InF1b3RlZC1jb250ZW50Ij48YnIvPgo8YnIvPgomZ3Q7IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tPGJyLz4KJmd0OyBGcm9tOiB0cG0yIFttYWlsdG86dHBtMi1ib3VuY2VzQGxpc3RzLjAxLm9y Z10gT24gQmVoYWxmIE9mIFBoaWxpcCBUcmljY2E8YnIvPgomZ3Q7IFNlbnQ6IFR1ZXNkYXksIE1h cmNoIDIwLCAyMDE4IDEyOjIwIFBNPGJyLz4KJmd0OyBUbzogbWFkcHJvcHNAZ214Lm5ldDxici8+ CiZndDsgQ2M6IHRwbTJAbGlzdHMuMDEub3JnPGJyLz4KJmd0OyBTdWJqZWN0OiBSZTogW3RwbTJd IFByb2JsZW0gd2l0aCBJbmZpbmVvbiBJcmlkaXVtIFNMQiA5NjcwIFRQTTIuMDxici8+CiZndDs8 YnIvPgomZ3Q7IEhleSBtYWRwcm9wcyw8YnIvPgomZ3Q7PGJyLz4KJmd0OyBUaGFua3MgZm9yIHRo ZSBhZGRpdGlvbmFsIGRhdGEuPGJyLz4KJmd0Ozxici8+CiZndDsgT24gTW9uLCBNYXIgMTksIDIw MTggYXQgMDk6MTc6MzNQTSArMDEwMCwgbWFkcHJvcHNAZ214Lm5ldCB3cm90ZTo8YnIvPgomZ3Q7 ICZndDsgJmx0O2h0bWwmZ3Q7Jmx0O2hlYWQmZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICZsdDttZXRhIGh0 dHAtZXF1aXY9JnF1b3Q7Q29udGVudC1UeXBlJnF1b3Q7IGNvbnRlbnQ9JnF1b3Q7dGV4dC9odG1s Ozxici8+CiZndDsgJmd0OyBjaGFyc2V0PXV0Zi04JnF1b3Q7Jmd0OyZsdDsvaGVhZCZndDsmbHQ7 Ym9keSZndDsmbHQ7ZGl2IHN0eWxlPSZxdW90O2ZvbnQtZmFtaWx5Ojxici8+CiZndDsgJmd0OyBW ZXJkYW5hO2ZvbnQtc2l6ZTogMTIuMHB4OyZxdW90OyZndDsmbHQ7ZGl2Jmd0OyAmbHQ7ZGl2Jmd0 O1RoYW5rIHlvdSwgUGhpbGlwISBJIG1lYW53aGlsZTxici8+CiZndDsgJmd0OyBub3RpY2VkIHRo ZSB0b29scyB3b3JrIHdoZW4gSSBzdG9wIHRwbTItYWJybWQgYW5kIGNvbm5lY3QgZGlyZWN0bHkg dG88YnIvPgomZ3Q7ICZndDsgdGhlIFRQTTomYW1wO25ic3A7Jmx0Oy9kaXYmZ3Q7PGJyLz4KJmd0 Ozxici8+CiZndDsgV2VsbCB0aGlzIGRlYnVua3MgbXkgdGhlb3J5IHRoYXQgeW91ciBpc3N1ZSB3 YXMgZG93biBpbiB0aGUgZGV2IHRyZWUgOik8YnIvPgomZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICZsdDtk aXYmZ3Q7JmFtcDtuYnNwOyZsdDsvZGl2Jmd0Ozxici8+CiZndDsgJmd0Ozxici8+CiZndDsgJmd0 OyAmbHQ7ZGl2Jmd0O3BpQHJhc3BiZXJyeXBpOn4gJiMzNjsgc3VkbyB0cG0yX3Bjcmxpc3QgLVQg ZGV2aWNlOi9kZXYvdHBtMCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgc2hhMSA6Jmx0O2JyJmd0 Ozxici8+CiZndDsgJmd0OyAmYW1wO25ic3A7IDAmYW1wO25ic3A7IDogMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgJmFtcDtu YnNwOyAxJmFtcDtuYnNwOyA6IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7IFsuLi5dJmx0Oy9kaXYmZ3Q7PGJyLz4KJmd0OyAm Z3Q7PGJyLz4KJmd0OyAmZ3Q7ICZsdDtkaXYmZ3Q7JmFtcDtuYnNwOyZsdDsvZGl2Jmd0Ozxici8+ CiZndDsgJmd0Ozxici8+CiZndDsgJmd0OyAmbHQ7ZGl2Jmd0O1BsZWFzZSBmaW5kIGJlbG93IHRo ZSBpbmZvcm1hdGlvbiB5b3UgYXNrZWQgZm9yLiBXaGlsZSB0cG0yLWFicm1kPGJyLz4KJmd0OyAm Z3Q7IGlzIHJ1bm5pbmcgKGFzIHJvb3QpIEkgc3RpbGwgZ2V0IHRoaXM6Jmx0Oy9kaXYmZ3Q7PGJy Lz4KJmd0OyAmZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICZsdDtkaXYmZ3Q7JmFtcDtuYnNwOyZsdDsvZGl2 Jmd0Ozxici8+CiZndDsgJmd0Ozxici8+CiZndDsgJmd0OyAmbHQ7ZGl2Jmd0O3BpQHJhc3BiZXJy eXBpOn4gJiMzNjsgdHBtMl9wY3JsaXN0Jmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyBFUlJPUjog RmFpbGVkIHRvIGluaXRpYWxpemUgdGN0aSBjb250ZXh0OiAweDEmbHQ7L2RpdiZndDs8YnIvPgom Z3Q7PGJyLz4KJmd0OyBTZWVpbmcgdGhpcyBlcnJvciB3aGlsZSB0aGUgdGFicm1kIGlzIHJ1bm5p bmcsIGJ1dCBoYXZpbmcgdGhlIHRvb2xzIGV4ZWN1dGU8YnIvPgomZ3Q7IHN1Y2Nlc3NmdWxseSB3 aXRoIGl0IHN0b3BwZWQgaXMgYSBiaWcgaGludC4gVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgdG9v bHMgYXJlIHByb2JhYmx5PGJyLz4KJmd0OyB0cnlpbmcgdG8gY29ubmVjdCB0byB0aGUgL2Rldi90 cG0wIGRldmljZSBub2RlIGRpcmVjdGx5IGluc3RlYWQgb2YgdXNpbmcgdGhlPGJyLz4KJmd0OyB0 YWJybWQuPGJyLz4KJmd0Ozxici8+CiZndDsgSSYjMzk7dmUgb25seSBzZWUgdGhpcyBoYXBwZW4g aWYgLyB3aGVuIHRoZSB0b29scyBhcmUgYnVpbHQgaW4gYWR2YW5jZSBvZiBidWlsZGluZyAqYW5k Kjxici8+CiZndDsgaW5zdGFsbGluZyB0aGUgdGFicm1kLiBUaGlzIGhhcHBlbnMgYmVjYXVzZSB0 aGUgdG9vbHMgYnVpbGQgbG9va3MgZm9yIHRoZSBpbnN0YWxsZWQ8YnIvPgomZ3Q7IFRDVEkgbGli cmFyeSBmb3IgY29tbXVuaWNhdGluZyB3aXRoIHRoZSBkYWVtb24uIElmIGl0IGRvZXNuJiMzOTt0 IGZpbmQgdGhpcyBsaWJyYXJ5IHRoZW48YnIvPgomZ3Q7IHRoZSB0b29scyBjYW4mIzM5O3QgYmUg bGlua2VkIGFnYWluc3QgaXQgYW5kIHRoZSBidWlsZCB3aWxsIGZhbGwgYmFjayB0byB1c2luZyB0 aGUgZGV2aWNlPGJyLz4KJmd0OyBUQ1RJIGFzIHRoZSBkZWZhdWx0LiBUaGUgJiM5Njtjb25maWcu bG9nJiM5NjsgZmlsZSBpbiB0aGUgdG9vbHMgYnVpbGQgaGFzIHRoZSBvdXRwdXQgZnJvbSB0aGU8 YnIvPgomZ3Q7ICYjOTY7Y29uZmlndXJlJiM5Njsgc2NyaXB0IGFuZCB0aGlzIHdpbGwgdGVsbCB5 b3Ugd2hpY2ggVENUSSBtb2R1bGVzIGFyZSBlbmFibGVkIC8gZGlzYWJsZWQuPGJyLz4KJmd0Ozxi ci8+CiZndDsgQW5vdGhlciB3YXkgdG8gY2hlY2sgdGhpcyB0aGVvcnkgaXMgdG8gdGFrZSBvbmUg b2YgdGhlIHRvb2xzIGV4ZWN1dGFibGVzIGFuZCB1c2U8YnIvPgomZ3Q7ICYjOTY7cmVhZGVsZiYj OTY7IHRvIGR1bXAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxpYnJhcmllcyB0aGF0IGl0IGxpbmtz IHRvLiBJZiB0aGUgdGFicm1kPGJyLz4KJmd0OyBUQ1RJIGxpYnJhcnkgaXNuJiMzOTt0IGxpc3Rl ZCB0aGVuIHNvbWV0aGluZyBpdCB1cC48YnIvPgo8YnIvPgpZb3UgY2FuIGFsc28gc3BlY2lmeSAt diB0byB5b3VyIHRvb2wgY29tbWFuZHMgb3B0aW9uIGxpc3QgdG8gc2VlIHdoYXQgdGN0aSYjMzk7 cyBpdCBzdXBwb3J0cy48YnIvPgpUaGUgZmlyc3QgdGN0aSBpbiB0aGUgc3RyaW5nIGlzIHRoZSBk ZWZhdWx0IElJQy4gSSBzaG91bGQgaGF2ZSBoYWQgYW4gYWRkaXRpb25hbCBmaWVsZDxici8+CmZv ciBkZWZhdWx0Ljxici8+Cjxici8+Ck9uIG1hc3Rlciwgd2Ugc3dpdGNoZWQgdG8gZHluYW1pYyBU Q1RJcyB3aXRoIGFicm1kIGFsd2F5cyBiZWluZyB0aGUgZGVmYXVsdC48YnIvPgpJIHRoaW5rIHRo ZSA0LjAgcmVsZWFzZSwgSSYjMzk7bSBnb2luZyB0byBhZGQgYSBmaWVsZCB0byBleHBsaWNpdGx5 IHNheSB3aGF0IHRoZSBkZWZhdWx0PGJyLz4KSXMuPGJyLz4KPGJyLz4KJmd0Ozxici8+CiZndDsg RXZlcnl0aGluZyBlbHNlIGJlbG93IGxvb2tzIHJpZ2h0Ljxici8+CiZndDs8YnIvPgomZ3Q7IFJl Z2FyZHMsPGJyLz4KJmd0OyBQaGlsaXA8YnIvPgomZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICZsdDtkaXYm Z3Q7JmFtcDtuYnNwOyZsdDsvZGl2Jmd0Ozxici8+CiZndDsgJmd0Ozxici8+CiZndDsgJmd0OyAm bHQ7ZGl2Jmd0O3BpQHJhc3BiZXJyeXBpOn4gJiMzNjsgZXhwb3J0IFRQTTJUT09MU19UQ1RJX05B TUU9dGFicm1kJmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyBwaUByYXNwYmVycnlwaTp+ICYjMzY7 IHRwbTJfcGNybGlzdCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgRVJST1I6IFVua25vd24gdGN0 aSwgZ290OiAmYW1wO3F1b3Q7dGFicm1kJmFtcDtxdW90OyZsdDsvZGl2Jmd0Ozxici8+CiZndDsg Jmd0Ozxici8+CiZndDsgJmd0OyAmbHQ7ZGl2Jmd0OyZhbXA7bmJzcDsmbHQ7L2RpdiZndDs8YnIv PgomZ3Q7ICZndDs8YnIvPgomZ3Q7ICZndDsgJmx0O2RpdiZndDs9PT09PT09PSBWZXJzaW9uczom bHQ7L2RpdiZndDs8YnIvPgomZ3Q7ICZndDs8YnIvPgomZ3Q7ICZndDsgJmx0O2RpdiZndDt0cG0y LWFicm1kOiAxLjMuMV9yYzAmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7IHRwbTItdG9vbHM6IDMu MC4zJmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyB0cG0yLXRzczogMS40LjAmbHQ7L2RpdiZndDs8 YnIvPgomZ3Q7ICZndDs8YnIvPgomZ3Q7ICZndDsgJmx0O2RpdiZndDsmYW1wO25ic3A7Jmx0Oy9k aXYmZ3Q7PGJyLz4KJmd0OyAmZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICZsdDtkaXYmZ3Q7PT09PT09PT0g L2Rldi90cG0wJmx0Oy9kaXYmZ3Q7PGJyLz4KJmd0OyAmZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICZsdDtk aXYmZ3Q7cGlAcmFzcGJlcnJ5cGk6fiAmIzM2OyBscyAtbGEgL2Rldi90cG0wJmx0O2JyJmd0Ozxi ci8+CiZndDsgJmd0OyBjcnctLS0tLS0tIDEgcm9vdCByb290IDEwLCAyMjQgTWFyIDE3IDIxOjM1 IC9kZXYvdHBtMCZsdDsvZGl2Jmd0Ozxici8+CiZndDsgJmd0Ozxici8+CiZndDsgJmd0OyAmbHQ7 ZGl2Jmd0Oz09PT09PT09IHRwbTItYWJybWQgTE9HJmx0Oy9kaXYmZ3Q7PGJyLz4KJmd0OyAmZ3Q7 PGJyLz4KJmd0OyAmZ3Q7ICZsdDtkaXYmZ3Q7cm9vdEByYXNwYmVycnlwaTovaG9tZS9waSMgdHBt Mi1hYnJtZCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgKiogSU5GTzogdGFicm1kIHN0YXJ0dXAm bHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqIChwcm9jZXNzOjE4NTIpOiBERUJVRzogdGN0aV9m YWN0b3J5X3NldF9wcm9wZXJ0eSZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgKiogKHByb2Nlc3M6 MTg1Mik6IERFQlVHOiZhbXA7bmJzcDsmYW1wO25ic3A7IFBST1BfVENUSV9UWVBFJmx0O2JyJmd0 Ozxici8+CiZndDsgJmd0OyAqKiAocHJvY2VzczoxODUyKTogREVCVUc6JmFtcDtuYnNwOyZhbXA7 bmJzcDsgdmFsdWU6IDB4MSZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgKiogKHByb2Nlc3M6MTg1 Mik6IERFQlVHOiB0Y3RpX2ZhY3Rvcnlfc2V0X3Byb3BlcnR5Jmx0O2JyJmd0Ozxici8+CiZndDsg Jmd0OyAqKiAocHJvY2VzczoxODUyKTogREVCVUc6IFRjdGlGYWN0b3J5IHNldCBkZXZpY2VfbmFt ZTogL2Rldi90cG0wJmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAqKiAocHJvY2VzczoxODUyKTog REVCVUc6IHRjdGlfZmFjdG9yeV9zZXRfcHJvcGVydHkmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7 ICoqIChwcm9jZXNzOjE4NTIpOiBERUJVRzogVGN0aUZhY3Rvcnkgc2V0IHNvY2tldF9hZGRyZXNz Ojxici8+CiZndDsgJmd0OyAxMjcuMC4wLjEmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqIChw cm9jZXNzOjE4NTIpOiBERUJVRzogdGN0aV9mYWN0b3J5X3NldF9wcm9wZXJ0eSZsdDticiZndDs8 YnIvPgomZ3Q7ICZndDsgKiogKHByb2Nlc3M6MTg1Mik6IERFQlVHOiBUY3RpRmFjdG9yeSBzZXQg c29ja2V0X3BvcnQ6IDIzMjEmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqIElORk86IGxvZ2dp bmcgdG8gc3Rkb3V0Jmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAqKiAodHBtMi1hYnJtZDoxODUy KTogREVCVUc6IHRjdGlfZmFjdG9yeV9nZXRfdGN0aSZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsg KiogKHRwbTItYWJybWQ6MTg1Mik6IERFQlVHOiBUY3RpRGV2aWNlIHNldCBmaWxlbmFtZTogL2Rl di90cG0wJmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAqKiBJTkZPOiBlbnRlcmluZyBnX21haW5f bG9vcCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgKiogSU5GTzogaW5pdF90aHJlYWRfZnVuYyBz dGFydCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgKiogKHRwbTItYWJybWQ6MTg1Mik6IERFQlVH OiByYW5kb21fY2xhc3NfaW5pdCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgKiogKHRwbTItYWJy bWQ6MTg1Mik6IERFQlVHOiBvcGVuaW5nIGVudHJvcHkgc291cmNlOiAvZGV2L3VyYW5kb20mbHQ7 YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogcmVhZGlu ZyBmcm9tIGVudHJvcHkgc291cmNlOjxici8+CiZndDsgJmd0OyAvZGV2L3VyYW5kb20mbHQ7YnIm Z3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogc2VlZGluZyBy YW5kIHdpdGggLTEyNjMwNDUyOTUmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqICh0cG0yLWFi cm1kOjE4NTIpOiBERUJVRzogY29ubmVjdGlvbl9tYW5hZ2VyX3NldF9wcm9wZXJ0eTo8YnIvPgom Z3Q7ICZndDsgMHgxNWM1ZWYwJmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAqKiAodHBtMi1hYnJt ZDoxODUyKTogREVCVUc6JmFtcDtuYnNwOyZhbXA7bmJzcDsgbWF4X2Nvbm5lY3Rpb25zOiAweDFi Jmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IENv bm5lY3Rpb25NYW5hZ2VyOiAweDE1YzVlZjAmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqICh0 cG0yLWFicm1kOjE4NTIpOiBERUJVRzogSXBjRnJvbnRlbmREYnVzIHNldCBidXNfbmFtZTo8YnIv PgomZ3Q7ICZndDsgY29tLmludGVsLnRzczIuVGFicm1kJmx0O2JyJmd0Ozxici8+CiZndDsgJmd0 OyAqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IGlwY19mcm9udGVuZF9jb25uZWN0OiAweDc1 YjAxYTA4Jmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAqKiAodHBtMi1hYnJtZDoxODUyKTogREVC VUc6IHRjdGlfaW5pdGlhbGl6ZTogMHgxNWM1MjAwJmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAq KiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IHNhcGlfY29udGV4dF9pbml0IHcvIFRjdGk6IDB4 MTVjNTIwMCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgKiogKHRwbTItYWJybWQ6MTg1Mik6IERF QlVHOiB0Y3RpX3BlZWtfY29udGV4dDogMHgxNWM1MjAwJmx0O2JyJmd0Ozxici8+CiZndDsgJmd0 OyAqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IEFsbG9jYXRpbmcgMHgxMDQwIGJ5dGVzIGZv ciBTQVBJPGJyLz4KJmd0OyAmZ3Q7IGNvbnRleHQmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoq ICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogYWNjZXNzX2Jyb2tlcl9zZXRfcHJvcGVydHk6PGJy Lz4KJmd0OyAmZ3Q7IDB4NzViMGI3MjAmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqICh0cG0y LWFicm1kOjE4NTIpOiBERUJVRzomYW1wO25ic3A7JmFtcDtuYnNwOyBzYXBpX2NvbnRleHQ6IDB4 NzViMGE2OTAmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqICh0cG0yLWFicm1kOjE4NTIpOiBE RUJVRzogYWNjZXNzX2Jyb2tlcl9zZXRfcHJvcGVydHk6PGJyLz4KJmd0OyAmZ3Q7IDB4NzViMGI3 MjAmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzom YW1wO25ic3A7JmFtcDtuYnNwOyB0Y3RpOiAweDE1YzUyMDAmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAm Z3Q7ICoqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogY3JlYXRlZCBBY2Nlc3NCcm9rZXI6IDB4 NzViMGI3MjAmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqICh0cG0yLWFicm1kOjE4NTIpOiBE RUJVRzogYWNjZXNzX2Jyb2tlcl9pbml0X3RwbTogMHg3NWIwYjcyMCZsdDticiZndDs8YnIvPgom Z3Q7ICZndDsgKiogSU5GTzogb25fYnVzX2FjcXVpcmVkOiBjb20uaW50ZWwudHNzMi5UYWJybWQm bHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqIElORk86IG9uX25hbWVfYWNxdWlyZWQ6IGNvbS5p bnRlbC50c3MyLlRhYnJtZCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgKiogKHRwbTItYWJybWQ6 MTg1Mik6IERFQlVHOiBHb3QgcHJveHkgb2JqZWN0IGZvciBEQnVzIGRhZW1vbi4mbHQ7YnImZ3Q7 PGJyLz4KJmd0OyAmZ3Q7ICoqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzo8YnIvPgomZ3Q7ICZn dDsgYWNjZXNzX2Jyb2tlcl9nZXRfdHBtX3Byb3BlcnRpZXNfZml4ZWQmbHQ7YnImZ3Q7PGJyLz4K Jmd0OyAmZ3Q7ICoqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogY29tbWFuZF9hdHRyc19jbGFz c19pbml0Jmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAqKiAodHBtMi1hYnJtZDoxODUyKTogREVC VUc6IGNyZWF0ZWQgQ29tbWFuZEF0dHJzOiAweDc1YjAxMjYwJmx0O2JyJmd0Ozxici8+CiZndDsg Jmd0OyAqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IEdldENhcGFiaWx0eSBmb3IgMHg1MDAg Y29tbWFuZHMmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqICh0cG0yLWFicm1kOjE4NTIpOiBE RUJVRzogZ290IGF0dHJpYnV0ZXMgZm9yIDB4NWEgY29tbWFuZHMmbHQ7YnImZ3Q7PGJyLz4KJmd0 OyAmZ3Q7ICoqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogY29tbWFuZF9zb3VyY2VfY2xhc3Nf aW5pdCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgKiogKHRwbTItYWJybWQ6MTg1Mik6IERFQlVH OiBjb21tYW5kX3NvdXJjZV9zZXRfcHJvcGVydGllczo8YnIvPgomZ3Q7ICZndDsgMHg3NWIwMmM1 MCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgKiogKHRwbTItYWJybWQ6MTg1Mik6IERFQlVHOiZh bXA7bmJzcDsmYW1wO25ic3A7IGNvbW1hbmRfYXR0cnM6PGJyLz4KJmd0OyAweDc1YjAxMjYwJmx0 O2JyJmd0Ozxici8+CiZndDsgJmd0OyAqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IGNvbW1h bmRfc291cmNlX3NldF9wcm9wZXJ0aWVzOjxici8+CiZndDsgJmd0OyAweDc1YjAyYzUwJmx0O2Jy Jmd0Ozxici8+CiZndDsgJmd0OyAqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IGNyZWF0ZWQg Y29tbWFuZCBzb3VyY2U6IDB4NzViMDJjNTAmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqICh0 cG0yLWFicm1kOjE4NTIpOiBERUJVRzogc2Vzc2lvbl9saXN0X25ldyB3aXRoIG1heC1wZXItY29u bmVjdGlvbjo8YnIvPgomZ3Q7ICZndDsgMHg0Jmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAqKiAo dHBtMi1hYnJtZDoxODUyKTogREVCVUc6IHNlc3Npb25fbGlzdF9pbml0Jmx0O2JyJmd0Ozxici8+ CiZndDsgJmd0OyAqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IHNlc3Npb25fbGlzdF9zZXRf cHJvcGVydHk6IDB4MTVjNWZiMDxici8+CiZndDsgJmd0OyBtYXgtcGVyLWNvbm5lY3Rpb246IDQm bHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogcmVz b3VyY2VfbWFuYWdlcl9zZXRfcHJvcGVydHk6PGJyLz4KJmd0OyAmZ3Q7IDB4NzViMDJjYTAmbHQ7 YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzomYW1wO25i c3A7JmFtcDtuYnNwOyBpbl9xdWV1ZTogMHg3NWIwMGY5MCZsdDticiZndDs8YnIvPgomZ3Q7ICZn dDsgKiogKHRwbTItYWJybWQ6MTg1Mik6IERFQlVHOiByZXNvdXJjZV9tYW5hZ2VyX3NldF9wcm9w ZXJ0eTo8YnIvPgomZ3Q7ICZndDsgMHg3NWIwMmNhMCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsg KiogKHRwbTItYWJybWQ6MTg1Mik6IERFQlVHOiZhbXA7bmJzcDsmYW1wO25ic3A7IGFjY2Vzc19i cm9rZXI6IDB4NzViMGI3MjAmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqICh0cG0yLWFicm1k OjE4NTIpOiBERUJVRzogcmVzb3VyY2VfbWFuYWdlcl9zZXRfcHJvcGVydHk6PGJyLz4KJmd0OyAm Z3Q7IDB4NzViMDJjYTAmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqICh0cG0yLWFicm1kOjE4 NTIpOiBERUJVRzogY3JlYXRlZCBSZXNvdXJjZU1hbmFnZXI6IDB4NzViMDJjYTAmbHQ7YnImZ3Q7 PGJyLz4KJmd0OyAmZ3Q7ICoqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogcmVzcG9uc2Vfc2lu a19zZXRfcHJvcGVydHkmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqICh0cG0yLWFicm1kOjE4 NTIpOiBERUJVRzomYW1wO25ic3A7JmFtcDtuYnNwOyBzZXR0aW5nIFBST1BfSU5fUVVFVUUmbHQ7 YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogY3JlYXRl ZCByZXNwb25zZSBzb3VyY2U6IDB4NzViMDEyYTgmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoq ICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogc291cmNlX2FkZF9zaW5rJmx0O2JyJmd0Ozxici8+ CiZndDsgJmd0OyAqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IGNvbW1hbmRfc29ydWNlX2Fk ZF9zaW5rOiBDb21tYW5kU291cmNlOjxici8+CiZndDsgJmd0OyAweDc1YjAyYzUwICwgU2luazog MHg3NWIwMmNhMCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgKiogKHRwbTItYWJybWQ6MTg1Mik6 IERFQlVHOiBjb21tYW5kX3NvdXJjZV9zZXRfcHJvcGVydGllczo8YnIvPgomZ3Q7ICZndDsgMHg3 NWIwMmM1MCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgKiogKHRwbTItYWJybWQ6MTg1Mik6IERF QlVHOiZhbXA7bmJzcDsmYW1wO25ic3A7IHNpbms6IDB4NzViMDJjYTAmbHQ7YnImZ3Q7PGJyLz4K Jmd0OyAmZ3Q7ICoqICh0cG0yLWFicm1kOjE4NTIpOiBERUJVRzogc291cmNlX2FkZF9zaW5rJmx0 O2JyJmd0Ozxici8+CiZndDsgJmd0OyAqKiAodHBtMi1hYnJtZDoxODUyKTogREVCVUc6IHJlc291 cmNlX21hbmFnZXJfYWRkX3Npbms6PGJyLz4KJmd0OyAmZ3Q7IFJlc291cmNlTWFuYWdlcjogMHg3 NWIwMmNhMCwgU2luazogMHg3NWIwMTJhOCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgKiogKHRw bTItYWJybWQ6MTg1Mik6IERFQlVHOiByZXNvdXJjZV9tYW5hZ2VyX3NldF9wcm9wZXJ0eTo8YnIv PgomZ3Q7ICZndDsgMHg3NWIwMmNhMCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgKiogKHRwbTIt YWJybWQ6MTg1Mik6IERFQlVHOiZhbXA7bmJzcDsmYW1wO25ic3A7IHNpbms6IDB4NzViMDEyYTgm bHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICoqIElORk86IGluaXRfdGhyZWFkX2Z1bmMgZG9uZSZs dDticiZndDs8YnIvPgomZ3Q7ICZndDsgKiogKHRwbTItYWJybWQ6MTg1Mik6IERFQlVHOiByZXNv dXJjZV9tYW5hZ2VyX3RocmVhZCBzdGFydCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgKiogKHRw bTItYWJybWQ6MTg1Mik6IERFQlVHOiByZXNwb25zZV9zaW5rX3RocmVhZCBibG9ja2luZyBvbiBp bnB1dDxici8+CiZndDsgJmd0OyBxdWV1ZTogMHg3NWIwMGU1MCZsdDticiZndDs8YnIvPgomZ3Q7 ICZndDsgKiogKHRwbTItYWJybWQ6MTg1Mik6IERFQlVHOiBtZXNzYWdlX3F1ZXVlX2RlcXVldWUg MHg3NWIwMGU1MCZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgKiogKHRwbTItYWJybWQ6MTg1Mik6 IERFQlVHOiBtZXNzYWdlX3F1ZXVlX2RlcXVldWUgMHg3NWIwMGY5MCZsdDsvZGl2Jmd0Ozxici8+ CiZndDsgJmd0Ozxici8+CiZndDsgJmd0OyAmbHQ7ZGl2Jmd0OyZhbXA7bmJzcDsmbHQ7L2RpdiZn dDs8YnIvPgomZ3Q7ICZndDs8YnIvPgomZ3Q7ICZndDsgJmx0O2RpdiZndDs9PT09PT09PSBNSVND Jmx0Oy9kaXYmZ3Q7PGJyLz4KJmd0OyAmZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICZsdDtkaXYmZ3Q7cGlA cmFzcGJlcnJ5cGk6fi9UUE0vdHBtMi10c3MgJiMzNjsgY2F0PGJyLz4KJmd0OyAmZ3Q7IC9ldGMv ZGJ1cy0xL3N5c3RlbS5kL3RwbTItYWJybWQuY29uZiZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsg JmFtcDtsdDshRE9DVFlQRSBidXNjb25maWcgUFVCTElDICZhbXA7cXVvdDstLy9mcmVlZGVza3Rv cC8vRFREIEQtQlVTIEJ1czxici8+CiZndDsgJmd0OyBDb25maWd1cmF0aW9uIDEuMC8vRU4mYW1w O3F1b3Q7Jmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAmYW1wO25ic3A7JmFtcDtxdW90OzxhIGhy ZWY9Imh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL3N0YW5kYXJkcy9kYnVzLzEuMC9idXNjb25m aWcuZHQiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZy9zdGFuZGFy ZHMvZGJ1cy8xLjAvYnVzY29uZmlnLmR0PC9hPjxici8+CiZndDsgJmd0OyBkJmFtcDtxdW90OyZh bXA7Z3Q7Jmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAmYW1wO2x0O2J1c2NvbmZpZyZhbXA7Z3Q7 Jmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAmYW1wO25ic3A7ICZhbXA7bHQ7IS0tIC4uL3N5c3Rl bS5jb25mIGhhdmUgZGVuaWVkIGV2ZXJ5dGhpbmcsIHNvIHdlIGp1c3QgcHVuY2g8YnIvPgomZ3Q7 ICZndDsgc29tZSBob2xlcyAtLSZhbXA7Z3Q7Jmx0O2JyJmd0OyAmYW1wO25ic3A7ICZhbXA7bHQ7 cG9saWN5IHVzZXI9JmFtcDtxdW90O3RzcyZhbXA7cXVvdDsmYW1wO2d0OyZsdDticiZndDs8YnIv PgomZ3Q7ICZndDsgJmFtcDtuYnNwOyZhbXA7bmJzcDsmYW1wO25ic3A7ICZhbXA7bHQ7YWxsb3c8 YnIvPgomZ3Q7ICZndDsgb3duPSZhbXA7cXVvdDtjb20uaW50ZWwudHNzMi5UYWJybWQmYW1wO3F1 b3Q7LyZhbXA7Z3Q7Jmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAmYW1wO25ic3A7ICZhbXA7bHQ7 L3BvbGljeSZhbXA7Z3Q7Jmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAmYW1wO25ic3A7ICZhbXA7 bHQ7cG9saWN5IHVzZXI9JmFtcDtxdW90O3Jvb3QmYW1wO3F1b3Q7JmFtcDtndDsmbHQ7YnImZ3Q7 ICZhbXA7bmJzcDsmYW1wO25ic3A7JmFtcDtuYnNwOzxici8+CiZndDsgJmd0OyAmYW1wO2x0O2Fs bG93IG93bj0mYW1wO3F1b3Q7Y29tLmludGVsLnRzczIuVGFicm1kJmFtcDtxdW90Oy8mYW1wO2d0 OyZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgJmFtcDtuYnNwOyAmYW1wO2x0Oy9wb2xpY3kmYW1w O2d0OyZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgJmFtcDtuYnNwOyAmYW1wO2x0O3BvbGljeSBj b250ZXh0PSZhbXA7cXVvdDtkZWZhdWx0JmFtcDtxdW90OyZhbXA7Z3Q7Jmx0O2JyJmd0Ozxici8+ CiZndDsgJmd0OyAmYW1wO25ic3A7JmFtcDtuYnNwOyZhbXA7bmJzcDsgJmFtcDtsdDthbGxvdzxi ci8+CiZndDsgJmd0OyBzZW5kX2Rlc3RpbmF0aW9uPSZhbXA7cXVvdDtjb20uaW50ZWwudHNzMi5U YWJybWQmYW1wO3F1b3Q7LyZhbXA7Z3Q7Jmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAmYW1wO25i c3A7JmFtcDtuYnNwOyZhbXA7bmJzcDsgJmFtcDtsdDthbGxvdzxici8+CiZndDsgJmd0OyByZWNl aXZlX3NlbmRlcj0mYW1wO3F1b3Q7Y29tLmludGVsLnRzczIuVGFicm1kJmFtcDtxdW90Oy8mYW1w O2d0OyZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgJmFtcDtuYnNwOyAmYW1wO2x0Oy9wb2xpY3km YW1wO2d0OyZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgJmFtcDtsdDsvYnVzY29uZmlnJmFtcDtn dDsmbHQ7L2RpdiZndDs8YnIvPgomZ3Q7ICZndDs8YnIvPgomZ3Q7ICZndDsgJmx0O2RpdiZndDsm YW1wO25ic3A7Jmx0Oy9kaXYmZ3Q7PGJyLz4KJmd0OyAmZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICZsdDtk aXYmZ3Q7JmFtcDtuYnNwOyZsdDsvZGl2Jmd0Ozxici8+CiZndDsgJmd0Ozxici8+CiZndDsgJmd0 OyAmbHQ7ZGl2Jmd0OyZhbXA7bmJzcDs8YnIvPgomZ3Q7ICZndDsgJmx0O2RpdiBuYW1lPSZxdW90 O3F1b3RlJnF1b3Q7IHN0eWxlPSZxdW90O21hcmdpbjoxMHB4IDVweCA1cHggMTBweDsgcGFkZGlu ZzogMTBweCAwPGJyLz4KJmd0OyAmZ3Q7IDEwcHggMTBweDsgYm9yZGVyLWxlZnQ6MnB4IHNvbGlk ICNDM0Q5RTU7IHdvcmQtd3JhcDogYnJlYWstd29yZDs8YnIvPgomZ3Q7ICZndDsgLXdlYmtpdC1u YnNwLW1vZGU6IHNwYWNlOyAtd2Via2l0LWxpbmUtYnJlYWs6IGFmdGVyLXdoaXRlLXNwYWNlOyZx dW90OyZndDs8YnIvPgomZ3Q7ICZndDsgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW46MCAwIDEw cHggMDsmcXVvdDsmZ3Q7Jmx0O2ImZ3Q7R2VzZW5kZXQ6Jmx0Oy9iJmd0OyZhbXA7bmJzcDtNb250 YWcsIDE5LiBNJmF1bWw7cno8YnIvPgomZ3Q7ICZndDsgMjAxOCB1bSAwNjowNyBVaHImbHQ7YnIm Z3Q7ICZsdDtiJmd0O1ZvbjombHQ7L2ImZ3Q7JmFtcDtuYnNwOyZhbXA7cXVvdDtQaGlsaXAgVHJp Y2NhJmFtcDtxdW90Ozxici8+CiZndDsgJmd0OyAmYW1wO2x0O3BoaWxpcC5iLnRyaWNjYUBpbnRl bC5jb20mYW1wO2d0OyZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgJmx0O2ImZ3Q7QW46Jmx0Oy9i Jmd0OyZhbXA7bmJzcDttYWRwcm9wc0BnbXgubmV0Jmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAm bHQ7YiZndDtDYzombHQ7L2ImZ3Q7JmFtcDtuYnNwO3RwbTJAbGlzdHMuMDEub3JnJmx0O2JyJmd0 Ozxici8+CiZndDsgJmd0OyAmbHQ7YiZndDtCZXRyZWZmOiZsdDsvYiZndDsmYW1wO25ic3A7UmU6 IFt0cG0yXSBQcm9ibGVtIHdpdGggSW5maW5lb24gSXJpZGl1bSBTTEIgOTY3MDxici8+CiZndDsg Jmd0OyBUUE0yLjAmbHQ7L2RpdiZndDs8YnIvPgomZ3Q7ICZndDs8YnIvPgomZ3Q7ICZndDsgJmx0 O2RpdiBuYW1lPSZxdW90O3F1b3RlZC1jb250ZW50JnF1b3Q7Jmd0O0hleSB0aGVyZSBtYWRwcm9w cywmbHQ7YnImZ3Q7ICZsdDticiZndDsgT24gU3VuLCBNYXI8YnIvPgomZ3Q7ICZndDsgMTgsIDIw MTggYXQgMDI6MDQ6MTVQTSAmYW1wOyM0MzswMTAwLCBtYWRwcm9wc0BnbXgubmV0IHdyb3RlOiZs dDticiZndDsgJmFtcDtndDs8YnIvPgomZ3Q7ICZndDsgJmFtcDtsdDtodG1sJmFtcDtndDsmYW1w O2x0O2hlYWQmYW1wO2d0OyZsdDticiZndDsgJmFtcDtndDsgJmFtcDtsdDttZXRhPGJyLz4KJmd0 OyAmZ3Q7IGh0dHAtZXF1aXY9JmFtcDtxdW90O0NvbnRlbnQtVHlwZSZhbXA7cXVvdDsgY29udGVu dD0mYW1wO3F1b3Q7dGV4dC9odG1sOzxici8+CiZndDsgJmd0OyBjaGFyc2V0PXV0Zi04JmFtcDtx dW90OyZhbXA7Z3Q7JmFtcDtsdDsvaGVhZCZhbXA7Z3Q7JmFtcDtsdDtib2R5JmFtcDtndDsmYW1w O2x0O2Rpdjxici8+CiZndDsgJmd0OyBzdHlsZT0mYW1wO3F1b3Q7Zm9udC1mYW1pbHk6IFZlcmRh bmE7Zm9udC1zaXplOjxici8+CiZndDsgJmd0OyAxMi4wcHg7JmFtcDtxdW90OyZhbXA7Z3Q7JmFt cDtsdDtkaXYmYW1wO2d0OyZsdDticiZndDsgJmFtcDtndDsgJmFtcDtsdDtkaXY8YnIvPgomZ3Q7 ICZndDsgY2xhc3M9JmFtcDtxdW90O3NpZ25hdHVyZSZhbXA7cXVvdDsmYW1wO2d0OyZsdDticiZn dDs8YnIvPgomZ3Q7ICZndDsgJmFtcDtndDsgJmFtcDtsdDtkaXYgY2xhc3M9JmFtcDtxdW90O3Np Z25hdHVyZSZhbXA7cXVvdDsmYW1wO2d0OyZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgJmFtcDtn dDsgJmFtcDtsdDtkaXYmYW1wO2d0O0kmIzM5O20gdHJ5aW5nIHRvIGdldCBhbiAmYW1wO2FtcDtx dW90O0luZmluZW9uIElyaWRpdW0gU0xCPGJyLz4KJmd0OyAmZ3Q7IDk2NzAgVFBNIDIuMCBTUEkg Qm9hcmQmYW1wO2FtcDtxdW90OyBydW4gb24gbXkgUmFzcGJlcnJ5IFBpIDMuIEkgaGF2ZTxici8+ CiZndDsgJmd0OyBkb3dubG9hZGVkLCBjb21waWxlZCBhbmQgaW5zdGFsbGVkIHRoZSBsYXRlc3Qg dmVyc2lvbnMgb2YgdHBtMi1hYnJtZCw8YnIvPgomZ3Q7ICZndDsgdHBtMi10c3MgYW5kIHRwbTIt dG9vbHMuIEkgc3RhcnRlZCB0cG0yLWFicm1kIGFzIHJvb3QsIGhvcGluZyB0aGF0IEk8YnIvPgom Z3Q7ICZndDsgY2FuIHRoZW4gaW50ZXJhY3Qgd2l0aCB0aGUgSW5maW5lb24gVFBNIHVzaW5nIHRw bTItdG9vbHMuPGJyLz4KJmd0OyAmZ3Q7ICZhbXA7YW1wO3F1b3Q7dHBtMl9wY3JsaXN0JmFtcDth bXA7cXVvdDsgYW5kIGFsbCBvdGhlciB0cG0yXyogY29tbWFuZHMsPGJyLz4KJmd0OyAmZ3Q7IGhv d2V2ZXIsIHJldHVybiBlcnJvciAmYW1wO2FtcDtxdW90O0VSUk9SOiBGYWlsZWQgdG8gaW5pdGlh bGl6ZSB0Y3RpPGJyLz4KJmd0OyAmZ3Q7IGNvbnRleHQ6IDB4MSZhbXA7YW1wO3F1b3Q7LiZhbXA7 bHQ7L2RpdiZhbXA7Z3Q7Jmx0O2JyJmd0OyAmYW1wO2d0OyZsdDticiZndDsgJmx0O2JyJmd0OyBD YW4geW91IHBsZWFzZTxici8+CiZndDsgJmd0OyBwcm92aWRlIHNvbWUgbW9yZSBpbmZvIGFib3V0 IHlvdXIgY29uZmlndXJhdGlvbj8mbHQ7YnImZ3Q7IFNwZWNpZmljYWxseTombHQ7YnImZ3Q7PGJy Lz4KJmd0OyAmZ3Q7IC0gdGhlIHZlcnNpb24gb2YgdGhlIFRTUzIgbGlicmFyaWVzIHlvdSYjMzk7 cmUgdXNpbmcmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7IC0gdGhlIHZlcnNpb24gb2YgdGhlIHRh YnJtZCB5b3UmIzM5O3JlIHVzaW5nJmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAtIHRoZSBjb25m aWd1cmF0aW9uIG9wdGlvbnMgeW91JiMzOTtyZSBwYXNzaW5nIHRvIGVhY2gmbHQ7YnImZ3Q7ICZs dDticiZndDsgQSBsb2cgZmlsZTxici8+CiZndDsgJmd0OyBmcm9tIHRoZSB0YWJybWQgd2l0aCBs b2dnaW5nIGRpYWxlZCBhbGwgdGhlIHdheSB1cCB3b3VsZCBiZSZsdDticiZndDs8YnIvPgomZ3Q7 ICZndDsgaGVscGZ1bC4gU2luY2UgdGFicm1kIHVzZXMgZ2xpYiBhbmQgaXQmIzM5O3MgbG9nZ2lu ZyBpbmZyYXN0cnVjdHVyZSB5b3U8YnIvPgomZ3Q7ICZndDsgZGlhbCZsdDticiZndDsgdXAgdGhl IGRlYnVnIG91dHB1dCBhbGwgdGhlIHdheSBieSBzZXR0aW5nPGJyLz4KJmd0OyAmZ3Q7ICYjOTY7 R19NRVNTQUdFU19ERUJVRz1hbGwmIzk2OyBpbiB0aGUmbHQ7YnImZ3Q7IGRhZW1vbiYjMzk7cyBl bnZpcm9ubWVudC4mbHQ7YnImZ3Q7ICZsdDticiZndDsgJmFtcDtndDs8YnIvPgomZ3Q7ICZndDsg JmFtcDtsdDtkaXYmYW1wO2d0OyZhbXA7YW1wO25ic3A7JmFtcDtsdDsvZGl2JmFtcDtndDsmbHQ7 YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICZhbXA7Z3Q7Jmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAm YW1wO2d0OyAmYW1wO2x0O2RpdiZhbXA7Z3Q7QW55IGlkZWFzPyBUaGFua3MhJmFtcDtsdDsvZGl2 JmFtcDtndDsmbHQ7YnImZ3Q7ICZsdDticiZndDsgVGhlIG1vc3Q8YnIvPgomZ3Q7ICZndDsgY29t bW9uIGlzc3VlIHdlJiMzOTt2ZSBzZWVuIHBlb3BsZSBydW4gaW50byB3aGVuIGluc3RhbGxpbmcg ZnJvbSZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgc291cmNlIGlzIHRoYXQgdGhlIGRlZmF1bHQg dmFsdWUgZm9yIHRoZSAmIzk2O3ByZWZpeCYjOTY7IGFuZCBzb21lIG90aGVyJmx0O2JyJmd0Ozxi ci8+CiZndDsgJmd0OyBpbnN0YWxsYXRpb24gZGlyZWN0b3JpZXMgYXJlbiYjMzk7dCB3aGF0IG1v c3QgZXhwZWN0LiZsdDticiZndDsgJmx0O2JyJmd0OyBTdGlsbCwgaWY8YnIvPgomZ3Q7ICZndDsg eW91JiMzOTtyZSBydW5uaW5nIHRoZSBkYWVtb24gYXMgcm9vdCB5b3Ugc2hvdWxkbiYjMzk7dCBo YXZlIGFueSZsdDticiZndDsgaXNzdWVzPGJyLz4KJmd0OyAmZ3Q7IHcvciB0byBwZXJtaXNzaW9u cyBvbiB0aGUgL2Rldi90cG0wIGRldmljZSBub2RlIHNvIEkgd29uZGVyIGlmJmx0O2JyJmd0Ozxi ci8+CiZndDsgJmd0OyB0aGlzIG5vZGUgZXZlbiBleGlzdHMgb24geW91ciBwbGF0Zm9ybS4gWW91 IG1heSB3YW50IHRvIGNoZWNrIHRvIHNlZTxici8+CiZndDsgJmd0OyBpZiZsdDticiZndDsgJiM5 NjsvZGV2L3RwbTAmIzk2OyBpcyBldmVuIHByZXNlbnQgb24geW91ciBzeXN0ZW0uIFlvdSYjMzk7 cmUgb24gYW4gQVJNPGJyLz4KJmd0OyAmZ3Q7IHBsYXRmb3JtJmx0O2JyJmd0OyB3aGljaCBtZWFu cyB0aGUga2VybmVsIHdpbGwgb25seSBiZSBhd2FyZSBvZiB0aGUgVFBNMjxici8+CiZndDsgJmd0 OyBkZXZpY2UgeW91JiMzOTt2ZSZsdDticiZndDsgYWRkZWQgaWYgeW91IGNvbmZpZ3VyZSB0aGUg ZGV2aWNlIHRyZWUgcHJvcGVybHkuJmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAmbHQ7YnImZ3Q7 IFJlZ2FyZHMsJmx0O2JyJmd0OyBQaGlsaXAmbHQ7YnImZ3Q7ICZsdDticiZndDsgJmFtcDtndDs8 YnIvPgomZ3Q7ICZndDsgJmFtcDtsdDtkaXYmYW1wO2d0O3BpQHJhc3BiZXJyeXBpOn4vVFBNL3Rw bTItYWJybWQgJiMzNjsgdW5hbWUgLWEmYW1wO2x0O2JyJmFtcDtndDsmbHQ7YnImZ3Q7PGJyLz4K Jmd0OyAmZ3Q7ICZhbXA7Z3Q7IExpbnV4IHJhc3BiZXJyeXBpIDQuNC41MC12NyZhbXA7YW1wOyM0 MzsgIzEgU01QIFdlZCBNYXIgMTQgMTQ6MDE6MDA8YnIvPgomZ3Q7ICZndDsgUERUIDIwMTggYXJt djdsIEdOVS9MaW51eCAoJmFtcDthbXA7bHQ7PT0gaW5jbHVkZXMgcGF0Y2ggcHJvdmlkZWQgYnk8 YnIvPgomZ3Q7ICZndDsgSW5maW5lb24pJmFtcDtsdDsvZGl2JmFtcDtndDsmbHQ7YnImZ3Q7ICZh bXA7Z3Q7Jmx0O2JyJmd0OyAmYW1wO2d0Ozxici8+CiZndDsgJmd0OyAmYW1wO2x0O2RpdiZhbXA7 Z3Q7JmFtcDthbXA7bmJzcDsmYW1wO2x0Oy9kaXYmYW1wO2d0OyZsdDticiZndDs8YnIvPgomZ3Q7 ICZndDsgJmFtcDtndDsmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICZhbXA7Z3Q7ICZhbXA7bHQ7 ZGl2JmFtcDtndDtwaUByYXNwYmVycnlwaTp+L1RQTS90cG0yLWFicm1kICYjMzY7IGRtZXNnICYj MTI0OyBncmVwPGJyLz4KJmd0OyAmZ3Q7IHRwbSZhbXA7bHQ7YnImYW1wO2d0OyZsdDticiZndDsg JmFtcDtndDsgWyZhbXA7YW1wO25ic3A7JmFtcDthbXA7bmJzcDsmYW1wO2FtcDtuYnNwOyAzLjcw MDM4NF08YnIvPgomZ3Q7ICZndDsgdHBtX3NwaV90aXMgc3BpMC4xOiAyLjAgVFBNIChkZXZpY2Ut aWQgMHhCNkJDLCByZXYtaWQ8YnIvPgomZ3Q7ICZndDsgMTYpJmFtcDtsdDsvZGl2JmFtcDtndDsm bHQ7YnImZ3Q7ICZhbXA7Z3Q7Jmx0O2JyJmd0OyAmYW1wO2d0Ozxici8+CiZndDsgJmd0OyAmYW1w O2x0O2RpdiZhbXA7Z3Q7JmFtcDthbXA7bmJzcDsmYW1wO2x0Oy9kaXYmYW1wO2d0OyZsdDticiZn dDs8YnIvPgomZ3Q7ICZndDsgJmFtcDtndDsmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICZhbXA7 Z3Q7ICZhbXA7bHQ7ZGl2JmFtcDtndDtwaUByYXNwYmVycnlwaTovZXRjICYjMzY7IGNhdDxici8+ CiZndDsgJmd0OyAvZXRjL29zLXJlbGVhc2UmYW1wO2x0O2JyJmFtcDtndDsmbHQ7YnImZ3Q7ICZh bXA7Z3Q7IFBSRVRUWV9OQU1FPSZhbXA7YW1wO3F1b3Q7UmFzcGJpYW48YnIvPgomZ3Q7ICZndDsg R05VL0xpbnV4IDkgKHN0cmV0Y2gpJmFtcDthbXA7cXVvdDsmYW1wO2x0O2JyJmFtcDtndDsmbHQ7 YnImZ3Q7ICZhbXA7Z3Q7PGJyLz4KJmd0OyAmZ3Q7IE5BTUU9JmFtcDthbXA7cXVvdDtSYXNwYmlh biBHTlUvTGludXgmYW1wO2FtcDtxdW90OyZhbXA7bHQ7YnImYW1wO2d0OyZsdDticiZndDsgJmFt cDtndDs8YnIvPgomZ3Q7ICZndDsgVkVSU0lPTl9JRD0mYW1wO2FtcDtxdW90OzkmYW1wO2FtcDtx dW90OyZhbXA7bHQ7YnImYW1wO2d0OyZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgJmFtcDtndDsg VkVSU0lPTj0mYW1wO2FtcDtxdW90OzkgKHN0cmV0Y2gpJmFtcDthbXA7cXVvdDsmYW1wO2x0O2Jy JmFtcDtndDsmbHQ7YnImZ3Q7ICZhbXA7Z3Q7PGJyLz4KJmd0OyAmZ3Q7IElEPXJhc3BiaWFuJmFt cDtsdDticiZhbXA7Z3Q7Jmx0O2JyJmd0OyAmYW1wO2d0OyBJRF9MSUtFPWRlYmlhbiZhbXA7bHQ7 YnImYW1wO2d0OyZsdDticiZndDsgJmFtcDtndDs8YnIvPgomZ3Q7ICZndDsgSE9NRV9VUkw9JmFt cDthbXA7cXVvdDsmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucmFzcGJpYW4ub3JnLyZhbXA7 YW1wO3F1b3QmcXVvdDs8YnIvPgomZ3Q7ICZndDsgdGFyZ2V0PSZxdW90O19ibGFuayZxdW90OyZn dDs8YSBocmVmPSJodHRwOi8vd3d3LnJhc3BiaWFuLm9yZy8mYW1wO2FtcDtxdW90IiB0YXJnZXQ9 Il9ibGFuayI+aHR0cDovL3d3dy5yYXNwYmlhbi5vcmcvJmFtcDthbXA7cXVvdDwvYT4mbHQ7L2Em Z3Q7OyZhbXA7bHQ7YnImYW1wO2d0OyZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgJmFtcDtndDsg U1VQUE9SVF9VUkw9JmFtcDthbXA7cXVvdDsmbHQ7YTxici8+CiZndDsgJmd0OyBocmVmPSZxdW90 O2h0dHA6Ly93d3cucmFzcGJpYW4ub3JnL1Jhc3BiaWFuRm9ydW1zJmFtcDthbXA7cXVvdCZxdW90 Ozxici8+CiZndDsgJmd0OyB0YXJnZXQ9JnF1b3Q7X2JsYW5rJnF1b3Q7Jmd0OzxhIGhyZWY9Imh0 dHA6Ly93d3cucmFzcGJpYW4ub3JnL1Jhc3BiaWFuRm9ydW1zJmFtcDthbXA7cXVvdCIgdGFyZ2V0 PSJfYmxhbmsiPmh0dHA6Ly93d3cucmFzcGJpYW4ub3JnL1Jhc3BiaWFuRm9ydW1zJmFtcDthbXA7 cXVvdDwvYT4mbHQ7L2EmZ3Q7OyZhbXA7bDxici8+CiZndDsgJmd0OyB0O2JyJmFtcDtndDsmbHQ7 YnImZ3Q7ICZhbXA7Z3Q7IEJVR19SRVBPUlRfVVJMPSZhbXA7YW1wO3F1b3Q7Jmx0O2E8YnIvPgom Z3Q7ICZndDsgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnJhc3BiaWFuLm9yZy9SYXNwYmlhbkJ1Z3Mm YW1wO2FtcDtxdW90JnF1b3Q7PGJyLz4KJmd0OyAmZ3Q7IHRhcmdldD0mcXVvdDtfYmxhbmsmcXVv dDsmZ3Q7PGEgaHJlZj0iaHR0cDovL3d3dy5yYXNwYmlhbi5vcmcvUmFzcGJpYW5CdWdzJmFtcDth bXA7cXVvdCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly93d3cucmFzcGJpYW4ub3JnL1Jhc3BiaWFu QnVncyZhbXA7YW1wO3F1b3Q8L2E+Jmx0Oy9hJmd0OzsmYW1wO2x0Ozxici8+CiZndDsgJmd0OyAv ZGl2JmFtcDtndDsmbHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICZhbXA7Z3Q7ICZhbXA7bHQ7L2Rp diZhbXA7Z3Q7Jmx0O2JyJmd0Ozxici8+CiZndDsgJmd0OyAmYW1wO2d0OyAmYW1wO2x0Oy9kaXYm YW1wO2d0OyZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgJmFtcDtndDsgJmFtcDtsdDsvZGl2JmFt cDtndDsmYW1wO2x0Oy9kaXYmYW1wO2d0OyZhbXA7bHQ7L2JvZHkmYW1wO2d0OyZhbXA7bHQ7L2h0 bWwmYW1wO2d0OyZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgJmx0O2JyJmd0Ozxici8+CiZndDsg Jmd0OyAmYW1wO2d0OyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXyZsdDticiZndDs8YnIvPgomZ3Q7ICZndDsgJmFtcDtndDsgdHBtMiBtYWlsaW5nIGxpc3Qm bHQ7YnImZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICZhbXA7Z3Q7IHRwbTJAbGlzdHMuMDEub3JnJmx0O2Jy Jmd0Ozxici8+CiZndDsgJmd0OyAmYW1wO2d0OyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbGlz dHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vdHBtMiZxdW90Ozxici8+CiZndDsgJmd0OyB0YXJn ZXQ9JnF1b3Q7X2JsYW5rJnF1b3Q7Jmd0OzxhIGhyZWY9Imh0dHBzOi8vbGlzdHMuMDEub3JnL21h aWxtYW4vbGlzdGluZm8vdHBtMiIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vbGlzdHMuMDEub3Jn L21haWxtYW4vbGlzdGluZm8vdHBtMjwvYT4mbHQ7L2EmZ3Q7Jmx0O2JyJmd0Ozxici8+CiZndDsg Jmd0OyAmYW1wO25ic3A7Jmx0Oy9kaXYmZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICZsdDsvZGl2Jmd0Ozxi ci8+CiZndDsgJmd0OyAmbHQ7L2RpdiZndDs8YnIvPgomZ3Q7ICZndDsgJmx0Oy9kaXYmZ3Q7PGJy Lz4KJmd0OyAmZ3Q7PGJyLz4KJmd0OyAmZ3Q7ICZsdDtkaXYmZ3Q7JmFtcDtuYnNwOyZsdDsvZGl2 Jmd0Ozxici8+CiZndDsgJmd0Ozxici8+CiZndDsgJmd0OyAmbHQ7ZGl2IGNsYXNzPSZxdW90O3Np Z25hdHVyZSZxdW90OyZndDsmYW1wO25ic3A7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9i b2R5Jmd0OyZsdDsvaHRtbCZndDs8YnIvPgomZ3Q7IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fPGJyLz4KJmd0OyB0cG0yIG1haWxpbmcgbGlzdDxici8+CiZn dDsgdHBtMkBsaXN0cy4wMS5vcmc8YnIvPgomZ3Q7IDxhIGhyZWY9Imh0dHBzOi8vbGlzdHMuMDEu b3JnL21haWxtYW4vbGlzdGluZm8vdHBtMiIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vbGlzdHMu MDEub3JnL21haWxtYW4vbGlzdGluZm8vdHBtMjwvYT48L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rp dj4KCjxkaXY+Jm5ic3A7PC9kaXY+Cgo8ZGl2IGNsYXNzPSJzaWduYXR1cmUiPiZuYnNwOzwvZGl2 PjwvZGl2PjwvYm9keT48L2h0bWw+Cg== --===============1031685279574950424==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============6430786769746427524==" MIME-Version: 1.0 From: Roberts, William C Subject: Re: [tpm2] Problem with Infineon Iridium SLB 9670 TPM2.0 Date: Fri, 23 Mar 2018 20:42:12 +0000 Message-ID: <476DC76E7D1DF2438D32BFADF679FC563FF08D22@ORSMSX101.amr.corp.intel.com> In-Reply-To: trinity-16ea0459-8015-4fab-9279-0bdd10befd3d-1521835914425@3c-app-gmx-bs20 List-ID: To: tpm2@lists.01.org --===============6430786769746427524== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable > -----Original Message----- > From: madprops(a)gmx.net [mailto:madprops(a)gmx.net] > Sent: Friday, March 23, 2018 1:12 PM > To: Roberts, William C > Cc: Tricca, Philip B ; tpm2(a)lists.01.org > Subject: Aw: RE: [tpm2] Problem with Infineon Iridium SLB 9670 TPM2.0 > = > Thanks for the information, William and Philip! So yes, I installed the t= ools before > I installed the tabrmd. I found corresponsing messages in the config.log: > = > [...] > No package 'tcti-tabrmd' found > configure:12892: $? =3D 1 > configure:12906: $PKG_CONFIG --exists --print-errors "tcti-tabrmd" > Package tcti-tabrmd was not found in the pkg-config search path. > Perhaps you should add the directory containing `tcti-tabrmd.pc' > to the PKG_CONFIG_PATH environment variable No package 'tcti-tabrmd' found > configure:12909: $? =3D 1 > configure:12923: result: no > No package 'tcti-tabrmd' found > configure:12980: checking for CRYPTO > [...] > = > When I specify -v to the tool commands option list I get: > = > pi(a)raspberrypi:~/TPM/tpm2-tss $ sudo tpm2_getrandom 32 -v > tool=3D"tpm2_getrandom" version=3D"3.0.3" tctis=3D"socket,device," > pi(a)raspberrypi:~/TPM/tpm2-tss $ sudo tpm2_getrandom 32 -T tabrmd > ERROR: Unknown tcti, got: "tabrmd" > = > I re-configured/built/installed the tools, but that did not help. I can s= till interact > with the TPM by stopping tabrmd and executing: I'm assuming you checked to make sure configure picked up abrmd? What does the -v for tools give you now? Can you specify -T abrmd from the tools? > = > pi(a)raspberrypi:~/TPM/tpm2-tss $ sudo tpm2_getrandom 8 -T device:/dev/tp= m0 > 0xBB 0x58 0x77 0x7F 0x58 0xFE 0x5D 0xFE > = > Gesendet: Freitag, 23. M=C3=A4rz 2018 um 20:58 Uhr > Von: "Roberts, William C" > An: "Tricca, Philip B" , "madprops(a)gmx.net" > > Cc: "tpm2(a)lists.01.org" > Betreff: RE: [tpm2] Problem with Infineon Iridium SLB 9670 TPM2.0 > = > = > > -----Original Message----- > > From: tpm2 [mailto:tpm2-bounces(a)lists.01.org] On Behalf Of Philip > > Tricca > > Sent: Tuesday, March 20, 2018 12:20 PM > > To: madprops(a)gmx.net > > Cc: tpm2(a)lists.01.org > > Subject: Re: [tpm2] Problem with Infineon Iridium SLB 9670 TPM2.0 > > > > Hey madprops, > > > > Thanks for the additional data. > > > > On Mon, Mar 19, 2018 at 09:17:33PM +0100, madprops(a)gmx.net wrote: > > > > > > > > charset=3Dutf-8">
> > Verdana;font-size: 12.0px;">
Thank you, Philip! I > > > meanwhile noticed the tools work when I stop tpm2-abrmd and connect > > > directly to the TPM: 
> > > > Well this debunks my theory that your issue was down in the dev tree > > :) > > > > >
 
> > > > > >
pi(a)raspberrypi:~ $ sudo tpm2_pcrlist -T device:/dev/tpm0
> > > sha1 :
> > >   0  : 0000000000000000000000000000000000000000
> > >   1  : 0000000000000000000000000000000000000000
> > > [...]
> > > > > >
 
> > > > > >
Please find below the information you asked for. While > > > tpm2-abrmd is running (as root) I still get this:
> > > > > >
 
> > > > > >
pi(a)raspberrypi:~ $ tpm2_pcrlist
> > > ERROR: Failed to initialize tcti context: 0x1
> > > > Seeing this error while the tabrmd is running, but having the tools > > execute successfully with it stopped is a big hint. This indicates > > that the tools are probably trying to connect to the /dev/tpm0 device > > node directly instead of using the tabrmd. > > > > I've only see this happen if / when the tools are built in advance of > > building *and* installing the tabrmd. This happens because the tools > > build looks for the installed TCTI library for communicating with the > > daemon. If it doesn't find this library then the tools can't be linked > > against it and the build will fall back to using the device TCTI as > > the default. The `config.log` file in the tools build has the output fr= om the > `configure` script and this will tell you which TCTI modules are enabled = / disabled. > > > > Another way to check this theory is to take one of the tools > > executables and use `readelf` to dump information about the libraries > > that it links to. If the tabrmd TCTI library isn't listed then somethin= g it up. > = > You can also specify -v to your tool commands option list to see what tct= i's it > supports. > The first tcti in the string is the default IIC. I should have had an add= itional field for > default. > = > On master, we switched to dynamic TCTIs with abrmd always being the defau= lt. > I think the 4.0 release, I'm going to add a field to explicitly say what = the default Is. > = > > > > Everything else below looks right. > > > > Regards, > > Philip > > > > >
 
> > > > > >
pi(a)raspberrypi:~ $ export TPM2TOOLS_TCTI_NAME=3Dtabrmd
> > > pi(a)raspberrypi:~ $ tpm2_pcrlist
> > > ERROR: Unknown tcti, got: "tabrmd"
> > > > > >
 
> > > > > >
=3D=3D=3D=3D=3D=3D=3D=3D Versions:
> > > > > >
tpm2-abrmd: 1.3.1_rc0
> > > tpm2-tools: 3.0.3
> > > tpm2-tss: 1.4.0
> > > > > >
 
> > > > > >
=3D=3D=3D=3D=3D=3D=3D=3D /dev/tpm0
> > > > > >
pi(a)raspberrypi:~ $ ls -la /dev/tpm0
> > > crw------- 1 root root 10, 224 Mar 17 21:35 /dev/tpm0
> > > > > >
=3D=3D=3D=3D=3D=3D=3D=3D tpm2-abrmd LOG
> > > > > >
root(a)raspberrypi:/home/pi# tpm2-abrmd
> > > ** INFO: tabrmd startup
> > > ** (process:1852): DEBUG: tcti_factory_set_property
> > > ** (process:1852): DEBUG:   PROP_TCTI_TYPE
> > > ** (process:1852): DEBUG:   value: 0x1
> > > ** (process:1852): DEBUG: tcti_factory_set_property
> > > ** (process:1852): DEBUG: TctiFactory set device_name: /dev/tpm0
> > > ** (process:1852): DEBUG: tcti_factory_set_property
> > > ** (process:1852): DEBUG: TctiFactory set socket_address: > > > 127.0.0.1
> > > ** (process:1852): DEBUG: tcti_factory_set_property
> > > ** (process:1852): DEBUG: TctiFactory set socket_port: 2321
> > > ** INFO: logging to stdout
> > > ** (tpm2-abrmd:1852): DEBUG: tcti_factory_get_tcti
> > > ** (tpm2-abrmd:1852): DEBUG: TctiDevice set filename: /dev/tpm0
> > > ** INFO: entering g_main_loop
> > > ** INFO: init_thread_func start
> > > ** (tpm2-abrmd:1852): DEBUG: random_class_init
> > > ** (tpm2-abrmd:1852): DEBUG: opening entropy source: > > > /dev/urandom
> > > ** (tpm2-abrmd:1852): DEBUG: reading from entropy source: > > > /dev/urandom
> > > ** (tpm2-abrmd:1852): DEBUG: seeding rand with -1263045295
> > > ** (tpm2-abrmd:1852): DEBUG: connection_manager_set_property: > > > 0x15c5ef0
> > > ** (tpm2-abrmd:1852): DEBUG:   max_connections: 0x1b
> > > ** (tpm2-abrmd:1852): DEBUG: ConnectionManager: 0x15c5ef0
> > > ** (tpm2-abrmd:1852): DEBUG: IpcFrontendDbus set bus_name: > > > com.intel.tss2.Tabrmd
> > > ** (tpm2-abrmd:1852): DEBUG: ipc_frontend_connect: 0x75b01a08
> > > ** (tpm2-abrmd:1852): DEBUG: tcti_initialize: 0x15c5200
> > > ** (tpm2-abrmd:1852): DEBUG: sapi_context_init w/ Tcti: > > > 0x15c5200
> > > ** (tpm2-abrmd:1852): DEBUG: tcti_peek_context: 0x15c5200
> > > ** (tpm2-abrmd:1852): DEBUG: Allocating 0x1040 bytes for SAPI > > > context
> > > ** (tpm2-abrmd:1852): DEBUG: access_broker_set_property: > > > 0x75b0b720
> > > ** (tpm2-abrmd:1852): DEBUG:   sapi_context: > > > 0x75b0a690
> > > ** (tpm2-abrmd:1852): DEBUG: access_broker_set_property: > > > 0x75b0b720
> > > ** (tpm2-abrmd:1852): DEBUG:   tcti: 0x15c5200
> > > ** (tpm2-abrmd:1852): DEBUG: created AccessBroker: 0x75b0b720
> > > ** (tpm2-abrmd:1852): DEBUG: access_broker_init_tpm: 0x75b0b720
> > > ** INFO: on_bus_acquired: com.intel.tss2.Tabrmd
> > > ** INFO: on_name_acquired: com.intel.tss2.Tabrmd
> > > ** (tpm2-abrmd:1852): DEBUG: Got proxy object for DBus daemon.
> > > ** (tpm2-abrmd:1852): DEBUG: > > > access_broker_get_tpm_properties_fixed
> > > ** (tpm2-abrmd:1852): DEBUG: command_attrs_class_init
> > > ** (tpm2-abrmd:1852): DEBUG: created CommandAttrs: 0x75b01260
> > > ** (tpm2-abrmd:1852): DEBUG: GetCapabilty for 0x500 commands
> > > ** (tpm2-abrmd:1852): DEBUG: got attributes for 0x5a commands
> > > ** (tpm2-abrmd:1852): DEBUG: command_source_class_init
> > > ** (tpm2-abrmd:1852): DEBUG: command_source_set_properties: > > > 0x75b02c50
> > > ** (tpm2-abrmd:1852): DEBUG:   command_attrs: > > 0x75b01260
> > > ** (tpm2-abrmd:1852): DEBUG: command_source_set_properties: > > > 0x75b02c50
> > > ** (tpm2-abrmd:1852): DEBUG: created command source: 0x75b02c50
> > > ** (tpm2-abrmd:1852): DEBUG: session_list_new with max-per-connection: > > > 0x4
> > > ** (tpm2-abrmd:1852): DEBUG: session_list_init
> > > ** (tpm2-abrmd:1852): DEBUG: session_list_set_property: 0x15c5fb0 > > > max-per-connection: 4
> > > ** (tpm2-abrmd:1852): DEBUG: resource_manager_set_property: > > > 0x75b02ca0
> > > ** (tpm2-abrmd:1852): DEBUG:   in_queue: 0x75b00f90
> > > ** (tpm2-abrmd:1852): DEBUG: resource_manager_set_property: > > > 0x75b02ca0
> > > ** (tpm2-abrmd:1852): DEBUG:   access_broker: > > > 0x75b0b720
> > > ** (tpm2-abrmd:1852): DEBUG: resource_manager_set_property: > > > 0x75b02ca0
> > > ** (tpm2-abrmd:1852): DEBUG: created ResourceManager: 0x75b02ca0
> > > ** (tpm2-abrmd:1852): DEBUG: response_sink_set_property
> > > ** (tpm2-abrmd:1852): DEBUG:   setting PROP_IN_QUEUE
> > > ** (tpm2-abrmd:1852): DEBUG: created response source: 0x75b012a8
> > > ** (tpm2-abrmd:1852): DEBUG: source_add_sink
> > > ** (tpm2-abrmd:1852): DEBUG: command_soruce_add_sink: > CommandSource: > > > 0x75b02c50 , Sink: 0x75b02ca0
> > > ** (tpm2-abrmd:1852): DEBUG: command_source_set_properties: > > > 0x75b02c50
> > > ** (tpm2-abrmd:1852): DEBUG:   sink: 0x75b02ca0
> > > ** (tpm2-abrmd:1852): DEBUG: source_add_sink
> > > ** (tpm2-abrmd:1852): DEBUG: resource_manager_add_sink: > > > ResourceManager: 0x75b02ca0, Sink: 0x75b012a8
> > > ** (tpm2-abrmd:1852): DEBUG: resource_manager_set_property: > > > 0x75b02ca0
> > > ** (tpm2-abrmd:1852): DEBUG:   sink: 0x75b012a8
> > > ** INFO: init_thread_func done
> > > ** (tpm2-abrmd:1852): DEBUG: resource_manager_thread start
> > > ** (tpm2-abrmd:1852): DEBUG: response_sink_thread blocking on input > > > queue: 0x75b00e50
> > > ** (tpm2-abrmd:1852): DEBUG: message_queue_dequeue 0x75b00e50
> > > ** (tpm2-abrmd:1852): DEBUG: message_queue_dequeue 0x75b00f90
> > > > > >
 
> > > > > >
=3D=3D=3D=3D=3D=3D=3D=3D MISC
> > > > > >
pi(a)raspberrypi:~/TPM/tpm2-tss $ cat > > > /etc/dbus-1/system.d/tpm2-abrmd.conf
> > > <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus > > > Configuration 1.0//EN"
> > >  "http://www.freedesktop.org/standards/dbus/1.0/busconfig. > > > dt > > > d">
> > > <busconfig>
> > >   <!-- ../system.conf have denied everything, so we just > > > punch some holes -->
  <policy > > > user=3D"tss">
    <allow > > > own=3D"com.intel.tss2.Tabrmd"/>
> > >   </policy>
> > >   <policy user=3D"root">
    > > > <allow own=3D"com.intel.tss2.Tabrmd"/>
> > >   </policy>
> > >   <policy context=3D"default">
> > >     <allow > > > send_destination=3D"com.intel.tss2.Tabrmd"/>
> > >     <allow > > > receive_sender=3D"com.intel.tss2.Tabrmd"/>
> > >   </policy>
> > > </busconfig>
> > > > > >
 
> > > > > >
 
> > > > > >
  > > >
> > 10px 10px; border-left:2px solid #C3D9E5; word-wrap: break-word; > > > -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"> > > >
Gesendet: Montag, 19. > > > M=C3=A4rz > > > 2018 um 06:07 Uhr
Von: "Philip Tricca" > > > <philip.b.tricca(a)intel.com>
> > > An: madprops(a)gmx.net
> > > Cc: tpm2(a)lists.01.org
> > > Betreff: Re: [tpm2] Problem with Infineon Iridium SLB > > > 9670 TPM2.0
> > > > > >
Hey there madprops,

On Sun, Mar > > > 18, 2018 at 02:04:15PM +0100, madprops(a)gmx.net wrote:
> > > > <html><head>
> <meta > > > http-equiv=3D"Content-Type" content=3D"text/html; > > > charset=3Dutf-8"></head><body><div > > > style=3D"font-family: Verdana;font-size: > > > 12.0px;"><div>
> <div > > > class=3D"signature">
> > > > <div class=3D"signature">
> > > > <div>I'm trying to get an &quot;Infineon Iridium SLB > > > 9670 TPM 2.0 SPI Board&quot; run on my Raspberry Pi 3. I have > > > downloaded, compiled and installed the latest versions of > > > tpm2-abrmd, tpm2-tss and tpm2-tools. I started tpm2-abrmd as root, > > > hoping that I can then interact with the Infineon TPM using tpm2-tool= s. > > > &quot;tpm2_pcrlist&quot; and all other tpm2_* commands, > > > however, return error &quot;ERROR: Failed to initialize tcti > > > context: 0x1&quot;.</div>
>

Can you please > > > provide some more info about your configuration?
> > > Specifically:
> > > - the version of the TSS2 libraries you're using
> > > - the version of the tabrmd you're using
> > > - the configuration options you're passing to each

A log > > > file from the tabrmd with logging dialed all the way up would be
> > > helpful. Since tabrmd uses glib and it's logging infrastructure you > > > dial
up the debug output all the way by setting > > > `G_MESSAGES_DEBUG=3Dall` in the
daemon's environment.

> > > > <div>&nbsp;</div>
> > > >
> > > > <div>Any ideas? Thanks!</div>

The most > > > common issue we've seen people run into when installing from
> > > source is that the default value for the `prefix` and some other
> > > installation directories aren't what most expect.

Still, if > > > you're running the daemon as root you shouldn't have any
issues > > > w/r to permissions on the /dev/tpm0 device node so I wonder if
> > > this node even exists on your platform. You may want to check to see > > > if
`/dev/tpm0` is even present on your system. You're on an ARM > > > platform
which means the kernel will only be aware of the TPM2 > > > device you've
added if you configure the device tree > > > properly.

Regards,
Philip

> > > > <div>pi(a)raspberrypi:~/TPM/tpm2-abrmd $ uname -a<br>
> > > > Linux raspberrypi 4.4.50-v7&#43; #1 SMP Wed Mar 14 14:01:00 > > > PDT 2018 armv7l GNU/Linux (&lt;=3D=3D includes patch provided by > > > Infineon)</div>
>
> > > > <div>&nbsp;</div>
> > > >
> > > > <div>pi(a)raspberrypi:~/TPM/tpm2-abrmd $ dmesg | grep > > > tpm<br>
> [&nbsp;&nbsp;&nbsp; 3.700384] > > > tpm_spi_tis spi0.1: 2.0 TPM (device-id 0xB6BC, rev-id > > > 16)</div>
>
> > > > <div>&nbsp;</div>
> > > >
> > > > <div>pi(a)raspberrypi:/etc $ cat > > > /etc/os-release<br>
> PRETTY_NAME=3D&quot;Raspbian > > > GNU/Linux 9 (stretch)&quot;<br>
> > > > NAME=3D&quot;Raspbian GNU/Linux&quot;<br>
> > > > VERSION_ID=3D&quot;9&quot;<br>
> > > > VERSION=3D&quot;9 (stretch)&quot;<br>
> > > > ID=3Draspbian<br>
> ID_LIKE=3Ddebian<br>
> > > > HOME_URL=3D&quot; > > target=3D"_blank">http://www.raspbian.org/&quot;<br>
> > > > SUPPORT_URL=3D&quot; > > href=3D"http://www.raspbian.org/RaspbianForums&quot" > > > target=3D"_blank">http://www.raspbian.org/RaspbianForums&quot; > > > &l t;br>
> BUG_REPORT_URL=3D&quot; > > href=3D"http://www.raspbian.org/RaspbianBugs&quot" > > > target=3D"_blank">http://www.raspbian.org/RaspbianBugs&quot;&l > > > t; > > > /div>
> > > > </div>
> > > > </div>
> > > > </div></div></body></html>
> > >
> > > > _______________________________________________
> > > > tpm2 mailing list
> > > > tpm2(a)lists.01.org
> > > > > > target=3D"_blank">https://lists.01.org/mailman/listinfo/tpm2
> > >  
> > >
> > >
> > >
> > > > > >
 
> > > > > >
 
> > _______________________________________________ > > tpm2 mailing list > > tpm2(a)lists.01.org > > https://lists.01.org/mailman/listinfo/tpm2 > = >=20 --===============6430786769746427524==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============1400407043077845894==" MIME-Version: 1.0 From: Trevor Woerner Subject: Re: [tpm2] Problem with Infineon Iridium SLB 9670 TPM2.0 Date: Wed, 28 Mar 2018 11:51:26 -0400 Message-ID: In-Reply-To: 476DC76E7D1DF2438D32BFADF679FC563FF08D22@ORSMSX101.amr.corp.intel.com List-ID: To: tpm2@lists.01.org --===============1400407043077845894== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Wow, what a great time to come across this thread! I also have been trying to use TPM on a RPi3 and was seeing the exact same problems. I, however, was using OE and meta-measured to build my images. It turns out that meta-measured/recipes-tpm/tpm2-tools wasn't DEPENDing on tpm2-abrmd, so all builds as a result were not enabling the tabrmd TCTI. Hence: https://github.com/flihp/meta-measured/pull/68 By the way, what's the difference between "abrmd" and "tabrmd"? It seems rather confusing that the tools list "tabrmd" as a TCTI, but in order to use it one specifies "abrmd". Something feels wrong. # tpm2_pcrlist -v tool=3D"tpm2_pcrlist" version=3D"" tctis=3D"tabrmd,socket,device," # tpm2_pcrlist -T tabrmd ERROR: Unknown tcti, got: "tabrmd" # tpm2_pcrlist -T abrmd sha1 : 0 : 0000000000000000000000000000000000000000 1 : 0000000000000000000000000000000000000000 ... --===============1400407043077845894== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGRpdiBkaXI9Imx0ciI+PGRpdj48ZGl2PjxkaXY+V293LCB3aGF0IGEgZ3JlYXQgdGltZSB0byBj b21lIGFjcm9zcyB0aGlzIHRocmVhZCE8YnI+PGJyPjwvZGl2PkkgYWxzbyBoYXZlIGJlZW4gdHJ5 aW5nIHRvIHVzZSBUUE0gb24gYSBSUGkzIGFuZCB3YXMgc2VlaW5nIHRoZSBleGFjdCBzYW1lIHBy b2JsZW1zLiBJLCBob3dldmVyLCB3YXMgdXNpbmcgT0UgYW5kIG1ldGEtbWVhc3VyZWQgdG8gYnVp bGQgbXkgaW1hZ2VzLiBJdCB0dXJucyBvdXQgdGhhdCBtZXRhLW1lYXN1cmVkL3JlY2lwZXMtdHBt L3RwbTItdG9vbHMgd2FzbiYjMzk7dCBERVBFTkRpbmcgb24gdHBtMi1hYnJtZCwgc28gYWxsIGJ1 aWxkcyBhcyBhIHJlc3VsdCB3ZXJlIG5vdCBlbmFibGluZyB0aGUgdGFicm1kIFRDVEkuPGJyPjxi cj48L2Rpdj5IZW5jZTogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2ZsaWhwL21ldGEtbWVh c3VyZWQvcHVsbC82OCI+aHR0cHM6Ly9naXRodWIuY29tL2ZsaWhwL21ldGEtbWVhc3VyZWQvcHVs bC82ODwvYT48YnI+PGJyPjwvZGl2PkJ5IHRoZSB3YXksIHdoYXQmIzM5O3MgdGhlIGRpZmZlcmVu Y2UgYmV0d2VlbiAmcXVvdDthYnJtZCZxdW90OyBhbmQgJnF1b3Q7dGFicm1kJnF1b3Q7PyBJdCBz ZWVtcyByYXRoZXIgY29uZnVzaW5nIHRoYXQgdGhlIHRvb2xzIGxpc3QgJnF1b3Q7dGFicm1kJnF1 b3Q7IGFzIGEgVENUSSwgYnV0IGluIG9yZGVyIHRvIHVzZSBpdCBvbmUgc3BlY2lmaWVzICZxdW90 O2Ficm1kJnF1b3Q7LiBTb21ldGhpbmcgZmVlbHMgd3JvbmcuPGJyPjxicj4jIHRwbTJfcGNybGlz dCAtdjxicj50b29sPSZxdW90O3RwbTJfcGNybGlzdCZxdW90OyB2ZXJzaW9uPSZxdW90OyZxdW90 OyB0Y3Rpcz0mcXVvdDt0YWJybWQsc29ja2V0LGRldmljZSwmcXVvdDs8YnI+PGJyPiMgdHBtMl9w Y3JsaXN0IC1UIHRhYnJtZDxicj5FUlJPUjogVW5rbm93biB0Y3RpLCBnb3Q6ICZxdW90O3RhYnJt ZCZxdW90Ozxicj48YnI+IyB0cG0yX3Bjcmxpc3QgLVQgYWJybWQgPGJyPnNoYTEgOjxicj7CoCAw wqAgOiAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwPGJyPsKgIDHCoCA6 IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA8YnI+Li4uPGJyPjwvZGl2 Pgo= --===============1400407043077845894==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============2782092370272316895==" MIME-Version: 1.0 From: Philip Tricca Subject: Re: [tpm2] Problem with Infineon Iridium SLB 9670 TPM2.0 Date: Wed, 28 Mar 2018 10:40:16 -0700 Message-ID: <20180328174016.GA25666@intel.com> In-Reply-To: CAHUNapQacFucznccuXp5SeKm566wwXCGz91ckvJ-JcupuNqM1A@mail.gmail.com List-ID: To: tpm2@lists.01.org --===============2782092370272316895== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hey Trevor, On Wed, Mar 28, 2018 at 11:51:26AM -0400, Trevor Woerner wrote: > Wow, what a great time to come across this thread! > = > I also have been trying to use TPM on a RPi3 and was seeing the exact same > problems. I, however, was using OE and meta-measured to build my images. = It > turns out that meta-measured/recipes-tpm/tpm2-tools wasn't DEPENDing on > tpm2-abrmd, so all builds as a result were not enabling the tabrmd TCTI. > = > Hence: https://github.com/flihp/meta-measured/pull/68 > = > By the way, what's the difference between "abrmd" and "tabrmd"? There isn't one really. The daemon was named 'tpm2-abrmd' instead of 'tabrmd' based on some early user feedback. Having the 'tpm2' in the name of the daemon made its purpose more clear according to this user. 'tabrmd' is the same name just with the 'tpm2' collapsed into the rest of the acronym. I can see where having an additional variation would cause confusion. > It seems > rather confusing that the tools list "tabrmd" as a TCTI, but in order to > use it one specifies "abrmd". Something feels wrong. Being consistent is important especially w/r/t documentation. Seems like a worthy bug for the tools issue tracker. Also thanks for giving meta-measured some love. I've been neglecting it a bit on account of work on the impending 2.0 release of the core TSS2 libraries. Once we ship the next major release of all components my plan is to work on upstreaming the recipes to whatever OE layer is appropriate to get them properly supported. Philip > # tpm2_pcrlist -v > tool=3D"tpm2_pcrlist" version=3D"" tctis=3D"tabrmd,socket,device," > = > # tpm2_pcrlist -T tabrmd > ERROR: Unknown tcti, got: "tabrmd" > = > # tpm2_pcrlist -T abrmd > sha1 : > 0 : 0000000000000000000000000000000000000000 > 1 : 0000000000000000000000000000000000000000 > ... > _______________________________________________ > tpm2 mailing list > tpm2(a)lists.01.org > https://lists.01.org/mailman/listinfo/tpm2 --===============2782092370272316895==--