diff options
Diffstat (limited to 'tests/openpgp/plain-largeo.asc')
-rw-r--r-- | tests/openpgp/plain-largeo.asc | 4205 |
1 files changed, 4205 insertions, 0 deletions
diff --git a/tests/openpgp/plain-largeo.asc b/tests/openpgp/plain-largeo.asc new file mode 100644 index 0000000..2f14bdd --- /dev/null +++ b/tests/openpgp/plain-largeo.asc @@ -0,0 +1,4205 @@ +-----BEGIN PGP ARMORED FILE----- +Version: GnuPG v2 +Comment: Use "gpg --dearmor" for unpacking + +IyBIQUNLSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgIC0qLSBvcmcgLSotCiMrVElUTEU6IEEgSGFja2VyJ3Mg +R3VpZGUgdG8gR251UEcKIytURVhUOiBTb21lIG5vdGVzIG9uIEdudVBHIGludGVy +bmFscwojK1NUQVJUVVA6IHNob3dhbGwKIytPUFRJT05TOiBeOnt9CgoqIEhvdyB0 +byBjb250cmlidXRlCgogIFRoZSBmb2xsb3dpbmcgc3R1ZmYgZXhwbGFpbnMgc29t +ZSBiYXNpYyBwcm9jZWR1cmVzIHlvdSBuZWVkIHRvCiAgZm9sbG93IGlmIHlvdSB3 +YW50IHRvIGNvbnRyaWJ1dGUgY29kZSBvciBkb2N1bWVudGF0aW9uLgoKKiogTm8g +bW9yZSBDaGFuZ2VMb2cgZmlsZXMKCkRvIG5vdCBtb2RpZnkgYW55IG9mIHRoZSBD +aGFuZ2VMb2cgZmlsZXMgaW4gR251UEcuICBTdGFydGluZyBvbgpEZWNlbWJlciAx +c3QsIDIwMTEgd2UgcHV0IGNoYW5nZSBpbmZvcm1hdGlvbiBvbmx5IGluIHRoZSBH +SVQgY29tbWl0CmxvZywgYW5kIGdlbmVyYXRlIGEgdG9wLWxldmVsIENoYW5nZUxv +ZyBmaWxlIGZyb20gbG9ncyBhdCAibWFrZSBkaXN0Igp0aW1lLiAgQXMgc3VjaCwg +dGhlcmUgYXJlIHN0cmljdCByZXF1aXJlbWVudHMgb24gdGhlIGZvcm0gb2YgdGhl +CmNvbW1pdCBsb2cgbWVzc2FnZXMuICBUaGUgb2xkIENoYW5nZUxvZyBmaWxlcyBo +YXZlIGFsbCBiZSByZW5hbWVkIHRvCkNoYW5nZUxvZy0yMDExCgoqKiBDb21taXQg +bG9nIHJlcXVpcmVtZW50cwoKWW91ciBjb21taXQgbG9nIHNob3VsZCBhbHdheXMg +c3RhcnQgd2l0aCBhIG9uZS1saW5lIHN1bW1hcnksIHRoZQpzZWNvbmQgbGluZSBz +aG91bGQgYmUgYmxhbmssIGFuZCB0aGUgcmVtYWluaW5nIGxpbmVzIGFyZSB1c3Vh +bGx5CkNoYW5nZUxvZy1zdHlsZSBlbnRyaWVzIGZvciBhbGwgYWZmZWN0ZWQgZmls +ZXMuICBIb3dldmVyLCBpdCdzIGZpbmUKLS0tIGV2ZW4gcmVjb21tZW5kZWQgLS0t +IHRvIHdyaXRlIGEgZmV3IGxpbmVzIG9mIHByb3NlIGRlc2NyaWJpbmcgdGhlCmNo +YW5nZSwgd2hlbiB0aGUgc3VtbWFyeSBhbmQgQ2hhbmdlTG9nIGVudHJpZXMgZG9u +J3QgZ2l2ZSBlbm91Z2ggb2YKdGhlIGJpZyBwaWN0dXJlLiAgT21pdCB0aGUgbGVh +ZGluZyBUQUJzIHRoYXQgeW91IGFyZSBzZWVpbmcgaW4gYQoicmVhbCIgQ2hhbmdl +TG9nIGZpbGUsIGJ1dCBrZWVwIHRoZSBtYXhpbXVtIGxpbmUgbGVuZ3RoIGF0IDcy +IG9yCnNtYWxsZXIsIHNvIHRoYXQgdGhlIGdlbmVyYXRlZCBDaGFuZ2VMb2cgbGlu +ZXMsIGVhY2ggd2l0aCBpdHMgbGVhZGluZwpUQUIsIHdpbGwgbm90IGV4Y2VlZCA4 +MCBjb2x1bW5zLiAgSWYgeW91IHdhbnQgdG8gYWRkIHRleHQgd2hpY2ggc2hhbGwK +bm90IGJlIGNvcGllZCB0byB0aGUgQ2hhbmdlTG9nLCBzZXBhcmF0ZSBpdCBieSBh +IGxpbmUgY29uc2lzdGluZyBvZgp0d28gZGFzaGVzIGF0IHRoZSBiZWdpbiBvZiBh +IGxpbmUuCgpUaGUgb25lLWxpbmUgc3VtbWFyeSB1c3VhbGx5IHN0YXJ0cyB3aXRo +IGEga2V5d29yZCB0byBpZGVudGlmeSB0aGUKbWFpbmx5IGFmZmVjdGVkIHN1YnN5 +c3RlbS4gIElmIG1vcmUgdGhhbiBvbmUga2V5d29yZCBpcyByZXF1aXJlZCB0aGUK +YXJlIGRlbGltaXRlZCBieSBhIGNvbW1hIChlLmcuID1zY2QsdzMyOj0pLiBDb21t +b25seSBmb3VuZCBrZXl3b3JkcwphcmUKCiAtIGFnZW50ICAgOjogVGhlIGdwZy1h +Z2VudCBjb21wb25lbnQKIC0gc3NoICAgICA6OiBUaGUgc3NoLWFnZW50IHBhcnQg +b2YgdGhlIGFnZW50CiAtIGNvbW1vbiAgOjogQ29kZSBpbiBjb21tb24KIC0gaW9i +dWYgICA6OiBUaGUgSU9CVUYgc3lzdGVtIGluIGNvbW1vbgogLSBncGcgICAgIDo6 +IFRoZSBncGcgb3IgZ3BndiBjb21wb25lbnRzCiAtIGdwZ3NtICAgOjogVGhlIGdw +Z3NtIGNvbXBvbmVudAogLSBzY2QgICAgIDo6IFRoZSBzY2RhZW1vbiBjb21wb25l +bnQKIC0gY2NpZCAgICA6OiBUaGUgQ0NJRCBkcml2ZXIgaW4gc2NkYWVtb24KIC0g +ZGlybW5nciA6OiBUaGUgZGlybW5nciBjb21wb25lbnQKIC0gdzMyICAgICA6OiBX +aW5kb3dzIHJlbGF0ZWQgY29kZQogLSBwbyAgICAgIDo6IFRyYW5zbGF0aW9ucwog +LSBidWlsZCAgIDo6IENoYW5nZXMgdG8gdGhlIGJ1aWxkIHN5c3RlbQogLSBzcGVl +ZG8gIDo6IFNwZWVkbyBidWlsZCBzeXN0ZW0gc3BlY2lmaWMgY2hhbmdlcwogLSBk +b2MgICAgIDo6IERvY3VtZW50YXRpb24gY2hhbmdlcwoKVHlwbyBmaXhlcyBhbmQg +ZG9jdW1lbnRhdGlvbiB1cGRhdGVzIGRvbid0IG5lZWQgYSBDaGFuZ2VMb2cgZW50 +cnk7CnRodXMgeW91IHdvdWxkIHVzZSBhIGNvbW1pdCBtZXNzYWdlIGxpa2UKCiMr +YmVnaW5fZXhhbXBsZQpGaXggdHlwbyBpbiBhIGNvbW1lbnQKCi0tCiMrZW5kX2V4 +YW1wbGUKClRoZSBtYXJrZXIgbGluZSBoZXJlIGlzIGltcG9ydGFudDsgd2l0aG91 +dCBpdCB0aGUgZmlyc3QgbGluZSB3b3VsZAphcHBlYXIgaW4gdGhlIENoYW5nZUxv +Zy4KCklmIHlvdSBleGNlcHRpb25hbGx5IG5lZWQgdG8gaGF2ZSBsb25nZXIgbGlu +ZXMgaW4gYSBjb21taXQgbG9nIHlvdSBtYXkKZG8gdGhpcyBhZnRlciB0aGlzIHNj +aXNzb3IgbGluZToKIytiZWdpbl9leGFtcGxlCiMgLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tID44IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojK2VuZF9leGFtcGxl +CihoYXNoLCBibGFuaywgMjQgZGFzaGVzLCBibGFuaywgc2Npc3NvciwgYmxhbmss +IDI0IGRhc2hlcykuCk5vdGUgdGhhdCBzdWNoIGEgY29tbWVudCB3aWxsIGJlIHJl +bW92ZWQgaWYgdGhlIGdpdCBjb21taXQgb3B0aW9uCj0tLWNsZWFudXA9c2Npc3Nv +cj0gaXMgdXNlZC4KCgoqKiBMaWNlbnNlIHBvbGljeQoKICBHbnVQRyBpcyBsaWNl +bnNlZCB1bmRlciB0aGUgR1BMdjMrIHdpdGggc29tZSBmaWxlcyB1bmRlciBhIG1p +eGVkCiAgTEdQTHYzKy9HUEx2MisgbGljZW5zZS4gIEl0IGlzIHRodXMgaW1wb3J0 +YW50LCB0aGF0IGFsbCBjb250cmlidXRlZAogIGNvZGUgYWxsb3dzIGZvciBhbiB1 +cGRhdGUgb2YgdGhlIGxpY2Vuc2U7IGZvciBleGFtcGxlIHdlIGNhbid0CiAgYWNj +ZXB0IGNvZGUgdW5kZXIgdGhlIEdQTHYyKG9ubHkpLgoKICBHbnVQRyB1c2VkIHRv +IGhhdmUgYSBzdHJpY3QgcG9saWN5IG9mIHJlcXVpcmluZyBjb3B5cmlnaHQKICBh +c3NpZ25tZW50cyB0byB0aGUgRlNGLiAgVG8gYXZvaWQgdGhpcyBtYWpvciBvcmdh +bml6YXRpb25hbCBvdmVyaGVhZAogIGFuZCB0byBhbGxvdyBpbmNsdXNpb24gb2Yg +Y29kZSwgbm90IGNvcHlyaWdodGVkIGJ5IHRoZSBGU0YsIHRoaXMKICBwb2xpY3kg +aGFzIGJlZW4gcmVsYXhlZCBvbiAyMDEzLTAzLTI5LiAgSXQgaXMgbm93IGFsc28g +cG9zc2libGUgdG8KICBjb250cmlidXRlIGNvZGUgYnkgYXNzZXJ0aW5nIHRoYXQg +dGhlIGNvbnRyaWJ1dGlvbiBpcyBpbiBhY2NvcmRhbmNlCiAgdG8gdGhlICJMaWJn +Y3J5cHQgRGV2ZWxvcGVyJ3MgQ2VydGlmaWNhdGUgb2YgT3JpZ2luIiBhcyBmb3Vu +ZCBpbiB0aGUKICBmaWxlICJEQ08iLiAgKEV4Y2VwdCBmb3IgYSBzbGlnaHQgd29y +ZGluZyBjaGFuZ2UsIHRoaXMgRENPIGlzCiAgaWRlbnRpY2FsIHRvIHRoZSBvbmUg +dXNlZCBieSB0aGUgTGludXgga2VybmVsLikKCiAgSWYgeW91IHdhbnQgdG8gY29u +dHJpYnV0ZSBjb2RlIG9yIGRvY3VtZW50YXRpb24gdG8gR251UEcgYW5kIHlvdQog +IGRpZG4ndCBzaWduIGEgY29weXJpZ2h0IGFzc2lnbm1lbnQgd2l0aCB0aGUgRlNG +IGluIHRoZSBwYXN0LCB5b3UKICBuZWVkIHRvIHRha2UgdGhlc2Ugc2ltcGxlIHN0 +ZXBzOgoKICAtIERlY2lkZSB3aGljaCBtYWlsIGFkZHJlc3MgeW91IHdhbnQgdG8g +dXNlLiAgUGxlYXNlIGhhdmUgeW91ciByZWFsCiAgICBuYW1lIGluIHRoZSBhZGRy +ZXNzIGFuZCBub3QgYSBwc2V1ZG9ueW0uICBBbm9ueW1vdXMgY29udHJpYnV0aW9u +cwogICAgY2FuIG9ubHkgYmUgZG9uZSBpZiB5b3UgZmluZCBhIHByb3h5IHdobyBj +ZXJ0aWZpZXMgZm9yIHlvdS4KCiAgLSBJZiB5b3VyIGVtcGxveWVyIG9yIHNjaG9v +bCBtaWdodCBjbGFpbSBvd25lcnNoaXAgb2YgY29kZSB3cml0dGVuCiAgICBieSB5 +b3U7IHlvdSBuZWVkIHRvIHRhbGsgdG8gdGhlbSB0byBtYWtlIHN1cmUgdGhhdCB5 +b3UgaGF2ZSB0aGUKICAgIHJpZ2h0IHRvIGNvbnRyaWJ1dGUgdW5kZXIgdGhlIERD +Ty4KCiAgLSBTZW5kIGFuIE9wZW5QR1Agc2lnbmVkIG1haWwgdG8gdGhlIGdudXBn +LWRldmVsQGdudXBnLm9yZyBtYWlsaW5nCiAgICBsaXN0IGZyb20geW91ciBtYWls +IGFkZHJlc3MuICBJbmNsdWRlIGEgY29weSBvZiB0aGUgRENPIGFzIGZvdW5kCiAg +ICBpbiB0aGUgb2ZmaWNpYWwgbWFzdGVyIGJyYW5jaC4gIEluc2VydCB5b3VyIG5h +bWUgYW5kIGVtYWlsIGFkZHJlc3MKICAgIGludG8gdGhlIERDTyBpbiB0aGUgc2Ft +ZSB3YXkgeW91IHdhbnQgdG8gdXNlIGl0IGxhdGVyLiAgRXhhbXBsZToKCiAgICAg +IFNpZ25lZC1vZmYtYnk6IEpvZSBSLiBIYWNrZXIgPGpvZUBleGFtcGxlLm9yZz4K +CiAgICAoSWYgeW91IHJlYWxseSBuZWVkIGl0LCB5b3UgbWF5IHBlcmZvcm0gc2lt +cGxlIHRyYW5zZm9ybWF0aW9ucyBvZgogICAgdGhlIG1haWwgYWRkcmVzczogUmVw +bGFjaW5nICJAIiBieSAiIGF0ICIgb3IgIi4iIGJ5ICIgZG90ICIuKQoKICAtIFRo +YXQncyBpdC4gIEZyb20gbm93IG9uIHlvdSBvbmx5IG5lZWQgdG8gYWRkIGEgIlNp +Z25lZC1vZmYtYnk6IgogICAgbGluZSB3aXRoIHlvdXIgbmFtZSBhbmQgbWFpbCBh +ZGRyZXNzIHRvIHRoZSBjb21taXQgbWVzc2FnZS4gIEl0IGlzCiAgICByZWNvbW1l +bmRlZCB0byBzZW5kIHRoZSBwYXRjaGVzIHVzaW5nIGEgUEdQL01JTUUgc2lnbmVk +IG1haWwuCgoqKiBDb2Rpbmcgc3RhbmRhcmRzCgogIFBsZWFzZSBmb2xsb3cgdGhl +IEdOVSBjb2Rpbmcgc3RhbmRhcmRzLiAgSWYgeW91IGFyZSBpbiBkb3VidCBjb25z +dWx0CiAgdGhlIGV4aXN0aW5nIGNvZGUgYXMgYW4gZXhhbXBsZS4gIERvIG5vIHJl +LWluZGVudCBjb2RlIHdpdGhvdXQgYQogIG5lZWQuICBJZiB5b3UgcmVhbGx5IG5l +ZWQgdG8gZG8gaXQsIHVzZSBhIHNlcGFyYXRlIGNvbW1pdCBmb3Igc3VjaCBhCiAg +Y2hhbmdlLgoKICAtIE9ubHkgY2VydGFpbiBDOTkgZmVhdHVyZXMgbWF5IGJlIHVz +ZWQgKHNlZSBiZWxvdyk7IGluIGdlbmVyYWwKICAgIHN0aWNrIHRvIEM5MC4KICAt +IFBsZWFzZSBkbyBub3QgdXNlIEMrKyA9Ly89IHN0eWxlIGNvbW1lbnRzLgogIC0g +VHJ5IHRvIGZpdCBsaW5lcyBpbnRvIDgwIGNvbHVtbnMuCiAgLSBJZ25vcmUgc2ln +bmVkL3Vuc2lnbmVkIHBvaW50ZXIgbWlzbWF0Y2hlcwogIC0gTm8gYXJpdGhtZXRp +YyBvbiB2b2lkIHBvaW50ZXJzOyBjYXN0IHRvIGNoYXIqIGZpcnN0LgogIC0gV2Ug +dXNlIG91ciBvd24gcHJpbnRmIHN0eWxlIGZ1bmN0aW9ucyBsaWtlID1lc19wcmlu +dGY9LCBhbmQKICAgID1lc19hc3ByaW50Zj0gd2hpY2ggaW1wbGVtZW50IG1vc3Qg +Qzk5IGZlYXR1cmVzIHdpdGggdGhlIGV4Y2VwdGlvbgogICAgb2YgPXdjaGFyX3Q9 +ICh3aGljaCBzaG91bGQgYW55d2F5IG5vdCBiZSB1c2VkKS4gIFBsZWFzZSBhbHdh +eXMgdXNlCiAgICB0aGVtIGFuZCBkbyBub3QgcmVzb3J0IHRvIHRob3NlIHByb3Zp +ZGVkIGJ5IGxpYmMuICBUaGUgcmF0aW9uYWxlCiAgICBmb3IgdXNpbmcgdGhlbSBp +cyB0aGF0IHdlIGtub3cgdGhhdCB0aGUgZm9ybWF0IHNwZWNpZmllcnMgd29yayBv +bgogICAgYWxsIHBsYXRmb3JtcyBhbmQgdGhhdCB3ZSBkbyBub3QgbmVlZCB0byBj +aGFzZSBwbGF0Zm9ybSBkZXBlbmRlbnQKICAgIGJ1Z3MuCiAgLSBJdCBpcyBjb21t +b24gdG8gaGF2ZSBhIGxhYmVsIG5hbWVkICJsZWF2ZSIgZm9yIGEgZnVuY3Rpb24n +cwogICAgY2xlYW51cCBhbmQgcmV0dXJuIGNvZGUuICBUaGlzIGhlbHBzIHdpdGgg +ZnJlZWluZyBtZW1vcnkgYW5kIGlzIGEKICAgIGNvbnZlbmllbnQgbG9jYXRpb24g +dG8gc2V0IGEgYnJlYWtwb2ludCBmb3IgZGVidWdnaW5nLgogIC0gQWx3YXlzIHVz +ZSB4ZnJlZSgpIGluc3RlYWQgb2YgZnJlZSgpLiAgSWYgaXQgaXMgbm90IGVhc3kg +dG8gc2VlCiAgICB0aGF0IHRoZSBmcmVlZCB2YXJpYWJsZSBpcyBub3QgYW55bW9y +ZSB1c2VkLCBleHBsaWNpdGx5IHNldCB0aGUKICAgIHZhcmlhYmxlIHRvIE5VTEwu +CiAgLSBJbml0IGZ1bmN0aW9uIGxvY2FsIHZhcmlhYmxlcyBvbmx5IGlmIG5lZWRl +ZCBzbyB0aGF0IHRoZSBjb21waWxlcgogICAgY2FuIGRvIGEgYmV0dGVyIGpvYiBp +biBkZXRlY3RpbmcgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgd2hpY2ggbWF5CiAg +ICBpbmRpY2F0ZSBhIHByb2JsZW0gd2l0aCB0aGUgY29kZS4KICAtIE5ldmVyIGlu +aXQgc3RhdGljIG9yIGZpbGUgbG9jYWwgdmFyaWFibGVzIHRvIDAgdG8gbWFrZSBz +dXJlIHRoZXkKICAgIGVuZCB1cCBpbiBCU1MuCiAgLSBVc2UgLS1lbmFibGUtbWFp +bnRhaW5lci1tb2RlIHdpdGggY29uZmlndXJlLgoKKioqIEM5OSBsYW5ndWFnZSBm +ZWF0dXJlcwoKICBJbiBHbnVQRyAyLngsIGJ1dCAqbm90IGluIDEuNCogYW5kIG5v +dCBpbiBtb3N0IGxpYnJhcmllcywgYSBsaW1pdGVkCiAgc2V0IG9mIEM5OSBmZWF0 +dXJlcyBtYXkgYmUgdXNlZDoKCiAgLSBWYXJpYWRpYyBtYWNyb3M6CiAgICA6ICNk +ZWZpbmUgZm9vKGEsLi4uKSAgYmFyKGEsIF9fVkFfQVJHU19fKQoKICAtIFRoZSBw +cmVkZWZpbmVkIG1hY3JvID1fX2Z1bmNfXz06CiAgICA6IGxvZ19kZWJ1ZyAoIiVz +OiBQcm9ibGVtIHdpdGggZm9vXG4iLCBfX2Z1bmNfXyk7CgogIC0gVmFyaWFibGUg +ZGVjbGFyYXRpb24gaW5zaWRlIGEgZm9yKCk6CiAgICA6IGZvciAoaW50IGkgPSAw +OyBpIDwgNTsgKyspCiAgICA6ICAgYmFyIChpKTsKCiAgQWx0aG91Z2ggd2UgdXN1 +YWxseSBtYWtlIHVzZSBvZiB0aGUgPXUxNj0sID11MzI9LCBhbmQgPXU2ND0gdHlw +ZXMsCiAgaXQgaXMgYWxzbyBwb3NzaWJsZSB0byBpbmNsdWRlID08c3RkaW50Lmg+ +PSBhbmQgdXNlID1pbnQxNl90PSwKICA9aW50MzJfdD0sID1pbnQ2NF90PSwgPXVp +bnQxNl90PSwgPXVpbnQzMl90PSwgYW5kID11aW50NjRfdD0uICBCdXQgZG8KICBu +b3QgdXNlID1pbnQ4X3Q9IG9yID11aW50OF90PS4KCioqIENvbW1pdCBsb2cga2V5 +d29yZHMKCiAgLSBHbnVQRy1idWctaWQgOjogVmFsdWVzIGFyZSBjb21tYSBvciBz +cGFjZSBkZWxpbWl0ZWQgYnVnIG51bWJlcnMKICAgICAgICAgICAgICAgICAgICBm +cm9tIGJ1Zy5nbnVwZy5vcmcgcGVydGFpbmluZyB0byB0aGlzIGNvbW1pdC4KICAt +IERlYmlhbi1idWctaWQgOjogU2FtZSBhcyBhYm92ZSBidXQgZnJvbSB0aGUgRGVi +aWFuIGJ1ZyB0cmFja2VyLgogIC0gQ1ZFLWlkIDo6IENWRSBpZCBudW1iZXIgcGVy +dGFpbmluZyB0byB0aGlzIGNvbW1pdC4KICAtIFJlZ3Jlc3Npb24tZHVlLXRvIDo6 +IENvbW1pdCBpZCBvZiB0aGUgcmVncmVzc2lvbiBmaXhlZCBieSB0aGlzIGNvbW1p +dC4KICAtIEZpeGVzLWNvbW1pdCA6OiBDb21taXQgaWQgdGhpcyBjb21taXQgZml4 +ZXMuCiAgLSBSZXBvcnRlZC1ieSA6OiBWYWx1ZSBpcyBhIG5hbWUgb3IgbWFpbCBh +ZGRyZXNzIG9mIGEgYnVnIHJlcG9ydGUuCiAgLSBTdWdnZXN0ZWQtYnkgOjogVmFs +dWUgaXMgYSBuYW1lIG9yIG1haWwgYWRkcmVzcyBvZiBzb21lb25lIGhvdwogICAg +ICAgICAgICAgICAgICAgIHN1Z2dlc3RlZCB0aGlzIGNoYW5nZS4KICAtIENvLWF1 +dGhvcmVkLWJ5IDo6IE5hbWUgb3IgbWFpbCBhZGRyZXNzIG9mIGEgY28tYXV0aG9y +CiAgLSBTb21lLWNvbW1lbnRzLWJ5IDo6IE5hbWUgb3IgbWFpbCBhZGRyZXNzIG9m +IHRoZSBhdXRob3Igb2YKICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25h +bCBjb21tZW50cyAoY29tbWl0IGxvZyBvciBjb2RlKS4KICAtIFByb29mcmVhZC1i +eSA6OiBTb21ldGltZXMgdXNlZCBieSB0cmFuc2xhdGlvbiBjb21taXRzLgogIC0g +U2lnbmVkLW9mZi1ieSA6OiBOYW1lIG9yIG1haWwgYWRkcmVzcyBvZiB0aGUgZGV2 +ZWxvcGVyCgoqIFdpbmRvd3MKKiogSG93IHRvIGJ1aWxkIGFuIGluc3RhbGxlciBm +b3IgV2luZG93cwoKICAgWW91ciBiZXN0IGJldCBpcyB0byB1c2UgYSBkZWNlbnQg +RGViaWFuIFN5c3RlbSBmb3IgZGV2ZWxvcG1lbnQuCiAgIFlvdSBuZWVkIHRvIGlu +c3RhbGwgYSBsb25nIGxpc3Qgb2YgdG9vbHMgZm9yIGJ1aWxkaW5nLiAgVGhpcyBs +aXN0CiAgIHN0aWxsIG5lZWRzIHRvIGJlIGNvbXBpbGVkLiAgSG93ZXZlciwgdGhl +IGJ1aWxkIHByb2Nlc3Mgd2lsbCBzdG9wCiAgIGlmIGEgdG9vbCBpcyBtaXNzaW5n +LiAgR05VIG1ha2UgaXMgcmVxdWlyZWQgKG9uIG5vbiBHTlUgc3lzdGVtcwogICBv +ZnRlbiBpbnN0YWxsZWQgYXMgImdtYWtlIikuICBUaGUgaW5zdGFsbGVyIHJlcXVp +cmVzIGEgY291cGxlIG9mCiAgIGV4dHJhIHNvZnR3YXJlIHRvIGJlIGF2YWlsYWJs +ZSBlaXRoZXIgYXMgdGFyYmFsbHMgb3IgYXMgbG9jYWwgZ2l0CiAgIHJlcG9zaXRv +cmllcy4gIEluIGNhc2UgdGhpcyBmaWxlIGhlcmUgaXMgcGFydCBvZiBhIGdudXBn +LXczMi0yLioueHoKICAgY29tcGxldGUgdGFyYmFsbCBhcyBkaXN0cmlidXRlZCBm +cm9tIHRoZSBzYW1lIHBsYWNlIGFzIGEgYmluYXJ5CiAgIGluc3RhbGxlciwgYWxs +IHN1Y2ggdGFyYmFsbHMgYXJlIGFscmVhZHkgaW5jbHVkZWQuCgogICBDZCB0byB0 +aGUgR251UEcgc291cmNlIGRpcmVjdG9yeSBhbmQgdXNlIG9uZSBvZiBvbmUgb2Yg +dGhlc2UKICAgY29tbWFuZDoKCiAgIC0gSWYgc291cmNlcyBhcmUgaW5jbHVkZWQg +KGdudXBnLXczMi0qLnRhci54eikKCiAgICAgbWFrZSAtZiBidWlsZC1hdXgvc3Bl +ZWRvLm1rIFdIQVQ9dGhpcyBpbnN0YWxsZXIKCiAgIC0gVG8gYnVpbGQgZnJvbSB0 +YXJiYWxscwoKICAgICBtYWtlIC1mIGJ1aWxkLWF1eC9zcGVlZG8ubWsgV0hBVD1y +ZWxlYXNlIFRBUkJBTExTPVRBUkRJUiBpbnN0YWxsZXIKCiAgIC0gVG8gYnVpbGQg +ZnJvbSBsb2NhbCBHSVQgcmVwb3MKCiAgICAgbWFrZSAtZiBidWlsZC1hdXgvc3Bl +ZWRvLm1rIFdIQVQ9Z2l0IFRBUkJBTExTPVRBUkRJUiBpbnN0YWxsZXIKCiAgIE5v +dGUgdGhhdCBhbHNvIHlvdSBuZWVkIHRvIHN1cHBseSB0YXJiYWxscyB3aXRoIHN1 +cHBvcnRpbmcKICAgbGlicmFyaWVzIGV2ZW4gaWYgeW91IGJ1aWxkIGZyb20gZ2l0 +LiAgVGhlIG1ha2VmaWxlIGV4cGVjdHMgb25seQogICB0aGUgY29yZSBHbnVQRyBz +b2Z0d2FyZSB0byBiZSBhdmFpbGFibGUgYXMgbG9jYWwgR0lUIHJlcG9zaXRvcmll +cy4KICAgc3BlZWRvLm1rIGhhcyB0aGUgdmVyc2lvbnMgb2YgdGhlIHRhcmJhbGxz +IGFuZCB0aGUgYnJhbmNoIG5hbWVzIG9mCiAgIHRoZSBnaXQgcmVwb3NpdG9yaWVz +LiAgSW4gY2FzZSBvZiBwcm9ibGVtcywgZG9uJ3QgaGVzaXRhdGUgdG8gYXNrCiAg +IG9uIHRoZSBnbnVwZy1kZXZlbCBtYWlsaW5nIGZvciBoZWxwLgoKKiBEZWJ1ZyBo +aW50cwoKICBTZWUgdGhlIG1hbnVhbCBmb3Igc29tZSBoaW50cy4KCiogU3RhbmRh +cmRzCioqIFJGQ3MKCjE0MjMgIFByaXZhY3kgRW5oYW5jZW1lbnQgZm9yIEludGVy +bmV0IEVsZWN0cm9uaWMgTWFpbDoKICAgICAgUGFydCBJSUk6IEFsZ29yaXRobXMs +IE1vZGVzLCBhbmQgSWRlbnRpZmllcnMuCgoxNDg5ICBSZWdpc3RyYXRpb24gb2Yg +YSBDeXJpbGxpYyBDaGFyYWN0ZXIgU2V0LgoKMTc1MCAgUmFuZG9tbmVzcyBSZWNv +bW1lbmRhdGlvbnMgZm9yIFNlY3VyaXR5LgoKMTk5MSAgUEdQIE1lc3NhZ2UgRXhj +aGFuZ2UgRm9ybWF0cyAob2Jzb2xldGUpCgoyMTQ0ICBUaGUgQ0FTVC0xMjggRW5j +cnlwdGlvbiBBbGdvcml0aG0uCgoyMjc5ICBVVEYtOCwgYSB0cmFuc2Zvcm1hdGlv +biBmb3JtYXQgb2YgSVNPIDEwNjQ2LgoKMjQ0MCAgT3BlblBHUCAob2Jzb2xldGUp +LgoKMzE1NiAgTUlNRSBTZWN1cml0eSB3aXRoIFByZXR0eSBHb29kIFByaXZhY3kg +KFBHUCkuCgo0ODgwICBDdXJyZW50IE9wZW5QR1Agc3BlY2lmaWNhdGlvbi4KCjYz +MzcgIEVsbGlwdGljIEN1cnZlIENyeXB0b2dyYXBoeSAoRUNDKSBpbiBPcGVuUEdQ +CgoqIFZhcmlvdXMgaW5mb3JtYXRpb24KCioqIERpcmVjdG9yeSBMYXlvdXQKCiAg +LSAuLwkgICAgICA6OiBSZWFkbWUsIGNvbmZpZ3VyZQogIC0gLi9hZ2VudCAgIDo6 +IEdwZy1hZ2VudCBhbmQgcmVsYXRlZCB0b29scwogIC0gLi9kb2MgICAgIDo6IERv +Y3VtZW50YXRpb24KICAtIC4vZzEwICAgICA6OiBHcGcgcHJvZ3JhbSBoZXJlIGNh +bGxlZCBncGcyCiAgLSAuL3NtICAgICAgOjogR3Bnc20gcHJvZ3JhbQogIC0gLi9q +bmxpYiAgIDo6IE5vdCB1c2VkIChmb3JtZXJseSB1c2VkIHV0aWxpdHkgZnVuY3Rp +b25zKQogIC0gLi9jb21tb24gIDo6IFV0aWxpdHkgZnVuY3Rpb25zCiAgLSAuL2ti +eCAgICAgOjogS2V5Ym94IGxpYnJhcnkKICAtIC4vc2NkICAgICA6OiBTbWFydGNh +cmQgZGFlbW9uCiAgLSAuL3NjcmlwdHMgOjogU2NyaXB0cyBuZWVkZWQgYnkgY29u +ZmlndXJlIGFuZCBvdGhlcnMKICAtIC4vZGlybW5nciA6OiBUaGUgZGlyZWN0b3J5 +IG1hbmFnZXIKCioqIERldGFpbGVkIFJvYWRtYXAKCiAgVGhpcyBsaXN0IG9mIGZp +bGVzIGlzIG5vdCB1cCB0byBkYXRlIQoKICAtIGcxMC9ncGcuYyA6OiBNYWluIG1v +ZHVsZSB3aXRoIG9wdGlvbiBwYXJzaW5nIGFuZCBhbGwgdGhlIHN0dWZmIHlvdQog +ICAgICAgICAgICAgICAgIGhhdmUgdG8gZG8gb24gc3RhcnR1cC4gIEFsc28gaGFz +IHRoZSBleGl0IGhhbmRsZXIgYW5kCiAgICAgICAgICAgICAgICAgc29tZSBoZWxw +ZXIgZnVuY3Rpb25zLgoKICAtIGcxMC9wYXJzZS1wYWNrZXQuYyA6OgogIC0gZzEw +L2J1aWxkLXBhY2tldC5jIDo6CiAgLSBnMTAvZnJlZS1wYWNrZXQuYyA6OiBQYXJz +aW5nIGFuZCBjcmVhdGluZyBvZiBPcGVuUEdQIG1lc3NhZ2UgcGFja2V0cy4KCiAg +LSBnMTAvZ2V0a2V5LmMgICA6OiBLZXkgc2VsZWN0aW9uIGNvZGUKICAtIGcxMC9w +a2NsaXN0LmMgIDo6IEJ1aWxkIGEgbGlzdCBvZiBwdWJsaWMga2V5cwogIC0gZzEw +L3NrY2xpc3QuYyAgOjogQnVpbGQgYSBsaXN0IG9mIHNlY3JldCBrZXlzCiAgLSBn +MTAva2V5cmluZy5jICA6OiBLZXlyaW5nIGFjY2VzcyBmdW5jdGlvbnMKICAtIGcx +MC9rZXlkYi5oICAgIDo6CgogIC0gZzEwL2tleWlkLmMJICA6OiBIZWxwZXIgZnVu +Y3Rpb25zIHRvIGdldCB0aGUga2V5aWQsIGZpbmdlcnByaW50IGV0Yy4KCiAgLSBn +MTAvdHJ1c3RkYi5jIDo6IFdlYi1vZi1UcnVzdCBjb21wdXRhdGlvbnMKICAtIGcx +MC90cnVzdGRiLmggOjoKICAtIGcxMC90ZGJkdW1wLmMgOjogRXhwb3J0L2ltcG9y +dC9saXN0IHRoZSB0cnVzdGRiLmdwZwogIC0gZzEwL3RkYmlvLmMgICA6OiBJL08g +aGFuZGxpbmcgZm9yIHRoZSB0cnVzdGRiLmdwZwogIC0gZzEwL3RkYmlvLmggICA6 +OgoKICAtIGcxMC9jb21wcmVzcy5jIDo6IEZpbHRlciB0byBoYW5kbGUgY29tcHJl +c3Npb24KICAtIGcxMC9maWx0ZXIuaCAgIDo6IERlY2xhcmF0aW9ucyBmb3IgYWxs +IGZpbHRlciBmdW5jdGlvbnMKICAtIGcxMC9kZWxrZXkuYyAgIDo6IERlbGV0ZSBh +IGtleQogIC0gZzEwL2tibm9kZS5jICAgOjogSGVscGVyIGZvciB0aGUga2Jub2Rl +X3QgbGlua2VkIGxpc3QKICAtIGcxMC9tYWluLmggICAgIDo6IFByb3RvdHlwZXMg +YW5kIHNvbWUgY29uc3RhbnRzCiAgLSBnMTAvbWFpbnByb2MuYyA6OiBNZXNzYWdl +IHByb2Nlc3NpbmcKICAtIGcxMC9hcm1vci5jICAgIDo6IEFzY2lpIGFybW9yIGZp +bHRlcgogIC0gZzEwL21kZmlsdGVyLmMgOjogRmlsdGVyIHRvIGNhbGN1bGF0ZSBo +YXNocwogIC0gZzEwL3RleHRmaWx0ZXIuYyA6OiBGaWx0ZXIgdG8gaGFuZGxlIENS +L0xGIGFuZCB0cmFpbGluZyB3aGl0ZSBzcGFjZQogIC0gZzEwL2NpcGhlci5jICAg +OjogRW4tL0RlY3J5cHRpb24gZmlsdGVyCiAgLSBnMTAvbWlzYy5jICAgICA6OiBV +dGxpdHkgZnVuY3Rpb25zCiAgLSBnMTAvb3B0aW9ucy5oICA6OiBTdHJ1Y3R1cmUg +d2l0aCBhbGwgdGhlIGNvbW1hbmQgbGluZSBvcHRpb25zCiAgICAgICAgICAgICAg +ICAgICAgICBhbmQgcmVsYXRlZCBjb25zdGFudHMKICAtIGcxMC9vcGVuZmlsZS5j +IDo6IENyZWF0ZS9PcGVuIEZpbGVzCiAgLSBnMTAva2V5c2VydmVyLmggOjogS2V5 +c2VydmVyIGFjY2VzcyBkaXNwYXRjaGVyLgogIC0gZzEwL3BhY2tldC5oICAgOjog +RGVmaW50aW9uIG9mIE9wZW5QR1Agc3RydWN0dXJlcy4KICAtIGcxMC9wYXNzcGhy +YXNlLmMgOjogUGFzc3BocmFzZSBoYW5kbGluZyBjb2RlCgogIC0gZzEwL3B1Ymtl +eS1lbmMuYyA6OiBQcm9jZXNzIGEgcHVibGljIGtleSBlbmNvZGVkIHBhY2tldC4K +ICAtIGcxMC9zZWNrZXktY2VydC5jIDo6IE5vdCBhbnltb3JlIHVzZWQKICAtIGcx +MC9zZXNrZXkuYyAgICAgOjogTWFrZSBzZXNzc2lvbiBrZXlzIGV0Yy4KICAtIGcx +MC9pbXBvcnQuYyAgICAgOjogSW1wb3J0IGtleXMgaW50byBvdXIga2V5IHN0b3Jh +Z2UuCiAgLSBnMTAvZXhwb3J0LmMgICAgIDo6IEV4cG9ydCBrZXlzIHRvIHRoZSBP +cGVuUEdQIGZvcm1hdC4KICAtIGcxMC9zaWduLmMgICAgICAgOjogQ3JlYXRlIHNp +Z25hdHVyZSBhbmQgb3B0aW9uYWxseSBlbmNyeXB0LgogIC0gZzEwL3BsYWludGV4 +dC5jICA6OiBQcm9jZXNzIHBsYWludGV4dCBwYWNrZXRzLgogIC0gZzEwL2RlY3J5 +cHQtZGF0YS5jIDo6IERlY3J5cHQgYW4gZW5jcnlwdGVkIGRhdGEgcGFja2V0CiAg +LSBnMTAvZW5jcnlwdC5jICAgIDo6IE1haW4gZW5jcnlwdGlvbiBkcml2ZXIKICAt +IGcxMC9yZXZva2UuYyAgICAgOjogQ3JlYXRlIHJlY292YXRpb24gY2VydGlmaWNh +dGVzLgogIC0gZzEwL2tleWxpc3QuYyAgICA6OiBQcmludCBpbmZvcm1hdGlvbiBh +Ym91dCBPcGVuUEdQIGtleXMKICAtIGcxMC9zaWctY2hlY2suYyAgOjogQ2hlY2sg +YSBzaWduYXR1cmUKICAtIGcxMC9oZWxwdGV4dC5jICAgOjogU2hvdyBvbmxpbmUg +aGVscCB0ZXh0cwogIC0gZzEwL3ZlcmlmeS5jICAgICA6OiBWZXJpZnkgc2lnbmVk +IGRhdGEuCiAgLSBnMTAvZGVjcnlwdC5jICAgIDo6IERlY3J5cHQgYW5kIHZlcmlm +eSBkYXRhLgogIC0gZzEwL2tleWVkaXQuYyAgICA6OiBFZGl0IHByb3BlcnRpZXMg +b2YgYSBrZXkuCiAgLSBnMTAvZGVhcm1vci5jICAgIDo6IEFybW9yIHV0aWxpdHku +CiAgLSBnMTAva2V5Z2VuLmMgICAgIDo6IEdlbmVyYXRlIGEga2V5IHBhaXIKCioq +IE1lbW9yeSBhbGxvY2F0aW9uCgpVc2Ugb25seSB0aGUgZnVuY3Rpb25zOgoKIC0g +eG1hbGxvYwogLSB4bWFsbG9jX3NlY3VyZQogLSB4dHJ5bWFsbG9jCiAtIHh0cnlt +YWxsb2Nfc2VjdXJlCiAtIHhjYWxsb2MKIC0geGNhbGxvY19zZWN1cmUKIC0geHRy +eWNhbGxvYwogLSB4dHJ5Y2FsbG9jX3NlY3VyZQogLSB4cmVhbGxvYwogLSB4dHJ5 +cmVhbGxvYwogLSB4c3RyZHVwCiAtIHh0cnlzdHJkdXAKIC0geGZyZWUKCgpUaGUg +KnNlY3VyZSB2ZXJzaW9ucyBhbGxvY2F0ZSBtZW1vcnkgaW4gdGhlIHNlY3VyZSBt +ZW1vcnkuICBUaGF0IGlzLApzd2FwcGluZyBvdXQgb2YgdGhpcyBtZW1vcnkgaXMg +YXZvaWRlZCBhbmQgaXMgZ2V0cyBvdmVyd3JpdHRlbiBvbgpmcmVlLiAgVXNlIHRo +aXMgZm9yIHBhc3NwaHJhc2VzLCBzZXNzaW9uIGtleXMgYW5kIG90aGVyIHNlbnNp +dGl2ZQptYXRlcmlhbC4gIFRoaXMgbWVtb3J5IHNldCBhc2lkZSBmb3Igc2VjdXJl +IG1lbW9yeSBpcyBsaW5pdGVkIHRvIGEgZmV3CmsuICBJbiBnZW5lcmFsIHRoZSBm +dW5jdGlvbiBkb24ndCBwcmludCBhIG1lbWVvcnkgbWVzc2FnZSBhbmQKdGVybWlu +YXRlIHRoZSBwcm9jZXNzIGlmIHRoZXJlIGlzIG5vdCBlbm91Z2ggbWVtb3J5IGF2 +YWlsYWJsZS4gIFRoZQoidHJ5IiB2ZXJzaW9ucyBvZiB0aGUgZnVuY3Rpb25zIHJl +dHVybiBOVUxMIGluc3RlYWQuCgoqKiBMb2dnaW5nCgogVE9ETwoKKiogT3B0aW9u +IHBhcnNpbmcKCkdudVBHIGRvZXMgbm90IHVzZSBnZXRvcHQgb3IgR05VIGdldG9w +dCBidXQgZnVuY3Rpb25zIG9mIGl0J3Mgb3duLgpTZWUgdXRpbC9hcmdwYXJzZS5j +IGZvciBkZXRhaWxzLiAgVGhlIGFkdmFudGFnZSBvZiB0aGVzZSBmdW5jdGlvbnMg +aXMKdGhhdCBpdCBpcyBtb3JlIGVhc3kgdG8gZGlzcGxheSBhbmQgbWFpbnRhaW4g +dGhlIGhlbHAgdGV4dHMgZm9yIHRoZQpvcHRpb25zLiAgVGhlIHNhbWUgb3B0aW9u +IHRhYmxlIGlzIGFsc28gdXNlZCB0byBwYXJzZSByZXNvdXJjZSBmaWxlcy4KCioq +IFdoYXQgaXMgYW4gSU9CVUYKClRoaXMgaXMgdGhlIGRhdGEgc3RydWN0dXJlIHVz +ZWQgZm9yIG1vc3QgSS9PIG9mIGdudXBnLiBJdCBpcyBzaW1pbGFyCnRvIFN5c3Rl +bcKgViBTdHJlYW1zIGJ1dCBtdWNoIHNpbXBsZXIuICBCZWNhdXNlIE9wZW5QR1Ag +bWVzc2FnZXMgYXJlCm5lc3RlZCBpbiBkaWZmZXJlbnQgd2F5czsgdGhlIHVzZSBv +ZiBzdWNoIGEgc3lzdGVtIGhhcyBiaWcgYWR2YW50YWdlcy4KSGVyZSBpcyBhbiBl +eGFtcGxlLCBob3cgaXQgd29ya3M6IElmIHRoZSBwYXJzZXIgc2VlcyBhIHBhY2tl +dCBoZWFkZXIKd2l0aCBhIHBhcnRpYWwgbGVuZ3RoLCBpdCBwdXNoZXMgdGhlIGJs +b2NrX2ZpbHRlciBvbnRvIHRoZSBJT0JVRiB0bwpoYW5kbGUgdGhlc2UgcGFydGlh +bCBsZW5ndGggcGFja2V0czogZnJvbSBub3cgb24geW91IGRvbid0IGhhdmUgdG8K +d29ycnkgYWJvdXQgdGhpcy4gIFdoZW4gaXQgc2VlcyBhIGNvbXByZXNzZWQgcGFj +a2V0IGl0IHB1c2hlcyB0aGUKdW5jb21wcmVzcyBmaWx0ZXIgYW5kIHRoZSBuZXh0 +IHJlYWQgYnl0ZSBpcyBvbmUgd2hpY2ggaGFzIGFscmVhZHkgYmVlbgp1bmNvbXBy +ZXNzZWQgYnkgdGhpcyBmaWx0ZXIuIFNhbWUgZ29lcyBmb3IgZW5jaXBoZXJlZCBw +YWNrZXQsCnBsYWludGV4dCBwYWNrZXRzIGFuZCBzbyBvbi4gIFRoZSBmaWxlIGcx +MC9lbmNvZGUuYyBtaWdodCBiZSBhIGdvb2QKc3RhcnRpbmcgcG9pbnQgdG8gc2Vl +IGhvdyBpdCBpcyB1c2VkIC0gYWN0dWFsbHkgdGhpcyBpcyB0aGUgb3RoZXIgd2F5 +Ogpjb25zdHJ1Y3RpbmcgbWVzc2FnZXMgdXNpbmcgcHVzaGVkIGZpbHRlcnMgYnV0 +IGl0IG1heSBiZSBlYXNpZXIgdG8KdW5kZXJzdGFuZC4KCgojIGRvYy9ERVRBSUxT +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +LSotIG9yZyAtKi0KIytUSVRMRTogR251UEcgRGV0YWlscwojIEdsb2JhbGx5IGRp +c2FibGUgc3VwZXJzY3JpcHRzIGFuZCBzdWJzY3JpcHRzOgojK09QVElPTlM6IF46 +e30KIwoKIyBOb3RlOiBUaGlzIGZpbGUgdXNlcyBvcmctbW9kZTsgaXQgc2hvdWxk +IGJlIGVhc3kgdG8gcmVhZCBhcyBwbGFpbgojIHRleHQgYnV0IGJlIGF3YXJlIG9m +IHNvbWUgbWFya3VwIHBlY3VsaWFyaXRpZXM6IFZlcmJhdGltIGNvZGUgaXMKIyBl +bmNsb3NlZCBpbiAjK2JlZ2luLWV4YW1wbGUsICMrZW5kLWV4YW1wbGUgYmxvY2tz +IG9yIG1hcmtlZCBieSBhCiMgY29sb24gYXMgdGhlIGZpcnN0IG5vbi13aGl0ZS1z +cGFjZSBjaGFyYWN0ZXIsIHdvcmRzIGJyYWNrZXRlZCB3aXRoCiMgZXF1YWwgc2ln +bnMgaW5kaWNhdGUgYSBtb25vc3BhY2UgZm9udCwgYW5kIHRoZSB1c3VhbCAvaXRh +bGljcy8sCiMgKmJvbGQqLCBhbmQgX3VuZGVybGluZV8gY29udmVudGlvbnMgYXJl +IHJlY29nbml6ZWQuCgpUaGlzIGlzIHRoZSBERVRBSUxTIGZpbGUgZm9yIEdudVBH +IHdoaWNoIHNwZWNpZmllcyBzb21lIGludGVybmFscyBhbmQKcGFydHMgb2YgdGhl +IGV4dGVybmFsIEFQSSBmb3IgR1BHIGFuZCBHUEdTTS4KCiogRm9ybWF0IG9mIHRo +ZSBjb2xvbiBsaXN0aW5ncwogIFRoZSBmb3JtYXQgaXMgYSBiYXNlZCBvbiBjb2xv +biBzZXBhcmF0ZWQgcmVjb3JkLCBlYWNoIHJlY29kcyBzdGFydHMKICB3aXRoIGEg +dGFnIHN0cmluZyBhbmQgZXh0ZW5kcyB0byB0aGUgZW5kIG9mIHRoZSBsaW5lLiAg +SGVyZSBpcyBhbgogIGV4YW1wbGU6CiMrYmVnaW5fZXhhbXBsZQokIGdwZyAtLXdp +dGgtY29sb25zIC0tbGlzdC1rZXlzIFwKICAgICAgLS13aXRoLWZpbmdlcnByaW50 +IC0td2l0aC1maW5nZXJwcmludCB3a0BnbnVwZy5vcmcKcHViOmY6MTAyNDoxNzo2 +QzdFRTFCODYyMUNDMDEzOjg5OTgxNzcxNToxMDU1ODk4MjM1OjptOjo6c2NFU0M6 +CmZwcjo6Ojo6Ojo6OkVDQUY3NTkwRUIzNDQzQjVDN0NGM0FDQjZDN0VFMUI4NjIx +Q0MwMTM6CnVpZDpmOjo6Ojo6OjpXZXJuZXIgS29jaCA8d2tAZzEwY29kZS5jb20+ +Ogp1aWQ6Zjo6Ojo6Ojo6V2VybmVyIEtvY2ggPHdrQGdudXBnLm9yZz46CnN1Yjpm +OjE1MzY6MTY6MDZBRDIyMkNBREY2QTZFMTo5MTk1Mzc0MTY6MTAzNjE3NzQxNjo6 +Ojo6ZToKZnByOjo6Ojo6Ojo6Q0Y4QkNDNEIxOERFMDhGQ0Q4QTE2MTU5MDZBRDIy +MkNBREY2QTZFMToKc3ViOnI6MTUzNjoyMDo1Q0UwODZCNUI1QTE4RkY0Ojg5OTgx +Nzc4ODoxMDI1OTYxNzg4Ojo6Ojplc2M6CmZwcjo6Ojo6Ojo6OkFCMDU5MzU5QTNC +ODFGNDEwRkNGRjk3RjVDRTA4NkI1QjVBMThGRjQ6CiMrZW5kX2V4YW1wbGUKClRo +ZSBkb3VibGUgPS0td2l0aC1maW5nZXJwcmludD0gcHJpbnRzIHRoZSBmaW5nZXJw +cmludCBmb3IgdGhlIHN1YmtleXMKdG9vLiAgT2xkIHZlcnNpb25zIG9mIGdwZyB1 +c2VkIGEgc2xpZ2h0bHkgZGlmZmVyZW50IGZvcm1hdCBhbmQgcmVxdWlyZWQKdGhl +IHVzZSBvZiB0aGUgb3B0aW9uID0tLWZpeGVkLWxpc3QtbW9kZT0gdG8gY29uZm9y +bSB0byB0aGUgZm9ybWF0CmRlc2NyaWJlZCBoZXJlLgoKKiogRGVzY3JpcHRpb24g +b2YgdGhlIGZpZWxkcwoqKiogRmllbGQgMSAtIFR5cGUgb2YgcmVjb3JkCgogICAg +LSBwdWIgOjogUHVibGljIGtleQogICAgLSBjcnQgOjogWC41MDkgY2VydGlmaWNh +dGUKICAgIC0gY3JzIDo6IFguNTA5IGNlcnRpZmljYXRlIGFuZCBwcml2YXRlIGtl +eSBhdmFpbGFibGUKICAgIC0gc3ViIDo6IFN1YmtleSAoc2Vjb25kYXJ5IGtleSkK +ICAgIC0gc2VjIDo6IFNlY3JldCBrZXkKICAgIC0gc3NiIDo6IFNlY3JldCBzdWJr +ZXkgKHNlY29uZGFyeSBrZXkpCiAgICAtIHVpZCA6OiBVc2VyIGlkIChvbmx5IGZp +ZWxkIDEwIGlzIHVzZWQpLgogICAgLSB1YXQgOjogVXNlciBhdHRyaWJ1dGUgKHNh +bWUgYXMgdXNlciBpZCBleGNlcHQgZm9yIGZpZWxkIDEwKS4KICAgIC0gc2lnIDo6 +IFNpZ25hdHVyZQogICAgLSByZXYgOjogUmV2b2NhdGlvbiBzaWduYXR1cmUKICAg +IC0gZnByIDo6IEZpbmdlcnByaW50IChmaW5nZXJwcmludCBpcyBpbiBmaWVsZCAx +MCkKICAgIC0gcGtkIDo6IFB1YmxpYyBrZXkgZGF0YSBbKl0KICAgIC0gZ3JwIDo6 +IEtleWdyaXAKICAgIC0gcnZrIDo6IFJldm9jYXRpb24ga2V5CiAgICAtIHRydSA6 +OiBUcnVzdCBkYXRhYmFzZSBpbmZvcm1hdGlvbiBbKl0KICAgIC0gc3BrIDo6IFNp +Z25hdHVyZSBzdWJwYWNrZXQgWypdCiAgICAtIGNmZyA6OiBDb25maWd1cmF0aW9u +IGRhdGEgWypdCgogICAgUmVjb3JkcyBtYXJrZWQgd2l0aCBhbiBhc3RlcmlzayBh +cmUgZGVzY3JpYmVkIGF0IFtbKlNwZWNpYWwlMjBmaWVsZCUyMGZvcm1hdHNdWypT +cGVjaWFsIGZpZWxkc11dLgoKKioqIEZpZWxkIDIgLSBWYWxpZGl0eQoKICAgIFRo +aXMgaXMgYSBsZXR0ZXIgZGVzY3JpYmluZyB0aGUgY29tcHV0ZWQgdmFsaWRpdHkg +b2YgYSBrZXkuCiAgICBDdXJyZW50bHkgdGhpcyBpcyBhIHNpbmdsZSBsZXR0ZXIs +IGJ1dCBiZSBwcmVwYXJlZCB0aGF0IGFkZGl0aW9uYWwKICAgIGluZm9ybWF0aW9u +IG1heSBmb2xsb3cgaW4gc29tZSBmdXR1cmUgdmVyc2lvbnMuIE5vdGUgdGhhdCBH +bnVQRyA8CiAgICAyLjEgZG9lcyBub3Qgc2V0IHRoaXMgZmllbGQgZm9yIHNlY3Jl +dCBrZXkgbGlzdGluZ3MuCgogICAgLSBvIDo6IFVua25vd24gKHRoaXMga2V5IGlz +IG5ldyB0byB0aGUgc3lzdGVtKQogICAgLSBpIDo6IFRoZSBrZXkgaXMgaW52YWxp +ZCAoZS5nLiBkdWUgdG8gYSBtaXNzaW5nIHNlbGYtc2lnbmF0dXJlKQogICAgLSBk +IDo6IFRoZSBrZXkgaGFzIGJlZW4gZGlzYWJsZWQKCSAgIChkZXByZWNhdGVkIC0g +dXNlIHRoZSAnRCcgaW4gZmllbGQgMTIgaW5zdGVhZCkKICAgIC0gciA6OiBUaGUg +a2V5IGhhcyBiZWVuIHJldm9rZWQKICAgIC0gZSA6OiBUaGUga2V5IGhhcyBleHBp +cmVkCiAgICAtIC0gOjogVW5rbm93biB2YWxpZGl0eSAoaS5lLiBubyB2YWx1ZSBh +c3NpZ25lZCkKICAgIC0gcSA6OiBVbmRlZmluZWQgdmFsaWRpdHkuICAnLScgYW5k +ICdxJyBtYXkgc2FmZWx5IGJlIHRyZWF0ZWQgYXMKICAgICAgICAgICB0aGUgc2Ft +ZSB2YWx1ZSBmb3IgbW9zdCBwdXJwb3NlcwogICAgLSBuIDo6IFRoZSBrZXkgaXMg +bm90IHZhbGlkCiAgICAtIG0gOjogVGhlIGtleSBpcyBtYXJnaW5hbCB2YWxpZC4K +ICAgIC0gZiA6OiBUaGUga2V5IGlzIGZ1bGx5IHZhbGlkCiAgICAtIHUgOjogVGhl +IGtleSBpcyB1bHRpbWF0ZWx5IHZhbGlkLiAgVGhpcyBvZnRlbiBtZWFucyB0aGF0 +IHRoZQogICAgICAgICAgIHNlY3JldCBrZXkgaXMgYXZhaWxhYmxlLCBidXQgYW55 +IGtleSBtYXkgYmUgbWFya2VkIGFzCiAgICAgICAgICAgdWx0aW1hdGVseSB2YWxp +ZC4KICAgIC0gdyA6OiBUaGUga2V5IGhhcyBhIHdlbGwga25vd24gcHJpdmF0ZSBw +YXJ0LgogICAgLSBzIDo6IFRoZSBrZXkgaGFzIHNwZWNpYWwgdmFsaWRpdHkuICBU +aGlzIG1lYW5zIHRoYXQgaXQgbWlnaHQgYmUKICAgICAgICAgICBzZWxmLXNpZ25l +ZCBhbmQgZXhwZWN0ZWQgdG8gYmUgdXNlZCBpbiB0aGUgU1RFRUQgc3l0ZW0uCgog +ICAgSWYgdGhlIHZhbGlkaXR5IGluZm9ybWF0aW9uIGlzIGdpdmVuIGZvciBhIFVJ +RCBvciBVQVQgcmVjb3JkLCBpdAogICAgZGVzY3JpYmVzIHRoZSB2YWxpZGl0eSBj +YWxjdWxhdGVkIGJhc2VkIG9uIHRoaXMgdXNlciBJRC4gIElmIGdpdmVuCiAgICBm +b3IgYSBrZXkgcmVjb3JkIGl0IGRlc2NyaWJlcyB0aGUgdmFsaWRpdHkgdGFrZW4g +ZnJvbSB0aGUgYmVzdAogICAgcmF0ZWQgdXNlciBJRC4KCiAgICBGb3IgWC41MDkg +Y2VydGlmaWNhdGVzIGEgJ3UnIGlzIHVzZWQgZm9yIGEgdHJ1c3RlZCByb290CiAg +ICBjZXJ0aWZpY2F0ZSAoaS5lLiBmb3IgdGhlIHRydXN0IGFuY2hvcikgYW5kIGFu +ICdmJyBmb3IgYWxsIG90aGVyCiAgICB2YWxpZCBjZXJ0aWZpY2F0ZXMuCgoqKiog +RmllbGQgMyAtIEtleSBsZW5ndGgKCiAgICBUaGUgbGVuZ3RoIG9mIGtleSBpbiBi +aXRzLgoKKioqIEZpZWxkIDQgLSBQdWJsaWMga2V5IGFsZ29yaXRobQoKICAgIFRo +ZSB2YWx1ZXMgaGVyZSBhcmUgdGhvc2UgZnJvbSB0aGUgT3BlblBHUCBzcGVjcyBv +ciBpZiB0aGV5IGFyZQogICAgZ3JlYXRoZXIgdGhhbiAyNTUgdGhlIGFsZ29yaXRo +bSBpZHMgYXMgdXNlZCBieSBMaWJnY3J5cHQuCgoqKiogRmllbGQgNSAtIEtleUlE +CgogICAgVGhpcyBpcyB0aGUgNjQgYml0IGtleWlkIGFzIHNwZWNpZmllZCBieSBP +cGVuUEdQIGFuZCB0aGUgbGFzdCA2NAogICAgYml0IG9mIHRoZSBTSEEtMSBmaW5n +ZXJwcmludCBvZiBhbiBYLjUwOSBjZXJ0aWZjaWF0ZS4KCioqKiBGaWVsZCA2IC0g +Q3JlYXRpb24gZGF0ZQoKICAgIFRoZSBjcmVhdGlvbiBkYXRlIG9mIHRoZSBrZXkg +aXMgZ2l2ZW4gaW4gVVRDLiAgRm9yIFVJRCBhbmQgVUFUCiAgICByZWNvcmRzLCB0 +aGlzIGlzIHVzZWQgZm9yIHRoZSBzZWxmLXNpZ25hdHVyZSBkYXRlLiAgTm90ZSB0 +aGF0IHRoZQogICAgZGF0ZSBpcyB1c2FsbHkgcHJpbnRlZCBpbiBzZWNvbmRzIHNp +bmNlIGVwb2NoLCBob3dldmVyLCB3ZSBhcmUKICAgIG1pZ3JhdGluZyB0byBhbiBJ +U08gODYwMSBmb3JtYXQgKGUuZy4gIjE5NjYwMjA1VDA5MTUwMCIpLiAgVGhpcyBp +cwogICAgY3VycmVudGx5IG9ubHkgcmVsZXZhbnQgZm9yIFguNTA5LiAgQSBzaW1w +bGUgd2F5IHRvIGRldGVjdCB0aGUgbmV3CiAgICBmb3JtYXQgaXMgdG8gc2NhbiBm +b3IgdGhlICdUJy4gIE5vdGUgdGhhdCBvbGQgdmVyc2lvbnMgb2YgZ3BnCiAgICB3 +aXRob3V0IHVzaW5nIHRoZSA9LS1maXhlZC1saXN0LW1vZGU9IG9wdGlvbiB1c2Vk +IGEgInl5eXktbW0tdHQiCiAgICBmb3JtYXQuCgoqKiogRmllbGQgNyAtIEV4cGly +YXRpb24gZGF0ZQoKICAgIEtleSBvciBVSUQvVUFUIGV4cGlyYXRpb24gZGF0ZSBv +ciBlbXB0eSBpZiBpdCBkb2VzIG5vdCBleHBpcmUuCgoqKiogRmllbGQgOCAtIENl +cnRpZmljYXRlIFMvTiwgVUlEIGhhc2gsIHRydXN0IHNpZ25hdHVyZSBpbmZvCgog +ICAgVXNlZCBmb3Igc2VyaWFsIG51bWJlciBpbiBjcnQgcmVjb3Jkcy4gIEZvciBV +SUQgYW5kIFVBVCByZWNvcmRzLAogICAgdGhpcyBpcyBhIGhhc2ggb2YgdGhlIHVz +ZXIgSUQgY29udGVudHMgdXNlZCB0byByZXByZXNlbnQgdGhhdAogICAgZXhhY3Qg +dXNlciBJRC4gIEZvciB0cnVzdCBzaWduYXR1cmVzLCB0aGlzIGlzIHRoZSB0cnVz +dCBkZXB0aAogICAgc2VwZXJhdGVkIGJ5IHRoZSB0cnVzdCB2YWx1ZSBieSBhIHNw +YWNlLgoKKioqIEZpZWxkIDkgLSAgT3duZXJ0cnVzdAoKICAgIFRoaXMgaXMgb25s +eSB1c2VkIG9uIHByaW1hcnkga2V5cy4gIFRoaXMgaXMgYSBzaW5nbGUgbGV0dGVy +LCBidXQKICAgIGJlIHByZXBhcmVkIHRoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlv +biBtYXkgZm9sbG93IGluIGZ1dHVyZQogICAgdmVyc2lvbnMuICBGb3IgdHJ1c3Qg +c2lnbmF0dXJlcyB3aXRoIGEgcmVndWxhciBleHByZXNzaW9uLCB0aGlzIGlzCiAg +ICB0aGUgcmVndWxhciBleHByZXNzaW9uIHZhbHVlLCBxdW90ZWQgYXMgaW4gZmll +bGQgMTAuCgoqKiogRmllbGQgMTAgLSBVc2VyLUlECiAgICBUaGUgdmFsdWUgaXMg +cXVvdGVkIGxpa2UgYSBDIHN0cmluZyB0byBhdm9pZCBjb250cm9sIGNoYXJhY3Rl +cnMKICAgICh0aGUgY29sb24gaXMgcXVvdGVkID1ceDNhPSkuICBGb3IgYSAicHVi +IiByZWNvcmQgdGhpcyBmaWVsZCBpcwogICAgbm90IHVzZWQgb24gLS1maXhlZC1s +aXN0LW1vZGUuICBBIFVBVCByZWNvcmQgcHV0cyB0aGUgYXR0cmlidXRlCiAgICBz +dWJwYWNrZXQgY291bnQgaGVyZSwgYSBzcGFjZSwgYW5kIHRoZW4gdGhlIHRvdGFs +IGF0dHJpYnV0ZQogICAgc3VicGFja2V0IHNpemUuICBJbiBncGdzbSB0aGUgaXNz +dWVyIG5hbWUgY29tZXMgaGVyZS4gIEEgRlBSCiAgICByZWNvcmQgc3RvcmVzIHRo +ZSBmaW5nZXJwcmludCBoZXJlLiAgVGhlIGZpbmdlcnByaW50IG9mIGEKICAgIHJl +dm9jYXRpb24ga2V5IGlzIHN0b3JlZCBoZXJlLgoqKiogRmllbGQgMTEgLSBTaWdu +YXR1cmUgY2xhc3MKCiAgICBTaWduYXR1cmUgY2xhc3MgYXMgcGVyIFJGQy00ODgw +LiAgVGhpcyBpcyBhIDIgZGlnaXQgaGV4bnVtYmVyCiAgICBmb2xsb3dlZCBieSBl +aXRoZXIgdGhlIGxldHRlciAneCcgZm9yIGFuIGV4cG9ydGFibGUgc2lnbmF0dXJl +IG9yCiAgICB0aGUgbGV0dGVyICdsJyBmb3IgYSBsb2NhbC1vbmx5IHNpZ25hdHVy +ZS4gIFRoZSBjbGFzcyBieXRlIG9mIGFuCiAgICByZXZvY2F0aW9uIGtleSBpcyBh +bHNvIGdpdmVuIGhlcmUsICd4JyBhbmQgJ2wnIGlzIHVzZWQgdGhlIHNhbWUKICAg +IHdheS4gIFRoaXMgZmllbGQgaWYgbm90IHVzZWQgZm9yIFguNTA5LgoKKioqIEZp +ZWxkIDEyIC0gS2V5IGNhcGFiaWxpdGllcwoKICAgIFRoZSBkZWZpbmVkIGNhcGFi +aWxpdGllcyBhcmU6CgogICAgLSBlIDo6IEVuY3J5cHQKICAgIC0gcyA6OiBTaWdu +CiAgICAtIGMgOjogQ2VydGlmeQogICAgLSBhIDo6IEF1dGhlbnRpY2F0aW9uCiAg +ICAtID8gOjogVW5rbm93biBjYXBhYmlsaXR5CgogICAgQSBrZXkgbWF5IGhhdmUg +YW55IGNvbWJpbmF0aW9uIG9mIHRoZW0gaW4gYW55IG9yZGVyLiAgSW4gYWRkaXRp +b24KICAgIHRvIHRoZXNlIGxldHRlcnMsIHRoZSBwcmltYXJ5IGtleSBoYXMgdXBw +ZXJjYXNlIHZlcnNpb25zIG9mIHRoZQogICAgbGV0dGVycyB0byBkZW5vdGUgdGhl +IF91c2FibGVfIGNhcGFiaWxpdGllcyBvZiB0aGUgZW50aXJlIGtleSwgYW5kCiAg +ICBhIHBvdGVudGlhbCBsZXR0ZXIgJ0QnIHRvIGluZGljYXRlIGEgZGlzYWJsZWQg +a2V5LgoKKioqIEZpZWxkIDEzIC0gSXNzdWVyIGNlcnRpZmljYXRlIGZpbmdlcnBy +aW50IG9yIG90aGVyIGluZm8KCiAgICBVc2VkIGluIEZQUiByZWNvcmRzIGZvciBT +L01JTUUga2V5cyB0byBzdG9yZSB0aGUgZmluZ2VycHJpbnQgb2YKICAgIHRoZSBp +c3N1ZXIgY2VydGlmaWNhdGUuICBUaGlzIGlzIHVzZWZ1bCB0byBidWlsZCB0aGUg +Y2VydGlmaWNhdGUKICAgIHBhdGggYmFzZWQgb24gY2VydGlmaWNhdGVzIHN0b3Jl +ZCBpbiB0aGUgbG9jYWwga2V5IGRhdGFiYXNlIGl0IGlzCiAgICBvbmx5IGZpbGxl +ZCBpZiB0aGUgaXNzdWVyIGNlcnRpZmljYXRlIGlzIGF2YWlsYWJsZS4gVGhlIHJv +b3QgaGFzCiAgICBiZWVuIHJlYWNoZWQgaWYgdGhpcyBpcyB0aGUgc2FtZSBzdHJp +bmcgYXMgdGhlIGZpbmdlcnByaW50LiBUaGUKICAgIGFkdmFudGFnZSBvZiB1c2lu +ZyB0aGlzIHZhbHVlIGlzIHRoYXQgaXQgaXMgZ3VhcmFudGVlZCB0byBoYXZlCiAg +ICBiZWVuIGJlZW4gYnVpbGQgYnkgdGhlIHNhbWUgbG9va3VwIGFsZ29yaXRobSBh +cyBncGdzbSB1c2VzLgoKICAgIEZvciAidWlkIiByZWNvcmRzIHRoaXMgZmllbGQg +bGlzdHMgdGhlIHByZWZlcmVuY2VzIGluIHRoZSBzYW1lIHdheQogICAgZ3BnJ3Mg +LS1lZGl0LWtleSBtZW51IGRvZXMuCgogICAgRm9yICJzaWciIHJlY29yZHMsIHRo +aXMgaXMgdGhlIGZpbmdlcnByaW50IG9mIHRoZSBrZXkgdGhhdCBpc3N1ZWQKICAg +IHRoZSBzaWduYXR1cmUuICBOb3RlIHRoYXQgdGhpcyBpcyBvbmx5IGZpbGxlZCBp +biBpZiB0aGUgc2lnbmF0dXJlCiAgICB2ZXJpZmllZCBjb3JyZWN0bHkuICBOb3Rl +IGFsc28gdGhhdCBmb3IgdmFyaW91cyB0ZWNobmljYWwgcmVhc29ucywKICAgIHRo +aXMgZmluZ2VycHJpbnQgaXMgb25seSBhdmFpbGFibGUgaWYgLS1uby1zaWctY2Fj +aGUgaXMgdXNlZC4KCioqKiBGaWVsZCAxNCAtIEZsYWcgZmllbGQKCiAgICBGbGFn +IGZpZWxkIHVzZWQgaW4gdGhlIC0tZWRpdCBtZW51IG91dHB1dAoKKioqIEZpZWxk +IDE1IC0gUy9OIG9mIGEgdG9rZW4KCiAgICBVc2VkIGluIHNlYy9zc2IgdG8gcHJp +bnQgdGhlIHNlcmlhbCBudW1iZXIgb2YgYSB0b2tlbiAoaW50ZXJuYWwKICAgIHBy +b3RlY3QgbW9kZSAxMDAyKSBvciBhICcjJyBpZiB0aGF0IGtleSBpcyBhIHNpbXBs +ZSBzdHViIChpbnRlcm5hbAogICAgcHJvdGVjdCBtb2RlIDEwMDEpLiAgSWYgdGhl +IG9wdGlvbiAtLXdpdGgtc2VjcmV0IGlzIHVzZWQgYW5kIGEKICAgIHNlY3JldCBr +ZXkgaXMgYXZhaWxhYmxlIGZvciB0aGUgcHVibGljIGtleSwgYSAnKycgaW5kaWNh +dGVzIHRoaXMuCgoqKiogRmllbGQgMTYgLSBIYXNoIGFsZ29yaXRobQoKICAgIEZv +ciBzaWcgcmVjb3JkcywgdGhpcyBpcyB0aGUgdXNlZCBoYXNoIGFsZ29yaXRobS4g +IEZvciBleGFtcGxlOgogICAgMiA9IFNIQS0xLCA4ID0gU0hBLTI1Ni4KCioqKiBG +aWVsZCAxNyAtIEN1cnZlIG5hbWUKCiAgICBGb3IgcHViLCBzdWIsIHNlYywgYW5k +IHNzYiByZWNvcmRzIHRoaXMgZmllbGQgaXMgdXNlZCBmb3IgdGhlIEVDQwogICAg +Y3VydmUgbmFtZS4KKioqIEZpZWxkIDE4IC0gVE9GVSBQb2xpY3kKCiAgICBUaGlz +IGlzIHRoZSBUT0ZVIHBvbGljeS4gIEl0IGlzIGVpdGhlciBnb29kLCBiYWQsIHVu +a25vd24sIGFzayBvcgogICAgYXV0by4gIFRoaXMgaXMgb25seSBzaG93cyBmb3Ig +dWlkIHJlY29yZHMuCgoqKiBTcGVjaWFsIGZpZWxkcwoKKioqIFBLRCAtIFB1Ymxp +YyBrZXkgZGF0YQoKICAgIElmIGZpZWxkIDEgaGFzIHRoZSB0YWcgInBrZCIsIGEg +bGlzdGluZyBsb29rcyBsaWtlIHRoaXM6CiMrYmVnaW5fZXhhbXBsZQpwa2Q6MDox +MDI0OkI2NjVCMTQzNUY0QzIgLi4uLiBGRjI2QUJCOgogICAgISAgISAgICEtLSB0 +aGUgdmFsdWUKICAgICEgICEtLS0tLS0gZm9yIGluZm9ybWF0aW9uIG51bWJlciBv +ZiBiaXRzIGluIHRoZSB2YWx1ZQogICAgIS0tLS0tLS0tLSBpbmRleCAoZWcuIERT +QSBnb2VzIGZyb20gMCB0byAzOiBwLHEsZyx5KQojK2VuZF9leGFtcGxlCgoqKiog +VFJVIC0gVHJ1c3QgZGF0YWJhc2UgaW5mb3JtYXRpb24KICAgIEV4YW1wbGUgZm9y +IGEgInRydSIgdHJ1c3QgYmFzZSByZWNvcmQ6CiMrYmVnaW5fZXhhbXBsZQogICAg +dHJ1Om86MDoxMTY2Njk3NjU0OjE6MzoxOjUKIytlbmRfZXhhbXBsZQoKICAgIC0g +RmllbGQgMiA6OiBSZWFzb24gZm9yIHN0YWxlbmVzcyBvZiB0cnVzdC4gIElmIHRo +aXMgZmllbGQgaXMKICAgICAgICAgICAgICAgICBlbXB0eSwgdGhlbiB0aGUgdHJ1 +c3RkYiBpcyBub3Qgc3RhbGUuICBUaGlzIGZpZWxkIG1heQogICAgICAgICAgICAg +ICAgIGhhdmUgbXVsdGlwbGUgZmxhZ3MgaW4gaXQ6CgogICAgICAgICAgICAgICAg +IC0gbyA6OiBUcnVzdGRiIGlzIG9sZAogICAgICAgICAgICAgICAgIC0gdCA6OiBU +cnVzdGRiIHdhcyBidWlsdCB3aXRoIGEgZGlmZmVyZW50IHRydXN0IG1vZGVsCiAg +ICAgICAgICAgICAgICAgICAgICAgIHRoYW4gdGhlIG9uZSB3ZSBhcmUgdXNpbmcg +bm93LgoKICAgIC0gRmllbGQgMyA6OiBUcnVzdCBtb2RlbAoKICAgICAgICAgICAg +ICAgICAtIDAgOjogQ2xhc3NpYyB0cnVzdCBtb2RlbCwgYXMgdXNlZCBpbiBQR1Ag +Mi54LgogICAgICAgICAgICAgICAgIC0gMSA6OiBQR1AgdHJ1c3QgbW9kZWwsIGFz +IHVzZWQgaW4gUEdQIDYgYW5kIGxhdGVyLgogICAgICAgICAgICAgICAgICAgICAg +ICBUaGlzIGlzIHRoZSBzYW1lIGFzIHRoZSBjbGFzc2ljIHRydXN0IG1vZGVsLAog +ICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQgZm9yIHRoZSBhZGRpdGlvbiBv +ZiB0cnVzdCBzaWduYXR1cmVzLgoKICAgICAgICAgICAgICAgICBHbnVQRyBiZWZv +cmUgdmVyc2lvbiAxLjQgdXNlZCB0aGUgY2xhc3NpYyB0cnVzdCBtb2RlbAogICAg +ICAgICAgICAgICAgIGJ5IGRlZmF1bHQuIEdudVBHIDEuNCBhbmQgbGF0ZXIgdXNl +cyB0aGUgUEdQIHRydXN0CiAgICAgICAgICAgICAgICAgbW9kZWwgYnkgZGVmYXVs +dC4KCiAgICAtIEZpZWxkIDQgOjogRGF0ZSB0cnVzdGRiIHdhcyBjcmVhdGVkIGlu +IHNlY29uZHMgc2luY2UgRXBvY2guCiAgICAtIEZpZWxkIDUgOjogRGF0ZSB0cnVz +dGRiIHdpbGwgZXhwaXJlIGluIHNlY29uZHMgc2luY2UgRXBvY2guCiAgICAtIEZp +ZWxkIDYgOjogTnVtYmVyIG9mIG1hcmdpbmFsbHkgdHJ1c3RlZCB1c2VycyB0byBp +bnRyb2R1Y2UgYSBuZXcKICAgICAgICAgICAgICAgICBrZXkgc2lnbmVyIChncGcn +cyBvcHRpb24gLS1tYXJnaW5hbHMtbmVlZGVkKS4KICAgIC0gRmllbGQgNyA6OiBO +dW1iZXIgb2YgY29tcGxldGVseSB0cnVzdGVkIHVzZXJzIHRvIGludHJvZHVjZSBh +IG5ldwogICAgICAgICAgICAgICAgIGtleSBzaWduZXIuICAoZ3BnJ3Mgb3B0aW9u +IC0tY29tcGxldGVzLW5lZWRlZCkKCiAgICAtIEZpZWxkIDggOjogTWF4aW11bSBk +ZXB0aCBvZiBhIGNlcnRpZmljYXRpb24gY2hhaW4uIChncGcncyBvcHRpb24KICAg +ICAgICAgICAgICAgICAtLW1heC1jZXJ0LWRlcHRoKQoKKioqIFNQSyAtIFNpZ25h +dHVyZSBzdWJwYWNrZXQgcmVjb3JkcwoKICAgIC0gRmllbGQgMiA6OiBTdWJwYWNr +ZXQgbnVtYmVyIGFzIHBlciBSRkMtNDg4MCBhbmQgbGF0ZXIuCiAgICAtIEZpZWxk +IDMgOjogRmxhZ3MgaW4gaGV4LiAgQ3VycmVudGx5IHRoZSBvbmx5IHR3byBiaXRz +IGFzc2lnbmVkCiAgICAgICAgICAgICAgICAgYXJlIDEsIHRvIGluZGljYXRlIHRo +YXQgdGhlIHN1YnBhY2tldCBjYW1lIGZyb20gdGhlCiAgICAgICAgICAgICAgICAg +aGFzaGVkIHBhcnQgb2YgdGhlIHNpZ25hdHVyZSwgYW5kIDIsIHRvIGluZGljYXRl +IHRoZQogICAgICAgICAgICAgICAgIHN1YnBhY2tldCB3YXMgbWFya2VkIGNyaXRp +Y2FsLgogICAgLSBGaWVsZCA0IDo6IExlbmd0aCBvZiB0aGUgc3VicGFja2V0LiAg +Tm90ZSB0aGF0IHRoaXMgaXMgdGhlCiAgICAgICAgICAgICAgICAgbGVuZ3RoIG9m +IHRoZSBzdWJwYWNrZXQsIGFuZCBub3QgdGhlIGxlbmd0aCBvZiBmaWVsZAogICAg +ICAgICAgICAgICAgIDUgYmVsb3cuICBEdWUgdG8gdGhlIG5lZWQgZm9yICUtZW5j +b2RpbmcsIHRoZSBsZW5ndGgKICAgICAgICAgICAgICAgICBvZiBmaWVsZCA1IG1h +eSBiZSB1cCB0byAzeCB0aGlzIHZhbHVlLgogICAgLSBGaWVsZCA1IDo6IFRoZSBz +dWJwYWNrZXQgZGF0YS4gIFByaW50YWJsZSBBU0NJSSBpcyBzaG93biBhcwogICAg +ICAgICAgICAgICAgIEFTQ0lJLCBidXQgb3RoZXIgdmFsdWVzIGFyZSByZW5kZXJl +ZCBhcyAlWFggd2hlcmUgWFgKICAgICAgICAgICAgICAgICBpcyB0aGUgaGV4IHZh +bHVlIGZvciB0aGUgYnl0ZS4KCioqKiBDRkcgLSBDb25maWd1cmF0aW9uIGRhdGEK +CiAgICAtLWxpc3QtY29uZmlnIG91dHB1dHMgaW5mb3JtYXRpb24gYWJvdXQgdGhl +IEdudVBHIGNvbmZpZ3VyYXRpb24KICAgIGZvciB0aGUgYmVuZWZpdCBvZiBmcm9u +dGVuZHMgb3Igb3RoZXIgcHJvZ3JhbXMgdGhhdCBjYWxsIEdudVBHLgogICAgVGhl +cmUgYXJlIHNldmVyYWwgbGlzdC1jb25maWcgaXRlbXMsIGFsbCBjb2xvbiBkZWxp +bWl0ZWQgbGlrZSB0aGUKICAgIHJlc3Qgb2YgdGhlIC0td2l0aC1jb2xvbnMgb3V0 +cHV0LiAgVGhlIGZpcnN0IGZpZWxkIGlzIGFsd2F5cyAiY2ZnIgogICAgdG8gaW5k +aWNhdGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbi4gIFRoZSBzZWNvbmQgZmll +bGQgaXMgb25lIG9mCiAgICAod2l0aCBleGFtcGxlcyk6CgogICAgLSB2ZXJzaW9u +IDo6IFRoZSB0aGlyZCBmaWVsZCBjb250YWlucyB0aGUgdmVyc2lvbiBvZiBHbnVQ +Ry4KCiAgICAgICAgICAgICAgICAgOiBjZmc6dmVyc2lvbjoxLjMuNQoKICAgIC0g +cHVia2V5IDo6IFRoZSB0aGlyZCBmaWVsZCBjb250YWlucyB0aGUgcHVibGljIGtl +eSBhbGdvcml0aG1zCiAgICAgICAgICAgICAgICB0aGlzIHZlcnNpb24gb2YgR251 +UEcgc3VwcG9ydHMsIHNlcGFyYXRlZCBieQogICAgICAgICAgICAgICAgc2VtaWNv +bG9ucy4gIFRoZSBhbGdvcml0aG0gbnVtYmVycyBhcmUgYXMgc3BlY2lmaWVkIGlu +CiAgICAgICAgICAgICAgICBSRkMtNDg4MC4gIE5vdGUgdGhhdCBpbiBjb250cmFz +dCB0byB0aGUgLS1zdGF0dXMtZmQKICAgICAgICAgICAgICAgIGludGVyZmFjZSB0 +aGVzZSBhcmUgX25vdF8gdGhlIExpYmdjcnlwdCBpZGVudGlmaWVycy4KICAgICAg +ICAgICAgICAgIFVzaW5nID1wdWJrZXluYW1lPSBwcmludHMgbmFtZXMgaW5zdGVh +ZCBvZiBudW1iZXJzLgoKICAgICAgICAgICAgICAgICA6IGNmZzpwdWJrZXk6MTsy +OzM7MTY7MTcKCiAgICAtIGNpcGhlciA6OiBUaGUgdGhpcmQgZmllbGQgY29udGFp +bnMgdGhlIHN5bW1ldHJpYyBjaXBoZXJzIHRoaXMKICAgICAgICAgICAgICAgIHZl +cnNpb24gb2YgR251UEcgc3VwcG9ydHMsIHNlcGFyYXRlZCBieSBzZW1pY29sb25z +LgogICAgICAgICAgICAgICAgVGhlIGNpcGhlciBudW1iZXJzIGFyZSBhcyBzcGVj +aWZpZWQgaW4gUkZDLTQ4ODAuCiAgICAgICAgICAgICAgICBVc2luZyA9Y2lwaGVy +bmFtZT0gcHJpbnRzIG5hbWVzIGluc3RlYWQgb2YgbnVtYmVycy4KCiAgICAgICAg +ICAgICAgICAgOiBjZmc6Y2lwaGVyOjI7Mzs0Ozc7ODs5OzEwCgogICAgLSBkaWdl +c3QgOjogVGhlIHRoaXJkIGZpZWxkIGNvbnRhaW5zIHRoZSBkaWdlc3QgKGhhc2gp +IGFsZ29yaXRobXMKICAgICAgICAgICAgICAgIHRoaXMgdmVyc2lvbiBvZiBHbnVQ +RyBzdXBwb3J0cywgc2VwYXJhdGVkIGJ5CiAgICAgICAgICAgICAgICBzZW1pY29s +b25zLiAgVGhlIGRpZ2VzdCBudW1iZXJzIGFyZSBhcyBzcGVjaWZpZWQgaW4KICAg +ICAgICAgICAgICAgIFJGQy00ODgwLiAgVXNpbmcgPWRpZ2VzdG5hbWU9IHByaW50 +cyBuYW1lcyBpbnN0ZWFkIG9mCiAgICAgICAgICAgICAgICBudW1iZXJzLgoKICAg +ICAgICAgICAgICAgICA6IGNmZzpkaWdlc3Q6MTsyOzM7ODs5OzEwCgogICAgLSBj +b21wcmVzcyA6OiBUaGUgdGhpcmQgZmllbGQgY29udGFpbnMgdGhlIGNvbXByZXNz +aW9uIGFsZ29yaXRobXMKICAgICAgICAgICAgICAgICAgdGhpcyB2ZXJzaW9uIG9m +IEdudVBHIHN1cHBvcnRzLCBzZXBhcmF0ZWQgYnkKICAgICAgICAgICAgICAgICAg +c2VtaWNvbG9ucy4gIFRoZSBhbGdvcml0aG0gbnVtYmVycyBhcmUgYXMgc3BlY2lm +aWVkCiAgICAgICAgICAgICAgICAgIGluIFJGQy00ODgwLgoKICAgICAgICAgICAg +ICAgICA6IGNmZzpjb21wcmVzczowOzE7MjszCgogICAgLSBncm91cCA6OiBUaGUg +dGhpcmQgZmllbGQgY29udGFpbnMgdGhlIG5hbWUgb2YgdGhlIGdyb3VwLCBhbmQg +dGhlCiAgICAgICAgICAgICAgIGZvdXJ0aCBmaWVsZCBjb250YWlucyB0aGUgdmFs +dWVzIHRoYXQgdGhlIGdyb3VwIGV4cGFuZHMKICAgICAgICAgICAgICAgdG8sIHNl +cGFyYXRlZCBieSBzZW1pY29sb25zLgoKICAgICAgICAgICAgICAgRm9yIGV4YW1w +bGUsIGEgZ3JvdXAgb2Y6CiAgICAgICAgICAgICAgICAgOiBncm91cCBteW5hbWVz +ID0gcGFpZ2UgMHgxMjM0NTY3OCBqb2UgcGF0dGkKICAgICAgICAgICAgICAgd291 +bGQgcmVzdWx0IGluOgogICAgICAgICAgICAgICAgIDogY2ZnOmdyb3VwOm15bmFt +ZXM6cGF0dGk7am9lOzB4MTIzNDU2Nzg7cGFpZ2UKCiAgICAtIGN1cnZlIDo6IFRo +ZSB0aGlyZCBmaWVsZCBjb250YWlucyB0aGUgY3VydmUgbmFtZXMgdGhpcyB2ZXJz +aW9uCiAgICAgICAgICAgICAgIG9mIEdudVBHIHN1cHBvcnRzLCBzZXBhcmF0ZWQg +Ynkgc2VtaWNvbG9ucy4gVXNpbmcKICAgICAgICAgICAgICAgPWN1cnZlb2lkPSBw +cmludHMgT0lEcyBpbnN0ZWFkIG9mIG51bWJlcnMuCgogICAgICAgICAgICAgICAg +IDogY2ZnOmN1cnZlOmVkMjU1MTk7bmlzdHAyNTY7bmlzdHAzODQ7bmlzdHA1MjEK +CgoqIEZvcm1hdCBvZiB0aGUgLS1zdGF0dXMtZmQgb3V0cHV0CgogIEV2ZXJ5IGxp +bmUgaXMgcHJlZml4ZWQgd2l0aCAiW0dOVVBHOl0gIiwgZm9sbG93ZWQgYnkgYSBr +ZXl3b3JkIHdpdGgKICB0aGUgdHlwZSBvZiB0aGUgc3RhdHVzIGxpbmUgYW5kIHNv +bWUgYXJndW1lbnRzIGRlcGVuZGluZyBvbiB0aGUgdHlwZQogIChtYXliZSBub25l +KTsgYW4gYXBwbGljYXRpb24gc2hvdWxkIGFsd2F5cyBiZSBwcmVwYXJlZCB0byBz +ZWUgbW9yZQogIGFyZ3VtZW50cyBpbiBmdXR1cmUgdmVyc2lvbnMuCgoqKiBHZW5l +cmFsIHN0YXR1cyBjb2RlcwoqKiogTkVXU0lHCiAgICBJcyBpc3N1ZWQgcmlnaHQg +YmVmb3JlIGEgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBzdGFydHMuICBUaGlzIGlz +CiAgICB1c2VmdWwgdG8gZGVmaW5lIGEgY29udGV4dCBmb3IgcGFyc2luZyBFUlJP +UiBzdGF0dXMgbWVzc2FnZXMuICBObwogICAgYXJndW1lbnRzIGFyZSBjdXJyZW50 +bHkgZGVmaW5lZC4KCioqKiBHT09EU0lHICA8bG9uZ19rZXlpZF9vcl9mcHI+ICA8 +dXNlcm5hbWU+CiAgICBUaGUgc2lnbmF0dXJlIHdpdGggdGhlIGtleWlkIGlzIGdv +b2QuICBGb3IgZWFjaCBzaWduYXR1cmUgb25seSBvbmUKICAgIG9mIHRoZSBjb2Rl +cyBHT09EU0lHLCBCQURTSUcsIEVYUFNJRywgRVhQS0VZU0lHLCBSRVZLRVlTSUcg +b3IKICAgIEVSUlNJRyB3aWxsIGJlIGVtaXR0ZWQuICBJbiB0aGUgcGFzdCB0aGV5 +IHdlcmUgdXNlZCBhcyBhIG1hcmtlcgogICAgZm9yIGEgbmV3IHNpZ25hdHVyZTsg +bmV3IGNvZGUgc2hvdWxkIHVzZSB0aGUgTkVXU0lHIHN0YXR1cwogICAgaW5zdGVh +ZC4gIFRoZSB1c2VybmFtZSBpcyB0aGUgcHJpbWFyeSBvbmUgZW5jb2RlZCBpbiBV +VEYtOCBhbmQgJVhYCiAgICBlc2NhcGVkLiBUaGUgZmluZ2VycHJpbnQgbWF5IGJl +IHVzZWQgaW5zdGVhZCBvZiB0aGUgbG9uZyBrZXlpZCBpZgogICAgaXQgaXMgYXZh +aWxhYmxlLiAgVGhpcyBpcyB0aGUgY2FzZSB3aXRoIENNUyBhbmQgbWlnaHQgZXZl +bnR1YWxseQogICAgYWxzbyBiZSBhdmFpbGFibGUgZm9yIE9wZW5QR1AuCgoqKiog +RVhQU0lHICA8bG9uZ19rZXlpZF9vcl9mcHI+ICA8dXNlcm5hbWU+CiAgICBUaGUg +c2lnbmF0dXJlIHdpdGggdGhlIGtleWlkIGlzIGdvb2QsIGJ1dCB0aGUgc2lnbmF0 +dXJlIGlzCiAgICBleHBpcmVkLiBUaGUgdXNlcm5hbWUgaXMgdGhlIHByaW1hcnkg +b25lIGVuY29kZWQgaW4gVVRGLTggYW5kICVYWAogICAgZXNjYXBlZC4gVGhlIGZp +bmdlcnByaW50IG1heSBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGxvbmcga2V5aWQg +aWYKICAgIGl0IGlzIGF2YWlsYWJsZS4gIFRoaXMgaXMgdGhlIGNhc2Ugd2l0aCBD +TVMgYW5kIG1pZ2h0IGV2ZW50dWFsbHkKICAgIGFsc28gYmUgYXZhaWxhYmxlIGZv +ciBPcGVuUEdQLgoKKioqIEVYUEtFWVNJRyAgPGxvbmdfa2V5aWRfb3JfZnByPiA8 +dXNlcm5hbWU+CiAgICBUaGUgc2lnbmF0dXJlIHdpdGggdGhlIGtleWlkIGlzIGdv +b2QsIGJ1dCB0aGUgc2lnbmF0dXJlIHdhcyBtYWRlCiAgICBieSBhbiBleHBpcmVk +IGtleS4gVGhlIHVzZXJuYW1lIGlzIHRoZSBwcmltYXJ5IG9uZSBlbmNvZGVkIGlu +CiAgICBVVEYtOCBhbmQgJVhYIGVzY2FwZWQuICBUaGUgZmluZ2VycHJpbnQgbWF5 +IGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUKICAgIGxvbmcga2V5aWQgaWYgaXQgaXMg +YXZhaWxhYmxlLiAgVGhpcyBpcyB0aGUgY2FzZSB3aXRoIENNUyBhbmQKICAgIG1p +Z2h0IGV2ZW50dWFsbHkgYWxzbyBiZSBhdmFpbGFibGUgZm9yIE9wZW5QR1AuCgoq +KiogUkVWS0VZU0lHICA8bG9uZ19rZXlpZF9vcl9mcHI+ICA8dXNlcm5hbWU+CiAg +ICBUaGUgc2lnbmF0dXJlIHdpdGggdGhlIGtleWlkIGlzIGdvb2QsIGJ1dCB0aGUg +c2lnbmF0dXJlIHdhcyBtYWRlCiAgICBieSBhIHJldm9rZWQga2V5LiBUaGUgdXNl +cm5hbWUgaXMgdGhlIHByaW1hcnkgb25lIGVuY29kZWQgaW4gVVRGLTgKICAgIGFu +ZCAlWFggZXNjYXBlZC4gVGhlIGZpbmdlcnByaW50IG1heSBiZSB1c2VkIGluc3Rl +YWQgb2YgdGhlIGxvbmcKICAgIGtleWlkIGlmIGl0IGlzIGF2YWlsYWJsZS4gIFRo +aXMgaXMgdGhlIGNhc2Ugd2l0aCBDTVMgYW5kIG1pZ2h0CiAgICBldmVudHVhbGx5 +IGFsc28gYmXDsSBhdmFpbGFibGUgZm9yIE9wZW5QR1AuCgoqKiogQkFEU0lHICA8 +bG9uZ19rZXlpZF9vcl9mcHI+ICA8dXNlcm5hbWU+CiAgICBUaGUgc2lnbmF0dXJl +IHdpdGggdGhlIGtleWlkIGhhcyBub3QgYmVlbiB2ZXJpZmllZCBva2F5LiAgVGhl +CiAgICB1c2VybmFtZSBpcyB0aGUgcHJpbWFyeSBvbmUgZW5jb2RlZCBpbiBVVEYt +OCBhbmQgJVhYIGVzY2FwZWQuIFRoZQogICAgZmluZ2VycHJpbnQgbWF5IGJlIHVz +ZWQgaW5zdGVhZCBvZiB0aGUgbG9uZyBrZXlpZCBpZiBpdCBpcwogICAgYXZhaWxh +YmxlLiAgVGhpcyBpcyB0aGUgY2FzZSB3aXRoIENNUyBhbmQgbWlnaHQgZXZlbnR1 +YWxseSBhbHNvIGJlCiAgICBhdmFpbGFibGUgZm9yIE9wZW5QR1AuCgoqKiogRVJS +U0lHICA8a2V5aWQ+ICA8cGthbGdvPiA8aGFzaGFsZ28+IDxzaWdfY2xhc3M+IDx0 +aW1lPiA8cmM+CiAgICBJdCB3YXMgbm90IHBvc3NpYmxlIHRvIGNoZWNrIHRoZSBz +aWduYXR1cmUuICBUaGlzIG1heSBiZSBjYXVzZWQgYnkKICAgIGEgbWlzc2luZyBw +dWJsaWMga2V5IG9yIGFuIHVuc3VwcG9ydGVkIGFsZ29yaXRobS4gIEEgUkMgb2Yg +NAogICAgaW5kaWNhdGVzIHVua25vd24gYWxnb3JpdGhtLCBhIDkgaW5kaWNhdGVz +IGEgbWlzc2luZyBwdWJsaWMKICAgIGtleS4gVGhlIG90aGVyIGZpZWxkcyBnaXZl +IG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBzaWduYXR1cmUuCiAgICBzaWdf +Y2xhc3MgaXMgYSAyIGJ5dGUgaGV4LXZhbHVlLiAgVGhlIGZpbmdlcnByaW50IG1h +eSBiZSB1c2VkCiAgICBpbnN0ZWFkIG9mIHRoZSBrZXlpZCBpZiBpdCBpcyBhdmFp +bGFibGUuICBUaGlzIGlzIHRoZSBjYXNlIHdpdGgKICAgIGdwZ3NtIGFuZCBtaWdo +dCBldmVudHVhbGx5IGFsc28gYmUgYXZhaWxhYmxlIGZvciBPcGVuUEdQLgoKICAg +IE5vdGUsIHRoYXQgVElNRSBtYXkgZWl0aGVyIGJlIHRoZSBudW1iZXIgb2Ygc2Vj +b25kcyBzaW5jZSBFcG9jaCBvcgogICAgYW4gSVNPIDg2MDEgc3RyaW5nLiAgVGhl +IGxhdHRlciBjYW4gYmUgZGV0ZWN0ZWQgYnkgdGhlIHByZXNlbmNlIG9mCiAgICB0 +aGUgbGV0dGVyICdUJy4KCioqKiBWQUxJRFNJRyA8YXJncz4KCiAgICBUaGUgYXJn +cyBhcmU6CgogICAgLSA8ZmluZ2VycHJpbnRfaW5faGV4PgogICAgLSA8c2lnX2Ny +ZWF0aW9uX2RhdGU+CiAgICAtIDxzaWctdGltZXN0YW1wPgogICAgLSA8ZXhwaXJl +LXRpbWVzdGFtcD4KICAgIC0gPHNpZy12ZXJzaW9uPgogICAgLSA8cmVzZXJ2ZWQ+ +CiAgICAtIDxwdWJrZXktYWxnbz4KICAgIC0gPGhhc2gtYWxnbz4KICAgIC0gPHNp +Zy1jbGFzcz4KICAgIC0gWyA8cHJpbWFyeS1rZXktZnByPiBdCgogICAgVGhpcyBz +dGF0dXMgaW5kaWNhdGVzIHRoYXQgdGhlIHNpZ25hdHVyZSBpcyBjcnlwdG9ncmFw +aGljYWxseQogICAgdmFsaWQuIFRoaXMgaXMgc2ltaWxhciB0byBHT09EU0lHLCBF +WFBTSUcsIEVYUEtFWVNJRywgb3IgUkVWS0VZU0lHCiAgICAoZGVwZW5kaW5nIG9u +IHRoZSBkYXRlIGFuZCB0aGUgc3RhdGUgb2YgdGhlIHNpZ25hdHVyZSBhbmQgc2ln +bmluZwogICAga2V5KSBidXQgaGFzIHRoZSBmaW5nZXJwcmludCBhcyB0aGUgYXJn +dW1lbnQuIE11bHRpcGxlIHN0YXR1cwogICAgbGluZXMgKFZBTElEU0lHIGFuZCB0 +aGUgb3RoZXIgYXBwcm9wcmlhdGUgKlNJRyBzdGF0dXMpIGFyZSBlbWl0dGVkCiAg +ICBmb3IgYSB2YWxpZCBzaWduYXR1cmUuICBBbGwgYXJndW1lbnRzIGhlcmUgYXJl +IG9uIG9uZSBsb25nIGxpbmUuCiAgICBzaWctdGltZXN0YW1wIGlzIHRoZSBzaWdu +YXR1cmUgY3JlYXRpb24gdGltZSBpbiBzZWNvbmRzIGFmdGVyIHRoZQogICAgZXBv +Y2guIGV4cGlyZS10aW1lc3RhbXAgaXMgdGhlIHNpZ25hdHVyZSBleHBpcmF0aW9u +IHRpbWUgaW4KICAgIHNlY29uZHMgYWZ0ZXIgdGhlIGVwb2NoICh6ZXJvIG1lYW5z +ICJkb2VzIG5vdAogICAgZXhwaXJlIikuIHNpZy12ZXJzaW9uLCBwdWJrZXktYWxn +bywgaGFzaC1hbGdvLCBhbmQgc2lnLWNsYXNzIChhCiAgICAyLWJ5dGUgaGV4IHZh +bHVlKSBhcmUgYWxsIHN0cmFpZ2h0IGZyb20gdGhlIHNpZ25hdHVyZSBwYWNrZXQu +CiAgICBQUklNQVJZLUtFWS1GUFIgaXMgdGhlIGZpbmdlcnByaW50IG9mIHRoZSBw +cmltYXJ5IGtleSBvciBpZGVudGljYWwKICAgIHRvIHRoZSBmaXJzdCBhcmd1bWVu +dC4gIFRoaXMgaXMgdXNlZnVsIHRvIGdldCBiYWNrIHRvIHRoZSBwcmltYXJ5CiAg +ICBrZXkgd2l0aG91dCBydW5uaW5nIGdwZyBhZ2FpbiBmb3IgdGhpcyBwdXJwb3Nl +LgoKICAgIFRoZSBwcmltYXJ5LWtleS1mcHIgcGFyYW1ldGVyIGlzIHVzZWQgZm9y +IE9wZW5QR1AgYW5kIG5vdAogICAgYXZhaWxhYmxlIGZvciBDTVMgc2lnbmF0dXJl +cy4gIFRoZSBzaWctdmVyc2lvbiBhcyB3ZWxsIGFzIHRoZSBzaWcKICAgIGNsYXNz +IGlzIG5vdCBkZWZpbmVkIGZvciBDTVMgYW5kIGN1cnJlbnRseSBzZXQgdG8gMCBh +bmQgMDAuCgogICAgTm90ZSwgdGhhdCAqLVRJTUVTVEFNUCBtYXkgZWl0aGVyIGJl +IGEgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UKICAgIEVwb2NoIG9yIGFuIElTTyA4 +NjAxIHN0cmluZyB3aGljaCBjYW4gYmUgZGV0ZWN0ZWQgYnkgdGhlIHByZXNlbmNl +CiAgICBvZiB0aGUgbGV0dGVyICdUJy4KCioqKiBTSUdfSUQgIDxyYWRpeDY0X3N0 +cmluZz4gIDxzaWdfY3JlYXRpb25fZGF0ZT4gIDxzaWctdGltZXN0YW1wPgogICAg +VGhpcyBpcyBlbWl0dGVkIG9ubHkgZm9yIHNpZ25hdHVyZXMgb2YgY2xhc3MgMCBv +ciAxIHdoaWNoIGhhdmUKICAgIGJlZW4gdmVyaWZpZWQgb2theS4gIFRoZSBzdHJp +bmcgaXMgYSBzaWduYXR1cmUgaWQgYW5kIG1heSBiZSB1c2VkCiAgICBpbiBhcHBs +aWNhdGlvbnMgdG8gZGV0ZWN0IHJlcGxheSBhdHRhY2tzIG9mIHNpZ25lZCBtZXNz +YWdlcy4gIE5vdGUKICAgIHRoYXQgb25seSBETFAgYWxnb3JpdGhtcyBnaXZlIHVu +aXF1ZSBpZHMgLSBvdGhlcnMgbWF5IHlpZWxkCiAgICBkdXBsaWNhdGVkIG9uZXMg +d2hlbiB0aGV5IGhhdmUgYmVlbiBjcmVhdGVkIGluIHRoZSBzYW1lIHNlY29uZC4K +CiAgICBOb3RlLCB0aGF0IFNJRy1USU1FU1RBTVAgbWF5IGVpdGhlciBiZSBhIG51 +bWJlciBvZiBzZWNvbmRzIHNpbmNlCiAgICBFcG9jaCBvciBhbiBJU08gODYwMSBz +dHJpbmcgd2hpY2ggY2FuIGJlIGRldGVjdGVkIGJ5IHRoZSBwcmVzZW5jZQogICAg +b2YgdGhlIGxldHRlciAnVCcuCgoqKiogRU5DX1RPICA8bG9uZ19rZXlpZD4gIDxr +ZXl0eXBlPiAgPGtleWxlbmd0aD4KICAgIFRoZSBtZXNzYWdlIGlzIGVuY3J5cHRl +ZCB0byB0aGlzIExPTkdfS0VZSUQuICBLRVlUWVBFIGlzIHRoZQogICAgbnVtZXJp +Y2FsIHZhbHVlIG9mIHRoZSBwdWJsaWMga2V5IGFsZ29yaXRobSBvciAwIGlmIGl0 +IGlzIG5vdAogICAga25vd24sIEtFWUxFTkdUSCBpcyB0aGUgbGVuZ3RoIG9mIHRo +ZSBrZXkgb3IgMCBpZiBpdCBpcyBub3Qga25vd24KICAgICh3aGljaCBpcyBjdXJy +ZW50bHkgYWx3YXlzIHRoZSBjYXNlKS4gIEdwZyBwcmludHMgdGhpcyBsaW5lCiAg +ICBhbHdheXM7IEdwZ3NtIG9ubHkgaWYgaXQga25vd3MgdGhlIGNlcnRpZmljYXRl +LgoKKioqIEJFR0lOX0RFQ1JZUFRJT04KICAgIE1hcmsgdGhlIHN0YXJ0IG9mIHRo +ZSBhY3R1YWwgZGVjcnlwdGlvbiBwcm9jZXNzLiAgVGhpcyBpcyBhbHNvCiAgICBl +bWl0dGVkIHdoZW4gaW4gLS1saXN0LW9ubHkgbW9kZS4KKioqIEVORF9ERUNSWVBU +SU9OCiAgICBNYXJrIHRoZSBlbmQgb2YgdGhlIGFjdHVhbCBkZWNyeXB0aW9uIHBy +b2Nlc3MuICBUaGlzIGFyZSBhbHNvCiAgICBlbWl0dGVkIHdoZW4gaW4gLS1saXN0 +LW9ubHkgbW9kZS4KKioqIERFQ1JZUFRJT05fSU5GTyA8bWRjX21ldGhvZD4gPHN5 +bV9hbGdvPgogICAgUHJpbnQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHN5bW1ldHJp +YyBlbmNyeXB0aW9uIGFsZ29yaXRobSBhbmQgdGhlCiAgICBNREMgbWV0aG9kLiAg +VGhpcyB3aWxsIGJlIGVtaXR0ZWQgZXZlbiBpZiB0aGUgZGVjcnlwdGlvbiBmYWls +cy4KCioqKiBERUNSWVBUSU9OX0ZBSUxFRAogICAgVGhlIHN5bW1ldHJpYyBkZWNy +eXB0aW9uIGZhaWxlZCAtIG9uZSByZWFzb24gY291bGQgYmUgYSB3cm9uZwogICAg +cGFzc3BocmFzZSBmb3IgYSBzeW1tZXRyaWNhbCBlbmNyeXB0ZWQgbWVzc2FnZS4K +CioqKiBERUNSWVBUSU9OX09LQVkKICAgIFRoZSBkZWNyeXB0aW9uIHByb2Nlc3Mg +c3VjY2VlZGVkLiAgVGhpcyBtZWFucywgdGhhdCBlaXRoZXIgdGhlCiAgICBjb3Jy +ZWN0IHNlY3JldCBrZXkgaGFzIGJlZW4gdXNlZCBvciB0aGUgY29ycmVjdCBwYXNz +cGhyYXNlIGZvciBhCiAgICBzeW1tZXRyaWMgZW5jcnlwdGVkIG1lc3NhZ2Ugd2Fz +IGdpdmVuLiAgVGhlIHByb2dyYW0gaXRzZWxmIG1heQogICAgcmV0dXJuIGFuIGVy +cm9yY29kZSBiZWNhdXNlIGl0IG1heSBub3QgYmUgcG9zc2libGUgdG8gdmVyaWZ5 +IGEKICAgIHNpZ25hdHVyZSBmb3Igc29tZSByZWFzb25zLgoKKioqIFNFU1NJT05f +S0VZIDxhbGdvPjo8aGV4ZGlnaXRzPgogICAgVGhlIHNlc3Npb24ga2V5IHVzZWQg +dG8gZGVjcnlwdCB0aGUgbWVzc2FnZS4gIFRoaXMgbWVzc2FnZSB3aWxsCiAgICBv +bmx5IGJlIGVtaXR0ZWQgaWYgdGhlIG9wdGlvbiAtLXNob3ctc2Vzc2lvbi1rZXkg +aXMgdXNlZC4gIFRoZQogICAgZm9ybWF0IGlzIHN1aXRhYmxlIHRvIGJlIHBhc3Nl +ZCBhcyB2YWx1ZSBmb3IgdGhlIG9wdGlvbgogICAgLS1vdmVycmlkZS1zZXNzaW9u +LWtleS4gIEl0IGlzIG5vdCBhbiBpbmRpY2F0aW9uIHRoYXQgdGhlCiAgICBkZWNy +eXB0aW9uIHdpbGwgb3IgaGFzIHN1Y2NlZWRlZC4KCioqKiBCRUdJTl9FTkNSWVBU +SU9OICA8bWRjX21ldGhvZD4gPHN5bV9hbGdvPgogICAgTWFyayB0aGUgc3RhcnQg +b2YgdGhlIGFjdHVhbCBlbmNyeXB0aW9uIHByb2Nlc3MuCgoqKiogRU5EX0VOQ1JZ +UFRJT04KICAgIE1hcmsgdGhlIGVuZCBvZiB0aGUgYWN0dWFsIGVuY3J5cHRpb24g +cHJvY2Vzcy4KCioqKiBGSUxFX1NUQVJUIDx3aGF0PiA8ZmlsZW5hbWU+CiAgICBT +dGFydCBwcm9jZXNzaW5nIGEgZmlsZSA8ZmlsZW5hbWU+LiAgPHdoYXQ+IGluZGlj +YXRlcyB0aGUgcGVyZm9ybWVkCiAgICBvcGVyYXRpb246CiAgICAtIDEgOjogdmVy +aWZ5CiAgICAtIDIgOjogZW5jcnlwdAogICAgLSAzIDo6IGRlY3J5cHQKCioqKiBG +SUxFX0RPTkUKICAgIE1hcmtzIHRoZSBlbmQgb2YgYSBmaWxlIHByb2Nlc3Npbmcg +d2hpY2ggaGFzIGJlZW4gc3RhcnRlZAogICAgYnkgRklMRV9TVEFSVC4KCioqKiBC +RUdJTl9TSUdOSU5HCiAgICBNYXJrIHRoZSBzdGFydCBvZiB0aGUgYWN0dWFsIHNp +Z25pbmcgcHJvY2Vzcy4gVGhpcyBtYXkgYmUgdXNlZCBhcwogICAgYW4gaW5kaWNh +dGlvbiB0aGF0IGFsbCByZXF1ZXN0ZWQgc2VjcmV0IGtleXMgYXJlIHJlYWR5IGZv +ciB1c2UuCgoqKiogQUxSRUFEWV9TSUdORUQgPGxvbmcta2V5aWQ+CiAgICBXYXJu +aW5nOiBUaGlzIGlzIGV4cGVyaW1lbnRhbCBhbmQgbWlnaHQgYmUgcmVtb3ZlZCBh +dCBhbnkgdGltZS4KCioqKiBTSUdfQ1JFQVRFRCA8dHlwZT4gPHBrX2FsZ28+IDxo +YXNoX2FsZ28+IDxjbGFzcz4gPHRpbWVzdGFtcD4gPGtleWZwcj4KICAgIEEgc2ln +bmF0dXJlIGhhcyBiZWVuIGNyZWF0ZWQgdXNpbmcgdGhlc2UgcGFyYW1ldGVycy4K +ICAgIFZhbHVlcyBmb3IgdHlwZSA8dHlwZT4gYXJlOgogICAgICAtIEQgOjogZGV0 +YWNoZWQKICAgICAgLSBDIDo6IGNsZWFydGV4dAogICAgICAtIFMgOjogc3RhbmRh +cmQKICAgIChvbmx5IHRoZSBmaXJzdCBjaGFyYWN0ZXIgc2hvdWxkIGJlIGNoZWNr +ZWQpCgogICAgPGNsYXNzPiBhcmUgMiBoZXggZGlnaXRzIHdpdGggdGhlIE9wZW5Q +R1Agc2lnbmF0dXJlIGNsYXNzLgoKICAgIE5vdGUsIHRoYXQgVElNRVNUQU1QIG1h +eSBlaXRoZXIgYmUgYSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSBFcG9jaAogICAg +b3IgYW4gSVNPIDg2MDEgc3RyaW5nIHdoaWNoIGNhbiBiZSBkZXRlY3RlZCBieSB0 +aGUgcHJlc2VuY2Ugb2YgdGhlCiAgICBsZXR0ZXIgJ1QnLgoKKioqIE5PVEFUSU9O +XwogICAgVGhlcmUgYXJlIGFjdHVhbGx5IHR3byByZWxhdGVkIHN0YXR1cyBjb2Rl +cyB0byBjb252ZXkgbm90YXRpb24KICAgIGRhdGE6CgogICAgLSBOT1RBVElPTl9O +QU1FIDxuYW1lPgogICAgLSBOT1RBVElPTl9EQVRBIDxzdHJpbmc+CgogICAgPG5h +bWU+IGFuZCA8c3RyaW5nPiBhcmUgJVhYIGVzY2FwZWQ7IHRoZSBkYXRhIG1heSBi +ZSBzcGxpdCBhbW9uZwogICAgc2V2ZXJhbCBOT1RBVElPTl9EQVRBIGxpbmVzLgoK +KioqIFBPTElDWV9VUkwgPHN0cmluZz4KICAgIE5vdGUgdGhhdCBVUkwgaW4gPHN0 +cmluZz4gaXMgJVhYIGVzY2FwZWQuCgoqKiogUExBSU5URVhUIDxmb3JtYXQ+IDx0 +aW1lc3RhbXA+IDxmaWxlbmFtZT4KICAgIFRoaXMgaW5kaWNhdGVzIHRoZSBmb3Jt +YXQgb2YgdGhlIHBsYWludGV4dCB0aGF0IGlzIGFib3V0IHRvIGJlCiAgICB3cml0 +dGVuLiAgVGhlIGZvcm1hdCBpcyBhIDEgYnl0ZSBoZXggY29kZSB0aGF0IHNob3dz +IHRoZSBmb3JtYXQgb2YKICAgIHRoZSBwbGFpbnRleHQ6IDYyICgnYicpIGlzIGJp +bmFyeSBkYXRhLCA3NCAoJ3QnKSBpcyB0ZXh0IGRhdGEgd2l0aAogICAgbm8gY2hh +cmFjdGVyIHNldCBzcGVjaWZpZWQsIGFuZCA3NSAoJ3UnKSBpcyB0ZXh0IGRhdGEg +ZW5jb2RlZCBpbgogICAgdGhlIFVURi04IGNoYXJhY3RlciBzZXQuICBUaGUgdGlt +ZXN0YW1wIGlzIGluIHNlY29uZHMgc2luY2UgdGhlCiAgICBlcG9jaC4gIElmIGEg +ZmlsZW5hbWUgaXMgYXZhaWxhYmxlIGl0IGdldHMgcHJpbnRlZCBhcyB0aGUgdGhp +cmQKICAgIGFyZ3VtZW50LCBwZXJjZW50LWVzY2FwZWQgYXMgdXN1YWwuCgoqKiog +UExBSU5URVhUX0xFTkdUSCA8bGVuZ3RoPgogICAgVGhpcyBpbmRpY2F0ZXMgdGhl +IGxlbmd0aCBvZiB0aGUgcGxhaW50ZXh0IHRoYXQgaXMgYWJvdXQgdG8gYmUKICAg +IHdyaXR0ZW4uICBOb3RlIHRoYXQgaWYgdGhlIHBsYWludGV4dCBwYWNrZXQgaGFz +IHBhcnRpYWwgbGVuZ3RoCiAgICBlbmNvZGluZyBpdCBpcyBub3QgcG9zc2libGUg +dG8ga25vdyB0aGUgbGVuZ3RoIGFoZWFkIG9mIHRpbWUuICBJbgogICAgdGhhdCBj +YXNlLCB0aGlzIHN0YXR1cyB0YWcgZG9lcyBub3QgYXBwZWFyLgoKKioqIEFUVFJJ +QlVURSA8YXJndW1lbnRzPgogICAgVGhlIGxpc3Qgb3IgYXJnZW1udHMgYXJlOgog +ICAgLSA8ZnByPgogICAgLSA8b2N0ZXRzPgogICAgLSA8dHlwZT4KICAgIC0gPGlu +ZGV4PgogICAgLSA8Y291bnQ+CiAgICAtIDx0aW1lc3RhbXA+CiAgICAtIDxleHBp +cmVkYXRlPgogICAgLSA8ZmxhZ3M+CgogICAgVGhpcyBpcyBvbmUgbG9uZyBsaW5l +IGlzc3VlZCBmb3IgZWFjaCBhdHRyaWJ1dGUgc3VicGFja2V0IHdoZW4gYW4KICAg +IGF0dHJpYnV0ZSBwYWNrZXQgaXMgc2VlbiBkdXJpbmcga2V5IGxpc3RpbmcuICA8 +ZnByPiBpcyB0aGUKICAgIGZpbmdlcnByaW50IG9mIHRoZSBrZXkuICA8b2N0ZXRz +PiBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBhdHRyaWJ1dGUKICAgIHN1YnBhY2tldC4g +IDx0eXBlPiBpcyB0aGUgYXR0cmlidXRlIHR5cGUgKGUuZy4gMSBmb3IgYW4gaW1h +Z2UpLgogICAgPGluZGV4PiBhbmQgPGNvdW50PiBpbmRpY2F0ZSB0aGF0IHRoaXMg +aXMgdGhlIE4tdGggaW5kZXhlZAogICAgc3VicGFja2V0IG9mIGNvdW50IHRvdGFs +IHN1YnBhY2tldHMgaW4gdGhpcyBhdHRyaWJ1dGUgcGFja2V0LgogICAgPHRpbWVz +dGFtcD4gYW5kIDxleHBpcmVkYXRlPiBhcmUgZnJvbSB0aGUgc2VsZi1zaWduYXR1 +cmUgb24gdGhlCiAgICBhdHRyaWJ1dGUgcGFja2V0LiAgSWYgdGhlIGF0dHJpYnV0 +ZSBwYWNrZXQgZG9lcyBub3QgaGF2ZSBhIHZhbGlkCiAgICBzZWxmLXNpZ25hdHVy +ZSwgdGhlbiB0aGUgdGltZXN0YW1wIGlzIDAuICA8ZmxhZ3M+IGFyZSBhIGJpdHdp +c2UgT1IKICAgIG9mOgogICAgLSAweDAxIDo6IHRoaXMgYXR0cmlidXRlIHBhY2tl +dCBpcyBhIHByaW1hcnkgdWlkCiAgICAtIDB4MDIgOjogdGhpcyBhdHRyaWJ1dGUg +cGFja2V0IGlzIHJldm9rZWQKICAgIC0gMHgwNCA6OiB0aGlzIGF0dHJpYnV0ZSBw +YWNrZXQgaXMgZXhwaXJlZAoKKioqIFNJR19TVUJQQUNLRVQgPHR5cGU+IDxmbGFn +cz4gPGxlbj4gPGRhdGE+CiAgICBUaGlzIGluZGljYXRlcyB0aGF0IGEgc2lnbmF0 +dXJlIHN1YnBhY2tldCB3YXMgc2Vlbi4gIFRoZSBmb3JtYXQgaXMKICAgIHRoZSBz +YW1lIGFzIHRoZSAic3BrIiByZWNvcmQgYWJvdmUuCgoqKiBLZXkgcmVsYXRlZAoq +KiogSU5WX1JFQ1AsIElOVl9TR05SCiAgICBUaGUgdHdvIHNpbWlsYXIgc3RhdHVz +IGNvZGVzOgoKICAgIC0gSU5WX1JFQ1AgPHJlYXNvbj4gPHJlcXVlc3RlZF9yZWNp +cGllbnQ+CiAgICAtIElOVl9TR05SIDxyZWFzb24+IDxyZXF1ZXN0ZWRfc2VuZGVy +PgoKICAgIGFyZSBpc3N1ZWQgZm9yIGVhY2ggdW51c2FibGUgcmVjaXBpZW50L3Nl +bmRlci4gVGhlIHJlYXNvbnMgY29kZXMKICAgIGN1cnJlbnRseSBpbiB1c2UgYXJl +OgoKICAgICAgIC0gIDAgOjogTm8gc3BlY2lmaWMgcmVhc29uIGdpdmVuCiAgICAg +ICAtICAxIDo6IE5vdCBGb3VuZAogICAgICAgLSAgMiA6OiBBbWJpZ2lvdXMgc3Bl +Y2lmaWNhdGlvbgogICAgICAgLSAgMyA6OiBXcm9uZyBrZXkgdXNhZ2UKICAgICAg +IC0gIDQgOjogS2V5IHJldm9rZWQKICAgICAgIC0gIDUgOjogS2V5IGV4cGlyZWQK +ICAgICAgIC0gIDYgOjogTm8gQ1JMIGtub3duCiAgICAgICAtICA3IDo6IENSTCB0 +b28gb2xkCiAgICAgICAtICA4IDo6IFBvbGljeSBtaXNtYXRjaAogICAgICAgLSAg +OSA6OiBOb3QgYSBzZWNyZXQga2V5CiAgICAgICAtIDEwIDo6IEtleSBub3QgdHJ1 +c3RlZAogICAgICAgLSAxMSA6OiBNaXNzaW5nIGNlcnRpZmljYXRlCiAgICAgICAt +IDEyIDo6IE1pc3NpbmcgaXNzdWVyIGNlcnRpZmljYXRlCiAgICAgICAtIDEzIDo6 +IEtleSBkaXNhYmxlZAogICAgICAgLSAxNCA6OiBTeW50YXggZXJyb3IgaW4gc3Bl +Y2lmaWNhdGlvbgoKICAgIE5vdGUgdGhhdCBmb3IgaGlzdG9yaWNhbCByZWFzb25z +IHRoZSBJTlZfUkVDUCBzdGF0dXMgaXMgYWxzbyB1c2VkCiAgICBmb3IgZ3Bnc20n +cyBTSUdORVIgY29tbWFuZCB3aGVyZSBpdCByZWxhdGVzIHRvIHNpZ25lcidzIG9m +IGNvdXJzZS4KICAgIE5ld2VyIEdudVBHIHZlcnNpb25zIGFyZSB1c2luZyBJTlZf +U0dOUjsgYXBwbGljYXRpb25zIHNob3VsZAogICAgaWdub3JlIHRoZSBJTlZfUkVD +UCBkdXJpbmcgdGhlIHNlbmRlcidzIGNvbW1hbmQgcHJvY2Vzc2luZyBvbmNlCiAg +ICB0aGV5IGhhdmUgc2VlbiBhbiBJTlZfU0dOUi4gIERpZmZlcmVudCBjb2RlcyBh +cmUgdXNlZCBzbyB0aGF0IHRoZXkKICAgIGNhbiBiZSBkaXN0aW5ndWlzaCB3aGls +ZSBkb2luZyBhbiBlbmNyeXB0K3NpZ24gb3BlcmF0aW9uLgoqKiogTk9fUkVDUCA8 +cmVzZXJ2ZWQ+CiAgICBJc3N1ZWQgaWYgbm8gcmVjaXBpZW50cyBhcmUgdXNhYmxl +LgoKKioqIE5PX1NHTlIgPHJlc2VydmVkPgogICAgSXNzdWVkIGlmIG5vIHNlbmRl +cnMgYXJlIHVzYWJsZS4KCioqKiBLRVlFWFBJUkVEIDxleHBpcmUtdGltZXN0YW1w +PgogICAgVGhlIGtleSBoYXMgZXhwaXJlZC4gIGV4cGlyZS10aW1lc3RhbXAgaXMg +dGhlIGV4cGlyYXRpb24gdGltZSBpbgogICAgc2Vjb25kcyBzaW5jZSBFcG9jaC4g +IFRoaXMgc3RhdHVzIGxpbmUgaXMgbm90IHZlcnkgdXNlZnVsIGJlY2F1c2UKICAg +IGl0IHdpbGwgYWxzbyBiZSBlbWl0dGVkIGZvciBleHBpcmVkIHN1YmtleXMgZXZl +biBpZiB0aGlzIHN1YmtleSBpcwogICAgbm90IHVzZWQuICBUbyBjaGVjayB3aGV0 +aGVyIGEga2V5IHVzZWQgdG8gc2lnbiBhIG1lc3NhZ2UgaGFzCiAgICBleHBpcmVk +LCB0aGUgRVhQS0VZU0lHIHN0YXR1cyBsaW5lIGlzIHRvIGJlIHVzZWQuCgogICAg +Tm90ZSwgdGhhdCB0aGUgVElNRVNUQU1QIG1heSBlaXRoZXIgYmUgYSBudW1iZXIg +b2Ygc2Vjb25kcyBzaW5jZQogICAgRXBvY2ggb3IgYW4gSVNPIDg2MDEgc3RyaW5n +IHdoaWNoIGNhbiBiZSBkZXRlY3RlZCBieSB0aGUgcHJlc2VuY2UKICAgIG9mIHRo +ZSBsZXR0ZXIgJ1QnLgoKKioqIEtFWVJFVk9LRUQKICAgIFRoZSB1c2VkIGtleSBo +YXMgYmVlbiByZXZva2VkIGJ5IGl0cyBvd25lci4gIE5vIGFyZ3VtZW50cyB5ZXQu +CgoqKiogTk9fUFVCS0VZICA8bG9uZyBrZXlpZD4KICAgIFRoZSBwdWJsaWMga2V5 +IGlzIG5vdCBhdmFpbGFibGUKCioqKiBOT19TRUNLRVkgIDxsb25nIGtleWlkPgog +ICAgVGhlIHNlY3JldCBrZXkgaXMgbm90IGF2YWlsYWJsZQoKKioqIEtFWV9DUkVB +VEVEIDx0eXBlPiA8ZmluZ2VycHJpbnQ+IFs8aGFuZGxlPl0KICAgIEEga2V5IGhh +cyBiZWVuIGNyZWF0ZWQuICBWYWx1ZXMgZm9yIDx0eXBlPiBhcmU6CiAgICAgIC0g +QiA6OiBwcmltYXJ5IGFuZCBzdWJrZXkKICAgICAgLSBQIDo6IHByaW1hcnkKICAg +ICAgLSBTIDo6IHN1YmtleQogICAgVGhlIGZpbmdlcnByaW50IGlzIG9uZSBvZiB0 +aGUgcHJpbWFyeSBrZXkgZm9yIHR5cGUgQiBhbmQgUCBhbmQgdGhlCiAgICBvbmUg +b2YgdGhlIHN1YmtleSBmb3IgUy4gIEhhbmRsZSBpcyBhbiBhcmJpdHJhcnkgbm9u +LXdoaXRlc3BhY2UKICAgIHN0cmluZyB1c2VkIHRvIG1hdGNoIGtleSBwYXJhbWV0 +ZXJzIGZyb20gYmF0Y2gga2V5IGNyZWF0aW9uIHJ1bi4KCioqKiBLRVlfTk9UX0NS +RUFURUQgWzxoYW5kbGU+XQogICAgVGhlIGtleSBmcm9tIGJhdGNoIHJ1biBoYXMg +bm90IGJlZW4gY3JlYXRlZCBkdWUgdG8gZXJyb3JzLgoKKioqIFRSVVNUXwogICAg +VGhlc2UgYXJlIHNldmVyYWwgc2ltaWxhciBzdGF0dXMgY29kZXM6CgogICAgLSBU +UlVTVF9VTkRFRklORUQgPGVycm9yX3Rva2VuPgogICAgLSBUUlVTVF9ORVZFUiAg +ICAgPGVycm9yX3Rva2VuPgogICAgLSBUUlVTVF9NQVJHSU5BTCAgWzAgIFs8dmFs +aWRhdGlvbl9tb2RlbD5dXQogICAgLSBUUlVTVF9GVUxMWSAgICAgWzAgIFs8dmFs +aWRhdGlvbl9tb2RlbD5dXQogICAgLSBUUlVTVF9VTFRJTUFURSAgWzAgIFs8dmFs +aWRhdGlvbl9tb2RlbD5dXQoKICAgIEZvciBnb29kIHNpZ25hdHVyZXMgb25lIG9m +IHRoZXNlIHN0YXR1cyBsaW5lcyBhcmUgZW1pdHRlZCB0bwogICAgaW5kaWNhdGUg +dGhlIHZhbGlkaXR5IG9mIHRoZSBrZXkgdXNlZCB0byBjcmVhdGUgdGhlIHNpZ25h +dHVyZS4KICAgIFRoZSBlcnJvciB0b2tlbiB2YWx1ZXMgYXJlIGN1cnJlbnRseSBv +bmx5IGVtaXR0ZWQgYnkgZ3Bnc20uCgogICAgVkFMSURBVElPTl9NT0RFTCBkZXNj +cmliZXMgdGhlIGFsZ29yaXRobSB1c2VkIHRvIGNoZWNrIHRoZQogICAgdmFsaWRp +dHkgb2YgdGhlIGtleS4gIFRoZSBkZWZhdWx0cyBhcmUgdGhlIHN0YW5kYXJkIFdl +YiBvZiBUcnVzdAogICAgbW9kZWwgZm9yIGdwZyBhbmQgdGhlIHRoZSBzdGFuZGFy +ZCBYLjUwOSBtb2RlbCBmb3IgZ3Bnc20uICBUaGUKICAgIGRlZmluZWQgdmFsdWVz +IGFyZQoKICAgICAgIC0gcGdwICAgOjogVGhlIHN0YW5kYXJkIFBHUCBXb1QuCiAg +ICAgICAtIHNoZWxsIDo6IFRoZSBzdGFuZGFyZCBYLjUwOSBtb2RlbC4KICAgICAg +IC0gY2hhaW4gOjogVGhlIGNoYWluIG1vZGVsLgogICAgICAgLSBzdGVlZCA6OiBU +aGUgU1RFRUQgbW9kZWwuCgogICAgTm90ZSB0aGF0IHRoZSB0ZXJtID1UUlVTVF89 +IGluIHRoZSBzdGF0dXMgbmFtZXMgaXMgdXNlZCBmb3IKICAgIGhpc3RvcmljIHJl +YXNvbnM7IHdlIG5vdyBzcGVhayBvZiB2YWxpZGl0eS4KCioqKiBQS0FfVFJVU1Rf +CiAgICBUaGlzIGlzIGlzIG9uZToKCiAgICAtIFBLQV9UUlVTVF9HT09EIDxtYWls +Ym94PgogICAgLSBQS0FfVFJVU1RfQkFEICA8bWFpbGJveD4KCiAgICBEZXBlbmRp +bmcgb24gdGhlIG91dGNvbWUgb2YgdGhlIFBLQSBjaGVjayBvbmUgb2YgdGhlIGFi +b3ZlIHN0YXR1cwogICAgY29kZXMgaXMgZW1pdHRlZCBpbiBhZGRpdGlvbiB0byBh +ID1UUlVTVF8qPSBzdGF0dXMuCgoqKiBSZW1vdGUgY29udHJvbAoqKiogR0VUX0JP +T0wsIEdFVF9MSU5FLCBHRVRfSElEREVOLCBHT1RfSVQKCiAgICBUaGVzZSBzdGF0 +dXMgbGluZSBhcmUgdXNlZCB3aXRoIC0tY29tbWFuZC1mZCBmb3IgaW50ZXJhY3Rp +dmUKICAgIGNvbnRyb2wgb2YgdGhlIHByb2Nlc3MuCgoqKiogVVNFUklEX0hJTlQg +PGxvbmcgbWFpbiBrZXlpZD4gPHN0cmluZz4KICAgIEdpdmUgYSBoaW50IGFib3V0 +IHRoZSB1c2VyIElEIGZvciBhIGNlcnRhaW4ga2V5SUQuCgoqKiogTkVFRF9QQVNT +UEhSQVNFIDxsb25nIGtleWlkPiA8bG9uZyBtYWluIGtleWlkPiA8a2V5dHlwZT4g +PGtleWxlbmd0aD4KICAgIElzc3VlZCB3aGVuZXZlciBhIHBhc3NwaHJhc2UgaXMg +bmVlZGVkLiAgS0VZVFlQRSBpcyB0aGUgbnVtZXJpY2FsCiAgICB2YWx1ZSBvZiB0 +aGUgcHVibGljIGtleSBhbGdvcml0aG0gb3IgMCBpZiB0aGlzIGlzIG5vdCBhcHBs +aWNhYmxlLAogICAgS0VZTEVOR1RIIGlzIHRoZSBsZW5ndGggb2YgdGhlIGtleSBv +ciAwIGlmIGl0IGlzIG5vdCBrbm93biAodGhpcwogICAgaXMgY3VycmVudGx5IGFs +d2F5cyB0aGUgY2FzZSkuCgoqKiogTkVFRF9QQVNTUEhSQVNFX1NZTSA8Y2lwaGVy +X2FsZ28+IDxzMmtfbW9kZT4gPHMya19oYXNoPgogICAgSXNzdWVkIHdoZW5ldmVy +IGEgcGFzc3BocmFzZSBmb3Igc3ltbWV0cmljIGVuY3J5cHRpb24gaXMgbmVlZGVk +LgoKKioqIE5FRURfUEFTU1BIUkFTRV9QSU4gPGNhcmRfdHlwZT4gPGNodm5vPiBb +PHNlcmlhbG5vPl0KICAgIElzc3VlZCB3aGVuZXZlciBhIFBJTiBpcyByZXF1ZXN0 +ZWQgdG8gdW5sb2NrIGEgY2FyZC4KCioqKiBNSVNTSU5HX1BBU1NQSFJBU0UKICAg +IE5vIHBhc3NwaHJhc2Ugd2FzIHN1cHBsaWVkLiAgQW4gYXBwbGljYXRpb24gd2hp +Y2ggZW5jb3VudGVycyB0aGlzCiAgICBtZXNzYWdlIG1heSB3YW50IHRvIHN0b3Ag +cGFyc2luZyBpbW1lZGlhdGVseSBiZWNhdXNlIHRoZSBuZXh0CiAgICBtZXNzYWdl +IHdpbGwgcHJvYmFibHkgYmUgYSBCQURfUEFTU1BIUkFTRS4gIEhvd2V2ZXIsIGlm +IHRoZQogICAgYXBwbGljYXRpb24gaXMgYSB3cmFwcGVyIGFyb3VuZCB0aGUga2V5 +IGVkaXQgbWVudSBmdW5jdGlvbmFsaXR5IGl0CiAgICBtaWdodCBub3QgbWFrZSBz +ZW5zZSB0byBzdG9wIHBhcnNpbmcgYnV0IHNpbXBseSBpZ25vcmluZyB0aGUKICAg +IGZvbGxvd2luZyBCQURfUEFTU1BIUkFTRS4KCioqKiBCQURfUEFTU1BIUkFTRSA8 +bG9uZyBrZXlpZD4KICAgIFRoZSBzdXBwbGllZCBwYXNzcGhyYXNlIHdhcyB3cm9u +ZyBvciBub3QgZ2l2ZW4uICBJbiB0aGUgbGF0dGVyCiAgICBjYXNlIHlvdSBtYXkg +aGF2ZSBzZWVuIGEgTUlTU0lOR19QQVNTUEhSQVNFLgoKKioqIEdPT0RfUEFTU1BI +UkFTRQogICAgVGhlIHN1cHBsaWVkIHBhc3NwaHJhc2Ugd2FzIGdvb2QgYW5kIHRo +ZSBzZWNyZXQga2V5IG1hdGVyaWFsCiAgICBpcyB0aGVyZWZvcmUgdXNhYmxlLgoK +KiogSW1wb3J0L0V4cG9ydAoqKiogSU1QT1JUX0NIRUNLIDxsb25nIGtleWlkPiA8 +ZmluZ2VycHJpbnQ+IDx1c2VyIElEPgogICAgVGhpcyBzdGF0dXMgaXMgZW1pdHRl +ZCBpbiBpbnRlcmFjdGl2ZSBtb2RlIHJpZ2h0IGJlZm9yZQogICAgdGhlICJpbXBv +cnQub2theSIgcHJvbXB0LgoKKioqIElNUE9SVEVEICAgPGxvbmcga2V5aWQ+ICA8 +dXNlcm5hbWU+CiAgICBUaGUga2V5aWQgYW5kIG5hbWUgb2YgdGhlIHNpZ25hdHVy +ZSBqdXN0IGltcG9ydGVkCgoqKiogSU1QT1JUX09LICA8cmVhc29uPiBbPGZpbmdl +cnByaW50Pl0KICAgIFRoZSBrZXkgd2l0aCB0aGUgcHJpbWFyeSBrZXkncyBGSU5H +RVJQUklOVCBoYXMgYmVlbiBpbXBvcnRlZC4KICAgIFJFQVNPTiBmbGFncyBhcmU6 +CgogICAgLSAwIDo6IE5vdCBhY3R1YWxseSBjaGFuZ2VkCiAgICAtIDEgOjogRW50 +aXJlbHkgbmV3IGtleS4KICAgIC0gMiA6OiBOZXcgdXNlciBJRHMKICAgIC0gNCA6 +OiBOZXcgc2lnbmF0dXJlcwogICAgLSA4IDo6IE5ldyBzdWJrZXlzCiAgICAtIDE2 +IDo6IENvbnRhaW5zIHByaXZhdGUga2V5LgoKICAgIFRoZSBmbGFncyBtYXkgYmUg +T1JlZC4KCioqKiBJTVBPUlRfUFJPQkxFTSA8cmVhc29uPiBbPGZpbmdlcnByaW50 +Pl0KICAgIElzc3VlZCBmb3IgZWFjaCBpbXBvcnQgZmFpbHVyZS4gIFJlYXNvbiBj +b2RlcyBhcmU6CgogICAgLSAwIDo6IE5vIHNwZWNpZmljIHJlYXNvbiBnaXZlbi4K +ICAgIC0gMSA6OiBJbnZhbGlkIENlcnRpZmljYXRlLgogICAgLSAyIDo6IElzc3Vl +ciBDZXJ0aWZpY2F0ZSBtaXNzaW5nLgogICAgLSAzIDo6IENlcnRpZmljYXRlIENo +YWluIHRvbyBsb25nLgogICAgLSA0IDo6IEVycm9yIHN0b3JpbmcgY2VydGlmaWNh +dGUuCgoqKiogSU1QT1JUX1JFUyA8YXJncz4KICAgIEZpbmFsIHN0YXRpc3RpY3Mg +b24gaW1wb3J0IHByb2Nlc3MgKHRoaXMgaXMgb25lIGxvbmcgbGluZSkuIFRoZQog +ICAgYXJncyBhcmUgYSBsaXN0IG9mIHVuc2lnbmVkIG51bWJlcnMgc2VwYXJhdGVk +IGJ5IHdoaXRlIHNwYWNlOgoKICAgIC0gPGNvdW50PgogICAgLSA8bm9fdXNlcl9p +ZD4KICAgIC0gPGltcG9ydGVkPgogICAgLSBhbHdheXMgMCAoZm9ybWVybHkgdXNl +ZCBmb3IgdGhlIG51bWJlciBvZiBSU0Ega2V5cykKICAgIC0gPHVuY2hhbmdlZD4K +ICAgIC0gPG5fdWlkcz4KICAgIC0gPG5fc3Viaz4KICAgIC0gPG5fc2lncz4KICAg +IC0gPG5fcmV2b2M+CiAgICAtIDxzZWNfcmVhZD4KICAgIC0gPHNlY19pbXBvcnRl +ZD4KICAgIC0gPHNlY19kdXBzPgogICAgLSA8c2tpcHBlZF9uZXdfa2V5cz4KICAg +IC0gPG5vdF9pbXBvcnRlZD4KICAgIC0gPHNraXBwZWRfdjNfa2V5cz4KCioqKiBF +WFBPUlRFRCAgPGZpbmdlcnByaW50PgogICAgVGhlIGtleSB3aXRoIDxmaW5nZXJw +cmludD4gaGFzIGJlZW4gZXhwb3J0ZWQuICBUaGUgZmluZ2VycHJpbnQgaXMKICAg +IHRoZSBmaW5nZXJwcmludCBvZiB0aGUgcHJpbWFyeSBrZXkgZXZlbiBpZiB0aGUg +cHJpbWFyeSBrZXkgaGFzCiAgICBiZWVuIHJlcGxhY2VkIGJ5IGEgc3R1YiBrZXkg +ZHVyaW5nIHNlY3JldCBrZXkgZXhwb3J0LgoKKioqIEVYUE9SVF9SRVMgPGFyZ3M+ +CgogICAgRmluYWwgc3RhdGlzdGljcyBvbiBleHBvcnQgcHJvY2VzcyAodGhpcyBp +cyBvbmUgbG9uZyBsaW5lKS4gVGhlCiAgICBhcmdzIGFyZSBhIGxpc3Qgb2YgdW5z +aWduZWQgbnVtYmVycyBzZXBhcmF0ZWQgYnkgd2hpdGUgc3BhY2U6CgogICAgLSA8 +Y291bnQ+CiAgICAtIDxzZWNyZXRfY291bnQ+CiAgICAtIDxleHBvcnRlZD4KCgoq +KiBTbWFydGNhcmQgcmVsYXRlZAoqKiogQ0FSRENUUkwgPHdoYXQ+IFs8c2VyaWFs +bm8+XQogICAgVGhpcyBpcyB1c2VkIHRvIGNvbnRyb2wgc21hcnRjYXJkIG9wZXJh +dGlvbnMuICBEZWZpbmVkIHZhbHVlcyBmb3IKICAgIFdIQVQgYXJlOgoKICAgICAg +LSAxIDo6IFJlcXVlc3QgaW5zZXJ0aW9uIG9mIGEgY2FyZC4gIFNlcmlhbG51bWJl +ciBtYXkgYmUgZ2l2ZW4KICAgICAgICAgICAgIHRvIHJlcXVlc3QgYSBzcGVjaWZp +YyBjYXJkLiAgVXNlZCBieSBncGcgMS40IHcvbwogICAgICAgICAgICAgc2NkYWVt +b24KICAgICAgLSAyIDo6IFJlcXVlc3QgcmVtb3ZhbCBvZiBhIGNhcmQuICBVc2Vk +IGJ5IGdwZyAxLjQgdy9vIHNjZGFlbW9uLgogICAgICAtIDMgOjogQ2FyZCB3aXRo +IHNlcmlhbG51bWJlciBkZXRlY3RlZAogICAgICAtIDQgOjogTm8gY2FyZCBhdmFp +bGFibGUKICAgICAgLSA1IDo6IE5vIGNhcmQgcmVhZGVyIGF2YWlsYWJsZQogICAg +ICAtIDYgOjogTm8gY2FyZCBzdXBwb3J0IGF2YWlsYWJsZQogICAgICAtIDcgOjog +Q2FyZCBpcyBpbiB0ZXJtaW5hdGlvbiBzdGF0ZQoKKioqIFNDX09QX0ZBSUxVUkUg +Wzxjb2RlPl0KICAgIEFuIG9wZXJhdGlvbiBvbiBhIHNtYXJ0Y2FyZCBkZWZpbml0 +ZWx5IGZhaWxlZC4gIEN1cnJlbnRseSB0aGVyZSBpcwogICAgbm8gaW5kaWNhdGlv +biBvZiB0aGUgYWN0dWFsIGVycm9yIGNvZGUsIGJ1dCBhcHBsaWNhdGlvbiBzaG91 +bGQgYmUKICAgIHByZXBhcmVkIHRvIGxhdGVyIGFjY2VwdCBtb3JlIGFyZ3VtZW50 +cy4gIERlZmluZWQgdmFsdWVzIGZvcgogICAgPGNvZGU+IGFyZToKCiAgICAgIC0g +MCA6OiB1bnNwZWNpZmllZCBlcnJvciAoaWRlbnRpY2FsbHkgdG8gYSBtaXNzaW5n +IENPREUpCiAgICAgIC0gMSA6OiBjYW5jZWxlZAogICAgICAtIDIgOjogYmFkIFBJ +TgoKKioqIFNDX09QX1NVQ0NFU1MKICAgIEEgc21hcnQgY2FyZCBvcGVyYWlvbiBz +dWNjZWVkZWQuICBUaGlzIHN0YXR1cyBpcyBvbmx5IHByaW50ZWQgZm9yCiAgICBj +ZXJ0YWluIG9wZXJhdGlvbiBhbmQgaXMgbW9zdGx5IHVzZWZ1bCB0byBjaGVjayB3 +aGV0aGVyIGEgUElOCiAgICBjaGFuZ2UgcmVhbGx5IHdvcmtlZC4KCioqIE1pc2Nl +bGxhbmVvdXMgc3RhdHVzIGNvZGVzCioqKiBOT0RBVEEgIDx3aGF0PgogICAgTm8g +ZGF0YSBoYXMgYmVlbiBmb3VuZC4gIENvZGVzIGZvciBXSEFUIGFyZToKCiAgICAt +IDEgOjogTm8gYXJtb3JlZCBkYXRhLgogICAgLSAyIDo6IEV4cGVjdGVkIGEgcGFj +a2V0IGJ1dCBkaWQgbm90IGZvdW5kIG9uZS4KICAgIC0gMyA6OiBJbnZhbGlkIHBh +Y2tldCBmb3VuZCwgdGhpcyBtYXkgaW5kaWNhdGUgYSBub24gT3BlblBHUAogICAg +ICAgICAgIG1lc3NhZ2UuCiAgICAtIDQgOjogU2lnbmF0dXJlIGV4cGVjdGVkIGJ1 +dCBub3QgZm91bmQKCiAgICBZb3UgbWF5IHNlZSBtb3JlIHRoYW4gb25lIG9mIHRo +ZXNlIHN0YXR1cyBsaW5lcy4KCioqKiBVTkVYUEVDVEVEIDx3aGF0PgogICAgVW5l +eHBlY3RlZCBkYXRhIGhhcyBiZWVuIGVuY291bnRlcmVkLiAgQ29kZXMgZm9yIFdI +QVQgYXJlOgogICAgLSAwIDo6IE5vdCBmdXJ0aGVyIHNwZWNpZmllZAogICAgLSAx +IDo6IENvcnJ1cHRlZCBtZXNzYWdlIHN0cnVjdHVyZQoKKioqIFRSVU5DQVRFRCA8 +bWF4bm8+CiAgICBUaGUgb3V0cHV0IHdhcyB0cnVuY2F0ZWQgdG8gTUFYTk8gaXRl +bXMuICBUaGlzIHN0YXR1cyBjb2RlIGlzCiAgICBpc3N1ZWQgZm9yIGNlcnRhaW4g +ZXh0ZXJuYWwgcmVxdWVzdHMuCgoqKiogRVJST1IgPGVycm9yIGxvY2F0aW9uPiA8 +ZXJyb3IgY29kZT4gWzxtb3JlPl0KICAgIFRoaXMgaXMgYSBnZW5lcmljIGVycm9y +IHN0YXR1cyBtZXNzYWdlLCBpdCBtaWdodCBiZSBmb2xsb3dlZCBieQogICAgZXJy +b3IgbG9jYXRpb24gc3BlY2lmaWMgZGF0YS4gPGVycm9yIGNvZGU+IGFuZCA8ZXJy +b3JfbG9jYXRpb24+CiAgICBzaG91bGQgbm90IGNvbnRhaW4gc3BhY2VzLiAgVGhl +IGVycm9yIGNvZGUgaXMgYSBlaXRoZXIgYSBzdHJpbmcKICAgIGNvbW1lbmNpbmcg +d2l0aCBhIGxldHRlciBvciBzdWNoIGEgc3RyaW5nIHByZWZpeGVkIHdpdGggYQog +ICAgbnVtZXJpY2FsIGVycm9yIGNvZGUgYW5kIGFuIHVuZGVyc2NvcmU7IGUuZy46 +ICIxNTEwMTEzMjdfRU9GIi4KKioqIFdBUk5JTkcgPGxvY2F0aW9uPiA8ZXJyb3Ig +Y29kZT4gWzx0ZXh0Pl0KICAgIFRoaXMgaXMgYSBnZW5lcmljIHdhcm5pbmcgc3Rh +dHVzIG1lc3NhZ2UsIGl0IG1pZ2h0IGJlIGZvbGxvd2VkIGJ5CiAgICBlcnJvciBs +b2NhdGlvbiBzcGVjaWZpYyBkYXRhLiA8ZXJyb3IgY29kZT4gYW5kIDxsb2NhdGlv +bj4KICAgIHNob3VsZCBub3QgY29udGFpbiBzcGFjZXMuICBUaGUgZXJyb3IgY29k +ZSBpcyBhIGVpdGhlciBhIHN0cmluZwogICAgY29tbWVuY2luZyB3aXRoIGEgbGV0 +dGVyIG9yIHN1Y2ggYSBzdHJpbmcgcHJlZml4ZWQgd2l0aCBhCiAgICBudW1lcmlj +YWwgZXJyb3IgY29kZSBhbmQgYW4gdW5kZXJzY29yZTsgZS5nLjogIjE1MTAxMTMy +N19FT0YiLgoqKiogU1VDQ0VTUyBbPGxvY2F0aW9uPl0KICAgIFBvc3RpdmUgY29u +ZmlybWF0aW9uIHRoYXQgYW4gb3BlcmF0aW9uIHN1Y2NlZWRlZC4gIEl0IGlzIHVz +ZWQKICAgIHNpbWlsYXIgdG8gSVNPLUMncyBFWElUX1NVQ0NFU1MuICA8bG9jYXRp +b24+IGlzIG9wdGlvbmFsIGJ1dCBpZgogICAgZ2l2ZW4gc2hvdWxkIG5vdCBjb250 +YWluIHNwYWNlcy4gIFVzZWQgb25seSB3aXRoIGEgZmV3IGNvbW1hbmRzLgoKKioq +IEZBSUxVUkUgPGxvY2F0aW9uPiA8ZXJyb3JfY29kZT4KICAgIFRoaXMgaXMgdGhl +IGNvdW50ZXJwYXJ0IHRvIFNVQ0NFU1MgYW5kIHVzZWQgdG8gaW5kaWNhdGUgYSBw +cm9ncmFtCiAgICBmYWlsdXJlLiAgSXQgaXMgdXNlZCBzaW1pbGFyIHRvIElTTy1D +J3MgRVhJVF9GQUlMVVJFIGJ1dCBhbGxvd3MgdG8KICAgIGNvbnZleSBtb3JlIGlu +Zm9ybWF0aW9uLCBpbiBwYXJ0aWN1bGFyIGFuIGdwZy1lcnJvciBlcnJvciBjb2Rl +LgogICAgVGhhdCBudW1lcmljYWwgZXJyb3IgY29kZSBtYXkgb3B0aW9uYWxseSBo +YXZlIGEgc3VmZml4IG1hZGUgb2YgYW4KICAgIHVuZGVyc2NvcmUgYW5kIGEgc3Ry +aW5nIHdpdGggYW4gZXJyb3Igc3ltYm9sIGxpa2UgIjE1MTAxMTMyN19FT0YiLgog +ICAgQSBkYXNoIG1heSBiZSB1c2VkIGluc3RlYWQgb2YgPGxvY2F0aW9uPi4KCioq +KiBCQURBUk1PUgogICAgVGhlIEFTQ0lJIGFybW9yIGlzIGNvcnJ1cHRlZC4gIE5v +IGFyZ3VtZW50cyB5ZXQuCgoqKiogREVMRVRFX1BST0JMRU0gPHJlYXNvbl9jb2Rl +PgogICAgRGVsZXRpbmcgYSBrZXkgZmFpbGVkLiAgUmVhc29uIGNvZGVzIGFyZToK +ICAgIC0gMSA6OiBObyBzdWNoIGtleQogICAgLSAyIDo6IE11c3QgZGVsZXRlIHNl +Y3JldCBrZXkgZmlyc3QKICAgIC0gMyA6OiBBbWJpZ2lvdXMgc3BlY2lmaWNhdGlv +bgogICAgLSA0IDo6IEtleSBpcyBzdG9yZWQgb24gYSBzbWFydGNhcmQuCgoqKiog +UFJPR1JFU1MgPHdoYXQ+IDxjaGFyPiA8Y3VyPiA8dG90YWw+CiAgICBVc2VkIGJ5 +IHRoZSBwcmltZWdlbiBhbmQgUHVibGljIGtleSBmdW5jdGlvbnMgdG8gaW5kaWNh +dGUKICAgIHByb2dyZXNzLiAgPGNoYXI+IGlzIHRoZSBjaGFyYWN0ZXIgZGlzcGxh +eWVkIHdpdGggbm8gLS1zdGF0dXMtZmQKICAgIGVuYWJsZWQsIHdpdGggdGhlIGxp +bmVmZWVkIHJlcGxhY2VkIGJ5IGFuICdYJy4gIDxjdXI+IGlzIHRoZQogICAgY3Vy +cmVudCBhbW91bnQgZG9uZSBhbmQgPHRvdGFsPiBpcyBhbW91bnQgdG8gYmUgZG9u +ZTsgYSA8dG90YWw+IG9mCiAgICAwIGluZGljYXRlcyB0aGF0IHRoZSB0b3RhbCBh +bW91bnQgaXMgbm90IGtub3duLiBUaGUgY29uZGl0aW9uCiAgICAgIDogICAgICAg +VE9UQUwgJiYgQ1VSID09IFRPVEFMCiAgICBtYXkgYmUgdXNlZCB0byBkZXRlY3Qg +dGhlIGVuZCBvZiBhbiBvcGVyYXRpb24uCgogICAgV2VsbCBrbm93biB2YWx1ZXMg +Zm9yIFdIQVQgYXJlOgoKICAgICAgICAgICAtIHBrX2RzYSAgIDo6IERTQSBrZXkg +Z2VuZXJhdGlvbgogICAgICAgICAgIC0gcGtfZWxnICAgOjogRWxnYW1hbCBrZXkg +Z2VuZXJhdGlvbgogICAgICAgICAgIC0gcHJpbWVnZW4gOjogUHJpbWUgZ2VuZXJh +dGlvbgogICAgICAgICAgIC0gbmVlZF9lbnRyb3B5IDo6IFdhaXRpbmcgZm9yIG5l +dyBlbnRyb3B5IGluIHRoZSBSTkcKICAgICAgICAgICAtIHRpY2sgOjogR2VuZXJp +YyB0aWNrIHdpdGhvdXQgYW55IHNwZWNpYWwgbWVhbmluZyAtIHVzZWZ1bAogICAg +ICAgICAgICAgICAgICAgICBmb3IgbGV0dGluZyBjbGllbnRzIGtub3cgdGhhdCB0 +aGUgc2VydmVyIGlzIHN0aWxsCiAgICAgICAgICAgICAgICAgICAgIHdvcmtpbmcu +CiAgICAgICAgICAgLSBzdGFydGluZ19hZ2VudCA6OiBBIGdwZy1hZ2VudCB3YXMg +c3RhcnRlZCBiZWNhdXNlIGl0IGlzIG5vdAogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIHJ1bm5pbmcgYXMgYSBkYWVtb24uCiAgICAgICAgICAgLSBsZWFy +bmNhcmQgOjogU2VuZCBieSB0aGUgYWdlbnQgYW5kIGdwZ3NtIHdoaWxlIGxlYXJp +bmcKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZGF0YSBvZiBhIHNtYXJ0 +Y2FyZC4KICAgICAgICAgICAtIGNhcmRfYnVzeSA6OiBBIHNtYXJ0Y2FyZCBpcyBz +dGlsbCB3b3JraW5nCgoqKiogQkFDS1VQX0tFWV9DUkVBVEVEIDxmaW5nZXJwcmlu +dD4gPGZuYW1lPgogICAgQSBiYWNrdXAgb2YgYSBrZXkgaWRlbnRpZmllZCBieSA8 +ZmluZ2VycHJpbnQ+IGhhcyBiZWVuIHdyaXR0ZSB0bwogICAgdGhlIGZpbGUgPGZu +YW1lPjsgPGZuYW1lPiBpcyBwZXJjZW50LWVzY2FwZWQuCgoqKiogTU9VTlRQT0lO +VCA8bmFtZT4KICAgIDxuYW1lPiBpcyBhIHBlcmNlbnQtcGx1cyBlc2NhcGVkIGZp +bGVuYW1lIGRlc2NyaWJpbmcgdGhlCiAgICBtb3VudHBvaW50IGZvciB0aGUgY3Vy +cmVudCBvcGVyYXRpb24gKGUuZy4gdXNlZCBieSAiZzEzIC0tbW91bnQiKS4KICAg +IFRoaXMgbWF5IGVpdGhlciBiZSB0aGUgc3BlY2lmaWVkIG1vdW50cG9pbnQgb3Ig +b25lIHJhbmRvbWx5CiAgICBjaG9vc2VuIGJ5IGcxMy4KCioqKiBQSU5FTlRSWV9M +QVVOQ0hFRCA8cGlkPgogICAgVGhpcyBzdGF0dXMgbGluZSBpcyBlbWl0dGVkIGJ5 +IGdwZyB0byBub3RpZnkgYSBjbGllbnQgdGhhdCBhCiAgICBQaW5lbnRyeSBoYXMg +YmVlbiBsYXVuY2hlZC4gIDxwaWQ+IGlzIHRoZSBQSUQgb2YgdGhlIFBpbmVudHJ5 +LiAgSXQKICAgIG1heSBiZSB1c2VkIHRvIGRpc3BsYXkgYSBoaW50IHRvIHRoZSB1 +c2VyIGJ1dCBjYW4ndCBiZSB1c2VkIHRvCiAgICBzeW5jaHJvbml6ZSB3aXRoIFBp +bmVudHJ5LiAgTm90ZSB0aGF0IHRoZXJlIGlzIGFsc28gYW4gQXNzdWFuCiAgICBp +bnF1aXJ5IGxpbmUgd2l0aCB0aGUgc2FtZSBuYW1lIHVzZWQgaW50ZXJuYWxseSBv +ciwgaWYgZW5hYmxlZCwKICAgIHNlbmQgdG8gdGhlIGNsaWVudCBpbnN0ZWFkIG9m +IHRoaXMgc3RhdHVzIGxpbmUuICBTdWNoIGFuIGlucXVpcnkKICAgIG1heSBiZSB1 +c2VkIHRvIHN5bmMgd2l0aCBQaW5lbnRyeQoKKiogT2Jzb2xldGUgc3RhdHVzIGNv +ZGVzCioqKiBTSUdFWFBJUkVECiAgICBSZW1vdmVkIG9uIDIwMTEtMDItMDQuICBU +aGlzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgS0VZRVhQSVJFRC4KKioqIFJT +QV9PUl9JREVBCiAgICBPYnNvbGV0ZS4gIFRoaXMgc3RhdHVzIG1lc3NhZ2UgdXNl +ZCB0byBiZSBlbWl0dGVkIGZvciByZXF1ZXN0cyB0bwogICAgdXNlIHRoZSBJREVB +IG9yIFJTQSBhbGdvcml0aG1zLiAgSXQgaGFzIGJlZW4gZHJvcHBlZCBmcm9tIEdu +dVBHCiAgICAyLjEgYWZ0ZXIgdGhlIHJlc3BlY3RpdmUgcGF0ZW50cyBleHBpcmVk +LgoqKiogU0hNX0lORk8sIFNITV9HRVQsIFNITV9HRVRfQk9PTCwgU0hNX0dFVF9I +SURERU4KICAgIFRoZXNlIHdlcmUgdXNlZCBmb3IgdGhlIGFuY2llbnQgc2hhcmVk +IG1lbW9yeSBiYXNlZCBjby1wcm9jZXNzaW5nLgoqKiogQkVHSU5fU1RSRUFNLCBF +TkRfU1RSRUFNCiAgICBVc2VkIHRvIGlzc3VlZCBieSB0aGUgZXhwZXJpbWVudGFs +IHBpcGVtb2RlLgoKCiogRm9ybWF0IG9mIHRoZSAtLWF0dHJpYnV0ZS1mZCBvdXRw +dXQKCiAgV2hlbiAtLWF0dHJpYnV0ZS1mZCBpcyBzZXQsIGR1cmluZyBrZXkgbGlz +dGluZ3MgKC0tbGlzdC1rZXlzLAogIC0tbGlzdC1zZWNyZXQta2V5cykgR251UEcg +ZHVtcHMgZWFjaCBhdHRyaWJ1dGUgcGFja2V0IHRvIHRoZSBmaWxlCiAgZGVzY3Jp +cHRvciBzcGVjaWZpZWQuICAtLWF0dHJpYnV0ZS1mZCBpcyBpbnRlbmRlZCBmb3Ig +dXNlIHdpdGgKICAtLXN0YXR1cy1mZCBhcyBwYXJ0IG9mIHRoZSByZXF1aXJlZCBp +bmZvcm1hdGlvbiBpcyBjYXJyaWVkIG9uIHRoZQogIEFUVFJJQlVURSBzdGF0dXMg +dGFnIChzZWUgYWJvdmUpLgoKICBUaGUgY29udGVudHMgb2YgdGhlIGF0dHJpYnV0 +ZSBkYXRhIGlzIHNwZWNpZmllZCBieSBSRkMgNDg4MC4gIEZvcgogIGNvbnZlbmll +bmNlLCBoZXJlIGlzIHRoZSBQaG90byBJRCBmb3JtYXQsIGFzIGl0IGlzIGN1cnJl +bnRseSB0aGUKICBvbmx5IGF0dHJpYnV0ZSBkZWZpbmVkOgoKICAtIEJ5dGUgMC0x +IDo6IFRoZSBsZW5ndGggb2YgdGhlIGltYWdlIGhlYWRlci4gIER1ZSB0byBhIGhp +c3RvcmljYWwKICAgICAgICAgICAgICAgIGFjY2lkZW50IChpLmUuIG9vcHMhKSBi +YWNrIGluIHRoZSBOQUkgUEdQIGRheXMsIHRoaXMKICAgICAgICAgICAgICAgIGlz +IGEgbGl0dGxlLWVuZGlhbiBudW1iZXIuICBDdXJyZW50bHkgMTYgKDB4MTAgMHgw +MCkuCgogIC0gQnl0ZSAyIDo6IFRoZSBpbWFnZSBoZWFkZXIgdmVyc2lvbi4gIEN1 +cnJlbnRseSAweDAxLgoKICAtIEJ5dGUgMyA6OiBFbmNvZGluZyBmb3JtYXQuICAw +eDAxID09IEpQRUcuCgogIC0gQnl0ZSA0LTE1IDo6IFJlc2VydmVkLCBhbmQgY3Vy +cmVudGx5IHVudXNlZC4KCiAgQWxsIG90aGVyIGRhdGEgYWZ0ZXIgdGhpcyBoZWFk +ZXIgaXMgcmF3IGltYWdlIChKUEVHKSBkYXRhLgoKCiogVW5hdHRlbmRlZCBrZXkg +Z2VuZXJhdGlvbgoKICAgUGxlYXNlIHNlZSB0aGUgR251UEcgbWFudWFsIGZvciBh +IGRlc2NyaXB0aW9uLgoKCiogTGF5b3V0IG9mIHRoZSBUcnVzdERCCgogIFRoZSBU +cnVzdERCIGlzIGJ1aWx0IGZyb20gZml4ZWQgbGVuZ3RoIHJlY29yZHMsIHdoZXJl +IHRoZSBmaXJzdCBieXRlCiAgZGVzY3JpYmVzIHRoZSByZWNvcmQgdHlwZS4gIEFs +bCBudW1lcmljIHZhbHVlcyBhcmUgc3RvcmVkIGluIG5ldHdvcmsKICBieXRlIG9y +ZGVyLiAgVGhlIGxlbmd0aCBvZiBlYWNoIHJlY29yZCBpcyA0MCBieXRlcy4gIFRo +ZSBmaXJzdAogIHJlY29yZCBvZiB0aGUgREIgaXMgYWx3YXlzIG9mIHR5cGUgMSBh +bmQgdGhpcyBpcyB0aGUgb25seSByZWNvcmQgb2YKICB0aGlzIHR5cGUuCgogIFRo +ZSByZWNvcmQgdHlwZXM6IGRpcmVjdG9yeSgyKSwga2V5KDMpLCB1aWQoNCksIHBy +ZWYoNSksIHNpZ3JlYyg2KSwKICBhbmQgc2hhZG93IGRpcmVjdG9yeSg4KSBhcmUg +bm90IGFueW1vcmUgdXNlZCBieSB2ZXJzaW9uIDIgb2YgdGhlCiAgVHJ1c3REQi4K +CioqIFJlY29yZCB0eXBlIDAKCiAgIFVudXNlZCByZWNvcmQgb3IgZGVsZXRlZCwg +Y2FuIGJlIHJldXNlZCBmb3IgYW55IHB1cnBvc2UuICBTdWNoCiAgIHJlY29yZHMg +c2hvdWxkIGluIGdlbmVyYWwgbm90IGV4aXN0IGJlY2F1c2UgZGVsZXRlZCByZWNv +cmRzIGFyZSBvZgogICB0eXBlIDI1NCBhbmQga2VwdCBpbiBhIGxpbmtlZCBsaXN0 +LgoKKiogVmVyc2lvbiBpbmZvIChSRUNUWVBFX1ZFUiwgMSkKCiAgIFZlcnNpb24g +aW5mb3JtYXRpb24gZm9yIHRoaXMgVHJ1c3REQi4gIFRoaXMgaXMgYWx3YXlzIHRo +ZSBmaXJzdAogICByZWNvcmQgb2YgdGhlIERCIGFuZCB0aGUgb25seSBvbmUgb2Yg +dGhpcyB0eXBlLgoKICAgLSAxIHU4IDo6IFJlY29yZCB0eXBlICh2YWx1ZTogMSku +CiAgIC0gMyBieXRlIDo6IE1hZ2ljIHZhbHVlICgiZ3BnIikKICAgLSAxIHU4IDo6 +IFRydXN0REIgdmVyc2lvbiAodmFsdWU6IDIpLgogICAtIDEgdTggOjogPW1hcmdp +bmFscz0uIEhvdyBtYW55IG1hcmdpbmFsIHRydXN0ZWQga2V5cyBhcmUgcmVxdWly +ZWQuCiAgIC0gMSB1OCA6OiA9Y29tcGxldGVzPS4gSG93IG1hbnkgY29tcGxldGVs +eSB0cnVzdGVkIGtleXMgYXJlCiAgICAgICAgICAgICByZXF1aXJlZC4KICAgLSAx +IHU4IDo6ID1tYXhfY2VydF9kZXB0aD0uICBIb3cgZGVlcCBpcyB0aGUgV29UIGV2 +YWx1YXRlZC4gIEFsb25nCiAgICAgICAgICAgICB3aXRoID1tYXJnaW5hbHM9IGFu +ZCA9Y29tcGxldGVzPSwgdGhpcyB2YWx1ZSBpcyB1c2VkIHRvCiAgICAgICAgICAg +ICBjaGVjayB3aGV0aGVyIHRoZSBjYWNoZWQgdmFsaWRpdHkgdmFsdWUgZnJvbSBh +IFtGSVhNRQogICAgICAgICAgICAgZGlyXSByZWNvcmQgY2FuIGJlIHVzZWQuCiAg +IC0gMSB1OCA6OiA9dHJ1c3RfbW9kZWw9CiAgIC0gMSB1OCA6OiA9bWluX2NlcnRf +bGV2ZWw9CiAgIC0gMiBieXRlIDo6IE5vdCB1c2VkCiAgIC0gMSB1MzIgOjogPWNy +ZWF0ZWQ9LiBUaW1lc3RhbXAgb2YgdHJ1c3RkYiBjcmVhdGlvbi4KICAgLSAxIHUz +MiA6OiA9bmV4dGNoZWNrPS4gVGltZXN0YW1wIG9mIGxhc3QgbW9kaWZpY2F0aW9u +IHdoaWNoIG1heQogICAgICAgICAgICAgIGFmZmVjdCB0aGUgdmFsaWRpdHkgb2Yg +a2V5cyBpbiB0aGUgdHJ1c3RkYi4gIFRoaXMgdmFsdWUKICAgICAgICAgICAgICBp +cyBjaGVja2VkIGFnYWluc3QgdGhlIHZhbGlkaXR5IHRpbWVzdGFtcCBpbiB0aGUg +ZGlyCiAgICAgICAgICAgICAgcmVjb3Jkcy4KICAgLSAxIHUzMiA6OiA9cmVzZXJ2 +ZWQ9LiAgTm90IHVzZWQuCiAgIC0gMSB1MzIgOjogPXJlc2VydmVkMj0uIE5vdCB1 +c2VkLgogICAtIDEgdTMyIDo6ID1maXJzdGZyZWU9LiBOdW1iZXIgb2YgdGhlIHJl +Y29yZCB3aXRoIHRoZSBoZWFkIHJlY29yZAogICAgICAgICAgICAgIG9mIHRoZSBS +RUNUWVBFX0ZSRUUgbGlua2VkIGxpc3QuCiAgIC0gMSB1MzIgOjogPXJlc2VydmVk +Mz0uIE5vdCB1c2VkLgogICAtIDEgdTMyIDo6ID10cnVzdGhhc2h0Ymw9LiBSZWNv +cmQgbnVtYmVyIG9mIHRoZSB0cnVzdGhhc2h0YWJsZS4KCgoqKiBIYXNoIHRhYmxl +IChSRUNUWVBFX0hUQkwsIDEwKQoKICAgRHVlIHRvIHRoZSBmYWN0IHRoYXQgd2Ug +dXNlIGZpbmdlcnByaW50cyB0byBsb29rdXAga2V5cywgd2UgY2FuCiAgIGltcGxl +bWVudCBxdWljayBhY2Nlc3MgYnkgc29tZSBzaW1wbGUgaGFzaCBtZXRob2RzLCBh +bmQgYXZvaWQgdGhlCiAgIG92ZXJoZWFkIG9mIGdkYm0uICBBIHByb3BlcnR5IG9m +IGZpbmdlcnByaW50cyBpcyB0aGF0IHRoZXkgY2FuIGJlCiAgIHVzZWQgZGlyZWN0 +bHkgYXMgaGFzaCB2YWx1ZXMuICBXaGF0IHdlIHVzZSBpcyBhIGR5bmFtaWMgbXVs +dGlsZXZlbAogICBhcmNoaXRlY3R1cmUsIHdoaWNoIGNvbWJpbmVzIGhhc2ggdGFi +bGVzLCByZWNvcmQgbGlzdHMsIGFuZCBsaW5rZWQKICAgbGlzdHMuCgogICBUaGlz +IHJlY29yZCBpcyBhIGhhc2ggdGFibGUgb2YgMjU2IGVudHJpZXMgd2l0aCB0aGUg +cHJvcGVydHkgdGhhdAogICBhbGwgdGhlc2UgcmVjb3JkcyBhcmUgc3RvcmVkIGNv +bnNlY3V0aXZlbHkgdG8gbWFrZSBvbmUgYmlnCiAgIHRhYmxlLiBUaGUgaGFzaCB2 +YWx1ZSBpcyBzaW1wbGUgdGhlIDFzdCwgMm5kLCAuLi4gYnl0ZSBvZiB0aGUKICAg +ZmluZ2VycHJpbnQgKGRlcGVuZGluZyBvbiB0aGUgaW5kaXJlY3Rpb24gbGV2ZWwp +LgoKICAgLSAxIHU4IDo6IFJlY29yZCB0eXBlICh2YWx1ZTogMTApLgogICAtIDEg +dTggOjogUmVzZXJ2ZWQKICAgLSBuIHUzMiA6OiA9cmVjbnVtPS4gIEEgdGFibGUg +d2l0aCB0aGUgaGFzaCB0YWJsZSBpdGVtcyBmaXR0aW5nIGludG8KICAgICAgICAg +ICAgICB0aGlzIHJlY29yZC4gID1uPSBkZXBlbmRzIG9uIHRoZSByZWNvcmQgbGVu +Z3RoOgogICAgICAgICAgICAgICRuPShyZWNsZW4tMikvNCQgd2hpY2ggeWllbGRz +IDkgZm9yIG91cmUgY3VycmVudCByZWNvcmQKICAgICAgICAgICAgICBsZW5ndGgg +b2YgNDAgYnl0ZXMuCgogICBUaGUgdG90YWwgbnVtYmVyIG9mIGhhc2ggdGFibGUg +cmVjb3JkcyB0byBmb3JtIHRoZSB0YWJsZSBpczoKICAgJG09KDI1NituLTEpL24k +LiAgVGhpcyBpcyAyOSBmb3Igb3VyIHJlY29yZCBsZW5ndGggb2YgNDAuCgogICBU +byBsb29rIHVwIGEga2V5IHdlIHVzZSB0aGUgZmlyc3QgYnl0ZSBvZiB0aGUgZmlu +Z2VycHJpbnQgdG8gZ2V0CiAgIHRoZSByZWNudW0gZnJvbSB0aGlzIGhhc2ggdGFi +bGUgYW5kIHRoZW4gbG9vayB1cCB0aGUgYWRkcmVzc2VkCiAgIHJlY29yZDoKCiAg +IC0gSWYgdGhhdCByZWNvcmQgaXMgYW5vdGhlciBoYXNoIHRhYmxlLCB3ZSB1c2Ug +Mm5kIGJ5dGUgdG8gaW5kZXgKICAgICB0aGF0IGhhc2ggdGFibGUgYW5kIHNvIG9u +OwogICAtIGlmIHRoYXQgcmVjb3JkIGlzIGEgaGFzaCBsaXN0LCB3ZSB3YWxrIGFs +bCBlbnRyaWVzIHVudGlsIHdlIGZpbmQKICAgICBhIG1hdGNoaW5nIG9uZTsgb3IK +ICAgLSBpZiB0aGF0IHJlY29yZCBpcyBhIGtleSByZWNvcmQsIHdlIGNvbXBhcmUg +dGhlIGZpbmdlcnByaW50IHRvCiAgICAgZGVjaWRlIHdoZXRoZXIgaXQgaXMgdGhl +IHJlcXVlc3RlZCBrZXk7CgoKKiogSGFzaCBsaXN0IChSRUNUWVBFX0hMU1QsIDEx +KQoKICAgU2VlIGhhc2ggdGFibGUgYWJvdmUgb24gaG93IGl0IGlzIHVzZWQuICBJ +dCBtYXkgYWxzbyBiZSB1c2VkIGZvcgogICBvdGhlciBwdXJwb3Nlcy4KCiAgIC0g +MSB1OCA6OiBSZWNvcmQgdHlwZSAodmFsdWU6IDExKS4KICAgLSAxIHU4IDo6IFJl +c2VydmVkLgogICAtIDEgdTMyIDo6ID1uZXh0PS4gIFJlY29yZCBudW1iZXIgb2Yg +dGhlIG5leHQgaGFzaCBsaXN0IHJlY29yZCBvciAwCiAgICAgICAgICAgICAgaWYg +bm9uZS4KICAgLSBuIHUzMiA6OiA9cm51bT0uICBBcnJheSB3aXRoIHJlY29yZCBu +dW1iZXJzIHRvIHZhbHVlcy4gIFdpdGgKICAgICAgICAgICAgICAkbj0ocmVjbGVu +LTUpLzUkIGFuZCBvdXIgcmVjb3JkIGxlbmd0aCBvZiA0MCwgbiBpcyA3LgoKKiog +VHJ1c3QgcmVjb3JkIChSRUNUWVBFX1RSVVNULCAxMikKCiAgIC0gMSB1OCA6OiBS +ZWNvcmQgdHlwZSAodmFsdWU6IDEyKS4KICAgLSAxIHU4IDo6IFJlc2VydmVkLgog +ICAtIDIwIGJ5dGUgOjogPWZpbmdlcnByaW50PS4KICAgLSAxIHU4IDo6ID1vd25l +cnRydXN0PS4KICAgLSAxIHU4IDo6ID1kZXB0aD0uCiAgIC0gMSB1OCA6OiA9bWlu +X293bmVydHJ1c3Q9LgogICAtIDEgYnl0ZSA6OiBOb3QgdXNlZC4KICAgLSAxIHUz +MiA6OiA9dmFsaWRsaXN0PS4KICAgLSAxMCBieXRlIDo6IE5vdCB1c2VkLgoKKiog +VmFsaWRpdHkgcmVjb3JkIChSRUNUWVBFX1ZBTElELCAxMykKCiAgIC0gMSB1OCA6 +OiBSZWNvcmQgdHlwZSAodmFsdWU6IDEzKS4KICAgLSAxIHU4IDo6IFJlc2VydmVk +LgogICAtIDIwIGJ5dGUgOjogPW5hbWVoYXNoPS4KICAgLSAxIHU4IDo6ID12YWxp +ZGl0eT0KICAgLSAxIHUzMiA6OiA9bmV4dD0uCiAgIC0gMSB1OCA6OiA9ZnVsbF9j +b3VudD0uCiAgIC0gMSB1OCA6OiA9bWFyZ2luYWxfY291bnQ9LgogICAtIDExIGJ5 +dGUgOjogTm90IHVzZWQuCgoqKiBGcmVlIHJlY29yZCAoUkVDVFlQRV9GUkVFLCAy +NTQpCgogICBBbGwgdGhlc2UgcmVjb3JkcyBmb3JtIGEgbGlua2VkIGxpc3Qgb2Yg +dW51c2VkIHJlY29yZHMgaW4gdGhlIFRydXN0REIuCgogICAtIDEgdTggOjogUmVj +b3JkIHR5cGUgKHZhbHVlOiAyNTQpCiAgIC0gMSB1OCA6OiBSZXNlcnZlZC4KICAg +LSAxIHUzMiA6OiA9bmV4dD0uICBSZWNvcmQgbnVtYmVyIG9mIHRoZSBuZXh0IHJj +b3JkIG9mIHRoaXMgdHlwZS4KICAgICAgICAgICAgICBUaGUgcmVjb3JkIG51bWJl +ciB0byB0aGUgaGVhZCBvZiB0aGlzIGxpbmtlZCBsaXN0IGlzCiAgICAgICAgICAg +ICAgc3RvcmVkIGluIHRoZSB2ZXJzaW9uIGluZm8gcmVjb3JkLgoKCiogR05VIGV4 +dGVuc2lvbnMgdG8gdGhlIFMySyBhbGdvcml0aG0KCiAgMSBvY3RldCAgLSBTMksg +VXNhZ2U6IGVpdGhlciAyNTQgb3IgMjU1LgogIDEgb2N0ZXQgIC0gUzJLIENpcGhl +ciBBbGdvOiAwCiAgMSBvY3RldCAgLSBTMksgU3BlY2lmaWVyOiAxMDEKICAzIG9j +dGV0cyAtICJHTlUiCiAgMSBvY3RldCAgLSBHTlUgUzJLIEV4dGVuc2lvbiBOdW1i +ZXIuCgogIElmIHN1Y2ggYSBHTlUgZXh0ZW5zaW9uIGlzIHVzZWQgbmVpdGhlciBh +biBJViBub3IgYW55IGtpbmQgb2YKICBjaGVja3N1bSBpcyB1c2VkLiAgVGhlIGRl +ZmluZWQgR05VIFMySyBFeHRlbnNpb24gTnVtYmVycyBhcmU6CgogIC0gMSA6OiBE +byBub3Qgc3RvcmUgdGhlIHNlY3JldCBwYXJ0IGF0IGFsbC4gIE5vIHNwZWNpZmlj +IGRhdGEKICAgICAgICAgZm9sbG93cy4KCiAgLSAyIDo6IEEgc3R1YiB0byBhY2Nl +c3Mgc21hcnRjYXJkcy4gIFRoaXMgZGF0YSBmb2xsb3dzOgogICAgICAgICAtIE9u +ZSBvY3RldCB3aXRoIHRoZSBsZW5ndGggb2YgdGhlIGZvbGxvd2luZyBzZXJpYWwg +bnVtYmVyLgogICAgICAgICAtIFRoZSBzZXJpYWwgbnVtYmVyLiBSZWdhcmRsZXNz +IG9mIHdoYXQgdGhlIGxlbmd0aCBvY3RldAogICAgICAgICAgIGluZGljYXRlcyBu +byBtb3JlIHRoYW4gMTYgb2N0ZXRzIGFyZSBzdG9yZWQuCgogIE5vdGUgdGhhdCBn +cGcgc3RvcmVzIHRoZSBHTlUgUzJLIEV4dGVuc2lvbiBOdW1iZXIgaW50ZXJuYWxs +eSBhcyBhbgogIFMySyBTcGVjaWZpZXIgd2l0aCBhbiBvZmZzZXQgb2YgMTAwMC4K +CgoqIEtleXNlcnZlciBoZWxwZXIgbWVzc2FnZSBmb3JtYXQKCiAgVGhlIGtleXNl +cnZlciBtYXkgYmUgY29udGFjdGVkIGJ5IGEgVW5peCBEb21haW4gc29ja2V0IG9y +IHZpYSBUQ1AuCgogIFRoZSBmb3JtYXQgb2YgYSByZXF1ZXN0IGlzOgojK2JlZ2lu +X2V4YW1wbGUKICBjb21tYW5kLXRhZwogICJDb250ZW50LWxlbmd0aDoiIGRpZ2l0 +cwogIENSTEYKIytlbmRfZXhhbXBsZQoKICBXaGVyZSBjb21tYW5kLXRhZyBpcwoK +IytiZWdpbl9leGFtcGxlCiAgTk9PUAogIEdFVCA8dXNlci1uYW1lPgogIFBVVAog +IERFTEVURSA8dXNlci1uYW1lPgojK2VuZF9leGFtcGxlCgpUaGUgZm9ybWF0IG9m +IGEgcmVzcG9uc2UgaXM6CgojK2JlZ2luX2V4YW1wbGUKICAiR05VUEcvMS4wIiBz +dGF0dXMtY29kZSBzdGF0dXMtdGV4dAogICJDb250ZW50LWxlbmd0aDoiIGRpZ2l0 +cwogIENSTEYKIytlbmRfZXhhbXBsZQpmb2xsb3dlZCBieSA8ZGlnaXRzPiBieXRl +cyBvZiBkYXRhCgpTdGF0dXMgY29kZXMgYXJlOgoKICAtIDF4eCA6OiBJbmZvcm1h +dGlvbmFsIC0gUmVxdWVzdCByZWNlaXZlZCwgY29udGludWluZyBwcm9jZXNzCgog +IC0gMnh4IDo6IFN1Y2Nlc3MgLSBUaGUgYWN0aW9uIHdhcyBzdWNjZXNzZnVsbHkg +cmVjZWl2ZWQsIHVuZGVyc3Rvb2QsCiAgICAgICAgICAgYW5kIGFjY2VwdGVkCgog +IC0gNHh4IDo6IENsaWVudCBFcnJvciAtIFRoZSByZXF1ZXN0IGNvbnRhaW5zIGJh +ZCBzeW50YXggb3IgY2Fubm90IGJlCiAgICAgICAgICAgZnVsZmlsbGVkCgogIC0g +NXh4IDo6IFNlcnZlciBFcnJvciAtIFRoZSBzZXJ2ZXIgZmFpbGVkIHRvIGZ1bGZp +bGwgYW4gYXBwYXJlbnRseQogICAgICAgICAgIHZhbGlkIHJlcXVlc3QKCgoqIE9i +amVjdCBpZGVudGlmaWVycwoKICBPSURzIGJlbG93IHRoZSBHbnVQRyBhcmM6Cgoj +K2JlZ2luX2V4YW1wbGUKICAxLjMuNi4xLjQuMS4xMTU5MS4yICAgICAgICAgIEdu +dVBHCiAgMS4zLjYuMS40LjEuMTE1OTEuMi4xICAgICAgICAgIG5vdGF0aW9uCiAg +MS4zLjYuMS40LjEuMTE1OTEuMi4xLjEgICAgICAgICAgcGthQWRkcmVzcwogIDEu +My42LjEuNC4xLjExNTkxLjIuMiAgICAgICAgICBYLjUwOSBleHRlbnNpb25zCiAg +MS4zLjYuMS40LjEuMTE1OTEuMi4yLjEgICAgICAgICAgc3RhbmRhbG9uZUNlcnRp +ZmljYXRlCiAgMS4zLjYuMS40LjEuMTE1OTEuMi4yLjIgICAgICAgICAgd2VsbEtu +b3duUHJpdmF0ZUtleQogIDEuMy42LjEuNC4xLjExNTkxLjIuMTIyNDI5NzMgICBp +bnZhbGlkIGVuY29kZWQgT0lECiMrZW5kX2V4YW1wbGUKCgoKKiBNaXNjZWxsYW5l +b3VzIG5vdGVzCgoqKiB2MyBmaW5nZXJwcmludHMKICAgRm9yIHBhY2tldCB2ZXJz +aW9uIDMgd2UgY2FsY3VsYXRlIHRoZSBrZXlpZHMgdGhpcyB3YXk6CiAgICAtIFJT +QSA6OiBMb3cgNjQgYml0cyBvZiBuCiAgICAtIEVMR0FNQUwgOjogQnVpbGQgYSB2 +MyBwdWJrZXkgcGFja2V0ICh3aXRoIENUQiAweDk5KSBhbmQKICAgICAgICAgICAg +ICAgICBjYWxjdWxhdGUgYSBSTUQxNjAgaGFzaCB2YWx1ZSBmcm9tIGl0LiBUaGlz +IGlzIHVzZWQKICAgICAgICAgICAgICAgICBhcyB0aGUgZmluZ2VycHJpbnQgYW5k +IHRoZSBsb3cgNjQgYml0cyBhcmUgdGhlIGtleWlkLgoKKiogU2ltcGxpZmllZCBy +ZXZvY2F0aW9uIGNlcnRpZmljYXRlcwogIFJldm9jYXRpb24gY2VydGlmaWNhdGVz +IGNvbnNpc3Qgb25seSBvZiB0aGUgc2lnbmF0dXJlIHBhY2tldDsKICAiLS1pbXBv +cnQiIGtub3dzIGhvdyB0byBoYW5kbGUgdGhpcy4gIFRoZSByYXRpb25hbGUgYmVo +aW5kIGl0IGlzIHRvCiAga2VlcCB0aGVtIHNtYWxsLgoKKiogRG9jdW1lbnRhdGlv +biBvbiBIS1AgKHRoZSBodHRwIGtleXNlcnZlciBwcm90b2NvbCk6CgogICBBIG1p +bmltYWxpc3RpYyBIVFRQIHNlcnZlciBvbiBwb3J0IDExMzcxIHJlY29nbml6ZXMg +YSBHRVQgZm9yCiAgIC9wa3MvbG9va3VwLiAgVGhlIHN0YW5kYXJkIGh0dHAgVVJM +IGVuY29kZWQgcXVlcnkgcGFyYW1ldGVycyBhcmUKICAgdGhpcyAoYWx3YXlzIGtl +eT12YWx1ZSk6CgogICAtIG9wPWluZGV4IChsaWtlIHBncCAta3YpLCBvcD12aW5k +ZXggKGxpa2UgcGdwIC1rdnYpIGFuZCBvcD1nZXQgKGxpa2UKICAgICBwZ3AgLWt4 +YSkKCiAgIC0gc2VhcmNoPTxzdHJpbmdsaXN0Pi4gVGhpcyBpcyBhIGxpc3Qgb2Yg +d29yZHMgdGhhdCBtdXN0IG9jY3VyIGluIHRoZSBrZXkuCiAgICAgVGhlIHdvcmRz +IGFyZSBkZWxpbWl0ZWQgd2l0aCBzcGFjZSwgcG9pbnRzLCBAIGFuZCBzbyBvbi4g +VGhlIGRlbGltaXRlcnMKICAgICBhcmUgbm90IHNlYXJjaGVkIGZvciBhbmQgdGhl +IG9yZGVyIG9mIHRoZSB3b3JkcyBkb2Vzbid0IG1hdHRlciAoYnV0IHNlZQogICAg +IG5leHQgb3B0aW9uKS4KCiAgIC0gZXhhY3Q9b24uIFRoaXMgc3dpdGNoIHRlbGxz +IHRoZSBoa3Agc2VydmVyIHRvIG9ubHkgcmVwb3J0IGV4YWN0IG1hdGNoaW5nCiAg +ICAga2V5cyBiYWNrLiBJbiB0aGlzIGNhc2UgdGhlIG9yZGVyIGFuZCB0aGUgImRl +bGltaXRlcnMiIGFyZSBpbXBvcnRhbnQuCgogICAtIGZpbmdlcnByaW50PW9uLiBB +bHNvIHJlcG9ydHMgdGhlIGZpbmdlcnByaW50cyB3aGVuIHVzZWQgd2l0aCAnaW5k +ZXgnIG9yCiAgICAgJ3ZpbmRleCcKCiAgIFRoZSBrZXlzZXJ2ZXIgYWxzbyByZWNv +Z25pemVzIGh0dHAtUE9TVHMgdG8gL3Brcy9hZGQuIFVzZSB0aGlzIHRvIHVwbG9h +ZAogICBrZXlzLgoKCiAgIEEgYmV0dGVyIHdheSB0byBkbyB0aGlzIHdvdWxkIGJl +IGEgcmVxdWVzdCBsaWtlOgoKICAgICAgL3Brcy9sb29rdXAvPGdudXBnX2Zvcm1h +dGllcnRlX3VzZXJfaWQ+P29wPTxvcGVyYXRpb24+CgogICBUaGlzIGNhbiBiZSBp +bXBsZW1lbnRlZCB1c2luZyBIdXJkJ3MgdHJhbnNsYXRvciBtZWNoYW5pc20uCiAg +IEhvd2V2ZXIsIEkgdGhpbmsgdGhlIHdob2xlIGtleSBzZXJ2ZXIgc3R1ZmYgaGFz +IHRvIGJlIHJlLXRob3VnaHQ7CiAgIEkgaGF2ZSBzb21lIGlkZWFzIGFuZCBwcm9i +YWJseSBjcmVhdGUgYSB3aGl0ZSBwYXBlci4KKiogQWxnb3JpdGhtIG5hbWVzIGZv +ciB0aGUgImtleWdlbi5hbGdvIiBwcm9tcHQKCiAgV2hlbiB1c2luZyBhIC0tY29t +bWFuZC1mZCBjb250cm9sbGVkIGtleSBnZW5lcmF0aW9uIG9yICJhZGRrZXkiCiAg +dGhlcmUgaXMgd2F5IHRvIGtub3cgdGhlIG51bWJlciB0byBlbnRlciBvbiB0aGUg +ImtleWdlbi5hbGdvIgogIHByb21wdC4gIFRoZSBkaXNwbGF5ZWQgbnVtYmVycyBh +cmUgZm9yIGh1bWFuIHJlY2VwdGlvbiBhbmQgbWF5CiAgY2hhbmdlIHdpdGggcmVs +ZWFzZXMuICBUbyBwcm92aWRlIGEgc3RhYmxlIHdheSB0byBlbnRlciBhIGRlc2ly +ZWQKICBhbGdvcml0aG0gY2hvaWNlIHRoZSBwcm9tcHQgYWxzbyBhY2NlcHRzIHBy +ZWRlZmluZWQgbmFtZXMgZm9yIHRoZQogIGFsZ29yaXRobXMsIHdoaWNoIHdpbGwg +bm90IGNoYW5nZS4KCiAgIHwgTmFtZSAgICB8IE5vIHwgRGVzY3JpcHRpb24gICAg +ICAgICAgICAgICAgICAgICB8CiAgIHwtLS0tLS0tLS0rLS0tLSstLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CiAgIHwgcnNhK3JzYSB8ICAxIHwgUlNB +IGFuZCBSU0EgKGRlZmF1bHQpICAgICAgICAgICB8CiAgIHwgZHNhK2VsZyB8ICAy +IHwgRFNBIGFuZCBFbGdhbWFsICAgICAgICAgICAgICAgICB8CiAgIHwgZHNhICAg +ICB8ICAzIHwgRFNBIChzaWduIG9ubHkpICAgICAgICAgICAgICAgICB8CiAgIHwg +cnNhL3MgICB8ICA0IHwgUlNBIChzaWduIG9ubHkpICAgICAgICAgICAgICAgICB8 +CiAgIHwgZWxnICAgICB8ICA1IHwgRWxnYW1hbCAoZW5jcnlwdCBvbmx5KSAgICAg +ICAgICB8CiAgIHwgcnNhL2UgICB8ICA2IHwgUlNBIChlbmNyeXB0IG9ubHkpICAg +ICAgICAgICAgICB8CiAgIHwgZHNhLyogICB8ICA3IHwgRFNBIChzZXQgeW91ciBv +d24gY2FwYWJpbGl0aWVzKSB8CiAgIHwgcnNhLyogICB8ICA4IHwgUlNBIChzZXQg +eW91ciBvd24gY2FwYWJpbGl0aWVzKSB8CiAgIHwgZWNjK2VjYyB8ICA5IHwgRUND +IGFuZCBFQ0MgICAgICAgICAgICAgICAgICAgICB8CiAgIHwgZWNjL3MgICB8IDEw +IHwgRUNDIChzaWduIG9ubHkpICAgICAgICAgICAgICAgICB8CiAgIHwgZWNjLyog +ICB8IDExIHwgRUNDIChzZXQgeW91ciBvd24gY2FwYWJpbGl0aWVzKSB8CiAgIHwg +ZWNjL2UgICB8IDEyIHwgRUNDIChlbmNyeXB0IG9ubHkpICAgICAgICAgICAgICB8 +CiAgIHwga2V5Z3JpcCB8IDEzIHwgRXhpc3Rpbmcga2V5ICAgICAgICAgICAgICAg +ICAgICB8CgogICBJZiBvbmUgb2YgdGhlICJmb28vKiIgbmFtZXMgYXJlIHVzZWQg +YSAia2V5Z2VuLmZsYWdzIiBwcm9tcHQgbmVlZHMKICAgdG8gYmUgYW5zd2VyZWQg +YXMgd2VsbC4gIEluc3RlYWQgb2YgdG9nZ2xpbmcgdGhlIHByZWRlZmluZWQgZmxh +Z3MsCiAgIGl0IGlzIGFsc28gcG9zc2libGUgdG8gc2V0IHRoZW0gZGlyZWN0OiBV +c2UgYSAiPSIgY2hhcmFjdGVyCiAgIGRpcmVjdGx5IGZvbGxvd2VkIGJ5IGEgY29t +aW5hdGlvbiBvZiAiYSIgKGZvciBhdXRoZW50aWNhdGlvbiksICJzIgogICAoZm9y +IHNpZ25pbmcpLCBvciAiYyIgKGZvciBjZXJ0aWZpY2F0aW9uKS4KQGMgQ29weXJp +Z2h0IChDKSAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0 +LCAyMDA1LCAyMDA2LCAyMDA3LApAYyAgICAgICAgICAgICAgIDIwMDgsIDIwMDks +IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCkBjIFRoaXMgaXMg +cGFydCBvZiB0aGUgR251UEcgbWFudWFsLgpAYyBGb3IgY29weWluZyBjb25kaXRp +b25zLCBzZWUgdGhlIGZpbGUgZ251cGcudGV4aS4KCkBpbmNsdWRlIGRlZnMuaW5j +CgpAbm9kZSBJbnZva2luZyBHUEcKQGNoYXB0ZXIgSW52b2tpbmcgR1BHCkBjaW5k +ZXggR1BHIGNvbW1hbmQgb3B0aW9ucwpAY2luZGV4IGNvbW1hbmQgb3B0aW9ucwpA +Y2luZGV4IG9wdGlvbnMsIEdQRyBjb21tYW5kCgpAbWFjcm8gZ3BnbmFtZQpncGcy +CkBlbmQgbWFjcm8KQG1hbnBhZ2UgZ3BnMi4xCkBpZnNldCBtYW52ZXJiCi5CIGdw +ZzIKXC0gT3BlblBHUCBlbmNyeXB0aW9uIGFuZCBzaWduaW5nIHRvb2wKQGVuZCBp +ZnNldAoKQG1hbnNlY3Qgc3lub3BzaXMKQGlmc2V0IG1hbnZlcmIKLkIgIGdwZzIK +LlJCIFsgXC1cLWhvbWVkaXIKLklSIGRpciBdCi5SQiBbIFwtXC1vcHRpb25zCi5J +UiBmaWxlIF0KLlJJIFsgb3B0aW9ucyBdCi5JIGNvbW1hbmQKLlJJIFsgYXJncyBd +CkBlbmQgaWZzZXQKCgpAbWFuc2VjdCBkZXNjcmlwdGlvbgpAY29tbWFuZHtAZ3Bn +bmFtZX0gaXMgdGhlIE9wZW5QR1AgcGFydCBvZiB0aGUgR05VIFByaXZhY3kgR3Vh +cmQgKEdudVBHKS4gSXQKaXMgYSB0b29sIHRvIHByb3ZpZGUgZGlnaXRhbCBlbmNy +eXB0aW9uIGFuZCBzaWduaW5nIHNlcnZpY2VzIHVzaW5nIHRoZQpPcGVuUEdQIHN0 +YW5kYXJkLiBAY29tbWFuZHtAZ3BnbmFtZX0gZmVhdHVyZXMgY29tcGxldGUga2V5 +IG1hbmFnZW1lbnQgYW5kCmFsbCBiZWxscyBhbmQgd2hpc3RsZXMgeW91IGNhbiBl +eHBlY3QgZnJvbSBhIGRlY2VudCBPcGVuUEdQCmltcGxlbWVudGF0aW9uLgoKSW4g +Y29udHJhc3QgdG8gdGhlIHN0YW5kYWxvbmUgY29tbWFuZCBncGcgZnJvbSBHbnVQ +RyAxLngsIHdoaWNoIGlzCm1pZ2h0IGJlIGJldHRlciBzdWl0ZWQgZm9yIHNlcnZl +ciBhbmQgZW1iZWRkZWQgcGxhdGZvcm1zLCB0aGUgMi54CnZlcnNpb24gaXMgY29t +bW9ubHkgaW5zdGFsbGVkIHVuZGVyIHRoZSBuYW1lIEBjb21tYW5ke2dwZzJ9IGFu +ZAp0YXJnZXRlZCB0byB0aGUgZGVza3RvcCBhcyBpdCByZXF1aXJlcyBzZXZlcmFs +IG90aGVyIG1vZHVsZXMgdG8gYmUKaW5zdGFsbGVkLgoKQG1hbnBhdXNlClRoZSBv +bGQgMS54IHZlcnNpb24gd2lsbCBiZSBrZXB0IG1haW50YWluZWQgYW5kIGl0IGlz +IHBvc3NpYmxlIHRvCmluc3RhbGwgYm90aCB2ZXJzaW9ucyBvbiB0aGUgc2FtZSBz +eXN0ZW0uICBEb2N1bWVudGF0aW9uIGZvciB0aGUgb2xkCkdudVBHIDEueCBjb21t +YW5kIGlzIGF2YWlsYWJsZSBhcyBhIG1hbiBwYWdlIGFuZCBhdApAaW5mb3JlZntU +b3AsR251UEcgMSxncGd9LgoKQHhyZWZ7T3B0aW9uIEluZGV4fSwgZm9yIGFuIGlu +ZGV4IHRvIEBjb21tYW5ke0BncGduYW1lfSdzIGNvbW1hbmRzIGFuZCBvcHRpb25z +LgpAbWFuY29udAoKQG1lbnUKKiBHUEcgQ29tbWFuZHM6OiAgICAgICAgICAgIExp +c3Qgb2YgYWxsIGNvbW1hbmRzLgoqIEdQRyBPcHRpb25zOjogICAgICAgICAgICAg +TGlzdCBvZiBhbGwgb3B0aW9ucy4KKiBHUEcgQ29uZmlndXJhdGlvbjo6ICAgICAg +IENvbmZpZ3VyYXRpb24gZmlsZXMuCiogR1BHIEV4YW1wbGVzOjogICAgICAgICAg +ICBTb21lIHVzYWdlIGV4YW1wbGVzLgoKRGV2ZWxvcGVyIGluZm9ybWF0aW9uOgoq +IFVuYXR0ZW5kZWQgVXNhZ2Ugb2YgR1BHOjogVXNpbmcgQGNvbW1hbmR7Z3BnfSBm +cm9tIG90aGVyIHByb2dyYW1zLgpAZW5kIG1lbnUKCkBjICogR1BHIFByb3RvY29s +OjogICAgICAgIFRoZSBwcm90b2NvbCB0aGUgc2VydmVyIG1vZGUgdXNlcy4KCgpA +YyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBj +ICoqKioqKioqKioqKioqKiAgICAgICAgICAgICoqKioqKioqKioqKioqKioKQGMg +KioqKioqKioqKioqKioqICBDT01NQU5EUyAgKioqKioqKioqKioqKioqKgpAYyAq +KioqKioqKioqKioqKiogICAgICAgICAgICAqKioqKioqKioqKioqKioqCkBjICoq +KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQG1hbnNl +Y3QgY29tbWFuZHMKQG5vZGUgR1BHIENvbW1hbmRzCkBzZWN0aW9uIENvbW1hbmRz +CgpDb21tYW5kcyBhcmUgbm90IGRpc3Rpbmd1aXNoZWQgZnJvbSBvcHRpb25zIGV4 +Y2VwdCBmb3IgdGhlIGZhY3QgdGhhdApvbmx5IG9uZSBjb21tYW5kIGlzIGFsbG93 +ZWQuCgpAY29tbWFuZHtAZ3BnbmFtZX0gbWF5IGJlIHJ1biB3aXRoIG5vIGNvbW1h +bmRzLCBpbiB3aGljaCBjYXNlIGl0IHdpbGwKcGVyZm9ybSBhIHJlYXNvbmFibGUg +YWN0aW9uIGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiBmaWxlIGl0IGlzIGdpdmVu +CmFzIGlucHV0IChhbiBlbmNyeXB0ZWQgbWVzc2FnZSBpcyBkZWNyeXB0ZWQsIGEg +c2lnbmF0dXJlIGlzIHZlcmlmaWVkLAphIGZpbGUgY29udGFpbmluZyBrZXlzIGlz +IGxpc3RlZCkuCgpQbGVhc2UgcmVtZW1iZXIgdGhhdCBvcHRpb24gYXMgd2VsbCBh +cyBjb21tYW5kIHBhcnNpbmcgc3RvcHMgYXMgc29vbiBhcwphIG5vbi1vcHRpb24g +aXMgZW5jb3VudGVyZWQsIHlvdSBjYW4gZXhwbGljaXRseSBzdG9wIHBhcnNpbmcg +YnkKdXNpbmcgdGhlIHNwZWNpYWwgb3B0aW9uIEBvcHRpb257LS19LgoKCkBtZW51 +CiogR2VuZXJhbCBHUEcgQ29tbWFuZHM6OiAgICAgICAgQ29tbWFuZHMgbm90IHNw +ZWNpZmljIHRvIHRoZSBmdW5jdGlvbmFsaXR5LgoqIE9wZXJhdGlvbmFsIEdQRyBD +b21tYW5kczo6ICAgIENvbW1hbmRzIHRvIHNlbGVjdCB0aGUgdHlwZSBvZiBvcGVy +YXRpb24uCiogT3BlblBHUCBLZXkgTWFuYWdlbWVudDo6ICAgICAgSG93IHRvIG1h +bmFnZSB5b3VyIGtleXMuCkBlbmQgbWVudQoKCkBjICoqKioqKioqKioqKioqKioq +KioqKioqKioqKioqKioqKioqKioqKioqKioKQGMgKioqKioqKioqKiAgR0VORVJB +TCBDT01NQU5EUyAgKioqKioqKioqKioqKgpAYyAqKioqKioqKioqKioqKioqKioq +KioqKioqKioqKioqKioqKioqKioqKioqCkBub2RlIEdlbmVyYWwgR1BHIENvbW1h +bmRzCkBzdWJzZWN0aW9uIENvbW1hbmRzIG5vdCBzcGVjaWZpYyB0byB0aGUgZnVu +Y3Rpb24KCkB0YWJsZSBAZ251cGd0YWJvcHQKQGl0ZW0gLS12ZXJzaW9uCkBvcGlu +ZGV4IHZlcnNpb24KUHJpbnQgdGhlIHByb2dyYW0gdmVyc2lvbiBhbmQgbGljZW5z +aW5nIGluZm9ybWF0aW9uLiAgTm90ZSB0aGF0IHlvdQpjYW5ub3QgYWJicmV2aWF0 +ZSB0aGlzIGNvbW1hbmQuCgpAaXRlbSAtLWhlbHAKQGl0ZW14IC1oCkBvcGluZGV4 +IGhlbHAKUHJpbnQgYSB1c2FnZSBtZXNzYWdlIHN1bW1hcml6aW5nIHRoZSBtb3N0 +IHVzZWZ1bCBjb21tYW5kIGxpbmUgb3B0aW9ucy4KTm90ZSB0aGF0IHlvdSBjYW5u +b3QgYWJicmV2aWF0ZSB0aGlzIGNvbW1hbmQuCgpAaXRlbSAtLXdhcnJhbnR5CkBv +cGluZGV4IHdhcnJhbnR5ClByaW50IHdhcnJhbnR5IGluZm9ybWF0aW9uLgoKQGl0 +ZW0gLS1kdW1wLW9wdGlvbnMKQG9waW5kZXggZHVtcC1vcHRpb25zClByaW50IGEg +bGlzdCBvZiBhbGwgYXZhaWxhYmxlIG9wdGlvbnMgYW5kIGNvbW1hbmRzLiAgTm90 +ZSB0aGF0IHlvdSBjYW5ub3QKYWJicmV2aWF0ZSB0aGlzIGNvbW1hbmQuCkBlbmQg +dGFibGUKCgpAYyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq +KioqKioqCkBjICoqKioqKioqICBPUEVSQVRJT05BTCBDT01NQU5EUyAgKioqKioq +KioqKioKQGMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq +KioqKgpAbm9kZSBPcGVyYXRpb25hbCBHUEcgQ29tbWFuZHMKQHN1YnNlY3Rpb24g +Q29tbWFuZHMgdG8gc2VsZWN0IHRoZSB0eXBlIG9mIG9wZXJhdGlvbgoKCkB0YWJs +ZSBAZ251cGd0YWJvcHQKCkBpdGVtIC0tc2lnbgpAaXRlbXggLXMKQG9waW5kZXgg +c2lnbgpNYWtlIGEgc2lnbmF0dXJlLiBUaGlzIGNvbW1hbmQgbWF5IGJlIGNvbWJp +bmVkIHdpdGggQG9wdGlvbnstLWVuY3J5cHR9Cihmb3IgYSBzaWduZWQgYW5kIGVu +Y3J5cHRlZCBtZXNzYWdlKSwgQG9wdGlvbnstLXN5bW1ldHJpY30gKGZvciBhCnNp +Z25lZCBhbmQgc3ltbWV0cmljYWxseSBlbmNyeXB0ZWQgbWVzc2FnZSksIG9yIEBv +cHRpb257LS1lbmNyeXB0fSBhbmQKQG9wdGlvbnstLXN5bW1ldHJpY30gdG9nZXRo +ZXIgKGZvciBhIHNpZ25lZCBtZXNzYWdlIHRoYXQgbWF5IGJlCmRlY3J5cHRlZCB2 +aWEgYSBzZWNyZXQga2V5IG9yIGEgcGFzc3BocmFzZSkuICBUaGUga2V5IHRvIGJl +IHVzZWQgZm9yCnNpZ25pbmcgaXMgY2hvc2VuIGJ5IGRlZmF1bHQgb3IgY2FuIGJl +IHNldCB3aXRoIHRoZQpAb3B0aW9uey0tbG9jYWwtdXNlcn0gYW5kIEBvcHRpb257 +LS1kZWZhdWx0LWtleX0gb3B0aW9ucy4KCkBpdGVtIC0tY2xlYXJzaWduCkBvcGlu +ZGV4IGNsZWFyc2lnbgpNYWtlIGEgY2xlYXIgdGV4dCBzaWduYXR1cmUuICBUaGUg +Y29udGVudCBpbiBhIGNsZWFyIHRleHQgc2lnbmF0dXJlIGlzCnJlYWRhYmxlIHdp +dGhvdXQgYW55IHNwZWNpYWwgc29mdHdhcmUuIE9wZW5QR1Agc29mdHdhcmUgaXMg +b25seSBuZWVkZWQKdG8gdmVyaWZ5IHRoZSBzaWduYXR1cmUuICBDbGVhciB0ZXh0 +IHNpZ25hdHVyZXMgbWF5IG1vZGlmeSBlbmQtb2YtbGluZQp3aGl0ZXNwYWNlIGZv +ciBwbGF0Zm9ybSBpbmRlcGVuZGVuY2UgYW5kIGFyZSBub3QgaW50ZW5kZWQgdG8g +YmUKcmV2ZXJzaWJsZS4gIFRoZSBrZXkgdG8gYmUgdXNlZCBmb3Igc2lnbmluZyBp +cyBjaG9zZW4gYnkgZGVmYXVsdCBvcgpjYW4gYmUgc2V0IHdpdGggdGhlIEBvcHRp +b257LS1sb2NhbC11c2VyfSBhbmQgQG9wdGlvbnstLWRlZmF1bHQta2V5fQpvcHRp +b25zLgoKCkBpdGVtIC0tZGV0YWNoLXNpZ24KQGl0ZW14IC1iCkBvcGluZGV4IGRl +dGFjaC1zaWduCk1ha2UgYSBkZXRhY2hlZCBzaWduYXR1cmUuCgpAaXRlbSAtLWVu +Y3J5cHQKQGl0ZW14IC1lCkBvcGluZGV4IGVuY3J5cHQKRW5jcnlwdCBkYXRhLiBU +aGlzIG9wdGlvbiBtYXkgYmUgY29tYmluZWQgd2l0aCBAb3B0aW9uey0tc2lnbn0g +KGZvciBhCnNpZ25lZCBhbmQgZW5jcnlwdGVkIG1lc3NhZ2UpLCBAb3B0aW9uey0t +c3ltbWV0cmljfSAoZm9yIGEgbWVzc2FnZSB0aGF0Cm1heSBiZSBkZWNyeXB0ZWQg +dmlhIGEgc2VjcmV0IGtleSBvciBhIHBhc3NwaHJhc2UpLCBvciBAb3B0aW9uey0t +c2lnbn0KYW5kIEBvcHRpb257LS1zeW1tZXRyaWN9IHRvZ2V0aGVyIChmb3IgYSBz +aWduZWQgbWVzc2FnZSB0aGF0IG1heSBiZQpkZWNyeXB0ZWQgdmlhIGEgc2VjcmV0 +IGtleSBvciBhIHBhc3NwaHJhc2UpLgoKQGl0ZW0gLS1zeW1tZXRyaWMKQGl0ZW14 +IC1jCkBvcGluZGV4IHN5bW1ldHJpYwpFbmNyeXB0IHdpdGggYSBzeW1tZXRyaWMg +Y2lwaGVyIHVzaW5nIGEgcGFzc3BocmFzZS4gVGhlIGRlZmF1bHQKc3ltbWV0cmlj +IGNpcGhlciB1c2VkIGlzIEB2YWx1ZXtHUEdTWU1FTkNBTEdPfSwgYnV0IG1heSBi +ZSBjaG9zZW4gd2l0aCB0aGUKQG9wdGlvbnstLWNpcGhlci1hbGdvfSBvcHRpb24u +IFRoaXMgb3B0aW9uIG1heSBiZSBjb21iaW5lZCB3aXRoCkBvcHRpb257LS1zaWdu +fSAoZm9yIGEgc2lnbmVkIGFuZCBzeW1tZXRyaWNhbGx5IGVuY3J5cHRlZCBtZXNz +YWdlKSwKQG9wdGlvbnstLWVuY3J5cHR9IChmb3IgYSBtZXNzYWdlIHRoYXQgbWF5 +IGJlIGRlY3J5cHRlZCB2aWEgYSBzZWNyZXQga2V5Cm9yIGEgcGFzc3BocmFzZSks +IG9yIEBvcHRpb257LS1zaWdufSBhbmQgQG9wdGlvbnstLWVuY3J5cHR9IHRvZ2V0 +aGVyCihmb3IgYSBzaWduZWQgbWVzc2FnZSB0aGF0IG1heSBiZSBkZWNyeXB0ZWQg +dmlhIGEgc2VjcmV0IGtleSBvciBhCnBhc3NwaHJhc2UpLgoKQGl0ZW0gLS1zdG9y +ZQpAb3BpbmRleCBzdG9yZQpTdG9yZSBvbmx5IChtYWtlIGEgc2ltcGxlIFJGQzE5 +OTEgbGl0ZXJhbCBkYXRhIHBhY2tldCkuCgpAaXRlbSAtLWRlY3J5cHQKQGl0ZW14 +IC1kCkBvcGluZGV4IGRlY3J5cHQKRGVjcnlwdCB0aGUgZmlsZSBnaXZlbiBvbiB0 +aGUgY29tbWFuZCBsaW5lIChvciBTVERJTiBpZiBubyBmaWxlCmlzIHNwZWNpZmll +ZCkgYW5kIHdyaXRlIGl0IHRvIFNURE9VVCAob3IgdGhlIGZpbGUgc3BlY2lmaWVk +IHdpdGgKQG9wdGlvbnstLW91dHB1dH0pLiBJZiB0aGUgZGVjcnlwdGVkIGZpbGUg +aXMgc2lnbmVkLCB0aGUgc2lnbmF0dXJlIGlzIGFsc28KdmVyaWZpZWQuIFRoaXMg +Y29tbWFuZCBkaWZmZXJzIGZyb20gdGhlIGRlZmF1bHQgb3BlcmF0aW9uLCBhcyBp +dCBuZXZlcgp3cml0ZXMgdG8gdGhlIGZpbGVuYW1lIHdoaWNoIGlzIGluY2x1ZGVk +IGluIHRoZSBmaWxlIGFuZCBpdCByZWplY3RzCmZpbGVzIHdoaWNoIGRvbid0IGJl +Z2luIHdpdGggYW4gZW5jcnlwdGVkIG1lc3NhZ2UuCgpAaXRlbSAtLXZlcmlmeQpA +b3BpbmRleCB2ZXJpZnkKQXNzdW1lIHRoYXQgdGhlIGZpcnN0IGFyZ3VtZW50IGlz +IGEgc2lnbmVkIGZpbGUgYW5kIHZlcmlmeSBpdCB3aXRob3V0CmdlbmVyYXRpbmcg +YW55IG91dHB1dC4gIFdpdGggbm8gYXJndW1lbnRzLCB0aGUgc2lnbmF0dXJlIHBh +Y2tldCBpcwpyZWFkIGZyb20gU1RESU4uICBJZiBvbmx5IGEgb25lIGFyZ3VtZW50 +IGlzIGdpdmVuLCBpdCBpcyBleHBlY3RlZCB0bwpiZSBhIGNvbXBsZXRlIHNpZ25h +dHVyZS4KCldpdGggbW9yZSB0aGFuIDEgYXJndW1lbnQsIHRoZSBmaXJzdCBzaG91 +bGQgYmUgYSBkZXRhY2hlZCBzaWduYXR1cmUKYW5kIHRoZSByZW1haW5pbmcgZmls +ZXMgYWtlIHVwIHRoZSB0aGUgc2lnbmVkIGRhdGEuIFRvIHJlYWQgdGhlIHNpZ25l +ZApkYXRhIGZyb20gU1RESU4sIHVzZSBAc2FtcHstfSBhcyB0aGUgc2Vjb25kIGZp +bGVuYW1lLiAgRm9yIHNlY3VyaXR5CnJlYXNvbnMgYSBkZXRhY2hlZCBzaWduYXR1 +cmUgY2Fubm90IHJlYWQgdGhlIHNpZ25lZCBtYXRlcmlhbCBmcm9tClNURElOIHdp +dGhvdXQgZGVub3RpbmcgaXQgaW4gdGhlIGFib3ZlIHdheS4KCk5vdGU6IElmIHRo +ZSBvcHRpb24gQG9wdGlvbnstLWJhdGNofSBpcyBub3QgdXNlZCwgQGNvbW1hbmR7 +QGdwZ25hbWV9Cm1heSBhc3N1bWUgdGhhdCBhIHNpbmdsZSBhcmd1bWVudCBpcyBh +IGZpbGUgd2l0aCBhIGRldGFjaGVkIHNpZ25hdHVyZQphbmQgaXQgd2lsbCB0cnkg +dG8gZmluZCBhIG1hdGNoaW5nIGRhdGEgZmlsZSBieSBzdHJpcHBpbmcgY2VydGFp +bgpzdWZmaXhlcy4gIFVzaW5nIHRoaXMgaGlzdG9yaWNhbCBmZWF0dXJlIHRvIHZl +cmlmeSBhIGRldGFjaGVkCnNpZ25hdHVyZSBpcyBzdHJvbmdseSBkaXNjb3VyYWdl +ZDsgYWx3YXlzIHNwZWNpZnkgdGhlIGRhdGEgZmlsZSB0b28uCgpOb3RlOiBXaGVu +IHZlcmlmeWluZyBhIGNsZWFydGV4dCBzaWduYXR1cmUsIEBjb21tYW5ke2dwZ30g +dmVyaWZpZXMKb25seSB3aGF0IG1ha2VzIHVwIHRoZSBjbGVhcnRleHQgc2lnbmVk +IGRhdGEgYW5kIG5vdCBhbnkgZXh0cmEgZGF0YQpvdXRzaWRlIG9mIHRoZSBjbGVh +cnRleHQgc2lnbmF0dXJlIG9yIGhlYWRlciBsaW5lcyBmb2xsb3dpbmcgZGlyZWN0 +bHkKdGhlIGRhc2ggbWFya2VyIGxpbmUuICBUaGUgb3B0aW9uIEBjb2Rley0tb3V0 +cHV0fSBtYXkgYmUgdXNlZCB0byB3cml0ZQpvdXQgdGhlIGFjdHVhbCBzaWduZWQg +ZGF0YTsgYnV0IHRoZXJlIGFyZSBvdGhlciBwaXRmYWxscyB3aXRoIHRoaXMKZm9y +bWF0IGFzIHdlbGwuICBJdCBpcyBzdWdnZXN0ZWQgdG8gYXZvaWQgY2xlYXJ0ZXh0 +IHNpZ25hdHVyZXMgaW4KZmF2b3Igb2YgZGV0YWNoZWQgc2lnbmF0dXJlcy4KCkBp +dGVtIC0tbXVsdGlmaWxlCkBvcGluZGV4IG11bHRpZmlsZQpUaGlzIG1vZGlmaWVz +IGNlcnRhaW4gb3RoZXIgY29tbWFuZHMgdG8gYWNjZXB0IG11bHRpcGxlIGZpbGVz +IGZvcgpwcm9jZXNzaW5nIG9uIHRoZSBjb21tYW5kIGxpbmUgb3IgcmVhZCBmcm9t +IFNURElOIHdpdGggZWFjaCBmaWxlbmFtZSBvbgphIHNlcGFyYXRlIGxpbmUuIFRo +aXMgYWxsb3dzIGZvciBtYW55IGZpbGVzIHRvIGJlIHByb2Nlc3NlZCBhdApvbmNl +LiBAb3B0aW9uey0tbXVsdGlmaWxlfSBtYXkgY3VycmVudGx5IGJlIHVzZWQgYWxv +bmcgd2l0aApAb3B0aW9uey0tdmVyaWZ5fSwgQG9wdGlvbnstLWVuY3J5cHR9LCBh +bmQgQG9wdGlvbnstLWRlY3J5cHR9LiBOb3RlIHRoYXQKQG9wdGlvbnstLW11bHRp +ZmlsZSAtLXZlcmlmeX0gbWF5IG5vdCBiZSB1c2VkIHdpdGggZGV0YWNoZWQgc2ln +bmF0dXJlcy4KCkBpdGVtIC0tdmVyaWZ5LWZpbGVzCkBvcGluZGV4IHZlcmlmeS1m +aWxlcwpJZGVudGljYWwgdG8gQG9wdGlvbnstLW11bHRpZmlsZSAtLXZlcmlmeX0u +CgpAaXRlbSAtLWVuY3J5cHQtZmlsZXMKQG9waW5kZXggZW5jcnlwdC1maWxlcwpJ +ZGVudGljYWwgdG8gQG9wdGlvbnstLW11bHRpZmlsZSAtLWVuY3J5cHR9LgoKQGl0 +ZW0gLS1kZWNyeXB0LWZpbGVzCkBvcGluZGV4IGRlY3J5cHQtZmlsZXMKSWRlbnRp +Y2FsIHRvIEBvcHRpb257LS1tdWx0aWZpbGUgLS1kZWNyeXB0fS4KCkBpdGVtIC0t +bGlzdC1rZXlzCkBpdGVteCAtawpAaXRlbXggLS1saXN0LXB1YmxpYy1rZXlzCkBv +cGluZGV4IGxpc3Qta2V5cwpMaXN0IGFsbCBrZXlzIGZyb20gdGhlIHB1YmxpYyBr +ZXlyaW5ncywgb3IganVzdCB0aGUga2V5cyBnaXZlbiBvbiB0aGUKY29tbWFuZCBs +aW5lLgoKQXZvaWQgdXNpbmcgdGhlIG91dHB1dCBvZiB0aGlzIGNvbW1hbmQgaW4g +c2NyaXB0cyBvciBvdGhlciBwcm9ncmFtcyBhcwppdCBpcyBsaWtlbHkgdG8gY2hh +bmdlIGFzIEdudVBHIGNoYW5nZXMuIFNlZSBAb3B0aW9uey0td2l0aC1jb2xvbnN9 +IGZvciBhCm1hY2hpbmUtcGFyc2VhYmxlIGtleSBsaXN0aW5nIGNvbW1hbmQgdGhh +dCBpcyBhcHByb3ByaWF0ZSBmb3IgdXNlIGluCnNjcmlwdHMgYW5kIG90aGVyIHBy +b2dyYW1zLgoKQGl0ZW0gLS1saXN0LXNlY3JldC1rZXlzCkBpdGVteCAtSwpAb3Bp +bmRleCBsaXN0LXNlY3JldC1rZXlzCkxpc3QgYWxsIGtleXMgZnJvbSB0aGUgc2Vj +cmV0IGtleXJpbmdzLCBvciBqdXN0IHRoZSBvbmVzIGdpdmVuIG9uIHRoZQpjb21t +YW5kIGxpbmUuIEEgQGNvZGV7I30gYWZ0ZXIgdGhlIGxldHRlcnMgQGNvZGV7c2Vj +fSBtZWFucyB0aGF0IHRoZQpzZWNyZXQga2V5IGlzIG5vdCB1c2FibGUgKGZvciBl +eGFtcGxlLCBpZiBpdCB3YXMgY3JlYXRlZCB2aWEKQG9wdGlvbnstLWV4cG9ydC1z +ZWNyZXQtc3Via2V5c30pLgoKQGl0ZW0gLS1saXN0LXNpZ3MKQG9waW5kZXggbGlz +dC1zaWdzClNhbWUgYXMgQG9wdGlvbnstLWxpc3Qta2V5c30sIGJ1dCB0aGUgc2ln +bmF0dXJlcyBhcmUgbGlzdGVkIHRvby4KVGhpcyBjb21tYW5kIGhhcyB0aGUgc2Ft +ZSBlZmZlY3QgYXMKdXNpbmcgQG9wdGlvbnstLWxpc3Qta2V5c30gd2l0aCBAb3B0 +aW9uey0td2l0aC1zaWctbGlzdH0uCgpGb3IgZWFjaCBzaWduYXR1cmUgbGlzdGVk +LCB0aGVyZSBhcmUgc2V2ZXJhbCBmbGFncyBpbiBiZXR3ZWVuIHRoZSAic2lnIgp0 +YWcgYW5kIGtleWlkLiBUaGVzZSBmbGFncyBnaXZlIGFkZGl0aW9uYWwgaW5mb3Jt +YXRpb24gYWJvdXQgZWFjaApzaWduYXR1cmUuIEZyb20gbGVmdCB0byByaWdodCwg +dGhleSBhcmUgdGhlIG51bWJlcnMgMS0zIGZvciBjZXJ0aWZpY2F0ZQpjaGVjayBs +ZXZlbCAoc2VlIEBvcHRpb257LS1hc2stY2VydC1sZXZlbH0pLCAiTCIgZm9yIGEg +bG9jYWwgb3IKbm9uLWV4cG9ydGFibGUgc2lnbmF0dXJlIChzZWUgQG9wdGlvbnst +LWxzaWduLWtleX0pLCAiUiIgZm9yIGEKbm9uUmV2b2NhYmxlIHNpZ25hdHVyZSAo +c2VlIHRoZSBAb3B0aW9uey0tZWRpdC1rZXl9IGNvbW1hbmQgIm5yc2lnbiIpLAoi +UCIgZm9yIGEgc2lnbmF0dXJlIHRoYXQgY29udGFpbnMgYSBwb2xpY3kgVVJMIChz +ZWUKQG9wdGlvbnstLWNlcnQtcG9saWN5LXVybH0pLCAiTiIgZm9yIGEgc2lnbmF0 +dXJlIHRoYXQgY29udGFpbnMgYQpub3RhdGlvbiAoc2VlIEBvcHRpb257LS1jZXJ0 +LW5vdGF0aW9ufSksICJYIiBmb3IgYW4gZVhwaXJlZCBzaWduYXR1cmUKKHNlZSBA +b3B0aW9uey0tYXNrLWNlcnQtZXhwaXJlfSksIGFuZCB0aGUgbnVtYmVycyAxLTkg +b3IgIlQiIGZvciAxMCBhbmQKYWJvdmUgdG8gaW5kaWNhdGUgdHJ1c3Qgc2lnbmF0 +dXJlIGxldmVscyAoc2VlIHRoZSBAb3B0aW9uey0tZWRpdC1rZXl9CmNvbW1hbmQg +InRzaWduIikuCgpAaXRlbSAtLWNoZWNrLXNpZ3MKQG9waW5kZXggY2hlY2stc2ln +cwpTYW1lIGFzIEBvcHRpb257LS1saXN0LXNpZ3N9LCBidXQgdGhlIHNpZ25hdHVy +ZXMgYXJlIHZlcmlmaWVkLiAgTm90ZQp0aGF0IGZvciBwZXJmb3JtYW5jZSByZWFz +b25zIHRoZSByZXZvY2F0aW9uIHN0YXR1cyBvZiBhIHNpZ25pbmcga2V5IGlzCm5v +dCBzaG93bi4KVGhpcyBjb21tYW5kIGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMKdXNp +bmcgQG9wdGlvbnstLWxpc3Qta2V5c30gd2l0aCBAb3B0aW9uey0td2l0aC1zaWct +Y2hlY2t9LgoKVGhlIHN0YXR1cyBvZiB0aGUgdmVyaWZpY2F0aW9uIGlzIGluZGlj +YXRlZCBieSBhIGZsYWcgZGlyZWN0bHkgZm9sbG93aW5nCnRoZSAic2lnIiB0YWcg +KGFuZCB0aHVzIGJlZm9yZSB0aGUgZmxhZ3MgZGVzY3JpYmVkIGFib3ZlIGZvcgpA +b3B0aW9uey0tbGlzdC1zaWdzfSkuICBBICIhIiBpbmRpY2F0ZXMgdGhhdCB0aGUg +c2lnbmF0dXJlIGhhcyBiZWVuCnN1Y2Nlc3NmdWxseSB2ZXJpZmllZCwgYSAiLSIg +ZGVub3RlcyBhIGJhZCBzaWduYXR1cmUgYW5kIGEgIiUiIGlzIHVzZWQKaWYgYW4g +ZXJyb3Igb2NjdXJyZWQgd2hpbGUgY2hlY2tpbmcgdGhlIHNpZ25hdHVyZSAoZS5n +LiBhIG5vbiBzdXBwb3J0ZWQKYWxnb3JpdGhtKS4KCkBpdGVtIC0tbG9jYXRlLWtl +eXMKQG9waW5kZXggbG9jYXRlLWtleXMKTG9jYXRlIHRoZSBrZXlzIGdpdmVuIGFz +IGFyZ3VtZW50cy4gIFRoaXMgY29tbWFuZCBiYXNpY2FsbHkgdXNlcyB0aGUKc2Ft +ZSBhbGdvcml0aG0gYXMgdXNlZCB3aGVuIGxvY2F0aW5nIGtleXMgZm9yIGVuY3J5 +cHRpb24gb3Igc2lnbmluZyBhbmQKbWF5IHRodXMgYmUgdXNlZCB0byBzZWUgd2hh +dCBrZXlzIEBjb21tYW5ke0BncGduYW1lfSBtaWdodCB1c2UuICBJbgpwYXJ0aWN1 +bGFyIGV4dGVybmFsIG1ldGhvZHMgYXMgZGVmaW5lZCBieSBAb3B0aW9uey0tYXV0 +by1rZXktbG9jYXRlfSBtYXkKYmUgdXNlZCB0byBsb2NhdGUgYSBrZXkuICBPbmx5 +IHB1YmxpYyBrZXlzIGFyZSBsaXN0ZWQuCgpAaXRlbSAtLWZpbmdlcnByaW50CkBv +cGluZGV4IGZpbmdlcnByaW50Ckxpc3QgYWxsIGtleXMgKG9yIHRoZSBzcGVjaWZp +ZWQgb25lcykgYWxvbmcgd2l0aCB0aGVpcgpmaW5nZXJwcmludHMuIFRoaXMgaXMg +dGhlIHNhbWUgb3V0cHV0IGFzIEBvcHRpb257LS1saXN0LWtleXN9IGJ1dCB3aXRo +CnRoZSBhZGRpdGlvbmFsIG91dHB1dCBvZiBhIGxpbmUgd2l0aCB0aGUgZmluZ2Vy +cHJpbnQuIE1heSBhbHNvIGJlCmNvbWJpbmVkIHdpdGggQG9wdGlvbnstLWxpc3Qt +c2lnc30gb3IgQG9wdGlvbnstLWNoZWNrLXNpZ3N9LiAgSWYgdGhpcwpjb21tYW5k +IGlzIGdpdmVuIHR3aWNlLCB0aGUgZmluZ2VycHJpbnRzIG9mIGFsbCBzZWNvbmRh +cnkga2V5cyBhcmUKbGlzdGVkIHRvby4KCkBpdGVtIC0tbGlzdC1wYWNrZXRzCkBv +cGluZGV4IGxpc3QtcGFja2V0cwpMaXN0IG9ubHkgdGhlIHNlcXVlbmNlIG9mIHBh +Y2tldHMuIFRoaXMgaXMgbWFpbmx5IHVzZWZ1bCBmb3IKZGVidWdnaW5nLiAgV2hl +biB1c2VkIHdpdGggb3B0aW9uIEBvcHRpb257LS12ZXJib3NlfSB0aGUgYWN0dWFs +IE1QSQp2YWx1ZXMgYXJlIGR1bXBlZCBhbmQgbm90IG9ubHkgdGhlaXIgbGVuZ3Ro +cy4KCgpAaXRlbSAtLWNhcmQtZWRpdApAb3BpbmRleCBjYXJkLWVkaXQKUHJlc2Vu +dCBhIG1lbnUgdG8gd29yayB3aXRoIGEgc21hcnRjYXJkLiBUaGUgc3ViY29tbWFu +ZCAiaGVscCIgcHJvdmlkZXMKYW4gb3ZlcnZpZXcgb24gYXZhaWxhYmxlIGNvbW1h +bmRzLiBGb3IgYSBkZXRhaWxlZCBkZXNjcmlwdGlvbiwgcGxlYXNlCnNlZSB0aGUg +Q2FyZCBIT1dUTyBhdApodHRwczovL2dudXBnLm9yZy9kb2N1bWVudGF0aW9uL2hv +d3Rvcy5odG1sI0dudVBHLWNhcmRIT1dUTyAuCgpAaXRlbSAtLWNhcmQtc3RhdHVz +CkBvcGluZGV4IGNhcmQtc3RhdHVzClNob3cgdGhlIGNvbnRlbnQgb2YgdGhlIHNt +YXJ0IGNhcmQuCgpAaXRlbSAtLWNoYW5nZS1waW4KQG9waW5kZXggY2hhbmdlLXBp +bgpQcmVzZW50IGEgbWVudSB0byBhbGxvdyBjaGFuZ2luZyB0aGUgUElOIG9mIGEg +c21hcnRjYXJkLiBUaGlzCmZ1bmN0aW9uYWxpdHkgaXMgYWxzbyBhdmFpbGFibGUg +YXMgdGhlIHN1YmNvbW1hbmQgInBhc3N3ZCIgd2l0aCB0aGUKQG9wdGlvbnstLWNh +cmQtZWRpdH0gY29tbWFuZC4KCkBpdGVtIC0tZGVsZXRlLWtleXMgQGNvZGV7bmFt +ZX0KQGl0ZW14IC0tZGVsZXRlLWtleXMgQGNvZGV7bmFtZX0KUmVtb3ZlIGtleSBm +cm9tIHRoZSBwdWJsaWMga2V5cmluZy4gSW4gYmF0Y2ggbW9kZSBlaXRoZXIgQG9w +dGlvbnstLXllc30gaXMKcmVxdWlyZWQgb3IgdGhlIGtleSBtdXN0IGJlIHNwZWNp +ZmllZCBieSBmaW5nZXJwcmludC4gVGhpcyBpcyBhCnNhZmVndWFyZCBhZ2FpbnN0 +IGFjY2lkZW50YWwgZGVsZXRpb24gb2YgbXVsdGlwbGUga2V5cy4KCkBpdGVtIC0t +ZGVsZXRlLXNlY3JldC1rZXlzIEBjb2Rle25hbWV9CkBvcGluZGV4IGRlbGV0ZS1z +ZWNyZXQta2V5cwpSZW1vdmUga2V5IGZyb20gdGhlIHNlY3JldCBrZXlyaW5nLiBJ +biBiYXRjaCBtb2RlIHRoZSBrZXkKbXVzdCBiZSBzcGVjaWZpZWQgYnkgZmluZ2Vy +cHJpbnQuCgpAaXRlbSAtLWRlbGV0ZS1zZWNyZXQtYW5kLXB1YmxpYy1rZXkgQGNv +ZGV7bmFtZX0KQG9waW5kZXggZGVsZXRlLXNlY3JldC1hbmQtcHVibGljLWtleQpT +YW1lIGFzIEBvcHRpb257LS1kZWxldGUta2V5fSwgYnV0IGlmIGEgc2VjcmV0IGtl +eSBleGlzdHMsIGl0IHdpbGwgYmUKcmVtb3ZlZCBmaXJzdC4gSW4gYmF0Y2ggbW9k +ZSB0aGUga2V5IG11c3QgYmUgc3BlY2lmaWVkIGJ5IGZpbmdlcnByaW50LgoKQGl0 +ZW0gLS1leHBvcnQKQG9waW5kZXggZXhwb3J0CkVpdGhlciBleHBvcnQgYWxsIGtl +eXMgZnJvbSBhbGwga2V5cmluZ3MgKGRlZmF1bHQga2V5cmluZ3MgYW5kIHRob3Nl +CnJlZ2lzdGVyZWQgdmlhIG9wdGlvbiBAb3B0aW9uey0ta2V5cmluZ30pLCBvciBp +ZiBhdCBsZWFzdCBvbmUgbmFtZSBpcyBnaXZlbiwKdGhvc2Ugb2YgdGhlIGdpdmVu +IG5hbWUuIFRoZSBleHBvcnRlZCBrZXlzIGFyZSB3cml0dGVuIHRvIFNURE9VVCBv +ciB0byB0aGUKZmlsZSBnaXZlbiB3aXRoIG9wdGlvbiBAb3B0aW9uey0tb3V0cHV0 +fS4gIFVzZSB0b2dldGhlciB3aXRoCkBvcHRpb257LS1hcm1vcn0gdG8gbWFpbCB0 +aG9zZSBrZXlzLgoKQGl0ZW0gLS1zZW5kLWtleXMgQGNvZGV7a2V5IElEc30KQG9w +aW5kZXggc2VuZC1rZXlzClNpbWlsYXIgdG8gQG9wdGlvbnstLWV4cG9ydH0gYnV0 +IHNlbmRzIHRoZSBrZXlzIHRvIGEga2V5c2VydmVyLgpGaW5nZXJwcmludHMgbWF5 +IGJlIHVzZWQgaW5zdGVhZCBvZiBrZXkgSURzLiBPcHRpb24gQG9wdGlvbnstLWtl +eXNlcnZlcn0KbXVzdCBiZSB1c2VkIHRvIGdpdmUgdGhlIG5hbWUgb2YgdGhpcyBr +ZXlzZXJ2ZXIuIERvbid0IHNlbmQgeW91cgpjb21wbGV0ZSBrZXlyaW5nIHRvIGEg +a2V5c2VydmVyIC0tLSBzZWxlY3Qgb25seSB0aG9zZSBrZXlzIHdoaWNoIGFyZSBu +ZXcKb3IgY2hhbmdlZCBieSB5b3UuICBJZiBubyBrZXkgSURzIGFyZSBnaXZlbiwg +QGNvbW1hbmR7Z3BnfSBkb2VzIG5vdGhpbmcuCgpAaXRlbSAtLWV4cG9ydC1zZWNy +ZXQta2V5cwpAaXRlbXggLS1leHBvcnQtc2VjcmV0LXN1YmtleXMKQG9waW5kZXgg +ZXhwb3J0LXNlY3JldC1rZXlzCkBvcGluZGV4IGV4cG9ydC1zZWNyZXQtc3Via2V5 +cwpTYW1lIGFzIEBvcHRpb257LS1leHBvcnR9LCBidXQgZXhwb3J0cyB0aGUgc2Vj +cmV0IGtleXMgaW5zdGVhZC4gIFRoZQpleHBvcnRlZCBrZXlzIGFyZSB3cml0dGVu +IHRvIFNURE9VVCBvciB0byB0aGUgZmlsZSBnaXZlbiB3aXRoIG9wdGlvbgpAb3B0 +aW9uey0tb3V0cHV0fS4gIFRoaXMgY29tbWFuZCBpcyBvZnRlbiB1c2VkIGFsb25n +IHdpdGggdGhlIG9wdGlvbgpAb3B0aW9uey0tYXJtb3J9IHRvIGFsbG93IGVhc3kg +cHJpbnRpbmcgb2YgdGhlIGtleSBmb3IgcGFwZXIgYmFja3VwOwpob3dldmVyIHRo +ZSBleHRlcm5hbCB0b29sIEBjb21tYW5ke3BhcGVya2V5fSBkb2VzIGEgYmV0dGVy +IGpvYiBmb3IKY3JlYXRpbmcgYmFja3VwcyBvbiBwYXBlci4gIE5vdGUgdGhhdCBl +eHBvcnRpbmcgYSBzZWNyZXQga2V5IGNhbiBiZSBhCnNlY3VyaXR5IHJpc2sgaWYg +dGhlIGV4cG9ydGVkIGtleXMgYXJlIHNlbmQgb3ZlciBhbiBpbnNlY3VyZSBjaGFu +bmVsLgoKVGhlIHNlY29uZCBmb3JtIG9mIHRoZSBjb21tYW5kIGhhcyB0aGUgc3Bl +Y2lhbCBwcm9wZXJ0eSB0byByZW5kZXIgdGhlCnNlY3JldCBwYXJ0IG9mIHRoZSBw +cmltYXJ5IGtleSB1c2VsZXNzOyB0aGlzIGlzIGEgR05VIGV4dGVuc2lvbiB0bwpP +cGVuUEdQIGFuZCBvdGhlciBpbXBsZW1lbnRhdGlvbnMgY2FuIG5vdCBiZSBleHBl +Y3RlZCB0byBzdWNjZXNzZnVsbHkKaW1wb3J0IHN1Y2ggYSBrZXkuICBJdHMgaW50 +ZW5kZWQgdXNlIGlzIHRvIGdlbmVyYXRlZCBhIGZ1bGwga2V5IHdpdGgKYW4gYWRk +aXRpb25hbCBzaWduaW5nIHN1YmtleSBvbiBhIGRlZGljYXRlZCBtYWNoaW5lIGFu +ZCB0aGVuIHVzaW5nCnRoaXMgY29tbWFuZCB0byBleHBvcnQgdGhlIGtleSB3aXRo +b3V0IHRoZSBwcmltYXJ5IGtleSB0byB0aGUgbWFpbgptYWNoaW5lLgoKR251UEcg +bWF5IGFzayB5b3UgdG8gZW50ZXIgdGhlIHBhc3NwaHJhc2UgZm9yIHRoZSBrZXku +ICBUaGlzIGlzCnJlcXVpcmVkIGJlY2F1c2UgdGhlIGludGVybmFsIHByb3RlY3Rp +b24gbWV0aG9kIG9mIHRoZSBzZWNyZXQga2V5IGlzCmRpZmZlcmVudCBmcm9tIHRo +ZSBvbmUgc3BlY2lmaWVkIGJ5IHRoZSBPcGVuUEdQIHByb3RvY29sLgoKQGl0ZW0g +LS1leHBvcnQtc3NoLWtleQpAb3BpbmRleCBleHBvcnQtc3NoLWtleQpUaGlzIGNv +bW1hbmQgaXMgdXNlZCB0byBleHBvcnQgYSBrZXkgaW4gdGhlIE9wZW5TU0ggcHVi +bGljIGtleSBmb3JtYXQuCkl0IHJlcXVpcmVzIHRoZSBzcGVjaWZpY2F0aW9uIG9m +IG9uZSBrZXkgYnkgdGhlIHVzdWFsIG1lYW5zIGFuZApleHBvcnRzIHRoZSBsYXRl +c3QgdmFsaWQgc3Via2V5IHdoaWNoIGhhcyBhbiBhdXRoZW50aWNhdGlvbiBjYXBh +YmlsaXR5CnRvIFNURE9VVCBvciB0byB0aGUgZmlsZSBnaXZlbiB3aXRoIG9wdGlv +biBAb3B0aW9uey0tb3V0cHV0fS4gIFRoYXQKb3V0cHV0IGNhbiBkaXJlY3RseSBi +ZSBhZGRlZCB0byBzc2gncyBAZmlsZXthdXRob3JpemVkX2tleX0gZmlsZS4KCkJ5 +IHNwZWNpZnlpbmcgdGhlIGtleSB0byBleHBvcnQgdXNpbmcgYSBrZXkgSUQgb3Ig +YSBmaW5nZXJwcmludApzdWZmaXhlZCB3aXRoIGFuIGV4Y2xhbWF0aW9uIG1hcmsg +KCEpLCBhIHNwZWNpZmljIHN1YmtleSBvciB0aGUKcHJpbWFyeSBrZXkgY2FuIGJl +IGV4cG9ydGVkLiAgVGhpcyBkb2VzIG5vdCBldmVuIHJlcXVpcmUgdGhhdCB0aGUg +a2V5CmhhcyB0aGUgYXV0aGVudGljYXRpb24gY2FwYWJpbGl0eSBmbGFnIHNldC4g +IFRvIHZpZXcgdGhlIGNhcGFiaWxpdHkKZmxhZ3Mgb2YgYSBrZXkgdXNlIEBjb2Rl +ey0tbGlzdC1vcHRpb25zIHNob3ctdXNhZ2V9IGFsb25nIHdpdGggYSBrZXkKbGlz +dGluZyBjb21tYW5kLgoKQGl0ZW0gLS1pbXBvcnQKQGl0ZW14IC0tZmFzdC1pbXBv +cnQKQG9waW5kZXggaW1wb3J0CkltcG9ydC9tZXJnZSBrZXlzLiBUaGlzIGFkZHMg +dGhlIGdpdmVuIGtleXMgdG8gdGhlCmtleXJpbmcuIFRoZSBmYXN0IHZlcnNpb24g +aXMgY3VycmVudGx5IGp1c3QgYSBzeW5vbnltLgoKVGhlcmUgYXJlIGEgZmV3IG90 +aGVyIG9wdGlvbnMgd2hpY2ggY29udHJvbCBob3cgdGhpcyBjb21tYW5kIHdvcmtz +LgpNb3N0IG5vdGFibGUgaGVyZSBpcyB0aGUgQG9wdGlvbnstLWltcG9ydC1vcHRp +b25zIG1lcmdlLW9ubHl9IG9wdGlvbgp3aGljaCBkb2VzIG5vdCBpbnNlcnQgbmV3 +IGtleXMgYnV0IGRvZXMgb25seSB0aGUgbWVyZ2luZyBvZiBuZXcKc2lnbmF0dXJl +cywgdXNlci1JRHMgYW5kIHN1YmtleXMuCgpAaXRlbSAtLXJlY3Yta2V5cyBAY29k +ZXtrZXkgSURzfQpAb3BpbmRleCByZWN2LWtleXMKSW1wb3J0IHRoZSBrZXlzIHdp +dGggdGhlIGdpdmVuIGtleSBJRHMgZnJvbSBhIGtleXNlcnZlci4gT3B0aW9uCkBv +cHRpb257LS1rZXlzZXJ2ZXJ9IG11c3QgYmUgdXNlZCB0byBnaXZlIHRoZSBuYW1l +IG9mIHRoaXMga2V5c2VydmVyLgoKQGl0ZW0gLS1yZWZyZXNoLWtleXMKQG9waW5k +ZXggcmVmcmVzaC1rZXlzClJlcXVlc3QgdXBkYXRlcyBmcm9tIGEga2V5c2VydmVy +IGZvciBrZXlzIHRoYXQgYWxyZWFkeSBleGlzdCBvbiB0aGUKbG9jYWwga2V5cmlu +Zy4gVGhpcyBpcyB1c2VmdWwgZm9yIHVwZGF0aW5nIGEga2V5IHdpdGggdGhlIGxh +dGVzdApzaWduYXR1cmVzLCB1c2VyIElEcywgZXRjLiBDYWxsaW5nIHRoaXMgd2l0 +aCBubyBhcmd1bWVudHMgd2lsbCByZWZyZXNoCnRoZSBlbnRpcmUga2V5cmluZy4g +T3B0aW9uIEBvcHRpb257LS1rZXlzZXJ2ZXJ9IG11c3QgYmUgdXNlZCB0byBnaXZl +IHRoZQpuYW1lIG9mIHRoZSBrZXlzZXJ2ZXIgZm9yIGFsbCBrZXlzIHRoYXQgZG8g +bm90IGhhdmUgcHJlZmVycmVkIGtleXNlcnZlcnMKc2V0IChzZWUgQG9wdGlvbnst +LWtleXNlcnZlci1vcHRpb25zIGhvbm9yLWtleXNlcnZlci11cmx9KS4KCkBpdGVt +IC0tc2VhcmNoLWtleXMgQGNvZGV7bmFtZXN9CkBvcGluZGV4IHNlYXJjaC1rZXlz +ClNlYXJjaCB0aGUga2V5c2VydmVyIGZvciB0aGUgZ2l2ZW4gbmFtZXMuIE11bHRp +cGxlIG5hbWVzIGdpdmVuIGhlcmUgd2lsbApiZSBqb2luZWQgdG9nZXRoZXIgdG8g +Y3JlYXRlIHRoZSBzZWFyY2ggc3RyaW5nIGZvciB0aGUga2V5c2VydmVyLgpPcHRp +b24gQG9wdGlvbnstLWtleXNlcnZlcn0gbXVzdCBiZSB1c2VkIHRvIGdpdmUgdGhl +IG5hbWUgb2YgdGhpcwprZXlzZXJ2ZXIuICBLZXlzZXJ2ZXJzIHRoYXQgc3VwcG9y +dCBkaWZmZXJlbnQgc2VhcmNoIG1ldGhvZHMgYWxsb3cgdXNpbmcKdGhlIHN5bnRh +eCBzcGVjaWZpZWQgaW4gIkhvdyB0byBzcGVjaWZ5IGEgdXNlciBJRCIgYmVsb3cu +IE5vdGUgdGhhdApkaWZmZXJlbnQga2V5c2VydmVyIHR5cGVzIHN1cHBvcnQgZGlm +ZmVyZW50IHNlYXJjaCBtZXRob2RzLiBDdXJyZW50bHkKb25seSBMREFQIHN1cHBv +cnRzIHRoZW0gYWxsLgoKQGl0ZW0gLS1mZXRjaC1rZXlzIEBjb2Rle1VSSXN9CkBv +cGluZGV4IGZldGNoLWtleXMKUmV0cmlldmUga2V5cyBsb2NhdGVkIGF0IHRoZSBz +cGVjaWZpZWQgVVJJcy4gTm90ZSB0aGF0IGRpZmZlcmVudAppbnN0YWxsYXRpb25z +IG9mIEdudVBHIG1heSBzdXBwb3J0IGRpZmZlcmVudCBwcm90b2NvbHMgKEhUVFAs +IEZUUCwKTERBUCwgZXRjLikKCkBpdGVtIC0tdXBkYXRlLXRydXN0ZGIKQG9waW5k +ZXggdXBkYXRlLXRydXN0ZGIKRG8gdHJ1c3QgZGF0YWJhc2UgbWFpbnRlbmFuY2Uu +IFRoaXMgY29tbWFuZCBpdGVyYXRlcyBvdmVyIGFsbCBrZXlzIGFuZApidWlsZHMg +dGhlIFdlYiBvZiBUcnVzdC4gVGhpcyBpcyBhbiBpbnRlcmFjdGl2ZSBjb21tYW5k +IGJlY2F1c2UgaXQgbWF5CmhhdmUgdG8gYXNrIGZvciB0aGUgIm93bmVydHJ1c3Qi +IHZhbHVlcyBmb3Iga2V5cy4gVGhlIHVzZXIgaGFzIHRvIGdpdmUKYW4gZXN0aW1h +dGlvbiBvZiBob3cgZmFyIHNoZSB0cnVzdHMgdGhlIG93bmVyIG9mIHRoZSBkaXNw +bGF5ZWQga2V5IHRvCmNvcnJlY3RseSBjZXJ0aWZ5IChzaWduKSBvdGhlciBrZXlz +LiBHbnVQRyBvbmx5IGFza3MgZm9yIHRoZSBvd25lcnRydXN0CnZhbHVlIGlmIGl0 +IGhhcyBub3QgeWV0IGJlZW4gYXNzaWduZWQgdG8gYSBrZXkuIFVzaW5nIHRoZQpA +b3B0aW9uey0tZWRpdC1rZXl9IG1lbnUsIHRoZSBhc3NpZ25lZCB2YWx1ZSBjYW4g +YmUgY2hhbmdlZCBhdCBhbnkgdGltZS4KCkBpdGVtIC0tY2hlY2stdHJ1c3RkYgpA +b3BpbmRleCBjaGVjay10cnVzdGRiCkRvIHRydXN0IGRhdGFiYXNlIG1haW50ZW5h +bmNlIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4gRnJvbSB0aW1lIHRvCnRpbWUg +dGhlIHRydXN0IGRhdGFiYXNlIG11c3QgYmUgdXBkYXRlZCBzbyB0aGF0IGV4cGly +ZWQga2V5cyBvcgpzaWduYXR1cmVzIGFuZCB0aGUgcmVzdWx0aW5nIGNoYW5nZXMg +aW4gdGhlIFdlYiBvZiBUcnVzdCBjYW4gYmUKdHJhY2tlZC4gTm9ybWFsbHksIEdu +dVBHIHdpbGwgY2FsY3VsYXRlIHdoZW4gdGhpcyBpcyByZXF1aXJlZCBhbmQgZG8g +aXQKYXV0b21hdGljYWxseSB1bmxlc3MgQG9wdGlvbnstLW5vLWF1dG8tY2hlY2st +dHJ1c3RkYn0gaXMgc2V0LiBUaGlzCmNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gZm9y +Y2UgYSB0cnVzdCBkYXRhYmFzZSBjaGVjayBhdCBhbnkgdGltZS4gVGhlCnByb2Nl +c3NpbmcgaXMgaWRlbnRpY2FsIHRvIHRoYXQgb2YgQG9wdGlvbnstLXVwZGF0ZS10 +cnVzdGRifSBidXQgaXQKc2tpcHMga2V5cyB3aXRoIGEgbm90IHlldCBkZWZpbmVk +ICJvd25lcnRydXN0Ii4KCkZvciB1c2Ugd2l0aCBjcm9uIGpvYnMsIHRoaXMgY29t +bWFuZCBjYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoCkBvcHRpb257LS1iYXRjaH0g +aW4gd2hpY2ggY2FzZSB0aGUgdHJ1c3QgZGF0YWJhc2UgY2hlY2sgaXMgZG9uZSBv +bmx5IGlmCmEgY2hlY2sgaXMgbmVlZGVkLiBUbyBmb3JjZSBhIHJ1biBldmVuIGlu +IGJhdGNoIG1vZGUgYWRkIHRoZSBvcHRpb24KQG9wdGlvbnstLXllc30uCgpAYW5j +aG9ye29wdGlvbiAtLWV4cG9ydC1vd25lcnRydXN0fQpAaXRlbSAtLWV4cG9ydC1v +d25lcnRydXN0CkBvcGluZGV4IGV4cG9ydC1vd25lcnRydXN0ClNlbmQgdGhlIG93 +bmVydHJ1c3QgdmFsdWVzIHRvIFNURE9VVC4gVGhpcyBpcyB1c2VmdWwgZm9yIGJh +Y2t1cCBwdXJwb3NlcwphcyB0aGVzZSB2YWx1ZXMgYXJlIHRoZSBvbmx5IG9uZXMg +d2hpY2ggY2FuJ3QgYmUgcmUtY3JlYXRlZCBmcm9tIGEKY29ycnVwdGVkIHRydXN0 +ZGIuICBFeGFtcGxlOgpAYyBtYW46LlJTCkBleGFtcGxlCiAgQGdwZ25hbWV7fSAt +LWV4cG9ydC1vd25lcnRydXN0ID4gb3RydXN0LnR4dApAZW5kIGV4YW1wbGUKQGMg +bWFuOi5SRQoKCkBpdGVtIC0taW1wb3J0LW93bmVydHJ1c3QKQG9waW5kZXggaW1w +b3J0LW93bmVydHJ1c3QKVXBkYXRlIHRoZSB0cnVzdGRiIHdpdGggdGhlIG93bmVy +dHJ1c3QgdmFsdWVzIHN0b3JlZCBpbiBAY29kZXtmaWxlc30gKG9yClNURElOIGlm +IG5vdCBnaXZlbik7IGV4aXN0aW5nIHZhbHVlcyB3aWxsIGJlIG92ZXJ3cml0dGVu +LiAgSW4gY2FzZSBvZiBhCnNldmVyZWx5IGRhbWFnZWQgdHJ1c3RkYiBhbmQgaWYg +eW91IGhhdmUgYSByZWNlbnQgYmFja3VwIG9mIHRoZQpvd25lcnRydXN0IHZhbHVl +cyAoZS5nLiBpbiB0aGUgZmlsZSBAZmlsZXtvdHJ1c3QudHh0fSwgeW91IG1heSBy +ZS1jcmVhdGUKdGhlIHRydXN0ZGIgdXNpbmcgdGhlc2UgY29tbWFuZHM6CkBjIG1h +bjouUlMKQGV4YW1wbGUKICBjZCB+Ly5nbnVwZwogIHJtIHRydXN0ZGIuZ3BnCiAg +QGdwZ25hbWV7fSAtLWltcG9ydC1vd25lcnRydXN0IDwgb3RydXN0LnR4dApAZW5k +IGV4YW1wbGUKQGMgbWFuOi5SRQoKCkBpdGVtIC0tcmVidWlsZC1rZXlkYi1jYWNo +ZXMKQG9waW5kZXggcmVidWlsZC1rZXlkYi1jYWNoZXMKV2hlbiB1cGRhdGluZyBm +cm9tIHZlcnNpb24gMS4wLjYgdG8gMS4wLjcgdGhpcyBjb21tYW5kIHNob3VsZCBi +ZSB1c2VkCnRvIGNyZWF0ZSBzaWduYXR1cmUgY2FjaGVzIGluIHRoZSBrZXlyaW5n +LiBJdCBtaWdodCBiZSBoYW5keSBpbiBvdGhlcgpzaXR1YXRpb25zIHRvby4KCkBp +dGVtIC0tcHJpbnQtbWQgQGNvZGV7YWxnb30KQGl0ZW14IC0tcHJpbnQtbWRzCkBv +cGluZGV4IHByaW50LW1kClByaW50IG1lc3NhZ2UgZGlnZXN0IG9mIGFsZ29yaXRo +bSBBTEdPIGZvciBhbGwgZ2l2ZW4gZmlsZXMgb3IgU1RESU4uCldpdGggdGhlIHNl +Y29uZCBmb3JtIChvciBhIGRlcHJlY2F0ZWQgIioiIGFzIGFsZ28pIGRpZ2VzdHMg +Zm9yIGFsbAphdmFpbGFibGUgYWxnb3JpdGhtcyBhcmUgcHJpbnRlZC4KCkBpdGVt +IC0tZ2VuLXJhbmRvbSBAY29kZXswfDF8Mn0gQGNvZGV7Y291bnR9CkBvcGluZGV4 +IGdlbi1yYW5kb20KRW1pdCBAdmFye2NvdW50fSByYW5kb20gYnl0ZXMgb2YgdGhl +IGdpdmVuIHF1YWxpdHkgbGV2ZWwgMCwgMSBvciAyLiBJZgpAdmFye2NvdW50fSBp +cyBub3QgZ2l2ZW4gb3IgemVybywgYW4gZW5kbGVzcyBzZXF1ZW5jZSBvZiByYW5k +b20gYnl0ZXMKd2lsbCBiZSBlbWl0dGVkLiAgSWYgdXNlZCB3aXRoIEBvcHRpb257 +LS1hcm1vcn0gdGhlIG91dHB1dCB3aWxsIGJlCmJhc2U2NCBlbmNvZGVkLiAgUExF +QVNFLCBkb24ndCB1c2UgdGhpcyBjb21tYW5kIHVubGVzcyB5b3Uga25vdyB3aGF0 +CnlvdSBhcmUgZG9pbmc7IGl0IG1heSByZW1vdmUgcHJlY2lvdXMgZW50cm9weSBm +cm9tIHRoZSBzeXN0ZW0hCgpAaXRlbSAtLWdlbi1wcmltZSBAY29kZXttb2RlfSAg +QGNvZGV7Yml0c30KQG9waW5kZXggZ2VuLXByaW1lClVzZSB0aGUgc291cmNlLCBM +dWtlIDotKS4gVGhlIG91dHB1dCBmb3JtYXQgaXMgc3RpbGwgc3ViamVjdCB0byBj +aGFuZ2UuCgoKQGl0ZW0gLS1lbmFybW9yCkBpdGVtIC0tZGVhcm1vcgpAb3BpbmRl +eCBlbmFybW9yCkBvcGluZGV4IGRlYXJtb3IKUGFjayBvciB1bnBhY2sgYW4gYXJi +aXRyYXJ5IGlucHV0IGludG8vZnJvbSBhbiBPcGVuUEdQIEFTQ0lJIGFybW9yLgpU +aGlzIGlzIGEgR251UEcgZXh0ZW5zaW9uIHRvIE9wZW5QR1AgYW5kIGluIGdlbmVy +YWwgbm90IHZlcnkgdXNlZnVsLgoKQGl0ZW0gLS10b2Z1LXNldC1wb2xpY3kgQGNv +ZGV7YXV0b3xnb29kfHVua25vd258YmFkfGFza30gIEBjb2Rle2tleS4uLn0KQG9w +aW5kZXggdG9mdS1zZXQtcG9saWN5ClNldCB0aGUgVE9GVSBwb2xpY3kgZm9yIGFs +bCB0aGUgYmluZGluZ3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQKa2V5 +cy4gIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBtZWFuaW5nIG9mIHRo +ZSBwb2xpY2llcywKQHB4cmVme3RydXN0LW1vZGVsLXRvZnV9LiAgVGhlIGtleXMg +bWF5IGJlIHNwZWNpZmllZCBlaXRoZXIgYnkgdGhlaXIKZmluZ2VycHJpbnQgKHBy +ZWZlcnJlZCkgb3IgdGhlaXIga2V5aWQuCgpAYyBAaXRlbSAtLXNlcnZlcgpAYyBA +b3BpbmRleCBzZXJ2ZXIKQGMgUnVuIGdwZyBpbiBzZXJ2ZXIgbW9kZS4gIFRoaXMg +ZmVhdHVyZSBpcyBub3QgeWV0IHJlYWR5IGZvciB1c2UgYW5kCkBjIHRodXMgbm90 +IGRvY3VtZW50ZWQuCgpAZW5kIHRhYmxlCgoKQGMgKioqKioqKioqKioqKioqKioq +KioqKioqKioqKioqKioqKioqKioqKioqKgpAYyAqKioqKioqICBLRVkgTUFOR0VN +RU5UIENPTU1BTkRTICAqKioqKioqKioqCkBjICoqKioqKioqKioqKioqKioqKioq +KioqKioqKioqKioqKioqKioqKioqKioKQG5vZGUgT3BlblBHUCBLZXkgTWFuYWdl +bWVudApAc3Vic2VjdGlvbiBIb3cgdG8gbWFuYWdlIHlvdXIga2V5cwoKVGhpcyBz +ZWN0aW9uIGV4cGxhaW5zIHRoZSBtYWluIGNvbW1hbmRzIGZvciBrZXkgbWFuYWdl +bWVudAoKQHRhYmxlIEBnbnVwZ3RhYm9wdAoKQGl0ZW0gLS1xdWljay1nZW4ta2V5 +IEBjb2Rle3VzZXItaWR9CkBvcGluZGV4IHF1aWNrLWdlbi1rZXkKVGhpcyBpcyBh +IHNpbXBsZSBjb21tYW5kIHRvIGdlbmVyYXRlIGEgc3RhbmRhcmQga2V5IHdpdGgg +b25lIHVzZXIgaWQuCkluIGNvbnRyYXN0IHRvIEBvcHRpb257LS1nZW4ta2V5fSB0 +aGUga2V5IGlzIGdlbmVyYXRlZCBkaXJlY3RseQp3aXRob3V0IHRoZSBuZWVkIHRv +IGFuc3dlciBhIGJ1bmNoIG9mIHByb21wdHMuICBVbmxlc3MgdGhlIG9wdGlvbgpA +b3B0aW9uey0teWVzfSBpcyBnaXZlbiwgdGhlIGtleSBjcmVhdGlvbiB3aWxsIGJl +IGNhbmNlbGVkIGlmIHRoZQpnaXZlbiB1c2VyIGlkIGFscmVhZHkgZXhpc3RzIGlu +IHRoZSBrZXkgcmluZy4KCklmIGludm9rZWQgZGlyZWN0bHkgb24gdGhlIGNvbnNv +bGUgd2l0aG91dCBhbnkgc3BlY2lhbCBvcHRpb25zIGFuCmFuc3dlciB0byBhIGBg +Q29udGludWU/Jycgc3R5bGUgY29uZmlybWF0aW9uIHByb21wdCBpcyByZXF1aXJl +ZC4gIEluCmNhc2UgdGhlIHVzZXIgaWQgYWxyZWFkeSBleGlzdHMgaW4gdGhlIGtl +eSByaW5nIGEgc2Vjb25kIHByb21wdCB0bwpmb3JjZSB0aGUgY3JlYXRpb24gb2Yg +dGhlIGtleSB3aWxsIHNob3cgdXAuCgpJZiB0aGlzIGNvbW1hbmQgaXMgdXNlZCB3 +aXRoIEBvcHRpb257LS1iYXRjaH0sCkBvcHRpb257LS1waW5lbnRyeS1tb2RlfSBo +YXMgYmVlbiBzZXQgdG8gQGNvZGV7bG9vcGJhY2t9LCBhbmQgb25lIG9mCnRoZSBw +YXNzcGhyYXNlIG9wdGlvbnMgKEBvcHRpb257LS1wYXNzcGhyYXNlfSwKQG9wdGlv +bnstLXBhc3NwaHJhc2UtZmR9LCBvciBAb3B0aW9ue3Bhc3NwaHJhc2UtZmlsZX0p +IGlzIHVzZWQsIHRoZQpzdXBwbGllZCBwYXNzcGhyYXNlIGlzIHVzZWQgZm9yIHRo +ZSBuZXcga2V5IGFuZCB0aGUgYWdlbnQgZG9lcyBub3QgYXNrCmZvciBpdC4gIFRv +IGNyZWF0ZSBhIGtleSB3aXRob3V0IGFueSBwcm90ZWN0aW9uIEBjb2Rley0tcGFz +c3BocmFzZSAnJ30KbWF5IGJlIHVzZWQuCgpAaXRlbSAtLWdlbi1rZXkKQG9waW5k +ZXggZ2VuLWtleQpHZW5lcmF0ZSBhIG5ldyBrZXkgcGFpciB1c2luZyB0aGUgY3Vy +cmVudCBkZWZhdWx0IHBhcmFtZXRlcnMuICBUaGlzIGlzCnRoZSBzdGFuZGFyZCBj +b21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBrZXkuCgpAaXRlbSAtLWZ1bGwtZ2VuLWtl +eQpAb3BpbmRleCBnZW4ta2V5CkdlbmVyYXRlIGEgbmV3IGtleSBwYWlyIHdpdGgg +ZGlhbG9ncyBmb3IgYWxsIG9wdGlvbnMuICBUaGlzIGlzIGFuCmV4dGVuZGVkIHZl +cnNpb24gb2YgQG9wdGlvbnstLWdlbi1rZXl9LgoKVGhlcmUgaXMgYWxzbyBhIGZl +YXR1cmUgd2hpY2ggYWxsb3dzIHlvdSB0byBjcmVhdGUga2V5cyBpbiBiYXRjaApt +b2RlLiBTZWUgdGhlIHRoZSBtYW51YWwgc2VjdGlvbiBgYFVuYXR0ZW5kZWQga2V5 +IGdlbmVyYXRpb24nJyBvbiBob3cKdG8gdXNlIHRoaXMuCgpAaXRlbSAtLWdlbi1y +ZXZva2UgQGNvZGV7bmFtZX0KQG9waW5kZXggZ2VuLXJldm9rZQpHZW5lcmF0ZSBh +IHJldm9jYXRpb24gY2VydGlmaWNhdGUgZm9yIHRoZSBjb21wbGV0ZSBrZXkuIFRv +IHJldm9rZQphIHN1YmtleSBvciBhIHNpZ25hdHVyZSwgdXNlIHRoZSBAb3B0aW9u +ey0tZWRpdH0gY29tbWFuZC4KCkBpdGVtIC0tZGVzaWctcmV2b2tlIEBjb2Rle25h +bWV9CkBvcGluZGV4IGRlc2lnLXJldm9rZQpHZW5lcmF0ZSBhIGRlc2lnbmF0ZWQg +cmV2b2NhdGlvbiBjZXJ0aWZpY2F0ZSBmb3IgYSBrZXkuIFRoaXMgYWxsb3dzIGEK +dXNlciAod2l0aCB0aGUgcGVybWlzc2lvbiBvZiB0aGUga2V5aG9sZGVyKSB0byBy +ZXZva2Ugc29tZW9uZSBlbHNlJ3MKa2V5LgoKCkBpdGVtIC0tZWRpdC1rZXkKQG9w +aW5kZXggZWRpdC1rZXkKUHJlc2VudCBhIG1lbnUgd2hpY2ggZW5hYmxlcyB5b3Ug +dG8gZG8gbW9zdCBvZiB0aGUga2V5IG1hbmFnZW1lbnQKcmVsYXRlZCB0YXNrcy4g +IEl0IGV4cGVjdHMgdGhlIHNwZWNpZmljYXRpb24gb2YgYSBrZXkgb24gdGhlIGNv +bW1hbmQKbGluZS4KCkBjICoqKioqKioqIEJlZ2luIEVkaXQta2V5IE9wdGlvbnMg +KioqKioqKioqKgpAdGFibGUgQGFzaXMKCiAgQGl0ZW0gdWlkIEBjb2Rle259CiAg +QG9waW5kZXgga2V5ZWRpdDp1aWQKICBUb2dnbGUgc2VsZWN0aW9uIG9mIHVzZXIg +SUQgb3IgcGhvdG9ncmFwaGljIHVzZXIgSUQgd2l0aCBpbmRleCBAY29kZXtufS4K +ICBVc2UgQGNvZGV7Kn0gdG8gc2VsZWN0IGFsbCBhbmQgQGNvZGV7MH0gdG8gZGVz +ZWxlY3QgYWxsLgoKICBAaXRlbSBrZXkgQGNvZGV7bn0KICBAb3BpbmRleCBrZXll +ZGl0OmtleQogIFRvZ2dsZSBzZWxlY3Rpb24gb2Ygc3Via2V5IHdpdGggaW5kZXgg +QGNvZGV7bn0gb3Iga2V5IElEIEBjb2Rle259LgogIFVzZSBAY29kZXsqfSB0byBz +ZWxlY3QgYWxsIGFuZCBAY29kZXswfSB0byBkZXNlbGVjdCBhbGwuCgogIEBpdGVt +IHNpZ24KICBAb3BpbmRleCBrZXllZGl0OnNpZ24KICBNYWtlIGEgc2lnbmF0dXJl +IG9uIGtleSBvZiB1c2VyIEBjb2Rle25hbWV9IElmIHRoZSBrZXkgaXMgbm90IHll +dAogIHNpZ25lZCBieSB0aGUgZGVmYXVsdCB1c2VyIChvciB0aGUgdXNlcnMgZ2l2 +ZW4gd2l0aCAtdSksIHRoZSBwcm9ncmFtCiAgZGlzcGxheXMgdGhlIGluZm9ybWF0 +aW9uIG9mIHRoZSBrZXkgYWdhaW4sIHRvZ2V0aGVyIHdpdGggaXRzCiAgZmluZ2Vy +cHJpbnQgYW5kIGFza3Mgd2hldGhlciBpdCBzaG91bGQgYmUgc2lnbmVkLiBUaGlz +IHF1ZXN0aW9uIGlzCiAgcmVwZWF0ZWQgZm9yIGFsbCB1c2VycyBzcGVjaWZpZWQg +d2l0aAogIC11LgoKICBAaXRlbSBsc2lnbgogIEBvcGluZGV4IGtleWVkaXQ6bHNp +Z24KICBTYW1lIGFzICJzaWduIiBidXQgdGhlIHNpZ25hdHVyZSBpcyBtYXJrZWQg +YXMgbm9uLWV4cG9ydGFibGUgYW5kIHdpbGwKICB0aGVyZWZvcmUgbmV2ZXIgYmUg +dXNlZCBieSBvdGhlcnMuIFRoaXMgbWF5IGJlIHVzZWQgdG8gbWFrZSBrZXlzCiAg +dmFsaWQgb25seSBpbiB0aGUgbG9jYWwgZW52aXJvbm1lbnQuCgogIEBpdGVtIG5y +c2lnbgogIEBvcGluZGV4IGtleWVkaXQ6bnJzaWduCiAgU2FtZSBhcyAic2lnbiIg +YnV0IHRoZSBzaWduYXR1cmUgaXMgbWFya2VkIGFzIG5vbi1yZXZvY2FibGUgYW5k +IGNhbgogIHRoZXJlZm9yZSBuZXZlciBiZSByZXZva2VkLgoKICBAaXRlbSB0c2ln +bgogIEBvcGluZGV4IGtleWVkaXQ6dHNpZ24KICBNYWtlIGEgdHJ1c3Qgc2lnbmF0 +dXJlLiBUaGlzIGlzIGEgc2lnbmF0dXJlIHRoYXQgY29tYmluZXMgdGhlIG5vdGlv +bnMKICBvZiBjZXJ0aWZpY2F0aW9uIChsaWtlIGEgcmVndWxhciBzaWduYXR1cmUp +LCBhbmQgdHJ1c3QgKGxpa2UgdGhlCiAgInRydXN0IiBjb21tYW5kKS4gSXQgaXMg +Z2VuZXJhbGx5IG9ubHkgdXNlZnVsIGluIGRpc3RpbmN0IGNvbW11bml0aWVzCiAg +b3IgZ3JvdXBzLgpAZW5kIHRhYmxlCgpAYyBtYW46LlJTCk5vdGUgdGhhdCAibCIg +KGZvciBsb2NhbCAvIG5vbi1leHBvcnRhYmxlKSwgIm5yIiAoZm9yIG5vbi1yZXZv +Y2FibGUsCmFuZCAidCIgKGZvciB0cnVzdCkgbWF5IGJlIGZyZWVseSBtaXhlZCBh +bmQgcHJlZml4ZWQgdG8gInNpZ24iIHRvCmNyZWF0ZSBhIHNpZ25hdHVyZSBvZiBh +bnkgdHlwZSBkZXNpcmVkLgpAYyBtYW46LlJFCgpJZiB0aGUgb3B0aW9uIEBvcHRp +b257LS1vbmx5LXNpZ24tdGV4dC1pZHN9IGlzIHNwZWNpZmllZCwgdGhlbiBhbnkK +bm9uLXRleHQgYmFzZWQgdXNlciBpZHMgKGUuZy4sIHBob3RvIElEcykgd2lsbCBu +b3QgYmUgc2VsZWN0ZWQgZm9yCnNpZ25pbmcuCgpAdGFibGUgQGFzaXMKCiAgQGl0 +ZW0gZGVsc2lnCiAgQG9waW5kZXgga2V5ZWRpdDpkZWxzaWcKICBEZWxldGUgYSBz +aWduYXR1cmUuIE5vdGUgdGhhdCBpdCBpcyBub3QgcG9zc2libGUgdG8gcmV0cmFj +dCBhIHNpZ25hdHVyZSwKICBvbmNlIGl0IGhhcyBiZWVuIHNlbmQgdG8gdGhlIHB1 +YmxpYyAoaS5lLiB0byBhIGtleXNlcnZlcikuICBJbiB0aGF0IGNhc2UKICB5b3Ug +YmV0dGVyIHVzZSBAY29kZXtyZXZzaWd9LgoKICBAaXRlbSByZXZzaWcKICBAb3Bp +bmRleCBrZXllZGl0OnJldnNpZwogIFJldm9rZSBhIHNpZ25hdHVyZS4gRm9yIGV2 +ZXJ5IHNpZ25hdHVyZSB3aGljaCBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkKICBvbmUg +b2YgdGhlIHNlY3JldCBrZXlzLCBHbnVQRyBhc2tzIHdoZXRoZXIgYSByZXZvY2F0 +aW9uIGNlcnRpZmljYXRlCiAgc2hvdWxkIGJlIGdlbmVyYXRlZC4KCiAgQGl0ZW0g +Y2hlY2sKICBAb3BpbmRleCBrZXllZGl0OmNoZWNrCiAgQ2hlY2sgdGhlIHNpZ25h +dHVyZXMgb24gYWxsIHNlbGVjdGVkIHVzZXIgSURzLiAgV2l0aCB0aGUgZXh0cmEK +ICBvcHRpb24gQGNvZGV7c2VsZnNpZ30gb25seSBzZWxmLXNpZ25hdHVyZXMgYXJl +IHNob3duLgoKICBAaXRlbSBhZGR1aWQKICBAb3BpbmRleCBrZXllZGl0OmFkZHVp +ZAogIENyZWF0ZSBhbiBhZGRpdGlvbmFsIHVzZXIgSUQuCgogIEBpdGVtIGFkZHBo +b3RvCiAgQG9waW5kZXgga2V5ZWRpdDphZGRwaG90bwogIENyZWF0ZSBhIHBob3Rv +Z3JhcGhpYyB1c2VyIElELiBUaGlzIHdpbGwgcHJvbXB0IGZvciBhIEpQRUcgZmls +ZSB0aGF0CiAgd2lsbCBiZSBlbWJlZGRlZCBpbnRvIHRoZSB1c2VyIElELiBOb3Rl +IHRoYXQgYSB2ZXJ5IGxhcmdlIEpQRUcgd2lsbCBtYWtlCiAgZm9yIGEgdmVyeSBs +YXJnZSBrZXkuIEFsc28gbm90ZSB0aGF0IHNvbWUgcHJvZ3JhbXMgd2lsbCBkaXNw +bGF5IHlvdXIKICBKUEVHIHVuY2hhbmdlZCAoR251UEcpLCBhbmQgc29tZSBwcm9n +cmFtcyB3aWxsIHNjYWxlIGl0IHRvIGZpdCBpbiBhCiAgZGlhbG9nIGJveCAoUEdQ +KS4KCiAgQGl0ZW0gc2hvd3Bob3RvCiAgQG9waW5kZXgga2V5ZWRpdDpzaG93cGhv +dG8KICBEaXNwbGF5IHRoZSBzZWxlY3RlZCBwaG90b2dyYXBoaWMgdXNlciBJRC4K +CiAgQGl0ZW0gZGVsdWlkCiAgQG9waW5kZXgga2V5ZWRpdDpkZWx1aWQKICBEZWxl +dGUgYSB1c2VyIElEIG9yIHBob3RvZ3JhcGhpYyB1c2VyIElELiAgTm90ZSB0aGF0 +IGl0IGlzIG5vdAogIHBvc3NpYmxlIHRvIHJldHJhY3QgYSB1c2VyIGlkLCBvbmNl +IGl0IGhhcyBiZWVuIHNlbmQgdG8gdGhlIHB1YmxpYwogIChpLmUuIHRvIGEga2V5 +c2VydmVyKS4gIEluIHRoYXQgY2FzZSB5b3UgYmV0dGVyIHVzZSBAY29kZXtyZXZ1 +aWR9LgoKICBAaXRlbSByZXZ1aWQKICBAb3BpbmRleCBrZXllZGl0OnJldnVpZAog +IFJldm9rZSBhIHVzZXIgSUQgb3IgcGhvdG9ncmFwaGljIHVzZXIgSUQuCgogIEBp +dGVtIHByaW1hcnkKICBAb3BpbmRleCBrZXllZGl0OnByaW1hcnkKICBGbGFnIHRo +ZSBjdXJyZW50IHVzZXIgaWQgYXMgdGhlIHByaW1hcnkgb25lLCByZW1vdmVzIHRo +ZSBwcmltYXJ5IHVzZXIKICBpZCBmbGFnIGZyb20gYWxsIG90aGVyIHVzZXIgaWRz +IGFuZCBzZXRzIHRoZSB0aW1lc3RhbXAgb2YgYWxsIGFmZmVjdGVkCiAgc2VsZi1z +aWduYXR1cmVzIG9uZSBzZWNvbmQgYWhlYWQuIE5vdGUgdGhhdCBzZXR0aW5nIGEg +cGhvdG8gdXNlciBJRAogIGFzIHByaW1hcnkgbWFrZXMgaXQgcHJpbWFyeSBvdmVy +IG90aGVyIHBob3RvIHVzZXIgSURzLCBhbmQgc2V0dGluZyBhCiAgcmVndWxhciB1 +c2VyIElEIGFzIHByaW1hcnkgbWFrZXMgaXQgcHJpbWFyeSBvdmVyIG90aGVyIHJl +Z3VsYXIgdXNlcgogIElEcy4KCiAgQGl0ZW0ga2V5c2VydmVyCiAgQG9waW5kZXgg +a2V5ZWRpdDprZXlzZXJ2ZXIKICBTZXQgYSBwcmVmZXJyZWQga2V5c2VydmVyIGZv +ciB0aGUgc3BlY2lmaWVkIHVzZXIgSUQocykuIFRoaXMgYWxsb3dzCiAgb3RoZXIg +dXNlcnMgdG8ga25vdyB3aGVyZSB5b3UgcHJlZmVyIHRoZXkgZ2V0IHlvdXIga2V5 +IGZyb20uIFNlZQogIEBvcHRpb257LS1rZXlzZXJ2ZXItb3B0aW9ucyBob25vci1r +ZXlzZXJ2ZXItdXJsfSBmb3IgbW9yZSBvbiBob3cgdGhpcwogIHdvcmtzLiAgU2V0 +dGluZyBhIHZhbHVlIG9mICJub25lIiByZW1vdmVzIGFuIGV4aXN0aW5nIHByZWZl +cnJlZAogIGtleXNlcnZlci4KCiAgQGl0ZW0gbm90YXRpb24KICBAb3BpbmRleCBr +ZXllZGl0Om5vdGF0aW9uCiAgU2V0IGEgbmFtZT12YWx1ZSBub3RhdGlvbiBmb3Ig +dGhlIHNwZWNpZmllZCB1c2VyIElEKHMpLiBTZWUKICBAb3B0aW9uey0tY2VydC1u +b3RhdGlvbn0gZm9yIG1vcmUgb24gaG93IHRoaXMgd29ya3MuIFNldHRpbmcgYSB2 +YWx1ZSBvZgogICJub25lIiByZW1vdmVzIGFsbCBub3RhdGlvbnMsIHNldHRpbmcg +YSBub3RhdGlvbiBwcmVmaXhlZCB3aXRoIGEgbWludXMKICBzaWduICgtKSByZW1v +dmVzIHRoYXQgbm90YXRpb24sIGFuZCBzZXR0aW5nIGEgbm90YXRpb24gbmFtZSAo +d2l0aG91dCB0aGUKICA9dmFsdWUpIHByZWZpeGVkIHdpdGggYSBtaW51cyBzaWdu +IHJlbW92ZXMgYWxsIG5vdGF0aW9ucyB3aXRoIHRoYXQgbmFtZS4KCiAgQGl0ZW0g +cHJlZgogIEBvcGluZGV4IGtleWVkaXQ6cHJlZgogIExpc3QgcHJlZmVyZW5jZXMg +ZnJvbSB0aGUgc2VsZWN0ZWQgdXNlciBJRC4gVGhpcyBzaG93cyB0aGUgYWN0dWFs +CiAgcHJlZmVyZW5jZXMsIHdpdGhvdXQgaW5jbHVkaW5nIGFueSBpbXBsaWVkIHBy +ZWZlcmVuY2VzLgoKICBAaXRlbSBzaG93cHJlZgogIEBvcGluZGV4IGtleWVkaXQ6 +c2hvd3ByZWYKICBNb3JlIHZlcmJvc2UgcHJlZmVyZW5jZXMgbGlzdGluZyBmb3Ig +dGhlIHNlbGVjdGVkIHVzZXIgSUQuIFRoaXMgc2hvd3MKICB0aGUgcHJlZmVyZW5j +ZXMgaW4gZWZmZWN0IGJ5IGluY2x1ZGluZyB0aGUgaW1wbGllZCBwcmVmZXJlbmNl +cyBvZiAzREVTCiAgKGNpcGhlciksIFNIQS0xIChkaWdlc3QpLCBhbmQgVW5jb21w +cmVzc2VkIChjb21wcmVzc2lvbikgaWYgdGhleSBhcmUKICBub3QgYWxyZWFkeSBp +bmNsdWRlZCBpbiB0aGUgcHJlZmVyZW5jZSBsaXN0LiBJbiBhZGRpdGlvbiwgdGhl +CiAgcHJlZmVycmVkIGtleXNlcnZlciBhbmQgc2lnbmF0dXJlIG5vdGF0aW9ucyAo +aWYgYW55KSBhcmUgc2hvd24uCgogIEBpdGVtIHNldHByZWYgQGNvZGV7c3RyaW5n +fQogIEBvcGluZGV4IGtleWVkaXQ6c2V0cHJlZgogIFNldCB0aGUgbGlzdCBvZiB1 +c2VyIElEIHByZWZlcmVuY2VzIHRvIEBjb2Rle3N0cmluZ30gZm9yIGFsbCAob3Ig +anVzdAogIHRoZSBzZWxlY3RlZCkgdXNlciBJRHMuIENhbGxpbmcgc2V0cHJlZiB3 +aXRoIG5vIGFyZ3VtZW50cyBzZXRzIHRoZQogIHByZWZlcmVuY2UgbGlzdCB0byB0 +aGUgZGVmYXVsdCAoZWl0aGVyIGJ1aWx0LWluIG9yIHNldCB2aWEKICBAb3B0aW9u +ey0tZGVmYXVsdC1wcmVmZXJlbmNlLWxpc3R9KSwgYW5kIGNhbGxpbmcgc2V0cHJl +ZiB3aXRoICJub25lIgogIGFzIHRoZSBhcmd1bWVudCBzZXRzIGFuIGVtcHR5IHBy +ZWZlcmVuY2UgbGlzdC4gVXNlIEBjb21tYW5ke0BncGduYW1lCiAgLS12ZXJzaW9u +fSB0byBnZXQgYSBsaXN0IG9mIGF2YWlsYWJsZSBhbGdvcml0aG1zLiBOb3RlIHRo +YXQgd2hpbGUgeW91CiAgY2FuIGNoYW5nZSB0aGUgcHJlZmVyZW5jZXMgb24gYW4g +YXR0cmlidXRlIHVzZXIgSUQgKGFrYSAicGhvdG8gSUQiKSwKICBHbnVQRyBkb2Vz +IG5vdCBzZWxlY3Qga2V5cyB2aWEgYXR0cmlidXRlIHVzZXIgSURzIHNvIHRoZXNl +IHByZWZlcmVuY2VzCiAgd2lsbCBub3QgYmUgdXNlZCBieSBHbnVQRy4KCiAgV2hl +biBzZXR0aW5nIHByZWZlcmVuY2VzLCB5b3Ugc2hvdWxkIGxpc3QgdGhlIGFsZ29y +aXRobXMgaW4gdGhlIG9yZGVyCiAgd2hpY2ggeW91J2QgbGlrZSB0byBzZWUgdGhl +bSB1c2VkIGJ5IHNvbWVvbmUgZWxzZSB3aGVuIGVuY3J5cHRpbmcgYQogIG1lc3Nh +Z2UgdG8geW91ciBrZXkuICBJZiB5b3UgZG9uJ3QgaW5jbHVkZSAzREVTLCBpdCB3 +aWxsIGJlCiAgYXV0b21hdGljYWxseSBhZGRlZCBhdCB0aGUgZW5kLiAgTm90ZSB0 +aGF0IHRoZXJlIGFyZSBtYW55IGZhY3RvcnMgdGhhdAogIGdvIGludG8gY2hvb3Np +bmcgYW4gYWxnb3JpdGhtIChmb3IgZXhhbXBsZSwgeW91ciBrZXkgbWF5IG5vdCBi +ZSB0aGUKICBvbmx5IHJlY2lwaWVudCksIGFuZCBzbyB0aGUgcmVtb3RlIE9wZW5Q +R1AgYXBwbGljYXRpb24gYmVpbmcgdXNlZCB0bwogIHNlbmQgdG8geW91IG1heSBv +ciBtYXkgbm90IGZvbGxvdyB5b3VyIGV4YWN0IGNob3NlbiBvcmRlciBmb3IgYSBn +aXZlbgogIG1lc3NhZ2UuICBJdCB3aWxsLCBob3dldmVyLCBvbmx5IGNob29zZSBh +biBhbGdvcml0aG0gdGhhdCBpcyBwcmVzZW50CiAgb24gdGhlIHByZWZlcmVuY2Ug +bGlzdCBvZiBldmVyeSByZWNpcGllbnQga2V5LiAgU2VlIGFsc28gdGhlCiAgSU5U +RVJPUEVSQUJJTElUWSBXSVRIIE9USEVSIE9QRU5QR1AgUFJPR1JBTVMgc2VjdGlv +biBiZWxvdy4KCiAgQGl0ZW0gYWRka2V5CiAgQG9waW5kZXgga2V5ZWRpdDphZGRr +ZXkKICBBZGQgYSBzdWJrZXkgdG8gdGhpcyBrZXkuCgogIEBpdGVtIGFkZGNhcmRr +ZXkKICBAb3BpbmRleCBrZXllZGl0OmFkZGNhcmRrZXkKICBHZW5lcmF0ZSBhIHN1 +YmtleSBvbiBhIGNhcmQgYW5kIGFkZCBpdCB0byB0aGlzIGtleS4KCiAgQGl0ZW0g +a2V5dG9jYXJkCiAgQG9waW5kZXgga2V5ZWRpdDprZXl0b2NhcmQKICBUcmFuc2Zl +ciB0aGUgc2VsZWN0ZWQgc2VjcmV0IHN1YmtleSAob3IgdGhlIHByaW1hcnkga2V5 +IGlmIG5vIHN1YmtleQogIGhhcyBiZWVuIHNlbGVjdGVkKSB0byBhIHNtYXJ0Y2Fy +ZC4gVGhlIHNlY3JldCBrZXkgaW4gdGhlIGtleXJpbmcgd2lsbAogIGJlIHJlcGxh +Y2VkIGJ5IGEgc3R1YiBpZiB0aGUga2V5IGNvdWxkIGJlIHN0b3JlZCBzdWNjZXNz +ZnVsbHkgb24gdGhlCiAgY2FyZCBhbmQgeW91IHVzZSB0aGUgc2F2ZSBjb21tYW5k +IGxhdGVyLiBPbmx5IGNlcnRhaW4ga2V5IHR5cGVzIG1heSBiZQogIHRyYW5zZmVy +cmVkIHRvIHRoZSBjYXJkLiBBIHN1YiBtZW51IGFsbG93cyB5b3UgdG8gc2VsZWN0 +IG9uIHdoYXQgY2FyZAogIHRvIHN0b3JlIHRoZSBrZXkuIE5vdGUgdGhhdCBpdCBp +cyBub3QgcG9zc2libGUgdG8gZ2V0IHRoYXQga2V5IGJhY2sKICBmcm9tIHRoZSBj +YXJkIC0gaWYgdGhlIGNhcmQgZ2V0cyBicm9rZW4geW91ciBzZWNyZXQga2V5IHdp +bGwgYmUgbG9zdAogIHVubGVzcyB5b3UgaGF2ZSBhIGJhY2t1cCBzb21ld2hlcmUu +CgogIEBpdGVtIGJrdXB0b2NhcmQgQGNvZGV7ZmlsZX0KICBAb3BpbmRleCBrZXll +ZGl0OmJrdXB0b2NhcmQKICBSZXN0b3JlIHRoZSBnaXZlbiBmaWxlIHRvIGEgY2Fy +ZC4gVGhpcyBjb21tYW5kIG1heSBiZSB1c2VkIHRvIHJlc3RvcmUgYQogIGJhY2t1 +cCBrZXkgKGFzIGdlbmVyYXRlZCBkdXJpbmcgY2FyZCBpbml0aWFsaXphdGlvbikg +dG8gYSBuZXcgY2FyZC4gSW4KICBhbG1vc3QgYWxsIGNhc2VzIHRoaXMgd2lsbCBi +ZSB0aGUgZW5jcnlwdGlvbiBrZXkuIFlvdSBzaG91bGQgdXNlIHRoaXMKICBjb21t +YW5kIG9ubHkgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBwdWJsaWMga2V5IGFuZCBt +YWtlIHN1cmUgdGhhdCB0aGUKICBmaWxlIGdpdmVuIGFzIGFyZ3VtZW50IGlzIGlu +ZGVlZCB0aGUgYmFja3VwIHRvIHJlc3RvcmUuIFlvdSBzaG91bGQgdGhlbgogIHNl +bGVjdCAyIHRvIHJlc3RvcmUgYXMgZW5jcnlwdGlvbiBrZXkuICBZb3Ugd2lsbCBm +aXJzdCBiZSBhc2tlZCB0byBlbnRlcgogIHRoZSBwYXNzcGhyYXNlIG9mIHRoZSBi +YWNrdXAga2V5IGFuZCB0aGVuIGZvciB0aGUgQWRtaW4gUElOIG9mIHRoZSBjYXJk +LgoKICBAaXRlbSBkZWxrZXkKICBAb3BpbmRleCBrZXllZGl0OmRlbGtleQogIFJl +bW92ZSBhIHN1YmtleSAoc2Vjb25kYXJ5IGtleSkuIE5vdGUgdGhhdCBpdCBpcyBu +b3QgcG9zc2libGUgdG8gcmV0cmFjdAogIGEgc3Via2V5LCBvbmNlIGl0IGhhcyBi +ZWVuIHNlbmQgdG8gdGhlIHB1YmxpYyAoaS5lLiB0byBhIGtleXNlcnZlcikuICBJ +bgogIHRoYXQgY2FzZSB5b3UgYmV0dGVyIHVzZSBAY29kZXtyZXZrZXl9LgoKICBA +aXRlbSByZXZrZXkKICBAb3BpbmRleCBrZXllZGl0OnJldmtleQogIFJldm9rZSBh +IHN1YmtleS4KCiAgQGl0ZW0gZXhwaXJlCiAgQG9waW5kZXgga2V5ZWRpdDpleHBp +cmUKICBDaGFuZ2UgdGhlIGtleSBvciBzdWJrZXkgZXhwaXJhdGlvbiB0aW1lLiBJ +ZiBhIHN1YmtleSBpcyBzZWxlY3RlZCwgdGhlCiAgZXhwaXJhdGlvbiB0aW1lIG9m +IHRoaXMgc3Via2V5IHdpbGwgYmUgY2hhbmdlZC4gV2l0aCBubyBzZWxlY3Rpb24s +IHRoZQogIGtleSBleHBpcmF0aW9uIG9mIHRoZSBwcmltYXJ5IGtleSBpcyBjaGFu +Z2VkLgoKICBAaXRlbSB0cnVzdAogIEBvcGluZGV4IGtleWVkaXQ6dHJ1c3QKICBD +aGFuZ2UgdGhlIG93bmVyIHRydXN0IHZhbHVlIGZvciB0aGUga2V5LiBUaGlzIHVw +ZGF0ZXMgdGhlIHRydXN0LWRiCiAgaW1tZWRpYXRlbHkgYW5kIG5vIHNhdmUgaXMg +cmVxdWlyZWQuCgogIEBpdGVtIGRpc2FibGUKICBAaXRlbXggZW5hYmxlCiAgQG9w +aW5kZXgga2V5ZWRpdDpkaXNhYmxlCiAgQG9waW5kZXgga2V5ZWRpdDplbmFibGUK +ICBEaXNhYmxlIG9yIGVuYWJsZSBhbiBlbnRpcmUga2V5LiBBIGRpc2FibGVkIGtl +eSBjYW4gbm90IG5vcm1hbGx5IGJlCiAgdXNlZCBmb3IgZW5jcnlwdGlvbi4KCiAg +QGl0ZW0gYWRkcmV2b2tlcgogIEBvcGluZGV4IGtleWVkaXQ6YWRkcmV2b2tlcgog +IEFkZCBhIGRlc2lnbmF0ZWQgcmV2b2tlciB0byB0aGUga2V5LiBUaGlzIHRha2Vz +IG9uZSBvcHRpb25hbCBhcmd1bWVudDoKICAic2Vuc2l0aXZlIi4gSWYgYSBkZXNp +Z25hdGVkIHJldm9rZXIgaXMgbWFya2VkIGFzIHNlbnNpdGl2ZSwgaXQgd2lsbAog +IG5vdCBiZSBleHBvcnRlZCBieSBkZWZhdWx0IChzZWUgZXhwb3J0LW9wdGlvbnMp +LgoKICBAaXRlbSBwYXNzd2QKICBAb3BpbmRleCBrZXllZGl0OnBhc3N3ZAogIENo +YW5nZSB0aGUgcGFzc3BocmFzZSBvZiB0aGUgc2VjcmV0IGtleS4KCiAgQGl0ZW0g +dG9nZ2xlCiAgQG9waW5kZXgga2V5ZWRpdDp0b2dnbGUKICBUaGlzIGlzIGR1bW15 +IGNvbW1hbmQgd2hpY2ggZXhpc3RzIG9ubHkgZm9yIGJhY2t3YXJkIGNvbXBhdGli +aWxpdHkuCgogIEBpdGVtIGNsZWFuCiAgQG9waW5kZXgga2V5ZWRpdDpjbGVhbgog +IENvbXBhY3QgKGJ5IHJlbW92aW5nIGFsbCBzaWduYXR1cmVzIGV4Y2VwdCB0aGUg +c2VsZnNpZykgYW55IHVzZXIgSUQKICB0aGF0IGlzIG5vIGxvbmdlciB1c2FibGUg +KGUuZy4gcmV2b2tlZCwgb3IgZXhwaXJlZCkuIFRoZW4sIHJlbW92ZSBhbnkKICBz +aWduYXR1cmVzIHRoYXQgYXJlIG5vdCB1c2FibGUgYnkgdGhlIHRydXN0IGNhbGN1 +bGF0aW9ucy4KICBTcGVjaWZpY2FsbHksIHRoaXMgcmVtb3ZlcyBhbnkgc2lnbmF0 +dXJlIHRoYXQgZG9lcyBub3QgdmFsaWRhdGUsIGFueQogIHNpZ25hdHVyZSB0aGF0 +IGlzIHN1cGVyc2VkZWQgYnkgYSBsYXRlciBzaWduYXR1cmUsIHJldm9rZWQgc2ln +bmF0dXJlcywKICBhbmQgc2lnbmF0dXJlcyBpc3N1ZWQgYnkga2V5cyB0aGF0IGFy +ZSBub3QgcHJlc2VudCBvbiB0aGUga2V5cmluZy4KCiAgQGl0ZW0gbWluaW1pemUK +ICBAb3BpbmRleCBrZXllZGl0Om1pbmltaXplCiAgTWFrZSB0aGUga2V5IGFzIHNt +YWxsIGFzIHBvc3NpYmxlLiBUaGlzIHJlbW92ZXMgYWxsIHNpZ25hdHVyZXMgZnJv +bQogIGVhY2ggdXNlciBJRCBleGNlcHQgZm9yIHRoZSBtb3N0IHJlY2VudCBzZWxm +LXNpZ25hdHVyZS4KCiAgQGl0ZW0gY3Jvc3MtY2VydGlmeQogIEBvcGluZGV4IGtl +eWVkaXQ6Y3Jvc3MtY2VydGlmeQogIEFkZCBjcm9zcy1jZXJ0aWZpY2F0aW9uIHNp +Z25hdHVyZXMgdG8gc2lnbmluZyBzdWJrZXlzIHRoYXQgbWF5IG5vdAogIGN1cnJl +bnRseSBoYXZlIHRoZW0uIENyb3NzLWNlcnRpZmljYXRpb24gc2lnbmF0dXJlcyBw +cm90ZWN0IGFnYWluc3QgYQogIHN1YnRsZSBhdHRhY2sgYWdhaW5zdCBzaWduaW5n +IHN1YmtleXMuIFNlZQogIEBvcHRpb257LS1yZXF1aXJlLWNyb3NzLWNlcnRpZmlj +YXRpb259LiAgQWxsIG5ldyBrZXlzIGdlbmVyYXRlZCBoYXZlCiAgdGhpcyBzaWdu +YXR1cmUgYnkgZGVmYXVsdCwgc28gdGhpcyBvcHRpb24gaXMgb25seSB1c2VmdWwg +dG8gYnJpbmcKICBvbGRlciBrZXlzIHVwIHRvIGRhdGUuCgogIEBpdGVtIHNhdmUK +ICBAb3BpbmRleCBrZXllZGl0OnNhdmUKICBTYXZlIGFsbCBjaGFuZ2VzIHRvIHRo +ZSBrZXkgcmluZ3MgYW5kIHF1aXQuCgogIEBpdGVtIHF1aXQKICBAb3BpbmRleCBr +ZXllZGl0OnF1aXQKICBRdWl0IHRoZSBwcm9ncmFtIHdpdGhvdXQgdXBkYXRpbmcg +dGhlCiAga2V5IHJpbmdzLgpAZW5kIHRhYmxlCgpAYyBtYW46LlJTClRoZSBsaXN0 +aW5nIHNob3dzIHlvdSB0aGUga2V5IHdpdGggaXRzIHNlY29uZGFyeSBrZXlzIGFu +ZCBhbGwgdXNlcgppZHMuICBUaGUgcHJpbWFyeSB1c2VyIGlkIGlzIGluZGljYXRl +ZCBieSBhIGRvdCwgYW5kIHNlbGVjdGVkIGtleXMgb3IKdXNlciBpZHMgYXJlIGlu +ZGljYXRlZCBieSBhbiBhc3Rlcmlzay4gIFRoZSB0cnVzdAp2YWx1ZSBpcyBkaXNw +bGF5ZWQgd2l0aCB0aGUgcHJpbWFyeSBrZXk6IHRoZSBmaXJzdCBpcyB0aGUgYXNz +aWduZWQgb3duZXIKdHJ1c3QgYW5kIHRoZSBzZWNvbmQgaXMgdGhlIGNhbGN1bGF0 +ZWQgdHJ1c3QgdmFsdWUuIExldHRlcnMgYXJlIHVzZWQgZm9yCnRoZSB2YWx1ZXM6 +CkBjIG1hbjouUkUKCkB0YWJsZSBAYXNpcwoKICBAaXRlbSAtCiAgTm8gb3duZXJ0 +cnVzdCBhc3NpZ25lZCAvIG5vdCB5ZXQgY2FsY3VsYXRlZC4KCiAgQGl0ZW0gZQog +IFRydXN0CiAgY2FsY3VsYXRpb24gaGFzIGZhaWxlZDsgcHJvYmFibHkgZHVlIHRv +IGFuIGV4cGlyZWQga2V5LgoKICBAaXRlbSBxCiAgTm90IGVub3VnaCBpbmZvcm1h +dGlvbiBmb3IgY2FsY3VsYXRpb24uCgogIEBpdGVtIG4KICBOZXZlciB0cnVzdCB0 +aGlzIGtleS4KCiAgQGl0ZW0gbQogIE1hcmdpbmFsbHkgdHJ1c3RlZC4KCiAgQGl0 +ZW0gZgogIEZ1bGx5IHRydXN0ZWQuCgogIEBpdGVtIHUKICBVbHRpbWF0ZWx5IHRy +dXN0ZWQuCgpAZW5kIHRhYmxlCkBjICoqKioqKioqIEVuZCBFZGl0LWtleSBPcHRp +b25zICoqKioqKioqKioKCkBpdGVtIC0tc2lnbi1rZXkgQGNvZGV7bmFtZX0KQG9w +aW5kZXggc2lnbi1rZXkKU2lnbnMgYSBwdWJsaWMga2V5IHdpdGggeW91ciBzZWNy +ZXQga2V5LiBUaGlzIGlzIGEgc2hvcnRjdXQgdmVyc2lvbiBvZgp0aGUgc3ViY29t +bWFuZCAic2lnbiIgZnJvbSBAb3B0aW9uey0tZWRpdH0uCgpAaXRlbSAtLWxzaWdu +LWtleSBAY29kZXtuYW1lfQpAb3BpbmRleCBsc2lnbi1rZXkKU2lnbnMgYSBwdWJs +aWMga2V5IHdpdGggeW91ciBzZWNyZXQga2V5IGJ1dCBtYXJrcyBpdCBhcwpub24t +ZXhwb3J0YWJsZS4gVGhpcyBpcyBhIHNob3J0Y3V0IHZlcnNpb24gb2YgdGhlIHN1 +YmNvbW1hbmQgImxzaWduIgpmcm9tIEBvcHRpb257LS1lZGl0LWtleX0uCgpAaXRl +bSAtLXF1aWNrLXNpZ24ta2V5IEBjb2Rle2Zwcn0gW0Bjb2Rle25hbWVzfV0KQGl0 +ZW14IC0tcXVpY2stbHNpZ24ta2V5IEBjb2Rle2Zwcn0gW0Bjb2Rle25hbWVzfV0K +QG9waW5kZXggcXVpY2stc2lnbi1rZXkKQG9waW5kZXggcXVpY2stbHNpZ24ta2V5 +CkRpcmVjdGx5IHNpZ24gYSBrZXkgZnJvbSB0aGUgcGFzc3BocmFzZSB3aXRob3V0 +IGFueSBmdXJ0aGVyIHVzZXIKaW50ZXJhY3Rpb24uICBUaGUgQGNvZGV7ZnByfSBt +dXN0IGJlIHRoZSB2ZXJpZmllZCBwcmltYXJ5IGZpbmdlcnByaW50Cm9mIGEga2V5 +IGluIHRoZSBsb2NhbCBrZXlyaW5nLiBJZiBubyBAY29kZXtuYW1lc30gYXJlIGdp +dmVuLCBhbGwKdXNlZnVsIHVzZXIgaWRzIGFyZSBzaWduZWQ7IHdpdGggZ2l2ZW4g +W0Bjb2Rle25hbWVzfV0gb25seSB1c2VmdWwgdXNlcgppZHMgbWF0Y2hpbmcgb25l +IG9mIHRoZXNlcyBuYW1lcyBhcmUgc2lnbmVkLiAgVGhlIGNvbW1hbmQKQG9wdGlv +bnstLXF1aWNrLWxzaWduLWtleX0gbWFya3MgdGhlIHNpZ25hdHVyZXMgYXMgbm9u +LWV4cG9ydGFibGUuICBJZgpzdWNoIGEgbm9uLWV4cG9ydGFibGUgc2lnbmF0dXJl +IGFscmVhZHkgZXhpc3RzIHRoZQpAb3B0aW9uey0tcXVpY2stc2lnbi1rZXl9IHR1 +cm5zIGl0IGludG8gYSBleHBvcnRhYmxlIHNpZ25hdHVyZS4KClRoaXMgY29tbWFu +ZCB1c2VzIHJlYXNvbmFibGUgZGVmYXVsdHMgYW5kIHRodXMgZG9lcyBub3QgcHJv +dmlkZSB0aGUKZnVsbCBmbGV4aWJpbGl0eSBvZiB0aGUgInNpZ24iIHN1YmNvbW1h +bmQgZnJvbSBAb3B0aW9uey0tZWRpdC1rZXl9LgpJdHMgaW50ZW5kZWQgdXNlIGlz +IHRvIGhlbHAgdW5hdHRlbmRlZCBrZXkgc2lnbmluZyBieSB1dGlsaXppbmcgYSBs +aXN0Cm9mIHZlcmlmaWVkIGZpbmdlcnByaW50cy4KCkBpdGVtIC0tcXVpY2stYWRk +dWlkICBAdmFye3VzZXItaWR9IEB2YXJ7bmV3LXVzZXItaWR9CkBvcGluZGV4IHF1 +aWNrLWFkZHVpZApUaGlzIGNvbW1hbmQgYWRkcyBhIG5ldyB1c2VyIGlkIHRvIGFu +IGV4aXN0aW5nIGtleS4gIEluIGNvbnRyYXN0IHRvCnRoZSBpbnRlcmFjdGl2ZSBz +dWItY29tbWFuZCBAY29kZXthZGR1aWR9IG9mIEBvcHRpb257LS1lZGl0LWtleX0g +dGhlCkB2YXJ7bmV3LXVzZXItaWR9IGlzIGFkZGVkIHZlcmJhdGltIHdpdGggb25s +eSBsZWFkaW5nIGFuZCB0cmFpbGluZwp3aGl0ZSBzcGFjZSByZW1vdmVkLCBpdCBp +cyBleHBlY3RlZCB0byBiZSBVVEYtOCBlbmNvZGVkLCBhbmQgbm8gY2hlY2tzCm9u +IGl0cyBmb3JtIGFyZSBhcHBsaWVkLgoKQGl0ZW0gLS1wYXNzd2QgQHZhcnt1c2Vy +X2lkfQpAb3BpbmRleCBwYXNzd2QKQ2hhbmdlIHRoZSBwYXNzcGhyYXNlIG9mIHRo +ZSBzZWNyZXQga2V5IGJlbG9uZ2luZyB0byB0aGUgY2VydGlmaWNhdGUKc3BlY2lm +aWVkIGFzIEB2YXJ7dXNlcl9pZH0uICBUaGlzIGlzIGEgc2hvcnRjdXQgZm9yIHRo +ZSBzdWItY29tbWFuZApAY29kZXtwYXNzd2R9IG9mIHRoZSBlZGl0IGtleSBtZW51 +LgoKQGVuZCB0YWJsZQoKCkBjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq +KioqKioqKioqKioqKioKQGMgKioqKioqKioqKioqKioqICAgICAgICAgICAgKioq +KioqKioqKioqKioqKgpAYyAqKioqKioqKioqKioqKiogIE9QVElPTlMgICAqKioq +KioqKioqKioqKioqCkBjICoqKioqKioqKioqKioqKiAgICAgICAgICAgICoqKioq +KioqKioqKioqKioKQGMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq +KioqKioqKioqKgpAbWFuc2VjdCBvcHRpb25zCkBub2RlIEdQRyBPcHRpb25zCkBz +ZWN0aW9uIE9wdGlvbiBTdW1tYXJ5CgpAY29tbWFuZHtAZ3BnbmFtZX0gZmVhdHVy +ZXMgYSBidW5jaCBvZiBvcHRpb25zIHRvIGNvbnRyb2wgdGhlIGV4YWN0CmJlaGF2 +aW91ciBhbmQgdG8gY2hhbmdlIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uCgpA +bWVudQoqIEdQRyBDb25maWd1cmF0aW9uIE9wdGlvbnM6OiAgIEhvdyB0byBjaGFu +Z2UgdGhlIGNvbmZpZ3VyYXRpb24uCiogR1BHIEtleSByZWxhdGVkIE9wdGlvbnM6 +OiAgICAgS2V5IHJlbGF0ZWQgb3B0aW9ucy4KKiBHUEcgSW5wdXQgYW5kIE91dHB1 +dDo6ICAgICAgICBJbnB1dCBhbmQgT3V0cHV0LgoqIE9wZW5QR1AgT3B0aW9uczo6 +ICAgICAgICAgICAgIE9wZW5QR1AgcHJvdG9jb2wgc3BlY2lmaWMgb3B0aW9ucy4K +KiBDb21wbGlhbmNlIE9wdGlvbnM6OiAgICAgICAgICBDb21wbGlhbmNlIG9wdGlv +bnMuCiogR1BHIEVzb3RlcmljIE9wdGlvbnM6OiAgICAgICAgRG9pbmcgdGhpbmdz +IG9uZSB1c3VhbGx5IGRvbid0IHdhbnQgdG8gZG8uCiogRGVwcmVjYXRlZCBPcHRp +b25zOjogICAgICAgICAgRGVwcmVjYXRlZCBvcHRpb25zLgpAZW5kIG1lbnUKCkxv +bmcgb3B0aW9ucyBjYW4gYmUgcHV0IGluIGFuIG9wdGlvbnMgZmlsZSAoZGVmYXVs +dAoifi8uZ251cGcvZ3BnLmNvbmYiKS4gU2hvcnQgb3B0aW9uIG5hbWVzIHdpbGwg +bm90IHdvcmsgLSBmb3IgZXhhbXBsZSwKImFybW9yIiBpcyBhIHZhbGlkIG9wdGlv +biBmb3IgdGhlIG9wdGlvbnMgZmlsZSwgd2hpbGUgImEiIGlzIG5vdC4gRG8gbm90 +CndyaXRlIHRoZSAyIGRhc2hlcywgYnV0IHNpbXBseSB0aGUgbmFtZSBvZiB0aGUg +b3B0aW9uIGFuZCBhbnkgcmVxdWlyZWQKYXJndW1lbnRzLiBMaW5lcyB3aXRoIGEg +aGFzaCAoJyMnKSBhcyB0aGUgZmlyc3Qgbm9uLXdoaXRlLXNwYWNlCmNoYXJhY3Rl +ciBhcmUgaWdub3JlZC4gQ29tbWFuZHMgbWF5IGJlIHB1dCBpbiB0aGlzIGZpbGUg +dG9vLCBidXQgdGhhdCBpcwpub3QgZ2VuZXJhbGx5IHVzZWZ1bCBhcyB0aGUgY29t +bWFuZCB3aWxsIGV4ZWN1dGUgYXV0b21hdGljYWxseSB3aXRoCmV2ZXJ5IGV4ZWN1 +dGlvbiBvZiBncGcuCgpQbGVhc2UgcmVtZW1iZXIgdGhhdCBvcHRpb24gcGFyc2lu +ZyBzdG9wcyBhcyBzb29uIGFzIGEgbm9uLW9wdGlvbiBpcwplbmNvdW50ZXJlZCwg +eW91IGNhbiBleHBsaWNpdGx5IHN0b3AgcGFyc2luZyBieSB1c2luZyB0aGUgc3Bl +Y2lhbCBvcHRpb24KQG9wdGlvbnstLX0uCgpAYyAqKioqKioqKioqKioqKioqKioq +KioqKioqKioqKioqKioqKioqKioqKioqCkBjICoqKioqKioqICBDT05GSUdVUkFU +SU9OIE9QVElPTlMgICoqKioqKioqKioKQGMgKioqKioqKioqKioqKioqKioqKioq +KioqKioqKioqKioqKioqKioqKioqKgpAbm9kZSBHUEcgQ29uZmlndXJhdGlvbiBP +cHRpb25zCkBzdWJzZWN0aW9uIEhvdyB0byBjaGFuZ2UgdGhlIGNvbmZpZ3VyYXRp +b24KClRoZXNlIG9wdGlvbnMgYXJlIHVzZWQgdG8gY2hhbmdlIHRoZSBjb25maWd1 +cmF0aW9uIGFuZCBhcmUgdXN1YWxseSBmb3VuZAppbiB0aGUgb3B0aW9uIGZpbGUu +CgpAdGFibGUgQGdudXBndGFib3B0CgpAaXRlbSAtLWRlZmF1bHQta2V5IEB2YXJ7 +bmFtZX0KQG9waW5kZXggZGVmYXVsdC1rZXkKVXNlIEB2YXJ7bmFtZX0gYXMgdGhl +IGRlZmF1bHQga2V5IHRvIHNpZ24gd2l0aC4gSWYgdGhpcyBvcHRpb24gaXMgbm90 +CnVzZWQsIHRoZSBkZWZhdWx0IGtleSBpcyB0aGUgZmlyc3Qga2V5IGZvdW5kIGlu +IHRoZSBzZWNyZXQga2V5cmluZy4KTm90ZSB0aGF0IEBvcHRpb257LXV9IG9yIEBv +cHRpb257LS1sb2NhbC11c2VyfSBvdmVycmlkZXMgdGhpcyBvcHRpb24uClRoaXMg +b3B0aW9uIG1heSBiZSBnaXZlbiBtdWx0aXBsZSB0aW1lcy4gIEluIHRoaXMgY2Fz +ZSwgdGhlIGxhc3Qga2V5CmZvciB3aGljaCBhIHNlY3JldCBrZXkgaXMgYXZhaWxh +YmxlIGlzIHVzZWQuICBJZiB0aGVyZSBpcyBubyBzZWNyZXQKa2V5IGF2YWlsYWJs +ZSBmb3IgYW55IG9mIHRoZSBzcGVjaWZpZWQgdmFsdWVzLCBHbnVQRyB3aWxsIG5v +dCBlbWl0IGFuCmVycm9yIG1lc3NhZ2UgYnV0IGNvbnRpbnVlIGFzIGlmIHRoaXMg +b3B0aW9uIHdhc24ndCBnaXZlbi4KCkBpdGVtIC0tZGVmYXVsdC1yZWNpcGllbnQg +QHZhcntuYW1lfQpAb3BpbmRleCBkZWZhdWx0LXJlY2lwaWVudApVc2UgQHZhcntu +YW1lfSBhcyBkZWZhdWx0IHJlY2lwaWVudCBpZiBvcHRpb24gQG9wdGlvbnstLXJl +Y2lwaWVudH0gaXMKbm90IHVzZWQgYW5kIGRvbid0IGFzayBpZiB0aGlzIGlzIGEg +dmFsaWQgb25lLiBAdmFye25hbWV9IG11c3QgYmUKbm9uLWVtcHR5LgoKQGl0ZW0g +LS1kZWZhdWx0LXJlY2lwaWVudC1zZWxmCkBvcGluZGV4IGRlZmF1bHQtcmVjaXBp +ZW50LXNlbGYKVXNlIHRoZSBkZWZhdWx0IGtleSBhcyBkZWZhdWx0IHJlY2lwaWVu +dCBpZiBvcHRpb24gQG9wdGlvbnstLXJlY2lwaWVudH0gaXMgbm90CnVzZWQgYW5k +IGRvbid0IGFzayBpZiB0aGlzIGlzIGEgdmFsaWQgb25lLiBUaGUgZGVmYXVsdCBr +ZXkgaXMgdGhlIGZpcnN0Cm9uZSBmcm9tIHRoZSBzZWNyZXQga2V5cmluZyBvciB0 +aGUgb25lIHNldCB3aXRoIEBvcHRpb257LS1kZWZhdWx0LWtleX0uCgpAaXRlbSAt +LW5vLWRlZmF1bHQtcmVjaXBpZW50CkBvcGluZGV4IG5vLWRlZmF1bHQtcmVjaXBp +ZW50ClJlc2V0IEBvcHRpb257LS1kZWZhdWx0LXJlY2lwaWVudH0gYW5kIEBvcHRp +b257LS1kZWZhdWx0LXJlY2lwaWVudC1zZWxmfS4KCkBpdGVtIC12LCAtLXZlcmJv +c2UKQG9waW5kZXggdmVyYm9zZQpHaXZlIG1vcmUgaW5mb3JtYXRpb24gZHVyaW5n +IHByb2Nlc3NpbmcuIElmIHVzZWQKdHdpY2UsIHRoZSBpbnB1dCBkYXRhIGlzIGxp +c3RlZCBpbiBkZXRhaWwuCgpAaXRlbSAtLW5vLXZlcmJvc2UKQG9waW5kZXggbm8t +dmVyYm9zZQpSZXNldCB2ZXJib3NlIGxldmVsIHRvIDAuCgpAaXRlbSAtcSwgLS1x +dWlldApAb3BpbmRleCBxdWlldApUcnkgdG8gYmUgYXMgcXVpZXQgYXMgcG9zc2li +bGUuCgpAaXRlbSAtLWJhdGNoCkBpdGVteCAtLW5vLWJhdGNoCkBvcGluZGV4IGJh +dGNoCkBvcGluZGV4IG5vLWJhdGNoClVzZSBiYXRjaCBtb2RlLiAgTmV2ZXIgYXNr +LCBkbyBub3QgYWxsb3cgaW50ZXJhY3RpdmUgY29tbWFuZHMuCkBvcHRpb257LS1u +by1iYXRjaH0gZGlzYWJsZXMgdGhpcyBvcHRpb24uICBOb3RlIHRoYXQgZXZlbiB3 +aXRoIGEKZmlsZW5hbWUgZ2l2ZW4gb24gdGhlIGNvbW1hbmQgbGluZSwgZ3BnIG1p +Z2h0IHN0aWxsIG5lZWQgdG8gcmVhZCBmcm9tClNURElOIChpbiBwYXJ0aWN1bGFy +IGlmIGdwZyBmaWd1cmVzIHRoYXQgdGhlIGlucHV0IGlzIGEKZGV0YWNoZWQgc2ln +bmF0dXJlIGFuZCBubyBkYXRhIGZpbGUgaGFzIGJlZW4gc3BlY2lmaWVkKS4gIFRo +dXMgaWYgeW91CmRvIG5vdCB3YW50IHRvIGZlZWQgZGF0YSB2aWEgU1RESU4sIHlv +dSBzaG91bGQgY29ubmVjdCBTVERJTiB0bwpAZmlsZXsvZGV2L251bGx9LgoKQGl0 +ZW0gLS1uby10dHkKQG9waW5kZXggbm8tdHR5Ck1ha2Ugc3VyZSB0aGF0IHRoZSBU +VFkgKHRlcm1pbmFsKSBpcyBuZXZlciB1c2VkIGZvciBhbnkgb3V0cHV0LgpUaGlz +IG9wdGlvbiBpcyBuZWVkZWQgaW4gc29tZSBjYXNlcyBiZWNhdXNlIEdudVBHIHNv +bWV0aW1lcyBwcmludHMKd2FybmluZ3MgdG8gdGhlIFRUWSBldmVuIGlmIEBvcHRp +b257LS1iYXRjaH0gaXMgdXNlZC4KCkBpdGVtIC0teWVzCkBvcGluZGV4IHllcwpB +c3N1bWUgInllcyIgb24gbW9zdCBxdWVzdGlvbnMuCgpAaXRlbSAtLW5vCkBvcGlu +ZGV4IG5vCkFzc3VtZSAibm8iIG9uIG1vc3QgcXVlc3Rpb25zLgoKCkBpdGVtIC0t +bGlzdC1vcHRpb25zIEBjb2Rle3BhcmFtZXRlcnN9CkBvcGluZGV4IGxpc3Qtb3B0 +aW9ucwpUaGlzIGlzIGEgc3BhY2Ugb3IgY29tbWEgZGVsaW1pdGVkIHN0cmluZyB0 +aGF0IGdpdmVzIG9wdGlvbnMgdXNlZCB3aGVuCmxpc3Rpbmcga2V5cyBhbmQgc2ln +bmF0dXJlcyAodGhhdCBpcywgQG9wdGlvbnstLWxpc3Qta2V5c30sCkBvcHRpb257 +LS1saXN0LXNpZ3N9LCBAb3B0aW9uey0tbGlzdC1wdWJsaWMta2V5c30sCkBvcHRp +b257LS1saXN0LXNlY3JldC1rZXlzfSwgYW5kIHRoZSBAb3B0aW9uey0tZWRpdC1r +ZXl9IGZ1bmN0aW9ucykuCk9wdGlvbnMgY2FuIGJlIHByZXBlbmRlZCB3aXRoIGEg +QG9wdGlvbntuby19IChhZnRlciB0aGUgdHdvIGRhc2hlcykgdG8KZ2l2ZSB0aGUg +b3Bwb3NpdGUgbWVhbmluZy4gIFRoZSBvcHRpb25zIGFyZToKCkB0YWJsZSBAYXNp +cwoKICBAaXRlbSBzaG93LXBob3RvcwogIEBvcGluZGV4IGxpc3Qtb3B0aW9uczpz +aG93LXBob3RvcwogIENhdXNlcyBAb3B0aW9uey0tbGlzdC1rZXlzfSwgQG9wdGlv +bnstLWxpc3Qtc2lnc30sCiAgQG9wdGlvbnstLWxpc3QtcHVibGljLWtleXN9LCBh +bmQgQG9wdGlvbnstLWxpc3Qtc2VjcmV0LWtleXN9IHRvCiAgZGlzcGxheSBhbnkg +cGhvdG8gSURzIGF0dGFjaGVkIHRvIHRoZSBrZXkuICBEZWZhdWx0cyB0byBuby4g +U2VlIGFsc28KICBAb3B0aW9uey0tcGhvdG8tdmlld2VyfS4gIERvZXMgbm90IHdv +cmsgd2l0aCBAb3B0aW9uey0td2l0aC1jb2xvbnN9OgogIHNlZSBAb3B0aW9uey0t +YXR0cmlidXRlLWZkfSBmb3IgdGhlIGFwcHJvcHJpYXRlIHdheSB0byBnZXQgcGhv +dG8gZGF0YQogIGZvciBzY3JpcHRzIGFuZCBvdGhlciBmcm9udGVuZHMuCgogIEBp +dGVtIHNob3ctdXNhZ2UKICBAb3BpbmRleCBsaXN0LW9wdGlvbnM6c2hvdy11c2Fn +ZQogIFNob3cgdXNhZ2UgaW5mb3JtYXRpb24gZm9yIGtleXMgYW5kIHN1YmtleXMg +aW4gdGhlIHN0YW5kYXJkIGtleQogIGxpc3RpbmcuICBUaGlzIGlzIGEgbGlzdCBv +ZiBsZXR0ZXJzIGluZGljYXRpbmcgdGhlIGFsbG93ZWQgdXNhZ2UgZm9yIGEKICBr +ZXkgKEBjb2Rle0V9PWVuY3J5cHRpb24sIEBjb2Rle1N9PXNpZ25pbmcsIEBjb2Rl +e0N9PWNlcnRpZmljYXRpb24sCiAgQGNvZGV7QX09YXV0aGVudGljYXRpb24pLiAg +RGVmYXVsdHMgdG8gbm8uCgogIEBpdGVtIHNob3ctcG9saWN5LXVybHMKICBAb3Bp +bmRleCBsaXN0LW9wdGlvbnM6c2hvdy1wb2xpY3ktdXJscwogIFNob3cgcG9saWN5 +IFVSTHMgaW4gdGhlIEBvcHRpb257LS1saXN0LXNpZ3N9IG9yIEBvcHRpb257LS1j +aGVjay1zaWdzfQogIGxpc3RpbmdzLiAgRGVmYXVsdHMgdG8gbm8uCgogIEBpdGVt +IHNob3ctbm90YXRpb25zCiAgQGl0ZW14IHNob3ctc3RkLW5vdGF0aW9ucwogIEBp +dGVteCBzaG93LXVzZXItbm90YXRpb25zCiAgQG9waW5kZXggbGlzdC1vcHRpb25z +OnNob3ctbm90YXRpb25zCiAgQG9waW5kZXggbGlzdC1vcHRpb25zOnNob3ctc3Rk +LW5vdGF0aW9ucwogIEBvcGluZGV4IGxpc3Qtb3B0aW9uczpzaG93LXVzZXItbm90 +YXRpb25zCiAgU2hvdyBhbGwsIElFVEYgc3RhbmRhcmQsIG9yIHVzZXItZGVmaW5l +ZCBzaWduYXR1cmUgbm90YXRpb25zIGluIHRoZQogIEBvcHRpb257LS1saXN0LXNp +Z3N9IG9yIEBvcHRpb257LS1jaGVjay1zaWdzfSBsaXN0aW5ncy4gRGVmYXVsdHMg +dG8gbm8uCgogIEBpdGVtIHNob3cta2V5c2VydmVyLXVybHMKICBAb3BpbmRleCBs +aXN0LW9wdGlvbnM6c2hvdy1rZXlzZXJ2ZXItdXJscwogIFNob3cgYW55IHByZWZl +cnJlZCBrZXlzZXJ2ZXIgVVJMIGluIHRoZSBAb3B0aW9uey0tbGlzdC1zaWdzfSBv +cgogIEBvcHRpb257LS1jaGVjay1zaWdzfSBsaXN0aW5ncy4gRGVmYXVsdHMgdG8g +bm8uCgogIEBpdGVtIHNob3ctdWlkLXZhbGlkaXR5CiAgQG9waW5kZXggbGlzdC1v +cHRpb25zOnNob3ctdWlkLXZhbGlkaXR5CiAgRGlzcGxheSB0aGUgY2FsY3VsYXRl +ZCB2YWxpZGl0eSBvZiB1c2VyIElEcyBkdXJpbmcga2V5IGxpc3RpbmdzLgogIERl +ZmF1bHRzIHRvIHllcy4KCiAgQGl0ZW0gc2hvdy11bnVzYWJsZS11aWRzCiAgQG9w +aW5kZXggbGlzdC1vcHRpb25zOnNob3ctdW51c2FibGUtdWlkcwogIFNob3cgcmV2 +b2tlZCBhbmQgZXhwaXJlZCB1c2VyIElEcyBpbiBrZXkgbGlzdGluZ3MuIERlZmF1 +bHRzIHRvIG5vLgoKICBAaXRlbSBzaG93LXVudXNhYmxlLXN1YmtleXMKICBAb3Bp +bmRleCBsaXN0LW9wdGlvbnM6c2hvdy11bnVzYWJsZS1zdWJrZXlzCiAgU2hvdyBy +ZXZva2VkIGFuZCBleHBpcmVkIHN1YmtleXMgaW4ga2V5IGxpc3RpbmdzLiBEZWZh +dWx0cyB0byBuby4KCiAgQGl0ZW0gc2hvdy1rZXlyaW5nCiAgQG9waW5kZXggbGlz +dC1vcHRpb25zOnNob3cta2V5cmluZwogIERpc3BsYXkgdGhlIGtleXJpbmcgbmFt +ZSBhdCB0aGUgaGVhZCBvZiBrZXkgbGlzdGluZ3MgdG8gc2hvdyB3aGljaAogIGtl +eXJpbmcgYSBnaXZlbiBrZXkgcmVzaWRlcyBvbi4gRGVmYXVsdHMgdG8gbm8uCgog +IEBpdGVtIHNob3ctc2lnLWV4cGlyZQogIEBvcGluZGV4IGxpc3Qtb3B0aW9uczpz +aG93LXNpZy1leHBpcmUKICBTaG93IHNpZ25hdHVyZSBleHBpcmF0aW9uIGRhdGVz +IChpZiBhbnkpIGR1cmluZyBAb3B0aW9uey0tbGlzdC1zaWdzfSBvcgogIEBvcHRp +b257LS1jaGVjay1zaWdzfSBsaXN0aW5ncy4gRGVmYXVsdHMgdG8gbm8uCgogIEBp +dGVtIHNob3ctc2lnLXN1YnBhY2tldHMKICBAb3BpbmRleCBsaXN0LW9wdGlvbnM6 +c2hvdy1zaWctc3VicGFja2V0cwogIEluY2x1ZGUgc2lnbmF0dXJlIHN1YnBhY2tl +dHMgaW4gdGhlIGtleSBsaXN0aW5nLiBUaGlzIG9wdGlvbiBjYW4gdGFrZSBhbgog +IG9wdGlvbmFsIGFyZ3VtZW50IGxpc3Qgb2YgdGhlIHN1YnBhY2tldHMgdG8gbGlz +dC4gSWYgbm8gYXJndW1lbnQgaXMKICBwYXNzZWQsIGxpc3QgYWxsIHN1YnBhY2tl +dHMuIERlZmF1bHRzIHRvIG5vLiBUaGlzIG9wdGlvbiBpcyBvbmx5CiAgbWVhbmlu +Z2Z1bCB3aGVuIHVzaW5nIEBvcHRpb257LS13aXRoLWNvbG9uc30gYWxvbmcgd2l0 +aAogIEBvcHRpb257LS1saXN0LXNpZ3N9IG9yIEBvcHRpb257LS1jaGVjay1zaWdz +fS4KCkBlbmQgdGFibGUKCkBpdGVtIC0tdmVyaWZ5LW9wdGlvbnMgQGNvZGV7cGFy +YW1ldGVyc30KQG9waW5kZXggdmVyaWZ5LW9wdGlvbnMKVGhpcyBpcyBhIHNwYWNl +IG9yIGNvbW1hIGRlbGltaXRlZCBzdHJpbmcgdGhhdCBnaXZlcyBvcHRpb25zIHVz +ZWQgd2hlbgp2ZXJpZnlpbmcgc2lnbmF0dXJlcy4gT3B0aW9ucyBjYW4gYmUgcHJl +cGVuZGVkIHdpdGggYSBgbm8tJyB0byBnaXZlCnRoZSBvcHBvc2l0ZSBtZWFuaW5n +LiBUaGUgb3B0aW9ucyBhcmU6CgpAdGFibGUgQGFzaXMKCiAgQGl0ZW0gc2hvdy1w +aG90b3MKICBAb3BpbmRleCB2ZXJpZnktb3B0aW9uczpzaG93LXBob3RvcwogIERp +c3BsYXkgYW55IHBob3RvIElEcyBwcmVzZW50IG9uIHRoZSBrZXkgdGhhdCBpc3N1 +ZWQgdGhlIHNpZ25hdHVyZS4KICBEZWZhdWx0cyB0byBuby4gU2VlIGFsc28gQG9w +dGlvbnstLXBob3RvLXZpZXdlcn0uCgogIEBpdGVtIHNob3ctcG9saWN5LXVybHMK +ICBAb3BpbmRleCB2ZXJpZnktb3B0aW9uczpzaG93LXBvbGljeS11cmxzCiAgU2hv +dyBwb2xpY3kgVVJMcyBpbiB0aGUgc2lnbmF0dXJlIGJlaW5nIHZlcmlmaWVkLiBE +ZWZhdWx0cyB0byB5ZXMuCgogIEBpdGVtIHNob3ctbm90YXRpb25zCiAgQGl0ZW14 +IHNob3ctc3RkLW5vdGF0aW9ucwogIEBpdGVteCBzaG93LXVzZXItbm90YXRpb25z +CiAgQG9waW5kZXggdmVyaWZ5LW9wdGlvbnM6c2hvdy1ub3RhdGlvbnMKICBAb3Bp +bmRleCB2ZXJpZnktb3B0aW9uczpzaG93LXN0ZC1ub3RhdGlvbnMKICBAb3BpbmRl +eCB2ZXJpZnktb3B0aW9uczpzaG93LXVzZXItbm90YXRpb25zCiAgU2hvdyBhbGws +IElFVEYgc3RhbmRhcmQsIG9yIHVzZXItZGVmaW5lZCBzaWduYXR1cmUgbm90YXRp +b25zIGluIHRoZQogIHNpZ25hdHVyZSBiZWluZyB2ZXJpZmllZC4gRGVmYXVsdHMg +dG8gSUVURiBzdGFuZGFyZC4KCiAgQGl0ZW0gc2hvdy1rZXlzZXJ2ZXItdXJscwog +IEBvcGluZGV4IHZlcmlmeS1vcHRpb25zOnNob3cta2V5c2VydmVyLXVybHMKICBT +aG93IGFueSBwcmVmZXJyZWQga2V5c2VydmVyIFVSTCBpbiB0aGUgc2lnbmF0dXJl +IGJlaW5nIHZlcmlmaWVkLgogIERlZmF1bHRzIHRvIHllcy4KCiAgQGl0ZW0gc2hv +dy11aWQtdmFsaWRpdHkKICBAb3BpbmRleCB2ZXJpZnktb3B0aW9uczpzaG93LXVp +ZC12YWxpZGl0eQogIERpc3BsYXkgdGhlIGNhbGN1bGF0ZWQgdmFsaWRpdHkgb2Yg +dGhlIHVzZXIgSURzIG9uIHRoZSBrZXkgdGhhdCBpc3N1ZWQKICB0aGUgc2lnbmF0 +dXJlLiBEZWZhdWx0cyB0byB5ZXMuCgogIEBpdGVtIHNob3ctdW51c2FibGUtdWlk +cwogIEBvcGluZGV4IHZlcmlmeS1vcHRpb25zOnNob3ctdW51c2FibGUtdWlkcwog +IFNob3cgcmV2b2tlZCBhbmQgZXhwaXJlZCB1c2VyIElEcyBkdXJpbmcgc2lnbmF0 +dXJlIHZlcmlmaWNhdGlvbi4KICBEZWZhdWx0cyB0byBuby4KCiAgQGl0ZW0gc2hv +dy1wcmltYXJ5LXVpZC1vbmx5CiAgQG9waW5kZXggdmVyaWZ5LW9wdGlvbnM6c2hv +dy1wcmltYXJ5LXVpZC1vbmx5CiAgU2hvdyBvbmx5IHRoZSBwcmltYXJ5IHVzZXIg +SUQgZHVyaW5nIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24uICBUaGF0IGlzCiAgYWxs +IHRoZSBBS0EgbGluZXMgYXMgd2VsbCBhcyBwaG90byBJZHMgYXJlIG5vdCBzaG93 +biB3aXRoIHRoZSBzaWduYXR1cmUKICB2ZXJpZmljYXRpb24gc3RhdHVzLgoKICBA +aXRlbSBwa2EtbG9va3VwcwogIEBvcGluZGV4IHZlcmlmeS1vcHRpb25zOnBrYS1s +b29rdXBzCiAgRW5hYmxlIFBLQSBsb29rdXBzIHRvIHZlcmlmeSBzZW5kZXIgYWRk +cmVzc2VzLiBOb3RlIHRoYXQgUEtBIGlzIGJhc2VkCiAgb24gRE5TLCBhbmQgc28g +ZW5hYmxpbmcgdGhpcyBvcHRpb24gbWF5IGRpc2Nsb3NlIGluZm9ybWF0aW9uIG9u +IHdoZW4KICBhbmQgd2hhdCBzaWduYXR1cmVzIGFyZSB2ZXJpZmllZCBvciB0byB3 +aG9tIGRhdGEgaXMgZW5jcnlwdGVkLiBUaGlzCiAgaXMgc2ltaWxhciB0byB0aGUg +IndlYiBidWciIGRlc2NyaWJlZCBmb3IgdGhlIGF1dG8ta2V5LXJldHJpZXZlCiAg +ZmVhdHVyZS4KCiAgQGl0ZW0gcGthLXRydXN0LWluY3JlYXNlCiAgQG9waW5kZXgg +dmVyaWZ5LW9wdGlvbnM6cGthLXRydXN0LWluY3JlYXNlCiAgUmFpc2UgdGhlIHRy +dXN0IGluIGEgc2lnbmF0dXJlIHRvIGZ1bGwgaWYgdGhlIHNpZ25hdHVyZSBwYXNz +ZXMgUEtBCiAgdmFsaWRhdGlvbi4gVGhpcyBvcHRpb24gaXMgb25seSBtZWFuaW5n +ZnVsIGlmIHBrYS1sb29rdXBzIGlzIHNldC4KQGVuZCB0YWJsZQoKQGl0ZW0gLS1l +bmFibGUtbGFyZ2UtcnNhCkBpdGVteCAtLWRpc2FibGUtbGFyZ2UtcnNhCkBvcGlu +ZGV4IGVuYWJsZS1sYXJnZS1yc2EKQG9waW5kZXggZGlzYWJsZS1sYXJnZS1yc2EK +V2l0aCAtLWdlbi1rZXkgYW5kIC0tYmF0Y2gsIGVuYWJsZSB0aGUgY3JlYXRpb24g +b2YgbGFyZ2VyIFJTQSBzZWNyZXQKa2V5cyB0aGFuIGlzIGdlbmVyYWxseSByZWNv +bW1lbmRlZCAodXAgdG8gODE5MiBiaXRzKS4gIFRoZXNlIGxhcmdlCmtleXMgYXJl +IG1vcmUgZXhwZW5zaXZlIHRvIHVzZSwgYW5kIHRoZWlyIHNpZ25hdHVyZXMgYW5k +CmNlcnRpZmljYXRpb25zIGFyZSBhbHNvIGxhcmdlci4KCkBpdGVtIC0tZW5hYmxl +LWRzYTIKQGl0ZW14IC0tZGlzYWJsZS1kc2EyCkBvcGluZGV4IGVuYWJsZS1kc2Ey +CkBvcGluZGV4IGRpc2FibGUtZHNhMgpFbmFibGUgaGFzaCB0cnVuY2F0aW9uIGZv +ciBhbGwgRFNBIGtleXMgZXZlbiBmb3Igb2xkIERTQSBLZXlzIHVwIHRvCjEwMjQg +Yml0LiAgVGhpcyBpcyBhbHNvIHRoZSBkZWZhdWx0IHdpdGggQG9wdGlvbnstLW9w +ZW5wZ3B9LiAgTm90ZQp0aGF0IG9sZGVyIHZlcnNpb25zIG9mIEdudVBHIGFsc28g +cmVxdWlyZWQgdGhpcyBmbGFnIHRvIGFsbG93IHRoZQpnZW5lcmF0aW9uIG9mIERT +QSBsYXJnZXIgdGhhbiAxMDI0IGJpdC4KCkBpdGVtIC0tcGhvdG8tdmlld2VyIEBj +b2Rle3N0cmluZ30KQG9waW5kZXggcGhvdG8tdmlld2VyClRoaXMgaXMgdGhlIGNv +bW1hbmQgbGluZSB0aGF0IHNob3VsZCBiZSBydW4gdG8gdmlldyBhIHBob3RvIElE +LiAiJWkiCndpbGwgYmUgZXhwYW5kZWQgdG8gYSBmaWxlbmFtZSBjb250YWluaW5n +IHRoZSBwaG90by4gIiVJIiBkb2VzIHRoZQpzYW1lLCBleGNlcHQgdGhlIGZpbGUg +d2lsbCBub3QgYmUgZGVsZXRlZCBvbmNlIHRoZSB2aWV3ZXIgZXhpdHMuCk90aGVy +IGZsYWdzIGFyZSAiJWsiIGZvciB0aGUga2V5IElELCAiJUsiIGZvciB0aGUgbG9u +ZyBrZXkgSUQsICIlZiIKZm9yIHRoZSBrZXkgZmluZ2VycHJpbnQsICIldCIgZm9y +IHRoZSBleHRlbnNpb24gb2YgdGhlIGltYWdlIHR5cGUKKGUuZy4gImpwZyIpLCAi +JVQiIGZvciB0aGUgTUlNRSB0eXBlIG9mIHRoZSBpbWFnZSAoZS5nLiAiaW1hZ2Uv +anBlZyIpLAoiJXYiIGZvciB0aGUgc2luZ2xlLWNoYXJhY3RlciBjYWxjdWxhdGVk +IHZhbGlkaXR5IG9mIHRoZSBpbWFnZSBiZWluZwp2aWV3ZWQgKGUuZy4gImYiKSwg +IiVWIiBmb3IgdGhlIGNhbGN1bGF0ZWQgdmFsaWRpdHkgYXMgYSBzdHJpbmcgKGUu +Zy4KImZ1bGwiKSwgIiVVIiBmb3IgYSBiYXNlMzIgZW5jb2RlZCBoYXNoIG9mIHRo +ZSB1c2VyIElELAphbmQgIiUlIiBmb3IgYW4gYWN0dWFsIHBlcmNlbnQgc2lnbi4g +SWYgbmVpdGhlciAlaSBvciAlSSBhcmUgcHJlc2VudCwKdGhlbiB0aGUgcGhvdG8g +d2lsbCBiZSBzdXBwbGllZCB0byB0aGUgdmlld2VyIG9uIHN0YW5kYXJkIGlucHV0 +LgoKVGhlIGRlZmF1bHQgdmlld2VyIGlzICJ4bG9hZGltYWdlIC1mb3JrIC1xdWll +dCAtdGl0bGUgJ0tleUlEIDB4JWsnClNURElOIi4gTm90ZSB0aGF0IGlmIHlvdXIg +aW1hZ2Ugdmlld2VyIHByb2dyYW0gaXMgbm90IHNlY3VyZSwgdGhlbgpleGVjdXRp +bmcgaXQgZnJvbSBHbnVQRyBkb2VzIG5vdCBtYWtlIGl0IHNlY3VyZS4KCkBpdGVt +IC0tZXhlYy1wYXRoIEBjb2Rle3N0cmluZ30KQG9waW5kZXggZXhlYy1wYXRoClNl +dHMgYSBsaXN0IG9mIGRpcmVjdG9yaWVzIHRvIHNlYXJjaCBmb3IgcGhvdG8gdmll +d2VycyBhbmQga2V5c2VydmVyCmhlbHBlcnMuIElmIG5vdCBwcm92aWRlZCwga2V5 +c2VydmVyIGhlbHBlcnMgdXNlIHRoZSBjb21waWxlZC1pbgpkZWZhdWx0IGRpcmVj +dG9yeSwgYW5kIHBob3RvIHZpZXdlcnMgdXNlIHRoZSAkUEFUSCBlbnZpcm9ubWVu +dAp2YXJpYWJsZS4KTm90ZSwgdGhhdCBvbiBXMzIgc3lzdGVtIHRoaXMgdmFsdWUg +aXMgaWdub3JlZCB3aGVuIHNlYXJjaGluZyBmb3IKa2V5c2VydmVyIGhlbHBlcnMu +CgpAaXRlbSAtLWtleXJpbmcgQGNvZGV7ZmlsZX0KQG9waW5kZXgga2V5cmluZwpB +ZGQgQGNvZGV7ZmlsZX0gdG8gdGhlIGN1cnJlbnQgbGlzdCBvZiBrZXlyaW5ncy4g +SWYgQGNvZGV7ZmlsZX0gYmVnaW5zCndpdGggYSB0aWxkZSBhbmQgYSBzbGFzaCwg +dGhlc2UgYXJlIHJlcGxhY2VkIGJ5IHRoZSAkSE9NRSBkaXJlY3RvcnkuIElmCnRo +ZSBmaWxlbmFtZSBkb2VzIG5vdCBjb250YWluIGEgc2xhc2gsIGl0IGlzIGFzc3Vt +ZWQgdG8gYmUgaW4gdGhlIEdudVBHCmhvbWUgZGlyZWN0b3J5ICgifi8uZ251cGci +IGlmIEBvcHRpb257LS1ob21lZGlyfSBvciAkR05VUEdIT01FIGlzIG5vdAp1c2Vk +KS4KCk5vdGUgdGhhdCB0aGlzIGFkZHMgYSBrZXlyaW5nIHRvIHRoZSBjdXJyZW50 +IGxpc3QuIElmIHRoZSBpbnRlbnQgaXMgdG8KdXNlIHRoZSBzcGVjaWZpZWQga2V5 +cmluZyBhbG9uZSwgdXNlIEBvcHRpb257LS1rZXlyaW5nfSBhbG9uZyB3aXRoCkBv +cHRpb257LS1uby1kZWZhdWx0LWtleXJpbmd9LgoKQGl0ZW0gLS1zZWNyZXQta2V5 +cmluZyBAY29kZXtmaWxlfQpAb3BpbmRleCBzZWNyZXQta2V5cmluZwpUaGlzIGlz +IGFuIG9ic29sZXRlIG9wdGlvbiBhbmQgaWdub3JlZC4gIEFsbCBzZWNyZXQga2V5 +cyBhcmUgc3RvcmVkIGluCnRoZSBAZmlsZXtwcml2YXRlLWtleXMtdjEuZH0gZGly +ZWN0b3J5IGJlbG93IHRoZSBHbnVQRyBob21lIGRpcmVjdG9yeS4KCkBpdGVtIC0t +cHJpbWFyeS1rZXlyaW5nIEBjb2Rle2ZpbGV9CkBvcGluZGV4IHByaW1hcnkta2V5 +cmluZwpEZXNpZ25hdGUgQGNvZGV7ZmlsZX0gYXMgdGhlIHByaW1hcnkgcHVibGlj +IGtleXJpbmcuIFRoaXMgbWVhbnMgdGhhdApuZXdseSBpbXBvcnRlZCBrZXlzICh2 +aWEgQG9wdGlvbnstLWltcG9ydH0gb3Iga2V5c2VydmVyCkBvcHRpb257LS1yZWN2 +LWZyb219KSB3aWxsIGdvIHRvIHRoaXMga2V5cmluZy4KCkBpdGVtIC0tdHJ1c3Rk +Yi1uYW1lIEBjb2Rle2ZpbGV9CkBvcGluZGV4IHRydXN0ZGItbmFtZQpVc2UgQGNv +ZGV7ZmlsZX0gaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCB0cnVzdGRiLiBJZiBAY29k +ZXtmaWxlfSBiZWdpbnMKd2l0aCBhIHRpbGRlIGFuZCBhIHNsYXNoLCB0aGVzZSBh +cmUgcmVwbGFjZWQgYnkgdGhlICRIT01FIGRpcmVjdG9yeS4gSWYKdGhlIGZpbGVu +YW1lIGRvZXMgbm90IGNvbnRhaW4gYSBzbGFzaCwgaXQgaXMgYXNzdW1lZCB0byBi +ZSBpbiB0aGUgR251UEcKaG9tZSBkaXJlY3RvcnkgKEBmaWxle34vLmdudXBnfSBp +ZiBAb3B0aW9uey0taG9tZWRpcn0gb3IgJEdOVVBHSE9NRSBpcwpub3QgdXNlZCku +CgpAaW5jbHVkZSBvcHQtaG9tZWRpci50ZXhpCgoKQGl0ZW0gLS1kaXNwbGF5LWNo +YXJzZXQgQGNvZGV7bmFtZX0KQG9waW5kZXggZGlzcGxheS1jaGFyc2V0ClNldCB0 +aGUgbmFtZSBvZiB0aGUgbmF0aXZlIGNoYXJhY3RlciBzZXQuIFRoaXMgaXMgdXNl +ZCB0byBjb252ZXJ0CnNvbWUgaW5mb3JtYXRpb25hbCBzdHJpbmdzIGxpa2UgdXNl +ciBJRHMgdG8gdGhlIHByb3BlciBVVEYtOCBlbmNvZGluZy4KTm90ZSB0aGF0IHRo +aXMgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGUgY2hhcmFjdGVyIHNldCBvZiBk +YXRhIHRvIGJlCmVuY3J5cHRlZCBvciBzaWduZWQ7IEdudVBHIGRvZXMgbm90IHJl +Y29kZSB1c2VyLXN1cHBsaWVkIGRhdGEuIElmCnRoaXMgb3B0aW9uIGlzIG5vdCB1 +c2VkLCB0aGUgZGVmYXVsdCBjaGFyYWN0ZXIgc2V0IGlzIGRldGVybWluZWQgZnJv +bQp0aGUgY3VycmVudCBsb2NhbGUuIEEgdmVyYm9zaXR5IGxldmVsIG9mIDMgc2hv +d3MgdGhlIGNob3NlbiBzZXQuClZhbGlkIHZhbHVlcyBmb3IgQGNvZGV7bmFtZX0g +YXJlOgoKQHRhYmxlIEBhc2lzCgogIEBpdGVtIGlzby04ODU5LTEKICBAb3BpbmRl +eCBkaXNwbGF5LWNoYXJzZXQ6aXNvLTg4NTktMQogIFRoaXMgaXMgdGhlIExhdGlu +IDEgc2V0LgoKICBAaXRlbSBpc28tODg1OS0yCiAgQG9waW5kZXggZGlzcGxheS1j +aGFyc2V0Omlzby04ODU5LTIKICBUaGUgTGF0aW4gMiBzZXQuCgogIEBpdGVtIGlz +by04ODU5LTE1CiAgQG9waW5kZXggZGlzcGxheS1jaGFyc2V0Omlzby04ODU5LTE1 +CiAgVGhpcyBpcyBjdXJyZW50bHkgYW4gYWxpYXMgZm9yCiAgdGhlIExhdGluIDEg +c2V0LgoKICBAaXRlbSBrb2k4LXIKICBAb3BpbmRleCBkaXNwbGF5LWNoYXJzZXQ6 +a29pOC1yCiAgVGhlIHVzdWFsIFJ1c3NpYW4gc2V0IChyZmMxNDg5KS4KCiAgQGl0 +ZW0gdXRmLTgKICBAb3BpbmRleCBkaXNwbGF5LWNoYXJzZXQ6dXRmLTgKICBCeXBh +c3MgYWxsIHRyYW5zbGF0aW9ucyBhbmQgYXNzdW1lCiAgdGhhdCB0aGUgT1MgdXNl +cyBuYXRpdmUgVVRGLTggZW5jb2RpbmcuCkBlbmQgdGFibGUKCkBpdGVtIC0tdXRm +OC1zdHJpbmdzCkBpdGVteCAtLW5vLXV0Zjgtc3RyaW5ncwpAb3BpbmRleCB1dGY4 +LXN0cmluZ3MKQXNzdW1lIHRoYXQgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyBhcmUg +Z2l2ZW4gYXMgVVRGOCBzdHJpbmdzLiBUaGUKZGVmYXVsdCAoQG9wdGlvbnstLW5v +LXV0Zjgtc3RyaW5nc30pIGlzIHRvIGFzc3VtZSB0aGF0IGFyZ3VtZW50cyBhcmUK +ZW5jb2RlZCBpbiB0aGUgY2hhcmFjdGVyIHNldCBhcyBzcGVjaWZpZWQgYnkKQG9w +dGlvbnstLWRpc3BsYXktY2hhcnNldH0uIFRoZXNlIG9wdGlvbnMgYWZmZWN0IGFs +bCBmb2xsb3dpbmcKYXJndW1lbnRzLiBCb3RoIG9wdGlvbnMgbWF5IGJlIHVzZWQg +bXVsdGlwbGUgdGltZXMuCgpAYW5jaG9ye2dwZy1vcHRpb24gLS1vcHRpb25zfQpA +aXRlbSAtLW9wdGlvbnMgQGNvZGV7ZmlsZX0KQG9waW5kZXggb3B0aW9ucwpSZWFk +IG9wdGlvbnMgZnJvbSBAY29kZXtmaWxlfSBhbmQgZG8gbm90IHRyeSB0byByZWFk +IHRoZW0gZnJvbSB0aGUKZGVmYXVsdCBvcHRpb25zIGZpbGUgaW4gdGhlIGhvbWVk +aXIgKHNlZSBAb3B0aW9uey0taG9tZWRpcn0pLiBUaGlzCm9wdGlvbiBpcyBpZ25v +cmVkIGlmIHVzZWQgaW4gYW4gb3B0aW9ucyBmaWxlLgoKQGl0ZW0gLS1uby1vcHRp +b25zCkBvcGluZGV4IG5vLW9wdGlvbnMKU2hvcnRjdXQgZm9yIEBvcHRpb257LS1v +cHRpb25zIC9kZXYvbnVsbH0uIFRoaXMgb3B0aW9uIGlzIGRldGVjdGVkCmJlZm9y +ZSBhbiBhdHRlbXB0IHRvIG9wZW4gYW4gb3B0aW9uIGZpbGUuICBVc2luZyB0aGlz +IG9wdGlvbiB3aWxsIGFsc28KcHJldmVudCB0aGUgY3JlYXRpb24gb2YgYSBAZmls +ZXt+Ly5nbnVwZ30gaG9tZWRpci4KCkBpdGVtIC16IEBjb2Rle259CkBpdGVteCAt +LWNvbXByZXNzLWxldmVsIEBjb2Rle259CkBpdGVteCAtLWJ6aXAyLWNvbXByZXNz +LWxldmVsIEBjb2Rle259CkBvcGluZGV4IGNvbXByZXNzLWxldmVsCkBvcGluZGV4 +IGJ6aXAyLWNvbXByZXNzLWxldmVsClNldCBjb21wcmVzc2lvbiBsZXZlbCB0byBA +Y29kZXtufSBmb3IgdGhlIFpJUCBhbmQgWkxJQiBjb21wcmVzc2lvbgphbGdvcml0 +aG1zLiBUaGUgZGVmYXVsdCBpcyB0byB1c2UgdGhlIGRlZmF1bHQgY29tcHJlc3Np +b24gbGV2ZWwgb2YgemxpYgoobm9ybWFsbHkgNikuIEBvcHRpb257LS1iemlwMi1j +b21wcmVzcy1sZXZlbH0gc2V0cyB0aGUgY29tcHJlc3Npb24gbGV2ZWwKZm9yIHRo +ZSBCWklQMiBjb21wcmVzc2lvbiBhbGdvcml0aG0gKGRlZmF1bHRpbmcgdG8gNiBh +cyB3ZWxsKS4gVGhpcyBpcyBhCmRpZmZlcmVudCBvcHRpb24gZnJvbSBAb3B0aW9u +ey0tY29tcHJlc3MtbGV2ZWx9IHNpbmNlIEJaSVAyIHVzZXMgYQpzaWduaWZpY2Fu +dCBhbW91bnQgb2YgbWVtb3J5IGZvciBlYWNoIGFkZGl0aW9uYWwgY29tcHJlc3Np +b24gbGV2ZWwuCkBvcHRpb257LXp9IHNldHMgYm90aC4gQSB2YWx1ZSBvZiAwIGZv +ciBAY29kZXtufSBkaXNhYmxlcyBjb21wcmVzc2lvbi4KCkBpdGVtIC0tYnppcDIt +ZGVjb21wcmVzcy1sb3dtZW0KQG9waW5kZXggYnppcDItZGVjb21wcmVzcy1sb3dt +ZW0KVXNlIGEgZGlmZmVyZW50IGRlY29tcHJlc3Npb24gbWV0aG9kIGZvciBCWklQ +MiBjb21wcmVzc2VkIGZpbGVzLiBUaGlzCmFsdGVybmF0ZSBtZXRob2QgdXNlcyBh +IGJpdCBtb3JlIHRoYW4gaGFsZiB0aGUgbWVtb3J5LCBidXQgYWxzbyBydW5zCmF0 +IGhhbGYgdGhlIHNwZWVkLiBUaGlzIGlzIHVzZWZ1bCB1bmRlciBleHRyZW1lIGxv +dyBtZW1vcnkKY2lyY3Vtc3RhbmNlcyB3aGVuIHRoZSBmaWxlIHdhcyBvcmlnaW5h +bGx5IGNvbXByZXNzZWQgYXQgYSBoaWdoCkBvcHRpb257LS1iemlwMi1jb21wcmVz +cy1sZXZlbH0uCgoKQGl0ZW0gLS1tYW5nbGUtZG9zLWZpbGVuYW1lcwpAaXRlbXgg +LS1uby1tYW5nbGUtZG9zLWZpbGVuYW1lcwpAb3BpbmRleCBtYW5nbGUtZG9zLWZp +bGVuYW1lcwpAb3BpbmRleCBuby1tYW5nbGUtZG9zLWZpbGVuYW1lcwpPbGRlciB2 +ZXJzaW9uIG9mIFdpbmRvd3MgY2Fubm90IGhhbmRsZSBmaWxlbmFtZXMgd2l0aCBt +b3JlIHRoYW4gb25lCmRvdC4gQG9wdGlvbnstLW1hbmdsZS1kb3MtZmlsZW5hbWVz +fSBjYXVzZXMgR251UEcgdG8gcmVwbGFjZSAocmF0aGVyCnRoYW4gYWRkIHRvKSB0 +aGUgZXh0ZW5zaW9uIG9mIGFuIG91dHB1dCBmaWxlbmFtZSB0byBhdm9pZCB0aGlz +CnByb2JsZW0uIFRoaXMgb3B0aW9uIGlzIG9mZiBieSBkZWZhdWx0IGFuZCBoYXMg +bm8gZWZmZWN0IG9uIG5vbi1XaW5kb3dzCnBsYXRmb3Jtcy4KCkBpdGVtIC0tYXNr +LWNlcnQtbGV2ZWwKQGl0ZW14IC0tbm8tYXNrLWNlcnQtbGV2ZWwKQG9waW5kZXgg +YXNrLWNlcnQtbGV2ZWwKV2hlbiBtYWtpbmcgYSBrZXkgc2lnbmF0dXJlLCBwcm9t +cHQgZm9yIGEgY2VydGlmaWNhdGlvbiBsZXZlbC4gSWYgdGhpcwpvcHRpb24gaXMg +bm90IHNwZWNpZmllZCwgdGhlIGNlcnRpZmljYXRpb24gbGV2ZWwgdXNlZCBpcyBz +ZXQgdmlhCkBvcHRpb257LS1kZWZhdWx0LWNlcnQtbGV2ZWx9LiBTZWUgQG9wdGlv +bnstLWRlZmF1bHQtY2VydC1sZXZlbH0gZm9yCmluZm9ybWF0aW9uIG9uIHRoZSBz +cGVjaWZpYyBsZXZlbHMgYW5kIGhvdyB0aGV5IGFyZQp1c2VkLiBAb3B0aW9uey0t +bm8tYXNrLWNlcnQtbGV2ZWx9IGRpc2FibGVzIHRoaXMgb3B0aW9uLiBUaGlzIG9w +dGlvbgpkZWZhdWx0cyB0byBuby4KCkBpdGVtIC0tZGVmYXVsdC1jZXJ0LWxldmVs +IEBjb2Rle259CkBvcGluZGV4IGRlZmF1bHQtY2VydC1sZXZlbApUaGUgZGVmYXVs +dCB0byB1c2UgZm9yIHRoZSBjaGVjayBsZXZlbCB3aGVuIHNpZ25pbmcgYSBrZXku +CgowIG1lYW5zIHlvdSBtYWtlIG5vIHBhcnRpY3VsYXIgY2xhaW0gYXMgdG8gaG93 +IGNhcmVmdWxseSB5b3UgdmVyaWZpZWQKdGhlIGtleS4KCjEgbWVhbnMgeW91IGJl +bGlldmUgdGhlIGtleSBpcyBvd25lZCBieSB0aGUgcGVyc29uIHdobyBjbGFpbXMg +dG8gb3duCml0IGJ1dCB5b3UgY291bGQgbm90LCBvciBkaWQgbm90IHZlcmlmeSB0 +aGUga2V5IGF0IGFsbC4gVGhpcyBpcwp1c2VmdWwgZm9yIGEgInBlcnNvbmEiIHZl +cmlmaWNhdGlvbiwgd2hlcmUgeW91IHNpZ24gdGhlIGtleSBvZiBhCnBzZXVkb255 +bW91cyB1c2VyLgoKMiBtZWFucyB5b3UgZGlkIGNhc3VhbCB2ZXJpZmljYXRpb24g +b2YgdGhlIGtleS4gRm9yIGV4YW1wbGUsIHRoaXMKY291bGQgbWVhbiB0aGF0IHlv +dSB2ZXJpZmllZCB0aGUga2V5IGZpbmdlcnByaW50IGFuZCBjaGVja2VkIHRoZQp1 +c2VyIElEIG9uIHRoZSBrZXkgYWdhaW5zdCBhIHBob3RvIElELgoKMyBtZWFucyB5 +b3UgZGlkIGV4dGVuc2l2ZSB2ZXJpZmljYXRpb24gb2YgdGhlIGtleS4gRm9yIGV4 +YW1wbGUsIHRoaXMKY291bGQgbWVhbiB0aGF0IHlvdSB2ZXJpZmllZCB0aGUga2V5 +IGZpbmdlcnByaW50IHdpdGggdGhlIG93bmVyIG9mIHRoZQprZXkgaW4gcGVyc29u +LCBhbmQgdGhhdCB5b3UgY2hlY2tlZCwgYnkgbWVhbnMgb2YgYSBoYXJkIHRvIGZv +cmdlCmRvY3VtZW50IHdpdGggYSBwaG90byBJRCAoc3VjaCBhcyBhIHBhc3Nwb3J0 +KSB0aGF0IHRoZSBuYW1lIG9mIHRoZSBrZXkKb3duZXIgbWF0Y2hlcyB0aGUgbmFt +ZSBpbiB0aGUgdXNlciBJRCBvbiB0aGUga2V5LCBhbmQgZmluYWxseSB0aGF0IHlv +dQp2ZXJpZmllZCAoYnkgZXhjaGFuZ2Ugb2YgZW1haWwpIHRoYXQgdGhlIGVtYWls +IGFkZHJlc3Mgb24gdGhlIGtleQpiZWxvbmdzIHRvIHRoZSBrZXkgb3duZXIuCgpO +b3RlIHRoYXQgdGhlIGV4YW1wbGVzIGdpdmVuIGFib3ZlIGZvciBsZXZlbHMgMiBh +bmQgMyBhcmUganVzdCB0aGF0OgpleGFtcGxlcy4gSW4gdGhlIGVuZCwgaXQgaXMg +dXAgdG8geW91IHRvIGRlY2lkZSBqdXN0IHdoYXQgImNhc3VhbCIKYW5kICJleHRl +bnNpdmUiIG1lYW4gdG8geW91LgoKVGhpcyBvcHRpb24gZGVmYXVsdHMgdG8gMCAo +bm8gcGFydGljdWxhciBjbGFpbSkuCgpAaXRlbSAtLW1pbi1jZXJ0LWxldmVsCkBv +cGluZGV4IG1pbi1jZXJ0LWxldmVsCldoZW4gYnVpbGRpbmcgdGhlIHRydXN0IGRh +dGFiYXNlLCB0cmVhdCBhbnkgc2lnbmF0dXJlcyB3aXRoIGEKY2VydGlmaWNhdGlv +biBsZXZlbCBiZWxvdyB0aGlzIGFzIGludmFsaWQuIERlZmF1bHRzIHRvIDIsIHdo +aWNoCmRpc3JlZ2FyZHMgbGV2ZWwgMSBzaWduYXR1cmVzLiBOb3RlIHRoYXQgbGV2 +ZWwgMCAibm8gcGFydGljdWxhcgpjbGFpbSIgc2lnbmF0dXJlcyBhcmUgYWx3YXlz +IGFjY2VwdGVkLgoKQGl0ZW0gLS10cnVzdGVkLWtleSBAY29kZXtsb25nIGtleSBJ +RH0KQG9waW5kZXggdHJ1c3RlZC1rZXkKQXNzdW1lIHRoYXQgdGhlIHNwZWNpZmll +ZCBrZXkgKHdoaWNoIG11c3QgYmUgZ2l2ZW4KYXMgYSBmdWxsIDggYnl0ZSBrZXkg +SUQpIGlzIGFzIHRydXN0d29ydGh5IGFzIG9uZSBvZgp5b3VyIG93biBzZWNyZXQg +a2V5cy4gVGhpcyBvcHRpb24gaXMgdXNlZnVsIGlmIHlvdQpkb24ndCB3YW50IHRv +IGtlZXAgeW91ciBzZWNyZXQga2V5cyAob3Igb25lIG9mIHRoZW0pCm9ubGluZSBi +dXQgc3RpbGwgd2FudCB0byBiZSBhYmxlIHRvIGNoZWNrIHRoZSB2YWxpZGl0eSBv +ZiBhIGdpdmVuCnJlY2lwaWVudCdzIG9yIHNpZ25hdG9yJ3Mga2V5LgoKQGl0ZW0g +LS10cnVzdC1tb2RlbCBAY29kZXtwZ3B8Y2xhc3NpY3x0b2Z1fHRvZnUrcGdwfGRp +cmVjdHxhbHdheXN8YXV0b30KQG9waW5kZXggdHJ1c3QtbW9kZWwKU2V0IHdoYXQg +dHJ1c3QgbW9kZWwgR251UEcgc2hvdWxkIGZvbGxvdy4gVGhlIG1vZGVscyBhcmU6 +CgpAdGFibGUgQGFzaXMKCiAgQGl0ZW0gcGdwCiAgQG9waW5kZXggdHJ1c3QtbW9k +ZTpwZ3AKICBUaGlzIGlzIHRoZSBXZWIgb2YgVHJ1c3QgY29tYmluZWQgd2l0aCB0 +cnVzdCBzaWduYXR1cmVzIGFzIHVzZWQgaW4gUEdQCiAgNS54IGFuZCBsYXRlci4g +VGhpcyBpcyB0aGUgZGVmYXVsdCB0cnVzdCBtb2RlbCB3aGVuIGNyZWF0aW5nIGEg +bmV3CiAgdHJ1c3QgZGF0YWJhc2UuCgogIEBpdGVtIGNsYXNzaWMKICBAb3BpbmRl +eCB0cnVzdC1tb2RlOmNsYXNzaWMKICBUaGlzIGlzIHRoZSBzdGFuZGFyZCBXZWIg +b2YgVHJ1c3QgYXMgaW50cm9kdWNlZCBieSBQR1AgMi4KCiAgQGl0ZW0gdG9mdQog +IEBvcGluZGV4IHRydXN0LW1vZGU6dG9mdQogIEBhbmNob3J7dHJ1c3QtbW9kZWwt +dG9mdX0KICBUT0ZVIHN0YW5kcyBmb3IgVHJ1c3QgT24gRmlyc3QgVXNlLiAgSW4g +dGhpcyB0cnVzdCBtb2RlbCwgdGhlIGZpcnN0CiAgdGltZSBhIGtleSBpcyBzZWVu +LCBpdCBpcyBtZW1vcml6ZWQuICBJZiBsYXRlciBhbm90aGVyIGtleSBpcyBzZWVu +CiAgd2l0aCBhIHVzZXIgaWQgd2l0aCB0aGUgc2FtZSBlbWFpbCBhZGRyZXNzLCBh +IHdhcm5pbmcgaXMgZGlzcGxheWVkCiAgaW5kaWNhdGluZyB0aGF0IHRoZXJlIGlz +IGEgY29uZmxpY3QgYW5kIHRoYXQgdGhlIGtleSBtaWdodCBiZSBhCiAgZm9yZ2Vy +eSBhbmQgYW4gYXR0ZW1wdCBhdCBhIG1hbi1pbi10aGUtbWlkZGxlIGF0dGFjay4K +CiAgQmVjYXVzZSBhIHBvdGVudGlhbCBhdHRhY2tlciBpcyBhYmxlIHRvIGNvbnRy +b2wgdGhlIGVtYWlsIGFkZHJlc3MKICBhbmQgdGhlcmVieSBjaXJjdW12ZW50IHRo +ZSBjb25mbGljdCBkZXRlY3Rpb24gYWxnb3JpdGhtIGJ5IHVzaW5nIGFuCiAgZW1h +aWwgYWRkcmVzcyB0aGF0IGlzIHNpbWlsYXIgaW4gYXBwZWFyYW5jZSB0byBhIHRy +dXN0ZWQgZW1haWwKICBhZGRyZXNzLCB3aGVuZXZlciBhIG1lc3NhZ2UgaXMgdmVy +aWZpZWQsIHN0YXRpc3RpY3MgYWJvdXQgdGhlIG51bWJlcgogIG9mIG1lc3NhZ2Vz +IHNpZ25lZCB3aXRoIHRoZSBrZXkgYXJlIHNob3duLiAgSW4gdGhpcyB3YXksIGEg +dXNlciBjYW4KICBlYXNpbHkgaWRlbnRpZnkgYXR0YWNrcyB1c2luZyBmYWtlIGtl +eXMgZm9yIHJlZ3VsYXIgY29ycmVzcG9uZGVudHMuCgogIFdoZW4gY29tcGFyZWQg +d2l0aCB0aGUgV2ViIG9mIFRydXN0LCBUT0ZVIG9mZmVycyBzaWduaWZpY2FudGx5 +CiAgd2Vha2VyIHNlY3VyaXR5IGd1YXJhbnRlZXMuICBJbiBwYXJ0aWN1bGFyLCBU +T0ZVIG9ubHkgaGVscHMgZW5zdXJlCiAgY29uc2lzdGVuY3kgKHRoYXQgaXMsIHRo +YXQgdGhlIGJpbmRpbmcgYmV0d2VlbiBhIGtleSBhbmQgZW1haWwKICBhZGRyZXNz +IGRvZXNuJ3QgY2hhbmdlKS4gIEEgbWFqb3IgYWR2YW50YWdlIG9mIFRPRlUgaXMg +dGhhdCBpdAogIHJlcXVpcmVzIGxpdHRsZSBtYWludGVuYW5jZSB0byB1c2UgY29y +cmVjdGx5LiAgVG8gdXNlIHRoZSB3ZWIgb2YKICB0cnVzdCBwcm9wZXJseSwgeW91 +IG5lZWQgdG8gYWN0aXZlbHkgc2lnbiBrZXlzIGFuZCBtYXJrIHVzZXJzIGFzCiAg +dHJ1c3RlZCBpbnRyb2R1Y2Vycy4gIFRoaXMgaXMgYSB0aW1lLWNvbnN1bWluZyBw +cm9jZXNzIGFuZCBhbmVjZG90YWwKICBldmlkZW5jZSBzdWdnZXN0cyB0aGF0IGV2 +ZW4gc2VjdXJpdHktY29uc2Npb3VzIHVzZXJzIHJhcmVseSB0YWtlIHRoZQogIHRp +bWUgdG8gZG8gdGhpcyB0aG9yb3VnaGx5IGFuZCBpbnN0ZWFkIHJlbHkgb24gYW4g +YWQtaG9jIFRPRlUKICBwcm9jZXNzLgoKICBJbiB0aGUgVE9GVSBtb2RlbCwgcG9s +aWNpZXMgYXJlIGFzc29jaWF0ZWQgd2l0aCBiaW5kaW5ncyBiZXR3ZWVuCiAga2V5 +cyBhbmQgZW1haWwgYWRkcmVzc2VzICh3aGljaCBhcmUgZXh0cmFjdGVkIGZyb20g +dXNlciBpZHMgYW5kCiAgbm9ybWFsaXplZCkuICBUaGVyZSBhcmUgZml2ZSBwb2xp +Y2llcywgd2hpY2ggY2FuIGJlIHNldCBtYW51YWxseQogIHVzaW5nIHRoZSBAb3B0 +aW9uey0tdG9mdS1wb2xpY3l9IG9wdGlvbi4gIFRoZSBkZWZhdWx0IHBvbGljeSBj +YW4gYmUKICBzZXQgdXNpbmcgdGhlIEBvcHRpb257LS10b2Z1LWRlZmF1bHQtcG9s +aWN5fSBwb2xpY3kuCgogIFRoZSBUT0ZVIHBvbGljaWVzIGFyZTogQGNvZGV7YXV0 +b30sIEBjb2Rle2dvb2R9LCBAY29kZXt1bmtub3dufSwKICBAY29kZXtiYWR9IGFu +ZCBAY29kZXthc2t9LiAgVGhlIEBjb2Rle2F1dG99IHBvbGljeSBpcyB1c2VkIGJ5 +CiAgZGVmYXVsdCAodW5sZXNzIG92ZXJyaWRkZW4gYnkgQG9wdGlvbnstLXRvZnUt +ZGVmYXVsdC1wb2xpY3l9KSBhbmQKICBtYXJrcyBhIGJpbmRpbmcgYXMgbWFyZ2lu +YWxseSB0cnVzdGVkLiAgVGhlIEBjb2Rle2dvb2R9LAogIEBjb2Rle3Vua25vd259 +IGFuZCBAY29kZXtiYWR9IHBvbGljaWVzIG1hcmsgYSBiaW5kaW5nIGFzIGZ1bGx5 +CiAgdHJ1c3RlZCwgYXMgaGF2aW5nIHVua25vd24gdHJ1c3Qgb3IgYXMgaGF2aW5n +IHRydXN0IG5ldmVyLAogIHJlc3BlY3RpdmVseS4gIFRoZSBAY29kZXt1bmtub3du +fSBwb2xpY3kgaXMgdXNlZnVsIGZvciBqdXN0IHVzaW5nCiAgVE9GVSB0byBkZXRl +Y3QgY29uZmxpY3RzLCBidXQgdG8gbmV2ZXIgYXNzaWduIHBvc2l0aXZlIHRydXN0 +IHRvIGEKICBiaW5kaW5nLiAgVGhlIGZpbmFsIHBvbGljeSwgQGNvZGV7YXNrfSBw +cm9tcHRzIHRoZSB1c2VyIHRvIGluZGljYXRlCiAgdGhlIGJpbmRpbmcncyB0cnVz +dC4gIElmIGJhdGNoIG1vZGUgaXMgZW5hYmxlZCAob3IgaW5wdXQgaXMKICBpbmFw +cHJvcHJpYXRlIGluIHRoZSBjb250ZXh0KSwgdGhlbiB0aGUgdXNlciBpcyBub3Qg +cHJvbXB0ZWQgYW5kIHRoZQogIEBjb2Rle3VuZGVmaW5lZH0gdHJ1c3QgbGV2ZWwg +aXMgcmV0dXJuZWQuCgogIEBpdGVtIHRvZnUrcGdwCiAgQG9waW5kZXggdHJ1c3Qt +bW9kZTp0b2Z1K3BncAogIFRoaXMgdHJ1c3QgbW9kZWwgY29tYmluZXMgVE9GVSB3 +aXRoIHRoZSBXZWIgb2YgVHJ1c3QuICBUaGlzIGlzIGRvbmUKICBieSBjb21wdXRp +bmcgdGhlIHRydXN0IGxldmVsIGZvciBlYWNoIG1vZGVsIGFuZCB0aGVuIHRha2lu +ZyB0aGUKICBtYXhpbXVtIHRydXN0IGxldmVsIHdoZXJlIHRoZSB0cnVzdCBsZXZl +bHMgYXJlIG9yZGVyZWQgYXMgZm9sbG93czoKICBAY29kZXt1bmtub3duIDwgdW5k +ZWZpbmVkIDwgbWFyZ2luYWwgPCBmdWxseSA8IHVsdGltYXRlIDwgZXhwaXJlZCA8 +CiAgbmV2ZXJ9LgoKICBCeSBzZXR0aW5nIEBvcHRpb257LS10b2Z1LWRlZmF1bHQt +cG9saWN5PXVua25vd259LCB0aGlzIG1vZGVsIGNhbiBiZQogIHVzZWQgdG8gaW1w +bGVtZW50IHRoZSB3ZWIgb2YgdHJ1c3Qgd2l0aCBUT0ZVJ3MgY29uZmxpY3QgZGV0 +ZWN0aW9uCiAgYWxnb3JpdGhtLCBidXQgd2l0aG91dCBpdHMgYXNzaWdubWVudCBv +ZiBwb3NpdGl2ZSB0cnVzdCB2YWx1ZXMsCiAgd2hpY2ggc29tZSBzZWN1cml0eS1j +b25zY2lvdXMgdXNlcnMgZG9uJ3QgbGlrZS4KCiAgQGl0ZW0gZGlyZWN0CiAgQG9w +aW5kZXggdHJ1c3QtbW9kZTpkaXJlY3QKICBLZXkgdmFsaWRpdHkgaXMgc2V0IGRp +cmVjdGx5IGJ5IHRoZSB1c2VyIGFuZCBub3QgY2FsY3VsYXRlZCB2aWEgdGhlCiAg +V2ViIG9mIFRydXN0LgoKICBAaXRlbSBhbHdheXMKICBAb3BpbmRleCB0cnVzdC1t +b2RlOmFsd2F5cwogIFNraXAga2V5IHZhbGlkYXRpb24gYW5kIGFzc3VtZSB0aGF0 +IHVzZWQga2V5cyBhcmUgYWx3YXlzIGZ1bGx5CiAgdmFsaWQuIFlvdSBnZW5lcmFs +bHkgd29uJ3QgdXNlIHRoaXMgdW5sZXNzIHlvdSBhcmUgdXNpbmcgc29tZQogIGV4 +dGVybmFsIHZhbGlkYXRpb24gc2NoZW1lLiBUaGlzIG9wdGlvbiBhbHNvIHN1cHBy +ZXNzZXMgdGhlCiAgIlt1bmNlcnRhaW5dIiB0YWcgcHJpbnRlZCB3aXRoIHNpZ25h +dHVyZSBjaGVja3Mgd2hlbiB0aGVyZSBpcyBubwogIGV2aWRlbmNlIHRoYXQgdGhl +IHVzZXIgSUQgaXMgYm91bmQgdG8gdGhlIGtleS4gIE5vdGUgdGhhdCB0aGlzCiAg +dHJ1c3QgbW9kZWwgc3RpbGwgZG9lcyBub3QgYWxsb3cgdGhlIHVzZSBvZiBleHBp +cmVkLCByZXZva2VkLCBvcgogIGRpc2FibGVkIGtleXMuCgogIEBpdGVtIGF1dG8K +ICBAb3BpbmRleCB0cnVzdC1tb2RlOmF1dG8KICBTZWxlY3QgdGhlIHRydXN0IG1v +ZGVsIGRlcGVuZGluZyBvbiB3aGF0ZXZlciB0aGUgaW50ZXJuYWwgdHJ1c3QKICBk +YXRhYmFzZSBzYXlzLiBUaGlzIGlzIHRoZSBkZWZhdWx0IG1vZGVsIGlmIHN1Y2gg +YSBkYXRhYmFzZSBhbHJlYWR5CiAgZXhpc3RzLgpAZW5kIHRhYmxlCgpAaXRlbSAt +LWF1dG8ta2V5LWxvY2F0ZSBAY29kZXtwYXJhbWV0ZXJzfQpAaXRlbXggLS1uby1h +dXRvLWtleS1sb2NhdGUKQG9waW5kZXggYXV0by1rZXktbG9jYXRlCkdudVBHIGNh +biBhdXRvbWF0aWNhbGx5IGxvY2F0ZSBhbmQgcmV0cmlldmUga2V5cyBhcyBuZWVk +ZWQgdXNpbmcgdGhpcwpvcHRpb24uIFRoaXMgaGFwcGVucyB3aGVuIGVuY3J5cHRp +bmcgdG8gYW4gZW1haWwgYWRkcmVzcyAoaW4gdGhlCiJ1c2VyQEBleGFtcGxlLmNv +bSIgZm9ybSksIGFuZCB0aGVyZSBhcmUgbm8gdXNlckBAZXhhbXBsZS5jb20ga2V5 +cyBvbgp0aGUgbG9jYWwga2V5cmluZy4gIFRoaXMgb3B0aW9uIHRha2VzIGFueSBu +dW1iZXIgb2YgdGhlIGZvbGxvd2luZwptZWNoYW5pc21zLCBpbiB0aGUgb3JkZXIg +dGhleSBhcmUgdG8gYmUgdHJpZWQ6CgpAdGFibGUgQGFzaXMKCiAgQGl0ZW0gY2Vy +dAogIExvY2F0ZSBhIGtleSB1c2luZyBETlMgQ0VSVCwgYXMgc3BlY2lmaWVkIGlu +IHJmYzQzOTguCgogIEBpdGVtIHBrYQogIExvY2F0ZSBhIGtleSB1c2luZyBETlMg +UEtBLgoKICBAaXRlbSBkYW5lCiAgTG9jYXRlIGEga2V5IHVzaW5nIERBTkUsIGFz +IHNwZWNpZmllZAogIGluIGRyYWZ0LWlldGYtZGFuZS1vcGVucGdwa2V5LTA1LnR4 +dC4KCiAgQGl0ZW0gbGRhcAogIFVzaW5nIEROUyBTZXJ2aWNlIERpc2NvdmVyeSwg +Y2hlY2sgdGhlIGRvbWFpbiBpbiBxdWVzdGlvbiBmb3IgYW55IExEQVAKICBrZXlz +ZXJ2ZXJzIHRvIHVzZS4gIElmIHRoaXMgZmFpbHMsIGF0dGVtcHQgdG8gbG9jYXRl +IHRoZSBrZXkgdXNpbmcgdGhlCiAgUEdQIFVuaXZlcnNhbCBtZXRob2Qgb2YgY2hl +Y2tpbmcgQHNhbXB7bGRhcDovL2tleXMuKHRoZWRvbWFpbil9LgoKICBAaXRlbSBr +ZXlzZXJ2ZXIKICBMb2NhdGUgYSBrZXkgdXNpbmcgd2hhdGV2ZXIga2V5c2VydmVy +IGlzIGRlZmluZWQgdXNpbmcgdGhlCiAgQG9wdGlvbnstLWtleXNlcnZlcn0gb3B0 +aW9uLgoKICBAaXRlbSBrZXlzZXJ2ZXItVVJMCiAgSW4gYWRkaXRpb24sIGEga2V5 +c2VydmVyIFVSTCBhcyB1c2VkIGluIHRoZSBAb3B0aW9uey0ta2V5c2VydmVyfSBv +cHRpb24KICBtYXkgYmUgdXNlZCBoZXJlIHRvIHF1ZXJ5IHRoYXQgcGFydGljdWxh +ciBrZXlzZXJ2ZXIuCgogIEBpdGVtIGxvY2FsCiAgTG9jYXRlIHRoZSBrZXkgdXNp +bmcgdGhlIGxvY2FsIGtleXJpbmdzLiAgVGhpcyBtZWNoYW5pc20gYWxsb3dzIHRv +CiAgc2VsZWN0IHRoZSBvcmRlciBhIGxvY2FsIGtleSBsb29rdXAgaXMgZG9uZS4g +IFRodXMgdXNpbmcKICBAc2FtcHstLWF1dG8ta2V5LWxvY2F0ZSBsb2NhbH0gaXMg +aWRlbnRpY2FsIHRvCiAgQG9wdGlvbnstLW5vLWF1dG8ta2V5LWxvY2F0ZX0uCgog +IEBpdGVtIG5vZGVmYXVsdAogIFRoaXMgZmxhZyBkaXNhYmxlcyB0aGUgc3RhbmRh +cmQgbG9jYWwga2V5IGxvb2t1cCwgZG9uZSBiZWZvcmUgYW55IG9mIHRoZQogIG1l +Y2hhbmlzbXMgZGVmaW5lZCBieSB0aGUgQG9wdGlvbnstLWF1dG8ta2V5LWxvY2F0 +ZX0gYXJlIHRyaWVkLiAgVGhlCiAgcG9zaXRpb24gb2YgdGhpcyBtZWNoYW5pc20g +aW4gdGhlIGxpc3QgZG9lcyBub3QgbWF0dGVyLiAgSXQgaXMgbm90CiAgcmVxdWly +ZWQgaWYgQGNvZGV7bG9jYWx9IGlzIGFsc28gdXNlZC4KCiAgQGl0ZW0gY2xlYXIK +ICBDbGVhciBhbGwgZGVmaW5lZCBtZWNoYW5pc21zLiAgVGhpcyBpcyB1c2VmdWwg +dG8gb3ZlcnJpZGUKICBtZWNoYW5pc21zIGdpdmVuIGluIGEgY29uZmlnIGZpbGUu +CgpAZW5kIHRhYmxlCgpAaXRlbSAtLWtleWlkLWZvcm1hdCBAY29kZXtzaG9ydHww +eHNob3J0fGxvbmd8MHhsb25nfQpAb3BpbmRleCBrZXlpZC1mb3JtYXQKU2VsZWN0 +IGhvdyB0byBkaXNwbGF5IGtleSBJRHMuICJzaG9ydCIgaXMgdGhlIHRyYWRpdGlv +bmFsIDgtY2hhcmFjdGVyCmtleSBJRC4gImxvbmciIGlzIHRoZSBtb3JlIGFjY3Vy +YXRlIChidXQgbGVzcyBjb252ZW5pZW50KQoxNi1jaGFyYWN0ZXIga2V5IElELiBB +ZGQgYW4gIjB4IiB0byBlaXRoZXIgdG8gaW5jbHVkZSBhbiAiMHgiIGF0IHRoZQpi +ZWdpbm5pbmcgb2YgdGhlIGtleSBJRCwgYXMgaW4gMHg5OTI0MjU2MC4gIE5vdGUg +dGhhdCB0aGlzIG9wdGlvbiBpcwppZ25vcmVkIGlmIHRoZSBvcHRpb24gLS13aXRo +LWNvbG9ucyBpcyB1c2VkLgoKQGl0ZW0gLS1rZXlzZXJ2ZXIgQGNvZGV7bmFtZX0K +QG9waW5kZXgga2V5c2VydmVyClRoaXMgb3B0aW9uIGlzIGRlcHJlY2F0ZWQgLSBw +bGVhc2UgdXNlIHRoZSBAb3B0aW9uey0ta2V5c2VydmVyfSBpbgpAZmlsZXtkaXJt +bmdyLmNvbmZ9IGluc3RlYWQuCgpVc2UgQGNvZGV7bmFtZX0gYXMgeW91ciBrZXlz +ZXJ2ZXIuIFRoaXMgaXMgdGhlIHNlcnZlciB0aGF0CkBvcHRpb257LS1yZWN2LWtl +eXN9LCBAb3B0aW9uey0tc2VuZC1rZXlzfSwgYW5kIEBvcHRpb257LS1zZWFyY2gt +a2V5c30Kd2lsbCBjb21tdW5pY2F0ZSB3aXRoIHRvIHJlY2VpdmUga2V5cyBmcm9t +LCBzZW5kIGtleXMgdG8sIGFuZCBzZWFyY2ggZm9yCmtleXMgb24uIFRoZSBmb3Jt +YXQgb2YgdGhlIEBjb2Rle25hbWV9IGlzIGEgVVJJOgpgc2NoZW1lOlsvL11rZXlz +ZXJ2ZXJuYW1lWzpwb3J0XScgVGhlIHNjaGVtZSBpcyB0aGUgdHlwZSBvZiBrZXlz +ZXJ2ZXI6CiJoa3AiIGZvciB0aGUgSFRUUCAob3IgY29tcGF0aWJsZSkga2V5c2Vy +dmVycywgImxkYXAiIGZvciB0aGUgTERBUAprZXlzZXJ2ZXJzLCBvciAibWFpbHRv +IiBmb3IgdGhlIEdyYWZmIGVtYWlsIGtleXNlcnZlci4gTm90ZSB0aGF0IHlvdXIK +cGFydGljdWxhciBpbnN0YWxsYXRpb24gb2YgR251UEcgbWF5IGhhdmUgb3RoZXIg +a2V5c2VydmVyIHR5cGVzCmF2YWlsYWJsZSBhcyB3ZWxsLiBLZXlzZXJ2ZXIgc2No +ZW1lcyBhcmUgY2FzZS1pbnNlbnNpdGl2ZS4gQWZ0ZXIgdGhlCmtleXNlcnZlciBu +YW1lLCBvcHRpb25hbCBrZXlzZXJ2ZXIgY29uZmlndXJhdGlvbiBvcHRpb25zIG1h +eSBiZQpwcm92aWRlZC4gVGhlc2UgYXJlIHRoZSBzYW1lIGFzIHRoZSBnbG9iYWwg +QG9wdGlvbnstLWtleXNlcnZlci1vcHRpb25zfQpmcm9tIGJlbG93LCBidXQgYXBw +bHkgb25seSB0byB0aGlzIHBhcnRpY3VsYXIga2V5c2VydmVyLgoKTW9zdCBrZXlz +ZXJ2ZXJzIHN5bmNocm9uaXplIHdpdGggZWFjaCBvdGhlciwgc28gdGhlcmUgaXMg +Z2VuZXJhbGx5IG5vCm5lZWQgdG8gc2VuZCBrZXlzIHRvIG1vcmUgdGhhbiBvbmUg +c2VydmVyLiBUaGUga2V5c2VydmVyCkBjb2Rle2hrcDovL2tleXMuZ251cGcubmV0 +fSB1c2VzIHJvdW5kIHJvYmluIEROUyB0byBnaXZlIGEgZGlmZmVyZW50CmtleXNl +cnZlciBlYWNoIHRpbWUgeW91IHVzZSBpdC4KCkBpdGVtIC0ta2V5c2VydmVyLW9w +dGlvbnMgQGNvZGV7bmFtZT12YWx1ZX0KQG9waW5kZXgga2V5c2VydmVyLW9wdGlv +bnMKVGhpcyBpcyBhIHNwYWNlIG9yIGNvbW1hIGRlbGltaXRlZCBzdHJpbmcgdGhh +dCBnaXZlcyBvcHRpb25zIGZvciB0aGUKa2V5c2VydmVyLiBPcHRpb25zIGNhbiBi +ZSBwcmVmaXhlZCB3aXRoIGEgYG5vLScgdG8gZ2l2ZSB0aGUgb3Bwb3NpdGUKbWVh +bmluZy4gVmFsaWQgaW1wb3J0LW9wdGlvbnMgb3IgZXhwb3J0LW9wdGlvbnMgbWF5 +IGJlIHVzZWQgaGVyZSBhcwp3ZWxsIHRvIGFwcGx5IHRvIGltcG9ydGluZyAoQG9w +dGlvbnstLXJlY3Yta2V5fSkgb3IgZXhwb3J0aW5nCihAb3B0aW9uey0tc2VuZC1r +ZXl9KSBhIGtleSBmcm9tIGEga2V5c2VydmVyLiBXaGlsZSBub3QgYWxsIG9wdGlv +bnMKYXJlIGF2YWlsYWJsZSBmb3IgYWxsIGtleXNlcnZlciB0eXBlcywgc29tZSBj +b21tb24gb3B0aW9ucyBhcmU6CgpAdGFibGUgQGFzaXMKCiAgQGl0ZW0gaW5jbHVk +ZS1yZXZva2VkCiAgV2hlbiBzZWFyY2hpbmcgZm9yIGEga2V5IHdpdGggQG9wdGlv +bnstLXNlYXJjaC1rZXlzfSwgaW5jbHVkZSBrZXlzIHRoYXQKICBhcmUgbWFya2Vk +IG9uIHRoZSBrZXlzZXJ2ZXIgYXMgcmV2b2tlZC4gTm90ZSB0aGF0IG5vdCBhbGwg +a2V5c2VydmVycwogIGRpZmZlcmVudGlhdGUgYmV0d2VlbiByZXZva2VkIGFuZCB1 +bnJldm9rZWQga2V5cywgYW5kIGZvciBzdWNoCiAga2V5c2VydmVycyB0aGlzIG9w +dGlvbiBpcyBtZWFuaW5nbGVzcy4gTm90ZSBhbHNvIHRoYXQgbW9zdCBrZXlzZXJ2 +ZXJzIGRvCiAgbm90IGhhdmUgY3J5cHRvZ3JhcGhpYyB2ZXJpZmljYXRpb24gb2Yg +a2V5IHJldm9jYXRpb25zLCBhbmQgc28gdHVybmluZwogIHRoaXMgb3B0aW9uIG9m +ZiBtYXkgcmVzdWx0IGluIHNraXBwaW5nIGtleXMgdGhhdCBhcmUgaW5jb3JyZWN0 +bHkgbWFya2VkCiAgYXMgcmV2b2tlZC4KCiAgQGl0ZW0gaW5jbHVkZS1kaXNhYmxl +ZAogIFdoZW4gc2VhcmNoaW5nIGZvciBhIGtleSB3aXRoIEBvcHRpb257LS1zZWFy +Y2gta2V5c30sIGluY2x1ZGUga2V5cyB0aGF0CiAgYXJlIG1hcmtlZCBvbiB0aGUg +a2V5c2VydmVyIGFzIGRpc2FibGVkLiBOb3RlIHRoYXQgdGhpcyBvcHRpb24gaXMg +bm90CiAgdXNlZCB3aXRoIEhLUCBrZXlzZXJ2ZXJzLgoKICBAaXRlbSBhdXRvLWtl +eS1yZXRyaWV2ZQogIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIGF1dG9tYXRpYyBy +ZXRyaWV2aW5nIG9mIGtleXMgZnJvbSBhIGtleXNlcnZlcgogIHdoZW4gdmVyaWZ5 +aW5nIHNpZ25hdHVyZXMgbWFkZSBieSBrZXlzIHRoYXQgYXJlIG5vdCBvbiB0aGUg +bG9jYWwKICBrZXlyaW5nLgoKICBOb3RlIHRoYXQgdGhpcyBvcHRpb24gbWFrZXMg +YSAid2ViIGJ1ZyIgbGlrZSBiZWhhdmlvciBwb3NzaWJsZS4KICBLZXlzZXJ2ZXIg +b3BlcmF0b3JzIGNhbiBzZWUgd2hpY2gga2V5cyB5b3UgcmVxdWVzdCwgc28gYnkg +c2VuZGluZyB5b3UKICBhIG1lc3NhZ2Ugc2lnbmVkIGJ5IGEgYnJhbmQgbmV3IGtl +eSAod2hpY2ggeW91IG5hdHVyYWxseSB3aWxsIG5vdCBoYXZlCiAgb24geW91ciBs +b2NhbCBrZXlyaW5nKSwgdGhlIG9wZXJhdG9yIGNhbiB0ZWxsIGJvdGggeW91ciBJ +UCBhZGRyZXNzIGFuZAogIHRoZSB0aW1lIHdoZW4geW91IHZlcmlmaWVkIHRoZSBz +aWduYXR1cmUuCgogIEBpdGVtIGhvbm9yLWtleXNlcnZlci11cmwKICBXaGVuIHVz +aW5nIEBvcHRpb257LS1yZWZyZXNoLWtleXN9LCBpZiB0aGUga2V5IGluIHF1ZXN0 +aW9uIGhhcyBhIHByZWZlcnJlZAogIGtleXNlcnZlciBVUkwsIHRoZW4gdXNlIHRo +YXQgcHJlZmVycmVkIGtleXNlcnZlciB0byByZWZyZXNoIHRoZSBrZXkKICBmcm9t +LiBJbiBhZGRpdGlvbiwgaWYgYXV0by1rZXktcmV0cmlldmUgaXMgc2V0LCBhbmQg +dGhlIHNpZ25hdHVyZQogIGJlaW5nIHZlcmlmaWVkIGhhcyBhIHByZWZlcnJlZCBr +ZXlzZXJ2ZXIgVVJMLCB0aGVuIHVzZSB0aGF0IHByZWZlcnJlZAogIGtleXNlcnZl +ciB0byBmZXRjaCB0aGUga2V5IGZyb20uIE5vdGUgdGhhdCB0aGlzIG9wdGlvbiBp +bnRyb2R1Y2VzIGEKICAid2ViIGJ1ZyI6IFRoZSBjcmVhdG9yIG9mIHRoZSBrZXkg +Y2FuIHNlZSB3aGVuIHRoZSBrZXlzIGlzCiAgcmVmcmVzaGVkLiAgVGh1cyB0aGlz +IG9wdGlvbiBpcyBub3QgZW5hYmxlZCBieSBkZWZhdWx0LgoKICBAaXRlbSBob25v +ci1wa2EtcmVjb3JkCiAgSWYgYXV0by1rZXktcmV0cmlldmUgaXMgc2V0LCBhbmQg +dGhlIHNpZ25hdHVyZSBiZWluZyB2ZXJpZmllZCBoYXMgYQogIFBLQSByZWNvcmQs +IHRoZW4gdXNlIHRoZSBQS0EgaW5mb3JtYXRpb24gdG8gZmV0Y2ggdGhlIGtleS4g +RGVmYXVsdHMKICB0byAieWVzIi4KCiAgQGl0ZW0gaW5jbHVkZS1zdWJrZXlzCiAg +V2hlbiByZWNlaXZpbmcgYSBrZXksIGluY2x1ZGUgc3Via2V5cyBhcyBwb3RlbnRp +YWwgdGFyZ2V0cy4gTm90ZSB0aGF0CiAgdGhpcyBvcHRpb24gaXMgbm90IHVzZWQg +d2l0aCBIS1Aga2V5c2VydmVycywgYXMgdGhleSBkbyBub3Qgc3VwcG9ydAogIHJl +dHJpZXZpbmcga2V5cyBieSBzdWJrZXkgaWQuCgogIEBpdGVtIHRpbWVvdXQKICBU +ZWxsIHRoZSBrZXlzZXJ2ZXIgaGVscGVyIHByb2dyYW0gaG93IGxvbmcgKGluIHNl +Y29uZHMpIHRvIHRyeSBhbmQKICBwZXJmb3JtIGEga2V5c2VydmVyIGFjdGlvbiBi +ZWZvcmUgZ2l2aW5nIHVwLiBOb3RlIHRoYXQgcGVyZm9ybWluZwogIG11bHRpcGxl +IGFjdGlvbnMgYXQgdGhlIHNhbWUgdGltZSB1c2VzIHRoaXMgdGltZW91dCB2YWx1 +ZSBwZXIgYWN0aW9uLgogIEZvciBleGFtcGxlLCB3aGVuIHJldHJpZXZpbmcgbXVs +dGlwbGUga2V5cyB2aWEgQG9wdGlvbnstLXJlY3Yta2V5c30sIHRoZQogIHRpbWVv +dXQgYXBwbGllcyBzZXBhcmF0ZWx5IHRvIGVhY2gga2V5IHJldHJpZXZhbCwgYW5k +IG5vdCB0byB0aGUKICBAb3B0aW9uey0tcmVjdi1rZXlzfSBjb21tYW5kIGFzIGEg +d2hvbGUuIERlZmF1bHRzIHRvIDMwIHNlY29uZHMuCgogIEBpdGVtIGh0dHAtcHJv +eHk9QGNvZGV7dmFsdWV9CiAgVGhpcyBvcHRpb25zIGlzIGRlcHJlY2F0ZWQuCiAg +U2V0IHRoZSBwcm94eSB0byB1c2UgZm9yIEhUVFAgYW5kIEhLUCBrZXlzZXJ2ZXJz +LgogIFRoaXMgb3ZlcnJpZGVzIGFueSBwcm94eSBkZWZpbmVkIGluIEBmaWxle2Rp +cm1uZ3IuY29uZn0uCgogIEBpdGVtIHZlcmJvc2UKICBUaGlzIG9wdGlvbiBoYXMg +bm8gbW9yZSBmdW5jdGlvbiBzaW5jZSBHbnVQRyAyLjEuICBVc2UgdGhlCiAgQGNv +ZGV7ZGlybW5ncn0gY29uZmlndXJhdGlvbiBvcHRpb25zIGluc3RlYWQuCgogIEBp +dGVtIGRlYnVnCiAgVGhpcyBvcHRpb24gaGFzIG5vIG1vcmUgZnVuY3Rpb24gc2lu +Y2UgR251UEcgMi4xLiAgVXNlIHRoZQogIEBjb2Rle2Rpcm1uZ3J9IGNvbmZpZ3Vy +YXRpb24gb3B0aW9ucyBpbnN0ZWFkLgoKICBAaXRlbSBjaGVjay1jZXJ0CiAgVGhp +cyBvcHRpb24gaGFzIG5vIG1vcmUgZnVuY3Rpb24gc2luY2UgR251UEcgMi4xLiAg +VXNlIHRoZQogIEBjb2Rle2Rpcm1uZ3J9IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBp +bnN0ZWFkLgoKICBAaXRlbSBjYS1jZXJ0LWZpbGUKICBUaGlzIG9wdGlvbiBoYXMg +bm8gbW9yZSBmdW5jdGlvbiBzaW5jZSBHbnVQRyAyLjEuICBVc2UgdGhlCiAgQGNv +ZGV7ZGlybW5ncn0gY29uZmlndXJhdGlvbiBvcHRpb25zIGluc3RlYWQuCgpAZW5k +IHRhYmxlCgpAaXRlbSAtLWNvbXBsZXRlcy1uZWVkZWQgQGNvZGV7bn0KQG9waW5k +ZXggY29tcGxpYW50LW5lZWRlZApOdW1iZXIgb2YgY29tcGxldGVseSB0cnVzdGVk +IHVzZXJzIHRvIGludHJvZHVjZSBhIG5ldwprZXkgc2lnbmVyIChkZWZhdWx0cyB0 +byAxKS4KCkBpdGVtIC0tbWFyZ2luYWxzLW5lZWRlZCBAY29kZXtufQpAb3BpbmRl +eCBtYXJnaW5hbHMtbmVlZGVkCk51bWJlciBvZiBtYXJnaW5hbGx5IHRydXN0ZWQg +dXNlcnMgdG8gaW50cm9kdWNlIGEgbmV3CmtleSBzaWduZXIgKGRlZmF1bHRzIHRv +IDMpCgpAaXRlbSAtLXRvZnUtZGVmYXVsdC1wb2xpY3kgQGNvZGV7YXV0b3xnb29k +fHVua25vd258YmFkfGFza30KQG9waW5kZXggdG9mdS1kZWZhdWx0LXBvbGljeQpU +aGUgZGVmYXVsdCBUT0ZVIHBvbGljeSAoZGVmYXVsdHMgdG8gQGNvZGV7YXV0b30p +LiAgRm9yIG1vcmUKaW5mb3JtYXRpb24gYWJvdXQgdGhlIG1lYW5pbmcgb2YgdGhp +cyBvcHRpb24sIEB4cmVme3RydXN0LW1vZGVsLXRvZnV9LgoKQGl0ZW0gLS10b2Z1 +LWRiLWZvcm1hdCBAY29kZXthdXRvfHNwbGl0fGZsYXR9CkBvcGluZGV4IHRvZnUt +ZGVmYXVsdC1wb2xpY3kKVGhlIGZvcm1hdCBmb3IgdGhlIFRPRlUgREIuCgpUaGUg +c3BsaXQgZmlsZSBmb3JtYXQgc3BsaXRzIHRoZSBkYXRhIGFjcm9zcyBtYW55IERC +cyB1bmRlciB0aGUKQGNvZGV7dG9mdS5kfSBkaXJlY3RvcnkgKG9uZSBwZXIgZW1h +aWwgYWRkcmVzcyBhbmQgb25lIHBlciBrZXkpLiAgVGhpcwptYWtlcyBpdCBlYXNp +ZXIgdG8gYXV0b21hdGljYWxseSBzeW5jaHJvbml6ZSB0aGUgZGF0YSB1c2luZyBh +IHRvb2wKc3VjaCBhcyBVbmlzb24gKEB1cmx7aHR0cHM6Ly93d3cuY2lzLnVwZW5u +LmVkdS9+YmNwaWVyY2UvdW5pc29uL30pLApzaW5jZSB0aGUgaW5kaXZpZHVhbCBm +aWxlcyBjaGFuZ2UgcmFyZWx5LgoKVGhlIGZsYXQgZmlsZSBmb3JtYXQga2VlcHMg +YWxsIG9mIHRoZSBkYXRhIGluIHRoZSBzaW5nbGUgZmlsZQpAY29kZXt0b2Z1LmRi +fS4gIFRoaXMgZm9ybWF0IHJlc3VsdHMgaW4gYmV0dGVyIHBlcmZvcm1hbmNlLgoK +SWYgc2V0IHRvIGF1dG8gKHdoaWNoIGlzIHRoZSBkZWZhdWx0KSwgR251UEcgd2ls +bCBmaXJzdCBjaGVjayBmb3IgdGhlCmV4aXN0ZW5jZSBvZiBAY29kZXt0b2Z1LmR9 +IGFuZCBAY29kZXt0b2Z1LmRifS4gIElmIG9uZSBvZiB0aGVzZQpleGlzdHMsIHRo +ZSBjb3JyZXNwb25kaW5nIGZvcm1hdCBpcyB1c2VkLiAgSWYgbmVpdGhlciBvciBi +b3RoIG9mIHRoZXNlCmV4aXN0LCB0aGVuIEdudVBHIGRlZmF1bHRzIHRvIHRoZSBA +Y29kZXtzcGxpdH0gZm9ybWF0LiAgSW4gdGhlIGxhdHRlcgpjYXNlLCBhIHdhcm5p +bmcgaXMgZW1pdHRlZC4KCkBpdGVtIC0tbWF4LWNlcnQtZGVwdGggQGNvZGV7bn0K +QG9waW5kZXggbWF4LWNlcnQtZGVwdGgKTWF4aW11bSBkZXB0aCBvZiBhIGNlcnRp +ZmljYXRpb24gY2hhaW4gKGRlZmF1bHQgaXMgNSkuCgpAaXRlbSAtLW5vLXNpZy1j +YWNoZQpAb3BpbmRleCBuby1zaWctY2FjaGUKRG8gbm90IGNhY2hlIHRoZSB2ZXJp +ZmljYXRpb24gc3RhdHVzIG9mIGtleSBzaWduYXR1cmVzLgpDYWNoaW5nIGdpdmVz +IGEgbXVjaCBiZXR0ZXIgcGVyZm9ybWFuY2UgaW4ga2V5IGxpc3RpbmdzLiBIb3dl +dmVyLCBpZgp5b3Ugc3VzcGVjdCB0aGF0IHlvdXIgcHVibGljIGtleXJpbmcgaXMg +bm90IHNhdmUgYWdhaW5zdCB3cml0ZQptb2RpZmljYXRpb25zLCB5b3UgY2FuIHVz +ZSB0aGlzIG9wdGlvbiB0byBkaXNhYmxlIHRoZSBjYWNoaW5nLiBJdApwcm9iYWJs +eSBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIGRpc2FibGUgaXQgYmVjYXVzZSBhbGwg +a2luZCBvZiBkYW1hZ2UKY2FuIGJlIGRvbmUgaWYgc29tZW9uZSBlbHNlIGhhcyB3 +cml0ZSBhY2Nlc3MgdG8geW91ciBwdWJsaWMga2V5cmluZy4KCkBpdGVtIC0tYXV0 +by1jaGVjay10cnVzdGRiCkBpdGVteCAtLW5vLWF1dG8tY2hlY2stdHJ1c3RkYgpA +b3BpbmRleCBhdXRvLWNoZWNrLXRydXN0ZGIKSWYgR251UEcgZmVlbHMgdGhhdCBp +dHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIFdlYiBvZiBUcnVzdCBoYXMgdG8gYmUK +dXBkYXRlZCwgaXQgYXV0b21hdGljYWxseSBydW5zIHRoZSBAb3B0aW9uey0tY2hl +Y2stdHJ1c3RkYn0gY29tbWFuZAppbnRlcm5hbGx5LiAgVGhpcyBtYXkgYmUgYSB0 +aW1lIGNvbnN1bWluZwpwcm9jZXNzLiBAb3B0aW9uey0tbm8tYXV0by1jaGVjay10 +cnVzdGRifSBkaXNhYmxlcyB0aGlzIG9wdGlvbi4KCkBpdGVtIC0tdXNlLWFnZW50 +CkBpdGVteCAtLW5vLXVzZS1hZ2VudApAb3BpbmRleCB1c2UtYWdlbnQKVGhpcyBp +cyBkdW1teSBvcHRpb24uIEBjb21tYW5ke0BncGduYW1lfSBhbHdheXMgcmVxdWly +ZXMgdGhlIGFnZW50LgoKQGl0ZW0gLS1ncGctYWdlbnQtaW5mbwpAb3BpbmRleCBn +cGctYWdlbnQtaW5mbwpUaGlzIGlzIGR1bW15IG9wdGlvbi4gSXQgaGFzIG5vIGVm +ZmVjdCB3aGVuIHVzZWQgd2l0aCBAY29tbWFuZHtncGcyfS4KCgpAaXRlbSAtLWFn +ZW50LXByb2dyYW0gQHZhcntmaWxlfQpAb3BpbmRleCBhZ2VudC1wcm9ncmFtClNw +ZWNpZnkgYW4gYWdlbnQgcHJvZ3JhbSB0byBiZSB1c2VkIGZvciBzZWNyZXQga2V5 +IG9wZXJhdGlvbnMuICBUaGUKZGVmYXVsdCB2YWx1ZSBpcyBkZXRlcm1pbmVkIGJ5 +IHJ1bm5pbmcgQGNvbW1hbmR7Z3BnY29uZn0gd2l0aCB0aGUKb3B0aW9uIEBvcHRp +b257LS1saXN0LWRpcnN9LiAgTm90ZSB0aGF0IHRoZSBwaXBlIHN5bWJvbCAoQGNv +ZGV7fH0pIGlzCnVzZWQgZm9yIGEgcmVncmVzc2lvbiB0ZXN0IHN1aXRlIGhhY2sg +YW5kIG1heSB0aHVzIG5vdCBiZSB1c2VkIGluIHRoZQpmaWxlIG5hbWUuCgpAaXRl +bSAtLWRpcm1uZ3ItcHJvZ3JhbSBAdmFye2ZpbGV9CkBvcGluZGV4IGRpcm1uZ3It +cHJvZ3JhbQpTcGVjaWZ5IGEgZGlybW5nciBwcm9ncmFtIHRvIGJlIHVzZWQgZm9y +IGtleXNlcnZlciBhY2Nlc3MuICBUaGUKZGVmYXVsdCB2YWx1ZSBpcyBAZmlsZXtA +dmFsdWV7QklORElSfS9kaXJtbmdyfS4gIFRoaXMgaXMgb25seSB1c2VkIGFzIGEK +ZmFsbGJhY2sgd2hlbiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgQGNvZGV7RElS +TU5HUl9JTkZPfSBpcyBub3Qgc2V0IG9yCmEgcnVubmluZyBkaXJtbmdyIGNhbm5v +dCBiZSBjb25uZWN0ZWQuCgpAaXRlbSAtLW5vLWF1dG9zdGFydApAb3BpbmRleCBu +by1hdXRvc3RhcnQKRG8gbm90IHN0YXJ0IHRoZSBncGctYWdlbnQgb3IgdGhlIGRp +cm1uZ3IgaWYgaXQgaGFzIG5vdCB5ZXQgYmVlbgpzdGFydGVkIGFuZCBpdHMgc2Vy +dmljZSBpcyByZXF1aXJlZC4gIFRoaXMgb3B0aW9uIGlzIG1vc3RseSB1c2VmdWwg +b24KbWFjaGluZXMgd2hlcmUgdGhlIGNvbm5lY3Rpb24gdG8gZ3BnLWFnZW50IGhh +cyBiZWVuIHJlZGlyZWN0ZWQgdG8KYW5vdGhlciBtYWNoaW5lcy4gIElmIGRpcm1u +Z3IgaXMgcmVxdWlyZWQgb24gdGhlIHJlbW90ZSBtYWNoaW5lLCBpdAptYXkgYmUg +c3RhcnRlZCBtYW51YWxseSB1c2luZyBAY29tbWFuZHtncGdjb25mIC0tbGF1bmNo +IGRpcm1uZ3J9LgoKQGl0ZW0gLS1sb2NrLW9uY2UKQG9waW5kZXggbG9jay1vbmNl +CkxvY2sgdGhlIGRhdGFiYXNlcyB0aGUgZmlyc3QgdGltZSBhIGxvY2sgaXMgcmVx +dWVzdGVkCmFuZCBkbyBub3QgcmVsZWFzZSB0aGUgbG9jayB1bnRpbCB0aGUgcHJv +Y2Vzcwp0ZXJtaW5hdGVzLgoKQGl0ZW0gLS1sb2NrLW11bHRpcGxlCkBvcGluZGV4 +IGxvY2stbXVsdGlwbGUKUmVsZWFzZSB0aGUgbG9ja3MgZXZlcnkgdGltZSBhIGxv +Y2sgaXMgbm8gbG9uZ2VyCm5lZWRlZC4gVXNlIHRoaXMgdG8gb3ZlcnJpZGUgYSBw +cmV2aW91cyBAb3B0aW9uey0tbG9jay1vbmNlfQpmcm9tIGEgY29uZmlnIGZpbGUu +CgpAaXRlbSAtLWxvY2stbmV2ZXIKQG9waW5kZXggbG9jay1uZXZlcgpEaXNhYmxl +IGxvY2tpbmcgZW50aXJlbHkuIFRoaXMgb3B0aW9uIHNob3VsZCBiZSB1c2VkIG9u +bHkgaW4gdmVyeQpzcGVjaWFsIGVudmlyb25tZW50cywgd2hlcmUgaXQgY2FuIGJl +IGFzc3VyZWQgdGhhdCBvbmx5IG9uZSBwcm9jZXNzCmlzIGFjY2Vzc2luZyB0aG9z +ZSBmaWxlcy4gQSBib290YWJsZSBmbG9wcHkgd2l0aCBhIHN0YW5kLWFsb25lCmVu +Y3J5cHRpb24gc3lzdGVtIHdpbGwgcHJvYmFibHkgdXNlIHRoaXMuIEltcHJvcGVy +IHVzYWdlIG9mIHRoaXMKb3B0aW9uIG1heSBsZWFkIHRvIGRhdGEgYW5kIGtleSBj +b3JydXB0aW9uLgoKQGl0ZW0gLS1leGl0LW9uLXN0YXR1cy13cml0ZS1lcnJvcgpA +b3BpbmRleCBleGl0LW9uLXN0YXR1cy13cml0ZS1lcnJvcgpUaGlzIG9wdGlvbiB3 +aWxsIGNhdXNlIHdyaXRlIGVycm9ycyBvbiB0aGUgc3RhdHVzIEZEIHRvIGltbWVk +aWF0ZWx5CnRlcm1pbmF0ZSB0aGUgcHJvY2Vzcy4gVGhhdCBzaG91bGQgaW4gZmFj +dCBiZSB0aGUgZGVmYXVsdCBidXQgaXQgbmV2ZXIKd29ya2VkIHRoaXMgd2F5IGFu +ZCB0aHVzIHdlIG5lZWQgYW4gb3B0aW9uIHRvIGVuYWJsZSB0aGlzLCBzbyB0aGF0 +IHRoZQpjaGFuZ2Ugd29uJ3QgYnJlYWsgYXBwbGljYXRpb25zIHdoaWNoIGNsb3Nl +IHRoZWlyIGVuZCBvZiBhIHN0YXR1cyBmZApjb25uZWN0ZWQgcGlwZSB0b28gZWFy +bHkuIFVzaW5nIHRoaXMgb3B0aW9uIGFsb25nIHdpdGgKQG9wdGlvbnstLWVuYWJs +ZS1wcm9ncmVzcy1maWx0ZXJ9IG1heSBiZSB1c2VkIHRvIGNsZWFubHkgY2FuY2Vs +IGxvbmcKcnVubmluZyBncGcgb3BlcmF0aW9ucy4KCkBpdGVtIC0tbGltaXQtY2Fy +ZC1pbnNlcnQtdHJpZXMgQGNvZGV7bn0KQG9waW5kZXggbGltaXQtY2FyZC1pbnNl +cnQtdHJpZXMKV2l0aCBAY29kZXtufSBncmVhdGVyIHRoYW4gMCB0aGUgbnVtYmVy +IG9mIHByb21wdHMgYXNraW5nIHRvIGluc2VydCBhCnNtYXJ0Y2FyZCBnZXRzIGxp +bWl0ZWQgdG8gTi0xLiBUaHVzIHdpdGggYSB2YWx1ZSBvZiAxIGdwZyB3b24ndCBh +dAphbGwgYXNrIHRvIGluc2VydCBhIGNhcmQgaWYgbm9uZSBoYXMgYmVlbiBpbnNl +cnRlZCBhdCBzdGFydHVwLiBUaGlzCm9wdGlvbiBpcyB1c2VmdWwgaW4gdGhlIGNv +bmZpZ3VyYXRpb24gZmlsZSBpbiBjYXNlIGFuIGFwcGxpY2F0aW9uIGRvZXMKbm90 +IGtub3cgYWJvdXQgdGhlIHNtYXJ0Y2FyZCBzdXBwb3J0IGFuZCB3YWl0cyBhZCBp +bmZpbml0dW0gZm9yIGFuCmluc2VydGVkIGNhcmQuCgpAaXRlbSAtLW5vLXJhbmRv +bS1zZWVkLWZpbGUKQG9waW5kZXggbm8tcmFuZG9tLXNlZWQtZmlsZQpHbnVQRyB1 +c2VzIGEgZmlsZSB0byBzdG9yZSBpdHMgaW50ZXJuYWwgcmFuZG9tIHBvb2wgb3Zl +ciBpbnZvY2F0aW9ucy4KVGhpcyBtYWtlcyByYW5kb20gZ2VuZXJhdGlvbiBmYXN0 +ZXI7IGhvd2V2ZXIgc29tZXRpbWVzIHdyaXRlIG9wZXJhdGlvbnMKYXJlIG5vdCBk +ZXNpcmVkLiBUaGlzIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBhY2hpZXZlIHRoYXQg +d2l0aCB0aGUgY29zdCBvZgpzbG93ZXIgcmFuZG9tIGdlbmVyYXRpb24uCgpAaXRl +bSAtLW5vLWdyZWV0aW5nCkBvcGluZGV4IG5vLWdyZWV0aW5nClN1cHByZXNzIHRo +ZSBpbml0aWFsIGNvcHlyaWdodCBtZXNzYWdlLgoKQGl0ZW0gLS1uby1zZWNtZW0t +d2FybmluZwpAb3BpbmRleCBuby1zZWNtZW0td2FybmluZwpTdXBwcmVzcyB0aGUg +d2FybmluZyBhYm91dCAidXNpbmcgaW5zZWN1cmUgbWVtb3J5Ii4KCkBpdGVtIC0t +bm8tcGVybWlzc2lvbi13YXJuaW5nCkBvcGluZGV4IHBlcm1pc3Npb24td2Fybmlu +ZwpTdXBwcmVzcyB0aGUgd2FybmluZyBhYm91dCB1bnNhZmUgZmlsZSBhbmQgaG9t +ZSBkaXJlY3RvcnkgKEBvcHRpb257LS1ob21lZGlyfSkKcGVybWlzc2lvbnMuIE5v +dGUgdGhhdCB0aGUgcGVybWlzc2lvbiBjaGVja3MgdGhhdCBHbnVQRyBwZXJmb3Jt +cyBhcmUKbm90IGludGVuZGVkIHRvIGJlIGF1dGhvcml0YXRpdmUsIGJ1dCByYXRo +ZXIgdGhleSBzaW1wbHkgd2FybiBhYm91dApjZXJ0YWluIGNvbW1vbiBwZXJtaXNz +aW9uIHByb2JsZW1zLiBEbyBub3QgYXNzdW1lIHRoYXQgdGhlIGxhY2sgb2YgYQp3 +YXJuaW5nIG1lYW5zIHRoYXQgeW91ciBzeXN0ZW0gaXMgc2VjdXJlLgoKTm90ZSB0 +aGF0IHRoZSB3YXJuaW5nIGZvciB1bnNhZmUgQG9wdGlvbnstLWhvbWVkaXJ9IHBl +cm1pc3Npb25zIGNhbm5vdCBiZQpzdXBwcmVzc2VkIGluIHRoZSBncGcuY29uZiBm +aWxlLCBhcyB0aGlzIHdvdWxkIGFsbG93IGFuIGF0dGFja2VyIHRvCnBsYWNlIGFu +IHVuc2FmZSBncGcuY29uZiBmaWxlIGluIHBsYWNlLCBhbmQgdXNlIHRoaXMgZmls +ZSB0byBzdXBwcmVzcwp3YXJuaW5ncyBhYm91dCBpdHNlbGYuIFRoZSBAb3B0aW9u +ey0taG9tZWRpcn0gcGVybWlzc2lvbnMgd2FybmluZyBtYXkgb25seSBiZQpzdXBw +cmVzc2VkIG9uIHRoZSBjb21tYW5kIGxpbmUuCgpAaXRlbSAtLW5vLW1kYy13YXJu +aW5nCkBvcGluZGV4IG5vLW1kYy13YXJuaW5nClN1cHByZXNzIHRoZSB3YXJuaW5n +IGFib3V0IG1pc3NpbmcgTURDIGludGVncml0eSBwcm90ZWN0aW9uLgoKQGl0ZW0g +LS1yZXF1aXJlLXNlY21lbQpAaXRlbXggLS1uby1yZXF1aXJlLXNlY21lbQpAb3Bp +bmRleCByZXF1aXJlLXNlY21lbQpSZWZ1c2UgdG8gcnVuIGlmIEdudVBHIGNhbm5v +dCBnZXQgc2VjdXJlIG1lbW9yeS4gRGVmYXVsdHMgdG8gbm8KKGkuZS4gcnVuLCBi +dXQgZ2l2ZSBhIHdhcm5pbmcpLgoKCkBpdGVtIC0tcmVxdWlyZS1jcm9zcy1jZXJ0 +aWZpY2F0aW9uCkBpdGVteCAtLW5vLXJlcXVpcmUtY3Jvc3MtY2VydGlmaWNhdGlv +bgpAb3BpbmRleCByZXF1aXJlLWNyb3NzLWNlcnRpZmljYXRpb24KV2hlbiB2ZXJp +ZnlpbmcgYSBzaWduYXR1cmUgbWFkZSBmcm9tIGEgc3Via2V5LCBlbnN1cmUgdGhh +dCB0aGUgY3Jvc3MKY2VydGlmaWNhdGlvbiAiYmFjayBzaWduYXR1cmUiIG9uIHRo +ZSBzdWJrZXkgaXMgcHJlc2VudCBhbmQgdmFsaWQuICBUaGlzCnByb3RlY3RzIGFn +YWluc3QgYSBzdWJ0bGUgYXR0YWNrIGFnYWluc3Qgc3Via2V5cyB0aGF0IGNhbiBz +aWduLgpEZWZhdWx0cyB0byBAb3B0aW9uey0tcmVxdWlyZS1jcm9zcy1jZXJ0aWZp +Y2F0aW9ufSBmb3IKQGNvbW1hbmR7QGdwZ25hbWV9LgoKQGl0ZW0gLS1leHBlcnQK +QGl0ZW14IC0tbm8tZXhwZXJ0CkBvcGluZGV4IGV4cGVydApBbGxvdyB0aGUgdXNl +ciB0byBkbyBjZXJ0YWluIG5vbnNlbnNpY2FsIG9yICJzaWxseSIgdGhpbmdzIGxp +a2UKc2lnbmluZyBhbiBleHBpcmVkIG9yIHJldm9rZWQga2V5LCBvciBjZXJ0YWlu +IHBvdGVudGlhbGx5IGluY29tcGF0aWJsZQp0aGluZ3MgbGlrZSBnZW5lcmF0aW5n +IHVudXN1YWwga2V5IHR5cGVzLiBUaGlzIGFsc28gZGlzYWJsZXMgY2VydGFpbgp3 +YXJuaW5nIG1lc3NhZ2VzIGFib3V0IHBvdGVudGlhbGx5IGluY29tcGF0aWJsZSBh +Y3Rpb25zLiBBcyB0aGUgbmFtZQppbXBsaWVzLCB0aGlzIG9wdGlvbiBpcyBmb3Ig +ZXhwZXJ0cyBvbmx5LiBJZiB5b3UgZG9uJ3QgZnVsbHkKdW5kZXJzdGFuZCB0aGUg +aW1wbGljYXRpb25zIG9mIHdoYXQgaXQgYWxsb3dzIHlvdSB0byBkbywgbGVhdmUg +dGhpcwpvZmYuIEBvcHRpb257LS1uby1leHBlcnR9IGRpc2FibGVzIHRoaXMgb3B0 +aW9uLgoKQGVuZCB0YWJsZQoKCkBjICoqKioqKioqKioqKioqKioqKioqKioqKioq +KioqKioqKioqKioqKioqKioKQGMgKioqKioqKiogIEtFWSBSRUxBVEVEIE9QVElP +TlMgICoqKioqKioqKioqKgpAYyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq +KioqKioqKioqKioqKioqCkBub2RlIEdQRyBLZXkgcmVsYXRlZCBPcHRpb25zCkBz +dWJzZWN0aW9uIEtleSByZWxhdGVkIG9wdGlvbnMKCkB0YWJsZSBAZ251cGd0YWJv +cHQKCkBpdGVtIC0tcmVjaXBpZW50IEB2YXJ7bmFtZX0KQGl0ZW14IC1yCkBvcGlu +ZGV4IHJlY2lwaWVudApFbmNyeXB0IGZvciB1c2VyIGlkIEB2YXJ7bmFtZX0uIElm +IHRoaXMgb3B0aW9uIG9yCkBvcHRpb257LS1oaWRkZW4tcmVjaXBpZW50fSBpcyBu +b3Qgc3BlY2lmaWVkLCBHbnVQRyBhc2tzIGZvciB0aGUgdXNlci1pZAp1bmxlc3Mg +QG9wdGlvbnstLWRlZmF1bHQtcmVjaXBpZW50fSBpcyBnaXZlbi4KCkBpdGVtIC0t +aGlkZGVuLXJlY2lwaWVudCBAdmFye25hbWV9CkBpdGVteCAtUgpAb3BpbmRleCBo +aWRkZW4tcmVjaXBpZW50CkVuY3J5cHQgZm9yIHVzZXIgSUQgQHZhcntuYW1lfSwg +YnV0IGhpZGUgdGhlIGtleSBJRCBvZiB0aGlzIHVzZXIncwprZXkuIFRoaXMgb3B0 +aW9uIGhlbHBzIHRvIGhpZGUgdGhlIHJlY2VpdmVyIG9mIHRoZSBtZXNzYWdlIGFu +ZCBpcyBhCmxpbWl0ZWQgY291bnRlcm1lYXN1cmUgYWdhaW5zdCB0cmFmZmljIGFu +YWx5c2lzLiBJZiB0aGlzIG9wdGlvbiBvcgpAb3B0aW9uey0tcmVjaXBpZW50fSBp +cyBub3Qgc3BlY2lmaWVkLCBHbnVQRyBhc2tzIGZvciB0aGUgdXNlciBJRCB1bmxl +c3MKQG9wdGlvbnstLWRlZmF1bHQtcmVjaXBpZW50fSBpcyBnaXZlbi4KCkBpdGVt +IC0tZW5jcnlwdC10byBAY29kZXtuYW1lfQpAb3BpbmRleCBlbmNyeXB0LXRvClNh +bWUgYXMgQG9wdGlvbnstLXJlY2lwaWVudH0gYnV0IHRoaXMgb25lIGlzIGludGVu +ZGVkIGZvciB1c2UgaW4gdGhlCm9wdGlvbnMgZmlsZSBhbmQgbWF5IGJlIHVzZWQg +d2l0aCB5b3VyIG93biB1c2VyLWlkIGFzIGFuCiJlbmNyeXB0LXRvLXNlbGYiLiBU +aGVzZSBrZXlzIGFyZSBvbmx5IHVzZWQgd2hlbiB0aGVyZSBhcmUgb3RoZXIKcmVj +aXBpZW50cyBnaXZlbiBlaXRoZXIgYnkgdXNlIG9mIEBvcHRpb257LS1yZWNpcGll +bnR9IG9yIGJ5IHRoZSBhc2tlZAp1c2VyIGlkLiAgTm8gdHJ1c3QgY2hlY2tpbmcg +aXMgcGVyZm9ybWVkIGZvciB0aGVzZSB1c2VyIGlkcyBhbmQgZXZlbgpkaXNhYmxl +ZCBrZXlzIGNhbiBiZSB1c2VkLgoKQGl0ZW0gLS1oaWRkZW4tZW5jcnlwdC10byBA +Y29kZXtuYW1lfQpAb3BpbmRleCBoaWRkZW4tZW5jcnlwdC10bwpTYW1lIGFzIEBv +cHRpb257LS1oaWRkZW4tcmVjaXBpZW50fSBidXQgdGhpcyBvbmUgaXMgaW50ZW5k +ZWQgZm9yIHVzZSBpbiB0aGUKb3B0aW9ucyBmaWxlIGFuZCBtYXkgYmUgdXNlZCB3 +aXRoIHlvdXIgb3duIHVzZXItaWQgYXMgYSBoaWRkZW4KImVuY3J5cHQtdG8tc2Vs +ZiIuIFRoZXNlIGtleXMgYXJlIG9ubHkgdXNlZCB3aGVuIHRoZXJlIGFyZSBvdGhl +cgpyZWNpcGllbnRzIGdpdmVuIGVpdGhlciBieSB1c2Ugb2YgQG9wdGlvbnstLXJl +Y2lwaWVudH0gb3IgYnkgdGhlIGFza2VkIHVzZXIgaWQuCk5vIHRydXN0IGNoZWNr +aW5nIGlzIHBlcmZvcm1lZCBmb3IgdGhlc2UgdXNlciBpZHMgYW5kIGV2ZW4gZGlz +YWJsZWQKa2V5cyBjYW4gYmUgdXNlZC4KCkBpdGVtIC0tZW5jcnlwdC10by1kZWZh +dWx0LWtleQpAb3BpbmRleCBlbmNyeXB0LXRvLWRlZmF1bHQta2V5CklmIHRoZSBk +ZWZhdWx0IHNlY3JldCBrZXkgaXMgdGFrZW4gZnJvbSBAb3B0aW9uey0tZGVmYXVs +dC1rZXl9LCB0aGVuCmFsc28gZW5jcnlwdCB0byB0aGF0IGtleS4KCkBpdGVtIC0t +bm8tZW5jcnlwdC10bwpAb3BpbmRleCBuby1lbmNyeXB0LXRvCkRpc2FibGUgdGhl +IHVzZSBvZiBhbGwgQG9wdGlvbnstLWVuY3J5cHQtdG99IGFuZApAb3B0aW9uey0t +aGlkZGVuLWVuY3J5cHQtdG99IGtleXMuCgpAaXRlbSAtLWdyb3VwIEBjb2Rle25h +bWU9dmFsdWUxIH0KQG9waW5kZXggZ3JvdXAKU2V0cyB1cCBhIG5hbWVkIGdyb3Vw +LCB3aGljaCBpcyBzaW1pbGFyIHRvIGFsaWFzZXMgaW4gZW1haWwgcHJvZ3JhbXMu +CkFueSB0aW1lIHRoZSBncm91cCBuYW1lIGlzIGEgcmVjaXBpZW50IChAb3B0aW9u +ey1yfSBvcgpAb3B0aW9uey0tcmVjaXBpZW50fSksIGl0IHdpbGwgYmUgZXhwYW5k +ZWQgdG8gdGhlIHZhbHVlcwpzcGVjaWZpZWQuIE11bHRpcGxlIGdyb3VwcyB3aXRo +IHRoZSBzYW1lIG5hbWUgYXJlIGF1dG9tYXRpY2FsbHkgbWVyZ2VkCmludG8gYSBz +aW5nbGUgZ3JvdXAuCgpUaGUgdmFsdWVzIGFyZSBAY29kZXtrZXkgSURzfSBvciBm +aW5nZXJwcmludHMsIGJ1dCBhbnkga2V5IGRlc2NyaXB0aW9uCmlzIGFjY2VwdGVk +LiBOb3RlIHRoYXQgYSB2YWx1ZSB3aXRoIHNwYWNlcyBpbiBpdCB3aWxsIGJlIHRy +ZWF0ZWQgYXMKdHdvIGRpZmZlcmVudCB2YWx1ZXMuIE5vdGUgYWxzbyB0aGVyZSBp +cyBvbmx5IG9uZSBsZXZlbCBvZiBleHBhbnNpb24KLS0tIHlvdSBjYW5ub3QgbWFr +ZSBhbiBncm91cCB0aGF0IHBvaW50cyB0byBhbm90aGVyIGdyb3VwLiBXaGVuIHVz +ZWQKZnJvbSB0aGUgY29tbWFuZCBsaW5lLCBpdCBtYXkgYmUgbmVjZXNzYXJ5IHRv +IHF1b3RlIHRoZSBhcmd1bWVudCB0bwp0aGlzIG9wdGlvbiB0byBwcmV2ZW50IHRo +ZSBzaGVsbCBmcm9tIHRyZWF0aW5nIGl0IGFzIG11bHRpcGxlCmFyZ3VtZW50cy4K +CkBpdGVtIC0tdW5ncm91cCBAY29kZXtuYW1lfQpAb3BpbmRleCB1bmdyb3VwClJl +bW92ZSBhIGdpdmVuIGVudHJ5IGZyb20gdGhlIEBvcHRpb257LS1ncm91cH0gbGlz +dC4KCkBpdGVtIC0tbm8tZ3JvdXBzCkBvcGluZGV4IG5vLWdyb3VwcwpSZW1vdmUg +YWxsIGVudHJpZXMgZnJvbSB0aGUgQG9wdGlvbnstLWdyb3VwfSBsaXN0LgoKQGl0 +ZW0gLS1sb2NhbC11c2VyIEB2YXJ7bmFtZX0KQGl0ZW14IC11CkBvcGluZGV4IGxv +Y2FsLXVzZXIKVXNlIEB2YXJ7bmFtZX0gYXMgdGhlIGtleSB0byBzaWduIHdpdGgu +IE5vdGUgdGhhdCB0aGlzIG9wdGlvbiBvdmVycmlkZXMKQG9wdGlvbnstLWRlZmF1 +bHQta2V5fS4KCkBpdGVtIC0tdHJ5LXNlY3JldC1rZXkgQHZhcntuYW1lfQpAb3Bp +bmRleCB0cnktc2VjcmV0LWtleQpGb3IgaGlkZGVuIHJlY2lwaWVudHMgR1BHIG5l +ZWRzIHRvIGtub3cgdGhlIGtleXMgdG8gdXNlIGZvciB0cmlhbApkZWNyeXB0aW9u +LiAgVGhlIGtleSBzZXQgd2l0aCBAb3B0aW9uey0tZGVmYXVsdC1rZXl9IGlzIGFs +d2F5cyB0cmllZApmaXJzdCwgYnV0IHRoaXMgaXMgb2Z0ZW4gbm90IHN1ZmZpY2ll +bnQuICBUaGlzIG9wdGlvbiBhbGxvd3MgdG8gc2V0IG1vcmUKa2V5cyB0byBiZSB1 +c2VkIGZvciB0cmlhbCBkZWNyeXB0aW9uLiAgQWx0aG91Z2ggYW55IHZhbGlkIHVz +ZXItaWQKc3BlY2lmaWNhdGlvbiBtYXkgYmUgdXNlZCBmb3IgQHZhcntuYW1lfSBp +dCBtYWtlcyBzZW5zZSB0byB1c2UgYXQgbGVhc3QKdGhlIGxvbmcga2V5aWQgdG8g +YXZvaWQgYW1iaWd1aXRpZXMuICBOb3RlIHRoYXQgZ3BnLWFnZW50IG1pZ2h0IHBv +cCB1cCBhCnBpbmVudHJ5IGZvciBhIGxvdCBrZXlzIHRvIGRvIHRoZSB0cmlhbCBk +ZWNyeXB0aW9uLiAgSWYgeW91IHdhbnQgdG8gc3RvcAphbGwgZnVydGhlciB0cmlh +bCBkZWNyeXB0aW9uIHlvdSBtYXkgdXNlIGNsb3NlLXdpbmRvdyBidXR0b24gaW5z +dGVhZCBvZgp0aGUgY2FuY2VsIGJ1dHRvbi4KCkBpdGVtIC0tdHJ5LWFsbC1zZWNy +ZXRzCkBvcGluZGV4IHRyeS1hbGwtc2VjcmV0cwpEb24ndCBsb29rIGF0IHRoZSBr +ZXkgSUQgYXMgc3RvcmVkIGluIHRoZSBtZXNzYWdlIGJ1dCB0cnkgYWxsIHNlY3Jl +dAprZXlzIGluIHR1cm4gdG8gZmluZCB0aGUgcmlnaHQgZGVjcnlwdGlvbiBrZXku +IFRoaXMgb3B0aW9uIGZvcmNlcyB0aGUKYmVoYXZpb3VyIGFzIHVzZWQgYnkgYW5v +bnltb3VzIHJlY2lwaWVudHMgKGNyZWF0ZWQgYnkgdXNpbmcKQG9wdGlvbnstLXRo +cm93LWtleWlkc30gb3IgQG9wdGlvbnstLWhpZGRlbi1yZWNpcGllbnR9KSBhbmQg +bWlnaHQgY29tZQpoYW5keSBpbiBjYXNlIHdoZXJlIGFuIGVuY3J5cHRlZCBtZXNz +YWdlIGNvbnRhaW5zIGEgYm9ndXMga2V5IElELgoKQGl0ZW0gLS1za2lwLWhpZGRl +bi1yZWNpcGllbnRzCkBpdGVteCAtLW5vLXNraXAtaGlkZGVuLXJlY2lwaWVudHMK +QG9waW5kZXggc2tpcC1oaWRkZW4tcmVjaXBpZW50cwpAb3BpbmRleCBuby1za2lw +LWhpZGRlbi1yZWNpcGllbnRzCkR1cmluZyBkZWNyeXB0aW9uIHNraXAgYWxsIGFu +b255bW91cyByZWNpcGllbnRzLiAgVGhpcyBvcHRpb24gaGVscHMgaW4KdGhlIGNh +c2UgdGhhdCBwZW9wbGUgdXNlIHRoZSBoaWRkZW4gcmVjaXBpZW50cyBmZWF0dXJl +IHRvIGhpZGUgdGhlcmUKb3duIGVuY3J5cHQtdG8ga2V5IGZyb20gb3RoZXJzLiAg +SWYgb25lc2VsZiBoYXMgbWFueSBzZWNyZXQga2V5cyB0aGlzCm1heSBsZWFkIHRv +IGEgbWFqb3IgYW5ub3lhbmNlIGJlY2F1c2UgYWxsIGtleXMgYXJlIHRyaWVkIGlu +IHR1cm4gdG8KZGVjcnlwdCBzb21ldGhpbmcgd2hpY2ggd2FzIG5vdCByZWFsbHkg +aW50ZW5kZWQgZm9yIGl0LiAgVGhlIGRyYXdiYWNrCm9mIHRoaXMgb3B0aW9uIGlz +IHRoYXQgaXQgaXMgY3VycmVudGx5IG5vdCBwb3NzaWJsZSB0byBkZWNyeXB0IGEK +bWVzc2FnZSB3aGljaCBpbmNsdWRlcyByZWFsIGFub255bW91cyByZWNpcGllbnRz +LgoKCkBlbmQgdGFibGUKCkBjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq +KioqKioqKioqKioqKioKQGMgKioqKioqKiogIElOUFVUIEFORCBPVVRQVVQgICoq +KioqKioqKioqKioqKgpAYyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq +KioqKioqKioqKioqCkBub2RlIEdQRyBJbnB1dCBhbmQgT3V0cHV0CkBzdWJzZWN0 +aW9uIElucHV0IGFuZCBPdXRwdXQKCkB0YWJsZSBAZ251cGd0YWJvcHQKCkBpdGVt +IC0tYXJtb3IKQGl0ZW14IC1hCkBvcGluZGV4IGFybW9yCkNyZWF0ZSBBU0NJSSBh +cm1vcmVkIG91dHB1dC4gIFRoZSBkZWZhdWx0IGlzIHRvIGNyZWF0ZSB0aGUgYmlu +YXJ5Ck9wZW5QR1AgZm9ybWF0LgoKQGl0ZW0gLS1uby1hcm1vcgpAb3BpbmRleCBu +by1hcm1vcgpBc3N1bWUgdGhlIGlucHV0IGRhdGEgaXMgbm90IGluIEFTQ0lJIGFy +bW9yZWQgZm9ybWF0LgoKQGl0ZW0gLS1vdXRwdXQgQHZhcntmaWxlfQpAaXRlbXgg +LW8gQHZhcntmaWxlfQpAb3BpbmRleCBvdXRwdXQKV3JpdGUgb3V0cHV0IHRvIEB2 +YXJ7ZmlsZX0uCgpAaXRlbSAtLW1heC1vdXRwdXQgQGNvZGV7bn0KQG9waW5kZXgg +bWF4LW91dHB1dApUaGlzIG9wdGlvbiBzZXRzIGEgbGltaXQgb24gdGhlIG51bWJl +ciBvZiBieXRlcyB0aGF0IHdpbGwgYmUgZ2VuZXJhdGVkCndoZW4gcHJvY2Vzc2lu +ZyBhIGZpbGUuIFNpbmNlIE9wZW5QR1Agc3VwcG9ydHMgdmFyaW91cyBsZXZlbHMg +b2YKY29tcHJlc3Npb24sIGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIHBsYWludGV4 +dCBvZiBhIGdpdmVuIG1lc3NhZ2UgbWF5IGJlCnNpZ25pZmljYW50bHkgbGFyZ2Vy +IHRoYW4gdGhlIG9yaWdpbmFsIE9wZW5QR1AgbWVzc2FnZS4gV2hpbGUgR251UEcK +d29ya3MgcHJvcGVybHkgd2l0aCBzdWNoIG1lc3NhZ2VzLCB0aGVyZSBpcyBvZnRl +biBhIGRlc2lyZSB0byBzZXQgYQptYXhpbXVtIGZpbGUgc2l6ZSB0aGF0IHdpbGwg +YmUgZ2VuZXJhdGVkIGJlZm9yZSBwcm9jZXNzaW5nIGlzIGZvcmNlZCB0bwpzdG9w +IGJ5IHRoZSBPUyBsaW1pdHMuIERlZmF1bHRzIHRvIDAsIHdoaWNoIG1lYW5zICJu +byBsaW1pdCIuCgpAaXRlbSAtLWltcG9ydC1vcHRpb25zIEBjb2Rle3BhcmFtZXRl +cnN9CkBvcGluZGV4IGltcG9ydC1vcHRpb25zClRoaXMgaXMgYSBzcGFjZSBvciBj +b21tYSBkZWxpbWl0ZWQgc3RyaW5nIHRoYXQgZ2l2ZXMgb3B0aW9ucyBmb3IKaW1w +b3J0aW5nIGtleXMuIE9wdGlvbnMgY2FuIGJlIHByZXBlbmRlZCB3aXRoIGEgYG5v +LScgdG8gZ2l2ZSB0aGUKb3Bwb3NpdGUgbWVhbmluZy4gVGhlIG9wdGlvbnMgYXJl +OgoKQHRhYmxlIEBhc2lzCgogIEBpdGVtIGltcG9ydC1sb2NhbC1zaWdzCiAgQWxs +b3cgaW1wb3J0aW5nIGtleSBzaWduYXR1cmVzIG1hcmtlZCBhcyAibG9jYWwiLiBU +aGlzIGlzIG5vdAogIGdlbmVyYWxseSB1c2VmdWwgdW5sZXNzIGEgc2hhcmVkIGtl +eXJpbmcgc2NoZW1lIGlzIGJlaW5nIHVzZWQuCiAgRGVmYXVsdHMgdG8gbm8uCgog +IEBpdGVtIGtlZXAtb3duZXJ0cnVzdAogIE5vcm1hbGx5IHBvc3NpYmxlIHN0aWxs +IGV4aXN0aW5nIG93bmVydHJ1c3QgdmFsdWVzIG9mIGEga2V5IGFyZQogIGNsZWFy +ZWQgaWYgYSBrZXkgaXMgaW1wb3J0ZWQuICBUaGlzIGlzIGluIGdlbmVyYWwgZGVz +aXJhYmxlIHNvIHRoYXQKICBhIGZvcm1lcmx5IGRlbGV0ZWQga2V5IGRvZXMgbm90 +IGF1dG9tYXRpY2FsbHkgZ2FpbiBhbiBvd25lcnRydXN0CiAgdmFsdWVzIG1lcmVs +eSBkdWUgdG8gaW1wb3J0LiAgT24gdGhlIG90aGVyIGhhbmQgaXQgaXMgc29tZXRp +bWVzCiAgbmVjZXNzYXJ5IHRvIHJlLWltcG9ydCBhIHRydXN0ZWQgc2V0IG9mIGtl +eXMgYWdhaW4gYnV0IGtlZXBpbmcKICBhbHJlYWR5IGFzc2lnbmVkIG93bmVydHJ1 +c3QgdmFsdWVzLiAgVGhpcyBjYW4gYmUgYWNoaXZlZCBieSB1c2luZwogIHRoaXMg +b3B0aW9uLgoKICBAaXRlbSByZXBhaXItcGtzLXN1YmtleS1idWcKICBEdXJpbmcg +aW1wb3J0LCBhdHRlbXB0IHRvIHJlcGFpciB0aGUgZGFtYWdlIGNhdXNlZCBieSB0 +aGUgUEtTIGtleXNlcnZlcgogIGJ1ZyAocHJlIHZlcnNpb24gMC45LjYpIHRoYXQg +bWFuZ2xlcyBrZXlzIHdpdGggbXVsdGlwbGUgc3Via2V5cy4gTm90ZQogIHRoYXQg +dGhpcyBjYW5ub3QgY29tcGxldGVseSByZXBhaXIgdGhlIGRhbWFnZWQga2V5IGFz +IHNvbWUgY3J1Y2lhbCBkYXRhCiAgaXMgcmVtb3ZlZCBieSB0aGUga2V5c2VydmVy +LCBidXQgaXQgZG9lcyBhdCBsZWFzdCBnaXZlIHlvdSBiYWNrIG9uZQogIHN1Ymtl +eS4gRGVmYXVsdHMgdG8gbm8gZm9yIHJlZ3VsYXIgQG9wdGlvbnstLWltcG9ydH0g +YW5kIHRvIHllcyBmb3IKICBrZXlzZXJ2ZXIgQG9wdGlvbnstLXJlY3Yta2V5c30u +CgogIEBpdGVtIG1lcmdlLW9ubHkKICBEdXJpbmcgaW1wb3J0LCBhbGxvdyBrZXkg +dXBkYXRlcyB0byBleGlzdGluZyBrZXlzLCBidXQgZG8gbm90IGFsbG93CiAgYW55 +IG5ldyBrZXlzIHRvIGJlIGltcG9ydGVkLiBEZWZhdWx0cyB0byBuby4KCiAgQGl0 +ZW0gaW1wb3J0LWNsZWFuCiAgQWZ0ZXIgaW1wb3J0LCBjb21wYWN0IChyZW1vdmUg +YWxsIHNpZ25hdHVyZXMgZXhjZXB0IHRoZQogIHNlbGYtc2lnbmF0dXJlKSBhbnkg +dXNlciBJRHMgZnJvbSB0aGUgbmV3IGtleSB0aGF0IGFyZSBub3QgdXNhYmxlLgog +IFRoZW4sIHJlbW92ZSBhbnkgc2lnbmF0dXJlcyBmcm9tIHRoZSBuZXcga2V5IHRo +YXQgYXJlIG5vdCB1c2FibGUuCiAgVGhpcyBpbmNsdWRlcyBzaWduYXR1cmVzIHRo +YXQgd2VyZSBpc3N1ZWQgYnkga2V5cyB0aGF0IGFyZSBub3QgcHJlc2VudAogIG9u +IHRoZSBrZXlyaW5nLiBUaGlzIG9wdGlvbiBpcyB0aGUgc2FtZSBhcyBydW5uaW5n +IHRoZSBAb3B0aW9uey0tZWRpdC1rZXl9CiAgY29tbWFuZCAiY2xlYW4iIGFmdGVy +IGltcG9ydC4gRGVmYXVsdHMgdG8gbm8uCgogIEBpdGVtIGltcG9ydC1taW5pbWFs +CiAgSW1wb3J0IHRoZSBzbWFsbGVzdCBrZXkgcG9zc2libGUuIFRoaXMgcmVtb3Zl +cyBhbGwgc2lnbmF0dXJlcyBleGNlcHQKICB0aGUgbW9zdCByZWNlbnQgc2VsZi1z +aWduYXR1cmUgb24gZWFjaCB1c2VyIElELiBUaGlzIG9wdGlvbiBpcyB0aGUKICBz +YW1lIGFzIHJ1bm5pbmcgdGhlIEBvcHRpb257LS1lZGl0LWtleX0gY29tbWFuZCAi +bWluaW1pemUiIGFmdGVyIGltcG9ydC4KICBEZWZhdWx0cyB0byBuby4KQGVuZCB0 +YWJsZQoKQGl0ZW0gLS1leHBvcnQtb3B0aW9ucyBAY29kZXtwYXJhbWV0ZXJzfQpA +b3BpbmRleCBleHBvcnQtb3B0aW9ucwpUaGlzIGlzIGEgc3BhY2Ugb3IgY29tbWEg +ZGVsaW1pdGVkIHN0cmluZyB0aGF0IGdpdmVzIG9wdGlvbnMgZm9yCmV4cG9ydGlu +ZyBrZXlzLiBPcHRpb25zIGNhbiBiZSBwcmVwZW5kZWQgd2l0aCBhIGBuby0nIHRv +IGdpdmUgdGhlCm9wcG9zaXRlIG1lYW5pbmcuIFRoZSBvcHRpb25zIGFyZToKCkB0 +YWJsZSBAYXNpcwoKICBAaXRlbSBleHBvcnQtbG9jYWwtc2lncwogIEFsbG93IGV4 +cG9ydGluZyBrZXkgc2lnbmF0dXJlcyBtYXJrZWQgYXMgImxvY2FsIi4gVGhpcyBp +cyBub3QKICBnZW5lcmFsbHkgdXNlZnVsIHVubGVzcyBhIHNoYXJlZCBrZXlyaW5n +IHNjaGVtZSBpcyBiZWluZyB1c2VkLgogIERlZmF1bHRzIHRvIG5vLgoKICBAaXRl +bSBleHBvcnQtYXR0cmlidXRlcwogIEluY2x1ZGUgYXR0cmlidXRlIHVzZXIgSURz +IChwaG90byBJRHMpIHdoaWxlIGV4cG9ydGluZy4gVGhpcyBpcwogIHVzZWZ1bCB0 +byBleHBvcnQga2V5cyBpZiB0aGV5IGFyZSBnb2luZyB0byBiZSB1c2VkIGJ5IGFu +IE9wZW5QR1AKICBwcm9ncmFtIHRoYXQgZG9lcyBub3QgYWNjZXB0IGF0dHJpYnV0 +ZSB1c2VyIElEcy4gRGVmYXVsdHMgdG8geWVzLgoKICBAaXRlbSBleHBvcnQtc2Vu +c2l0aXZlLXJldmtleXMKICBJbmNsdWRlIGRlc2lnbmF0ZWQgcmV2b2tlciBpbmZv +cm1hdGlvbiB0aGF0IHdhcyBtYXJrZWQgYXMKICAic2Vuc2l0aXZlIi4gRGVmYXVs +dHMgdG8gbm8uCgogIEBjIFNpbmNlIEdudVBHIDIuMSBncGctYWdlbnQgbWFuYWdl +cyB0aGUgc2VjcmV0IGtleSBhbmQgdGh1cyB0aGUKICBAYyBleHBvcnQtcmVzZXQt +c3Via2V5LXBhc3N3ZCBoYWNrIGlzIG5vdCBhbnltb3JlIGp1c3RpZmllZC4gIFN1 +Y2ggdXNlCiAgQGMgY2FzZXMgbWF5IGJlIGltcGxlbWVudGVkIHVzaW5nIGEgc3Bl +Y2lhbGl6ZWQgc2VjcmV0IGtleSBleHBvcnQKICBAYyB0b29sLgogIEBjIEBpdGVt +IGV4cG9ydC1yZXNldC1zdWJrZXktcGFzc3dkCiAgQGMgV2hlbiB1c2luZyB0aGUg +QG9wdGlvbnstLWV4cG9ydC1zZWNyZXQtc3Via2V5c30gY29tbWFuZCwgdGhpcyBv +cHRpb24gcmVzZXRzCiAgQGMgdGhlIHBhc3NwaHJhc2VzIGZvciBhbGwgZXhwb3J0 +ZWQgc3Via2V5cyB0byBlbXB0eS4gVGhpcyBpcyB1c2VmdWwKICBAYyB3aGVuIHRo +ZSBleHBvcnRlZCBzdWJrZXkgaXMgdG8gYmUgdXNlZCBvbiBhbiB1bmF0dGVuZGVk +IG1hY2hpbmUgd2hlcmUKICBAYyBhIHBhc3NwaHJhc2UgZG9lc24ndCBuZWNlc3Nh +cmlseSBtYWtlIHNlbnNlLiBEZWZhdWx0cyB0byBuby4KCiAgQGl0ZW0gZXhwb3J0 +LWNsZWFuCiAgQ29tcGFjdCAocmVtb3ZlIGFsbCBzaWduYXR1cmVzIGZyb20pIHVz +ZXIgSURzIG9uIHRoZSBrZXkgYmVpbmcKICBleHBvcnRlZCBpZiB0aGUgdXNlciBJ +RHMgYXJlIG5vdCB1c2FibGUuIEFsc28sIGRvIG5vdCBleHBvcnQgYW55CiAgc2ln +bmF0dXJlcyB0aGF0IGFyZSBub3QgdXNhYmxlLiBUaGlzIGluY2x1ZGVzIHNpZ25h +dHVyZXMgdGhhdCB3ZXJlCiAgaXNzdWVkIGJ5IGtleXMgdGhhdCBhcmUgbm90IHBy +ZXNlbnQgb24gdGhlIGtleXJpbmcuIFRoaXMgb3B0aW9uIGlzCiAgdGhlIHNhbWUg +YXMgcnVubmluZyB0aGUgQG9wdGlvbnstLWVkaXQta2V5fSBjb21tYW5kICJjbGVh +biIgYmVmb3JlIGV4cG9ydAogIGV4Y2VwdCB0aGF0IHRoZSBsb2NhbCBjb3B5IG9m +IHRoZSBrZXkgaXMgbm90IG1vZGlmaWVkLiBEZWZhdWx0cyB0bwogIG5vLgoKICBA +aXRlbSBleHBvcnQtbWluaW1hbAogIEV4cG9ydCB0aGUgc21hbGxlc3Qga2V5IHBv +c3NpYmxlLiBUaGlzIHJlbW92ZXMgYWxsIHNpZ25hdHVyZXMgZXhjZXB0IHRoZQog +IG1vc3QgcmVjZW50IHNlbGYtc2lnbmF0dXJlIG9uIGVhY2ggdXNlciBJRC4gVGhp +cyBvcHRpb24gaXMgdGhlIHNhbWUgYXMKICBydW5uaW5nIHRoZSBAb3B0aW9uey0t +ZWRpdC1rZXl9IGNvbW1hbmQgIm1pbmltaXplIiBiZWZvcmUgZXhwb3J0IGV4Y2Vw +dAogIHRoYXQgdGhlIGxvY2FsIGNvcHkgb2YgdGhlIGtleSBpcyBub3QgbW9kaWZp +ZWQuIERlZmF1bHRzIHRvIG5vLgpAZW5kIHRhYmxlCgpAaXRlbSAtLXdpdGgtY29s +b25zCkBvcGluZGV4IHdpdGgtY29sb25zClByaW50IGtleSBsaXN0aW5ncyBkZWxp +bWl0ZWQgYnkgY29sb25zLiBOb3RlIHRoYXQgdGhlIG91dHB1dCB3aWxsIGJlCmVu +Y29kZWQgaW4gVVRGLTggcmVnYXJkbGVzcyBvZiBhbnkgQG9wdGlvbnstLWRpc3Bs +YXktY2hhcnNldH0gc2V0dGluZy4gVGhpcwpmb3JtYXQgaXMgdXNlZnVsIHdoZW4g +R251UEcgaXMgY2FsbGVkIGZyb20gc2NyaXB0cyBhbmQgb3RoZXIgcHJvZ3JhbXMK +YXMgaXQgaXMgZWFzaWx5IG1hY2hpbmUgcGFyc2VkLiBUaGUgZGV0YWlscyBvZiB0 +aGlzIGZvcm1hdCBhcmUKZG9jdW1lbnRlZCBpbiB0aGUgZmlsZSBAZmlsZXtkb2Mv +REVUQUlMU30sIHdoaWNoIGlzIGluY2x1ZGVkIGluIHRoZSBHbnVQRwpzb3VyY2Ug +ZGlzdHJpYnV0aW9uLgoKCkBpdGVtIC0tcHJpbnQtcGthLXJlY29yZHMKQG9waW5k +ZXggcHJpbnQtcGthLXJlY29yZHMKTW9kaWZ5IHRoZSBvdXRwdXQgb2YgdGhlIGxp +c3QgY29tbWFuZHMgdG8gcHJpbnQgUEtBIHJlY29yZHMgc3VpdGFibGUKdG8gcHV0 +IGludG8gRE5TIHpvbmUgZmlsZXMuICBBbiBPUklHSU4gbGluZSBpcyBwcmludGVk +IGJlZm9yZSBlYWNoCnJlY29yZCB0byBhbGxvdyBkaXZlcnRpbmcgdGhlIHJlY29y +ZHMgdG8gdGhlIGNvcnJlc3BvbmRpbmcgem9uZSBmaWxlLgoKQGl0ZW0gLS1wcmlu +dC1kYW5lLXJlY29yZHMKQG9waW5kZXggcHJpbnQtZGFuZS1yZWNvcmRzCk1vZGlm +eSB0aGUgb3V0cHV0IG9mIHRoZSBsaXN0IGNvbW1hbmRzIHRvIHByaW50IE9wZW5Q +R1AgREFORSByZWNvcmRzCnN1aXRhYmxlIHRvIHB1dCBpbnRvIEROUyB6b25lIGZp +bGVzLiAgQW4gT1JJR0lOIGxpbmUgaXMgcHJpbnRlZCBiZWZvcmUKZWFjaCByZWNv +cmQgdG8gYWxsb3cgZGl2ZXJ0aW5nIHRoZSByZWNvcmRzIHRvIHRoZSBjb3JyZXNw +b25kaW5nIHpvbmUKZmlsZS4KCkBpdGVtIC0tZml4ZWQtbGlzdC1tb2RlCkBvcGlu +ZGV4IGZpeGVkLWxpc3QtbW9kZQpEbyBub3QgbWVyZ2UgcHJpbWFyeSB1c2VyIElE +IGFuZCBwcmltYXJ5IGtleSBpbiBAb3B0aW9uey0td2l0aC1jb2xvbn0KbGlzdGlu +ZyBtb2RlIGFuZCBwcmludCBhbGwgdGltZXN0YW1wcyBhcyBzZWNvbmRzIHNpbmNl +IDE5NzAtMDEtMDEuClNpbmNlIEdudVBHIDIuMC4xMCwgdGhpcyBtb2RlIGlzIGFs +d2F5cyB1c2VkIGFuZCB0aHVzIHRoaXMgb3B0aW9uIGlzCm9ic29sZXRlOyBpdCBk +b2VzIG5vdCBoYXJtIHRvIHVzZSBpdCB0aG91Z2guCgpAaXRlbSAtLWxlZ2FjeS1s +aXN0LW1vZGUKQG9waW5kZXggbGVnYWN5LWxpc3QtbW9kZQpSZXZlcnQgdG8gdGhl +IHByZS0yLjEgcHVibGljIGtleSBsaXN0IG1vZGUuICBUaGlzIG9ubHkgYWZmZWN0 +cyB0aGUKaHVtYW4gcmVhZGFibGUgb3V0cHV0IGFuZCBub3QgdGhlIG1hY2hpbmUg +aW50ZXJmYWNlCihpLmUuIEBjb2Rley0td2l0aC1jb2xvbnN9KS4gIE5vdGUgdGhh +dCB0aGUgbGVnYWN5IGZvcm1hdCBkb2VzIG5vdAphbGxvdyB0byBjb252ZXkgc3Vp +dGFibGUgaW5mb3JtYXRpb24gZm9yIGVsbGlwdGljIGN1cnZlcy4KCkBpdGVtIC0t +d2l0aC1maW5nZXJwcmludApAb3BpbmRleCB3aXRoLWZpbmdlcnByaW50ClNhbWUg +YXMgdGhlIGNvbW1hbmQgQG9wdGlvbnstLWZpbmdlcnByaW50fSBidXQgY2hhbmdl +cyBvbmx5IHRoZSBmb3JtYXQKb2YgdGhlIG91dHB1dCBhbmQgbWF5IGJlIHVzZWQg +dG9nZXRoZXIgd2l0aCBhbm90aGVyIGNvbW1hbmQuCgpAaXRlbSAtLXdpdGgtaWNh +by1zcGVsbGluZwpAb3BpbmRleCB3aXRoLWljYW8tc3BlbGxpbmcKUHJpbnQgdGhl +IElDQU8gc3BlbGxpbmcgb2YgdGhlIGZpbmdlcnByaW50IGluIGFkZGl0aW9uIHRv +IHRoZSBoZXggZGlnaXRzLgoKQGl0ZW0gLS13aXRoLWtleWdyaXAKQG9waW5kZXgg +d2l0aC1rZXlncmlwCkluY2x1ZGUgdGhlIGtleWdyaXAgaW4gdGhlIGtleSBsaXN0 +aW5ncy4KCkBpdGVtIC0td2l0aC1zZWNyZXQKQG9waW5kZXggd2l0aC1zZWNyZXQK +SW5jbHVkZSBpbmZvIGFib3V0IHRoZSBwcmVzZW5jZSBvZiBhIHNlY3JldCBrZXkg +aW4gcHVibGljIGtleSBsaXN0aW5ncwpkb25lIHdpdGggQGNvZGV7LS13aXRoLWNv +bG9uc30uCgpAZW5kIHRhYmxlCgpAYyAqKioqKioqKioqKioqKioqKioqKioqKioq +KioqKioqKioqKioqKioqKioqCkBjICoqKioqKioqICBPUEVOUEdQIE9QVElPTlMg +ICoqKioqKioqKioqKioqKioKQGMgKioqKioqKioqKioqKioqKioqKioqKioqKioq +KioqKioqKioqKioqKioqKgpAbm9kZSBPcGVuUEdQIE9wdGlvbnMKQHN1YnNlY3Rp +b24gT3BlblBHUCBwcm90b2NvbCBzcGVjaWZpYyBvcHRpb25zLgoKQHRhYmxlIEBn +bnVwZ3RhYm9wdAoKQGl0ZW0gLXQsIC0tdGV4dG1vZGUKQGl0ZW14IC0tbm8tdGV4 +dG1vZGUKQG9waW5kZXggdGV4dG1vZGUKVHJlYXQgaW5wdXQgZmlsZXMgYXMgdGV4 +dCBhbmQgc3RvcmUgdGhlbSBpbiB0aGUgT3BlblBHUCBjYW5vbmljYWwgdGV4dApm +b3JtIHdpdGggc3RhbmRhcmQgIkNSTEYiIGxpbmUgZW5kaW5ncy4gVGhpcyBhbHNv +IHNldHMgdGhlIG5lY2Vzc2FyeQpmbGFncyB0byBpbmZvcm0gdGhlIHJlY2lwaWVu +dCB0aGF0IHRoZSBlbmNyeXB0ZWQgb3Igc2lnbmVkIGRhdGEgaXMgdGV4dAphbmQg +bWF5IG5lZWQgaXRzIGxpbmUgZW5kaW5ncyBjb252ZXJ0ZWQgYmFjayB0byB3aGF0 +ZXZlciB0aGUgbG9jYWwKc3lzdGVtIHVzZXMuIFRoaXMgb3B0aW9uIGlzIHVzZWZ1 +bCB3aGVuIGNvbW11bmljYXRpbmcgYmV0d2VlbiB0d28KcGxhdGZvcm1zIHRoYXQg +aGF2ZSBkaWZmZXJlbnQgbGluZSBlbmRpbmcgY29udmVudGlvbnMgKFVOSVgtbGlr +ZSB0byBNYWMsCk1hYyB0byBXaW5kb3dzLCBldGMpLiBAb3B0aW9uey0tbm8tdGV4 +dG1vZGV9IGRpc2FibGVzIHRoaXMgb3B0aW9uLCBhbmQKaXMgdGhlIGRlZmF1bHQu +CgpAaXRlbSAtLWZvcmNlLXYzLXNpZ3MKQGl0ZW14IC0tbm8tZm9yY2UtdjMtc2ln +cwpAaXRlbSAtLWZvcmNlLXY0LWNlcnRzCkBpdGVteCAtLW5vLWZvcmNlLXY0LWNl +cnRzClRoZXNlIG9wdGlvbnMgYXJlIG9ic29sZXRlIGFuZCBoYXZlIG5vIGVmZmVj +dCBzaW5jZSBHbnVQRyAyLjEuCgpAaXRlbSAtLWZvcmNlLW1kYwpAb3BpbmRleCBm +b3JjZS1tZGMKRm9yY2UgdGhlIHVzZSBvZiBlbmNyeXB0aW9uIHdpdGggYSBtb2Rp +ZmljYXRpb24gZGV0ZWN0aW9uIGNvZGUuIFRoaXMKaXMgYWx3YXlzIHVzZWQgd2l0 +aCB0aGUgbmV3ZXIgY2lwaGVycyAodGhvc2Ugd2l0aCBhIGJsb2Nrc2l6ZSBncmVh +dGVyCnRoYW4gNjQgYml0cyksIG9yIGlmIGFsbCBvZiB0aGUgcmVjaXBpZW50IGtl +eXMgaW5kaWNhdGUgTURDIHN1cHBvcnQgaW4KdGhlaXIgZmVhdHVyZSBmbGFncy4K +CkBpdGVtIC0tZGlzYWJsZS1tZGMKQG9waW5kZXggZGlzYWJsZS1tZGMKRGlzYWJs +ZSB0aGUgdXNlIG9mIHRoZSBtb2RpZmljYXRpb24gZGV0ZWN0aW9uIGNvZGUuIE5v +dGUgdGhhdCBieQp1c2luZyB0aGlzIG9wdGlvbiwgdGhlIGVuY3J5cHRlZCBtZXNz +YWdlIGJlY29tZXMgdnVsbmVyYWJsZSB0byBhCm1lc3NhZ2UgbW9kaWZpY2F0aW9u +IGF0dGFjay4KCkBpdGVtIC0tcGVyc29uYWwtY2lwaGVyLXByZWZlcmVuY2VzIEBj +b2Rle3N0cmluZ30KQG9waW5kZXggcGVyc29uYWwtY2lwaGVyLXByZWZlcmVuY2Vz +ClNldCB0aGUgbGlzdCBvZiBwZXJzb25hbCBjaXBoZXIgcHJlZmVyZW5jZXMgdG8g +QGNvZGV7c3RyaW5nfS4gIFVzZQpAY29tbWFuZHtAZ3BnbmFtZSAtLXZlcnNpb259 +IHRvIGdldCBhIGxpc3Qgb2YgYXZhaWxhYmxlIGFsZ29yaXRobXMsCmFuZCB1c2Ug +QGNvZGV7bm9uZX0gdG8gc2V0IG5vIHByZWZlcmVuY2UgYXQgYWxsLiAgVGhpcyBh +bGxvd3MgdGhlIHVzZXIKdG8gc2FmZWx5IG92ZXJyaWRlIHRoZSBhbGdvcml0aG0g +Y2hvc2VuIGJ5IHRoZSByZWNpcGllbnQga2V5CnByZWZlcmVuY2VzLCBhcyBHUEcg +d2lsbCBvbmx5IHNlbGVjdCBhbiBhbGdvcml0aG0gdGhhdCBpcyB1c2FibGUgYnkK +YWxsIHJlY2lwaWVudHMuICBUaGUgbW9zdCBoaWdobHkgcmFua2VkIGNpcGhlciBp +biB0aGlzIGxpc3QgaXMgYWxzbwp1c2VkIGZvciB0aGUgQG9wdGlvbnstLXN5bW1l +dHJpY30gZW5jcnlwdGlvbiBjb21tYW5kLgoKQGl0ZW0gLS1wZXJzb25hbC1kaWdl +c3QtcHJlZmVyZW5jZXMgQGNvZGV7c3RyaW5nfQpAb3BpbmRleCBwZXJzb25hbC1k +aWdlc3QtcHJlZmVyZW5jZXMKU2V0IHRoZSBsaXN0IG9mIHBlcnNvbmFsIGRpZ2Vz +dCBwcmVmZXJlbmNlcyB0byBAY29kZXtzdHJpbmd9LiAgVXNlCkBjb21tYW5ke0Bn +cGduYW1lIC0tdmVyc2lvbn0gdG8gZ2V0IGEgbGlzdCBvZiBhdmFpbGFibGUgYWxn +b3JpdGhtcywKYW5kIHVzZSBAY29kZXtub25lfSB0byBzZXQgbm8gcHJlZmVyZW5j +ZSBhdCBhbGwuICBUaGlzIGFsbG93cyB0aGUgdXNlcgp0byBzYWZlbHkgb3ZlcnJp +ZGUgdGhlIGFsZ29yaXRobSBjaG9zZW4gYnkgdGhlIHJlY2lwaWVudCBrZXkKcHJl +ZmVyZW5jZXMsIGFzIEdQRyB3aWxsIG9ubHkgc2VsZWN0IGFuIGFsZ29yaXRobSB0 +aGF0IGlzIHVzYWJsZSBieQphbGwgcmVjaXBpZW50cy4gIFRoZSBtb3N0IGhpZ2hs +eSByYW5rZWQgZGlnZXN0IGFsZ29yaXRobSBpbiB0aGlzIGxpc3QKaXMgYWxzbyB1 +c2VkIHdoZW4gc2lnbmluZyB3aXRob3V0IGVuY3J5cHRpb24KKGUuZy4gQG9wdGlv +bnstLWNsZWFyc2lnbn0gb3IgQG9wdGlvbnstLXNpZ259KS4KCkBpdGVtIC0tcGVy +c29uYWwtY29tcHJlc3MtcHJlZmVyZW5jZXMgQGNvZGV7c3RyaW5nfQpAb3BpbmRl +eCBwZXJzb25hbC1jb21wcmVzcy1wcmVmZXJlbmNlcwpTZXQgdGhlIGxpc3Qgb2Yg +cGVyc29uYWwgY29tcHJlc3Npb24gcHJlZmVyZW5jZXMgdG8gQGNvZGV7c3RyaW5n +fS4KVXNlIEBjb21tYW5ke0BncGduYW1lIC0tdmVyc2lvbn0gdG8gZ2V0IGEgbGlz +dCBvZiBhdmFpbGFibGUKYWxnb3JpdGhtcywgYW5kIHVzZSBAY29kZXtub25lfSB0 +byBzZXQgbm8gcHJlZmVyZW5jZSBhdCBhbGwuICBUaGlzCmFsbG93cyB0aGUgdXNl +ciB0byBzYWZlbHkgb3ZlcnJpZGUgdGhlIGFsZ29yaXRobSBjaG9zZW4gYnkgdGhl +CnJlY2lwaWVudCBrZXkgcHJlZmVyZW5jZXMsIGFzIEdQRyB3aWxsIG9ubHkgc2Vs +ZWN0IGFuIGFsZ29yaXRobSB0aGF0CmlzIHVzYWJsZSBieSBhbGwgcmVjaXBpZW50 +cy4gIFRoZSBtb3N0IGhpZ2hseSByYW5rZWQgY29tcHJlc3Npb24KYWxnb3JpdGht +IGluIHRoaXMgbGlzdCBpcyBhbHNvIHVzZWQgd2hlbiB0aGVyZSBhcmUgbm8gcmVj +aXBpZW50IGtleXMKdG8gY29uc2lkZXIgKGUuZy4gQG9wdGlvbnstLXN5bW1ldHJp +Y30pLgoKQGl0ZW0gLS1zMmstY2lwaGVyLWFsZ28gQGNvZGV7bmFtZX0KQG9waW5k +ZXggczJrLWNpcGhlci1hbGdvClVzZSBAY29kZXtuYW1lfSBhcyB0aGUgY2lwaGVy +IGFsZ29yaXRobSB1c2VkIHRvIHByb3RlY3Qgc2VjcmV0IGtleXMuClRoZSBkZWZh +dWx0IGNpcGhlciBpcyBAdmFsdWV7R1BHU1lNRU5DQUxHT30uIFRoaXMgY2lwaGVy +IGlzIGFsc28gdXNlZApmb3Igc3ltbWV0cmljIGVuY3J5cHRpb24gd2l0aCBhIHBh +c3NwaHJhc2UgaWYKQG9wdGlvbnstLXBlcnNvbmFsLWNpcGhlci1wcmVmZXJlbmNl +c30gYW5kIEBvcHRpb257LS1jaXBoZXItYWxnb30gaXMKbm90IGdpdmVuLgoKQGl0 +ZW0gLS1zMmstZGlnZXN0LWFsZ28gQGNvZGV7bmFtZX0KQG9waW5kZXggczJrLWRp +Z2VzdC1hbGdvClVzZSBAY29kZXtuYW1lfSBhcyB0aGUgZGlnZXN0IGFsZ29yaXRo +bSB1c2VkIHRvIG1hbmdsZSB0aGUgcGFzc3BocmFzZXMuClRoZSBkZWZhdWx0IGFs +Z29yaXRobSBpcyBTSEEtMS4KCkBpdGVtIC0tczJrLW1vZGUgQGNvZGV7bn0KQG9w +aW5kZXggczJrLW1vZGUKU2VsZWN0cyBob3cgcGFzc3BocmFzZXMgYXJlIG1hbmds +ZWQuIElmIEBjb2Rle259IGlzIDAgYSBwbGFpbgpwYXNzcGhyYXNlICh3aGljaCBp +cyBub3QgcmVjb21tZW5kZWQpIHdpbGwgYmUgdXNlZCwgYSAxIGFkZHMgYSBzYWx0 +IHRvCnRoZSBwYXNzcGhyYXNlIGFuZCBhIDMgKHRoZSBkZWZhdWx0KSBpdGVyYXRl +cyB0aGUgd2hvbGUgcHJvY2VzcyBhCm51bWJlciBvZiB0aW1lcyAoc2VlIC0tczJr +LWNvdW50KS4gIFVubGVzcyBAb3B0aW9uey0tcmZjMTk5MX0gaXMgdXNlZCwKdGhp +cyBtb2RlIGlzIGFsc28gdXNlZCBmb3Igc3ltbWV0cmljIGVuY3J5cHRpb24gd2l0 +aCBhIHBhc3NwaHJhc2UuCgpAaXRlbSAtLXMyay1jb3VudCBAY29kZXtufQpAb3Bp +bmRleCBzMmstY291bnQKU3BlY2lmeSBob3cgbWFueSB0aW1lcyB0aGUgcGFzc3Bo +cmFzZSBtYW5nbGluZyBpcyByZXBlYXRlZC4gIFRoaXMKdmFsdWUgbWF5IHJhbmdl +IGJldHdlZW4gMTAyNCBhbmQgNjUwMTE3MTIgaW5jbHVzaXZlLiAgVGhlIGRlZmF1 +bHQgaXMKaW5xdWlyZWQgZnJvbSBncGctYWdlbnQuICBOb3RlIHRoYXQgbm90IGFs +bCB2YWx1ZXMgaW4gdGhlCjEwMjQtNjUwMTE3MTIgcmFuZ2UgYXJlIGxlZ2FsIGFu +ZCBpZiBhbiBpbGxlZ2FsIHZhbHVlIGlzIHNlbGVjdGVkLApHbnVQRyB3aWxsIHJv +dW5kIHVwIHRvIHRoZSBuZWFyZXN0IGxlZ2FsIHZhbHVlLiAgVGhpcyBvcHRpb24g +aXMgb25seQptZWFuaW5nZnVsIGlmIEBvcHRpb257LS1zMmstbW9kZX0gaXMgMy4K +CgpAZW5kIHRhYmxlCgpAYyAqKioqKioqKioqKioqKioqKioqKioqKioqKioKQGMg +KioqKioqKiBDb21wbGlhbmNlICoqKioqKioqCkBjICoqKioqKioqKioqKioqKioq +KioqKioqKioqKgpAbm9kZSBDb21wbGlhbmNlIE9wdGlvbnMKQHN1YnNlY3Rpb24g +Q29tcGxpYW5jZSBvcHRpb25zCgpUaGVzZSBvcHRpb25zIGNvbnRyb2wgd2hhdCBH +bnVQRyBpcyBjb21wbGlhbnQgdG8uIE9ubHkgb25lIG9mIHRoZXNlCm9wdGlvbnMg +bWF5IGJlIGFjdGl2ZSBhdCBhIHRpbWUuIE5vdGUgdGhhdCB0aGUgZGVmYXVsdCBz +ZXR0aW5nIG9mCnRoaXMgaXMgbmVhcmx5IGFsd2F5cyB0aGUgY29ycmVjdCBvbmUu +IFNlZSB0aGUgSU5URVJPUEVSQUJJTElUWSBXSVRICk9USEVSIE9QRU5QR1AgUFJP +R1JBTVMgc2VjdGlvbiBiZWxvdyBiZWZvcmUgdXNpbmcgb25lIG9mIHRoZXNlCm9w +dGlvbnMuCgpAdGFibGUgQGdudXBndGFib3B0CgpAaXRlbSAtLWdudXBnCkBvcGlu +ZGV4IGdudXBnClVzZSBzdGFuZGFyZCBHbnVQRyBiZWhhdmlvci4gVGhpcyBpcyBl +c3NlbnRpYWxseSBPcGVuUEdQIGJlaGF2aW9yCihzZWUgQG9wdGlvbnstLW9wZW5w +Z3B9KSwgYnV0IHdpdGggc29tZSBhZGRpdGlvbmFsIHdvcmthcm91bmRzIGZvciBj +b21tb24KY29tcGF0aWJpbGl0eSBwcm9ibGVtcyBpbiBkaWZmZXJlbnQgdmVyc2lv +bnMgb2YgUEdQLiBUaGlzIGlzIHRoZQpkZWZhdWx0IG9wdGlvbiwgc28gaXQgaXMg +bm90IGdlbmVyYWxseSBuZWVkZWQsIGJ1dCBpdCBtYXkgYmUgdXNlZnVsIHRvCm92 +ZXJyaWRlIGEgZGlmZmVyZW50IGNvbXBsaWFuY2Ugb3B0aW9uIGluIHRoZSBncGcu +Y29uZiBmaWxlLgoKQGl0ZW0gLS1vcGVucGdwCkBvcGluZGV4IG9wZW5wZ3AKUmVz +ZXQgYWxsIHBhY2tldCwgY2lwaGVyIGFuZCBkaWdlc3Qgb3B0aW9ucyB0byBzdHJp +Y3QgT3BlblBHUApiZWhhdmlvci4gVXNlIHRoaXMgb3B0aW9uIHRvIHJlc2V0IGFs +bCBwcmV2aW91cyBvcHRpb25zIGxpa2UKQG9wdGlvbnstLXMyay0qfSwgQG9wdGlv +bnstLWNpcGhlci1hbGdvfSwgQG9wdGlvbnstLWRpZ2VzdC1hbGdvfSBhbmQKQG9w +dGlvbnstLWNvbXByZXNzLWFsZ299IHRvIE9wZW5QR1AgY29tcGxpYW50IHZhbHVl +cy4gQWxsIFBHUAp3b3JrYXJvdW5kcyBhcmUgZGlzYWJsZWQuCgpAaXRlbSAtLXJm +YzQ4ODAKQG9waW5kZXggcmZjNDg4MApSZXNldCBhbGwgcGFja2V0LCBjaXBoZXIg +YW5kIGRpZ2VzdCBvcHRpb25zIHRvIHN0cmljdCBSRkMtNDg4MApiZWhhdmlvci4g +Tm90ZSB0aGF0IHRoaXMgaXMgY3VycmVudGx5IHRoZSBzYW1lIHRoaW5nIGFzCkBv +cHRpb257LS1vcGVucGdwfS4KCkBpdGVtIC0tcmZjMjQ0MApAb3BpbmRleCByZmMy +NDQwClJlc2V0IGFsbCBwYWNrZXQsIGNpcGhlciBhbmQgZGlnZXN0IG9wdGlvbnMg +dG8gc3RyaWN0IFJGQy0yNDQwCmJlaGF2aW9yLgoKQGlmY2xlYXIgZ3BndG93b25l +CkBpdGVtIC0tcmZjMTk5MQpAb3BpbmRleCByZmMxOTkxClRyeSB0byBiZSBtb3Jl +IFJGQy0xOTkxIChQR1AgMi54KSBjb21wbGlhbnQuICBUaGlzIG9wdGlvbiBpcwpk +ZXByZWNhdGVkIHdpbGwgYmUgcmVtb3ZlZCBpbiBHbnVQRyAyLjEuCgpAaXRlbSAt +LXBncDIKQG9waW5kZXggcGdwMgpTZXQgdXAgYWxsIG9wdGlvbnMgdG8gYmUgYXMg +UEdQIDIueCBjb21wbGlhbnQgYXMgcG9zc2libGUsIGFuZCB3YXJuIGlmCmFuIGFj +dGlvbiBpcyB0YWtlbiAoZS5nLiBlbmNyeXB0aW5nIHRvIGEgbm9uLVJTQSBrZXkp +IHRoYXQgd2lsbCBjcmVhdGUKYSBtZXNzYWdlIHRoYXQgUEdQIDIueCB3aWxsIG5v +dCBiZSBhYmxlIHRvIGhhbmRsZS4gTm90ZSB0aGF0IGBQR1AKMi54JyBoZXJlIG1l +YW5zIGBNSVQgUEdQIDIuNi4yJy4gVGhlcmUgYXJlIG90aGVyIHZlcnNpb25zIG9m +IFBHUCAyLngKYXZhaWxhYmxlLCBidXQgdGhlIE1JVCByZWxlYXNlIGlzIGEgZ29v +ZCBjb21tb24gYmFzZWxpbmUuCgpUaGlzIG9wdGlvbiBpbXBsaWVzCkBvcHRpb257 +LS1yZmMxOTkxIC0tZGlzYWJsZS1tZGMgLS1uby1mb3JjZS12NC1jZXJ0cwogLS1l +c2NhcGUtZnJvbS1saW5lcyAgLS1mb3JjZS12My1zaWdzIC0tYWxsb3ctd2Vhay1k +aWdlc3QtYWxnb3MKIC0tY2lwaGVyLWFsZ28gSURFQSAtLWRpZ2VzdC1hbGdvIE1E +NSAtLWNvbXByZXNzLWFsZ28gWklQfS4KSXQgYWxzbyBkaXNhYmxlcyBAb3B0aW9u +ey0tdGV4dG1vZGV9IHdoZW4gZW5jcnlwdGluZy4KClRoaXMgb3B0aW9uIGlzIGRl +cHJlY2F0ZWQgd2lsbCBiZSByZW1vdmVkIGluIEdudVBHIDIuMS4gIFRoZSByZWFz +b24KZm9yIGRyb3BwaW5nIFBHUC0yIHN1cHBvcnQgaXMgdGhhdCB0aGUgUEdQIDIg +Zm9ybWF0IGlzIG5vdCBhbnltb3JlCmNvbnNpZGVyZWQgc2FmZSAoZm9yIGV4YW1w +bGUgZHVlIHRvIHRoZSB1c2Ugb2YgdGhlIGJyb2tlbiBNRDUgYWxnb3JpdGhtKS4K +Tm90ZSB0aGF0IHRoZSBkZWNyeXB0aW9uIG9mIFBHUC0yIGNyZWF0ZWQgbWVzc2Fn +ZXMgd2lsbCBjb250aW51ZSB0byB3b3JrLgpAZW5kIGlmY2xlYXIKCkBpdGVtIC0t +cGdwNgpAb3BpbmRleCBwZ3A2ClNldCB1cCBhbGwgb3B0aW9ucyB0byBiZSBhcyBQ +R1AgNiBjb21wbGlhbnQgYXMgcG9zc2libGUuIFRoaXMKcmVzdHJpY3RzIHlvdSB0 +byB0aGUgY2lwaGVycyBJREVBIChpZiB0aGUgSURFQSBwbHVnaW4gaXMgaW5zdGFs +bGVkKSwKM0RFUywgYW5kIENBU1Q1LCB0aGUgaGFzaGVzIE1ENSwgU0hBMSBhbmQg +UklQRU1EMTYwLCBhbmQgdGhlCmNvbXByZXNzaW9uIGFsZ29yaXRobXMgbm9uZSBh +bmQgWklQLiBUaGlzIGFsc28gZGlzYWJsZXMKLS10aHJvdy1rZXlpZHMsIGFuZCBt +YWtpbmcgc2lnbmF0dXJlcyB3aXRoIHNpZ25pbmcgc3Via2V5cyBhcyBQR1AgNgpk +b2VzIG5vdCB1bmRlcnN0YW5kIHNpZ25hdHVyZXMgbWFkZSBieSBzaWduaW5nIHN1 +YmtleXMuCgpUaGlzIG9wdGlvbiBpbXBsaWVzIEBvcHRpb257LS1kaXNhYmxlLW1k +YyAtLWVzY2FwZS1mcm9tLWxpbmVzfS4KCkBpdGVtIC0tcGdwNwpAb3BpbmRleCBw +Z3A3ClNldCB1cCBhbGwgb3B0aW9ucyB0byBiZSBhcyBQR1AgNyBjb21wbGlhbnQg +YXMgcG9zc2libGUuIFRoaXMgaXMKaWRlbnRpY2FsIHRvIEBvcHRpb257LS1wZ3A2 +fSBleGNlcHQgdGhhdCBNRENzIGFyZSBub3QgZGlzYWJsZWQsIGFuZCB0aGUKbGlz +dCBvZiBhbGxvd2FibGUgY2lwaGVycyBpcyBleHBhbmRlZCB0byBhZGQgQUVTMTI4 +LCBBRVMxOTIsIEFFUzI1NiwgYW5kClRXT0ZJU0guCgpAaXRlbSAtLXBncDgKQG9w +aW5kZXggcGdwOApTZXQgdXAgYWxsIG9wdGlvbnMgdG8gYmUgYXMgUEdQIDggY29t +cGxpYW50IGFzIHBvc3NpYmxlLiBQR1AgOCBpcyBhIGxvdApjbG9zZXIgdG8gdGhl +IE9wZW5QR1Agc3RhbmRhcmQgdGhhbiBwcmV2aW91cyB2ZXJzaW9ucyBvZiBQR1As +IHNvIGFsbAp0aGlzIGRvZXMgaXMgZGlzYWJsZSBAb3B0aW9uey0tdGhyb3cta2V5 +aWRzfSBhbmQgc2V0CkBvcHRpb257LS1lc2NhcGUtZnJvbS1saW5lc30uICBBbGwg +YWxnb3JpdGhtcyBhcmUgYWxsb3dlZCBleGNlcHQgZm9yIHRoZQpTSEEyMjQsIFNI +QTM4NCwgYW5kIFNIQTUxMiBkaWdlc3RzLgoKQGVuZCB0YWJsZQoKCkBjICoqKioq +KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQGMgKioqKioq +KiogIEVTT1RFUklDIE9QVElPTlMgICoqKioqKioqKioqKioqKgpAYyAqKioqKioq +KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBub2RlIEdQRyBF +c290ZXJpYyBPcHRpb25zCkBzdWJzZWN0aW9uIERvaW5nIHRoaW5ncyBvbmUgdXN1 +YWxseSBkb2Vzbid0IHdhbnQgdG8gZG8uCgpAdGFibGUgQGdudXBndGFib3B0CgpA +aXRlbSAtbgpAaXRlbXggLS1kcnktcnVuCkBvcGluZGV4IGRyeS1ydW4KRG9uJ3Qg +bWFrZSBhbnkgY2hhbmdlcyAodGhpcyBpcyBub3QgY29tcGxldGVseSBpbXBsZW1l +bnRlZCkuCgpAaXRlbSAtLWxpc3Qtb25seQpAb3BpbmRleCBsaXN0LW9ubHkKQ2hh +bmdlcyB0aGUgYmVoYXZpb3VyIG9mIHNvbWUgY29tbWFuZHMuIFRoaXMgaXMgbGlr +ZSBAb3B0aW9uey0tZHJ5LXJ1bn0gYnV0CmRpZmZlcmVudCBpbiBzb21lIGNhc2Vz +LiBUaGUgc2VtYW50aWMgb2YgdGhpcyBjb21tYW5kIG1heSBiZSBleHRlbmRlZCBp +bgp0aGUgZnV0dXJlLiBDdXJyZW50bHkgaXQgb25seSBza2lwcyB0aGUgYWN0dWFs +IGRlY3J5cHRpb24gcGFzcyBhbmQKdGhlcmVmb3JlIGVuYWJsZXMgYSBmYXN0IGxp +c3Rpbmcgb2YgdGhlIGVuY3J5cHRpb24ga2V5cy4KCkBpdGVtIC1pCkBpdGVteCAt +LWludGVyYWN0aXZlCkBvcGluZGV4IGludGVyYWN0aXZlClByb21wdCBiZWZvcmUg +b3ZlcndyaXRpbmcgYW55IGZpbGVzLgoKQGl0ZW0gLS1kZWJ1Zy1sZXZlbCBAdmFy +e2xldmVsfQpAb3BpbmRleCBkZWJ1Zy1sZXZlbApTZWxlY3QgdGhlIGRlYnVnIGxl +dmVsIGZvciBpbnZlc3RpZ2F0aW5nIHByb2JsZW1zLiBAdmFye2xldmVsfSBtYXkg +YmUKYSBudW1lcmljIHZhbHVlIG9yIGJ5IGEga2V5d29yZDoKCkB0YWJsZSBAY29k +ZQogIEBpdGVtIG5vbmUKICBObyBkZWJ1Z2dpbmcgYXQgYWxsLiAgQSB2YWx1ZSBv +ZiBsZXNzIHRoYW4gMSBtYXkgYmUgdXNlZCBpbnN0ZWFkIG9mCiAgdGhlIGtleXdv +cmQuCiAgQGl0ZW0gYmFzaWMKICBTb21lIGJhc2ljIGRlYnVnIG1lc3NhZ2VzLiAg +QSB2YWx1ZSBiZXR3ZWVuIDEgYW5kIDIgbWF5IGJlIHVzZWQKICBpbnN0ZWFkIG9m +IHRoZSBrZXl3b3JkLgogIEBpdGVtIGFkdmFuY2VkCiAgTW9yZSB2ZXJib3NlIGRl +YnVnIG1lc3NhZ2VzLiAgQSB2YWx1ZSBiZXR3ZWVuIDMgYW5kIDUgbWF5IGJlIHVz +ZWQKICBpbnN0ZWFkIG9mIHRoZSBrZXl3b3JkLgogIEBpdGVtIGV4cGVydAogIEV2 +ZW4gbW9yZSBkZXRhaWxlZCBtZXNzYWdlcy4gIEEgdmFsdWUgYmV0d2VlbiA2IGFu +ZCA4IG1heSBiZSB1c2VkCiAgaW5zdGVhZCBvZiB0aGUga2V5d29yZC4KICBAaXRl +bSBndXJ1CiAgQWxsIG9mIHRoZSBkZWJ1ZyBtZXNzYWdlcyB5b3UgY2FuIGdldC4g +QSB2YWx1ZSBncmVhdGVyIHRoYW4gOCBtYXkgYmUKICB1c2VkIGluc3RlYWQgb2Yg +dGhlIGtleXdvcmQuICBUaGUgY3JlYXRpb24gb2YgaGFzaCB0cmFjaW5nIGZpbGVz +IGlzCiAgb25seSBlbmFibGVkIGlmIHRoZSBrZXl3b3JkIGlzIHVzZWQuCkBlbmQg +dGFibGUKCkhvdyB0aGVzZSBtZXNzYWdlcyBhcmUgbWFwcGVkIHRvIHRoZSBhY3R1 +YWwgZGVidWdnaW5nIGZsYWdzIGlzIG5vdApzcGVjaWZpZWQgYW5kIG1heSBjaGFu +Z2Ugd2l0aCBuZXdlciByZWxlYXNlcyBvZiB0aGlzIHByb2dyYW0uIFRoZXkgYXJl +Cmhvd2V2ZXIgY2FyZWZ1bGx5IHNlbGVjdGVkIHRvIGJlc3QgYWlkIGluIGRlYnVn +Z2luZy4KCkBpdGVtIC0tZGVidWcgQHZhcntmbGFnc30KQG9waW5kZXggZGVidWcK +U2V0IGRlYnVnZ2luZyBmbGFncy4gQWxsIGZsYWdzIGFyZSBvci1lZCBhbmQgQHZh +cntmbGFnc30gbWF5IGJlIGdpdmVuCmluIEMgc3ludGF4IChlLmcuIDB4MDA0Mikg +b3IgYXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmbGFnIG5hbWVzLgpUbyBn +ZXQgYSBsaXN0IG9mIGFsbCBzdXBwb3J0ZWQgZmxhZ3MgdGhlIHNpbmdsZSB3b3Jk +ICJoZWxwIiBjYW4gYmUKdXNlZC4KCkBpdGVtIC0tZGVidWctYWxsCkBvcGluZGV4 +IGRlYnVnLWFsbApTZXQgYWxsIHVzZWZ1bCBkZWJ1Z2dpbmcgZmxhZ3MuCgpAaXRl +bSAtLWRlYnVnLWlvbGJmCkBvcGluZGV4IGRlYnVnLWlvbGJmClNldCBzdGRvdXQg +aW50byBsaW5lIGJ1ZmZlcmVkIG1vZGUuICBUaGlzIG9wdGlvbiBpcyBvbmx5IGhv +bm9yZWQgd2hlbgpnaXZlbiBvbiB0aGUgY29tbWFuZCBsaW5lLgoKQGl0ZW0gLS1m +YWtlZC1zeXN0ZW0tdGltZSBAdmFye2Vwb2NofQpAb3BpbmRleCBmYWtlZC1zeXN0 +ZW0tdGltZQpUaGlzIG9wdGlvbiBpcyBvbmx5IHVzZWZ1bCBmb3IgdGVzdGluZzsg +aXQgc2V0cyB0aGUgc3lzdGVtIHRpbWUgYmFjayBvcgpmb3J0aCB0byBAdmFye2Vw +b2NofSB3aGljaCBpcyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgZWxhcHNlZCBzaW5j +ZSB0aGUgeWVhcgoxOTcwLiAgQWx0ZXJuYXRpdmVseSBAdmFye2Vwb2NofSBtYXkg +YmUgZ2l2ZW4gYXMgYSBmdWxsIElTTyB0aW1lIHN0cmluZwooZS5nLiAiMjAwNzA5 +MjRUMTU0ODEyIikuCgpAaXRlbSAtLWVuYWJsZS1wcm9ncmVzcy1maWx0ZXIKQG9w +aW5kZXggZW5hYmxlLXByb2dyZXNzLWZpbHRlcgpFbmFibGUgY2VydGFpbiBQUk9H +UkVTUyBzdGF0dXMgb3V0cHV0cy4gVGhpcyBvcHRpb24gYWxsb3dzIGZyb250ZW5k +cwp0byBkaXNwbGF5IGEgcHJvZ3Jlc3MgaW5kaWNhdG9yIHdoaWxlIGdwZyBpcyBw +cm9jZXNzaW5nIGxhcmdlciBmaWxlcy4KVGhlcmUgaXMgYSBzbGlnaHQgcGVyZm9y +bWFuY2Ugb3ZlcmhlYWQgdXNpbmcgaXQuCgpAaXRlbSAtLXN0YXR1cy1mZCBAY29k +ZXtufQpAb3BpbmRleCBzdGF0dXMtZmQKV3JpdGUgc3BlY2lhbCBzdGF0dXMgc3Ry +aW5ncyB0byB0aGUgZmlsZSBkZXNjcmlwdG9yIEBjb2Rle259LgpTZWUgdGhlIGZp +bGUgREVUQUlMUyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgYSBsaXN0aW5nIG9m +IHRoZW0uCgpAaXRlbSAtLXN0YXR1cy1maWxlIEBjb2Rle2ZpbGV9CkBvcGluZGV4 +IHN0YXR1cy1maWxlClNhbWUgYXMgQG9wdGlvbnstLXN0YXR1cy1mZH0sIGV4Y2Vw +dCB0aGUgc3RhdHVzIGRhdGEgaXMgd3JpdHRlbiB0byBmaWxlCkBjb2Rle2ZpbGV9 +LgoKQGl0ZW0gLS1sb2dnZXItZmQgQGNvZGV7bn0KQG9waW5kZXggbG9nZ2VyLWZk +CldyaXRlIGxvZyBvdXRwdXQgdG8gZmlsZSBkZXNjcmlwdG9yIEBjb2Rle259IGFu +ZCBub3QgdG8gU1RERVJSLgoKQGl0ZW0gLS1sb2ctZmlsZSBAY29kZXtmaWxlfQpA +aXRlbXggLS1sb2dnZXItZmlsZSBAY29kZXtmaWxlfQpAb3BpbmRleCBsb2ctZmls +ZQpTYW1lIGFzIEBvcHRpb257LS1sb2dnZXItZmR9LCBleGNlcHQgdGhlIGxvZ2dl +ciBkYXRhIGlzIHdyaXR0ZW4gdG8gZmlsZQpAY29kZXtmaWxlfS4gIE5vdGUgdGhh +dCBAb3B0aW9uey0tbG9nLWZpbGV9IGlzIG9ubHkgaW1wbGVtZW50ZWQgZm9yCkdu +dVBHLTIuCgpAaXRlbSAtLWF0dHJpYnV0ZS1mZCBAY29kZXtufQpAb3BpbmRleCBh +dHRyaWJ1dGUtZmQKV3JpdGUgYXR0cmlidXRlIHN1YnBhY2tldHMgdG8gdGhlIGZp +bGUgZGVzY3JpcHRvciBAY29kZXtufS4gVGhpcyBpcyBtb3N0CnVzZWZ1bCBmb3Ig +dXNlIHdpdGggQG9wdGlvbnstLXN0YXR1cy1mZH0sIHNpbmNlIHRoZSBzdGF0dXMg +bWVzc2FnZXMgYXJlCm5lZWRlZCB0byBzZXBhcmF0ZSBvdXQgdGhlIHZhcmlvdXMg +c3VicGFja2V0cyBmcm9tIHRoZSBzdHJlYW0gZGVsaXZlcmVkCnRvIHRoZSBmaWxl +IGRlc2NyaXB0b3IuCgpAaXRlbSAtLWF0dHJpYnV0ZS1maWxlIEBjb2Rle2ZpbGV9 +CkBvcGluZGV4IGF0dHJpYnV0ZS1maWxlClNhbWUgYXMgQG9wdGlvbnstLWF0dHJp +YnV0ZS1mZH0sIGV4Y2VwdCB0aGUgYXR0cmlidXRlIGRhdGEgaXMgd3JpdHRlbiB0 +bwpmaWxlIEBjb2Rle2ZpbGV9LgoKQGl0ZW0gLS1jb21tZW50IEBjb2Rle3N0cmlu +Z30KQGl0ZW14IC0tbm8tY29tbWVudHMKQG9waW5kZXggY29tbWVudApVc2UgQGNv +ZGV7c3RyaW5nfSBhcyBhIGNvbW1lbnQgc3RyaW5nIGluIGNsZWFyIHRleHQgc2ln +bmF0dXJlcyBhbmQgQVNDSUkKYXJtb3JlZCBtZXNzYWdlcyBvciBrZXlzIChzZWUg +QG9wdGlvbnstLWFybW9yfSkuIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzCm5vdCB0 +byB1c2UgYSBjb21tZW50IHN0cmluZy4gQG9wdGlvbnstLWNvbW1lbnR9IG1heSBi +ZSByZXBlYXRlZCBtdWx0aXBsZQp0aW1lcyB0byBnZXQgbXVsdGlwbGUgY29tbWVu +dCBzdHJpbmdzLiBAb3B0aW9uey0tbm8tY29tbWVudHN9IHJlbW92ZXMKYWxsIGNv +bW1lbnRzLiAgSXQgaXMgYSBnb29kIGlkZWEgdG8ga2VlcCB0aGUgbGVuZ3RoIG9m +IGEgc2luZ2xlIGNvbW1lbnQKYmVsb3cgNjAgY2hhcmFjdGVycyB0byBhdm9pZCBw +cm9ibGVtcyB3aXRoIG1haWwgcHJvZ3JhbXMgd3JhcHBpbmcgc3VjaApsaW5lcy4g +IE5vdGUgdGhhdCBjb21tZW50IGxpbmVzLCBsaWtlIGFsbCBvdGhlciBoZWFkZXIg +bGluZXMsIGFyZSBub3QKcHJvdGVjdGVkIGJ5IHRoZSBzaWduYXR1cmUuCgpAaXRl +bSAtLWVtaXQtdmVyc2lvbgpAaXRlbXggLS1uby1lbWl0LXZlcnNpb24KQG9waW5k +ZXggZW1pdC12ZXJzaW9uCkZvcmNlIGluY2x1c2lvbiBvZiB0aGUgdmVyc2lvbiBz +dHJpbmcgaW4gQVNDSUkgYXJtb3JlZCBvdXRwdXQuICBJZgpnaXZlbiBvbmNlIG9u +bHkgdGhlIG5hbWUgb2YgdGhlIHByb2dyYW0gYW5kIHRoZSBtYWpvciBudW1iZXIg +aXMKZW1pdHRlZCAoZGVmYXVsdCksIGdpdmVuIHR3aWNlIHRoZSBtaW5vciBpcyBh +bHNvIGVtaXR0ZWQsIGdpdmVuIHRyaXBsZQp0aGUgbWljcm8gaXMgYWRkZWQsIGFu +ZCBnaXZlbiBxdWFkIGFuIG9wZXJhdGluZyBzeXN0ZW0gaWRlbnRpZmljYXRpb24K +aXMgYWxzbyBlbWl0dGVkLiAgQG9wdGlvbnstLW5vLWVtaXQtdmVyc2lvbn0gZGlz +YWJsZXMgdGhlIHZlcnNpb24KbGluZS4KCkBpdGVtIC0tc2lnLW5vdGF0aW9uIEBj +b2Rle25hbWU9dmFsdWV9CkBpdGVteCAtLWNlcnQtbm90YXRpb24gQGNvZGV7bmFt +ZT12YWx1ZX0KQGl0ZW14IC1OLCAtLXNldC1ub3RhdGlvbiBAY29kZXtuYW1lPXZh +bHVlfQpAb3BpbmRleCBzaWctbm90YXRpb24KQG9waW5kZXggY2VydC1ub3RhdGlv +bgpAb3BpbmRleCBzZXQtbm90YXRpb24KUHV0IHRoZSBuYW1lIHZhbHVlIHBhaXIg +aW50byB0aGUgc2lnbmF0dXJlIGFzIG5vdGF0aW9uIGRhdGEuCkBjb2Rle25hbWV9 +IG11c3QgY29uc2lzdCBvbmx5IG9mIHByaW50YWJsZSBjaGFyYWN0ZXJzIG9yIHNw +YWNlcywgYW5kCm11c3QgY29udGFpbiBhICdAQCcgY2hhcmFjdGVyIGluIHRoZSBm +b3JtIGtleW5hbWVAQGRvbWFpbi5leGFtcGxlLmNvbQooc3Vic3RpdHV0aW5nIHRo +ZSBhcHByb3ByaWF0ZSBrZXluYW1lIGFuZCBkb21haW4gbmFtZSwgb2YgY291cnNl +KS4gIFRoaXMKaXMgdG8gaGVscCBwcmV2ZW50IHBvbGx1dGlvbiBvZiB0aGUgSUVU +RiByZXNlcnZlZCBub3RhdGlvbgpuYW1lc3BhY2UuIFRoZSBAb3B0aW9uey0tZXhw +ZXJ0fSBmbGFnIG92ZXJyaWRlcyB0aGUgJ0BAJwpjaGVjay4gQGNvZGV7dmFsdWV9 +IG1heSBiZSBhbnkgcHJpbnRhYmxlIHN0cmluZzsgaXQgd2lsbCBiZSBlbmNvZGVk +IGluClVURjgsIHNvIHlvdSBzaG91bGQgY2hlY2sgdGhhdCB5b3VyIEBvcHRpb257 +LS1kaXNwbGF5LWNoYXJzZXR9IGlzIHNldApjb3JyZWN0bHkuIElmIHlvdSBwcmVm +aXggQGNvZGV7bmFtZX0gd2l0aCBhbiBleGNsYW1hdGlvbiBtYXJrICghKSwgdGhl +Cm5vdGF0aW9uIGRhdGEgd2lsbCBiZSBmbGFnZ2VkIGFzIGNyaXRpY2FsCihyZmM0 +ODgwOjUuMi4zLjE2KS4gQG9wdGlvbnstLXNpZy1ub3RhdGlvbn0gc2V0cyBhIG5v +dGF0aW9uIGZvciBkYXRhCnNpZ25hdHVyZXMuIEBvcHRpb257LS1jZXJ0LW5vdGF0 +aW9ufSBzZXRzIGEgbm90YXRpb24gZm9yIGtleSBzaWduYXR1cmVzCihjZXJ0aWZp +Y2F0aW9ucykuIEBvcHRpb257LS1zZXQtbm90YXRpb259IHNldHMgYm90aC4KClRo +ZXJlIGFyZSBzcGVjaWFsIGNvZGVzIHRoYXQgbWF5IGJlIHVzZWQgaW4gbm90YXRp +b24gbmFtZXMuICIlayIgd2lsbApiZSBleHBhbmRlZCBpbnRvIHRoZSBrZXkgSUQg +b2YgdGhlIGtleSBiZWluZyBzaWduZWQsICIlSyIgaW50byB0aGUKbG9uZyBrZXkg +SUQgb2YgdGhlIGtleSBiZWluZyBzaWduZWQsICIlZiIgaW50byB0aGUgZmluZ2Vy +cHJpbnQgb2YgdGhlCmtleSBiZWluZyBzaWduZWQsICIlcyIgaW50byB0aGUga2V5 +IElEIG9mIHRoZSBrZXkgbWFraW5nIHRoZQpzaWduYXR1cmUsICIlUyIgaW50byB0 +aGUgbG9uZyBrZXkgSUQgb2YgdGhlIGtleSBtYWtpbmcgdGhlIHNpZ25hdHVyZSwK +IiVnIiBpbnRvIHRoZSBmaW5nZXJwcmludCBvZiB0aGUga2V5IG1ha2luZyB0aGUg +c2lnbmF0dXJlICh3aGljaCBtaWdodApiZSBhIHN1YmtleSksICIlcCIgaW50byB0 +aGUgZmluZ2VycHJpbnQgb2YgdGhlIHByaW1hcnkga2V5IG9mIHRoZSBrZXkKbWFr +aW5nIHRoZSBzaWduYXR1cmUsICIlYyIgaW50byB0aGUgc2lnbmF0dXJlIGNvdW50 +IGZyb20gdGhlIE9wZW5QR1AKc21hcnRjYXJkLCBhbmQgIiUlIiByZXN1bHRzIGlu +IGEgc2luZ2xlICIlIi4gJWssICVLLCBhbmQgJWYgYXJlIG9ubHkKbWVhbmluZ2Z1 +bCB3aGVuIG1ha2luZyBhIGtleSBzaWduYXR1cmUgKGNlcnRpZmljYXRpb24pLCBh +bmQgJWMgaXMgb25seQptZWFuaW5nZnVsIHdoZW4gdXNpbmcgdGhlIE9wZW5QR1Ag +c21hcnRjYXJkLgoKQGl0ZW0gLS1zaWctcG9saWN5LXVybCBAY29kZXtzdHJpbmd9 +CkBpdGVteCAtLWNlcnQtcG9saWN5LXVybCBAY29kZXtzdHJpbmd9CkBpdGVteCAt +LXNldC1wb2xpY3ktdXJsIEBjb2Rle3N0cmluZ30KQG9waW5kZXggc2lnLXBvbGlj +eS11cmwKQG9waW5kZXggY2VydC1wb2xpY3ktdXJsCkBvcGluZGV4IHNldC1wb2xp +Y3ktdXJsClVzZSBAY29kZXtzdHJpbmd9IGFzIGEgUG9saWN5IFVSTCBmb3Igc2ln +bmF0dXJlcyAocmZjNDg4MDo1LjIuMy4yMCkuICBJZgp5b3UgcHJlZml4IGl0IHdp +dGggYW4gZXhjbGFtYXRpb24gbWFyayAoISksIHRoZSBwb2xpY3kgVVJMIHBhY2tl +dCB3aWxsCmJlIGZsYWdnZWQgYXMgY3JpdGljYWwuIEBvcHRpb257LS1zaWctcG9s +aWN5LXVybH0gc2V0cyBhIHBvbGljeSB1cmwgZm9yCmRhdGEgc2lnbmF0dXJlcy4g +QG9wdGlvbnstLWNlcnQtcG9saWN5LXVybH0gc2V0cyBhIHBvbGljeSB1cmwgZm9y +IGtleQpzaWduYXR1cmVzIChjZXJ0aWZpY2F0aW9ucykuIEBvcHRpb257LS1zZXQt +cG9saWN5LXVybH0gc2V0cyBib3RoLgoKVGhlIHNhbWUgJS1leHBhbmRvcyB1c2Vk +IGZvciBub3RhdGlvbiBkYXRhIGFyZSBhdmFpbGFibGUgaGVyZSBhcyB3ZWxsLgoK +QGl0ZW0gLS1zaWcta2V5c2VydmVyLXVybCBAY29kZXtzdHJpbmd9CkBvcGluZGV4 +IHNpZy1rZXlzZXJ2ZXItdXJsClVzZSBAY29kZXtzdHJpbmd9IGFzIGEgcHJlZmVy +cmVkIGtleXNlcnZlciBVUkwgZm9yIGRhdGEgc2lnbmF0dXJlcy4gSWYKeW91IHBy +ZWZpeCBpdCB3aXRoIGFuIGV4Y2xhbWF0aW9uIG1hcmsgKCEpLCB0aGUga2V5c2Vy +dmVyIFVSTCBwYWNrZXQKd2lsbCBiZSBmbGFnZ2VkIGFzIGNyaXRpY2FsLgoKVGhl +IHNhbWUgJS1leHBhbmRvcyB1c2VkIGZvciBub3RhdGlvbiBkYXRhIGFyZSBhdmFp +bGFibGUgaGVyZSBhcyB3ZWxsLgoKQGl0ZW0gLS1zZXQtZmlsZW5hbWUgQGNvZGV7 +c3RyaW5nfQpAb3BpbmRleCBzZXQtZmlsZW5hbWUKVXNlIEBjb2Rle3N0cmluZ30g +YXMgdGhlIGZpbGVuYW1lIHdoaWNoIGlzIHN0b3JlZCBpbnNpZGUgbWVzc2FnZXMu +ClRoaXMgb3ZlcnJpZGVzIHRoZSBkZWZhdWx0LCB3aGljaCBpcyB0byB1c2UgdGhl +IGFjdHVhbCBmaWxlbmFtZSBvZiB0aGUKZmlsZSBiZWluZyBlbmNyeXB0ZWQuICBV +c2luZyB0aGUgZW1wdHkgc3RyaW5nIGZvciBAdmFye3N0cmluZ30KZWZmZWN0aXZl +bHkgcmVtb3ZlcyB0aGUgZmlsZW5hbWUgZnJvbSB0aGUgb3V0cHV0LgoKQGl0ZW0g +LS1mb3IteW91ci1leWVzLW9ubHkKQGl0ZW14IC0tbm8tZm9yLXlvdXItZXllcy1v +bmx5CkBvcGluZGV4IGZvci15b3VyLWV5ZXMtb25seQpTZXQgdGhlIGBmb3IgeW91 +ciBleWVzIG9ubHknIGZsYWcgaW4gdGhlIG1lc3NhZ2UuIFRoaXMgY2F1c2VzIEdu +dVBHIHRvCnJlZnVzZSB0byBzYXZlIHRoZSBmaWxlIHVubGVzcyB0aGUgQG9wdGlv +bnstLW91dHB1dH0gb3B0aW9uIGlzIGdpdmVuLAphbmQgUEdQIHRvIHVzZSBhICJz +ZWN1cmUgdmlld2VyIiB3aXRoIGEgY2xhaW1lZCBUZW1wZXN0LXJlc2lzdGFudCBm +b250CnRvIGRpc3BsYXkgdGhlIG1lc3NhZ2UuIFRoaXMgb3B0aW9uIG92ZXJyaWRl +cyBAb3B0aW9uey0tc2V0LWZpbGVuYW1lfS4KQG9wdGlvbnstLW5vLWZvci15b3Vy +LWV5ZXMtb25seX0gZGlzYWJsZXMgdGhpcyBvcHRpb24uCgpAaXRlbSAtLXVzZS1l +bWJlZGRlZC1maWxlbmFtZQpAaXRlbXggLS1uby11c2UtZW1iZWRkZWQtZmlsZW5h +bWUKQG9waW5kZXggdXNlLWVtYmVkZGVkLWZpbGVuYW1lClRyeSB0byBjcmVhdGUg +YSBmaWxlIHdpdGggYSBuYW1lIGFzIGVtYmVkZGVkIGluIHRoZSBkYXRhLiBUaGlz +IGNhbiBiZQphIGRhbmdlcm91cyBvcHRpb24gYXMgaXQgYWxsb3dzIHRvIG92ZXJ3 +cml0ZSBmaWxlcy4gRGVmYXVsdHMgdG8gbm8uCgpAaXRlbSAtLWNpcGhlci1hbGdv +IEBjb2Rle25hbWV9CkBvcGluZGV4IGNpcGhlci1hbGdvClVzZSBAY29kZXtuYW1l +fSBhcyBjaXBoZXIgYWxnb3JpdGhtLiBSdW5uaW5nIHRoZSBwcm9ncmFtIHdpdGgg +dGhlCmNvbW1hbmQgQG9wdGlvbnstLXZlcnNpb259IHlpZWxkcyBhIGxpc3Qgb2Yg +c3VwcG9ydGVkIGFsZ29yaXRobXMuIElmCnRoaXMgaXMgbm90IHVzZWQgdGhlIGNp +cGhlciBhbGdvcml0aG0gaXMgc2VsZWN0ZWQgZnJvbSB0aGUgcHJlZmVyZW5jZXMK +c3RvcmVkIHdpdGggdGhlIGtleS4gSW4gZ2VuZXJhbCwgeW91IGRvIG5vdCB3YW50 +IHRvIHVzZSB0aGlzIG9wdGlvbiBhcwppdCBhbGxvd3MgeW91IHRvIHZpb2xhdGUg +dGhlIE9wZW5QR1Agc3RhbmRhcmQuCkBvcHRpb257LS1wZXJzb25hbC1jaXBoZXIt +cHJlZmVyZW5jZXN9IGlzIHRoZSBzYWZlIHdheSB0byBhY2NvbXBsaXNoIHRoZQpz +YW1lIHRoaW5nLgoKQGl0ZW0gLS1kaWdlc3QtYWxnbyBAY29kZXtuYW1lfQpAb3Bp +bmRleCBkaWdlc3QtYWxnbwpVc2UgQGNvZGV7bmFtZX0gYXMgdGhlIG1lc3NhZ2Ug +ZGlnZXN0IGFsZ29yaXRobS4gUnVubmluZyB0aGUgcHJvZ3JhbQp3aXRoIHRoZSBj +b21tYW5kIEBvcHRpb257LS12ZXJzaW9ufSB5aWVsZHMgYSBsaXN0IG9mIHN1cHBv +cnRlZCBhbGdvcml0aG1zLiBJbgpnZW5lcmFsLCB5b3UgZG8gbm90IHdhbnQgdG8g +dXNlIHRoaXMgb3B0aW9uIGFzIGl0IGFsbG93cyB5b3UgdG8KdmlvbGF0ZSB0aGUg +T3BlblBHUCBzdGFuZGFyZC4gQG9wdGlvbnstLXBlcnNvbmFsLWRpZ2VzdC1wcmVm +ZXJlbmNlc30gaXMgdGhlCnNhZmUgd2F5IHRvIGFjY29tcGxpc2ggdGhlIHNhbWUg +dGhpbmcuCgpAaXRlbSAtLWNvbXByZXNzLWFsZ28gQGNvZGV7bmFtZX0KQG9waW5k +ZXggY29tcHJlc3MtYWxnbwpVc2UgY29tcHJlc3Npb24gYWxnb3JpdGhtIEBjb2Rl +e25hbWV9LiAiemxpYiIgaXMgUkZDLTE5NTAgWkxJQgpjb21wcmVzc2lvbi4gInpp +cCIgaXMgUkZDLTE5NTEgWklQIGNvbXByZXNzaW9uIHdoaWNoIGlzIHVzZWQgYnkg +UEdQLgoiYnppcDIiIGlzIGEgbW9yZSBtb2Rlcm4gY29tcHJlc3Npb24gc2NoZW1l +IHRoYXQgY2FuIGNvbXByZXNzIHNvbWUKdGhpbmdzIGJldHRlciB0aGFuIHppcCBv +ciB6bGliLCBidXQgYXQgdGhlIGNvc3Qgb2YgbW9yZSBtZW1vcnkgdXNlZApkdXJp +bmcgY29tcHJlc3Npb24gYW5kIGRlY29tcHJlc3Npb24uICJ1bmNvbXByZXNzZWQi +IG9yICJub25lIgpkaXNhYmxlcyBjb21wcmVzc2lvbi4gSWYgdGhpcyBvcHRpb24g +aXMgbm90IHVzZWQsIHRoZSBkZWZhdWx0CmJlaGF2aW9yIGlzIHRvIGV4YW1pbmUg +dGhlIHJlY2lwaWVudCBrZXkgcHJlZmVyZW5jZXMgdG8gc2VlIHdoaWNoCmFsZ29y +aXRobXMgdGhlIHJlY2lwaWVudCBzdXBwb3J0cy4gSWYgYWxsIGVsc2UgZmFpbHMs +IFpJUCBpcyB1c2VkIGZvcgptYXhpbXVtIGNvbXBhdGliaWxpdHkuCgpaTElCIG1h +eSBnaXZlIGJldHRlciBjb21wcmVzc2lvbiByZXN1bHRzIHRoYW4gWklQLCBhcyB0 +aGUgY29tcHJlc3Npb24Kd2luZG93IHNpemUgaXMgbm90IGxpbWl0ZWQgdG8gOGsu +IEJaSVAyIG1heSBnaXZlIGV2ZW4gYmV0dGVyCmNvbXByZXNzaW9uIHJlc3VsdHMg +dGhhbiB0aGF0LCBidXQgd2lsbCB1c2UgYSBzaWduaWZpY2FudGx5IGxhcmdlcgph +bW91bnQgb2YgbWVtb3J5IHdoaWxlIGNvbXByZXNzaW5nIGFuZCBkZWNvbXByZXNz +aW5nLiBUaGlzIG1heSBiZQpzaWduaWZpY2FudCBpbiBsb3cgbWVtb3J5IHNpdHVh +dGlvbnMuIE5vdGUsIGhvd2V2ZXIsIHRoYXQgUEdQIChhbGwKdmVyc2lvbnMpIG9u +bHkgc3VwcG9ydHMgWklQIGNvbXByZXNzaW9uLiBVc2luZyBhbnkgYWxnb3JpdGht +IG90aGVyCnRoYW4gWklQIG9yICJub25lIiB3aWxsIG1ha2UgdGhlIG1lc3NhZ2Ug +dW5yZWFkYWJsZSB3aXRoIFBHUC4gSW4KZ2VuZXJhbCwgeW91IGRvIG5vdCB3YW50 +IHRvIHVzZSB0aGlzIG9wdGlvbiBhcyBpdCBhbGxvd3MgeW91IHRvCnZpb2xhdGUg +dGhlIE9wZW5QR1Agc3RhbmRhcmQuIEBvcHRpb257LS1wZXJzb25hbC1jb21wcmVz +cy1wcmVmZXJlbmNlc30gaXMgdGhlCnNhZmUgd2F5IHRvIGFjY29tcGxpc2ggdGhl +IHNhbWUgdGhpbmcuCgpAaXRlbSAtLWNlcnQtZGlnZXN0LWFsZ28gQGNvZGV7bmFt +ZX0KQG9waW5kZXggY2VydC1kaWdlc3QtYWxnbwpVc2UgQGNvZGV7bmFtZX0gYXMg +dGhlIG1lc3NhZ2UgZGlnZXN0IGFsZ29yaXRobSB1c2VkIHdoZW4gc2lnbmluZyBh +CmtleS4gUnVubmluZyB0aGUgcHJvZ3JhbSB3aXRoIHRoZSBjb21tYW5kIEBvcHRp +b257LS12ZXJzaW9ufSB5aWVsZHMgYQpsaXN0IG9mIHN1cHBvcnRlZCBhbGdvcml0 +aG1zLiBCZSBhd2FyZSB0aGF0IGlmIHlvdSBjaG9vc2UgYW4gYWxnb3JpdGhtCnRo +YXQgR251UEcgc3VwcG9ydHMgYnV0IG90aGVyIE9wZW5QR1AgaW1wbGVtZW50YXRp +b25zIGRvIG5vdCwgdGhlbiBzb21lCnVzZXJzIHdpbGwgbm90IGJlIGFibGUgdG8g +dXNlIHRoZSBrZXkgc2lnbmF0dXJlcyB5b3UgbWFrZSwgb3IgcXVpdGUKcG9zc2li +bHkgeW91ciBlbnRpcmUga2V5LgoKQGl0ZW0gLS1kaXNhYmxlLWNpcGhlci1hbGdv +IEBjb2Rle25hbWV9CkBvcGluZGV4IGRpc2FibGUtY2lwaGVyLWFsZ28KTmV2ZXIg +YWxsb3cgdGhlIHVzZSBvZiBAY29kZXtuYW1lfSBhcyBjaXBoZXIgYWxnb3JpdGht +LgpUaGUgZ2l2ZW4gbmFtZSB3aWxsIG5vdCBiZSBjaGVja2VkIHNvIHRoYXQgYSBs +YXRlciBsb2FkZWQgYWxnb3JpdGhtCndpbGwgc3RpbGwgZ2V0IGRpc2FibGVkLgoK +QGl0ZW0gLS1kaXNhYmxlLXB1YmtleS1hbGdvIEBjb2Rle25hbWV9CkBvcGluZGV4 +IGRpc2FibGUtcHVia2V5LWFsZ28KTmV2ZXIgYWxsb3cgdGhlIHVzZSBvZiBAY29k +ZXtuYW1lfSBhcyBwdWJsaWMga2V5IGFsZ29yaXRobS4KVGhlIGdpdmVuIG5hbWUg +d2lsbCBub3QgYmUgY2hlY2tlZCBzbyB0aGF0IGEgbGF0ZXIgbG9hZGVkIGFsZ29y +aXRobQp3aWxsIHN0aWxsIGdldCBkaXNhYmxlZC4KCkBpdGVtIC0tdGhyb3cta2V5 +aWRzCkBpdGVteCAtLW5vLXRocm93LWtleWlkcwpAb3BpbmRleCB0aHJvdy1rZXlp +ZHMKRG8gbm90IHB1dCB0aGUgcmVjaXBpZW50IGtleSBJRHMgaW50byBlbmNyeXB0 +ZWQgbWVzc2FnZXMuIFRoaXMgaGVscHMgdG8KaGlkZSB0aGUgcmVjZWl2ZXJzIG9m +IHRoZSBtZXNzYWdlIGFuZCBpcyBhIGxpbWl0ZWQgY291bnRlcm1lYXN1cmUKYWdh +aW5zdCB0cmFmZmljIGFuYWx5c2lzLkBmb290bm90ZXtVc2luZyBhIGxpdHRsZSBz +b2NpYWwgZW5naW5lZXJpbmcKYW55b25lIHdobyBpcyBhYmxlIHRvIGRlY3J5cHQg +dGhlIG1lc3NhZ2UgY2FuIGNoZWNrIHdoZXRoZXIgb25lIG9mIHRoZQpvdGhlciBy +ZWNpcGllbnRzIGlzIHRoZSBvbmUgaGUgc3VzcGVjdHMufSAgT24gdGhlIHJlY2Vp +dmluZyBzaWRlLCBpdCBtYXkKc2xvdyBkb3duIHRoZSBkZWNyeXB0aW9uIHByb2Nl +c3MgYmVjYXVzZSBhbGwgYXZhaWxhYmxlIHNlY3JldCBrZXlzIG11c3QKYmUgdHJp +ZWQuICBAb3B0aW9uey0tbm8tdGhyb3cta2V5aWRzfSBkaXNhYmxlcyB0aGlzIG9w +dGlvbi4gVGhpcyBvcHRpb24KaXMgZXNzZW50aWFsbHkgdGhlIHNhbWUgYXMgdXNp +bmcgQG9wdGlvbnstLWhpZGRlbi1yZWNpcGllbnR9IGZvciBhbGwKcmVjaXBpZW50 +cy4KCkBpdGVtIC0tbm90LWRhc2gtZXNjYXBlZApAb3BpbmRleCBub3QtZGFzaC1l +c2NhcGVkClRoaXMgb3B0aW9uIGNoYW5nZXMgdGhlIGJlaGF2aW9yIG9mIGNsZWFy +dGV4dCBzaWduYXR1cmVzCnNvIHRoYXQgdGhleSBjYW4gYmUgdXNlZCBmb3IgcGF0 +Y2ggZmlsZXMuIFlvdSBzaG91bGQgbm90CnNlbmQgc3VjaCBhbiBhcm1vcmVkIGZp +bGUgdmlhIGVtYWlsIGJlY2F1c2UgYWxsIHNwYWNlcwphbmQgbGluZSBlbmRpbmdz +IGFyZSBoYXNoZWQgdG9vLiBZb3UgY2FuIG5vdCB1c2UgdGhpcwpvcHRpb24gZm9y +IGRhdGEgd2hpY2ggaGFzIDUgZGFzaGVzIGF0IHRoZSBiZWdpbm5pbmcgb2YgYQps +aW5lLCBwYXRjaCBmaWxlcyBkb24ndCBoYXZlIHRoaXMuIEEgc3BlY2lhbCBhcm1v +ciBoZWFkZXIKbGluZSB0ZWxscyBHbnVQRyBhYm91dCB0aGlzIGNsZWFydGV4dCBz +aWduYXR1cmUgb3B0aW9uLgoKQGl0ZW0gLS1lc2NhcGUtZnJvbS1saW5lcwpAaXRl +bXggLS1uby1lc2NhcGUtZnJvbS1saW5lcwpAb3BpbmRleCBlc2NhcGUtZnJvbS1s +aW5lcwpCZWNhdXNlIHNvbWUgbWFpbGVycyBjaGFuZ2UgbGluZXMgc3RhcnRpbmcg +d2l0aCAiRnJvbSAiIHRvICI+RnJvbSAiIGl0CmlzIGdvb2QgdG8gaGFuZGxlIHN1 +Y2ggbGluZXMgaW4gYSBzcGVjaWFsIHdheSB3aGVuIGNyZWF0aW5nIGNsZWFydGV4 +dApzaWduYXR1cmVzIHRvIHByZXZlbnQgdGhlIG1haWwgc3lzdGVtIGZyb20gYnJl +YWtpbmcgdGhlIHNpZ25hdHVyZS4gTm90ZQp0aGF0IGFsbCBvdGhlciBQR1AgdmVy +c2lvbnMgZG8gaXQgdGhpcyB3YXkgdG9vLiAgRW5hYmxlZCBieQpkZWZhdWx0LiBA +b3B0aW9uey0tbm8tZXNjYXBlLWZyb20tbGluZXN9IGRpc2FibGVzIHRoaXMgb3B0 +aW9uLgoKQGl0ZW0gLS1wYXNzcGhyYXNlLXJlcGVhdCBAY29kZXtufQpAb3BpbmRl +eCBwYXNzcGhyYXNlLXJlcGVhdApTcGVjaWZ5IGhvdyBtYW55IHRpbWVzIEBjb21t +YW5ke0BncGduYW1lfSB3aWxsIHJlcXVlc3QgYSBuZXcKcGFzc3BocmFzZSBiZSBy +ZXBlYXRlZC4gIFRoaXMgaXMgdXNlZnVsIGZvciBoZWxwaW5nIG1lbW9yaXplIGEK +cGFzc3BocmFzZS4gIERlZmF1bHRzIHRvIDEgcmVwZXRpdGlvbi4KCkBpdGVtIC0t +cGFzc3BocmFzZS1mZCBAY29kZXtufQpAb3BpbmRleCBwYXNzcGhyYXNlLWZkClJl +YWQgdGhlIHBhc3NwaHJhc2UgZnJvbSBmaWxlIGRlc2NyaXB0b3IgQGNvZGV7bn0u +IE9ubHkgdGhlIGZpcnN0IGxpbmUKd2lsbCBiZSByZWFkIGZyb20gZmlsZSBkZXNj +cmlwdG9yIEBjb2Rle259LiBJZiB5b3UgdXNlIDAgZm9yIEBjb2Rle259LAp0aGUg +cGFzc3BocmFzZSB3aWxsIGJlIHJlYWQgZnJvbSBTVERJTi4gVGhpcyBjYW4gb25s +eSBiZSB1c2VkIGlmIG9ubHkKb25lIHBhc3NwaHJhc2UgaXMgc3VwcGxpZWQuCgpO +b3RlIHRoYXQgdGhpcyBwYXNzcGhyYXNlIGlzIG9ubHkgdXNlZCBpZiB0aGUgb3B0 +aW9uIEBvcHRpb257LS1iYXRjaH0KaGFzIGFsc28gYmVlbiBnaXZlbi4gIFRoaXMg +aXMgZGlmZmVyZW50IGZyb20gR251UEcgdmVyc2lvbiAxLnguCgpAaXRlbSAtLXBh +c3NwaHJhc2UtZmlsZSBAY29kZXtmaWxlfQpAb3BpbmRleCBwYXNzcGhyYXNlLWZp +bGUKUmVhZCB0aGUgcGFzc3BocmFzZSBmcm9tIGZpbGUgQGNvZGV7ZmlsZX0uIE9u +bHkgdGhlIGZpcnN0IGxpbmUgd2lsbApiZSByZWFkIGZyb20gZmlsZSBAY29kZXtm +aWxlfS4gVGhpcyBjYW4gb25seSBiZSB1c2VkIGlmIG9ubHkgb25lCnBhc3NwaHJh +c2UgaXMgc3VwcGxpZWQuIE9idmlvdXNseSwgYSBwYXNzcGhyYXNlIHN0b3JlZCBp +biBhIGZpbGUgaXMKb2YgcXVlc3Rpb25hYmxlIHNlY3VyaXR5IGlmIG90aGVyIHVz +ZXJzIGNhbiByZWFkIHRoaXMgZmlsZS4gRG9uJ3QgdXNlCnRoaXMgb3B0aW9uIGlm +IHlvdSBjYW4gYXZvaWQgaXQuCk5vdGUgdGhhdCB0aGlzIHBhc3NwaHJhc2UgaXMg +b25seSB1c2VkIGlmIHRoZSBvcHRpb24gQG9wdGlvbnstLWJhdGNofQpoYXMgYWxz +byBiZWVuIGdpdmVuLiAgVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBHbnVQRyB2ZXJz +aW9uIDEueC4KCkBpdGVtIC0tcGFzc3BocmFzZSBAY29kZXtzdHJpbmd9CkBvcGlu +ZGV4IHBhc3NwaHJhc2UKVXNlIEBjb2Rle3N0cmluZ30gYXMgdGhlIHBhc3NwaHJh +c2UuIFRoaXMgY2FuIG9ubHkgYmUgdXNlZCBpZiBvbmx5IG9uZQpwYXNzcGhyYXNl +IGlzIHN1cHBsaWVkLiBPYnZpb3VzbHksIHRoaXMgaXMgb2YgdmVyeSBxdWVzdGlv +bmFibGUKc2VjdXJpdHkgb24gYSBtdWx0aS11c2VyIHN5c3RlbS4gRG9uJ3QgdXNl +IHRoaXMgb3B0aW9uIGlmIHlvdSBjYW4KYXZvaWQgaXQuCk5vdGUgdGhhdCB0aGlz +IHBhc3NwaHJhc2UgaXMgb25seSB1c2VkIGlmIHRoZSBvcHRpb24gQG9wdGlvbnst +LWJhdGNofQpoYXMgYWxzbyBiZWVuIGdpdmVuLiAgVGhpcyBpcyBkaWZmZXJlbnQg +ZnJvbSBHbnVQRyB2ZXJzaW9uIDEueC4KCkBpdGVtIC0tcGluZW50cnktbW9kZSBA +Y29kZXttb2RlfQpAb3BpbmRleCBwaW5lbnRyeS1tb2RlClNldCB0aGUgcGluZW50 +cnkgbW9kZSB0byBAY29kZXttb2RlfS4gIEFsbG93ZWQgdmFsdWVzIGZvciBAY29k +ZXttb2RlfQphcmU6CkB0YWJsZSBAYXNpcwogIEBpdGVtIGRlZmF1bHQKICBVc2Ug +dGhlIGRlZmF1bHQgb2YgdGhlIGFnZW50LCB3aGljaCBpcyBAY29kZXthc2t9Lgog +IEBpdGVtIGFzawogIEZvcmNlIHRoZSB1c2Ugb2YgdGhlIFBpbmVudHJ5LgogIEBp +dGVtIGNhbmNlbAogIEVtdWxhdGUgdXNlIG9mIFBpbmVudHJ5J3MgY2FuY2VsIGJ1 +dHRvbi4KICBAaXRlbSBlcnJvcgogIFJldHVybiBhIFBpbmVudHJ5IGVycm9yIChg +YE5vIFBpbmVudHJ5JycpLgogIEBpdGVtIGxvb3BiYWNrCiAgUmVkaXJlY3QgUGlu +ZW50cnkgcXVlcmllcyB0byB0aGUgY2FsbGVyLiAgTm90ZSB0aGF0IGluIGNvbnRy +YXN0IHRvCiAgUGluZW50cnkgdGhlIHVzZXIgaXMgbm90IHByb21wdGVkIGFnYWlu +IGlmIGhlIGVudGVycyBhIGJhZCBwYXNzd29yZC4KQGVuZCB0YWJsZQoKQGl0ZW0g +LS1jb21tYW5kLWZkIEBjb2Rle259CkBvcGluZGV4IGNvbW1hbmQtZmQKVGhpcyBp +cyBhIHJlcGxhY2VtZW50IGZvciB0aGUgZGVwcmVjYXRlZCBzaGFyZWQtbWVtb3J5 +IElQQyBtb2RlLgpJZiB0aGlzIG9wdGlvbiBpcyBlbmFibGVkLCB1c2VyIGlucHV0 +IG9uIHF1ZXN0aW9ucyBpcyBub3QgZXhwZWN0ZWQKZnJvbSB0aGUgVFRZIGJ1dCBm +cm9tIHRoZSBnaXZlbiBmaWxlIGRlc2NyaXB0b3IuIEl0IHNob3VsZCBiZSB1c2Vk +CnRvZ2V0aGVyIHdpdGggQG9wdGlvbnstLXN0YXR1cy1mZH0uIFNlZSB0aGUgZmls +ZSBkb2MvREVUQUlMUyBpbiB0aGUgc291cmNlCmRpc3RyaWJ1dGlvbiBmb3IgZGV0 +YWlscyBvbiBob3cgdG8gdXNlIGl0LgoKQGl0ZW0gLS1jb21tYW5kLWZpbGUgQGNv +ZGV7ZmlsZX0KQG9waW5kZXggY29tbWFuZC1maWxlClNhbWUgYXMgQG9wdGlvbnst +LWNvbW1hbmQtZmR9LCBleGNlcHQgdGhlIGNvbW1hbmRzIGFyZSByZWFkIG91dCBv +ZiBmaWxlCkBjb2Rle2ZpbGV9CgpAaXRlbSAtLWFsbG93LW5vbi1zZWxmc2lnbmVk +LXVpZApAaXRlbXggLS1uby1hbGxvdy1ub24tc2VsZnNpZ25lZC11aWQKQG9waW5k +ZXggYWxsb3ctbm9uLXNlbGZzaWduZWQtdWlkCkFsbG93IHRoZSBpbXBvcnQgYW5k +IHVzZSBvZiBrZXlzIHdpdGggdXNlciBJRHMgd2hpY2ggYXJlIG5vdApzZWxmLXNp +Z25lZC4gVGhpcyBpcyBub3QgcmVjb21tZW5kZWQsIGFzIGEgbm9uIHNlbGYtc2ln +bmVkIHVzZXIgSUQgaXMKdHJpdmlhbCB0byBmb3JnZS4gQG9wdGlvbnstLW5vLWFs +bG93LW5vbi1zZWxmc2lnbmVkLXVpZH0gZGlzYWJsZXMuCgpAaXRlbSAtLWFsbG93 +LWZyZWVmb3JtLXVpZApAb3BpbmRleCBhbGxvdy1mcmVlZm9ybS11aWQKRGlzYWJs +ZSBhbGwgY2hlY2tzIG9uIHRoZSBmb3JtIG9mIHRoZSB1c2VyIElEIHdoaWxlIGdl +bmVyYXRpbmcgYSBuZXcKb25lLiBUaGlzIG9wdGlvbiBzaG91bGQgb25seSBiZSB1 +c2VkIGluIHZlcnkgc3BlY2lhbCBlbnZpcm9ubWVudHMgYXMKaXQgZG9lcyBub3Qg +ZW5zdXJlIHRoZSBkZS1mYWN0byBzdGFuZGFyZCBmb3JtYXQgb2YgdXNlciBJRHMu +CgpAaXRlbSAtLWlnbm9yZS10aW1lLWNvbmZsaWN0CkBvcGluZGV4IGlnbm9yZS10 +aW1lLWNvbmZsaWN0CkdudVBHIG5vcm1hbGx5IGNoZWNrcyB0aGF0IHRoZSB0aW1l +c3RhbXBzIGFzc29jaWF0ZWQgd2l0aCBrZXlzIGFuZApzaWduYXR1cmVzIGhhdmUg +cGxhdXNpYmxlIHZhbHVlcy4gSG93ZXZlciwgc29tZXRpbWVzIGEgc2lnbmF0dXJl +CnNlZW1zIHRvIGJlIG9sZGVyIHRoYW4gdGhlIGtleSBkdWUgdG8gY2xvY2sgcHJv +YmxlbXMuIFRoaXMgb3B0aW9uCm1ha2VzIHRoZXNlIGNoZWNrcyBqdXN0IGEgd2Fy +bmluZy4gU2VlIGFsc28gQG9wdGlvbnstLWlnbm9yZS12YWxpZC1mcm9tfSBmb3IK +dGltZXN0YW1wIGlzc3VlcyBvbiBzdWJrZXlzLgoKQGl0ZW0gLS1pZ25vcmUtdmFs +aWQtZnJvbQpAb3BpbmRleCBpZ25vcmUtdmFsaWQtZnJvbQpHbnVQRyBub3JtYWxs +eSBkb2VzIG5vdCBzZWxlY3QgYW5kIHVzZSBzdWJrZXlzIGNyZWF0ZWQgaW4gdGhl +IGZ1dHVyZS4KVGhpcyBvcHRpb24gYWxsb3dzIHRoZSB1c2Ugb2Ygc3VjaCBrZXlz +IGFuZCB0aHVzIGV4aGliaXRzIHRoZQpwcmUtMS4wLjcgYmVoYXZpb3VyLiBZb3Ug +c2hvdWxkIG5vdCB1c2UgdGhpcyBvcHRpb24gdW5sZXNzIHRoZXJlCmlzIHNvbWUg +Y2xvY2sgcHJvYmxlbS4gU2VlIGFsc28gQG9wdGlvbnstLWlnbm9yZS10aW1lLWNv +bmZsaWN0fSBmb3IgdGltZXN0YW1wCmlzc3VlcyB3aXRoIHNpZ25hdHVyZXMuCgpA +aXRlbSAtLWlnbm9yZS1jcmMtZXJyb3IKQG9waW5kZXggaWdub3JlLWNyYy1lcnJv +cgpUaGUgQVNDSUkgYXJtb3IgdXNlZCBieSBPcGVuUEdQIGlzIHByb3RlY3RlZCBi +eSBhIENSQyBjaGVja3N1bSBhZ2FpbnN0CnRyYW5zbWlzc2lvbiBlcnJvcnMuIE9j +Y2FzaW9uYWxseSB0aGUgQ1JDIGdldHMgbWFuZ2xlZCBzb21ld2hlcmUgb24KdGhl +IHRyYW5zbWlzc2lvbiBjaGFubmVsIGJ1dCB0aGUgYWN0dWFsIGNvbnRlbnQgKHdo +aWNoIGlzIHByb3RlY3RlZCBieQp0aGUgT3BlblBHUCBwcm90b2NvbCBhbnl3YXkp +IGlzIHN0aWxsIG9rYXkuIFRoaXMgb3B0aW9uIGFsbG93cyBHbnVQRwp0byBpZ25v +cmUgQ1JDIGVycm9ycy4KCkBpdGVtIC0taWdub3JlLW1kYy1lcnJvcgpAb3BpbmRl +eCBpZ25vcmUtbWRjLWVycm9yClRoaXMgb3B0aW9uIGNoYW5nZXMgYSBNREMgaW50 +ZWdyaXR5IHByb3RlY3Rpb24gZmFpbHVyZSBpbnRvIGEgd2FybmluZy4KVGhpcyBj +YW4gYmUgdXNlZnVsIGlmIGEgbWVzc2FnZSBpcyBwYXJ0aWFsbHkgY29ycnVwdCwg +YnV0IGl0IGlzCm5lY2Vzc2FyeSB0byBnZXQgYXMgbXVjaCBkYXRhIGFzIHBvc3Np +YmxlIG91dCBvZiB0aGUgY29ycnVwdCBtZXNzYWdlLgpIb3dldmVyLCBiZSBhd2Fy +ZSB0aGF0IGEgTURDIHByb3RlY3Rpb24gZmFpbHVyZSBtYXkgYWxzbyBtZWFuIHRo +YXQgdGhlCm1lc3NhZ2Ugd2FzIHRhbXBlcmVkIHdpdGggaW50ZW50aW9uYWxseSBi +eSBhbiBhdHRhY2tlci4KCkBpdGVtIC0tYWxsb3ctd2Vhay1kaWdlc3QtYWxnb3MK +QG9waW5kZXggYWxsb3ctd2Vhay1kaWdlc3QtYWxnb3MKU2lnbmF0dXJlcyBtYWRl +IHdpdGgga25vd24td2VhayBkaWdlc3QgYWxnb3JpdGhtcyBhcmUgbm9ybWFsbHkK +cmVqZWN0ZWQgd2l0aCBhbiBgYGludmFsaWQgZGlnZXN0IGFsZ29yaXRobScnIG1l +c3NhZ2UuICBUaGlzIG9wdGlvbgphbGxvd3MgdGhlIHZlcmlmaWNhdGlvbiBvZiBz +aWduYXR1cmVzIG1hZGUgd2l0aCBzdWNoIHdlYWsgYWxnb3JpdGhtcy4KTUQ1IGlz +IHRoZSBvbmx5IGRpZ2VzdCBhbGdvcml0aG0gY29uc2lkZXJlZCB3ZWFrIGJ5IGRl +ZmF1bHQuICBTZWUgYWxzbwpAb3B0aW9uey0td2Vhay1kaWdlc3R9IHRvIHJlamVj +dCBvdGhlciBkaWdlc3QgYWxnb3JpdGhtcy4KCkBpdGVtIC0td2Vhay1kaWdlc3Qg +QGNvZGV7bmFtZX0KQG9waW5kZXggd2Vhay1kaWdlc3QKVHJlYXQgdGhlIHNwZWNp +ZmllZCBkaWdlc3QgYWxnb3JpdGhtIGFzIHdlYWsuICBTaWduYXR1cmVzIG1hZGUg +b3Zlcgp3ZWFrIGRpZ2VzdHMgYWxnb3JpdGhtcyBhcmUgbm9ybWFsbHkgcmVqZWN0 +ZWQuIFRoaXMgb3B0aW9uIGNhbiBiZQpzdXBwbGllZCBtdWx0aXBsZSB0aW1lcyBp +ZiBtdWx0aXBsZSBhbGdvcml0aG1zIHNob3VsZCBiZSBjb25zaWRlcmVkCndlYWsu +ICBTZWUgYWxzbyBAb3B0aW9uey0tYWxsb3ctd2Vhay1kaWdlc3QtYWxnb3N9IHRv +IGRpc2FibGUKcmVqZWN0aW9uIG9mIHdlYWsgZGlnZXN0cy4gIE1ENSBpcyBhbHdh +eXMgY29uc2lkZXJlZCB3ZWFrLCBhbmQgZG9lcwpub3QgbmVlZCB0byBiZSBsaXN0 +ZWQgZXhwbGljaXRseS4KCkBpdGVtIC0tbm8tZGVmYXVsdC1rZXlyaW5nCkBvcGlu +ZGV4IG5vLWRlZmF1bHQta2V5cmluZwpEbyBub3QgYWRkIHRoZSBkZWZhdWx0IGtl +eXJpbmdzIHRvIHRoZSBsaXN0IG9mIGtleXJpbmdzLiBOb3RlIHRoYXQKR251UEcg +d2lsbCBub3Qgb3BlcmF0ZSB3aXRob3V0IGFueSBrZXlyaW5ncywgc28gaWYgeW91 +IHVzZSB0aGlzIG9wdGlvbgphbmQgZG8gbm90IHByb3ZpZGUgYWx0ZXJuYXRlIGtl +eXJpbmdzIHZpYSBAb3B0aW9uey0ta2V5cmluZ30gb3IKQG9wdGlvbnstLXNlY3Jl +dC1rZXlyaW5nfSwgdGhlbiBHbnVQRyB3aWxsIHN0aWxsIHVzZSB0aGUgZGVmYXVs +dCBwdWJsaWMgb3IKc2VjcmV0IGtleXJpbmdzLgoKQGl0ZW0gLS1za2lwLXZlcmlm +eQpAb3BpbmRleCBza2lwLXZlcmlmeQpTa2lwIHRoZSBzaWduYXR1cmUgdmVyaWZp +Y2F0aW9uIHN0ZXAuIFRoaXMgbWF5IGJlCnVzZWQgdG8gbWFrZSB0aGUgZGVjcnlw +dGlvbiBmYXN0ZXIgaWYgdGhlIHNpZ25hdHVyZQp2ZXJpZmljYXRpb24gaXMgbm90 +IG5lZWRlZC4KCkBpdGVtIC0td2l0aC1rZXktZGF0YQpAb3BpbmRleCB3aXRoLWtl +eS1kYXRhClByaW50IGtleSBsaXN0aW5ncyBkZWxpbWl0ZWQgYnkgY29sb25zIChs +aWtlIEBvcHRpb257LS13aXRoLWNvbG9uc30pIGFuZApwcmludCB0aGUgcHVibGlj +IGtleSBkYXRhLgoKQGl0ZW0gLS1mYXN0LWxpc3QtbW9kZQpAb3BpbmRleCBmYXN0 +LWxpc3QtbW9kZQpDaGFuZ2VzIHRoZSBvdXRwdXQgb2YgdGhlIGxpc3QgY29tbWFu +ZHMgdG8gd29yayBmYXN0ZXI7IHRoaXMgaXMgYWNoaWV2ZWQKYnkgbGVhdmluZyBz +b21lIHBhcnRzIGVtcHR5LiBTb21lIGFwcGxpY2F0aW9ucyBkb24ndCBuZWVkIHRo +ZSB1c2VyIElECmFuZCB0aGUgdHJ1c3QgaW5mb3JtYXRpb24gZ2l2ZW4gaW4gdGhl +IGxpc3RpbmdzLiBCeSB1c2luZyB0aGlzIG9wdGlvbnMKdGhleSBjYW4gZ2V0IGEg +ZmFzdGVyIGxpc3RpbmcuIFRoZSBleGFjdCBiZWhhdmlvdXIgb2YgdGhpcyBvcHRp +b24gbWF5CmNoYW5nZSBpbiBmdXR1cmUgdmVyc2lvbnMuICBJZiB5b3UgYXJlIG1p +c3Npbmcgc29tZSBpbmZvcm1hdGlvbiwgZG9uJ3QKdXNlIHRoaXMgb3B0aW9uLgoK +QGl0ZW0gLS1uby1saXRlcmFsCkBvcGluZGV4IG5vLWxpdGVyYWwKVGhpcyBpcyBu +b3QgZm9yIG5vcm1hbCB1c2UuIFVzZSB0aGUgc291cmNlIHRvIHNlZSBmb3Igd2hh +dCBpdCBtaWdodCBiZSB1c2VmdWwuCgpAaXRlbSAtLXNldC1maWxlc2l6ZQpAb3Bp +bmRleCBzZXQtZmlsZXNpemUKVGhpcyBpcyBub3QgZm9yIG5vcm1hbCB1c2UuIFVz +ZSB0aGUgc291cmNlIHRvIHNlZSBmb3Igd2hhdCBpdCBtaWdodCBiZSB1c2VmdWwu +CgpAaXRlbSAtLXNob3ctc2Vzc2lvbi1rZXkKQG9waW5kZXggc2hvdy1zZXNzaW9u +LWtleQpEaXNwbGF5IHRoZSBzZXNzaW9uIGtleSB1c2VkIGZvciBvbmUgbWVzc2Fn +ZS4gU2VlCkBvcHRpb257LS1vdmVycmlkZS1zZXNzaW9uLWtleX0gZm9yIHRoZSBj +b3VudGVycGFydCBvZiB0aGlzIG9wdGlvbi4KCldlIHRoaW5rIHRoYXQgS2V5IEVz +Y3JvdyBpcyBhIEJhZCBUaGluZzsgaG93ZXZlciB0aGUgdXNlciBzaG91bGQgaGF2 +ZQp0aGUgZnJlZWRvbSB0byBkZWNpZGUgd2hldGhlciB0byBnbyB0byBwcmlzb24g +b3IgdG8gcmV2ZWFsIHRoZSBjb250ZW50Cm9mIG9uZSBzcGVjaWZpYyBtZXNzYWdl +IHdpdGhvdXQgY29tcHJvbWlzaW5nIGFsbCBtZXNzYWdlcyBldmVyCmVuY3J5cHRl +ZCBmb3Igb25lIHNlY3JldCBrZXkuCgpZb3UgY2FuIGFsc28gdXNlIHRoaXMgb3B0 +aW9uIGlmIHlvdSByZWNlaXZlIGFuIGVuY3J5cHRlZCBtZXNzYWdlIHdoaWNoCmlz +IGFidXNpdmUgb3Igb2ZmZW5zaXZlLCB0byBwcm92ZSB0byB0aGUgYWRtaW5pc3Ry +YXRvcnMgb2YgdGhlCm1lc3NhZ2luZyBzeXN0ZW0gdGhhdCB0aGUgY2lwaGVydGV4 +dCB0cmFuc21pdHRlZCBjb3JyZXNwb25kcyB0byBhbgppbmFwcHJvcHJpYXRlIHBs +YWludGV4dCBzbyB0aGV5IGNhbiB0YWtlIGFjdGlvbiBhZ2FpbnN0IHRoZSBvZmZl +bmRpbmcKdXNlci4KCkBpdGVtIC0tb3ZlcnJpZGUtc2Vzc2lvbi1rZXkgQGNvZGV7 +c3RyaW5nfQpAb3BpbmRleCBvdmVycmlkZS1zZXNzaW9uLWtleQpEb24ndCB1c2Ug +dGhlIHB1YmxpYyBrZXkgYnV0IHRoZSBzZXNzaW9uIGtleSBAY29kZXtzdHJpbmd9 +LiBUaGUgZm9ybWF0Cm9mIHRoaXMgc3RyaW5nIGlzIHRoZSBzYW1lIGFzIHRoZSBv +bmUgcHJpbnRlZCBieQpAb3B0aW9uey0tc2hvdy1zZXNzaW9uLWtleX0uIFRoaXMg +b3B0aW9uIGlzIG5vcm1hbGx5IG5vdCB1c2VkIGJ1dCBjb21lcwpoYW5keSBpbiBj +YXNlIHNvbWVvbmUgZm9yY2VzIHlvdSB0byByZXZlYWwgdGhlIGNvbnRlbnQgb2Yg +YW4gZW5jcnlwdGVkCm1lc3NhZ2U7IHVzaW5nIHRoaXMgb3B0aW9uIHlvdSBjYW4g +ZG8gdGhpcyB3aXRob3V0IGhhbmRpbmcgb3V0IHRoZQpzZWNyZXQga2V5LgoKQGl0 +ZW0gLS1hc2stc2lnLWV4cGlyZQpAaXRlbXggLS1uby1hc2stc2lnLWV4cGlyZQpA +b3BpbmRleCBhc2stc2lnLWV4cGlyZQpXaGVuIG1ha2luZyBhIGRhdGEgc2lnbmF0 +dXJlLCBwcm9tcHQgZm9yIGFuIGV4cGlyYXRpb24gdGltZS4gSWYgdGhpcwpvcHRp +b24gaXMgbm90IHNwZWNpZmllZCwgdGhlIGV4cGlyYXRpb24gdGltZSBzZXQgdmlh +CkBvcHRpb257LS1kZWZhdWx0LXNpZy1leHBpcmV9IGlzIHVzZWQuIEBvcHRpb257 +LS1uby1hc2stc2lnLWV4cGlyZX0KZGlzYWJsZXMgdGhpcyBvcHRpb24uCgpAaXRl +bSAtLWRlZmF1bHQtc2lnLWV4cGlyZQpAb3BpbmRleCBkZWZhdWx0LXNpZy1leHBp +cmUKVGhlIGRlZmF1bHQgZXhwaXJhdGlvbiB0aW1lIHRvIHVzZSBmb3Igc2lnbmF0 +dXJlIGV4cGlyYXRpb24uIFZhbGlkCnZhbHVlcyBhcmUgIjAiIGZvciBubyBleHBp +cmF0aW9uLCBhIG51bWJlciBmb2xsb3dlZCBieSB0aGUgbGV0dGVyIGQKKGZvciBk +YXlzKSwgdyAoZm9yIHdlZWtzKSwgbSAoZm9yIG1vbnRocyksIG9yIHkgKGZvciB5 +ZWFycykgKGZvcgpleGFtcGxlICIybSIgZm9yIHR3byBtb250aHMsIG9yICI1eSIg +Zm9yIGZpdmUgeWVhcnMpLCBvciBhbiBhYnNvbHV0ZQpkYXRlIGluIHRoZSBmb3Jt +IFlZWVktTU0tREQuIERlZmF1bHRzIHRvICIwIi4KCkBpdGVtIC0tYXNrLWNlcnQt +ZXhwaXJlCkBpdGVteCAtLW5vLWFzay1jZXJ0LWV4cGlyZQpAb3BpbmRleCBhc2st +Y2VydC1leHBpcmUKV2hlbiBtYWtpbmcgYSBrZXkgc2lnbmF0dXJlLCBwcm9tcHQg +Zm9yIGFuIGV4cGlyYXRpb24gdGltZS4gSWYgdGhpcwpvcHRpb24gaXMgbm90IHNw +ZWNpZmllZCwgdGhlIGV4cGlyYXRpb24gdGltZSBzZXQgdmlhCkBvcHRpb257LS1k +ZWZhdWx0LWNlcnQtZXhwaXJlfSBpcyB1c2VkLiBAb3B0aW9uey0tbm8tYXNrLWNl +cnQtZXhwaXJlfQpkaXNhYmxlcyB0aGlzIG9wdGlvbi4KCkBpdGVtIC0tZGVmYXVs +dC1jZXJ0LWV4cGlyZQpAb3BpbmRleCBkZWZhdWx0LWNlcnQtZXhwaXJlClRoZSBk +ZWZhdWx0IGV4cGlyYXRpb24gdGltZSB0byB1c2UgZm9yIGtleSBzaWduYXR1cmUg +ZXhwaXJhdGlvbi4KVmFsaWQgdmFsdWVzIGFyZSAiMCIgZm9yIG5vIGV4cGlyYXRp +b24sIGEgbnVtYmVyIGZvbGxvd2VkIGJ5IHRoZQpsZXR0ZXIgZCAoZm9yIGRheXMp +LCB3IChmb3Igd2Vla3MpLCBtIChmb3IgbW9udGhzKSwgb3IgeSAoZm9yIHllYXJz +KQooZm9yIGV4YW1wbGUgIjJtIiBmb3IgdHdvIG1vbnRocywgb3IgIjV5IiBmb3Ig +Zml2ZSB5ZWFycyksIG9yIGFuCmFic29sdXRlIGRhdGUgaW4gdGhlIGZvcm0gWVlZ +WS1NTS1ERC4gRGVmYXVsdHMgdG8gIjAiLgoKQGl0ZW0gLS1hbGxvdy1zZWNyZXQt +a2V5LWltcG9ydApAb3BpbmRleCBhbGxvdy1zZWNyZXQta2V5LWltcG9ydApUaGlz +IGlzIGFuIG9ic29sZXRlIG9wdGlvbiBhbmQgaXMgbm90IHVzZWQgYW55d2hlcmUu +CgpAaXRlbSAtLWFsbG93LW11bHRpcGxlLW1lc3NhZ2VzCkBpdGVtIC0tbm8tYWxs +b3ctbXVsdGlwbGUtbWVzc2FnZXMKQG9waW5kZXggYWxsb3ctbXVsdGlwbGUtbWVz +c2FnZXMKQWxsb3cgcHJvY2Vzc2luZyBvZiBtdWx0aXBsZSBPcGVuUEdQIG1lc3Nh +Z2VzIGNvbnRhaW5lZCBpbiBhIHNpbmdsZSBmaWxlCm9yIHN0cmVhbS4gIFNvbWUg +cHJvZ3JhbXMgdGhhdCBjYWxsIEdQRyBhcmUgbm90IHByZXBhcmVkIHRvIGRlYWwg +d2l0aAptdWx0aXBsZSBtZXNzYWdlcyBiZWluZyBwcm9jZXNzZWQgdG9nZXRoZXIs +IHNvIHRoaXMgb3B0aW9uIGRlZmF1bHRzIHRvCm5vLiAgTm90ZSB0aGF0IHZlcnNp +b25zIG9mIEdQRyBwcmlvciB0byAxLjQuNyBhbHdheXMgYWxsb3dlZCBtdWx0aXBs +ZQptZXNzYWdlcy4KCldhcm5pbmc6IERvIG5vdCB1c2UgdGhpcyBvcHRpb24gdW5s +ZXNzIHlvdSBuZWVkIGl0IGFzIGEgdGVtcG9yYXJ5Cndvcmthcm91bmQhCgoKQGl0 +ZW0gLS1lbmFibGUtc3BlY2lhbC1maWxlbmFtZXMKQG9waW5kZXggZW5hYmxlLXNw +ZWNpYWwtZmlsZW5hbWVzClRoaXMgb3B0aW9ucyBlbmFibGVzIGEgbW9kZSBpbiB3 +aGljaCBmaWxlbmFtZXMgb2YgdGhlIGZvcm0KQGZpbGV7LSZufSwgd2hlcmUgbiBp +cyBhIG5vbi1uZWdhdGl2ZSBkZWNpbWFsIG51bWJlciwKcmVmZXIgdG8gdGhlIGZp +bGUgZGVzY3JpcHRvciBuIGFuZCBub3QgdG8gYSBmaWxlIHdpdGggdGhhdCBuYW1l +LgoKQGl0ZW0gLS1uby1leHBlbnNpdmUtdHJ1c3QtY2hlY2tzCkBvcGluZGV4IG5v +LWV4cGVuc2l2ZS10cnVzdC1jaGVja3MKRXhwZXJpbWVudGFsIHVzZSBvbmx5LgoK +QGl0ZW0gLS1wcmVzZXJ2ZS1wZXJtaXNzaW9ucwpAb3BpbmRleCBwcmVzZXJ2ZS1w +ZXJtaXNzaW9ucwpEb24ndCBjaGFuZ2UgdGhlIHBlcm1pc3Npb25zIG9mIGEgc2Vj +cmV0IGtleXJpbmcgYmFjayB0byB1c2VyCnJlYWQvd3JpdGUgb25seS4gVXNlIHRo +aXMgb3B0aW9uIG9ubHkgaWYgeW91IHJlYWxseSBrbm93IHdoYXQgeW91IGFyZSBk +b2luZy4KCkBpdGVtIC0tZGVmYXVsdC1wcmVmZXJlbmNlLWxpc3QgQGNvZGV7c3Ry +aW5nfQpAb3BpbmRleCBkZWZhdWx0LXByZWZlcmVuY2UtbGlzdApTZXQgdGhlIGxp +c3Qgb2YgZGVmYXVsdCBwcmVmZXJlbmNlcyB0byBAY29kZXtzdHJpbmd9LiBUaGlz +IHByZWZlcmVuY2UKbGlzdCBpcyB1c2VkIGZvciBuZXcga2V5cyBhbmQgYmVjb21l +cyB0aGUgZGVmYXVsdCBmb3IgInNldHByZWYiIGluIHRoZQplZGl0IG1lbnUuCgpA +aXRlbSAtLWRlZmF1bHQta2V5c2VydmVyLXVybCBAY29kZXtuYW1lfQpAb3BpbmRl +eCBkZWZhdWx0LWtleXNlcnZlci11cmwKU2V0IHRoZSBkZWZhdWx0IGtleXNlcnZl +ciBVUkwgdG8gQGNvZGV7bmFtZX0uIFRoaXMga2V5c2VydmVyIHdpbGwgYmUKdXNl +ZCBhcyB0aGUga2V5c2VydmVyIFVSTCB3aGVuIHdyaXRpbmcgYSBuZXcgc2VsZi1z +aWduYXR1cmUgb24gYSBrZXksCndoaWNoIGluY2x1ZGVzIGtleSBnZW5lcmF0aW9u +IGFuZCBjaGFuZ2luZyBwcmVmZXJlbmNlcy4KCkBpdGVtIC0tbGlzdC1jb25maWcK +QG9waW5kZXggbGlzdC1jb25maWcKRGlzcGxheSB2YXJpb3VzIGludGVybmFsIGNv +bmZpZ3VyYXRpb24gcGFyYW1ldGVycyBvZiBHbnVQRy4gVGhpcyBvcHRpb24KaXMg +aW50ZW5kZWQgZm9yIGV4dGVybmFsIHByb2dyYW1zIHRoYXQgY2FsbCBHbnVQRyB0 +byBwZXJmb3JtIHRhc2tzLCBhbmQKaXMgdGh1cyBub3QgZ2VuZXJhbGx5IHVzZWZ1 +bC4gU2VlIHRoZSBmaWxlIEBmaWxle2RvYy9ERVRBSUxTfSBpbiB0aGUKc291cmNl +IGRpc3RyaWJ1dGlvbiBmb3IgdGhlIGRldGFpbHMgb2Ygd2hpY2ggY29uZmlndXJh +dGlvbiBpdGVtcyBtYXkgYmUKbGlzdGVkLiBAb3B0aW9uey0tbGlzdC1jb25maWd9 +IGlzIG9ubHkgdXNhYmxlIHdpdGgKQG9wdGlvbnstLXdpdGgtY29sb25zfSBzZXQu +CgpAaXRlbSAtLWxpc3QtZ2NyeXB0LWNvbmZpZwpAb3BpbmRleCBsaXN0LWdjcnlw +dC1jb25maWcKRGlzcGxheSB2YXJpb3VzIGludGVybmFsIGNvbmZpZ3VyYXRpb24g +cGFyYW1ldGVycyBvZiBMaWJnY3J5cHQuCgpAaXRlbSAtLWdwZ2NvbmYtbGlzdApA +b3BpbmRleCBncGdjb25mLWxpc3QKVGhpcyBjb21tYW5kIGlzIHNpbWlsYXIgdG8g +QG9wdGlvbnstLWxpc3QtY29uZmlnfSBidXQgaW4gZ2VuZXJhbCBvbmx5CmludGVy +bmFsbHkgdXNlZCBieSB0aGUgQGNvbW1hbmR7Z3BnY29uZn0gdG9vbC4KCkBpdGVt +IC0tZ3BnY29uZi10ZXN0CkBvcGluZGV4IGdwZ2NvbmYtdGVzdApUaGlzIGlzIG1v +cmUgb3IgbGVzcyBkdW1teSBhY3Rpb24uICBIb3dldmVyIGl0IHBhcnNlcyB0aGUg +Y29uZmlndXJhdGlvbgpmaWxlIGFuZCByZXR1cm5zIHdpdGggZmFpbHVyZSBpZiB0 +aGUgY29uZmlndXJhdGlvbiBmaWxlIHdvdWxkIHByZXZlbnQKQGNvbW1hbmR7Z3Bn +fSBmcm9tIHN0YXJ0dXAuICBUaHVzIGl0IG1heSBiZSB1c2VkIHRvIHJ1biBhIHN5 +bnRheCBjaGVjawpvbiB0aGUgY29uZmlndXJhdGlvbiBmaWxlLgoKQGVuZCB0YWJs +ZQoKQGMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAYyAqKioqKioq +IERlcHJlY2F0ZWQgKioqKioqKioqKioqCkBjICoqKioqKioqKioqKioqKioqKioq +KioqKioqKioqKioKQG5vZGUgRGVwcmVjYXRlZCBPcHRpb25zCkBzdWJzZWN0aW9u +IERlcHJlY2F0ZWQgb3B0aW9ucwoKQHRhYmxlIEBnbnVwZ3RhYm9wdAoKQGl0ZW0g +LS1zaG93LXBob3RvcwpAaXRlbXggLS1uby1zaG93LXBob3RvcwpAb3BpbmRleCBz +aG93LXBob3RvcwpDYXVzZXMgQG9wdGlvbnstLWxpc3Qta2V5c30sIEBvcHRpb257 +LS1saXN0LXNpZ3N9LApAb3B0aW9uey0tbGlzdC1wdWJsaWMta2V5c30sIEBvcHRp +b257LS1saXN0LXNlY3JldC1rZXlzfSwgYW5kIHZlcmlmeWluZwphIHNpZ25hdHVy +ZSB0byBhbHNvIGRpc3BsYXkgdGhlIHBob3RvIElEIGF0dGFjaGVkIHRvIHRoZSBr +ZXksIGlmCmFueS4gU2VlIGFsc28gQG9wdGlvbnstLXBob3RvLXZpZXdlcn0uIFRo +ZXNlIG9wdGlvbnMgYXJlIGRlcHJlY2F0ZWQuIFVzZQpAb3B0aW9uey0tbGlzdC1v +cHRpb25zIFtuby1dc2hvdy1waG90b3N9IGFuZC9vciBAb3B0aW9uey0tdmVyaWZ5 +LW9wdGlvbnMKW25vLV1zaG93LXBob3Rvc30gaW5zdGVhZC4KCkBpdGVtIC0tc2hv +dy1rZXlyaW5nCkBvcGluZGV4IHNob3cta2V5cmluZwpEaXNwbGF5IHRoZSBrZXly +aW5nIG5hbWUgYXQgdGhlIGhlYWQgb2Yga2V5IGxpc3RpbmdzIHRvIHNob3cgd2hp +Y2gKa2V5cmluZyBhIGdpdmVuIGtleSByZXNpZGVzIG9uLiBUaGlzIG9wdGlvbiBp +cyBkZXByZWNhdGVkOiB1c2UKQG9wdGlvbnstLWxpc3Qtb3B0aW9ucyBbbm8tXXNo +b3cta2V5cmluZ30gaW5zdGVhZC4KCkBpdGVtIC0tYWx3YXlzLXRydXN0CkBvcGlu +ZGV4IGFsd2F5cy10cnVzdApJZGVudGljYWwgdG8gQG9wdGlvbnstLXRydXN0LW1v +ZGVsIGFsd2F5c30uIFRoaXMgb3B0aW9uIGlzIGRlcHJlY2F0ZWQuCgpAaXRlbSAt +LXNob3ctbm90YXRpb24KQGl0ZW14IC0tbm8tc2hvdy1ub3RhdGlvbgpAb3BpbmRl +eCBzaG93LW5vdGF0aW9uClNob3cgc2lnbmF0dXJlIG5vdGF0aW9ucyBpbiB0aGUg +QG9wdGlvbnstLWxpc3Qtc2lnc30gb3IgQG9wdGlvbnstLWNoZWNrLXNpZ3N9IGxp +c3RpbmdzCmFzIHdlbGwgYXMgd2hlbiB2ZXJpZnlpbmcgYSBzaWduYXR1cmUgd2l0 +aCBhIG5vdGF0aW9uIGluIGl0LiBUaGVzZQpvcHRpb25zIGFyZSBkZXByZWNhdGVk +LiBVc2UgQG9wdGlvbnstLWxpc3Qtb3B0aW9ucyBbbm8tXXNob3ctbm90YXRpb259 +CmFuZC9vciBAb3B0aW9uey0tdmVyaWZ5LW9wdGlvbnMgW25vLV1zaG93LW5vdGF0 +aW9ufSBpbnN0ZWFkLgoKQGl0ZW0gLS1zaG93LXBvbGljeS11cmwKQGl0ZW14IC0t +bm8tc2hvdy1wb2xpY3ktdXJsCkBvcGluZGV4IHNob3ctcG9saWN5LXVybApTaG93 +IHBvbGljeSBVUkxzIGluIHRoZSBAb3B0aW9uey0tbGlzdC1zaWdzfSBvciBAb3B0 +aW9uey0tY2hlY2stc2lnc30KbGlzdGluZ3MgYXMgd2VsbCBhcyB3aGVuIHZlcmlm +eWluZyBhIHNpZ25hdHVyZSB3aXRoIGEgcG9saWN5IFVSTCBpbgppdC4gVGhlc2Ug +b3B0aW9ucyBhcmUgZGVwcmVjYXRlZC4gVXNlIEBvcHRpb257LS1saXN0LW9wdGlv +bnMKW25vLV1zaG93LXBvbGljeS11cmx9IGFuZC9vciBAb3B0aW9uey0tdmVyaWZ5 +LW9wdGlvbnMKW25vLV1zaG93LXBvbGljeS11cmx9IGluc3RlYWQuCgoKQGVuZCB0 +YWJsZQoKCkBjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq +KioqKioKQGMgKioqKioqKioqKioqKioqICAgICAgICAgICAgKioqKioqKioqKioq +KioqKgpAYyAqKioqKioqKioqKioqKiogICBGSUxFUyAgICAqKioqKioqKioqKioq +KioqCkBjICoqKioqKioqKioqKioqKiAgICAgICAgICAgICoqKioqKioqKioqKioq +KioKQGMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq +KgpAbWFuc2VjdCBmaWxlcwpAbm9kZSBHUEcgQ29uZmlndXJhdGlvbgpAc2VjdGlv +biBDb25maWd1cmF0aW9uIGZpbGVzCgpUaGVyZSBhcmUgYSBmZXcgY29uZmlndXJh +dGlvbiBmaWxlcyB0byBjb250cm9sIGNlcnRhaW4gYXNwZWN0cyBvZgpAY29tbWFu +ZHtAZ3BnbmFtZX0ncyBvcGVyYXRpb24uIFVubGVzcyBub3RlZCwgdGhleSBhcmUg +ZXhwZWN0ZWQgaW4gdGhlCmN1cnJlbnQgaG9tZSBkaXJlY3RvcnkgKEBweHJlZntv +cHRpb24gLS1ob21lZGlyfSkuCgpAdGFibGUgQGZpbGUKCiAgQGl0ZW0gZ3BnLmNv +bmYKICBAY2luZGV4IGdwZy5jb25mCiAgVGhpcyBpcyB0aGUgc3RhbmRhcmQgY29u +ZmlndXJhdGlvbiBmaWxlIHJlYWQgYnkgQGNvbW1hbmR7QGdwZ25hbWV9IG9uCiAg +c3RhcnR1cC4gIEl0IG1heSBjb250YWluIGFueSB2YWxpZCBsb25nIG9wdGlvbjsg +dGhlIGxlYWRpbmcgdHdvIGRhc2hlcwogIG1heSBub3QgYmUgZW50ZXJlZCBhbmQg +dGhlIG9wdGlvbiBtYXkgbm90IGJlIGFiYnJldmlhdGVkLiAgVGhpcyBkZWZhdWx0 +CiAgbmFtZSBtYXkgYmUgY2hhbmdlZCBvbiB0aGUgY29tbWFuZCBsaW5lIChAcHhy +ZWZ7Z3BnLW9wdGlvbiAtLW9wdGlvbnN9KS4KICBZb3Ugc2hvdWxkIGJhY2t1cCB0 +aGlzIGZpbGUuCgpAZW5kIHRhYmxlCgpAYyBtYW46LlJFCk5vdGUgdGhhdCBvbiBs +YXJnZXIgaW5zdGFsbGF0aW9ucywgaXQgaXMgdXNlZnVsIHRvIHB1dCBwcmVkZWZp +bmVkIGZpbGVzCmludG8gdGhlIGRpcmVjdG9yeSBAZmlsZXtAdmFsdWV7U1lTQ09O +RlNLRUxESVJ9fSBzbyB0aGF0Cm5ld2x5IGNyZWF0ZWQgdXNlcnMgc3RhcnQgdXAg +d2l0aCBhIHdvcmtpbmcgY29uZmlndXJhdGlvbi4KRm9yIGV4aXN0aW5nIHVzZXJz +IGEgc21hbGwKaGVscGVyIHNjcmlwdCBpcyBwcm92aWRlZCB0byBjcmVhdGUgdGhl +c2UgZmlsZXMgKEBweHJlZnthZGRnbnVwZ2hvbWV9KS4KCkZvciBpbnRlcm5hbCBw +dXJwb3NlcyBAY29tbWFuZHtAZ3BnbmFtZX0gY3JlYXRlcyBhbmQgbWFpbnRhaW5z +IGEgZmV3IG90aGVyCmZpbGVzOyBUaGV5IGFsbCBsaXZlIGluIGluIHRoZSBjdXJy +ZW50IGhvbWUgZGlyZWN0b3J5IChAcHhyZWZ7b3B0aW9uCi0taG9tZWRpcn0pLiAg +T25seSB0aGUgQGNvbW1hbmR7QGdwZ25hbWV9IHByb2dyYW0gbWF5IG1vZGlmeSB0 +aGVzZSBmaWxlcy4KCgpAdGFibGUgQGZpbGUKICBAaXRlbSB+Ly5nbnVwZy9wdWJy +aW5nLmdwZwogIFRoZSBwdWJsaWMga2V5cmluZy4gIFlvdSBzaG91bGQgYmFja3Vw +IHRoaXMgZmlsZS4KCiAgQGl0ZW0gfi8uZ251cGcvcHVicmluZy5ncGcubG9jawog +IFRoZSBsb2NrIGZpbGUgZm9yIHRoZSBwdWJsaWMga2V5cmluZy4KCiAgQGl0ZW0g +fi8uZ251cGcvcHVicmluZy5rYngKICBUaGUgcHVibGljIGtleXJpbmcgdXNpbmcg +YSBkaWZmZXJlbnQgZm9ybWF0LiAgVGhpcyBmaWxlIGlzIHNoYXJyZWQKICB3aXRo +IEBjb21tYW5ke2dwZ3NtfS4gIFlvdSBzaG91bGQgYmFja3VwIHRoaXMgZmlsZS4K +CiAgQGl0ZW0gfi8uZ251cGcvcHVicmluZy5rYngubG9jawogIFRoZSBsb2NrIGZp +bGUgZm9yIEBmaWxle3B1YnJpbmcua2J4fS4KCiAgQGl0ZW0gfi8uZ251cGcvc2Vj +cmluZy5ncGcKICBBIHNlY3JldCBrZXlyaW5nIGFzIHVzZWQgYnkgR251UEcgdmVy +c2lvbnMgYmVmb3JlIDIuMS4gIEl0IGlzIG5vdAogIHVzZWQgYnkgR251UEcgMi4x +IGFuZCBsYXRlci4KCiAgQGl0ZW0gfi8uZ251cGcvLmdwZy12MjEtbWlncmF0ZWQK +ICBGaWxlIGluZGljYXRpbmcgdGhhdCBhIG1pZ3JhdGlvbiB0byBHbnVQRyAyLjEg +aGFzIGJlZW4gZG9uZS4KCiAgQGl0ZW0gfi8uZ251cGcvdHJ1c3RkYi5ncGcKICBU +aGUgdHJ1c3QgZGF0YWJhc2UuICBUaGVyZSBpcyBubyBuZWVkIHRvIGJhY2t1cCB0 +aGlzIGZpbGU7IGl0IGlzIGJldHRlcgogIHRvIGJhY2t1cCB0aGUgb3duZXJ0cnVz +dCB2YWx1ZXMgKEBweHJlZntvcHRpb24gLS1leHBvcnQtb3duZXJ0cnVzdH0pLgoK +ICBAaXRlbSB+Ly5nbnVwZy90cnVzdGRiLmdwZy5sb2NrCiAgVGhlIGxvY2sgZmls +ZSBmb3IgdGhlIHRydXN0IGRhdGFiYXNlLgoKICBAaXRlbSB+Ly5nbnVwZy9yYW5k +b21fc2VlZAogIEEgZmlsZSB1c2VkIHRvIHByZXNlcnZlIHRoZSBzdGF0ZSBvZiB0 +aGUgaW50ZXJuYWwgcmFuZG9tIHBvb2wuCgogIEBpdGVtIH4vLmdudXBnL3NlY3Jp +bmcuZ3BnLmxvY2sKICBUaGUgbG9jayBmaWxlIGZvciB0aGUgc2VjcmV0IGtleXJp +bmcuCgogIEBpdGVtIH4vLmdudXBnL29wZW5wZ3AtcmV2b2NzLmQvCiAgVGhpcyBp +cyB0aGUgZGlyZWN0b3J5IHdoZXJlIGdwZyBzdG9yZXMgcHJlLWdlbmVyYXRlZCBy +ZXZvY2F0aW9uCiAgY2VydGlmaWNhdGVzLiAgVGhlIGZpbGUgbmFtZSBjb3JyZXNw +b25kcyB0byB0aGUgT3BlblBHUCBmaW5nZXJwcmludCBvZgogIHRoZSByZXNwZWN0 +aXZlIGtleS4gIEl0IGlzIHN1Z2dlc3RlZCB0byBiYWNrdXAgdGhvc2UgY2VydGlm +aWNhdGVzIGFuZAogIGlmIHRoZSBwcmltYXJ5IHByaXZhdGUga2V5IGlzIG5vdCBz +dG9yZWQgb24gdGhlIGRpc2sgdG8gbW92ZSB0aGVtIHRvCiAgYW4gZXh0ZXJuYWwg +c3RvcmFnZSBkZXZpY2UuICBBbnlvbmUgd2hvIGNhbiBhY2Nlc3MgdGhlc2VzIGZp +bGVzIGlzCiAgYWJsZSB0byByZXZva2UgdGhlIGNvcnJlc3BvbmRpbmcga2V5LiAg +WW91IG1heSB3YW50IHRvIHByaW50IHRoZW0gb3V0LgogIFlvdSBzaG91bGQgYmFj +a3VwIGFsbCBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeSBhbmQgdGFrZSBjYXJlIHRv +IGtlZXAKICB0aGlzIGJhY2t1cCBjbG9zZWQgYXdheS4KCiAgQGl0ZW0gQHZhbHVl +e0RBVEFESVJ9L29wdGlvbnMuc2tlbAogIFRoZSBza2VsZXRvbiBvcHRpb25zIGZp +bGUuCgogIEBpdGVtIEB2YWx1ZXtMSUJESVJ9LwogIERlZmF1bHQgbG9jYXRpb24g +Zm9yIGV4dGVuc2lvbnMuCgpAZW5kIHRhYmxlCgpAYyBtYW46LlJFCk9wZXJhdGlv +biBpcyBmdXJ0aGVyIGNvbnRyb2xsZWQgYnkgYSBmZXcgZW52aXJvbm1lbnQgdmFy +aWFibGVzOgoKQHRhYmxlIEBhc2lzCgogIEBpdGVtIEhPTUUKICBVc2VkIHRvIGxv +Y2F0ZSB0aGUgZGVmYXVsdCBob21lIGRpcmVjdG9yeS4KCiAgQGl0ZW0gR05VUEdI +T01FCiAgSWYgc2V0IGRpcmVjdG9yeSB1c2VkIGluc3RlYWQgb2YgIn4vLmdudXBn +Ii4KCiAgQGl0ZW0gR1BHX0FHRU5UX0lORk8KICBUaGlzIHZhcmlhYmxlIHdhcyB1 +c2VkIGJ5IEdudVBHIHZlcnNpb25zIGJlZm9yZSAyLjEKCiAgQGl0ZW0gUElORU5U +UllfVVNFUl9EQVRBCiAgVGhpcyB2YWx1ZSBpcyBwYXNzZWQgdmlhIGdwZy1hZ2Vu +dCB0byBwaW5lbnRyeS4gIEl0IGlzIHVzZWZ1bCB0byBjb252ZXkKICBleHRyYSBp +bmZvcm1hdGlvbiB0byBhIGN1c3RvbSBwaW5lbnRyeS4KCiAgQGl0ZW0gQ09MVU1O +UwogIEBpdGVteCBMSU5FUwogIFVzZWQgdG8gc2l6ZSBzb21lIGRpc3BsYXlzIHRv +IHRoZSBmdWxsIHNpemUgb2YgdGhlIHNjcmVlbi4KCgogIEBpdGVtIExBTkdVQUdF +CiAgQXBhcnQgZnJvbSBpdHMgdXNlIGJ5IEdOVSwgaXQgaXMgdXNlZCBpbiB0aGUg +VzMyIHZlcnNpb24gdG8gb3ZlcnJpZGUgdGhlCiAgbGFuZ3VhZ2Ugc2VsZWN0aW9u +IGRvbmUgdGhyb3VnaCB0aGUgUmVnaXN0cnkuICBJZiB1c2VkIGFuZCBzZXQgdG8g +YQogIHZhbGlkIGFuZCBhdmFpbGFibGUgbGFuZ3VhZ2UgbmFtZSAoQHZhcntsYW5n +aWR9KSwgdGhlIGZpbGUgd2l0aCB0aGUKICB0cmFuc2xhdGlvbiBpcyBsb2FkZWQg +ZnJvbQoKICBAY29kZXtAdmFye2dwZ2Rpcn0vZ251cGcubmxzL0B2YXJ7bGFuZ2lk +fS5tb30uICBIZXJlIEB2YXJ7Z3BnZGlyfSBpcyB0aGUKICBkaXJlY3Rvcnkgb3V0 +IG9mIHdoaWNoIHRoZSBncGcgYmluYXJ5IGhhcyBiZWVuIGxvYWRlZC4gIElmIGl0 +IGNhbid0IGJlCiAgbG9hZGVkIHRoZSBSZWdpc3RyeSBpcyB0cmllZCBhbmQgYXMg +bGFzdCByZXNvcnQgdGhlIG5hdGl2ZSBXaW5kb3dzCiAgbG9jYWxlIHN5c3RlbSBp +cyB1c2VkLgoKQGVuZCB0YWJsZQoKCkBjICoqKioqKioqKioqKioqKioqKioqKioq +KioqKioqKioqKioqKioqKioqKioKQGMgKioqKioqKioqKioqKioqICAgICAgICAg +ICAgKioqKioqKioqKioqKioqKgpAYyAqKioqKioqKioqKioqKiogIEVYQU1QTEVT +ICAqKioqKioqKioqKioqKioqCkBjICoqKioqKioqKioqKioqKiAgICAgICAgICAg +ICoqKioqKioqKioqKioqKioKQGMgKioqKioqKioqKioqKioqKioqKioqKioqKioq +KioqKioqKioqKioqKioqKgpAbWFuc2VjdCBleGFtcGxlcwpAbm9kZSBHUEcgRXhh +bXBsZXMKQHNlY3Rpb24gRXhhbXBsZXMKCkB0YWJsZSBAYXNpcwoKQGl0ZW0gZ3Bn +IC1zZSAtciBAY29kZXtCb2J9IEBjb2Rle2ZpbGV9CnNpZ24gYW5kIGVuY3J5cHQg +Zm9yIHVzZXIgQm9iCgpAaXRlbSBncGcgLS1jbGVhcnNpZ24gQGNvZGV7ZmlsZX0K +bWFrZSBhIGNsZWFyIHRleHQgc2lnbmF0dXJlCgpAaXRlbSBncGcgLXNiIEBjb2Rl +e2ZpbGV9Cm1ha2UgYSBkZXRhY2hlZCBzaWduYXR1cmUKCkBpdGVtIGdwZyAtdSAw +eDEyMzQ1Njc4IC1zYiBAY29kZXtmaWxlfQptYWtlIGEgZGV0YWNoZWQgc2lnbmF0 +dXJlIHdpdGggdGhlIGtleSAweDEyMzQ1Njc4CgpAaXRlbSBncGcgLS1saXN0LWtl +eXMgQGNvZGV7dXNlcl9JRH0Kc2hvdyBrZXlzCgpAaXRlbSBncGcgLS1maW5nZXJw +cmludCBAY29kZXt1c2VyX0lEfQpzaG93IGZpbmdlcnByaW50CgpAaXRlbSBncGcg +LS12ZXJpZnkgQGNvZGV7cGdwZmlsZX0KQGl0ZW14IGdwZyAtLXZlcmlmeSBAY29k +ZXtzaWdmaWxlfQpWZXJpZnkgdGhlIHNpZ25hdHVyZSBvZiB0aGUgZmlsZSBidXQg +ZG8gbm90IG91dHB1dCB0aGUgZGF0YS4gVGhlCnNlY29uZCBmb3JtIGlzIHVzZWQg +Zm9yIGRldGFjaGVkIHNpZ25hdHVyZXMsIHdoZXJlIEBjb2Rle3NpZ2ZpbGV9Cmlz +IHRoZSBkZXRhY2hlZCBzaWduYXR1cmUgKGVpdGhlciBBU0NJSSBhcm1vcmVkIG9y +IGJpbmFyeSkgYW5kCmFyZSB0aGUgc2lnbmVkIGRhdGE7IGlmIHRoaXMgaXMgbm90 +IGdpdmVuLCB0aGUgbmFtZSBvZgp0aGUgZmlsZSBob2xkaW5nIHRoZSBzaWduZWQg +ZGF0YSBpcyBjb25zdHJ1Y3RlZCBieSBjdXR0aW5nIG9mZiB0aGUKZXh0ZW5zaW9u +ICgiLmFzYyIgb3IgIi5zaWciKSBvZiBAY29kZXtzaWdmaWxlfSBvciBieSBhc2tp +bmcgdGhlCnVzZXIgZm9yIHRoZSBmaWxlbmFtZS4KQGVuZCB0YWJsZQoKCkBjICoq +KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQGMgKioq +KioqKioqKioqKioqICAgICAgICAgICAgKioqKioqKioqKioqKioqKgpAYyAqKioq +KioqKioqKioqKiogIFVTRVIgSUQgICAqKioqKioqKioqKioqKioqCkBjICoqKioq +KioqKioqKioqKiAgICAgICAgICAgICoqKioqKioqKioqKioqKioKQGMgKioqKioq +KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAbWFuc2VjdCBo +b3cgdG8gc3BlY2lmeSBhIHVzZXIgaWQKQGlmc2V0IGlzbWFuCkBpbmNsdWRlIHNw +ZWNpZnktdXNlci1pZC50ZXhpCkBlbmQgaWZzZXQKCkBtYW5zZWN0IHJldHVybiB2 +YWx1ZQpAY2hhcGhlYWRpbmcgUkVUVVJOIFZBTFVFCgpUaGUgcHJvZ3JhbSByZXR1 +cm5zIDAgaWYgZXZlcnl0aGluZyB3YXMgZmluZSwgMSBpZiBhdCBsZWFzdAphIHNp +Z25hdHVyZSB3YXMgYmFkLCBhbmQgb3RoZXIgZXJyb3IgY29kZXMgZm9yIGZhdGFs +IGVycm9ycy4KCkBtYW5zZWN0IHdhcm5pbmdzCkBjaGFwaGVhZGluZyBXQVJOSU5H +UwoKVXNlIGEgKmdvb2QqIHBhc3N3b3JkIGZvciB5b3VyIHVzZXIgYWNjb3VudCBh +bmQgYSAqZ29vZCogcGFzc3BocmFzZQp0byBwcm90ZWN0IHlvdXIgc2VjcmV0IGtl +eS4gVGhpcyBwYXNzcGhyYXNlIGlzIHRoZSB3ZWFrZXN0IHBhcnQgb2YgdGhlCndo +b2xlIHN5c3RlbS4gUHJvZ3JhbXMgdG8gZG8gZGljdGlvbmFyeSBhdHRhY2tzIG9u +IHlvdXIgc2VjcmV0IGtleXJpbmcKYXJlIHZlcnkgZWFzeSB0byB3cml0ZSBhbmQg +c28geW91IHNob3VsZCBwcm90ZWN0IHlvdXIgIn4vLmdudXBnLyIKZGlyZWN0b3J5 +IHZlcnkgd2VsbC4KCktlZXAgaW4gbWluZCB0aGF0LCBpZiB0aGlzIHByb2dyYW0g +aXMgdXNlZCBvdmVyIGEgbmV0d29yayAodGVsbmV0KSwgaXQKaXMgKnZlcnkqIGVh +c3kgdG8gc3B5IG91dCB5b3VyIHBhc3NwaHJhc2UhCgpJZiB5b3UgYXJlIGdvaW5n +IHRvIHZlcmlmeSBkZXRhY2hlZCBzaWduYXR1cmVzLCBtYWtlIHN1cmUgdGhhdCB0 +aGUKcHJvZ3JhbSBrbm93cyBhYm91dCBpdDsgZWl0aGVyIGdpdmUgYm90aCBmaWxl +bmFtZXMgb24gdGhlIGNvbW1hbmQgbGluZQpvciB1c2UgQHNhbXB7LX0gdG8gc3Bl +Y2lmeSBTVERJTi4KCkBtYW5zZWN0IGludGVyb3BlcmFiaWxpdHkKQGNoYXBoZWFk +aW5nIElOVEVST1BFUkFCSUxJVFkgV0lUSCBPVEhFUiBPUEVOUEdQIFBST0dSQU1T +CgpHbnVQRyB0cmllcyB0byBiZSBhIHZlcnkgZmxleGlibGUgaW1wbGVtZW50YXRp +b24gb2YgdGhlIE9wZW5QR1AKc3RhbmRhcmQuIEluIHBhcnRpY3VsYXIsIEdudVBH +IGltcGxlbWVudHMgbWFueSBvZiB0aGUgb3B0aW9uYWwgcGFydHMKb2YgdGhlIHN0 +YW5kYXJkLCBzdWNoIGFzIHRoZSBTSEEtNTEyIGhhc2gsIGFuZCB0aGUgWkxJQiBh +bmQgQlpJUDIKY29tcHJlc3Npb24gYWxnb3JpdGhtcy4gSXQgaXMgaW1wb3J0YW50 +IHRvIGJlIGF3YXJlIHRoYXQgbm90IGFsbApPcGVuUEdQIHByb2dyYW1zIGltcGxl +bWVudCB0aGVzZSBvcHRpb25hbCBhbGdvcml0aG1zIGFuZCB0aGF0IGJ5CmZvcmNp +bmcgdGhlaXIgdXNlIHZpYSB0aGUgQG9wdGlvbnstLWNpcGhlci1hbGdvfSwKQG9w +dGlvbnstLWRpZ2VzdC1hbGdvfSwgQG9wdGlvbnstLWNlcnQtZGlnZXN0LWFsZ299 +LCBvcgpAb3B0aW9uey0tY29tcHJlc3MtYWxnb30gb3B0aW9ucyBpbiBHbnVQRywg +aXQgaXMgcG9zc2libGUgdG8gY3JlYXRlIGEKcGVyZmVjdGx5IHZhbGlkIE9wZW5Q +R1AgbWVzc2FnZSwgYnV0IG9uZSB0aGF0IGNhbm5vdCBiZSByZWFkIGJ5IHRoZQpp +bnRlbmRlZCByZWNpcGllbnQuCgpUaGVyZSBhcmUgZG96ZW5zIG9mIHZhcmlhdGlv +bnMgb2YgT3BlblBHUCBwcm9ncmFtcyBhdmFpbGFibGUsIGFuZCBlYWNoCnN1cHBv +cnRzIGEgc2xpZ2h0bHkgZGlmZmVyZW50IHN1YnNldCBvZiB0aGVzZSBvcHRpb25h +bCBhbGdvcml0aG1zLgpGb3IgZXhhbXBsZSwgdW50aWwgcmVjZW50bHksIG5vICh1 +bmhhY2tlZCkgdmVyc2lvbiBvZiBQR1Agc3VwcG9ydGVkCnRoZSBCTE9XRklTSCBj +aXBoZXIgYWxnb3JpdGhtLiBBIG1lc3NhZ2UgdXNpbmcgQkxPV0ZJU0ggc2ltcGx5 +IGNvdWxkCm5vdCBiZSByZWFkIGJ5IGEgUEdQIHVzZXIuIEJ5IGRlZmF1bHQsIEdu +dVBHIHVzZXMgdGhlIHN0YW5kYXJkCk9wZW5QR1AgcHJlZmVyZW5jZXMgc3lzdGVt +IHRoYXQgd2lsbCBhbHdheXMgZG8gdGhlIHJpZ2h0IHRoaW5nIGFuZApjcmVhdGUg +bWVzc2FnZXMgdGhhdCBhcmUgdXNhYmxlIGJ5IGFsbCByZWNpcGllbnRzLCByZWdh +cmRsZXNzIG9mIHdoaWNoCk9wZW5QR1AgcHJvZ3JhbSB0aGV5IHVzZS4gT25seSBv +dmVycmlkZSB0aGlzIHNhZmUgZGVmYXVsdCBpZiB5b3UKcmVhbGx5IGtub3cgd2hh +dCB5b3UgYXJlIGRvaW5nLgoKSWYgeW91IGFic29sdXRlbHkgbXVzdCBvdmVycmlk +ZSB0aGUgc2FmZSBkZWZhdWx0LCBvciBpZiB0aGUgcHJlZmVyZW5jZXMKb24gYSBn +aXZlbiBrZXkgYXJlIGludmFsaWQgZm9yIHNvbWUgcmVhc29uLCB5b3UgYXJlIGZh +ciBiZXR0ZXIgb2ZmIHVzaW5nCnRoZSBAb3B0aW9uey0tcGdwNn0sIEBvcHRpb257 +LS1wZ3A3fSwgb3IgQG9wdGlvbnstLXBncDh9IG9wdGlvbnMuIFRoZXNlCm9wdGlv +bnMgYXJlIHNhZmUgYXMgdGhleSBkbyBub3QgZm9yY2UgYW55IHBhcnRpY3VsYXIg +YWxnb3JpdGhtcyBpbgp2aW9sYXRpb24gb2YgT3BlblBHUCwgYnV0IHJhdGhlciBy +ZWR1Y2UgdGhlIGF2YWlsYWJsZSBhbGdvcml0aG1zIHRvIGEKIlBHUC1zYWZlIiBs +aXN0LgoKQG1hbnNlY3QgYnVncwpAY2hhcGhlYWRpbmcgQlVHUwoKT24gb2xkZXIg +c3lzdGVtcyB0aGlzIHByb2dyYW0gc2hvdWxkIGJlIGluc3RhbGxlZCBhcyBzZXR1 +aWQocm9vdCkuIFRoaXMKaXMgbmVjZXNzYXJ5IHRvIGxvY2sgbWVtb3J5IHBhZ2Vz +LiBMb2NraW5nIG1lbW9yeSBwYWdlcyBwcmV2ZW50cyB0aGUKb3BlcmF0aW5nIHN5 +c3RlbSBmcm9tIHdyaXRpbmcgbWVtb3J5IHBhZ2VzICh3aGljaCBtYXkgY29udGFp +bgpwYXNzcGhyYXNlcyBvciBvdGhlciBzZW5zaXRpdmUgbWF0ZXJpYWwpIHRvIGRp +c2suIElmIHlvdSBnZXQgbm8Kd2FybmluZyBtZXNzYWdlIGFib3V0IGluc2VjdXJl +IG1lbW9yeSB5b3VyIG9wZXJhdGluZyBzeXN0ZW0gc3VwcG9ydHMKbG9ja2luZyB3 +aXRob3V0IGJlaW5nIHJvb3QuIFRoZSBwcm9ncmFtIGRyb3BzIHJvb3QgcHJpdmls +ZWdlcyBhcyBzb29uCmFzIGxvY2tlZCBtZW1vcnkgaXMgYWxsb2NhdGVkLgoKTm90 +ZSBhbHNvIHRoYXQgc29tZSBzeXN0ZW1zIChlc3BlY2lhbGx5IGxhcHRvcHMpIGhh +dmUgdGhlIGFiaWxpdHkgdG8KYGBzdXNwZW5kIHRvIGRpc2snJyAoYWxzbyBrbm93 +biBhcyBgYHNhZmUgc2xlZXAnJyBvciBgYGhpYmVybmF0ZScnKS4KVGhpcyB3cml0 +ZXMgYWxsIG1lbW9yeSB0byBkaXNrIGJlZm9yZSBnb2luZyBpbnRvIGEgbG93IHBv +d2VyIG9yIGV2ZW4KcG93ZXJlZCBvZmYgbW9kZS4gIFVubGVzcyBtZWFzdXJlcyBh +cmUgdGFrZW4gaW4gdGhlIG9wZXJhdGluZyBzeXN0ZW0KdG8gcHJvdGVjdCB0aGUg +c2F2ZWQgbWVtb3J5LCBwYXNzcGhyYXNlcyBvciBvdGhlciBzZW5zaXRpdmUgbWF0 +ZXJpYWwKbWF5IGJlIHJlY292ZXJhYmxlIGZyb20gaXQgbGF0ZXIuCgpCZWZvcmUg +eW91IHJlcG9ydCBhIGJ1ZyB5b3Ugc2hvdWxkIGZpcnN0IHNlYXJjaCB0aGUgbWFp +bGluZyBsaXN0CmFyY2hpdmVzIGZvciBzaW1pbGFyIHByb2JsZW1zIGFuZCBzZWNv +bmQgY2hlY2sgd2hldGhlciBzdWNoIGEgYnVnIGhhcwphbHJlYWR5IGJlZW4gcmVw +b3J0ZWQgdG8gb3VyIGJ1ZyB0cmFja2VyIGF0IGh0dHA6Ly9idWdzLmdudXBnLm9y +ZyAuCgpAYyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq +KioqCkBjICoqKioqKioqKioqKioqKiAgICAgICAgICAgICAgKioqKioqKioqKioq +KioKQGMgKioqKioqKioqKioqKioqICBVTkFUVEVOREVEICAqKioqKioqKioqKioq +KgpAYyAqKioqKioqKioqKioqKiogICAgICAgICAgICAgICoqKioqKioqKioqKioq +CkBjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK +QG1hbnBhdXNlCkBub2RlIFVuYXR0ZW5kZWQgVXNhZ2Ugb2YgR1BHCkBzZWN0aW9u +IFVuYXR0ZW5kZWQgVXNhZ2UKCkBjb21tYW5ke2dwZ30gaXMgb2Z0ZW4gdXNlZCBh +cyBhIGJhY2tlbmQgZW5naW5lIGJ5IG90aGVyIHNvZnR3YXJlLiAgVG8gaGVscAp3 +aXRoIHRoaXMgYSBtYWNoaW5lIGludGVyZmFjZSBoYXMgYmVlbiBkZWZpbmVkIHRv +IGhhdmUgYW4gdW5hbWJpZ3VvdXMKd2F5IHRvIGRvIHRoaXMuICBUaGUgb3B0aW9u +cyBAb3B0aW9uey0tc3RhdHVzLWZkfSBhbmQgQG9wdGlvbnstLWJhdGNofQphcmUg +YWxtb3N0IGFsd2F5cyByZXF1aXJlZCBmb3IgdGhpcy4KCkBtZW51CiogVW5hdHRl +bmRlZCBHUEcga2V5IGdlbmVyYXRpb246OiAgVW5hdHRlbmRlZCBrZXkgZ2VuZXJh +dGlvbgpAZW5kIG1lbnUKCgpAbm9kZSBVbmF0dGVuZGVkIEdQRyBrZXkgZ2VuZXJh +dGlvbgpAc3Vic2VjdGlvbiBVbmF0dGVuZGVkIGtleSBnZW5lcmF0aW9uCgpUaGUg +Y29tbWFuZCBAb3B0aW9uey0tZ2VuLWtleX0gbWF5IGJlIHVzZWQgYWxvbmcgd2l0 +aCB0aGUgb3B0aW9uCkBvcHRpb257LS1iYXRjaH0gZm9yIHVuYXR0ZW5kZWQga2V5 +IGdlbmVyYXRpb24uICBUaGUgcGFyYW1ldGVycyBhcmUKZWl0aGVyIHJlYWQgZnJv +bSBzdGRpbiBvciBnaXZlbiBhcyBhIGZpbGUgb24gdGhlIGNvbW1hbmQgbGluZS4K +VGhlIGZvcm1hdCBvZiB0aGUgcGFyYW1ldGVyIGZpbGUgaXMgYXMgZm9sbG93czoK +CkBpdGVtaXplIEBidWxsZXQKICBAaXRlbSBUZXh0IG9ubHksIGxpbmUgbGVuZ3Ro +IGlzIGxpbWl0ZWQgdG8gYWJvdXQgMTAwMCBjaGFyYWN0ZXJzLgogIEBpdGVtIFVU +Ri04IGVuY29kaW5nIG11c3QgYmUgdXNlZCB0byBzcGVjaWZ5IG5vbi1BU0NJSSBj +aGFyYWN0ZXJzLgogIEBpdGVtIEVtcHR5IGxpbmVzIGFyZSBpZ25vcmVkLgogIEBp +dGVtIExlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaWxlIHNwYWNlIGlzIGlnbm9yZWQu +CiAgQGl0ZW0gQSBoYXNoIHNpZ24gYXMgdGhlIGZpcnN0IG5vbiB3aGl0ZSBzcGFj +ZSBjaGFyYWN0ZXIgaW5kaWNhdGVzCiAgYSBjb21tZW50IGxpbmUuCiAgQGl0ZW0g +Q29udHJvbCBzdGF0ZW1lbnRzIGFyZSBpbmRpY2F0ZWQgYnkgYSBsZWFkaW5nIHBl +cmNlbnQgc2lnbiwgdGhlCiAgYXJndW1lbnRzIGFyZSBzZXBhcmF0ZWQgYnkgd2hp +dGUgc3BhY2UgZnJvbSB0aGUga2V5d29yZC4KICBAaXRlbSBQYXJhbWV0ZXJzIGFy +ZSBzcGVjaWZpZWQgYnkgYSBrZXl3b3JkLCBmb2xsb3dlZCBieSBhIGNvbG9uLiAg +QXJndW1lbnRzCiAgYXJlIHNlcGFyYXRlZCBieSB3aGl0ZSBzcGFjZS4KICBAaXRl +bQogIFRoZSBmaXJzdCBwYXJhbWV0ZXIgbXVzdCBiZSBAc2FtcHtLZXktVHlwZX07 +IGNvbnRyb2wgc3RhdGVtZW50cyBtYXkgYmUKICBwbGFjZWQgYW55d2hlcmUuCiAg +QGl0ZW0KICBUaGUgb3JkZXIgb2YgdGhlIHBhcmFtZXRlcnMgZG9lcyBub3QgbWF0 +dGVyIGV4Y2VwdCBmb3IgQHNhbXB7S2V5LVR5cGV9CiAgd2hpY2ggbXVzdCBiZSB0 +aGUgZmlyc3QgcGFyYW1ldGVyLiAgVGhlIHBhcmFtZXRlcnMgYXJlIG9ubHkgdXNl +ZCBmb3IKICB0aGUgZ2VuZXJhdGVkIGtleWJsb2NrIChwcmltYXJ5IGFuZCBzdWJr +ZXlzKTsgcGFyYW1ldGVycyBmcm9tIHByZXZpb3VzCiAgc2V0cyBhcmUgbm90IHVz +ZWQuICBTb21lIHN5bnRhY3RpY2FsbHkgY2hlY2tzIG1heSBiZSBwZXJmb3JtZWQu +CiAgQGl0ZW0KICBLZXkgZ2VuZXJhdGlvbiB0YWtlcyBwbGFjZSB3aGVuIGVpdGhl +ciB0aGUgZW5kIG9mIHRoZSBwYXJhbWV0ZXIgZmlsZQogIGlzIHJlYWNoZWQsIHRo +ZSBuZXh0IEBzYW1we0tleS1UeXBlfSBwYXJhbWV0ZXIgaXMgZW5jb3VudGVyZWQg +b3IgYXQgdGhlCiAgY29udHJvbCBzdGF0ZW1lbnQgQHNhbXB7JWNvbW1pdH0gaXMg +ZW5jb3VudGVyZWQuCkBlbmQgaXRlbWl6ZQoKQG5vaW5kZW50CkNvbnRyb2wgc3Rh +dGVtZW50czoKCkB0YWJsZSBAYXNpcwoKQGl0ZW0gJWVjaG8gQHZhcnt0ZXh0fQpQ +cmludCBAdmFye3RleHR9IGFzIGRpYWdub3N0aWMuCgpAaXRlbSAlZHJ5LXJ1bgpT +dXBwcmVzcyBhY3R1YWwga2V5IGdlbmVyYXRpb24gKHVzZWZ1bCBmb3Igc3ludGF4 +IGNoZWNraW5nKS4KCkBpdGVtICVjb21taXQKUGVyZm9ybSB0aGUga2V5IGdlbmVy +YXRpb24uICBOb3RlIHRoYXQgYW4gaW1wbGljaXQgY29tbWl0IGlzIGRvbmUgYXQK +dGhlIG5leHQgQGFzaXN7S2V5LVR5cGV9IHBhcmFtZXRlci4KCkBpdGVtICVwdWJy +aW5nIEB2YXJ7ZmlsZW5hbWV9CkBpdGVteCAlc2VjcmluZyBAdmFye2ZpbGVuYW1l +fQpEbyBub3Qgd3JpdGUgdGhlIGtleSB0byB0aGUgZGVmYXVsdCBvciBjb21tYW5k +bGluZSBnaXZlbiBrZXlyaW5nIGJ1dAp0byBAdmFye2ZpbGVuYW1lfS4gIFRoaXMg +bXVzdCBiZSBnaXZlbiBiZWZvcmUgdGhlIGZpcnN0IGNvbW1pdCB0byB0YWtlCnBs +YWNlLCBkdXBsaWNhdGUgc3BlY2lmaWNhdGlvbiBvZiB0aGUgc2FtZSBmaWxlbmFt +ZSBpcyBpZ25vcmVkLCB0aGUKbGFzdCBmaWxlbmFtZSBiZWZvcmUgYSBjb21taXQg +aXMgdXNlZC4gIFRoZSBmaWxlbmFtZSBpcyB1c2VkIHVudGlsIGEKbmV3IGZpbGVu +YW1lIGlzIHVzZWQgKGF0IGNvbW1pdCBwb2ludHMpIGFuZCBhbGwga2V5cyBhcmUg +d3JpdHRlbiB0bwp0aGF0IGZpbGUuIElmIGEgbmV3IGZpbGVuYW1lIGlzIGdpdmVu +LCB0aGlzIGZpbGUgaXMgY3JlYXRlZCAoYW5kCm92ZXJ3cml0ZXMgYW4gZXhpc3Rp +bmcgb25lKS4gIEZvciBHbnVQRyB2ZXJzaW9ucyBwcmlvciB0byAyLjEsIGJvdGgK +Y29udHJvbCBzdGF0ZW1lbnRzIG11c3QgYmUgZ2l2ZW4uIEZvciBHbnVQRyAyLjEg +YW5kIGxhdGVyCkBzYW1weyVzZWNyaW5nfSBpcyBhIG5vLW9wLgoKQGl0ZW0gJWFz +ay1wYXNzcGhyYXNlCkBpdGVteCAlbm8tYXNrLXBhc3NwaHJhc2UKVGhpcyBvcHRp +b24gaXMgYSBuby1vcCBmb3IgR251UEcgMi4xIGFuZCBsYXRlci4KCkBpdGVtICVu +by1wcm90ZWN0aW9uClVzaW5nIHRoaXMgb3B0aW9uIGFsbG93cyB0aGUgY3JlYXRp +b24gb2Yga2V5cyB3aXRob3V0IGFueSBwYXNzcGhyYXNlCnByb3RlY3Rpb24uICBU +aGlzIG9wdGlvbiBpcyBtYWlubHkgaW50ZW5kZWQgZm9yIHJlZ3Jlc3Npb24gdGVz +dHMuCgpAaXRlbSAldHJhbnNpZW50LWtleQpJZiBnaXZlbiB0aGUga2V5cyBhcmUg +Y3JlYXRlZCB1c2luZyBhIGZhc3RlciBhbmQgYSBzb21ld2hhdCBsZXNzCnNlY3Vy +ZSByYW5kb20gbnVtYmVyIGdlbmVyYXRvci4gIFRoaXMgb3B0aW9uIG1heSBiZSB1 +c2VkIGZvciBrZXlzCndoaWNoIGFyZSBvbmx5IHVzZWQgZm9yIGEgc2hvcnQgdGlt +ZSBhbmQgZG8gbm90IHJlcXVpcmUgZnVsbApjcnlwdG9ncmFwaGljIHN0cmVuZ3Ro +LiAgSXQgdGFrZXMgb25seSBlZmZlY3QgaWYgdXNlZCB0b2dldGhlciB3aXRoCnRo +ZSBjb250cm9sIHN0YXRlbWVudCBAc2FtcHslbm8tcHJvdGVjdGlvbn0uCgpAZW5k +IHRhYmxlCgpAbm9pbmRlbnQKR2VuZXJhbCBQYXJhbWV0ZXJzOgoKQHRhYmxlIEBh +c2lzCgpAaXRlbSBLZXktVHlwZTogQHZhcnthbGdvfQpTdGFydHMgYSBuZXcgcGFy +YW1ldGVyIGJsb2NrIGJ5IGdpdmluZyB0aGUgdHlwZSBvZiB0aGUgcHJpbWFyeQpr +ZXkuIFRoZSBhbGdvcml0aG0gbXVzdCBiZSBjYXBhYmxlIG9mIHNpZ25pbmcuICBU +aGlzIGlzIGEgcmVxdWlyZWQKcGFyYW1ldGVyLiAgQHZhcnthbGdvfSBtYXkgZWl0 +aGVyIGJlIGFuIE9wZW5QR1AgYWxnb3JpdGhtIG51bWJlciBvciBhCnN0cmluZyB3 +aXRoIHRoZSBhbGdvcml0aG0gbmFtZS4gIFRoZSBzcGVjaWFsIHZhbHVlIEBzYW1w +e2RlZmF1bHR9IG1heQpiZSB1c2VkIGZvciBAdmFye2FsZ299IHRvIGNyZWF0ZSB0 +aGUgZGVmYXVsdCBrZXkgdHlwZTsgaW4gdGhpcyBjYXNlIGEKQHNhbXB7S2V5LVVz +YWdlfSBzaGFsbCBub3QgYmUgZ2l2ZW4gYW5kIEBzYW1we2RlZmF1bHR9IGFsc28g +YmUgdXNlZApmb3IgQHNhbXB7U3Via2V5LVR5cGV9LgoKQGl0ZW0gS2V5LUxlbmd0 +aDogQHZhcntuYml0c30KVGhlIHJlcXVlc3RlZCBsZW5ndGggb2YgdGhlIGdlbmVy +YXRlZCBrZXkgaW4gYml0cy4gIFRoZSBkZWZhdWx0IGlzCnJldHVybmVkIGJ5IHJ1 +bm5pbmcgdGhlIGNvbW1hbmQgQHNhbXB7Z3BnMiAtLWdwZ2NvbmYtbGlzdH0uCgpA +aXRlbSBLZXktR3JpcDogQHZhcntoZXhzdHJpbmd9ClRoaXMgaXMgb3B0aW9uYWwg +YW5kIHVzZWQgdG8gZ2VuZXJhdGUgYSBDU1Igb3IgY2VydGlmaWNhdGUgZm9yIGFu +CmFscmVhZHkgZXhpc3Rpbmcga2V5LiAgS2V5LUxlbmd0aCB3aWxsIGJlIGlnbm9y +ZWQgd2hlbiBnaXZlbi4KCkBpdGVtIEtleS1Vc2FnZTogQHZhcnt1c2FnZS1saXN0 +fQpTcGFjZSBvciBjb21tYSBkZWxpbWl0ZWQgbGlzdCBvZiBrZXkgdXNhZ2VzLiAg +QWxsb3dlZCB2YWx1ZXMgYXJlCkBzYW1we2VuY3J5cHR9LCBAc2FtcHtzaWdufSwg +YW5kIEBzYW1we2F1dGh9LiAgVGhpcyBpcyB1c2VkIHRvCmdlbmVyYXRlIHRoZSBr +ZXkgZmxhZ3MuICBQbGVhc2UgbWFrZSBzdXJlIHRoYXQgdGhlIGFsZ29yaXRobSBp +cwpjYXBhYmxlIG9mIHRoaXMgdXNhZ2UuICBOb3RlIHRoYXQgT3BlblBHUCByZXF1 +aXJlcyB0aGF0IGFsbCBwcmltYXJ5CmtleXMgYXJlIGNhcGFibGUgb2YgY2VydGlm +aWNhdGlvbiwgc28gbm8gbWF0dGVyIHdoYXQgdXNhZ2UgaXMgZ2l2ZW4KaGVyZSwg +dGhlIEBzYW1we2NlcnR9IGZsYWcgd2lsbCBiZSBvbi4gIElmIG5vIEBzYW1we0tl +eS1Vc2FnZX0gaXMKc3BlY2lmaWVkIGFuZCB0aGUgQHNhbXB7S2V5LVR5cGV9IGlz +IG5vdCBAc2FtcHtkZWZhdWx0fSwgYWxsIGFsbG93ZWQKdXNhZ2VzIGZvciB0aGF0 +IHBhcnRpY3VsYXIgYWxnb3JpdGhtIGFyZSB1c2VkOyBpZiBpdCBpcyBub3QgZ2l2 +ZW4gYnV0CkBzYW1we2RlZmF1bHR9IGlzIHVzZWQgdGhlIHVzYWdlIHdpbGwgYmUg +QHNhbXB7c2lnbn0uCgpAaXRlbSBTdWJrZXktVHlwZTogQHZhcnthbGdvfQpUaGlz +IGdlbmVyYXRlcyBhIHNlY29uZGFyeSBrZXkgKHN1YmtleSkuICBDdXJyZW50bHkg +b25seSBvbmUgc3Via2V5CmNhbiBiZSBoYW5kbGVkLiAgU2VlIGFsc28gQHNhbXB7 +S2V5LVR5cGV9IGFib3ZlLgoKQGl0ZW0gU3Via2V5LUxlbmd0aDogQHZhcntuYml0 +c30KTGVuZ3RoIG9mIHRoZSBzZWNvbmRhcnkga2V5IChzdWJrZXkpIGluIGJpdHMu +ICBUaGUgZGVmYXVsdCBpcyByZXR1cm5lZApieSBydW5uaW5nIHRoZSBjb21tYW5k +IEBzYW1we2dwZzIgLS1ncGdjb25mLWxpc3R9Ii4KCkBpdGVtIFN1YmtleS1Vc2Fn +ZTogQHZhcnt1c2FnZS1saXN0fQpLZXkgdXNhZ2UgbGlzdHMgZm9yIGEgc3Via2V5 +OyBzaW1pbGFyIHRvIEBzYW1we0tleS1Vc2FnZX0uCgpAaXRlbSBQYXNzcGhyYXNl +OiBAdmFye3N0cmluZ30KSWYgeW91IHdhbnQgdG8gc3BlY2lmeSBhIHBhc3NwaHJh +c2UgZm9yIHRoZSBzZWNyZXQga2V5LCBlbnRlciBpdCBoZXJlLgpEZWZhdWx0IGlz +IHRvIHVzZSB0aGUgUGluZW50cnkgZGlhbG9nIHRvIGFzayBmb3IgYSBwYXNzcGhy +YXNlLgoKQGl0ZW0gTmFtZS1SZWFsOiBAdmFye25hbWV9CkBpdGVteCBOYW1lLUNv +bW1lbnQ6IEB2YXJ7Y29tbWVudH0KQGl0ZW14IE5hbWUtRW1haWw6IEB2YXJ7ZW1h +aWx9ClRoZSB0aHJlZSBwYXJ0cyBvZiBhIHVzZXIgbmFtZS4gIFJlbWVtYmVyIHRv +IHVzZSBVVEYtOCBlbmNvZGluZyBoZXJlLgpJZiB5b3UgZG9uJ3QgZ2l2ZSBhbnkg +b2YgdGhlbSwgbm8gdXNlciBJRCBpcyBjcmVhdGVkLgoKQGl0ZW0gRXhwaXJlLURh +dGU6IEB2YXJ7aXNvLWRhdGV9fChAdmFye251bWJlcn1bZHx3fG18eV0pClNldCB0 +aGUgZXhwaXJhdGlvbiBkYXRlIGZvciB0aGUga2V5IChhbmQgdGhlIHN1YmtleSku +ICBJdCBtYXkgZWl0aGVyCmJlIGVudGVyZWQgaW4gSVNPIGRhdGUgZm9ybWF0IChl +LmcuICIyMDAwMDgxNVQxNDUwMTIiKSBvciBhcyBudW1iZXIgb2YKZGF5cywgd2Vl +a3MsIG1vbnRoIG9yIHllYXJzIGFmdGVyIHRoZSBjcmVhdGlvbiBkYXRlLiAgVGhl +IHNwZWNpYWwKbm90YXRpb24gInNlY29uZHM9TiIgaXMgYWxzbyBhbGxvd2VkIHRv +IHNwZWNpZnkgYSBudW1iZXIgb2Ygc2Vjb25kcwpzaW5jZSBjcmVhdGlvbi4gIFdp +dGhvdXQgYSBsZXR0ZXIgZGF5cyBhcmUgYXNzdW1lZC4gIE5vdGUgdGhhdCB0aGVy +ZQppcyBubyBjaGVjayBkb25lIG9uIHRoZSBvdmVyZmxvdyBvZiB0aGUgdHlwZSB1 +c2VkIGJ5IE9wZW5QR1AgZm9yCnRpbWVzdGFtcHMuICBUaHVzIHlvdSBiZXR0ZXIg +bWFrZSBzdXJlIHRoYXQgdGhlIGdpdmVuIHZhbHVlIG1ha2UKc2Vuc2UuICBBbHRo +b3VnaCBPcGVuUEdQIHdvcmtzIHdpdGggdGltZSBpbnRlcnZhbHMsIEdudVBHIHVz +ZXMgYW4KYWJzb2x1dGUgdmFsdWUgaW50ZXJuYWxseSBhbmQgdGh1cyB0aGUgbGFz +dCB5ZWFyIHdlIGNhbiByZXByZXNlbnQgaXMKMjEwNS4KCkBpdGVtICBDcmVhdGlv +bi1EYXRlOiBAdmFye2lzby1kYXRlfQpTZXQgdGhlIGNyZWF0aW9uIGRhdGUgb2Yg +dGhlIGtleSBhcyBzdG9yZWQgaW4gdGhlIGtleSBpbmZvcm1hdGlvbiBhbmQKd2hp +Y2ggaXMgYWxzbyBwYXJ0IG9mIHRoZSBmaW5nZXJwcmludCBjYWxjdWxhdGlvbi4g +IEVpdGhlciBhIGRhdGUgbGlrZQoiMTk4Ni0wNC0yNiIgb3IgYSBmdWxsIHRpbWVz +dGFtcCBsaWtlICIxOTg2MDQyNlQwNDI2NDAiIG1heSBiZSB1c2VkLgpUaGUgdGlt +ZSBpcyBjb25zaWRlcmVkIHRvIGJlIFVUQy4gIFRoZSBzcGVjaWFsIG5vdGF0aW9u +ICJzZWNvbmRzPU4iCm1heSBiZSB1c2VkIHRvIGRpcmVjdGx5IHNwZWNpZnkgYSB0 +aGUgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UgRXBvY2gKKFVuaXggdGltZSkuICBJ +ZiBpdCBpcyBub3QgZ2l2ZW4gdGhlIGN1cnJlbnQgdGltZSBpcyB1c2VkLgoKQGl0 +ZW0gUHJlZmVyZW5jZXM6IEB2YXJ7c3RyaW5nfQpTZXQgdGhlIGNpcGhlciwgaGFz +aCwgYW5kIGNvbXByZXNzaW9uIHByZWZlcmVuY2UgdmFsdWVzIGZvciB0aGlzIGtl +eS4KVGhpcyBleHBlY3RzIHRoZSBzYW1lIHR5cGUgb2Ygc3RyaW5nIGFzIHRoZSBz +dWItY29tbWFuZCBAc2FtcHtzZXRwcmVmfQppbiB0aGUgQG9wdGlvbnstLWVkaXQt +a2V5fSBtZW51LgoKQGl0ZW0gIFJldm9rZXI6IEB2YXJ7YWxnb306QHZhcntmcHJ9 +IFtzZW5zaXRpdmVdCkFkZCBhIGRlc2lnbmF0ZWQgcmV2b2tlciB0byB0aGUgZ2Vu +ZXJhdGVkIGtleS4gIEFsZ28gaXMgdGhlIHB1YmxpYyBrZXkKYWxnb3JpdGhtIG9m +IHRoZSBkZXNpZ25hdGVkIHJldm9rZXIgKGkuZS4gUlNBPTEsIERTQT0xNywgZXRj +LikKQHZhcntmcHJ9IGlzIHRoZSBmaW5nZXJwcmludCBvZiB0aGUgZGVzaWduYXRl +ZCByZXZva2VyLiAgVGhlIG9wdGlvbmFsCkBzYW1we3NlbnNpdGl2ZX0gZmxhZyBt +YXJrcyB0aGUgZGVzaWduYXRlZCByZXZva2VyIGFzIHNlbnNpdGl2ZQppbmZvcm1h +dGlvbi4gIE9ubHkgdjQga2V5cyBtYXkgYmUgZGVzaWduYXRlZCByZXZva2Vycy4K +CkBpdGVtIEtleXNlcnZlcjogQHZhcntzdHJpbmd9ClRoaXMgaXMgYW4gb3B0aW9u +YWwgcGFyYW1ldGVyIHRoYXQgc3BlY2lmaWVzIHRoZSBwcmVmZXJyZWQga2V5c2Vy +dmVyClVSTCBmb3IgdGhlIGtleS4KCkBpdGVtIEhhbmRsZTogQHZhcntzdHJpbmd9 +ClRoaXMgaXMgYW4gb3B0aW9uYWwgcGFyYW1ldGVyIG9ubHkgdXNlZCB3aXRoIHRo +ZSBzdGF0dXMgbGluZXMKS0VZX0NSRUFURUQgYW5kIEtFWV9OT1RfQ1JFQVRFRC4g +IEB2YXJ7c3RyaW5nfSBtYXkgYmUgdXAgdG8gMTAwCmNoYXJhY3RlcnMgYW5kIHNo +b3VsZCBub3QgY29udGFpbiBzcGFjZXMuICBJdCBpcyB1c2VmdWwgZm9yIGJhdGNo +IGtleQpnZW5lcmF0aW9uIHRvIGFzc29jaWF0ZSBhIGtleSBwYXJhbWV0ZXIgYmxv +Y2sgd2l0aCBhIHN0YXR1cyBsaW5lLgoKQGVuZCB0YWJsZQoKQG5vaW5kZW50Ckhl +cmUgaXMgYW4gZXhhbXBsZSBvbiBob3cgdG8gY3JlYXRlIGEga2V5OgpAc21hbGxl +eGFtcGxlCiQgY2F0ID5mb28gPDxFT0YKICAgICAlZWNobyBHZW5lcmF0aW5nIGEg +YmFzaWMgT3BlblBHUCBrZXkKICAgICBLZXktVHlwZTogRFNBCiAgICAgS2V5LUxl +bmd0aDogMTAyNAogICAgIFN1YmtleS1UeXBlOiBFTEctRQogICAgIFN1YmtleS1M +ZW5ndGg6IDEwMjQKICAgICBOYW1lLVJlYWw6IEpvZSBUZXN0ZXIKICAgICBOYW1l +LUNvbW1lbnQ6IHdpdGggc3R1cGlkIHBhc3NwaHJhc2UKICAgICBOYW1lLUVtYWls +OiBqb2VAQGZvby5iYXIKICAgICBFeHBpcmUtRGF0ZTogMAogICAgIFBhc3NwaHJh +c2U6IGFiYwogICAgICVwdWJyaW5nIGZvby5wdWIKICAgICAlc2VjcmluZyBmb28u +c2VjCiAgICAgIyBEbyBhIGNvbW1pdCBoZXJlLCBzbyB0aGF0IHdlIGNhbiBsYXRl +ciBwcmludCAiZG9uZSIgOi0pCiAgICAgJWNvbW1pdAogICAgICVlY2hvIGRvbmUK +RU9GCiQgZ3BnMiAtLWJhdGNoIC0tZ2VuLWtleSBmb28KIFsuLi5dCiQgZ3BnMiAt +LW5vLWRlZmF1bHQta2V5cmluZyAtLXNlY3JldC1rZXlyaW5nIC4vZm9vLnNlYyBc +CiAgICAgICAtLWtleXJpbmcgLi9mb28ucHViIC0tbGlzdC1zZWNyZXQta2V5cwov +aG9tZS93ay93b3JrL2dudXBnLXN0YWJsZS9zY3JhdGNoL2Zvby5zZWMKLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnNlYyAgMTAyNEQv +OTE1QTg3OEQgMjAwMC0wMy0wOSBKb2UgVGVzdGVyICh3aXRoIHN0dXBpZCBwYXNz +cGhyYXNlKSA8am9lQEBmb28uYmFyPgpzc2IgIDEwMjRnLzhGNzBFMkMwIDIwMDAt +MDMtMDkKQGVuZCBzbWFsbGV4YW1wbGUKCgpAbm9pbmRlbnQKSWYgeW91IHdhbnQg +dG8gY3JlYXRlIGEga2V5IHdpdGggdGhlIGRlZmF1bHQgYWxnb3JpdGhtcyB5b3Ug +d291bGQgdXNlCnRoZXNlIHBhcmFtZXRlcnM6CkBzbWFsbGV4YW1wbGUKICAgICAl +ZWNobyBHZW5lcmF0aW5nIGEgZGVmYXVsdCBrZXkKICAgICBLZXktVHlwZTogZGVm +YXVsdAogICAgIFN1YmtleS1UeXBlOiBkZWZhdWx0CiAgICAgTmFtZS1SZWFsOiBK +b2UgVGVzdGVyCiAgICAgTmFtZS1Db21tZW50OiB3aXRoIHN0dXBpZCBwYXNzcGhy +YXNlCiAgICAgTmFtZS1FbWFpbDogam9lQEBmb28uYmFyCiAgICAgRXhwaXJlLURh +dGU6IDAKICAgICBQYXNzcGhyYXNlOiBhYmMKICAgICAlcHVicmluZyBmb28ucHVi +CiAgICAgJXNlY3JpbmcgZm9vLnNlYwogICAgICMgRG8gYSBjb21taXQgaGVyZSwg +c28gdGhhdCB3ZSBjYW4gbGF0ZXIgcHJpbnQgImRvbmUiIDotKQogICAgICVjb21t +aXQKICAgICAlZWNobyBkb25lCkBlbmQgc21hbGxleGFtcGxlCgoKCgpAbWFuc2Vj +dCBzZWUgYWxzbwpAaWZzZXQgaXNtYW4KQGNvbW1hbmR7Z3Bndn0oMSksCkBjb21t +YW5ke2dwZ3NtfSgxKSwKQGNvbW1hbmR7Z3BnLWFnZW50fSgxKQpAZW5kIGlmc2V0 +CkBpbmNsdWRlIHNlZS1hbHNvLW5vdGUudGV4aQo= +=jeqE +-----END PGP ARMORED FILE----- |