<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>123462</bug_id>
          
          <creation_ts>2013-10-29 13:37:24 -0700</creation_ts>
          <short_desc>Beef up CryptoKey</short_desc>
          <delta_ts>2013-10-29 16:31:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>122679</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>944568</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-10-29 13:37:24 -0700</bug_when>
    <thetext>A bit of glue code to add here...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944576</commentid>
    <comment_count>1</comment_count>
      <attachid>215417</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-10-29 13:47:19 -0700</bug_when>
    <thetext>Created attachment 215417
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944582</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-29 13:50:08 -0700</bug_when>
    <thetext>Attachment 215417 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/crypto/CryptoAlgorithmIdentifier.h&apos;, u&apos;Source/WebCore/crypto/CryptoKey.cpp&apos;, u&apos;Source/WebCore/crypto/CryptoKey.h&apos;, u&apos;Source/WebCore/crypto/CryptoKey.idl&apos;, u&apos;Source/WebCore/crypto/CryptoKeyFormat.h&apos;, u&apos;Source/WebCore/crypto/CryptoKeyType.h&apos;, u&apos;Source/WebCore/crypto/CryptoKeyUsage.h&apos;]&quot; exit_code: 1
Source/WebCore/crypto/CryptoKey.h:42:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebCore/crypto/CryptoKeyFormat.h:33:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebCore/crypto/CryptoKeyUsage.h:34:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/crypto/CryptoKeyUsage.h:35:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/crypto/CryptoKeyUsage.h:36:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/crypto/CryptoKeyUsage.h:37:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/crypto/CryptoKeyUsage.h:38:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/crypto/CryptoKeyUsage.h:39:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/crypto/CryptoKeyUsage.h:40:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/crypto/CryptoKeyUsage.h:41:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebCore/crypto/CryptoKeyType.h:33:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebCore/crypto/CryptoAlgorithmIdentifier.h:33:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 12 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944585</commentid>
    <comment_count>3</comment_count>
      <attachid>215420</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-10-29 13:52:23 -0700</bug_when>
    <thetext>Created attachment 215420
with appropriate style fixes

Also, don&apos;t add JSDOMPromise to project yet, it&apos;s not in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944587</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-29 13:53:26 -0700</bug_when>
    <thetext>Attachment 215420 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/crypto/CryptoAlgorithmIdentifier.h&apos;, u&apos;Source/WebCore/crypto/CryptoKey.cpp&apos;, u&apos;Source/WebCore/crypto/CryptoKey.h&apos;, u&apos;Source/WebCore/crypto/CryptoKey.idl&apos;, u&apos;Source/WebCore/crypto/CryptoKeyFormat.h&apos;, u&apos;Source/WebCore/crypto/CryptoKeyType.h&apos;, u&apos;Source/WebCore/crypto/CryptoKeyUsage.h&apos;]&quot; exit_code: 1
Source/WebCore/crypto/CryptoKey.h:42:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebCore/crypto/CryptoKeyFormat.h:33:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebCore/crypto/CryptoKeyType.h:33:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebCore/crypto/CryptoAlgorithmIdentifier.h:33:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 4 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944664</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-10-29 16:11:22 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r158236&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944676</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-10-29 16:31:39 -0700</bug_when>
    <thetext>And a build fix in &lt;http://trac.webkit.org/r158239&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215417</attachid>
            <date>2013-10-29 13:47:19 -0700</date>
            <delta_ts>2013-10-29 13:52:23 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>ImproveCryptoKey.txt</filename>
            <type>text/plain</type>
            <size>27491</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1ODIxNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDEzLTEwLTI5ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIEJlZWYgdXAgQ3J5cHRvS2V5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM0NjIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkZWQgbmV3IGZpbGVzLgorCisgICAgICAg
ICogY3J5cHRvL0NyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaDogQWRkZWQgYW4gZW51bSB3aXRo
IGFsbCByZWdpc3RlcmVkIGFsZ29yaXRobXMKKyAgICAgICAgKHRoZXkgZG9uJ3QgaGF2ZSB0byBi
ZSBhbGwgaW1wbGVtZW50ZWQgaW4gYW55IHBvcnQpLgorCisgICAgICAgICogY3J5cHRvL0NyeXB0
b0tleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXk6OkNyeXB0b0tleSk6IEluaXRp
YWxpemUgYmFzZSBjbGFzcyB2YXJpYWJsZXMuCisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXk6
OnR5cGUpOiBDb252ZXJ0IGludGVybmFsIHJlcHJlc2VudGF0aW9uIGZvciBiaW5kaW5ncyB1c2Uu
CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXk6OmJ1aWxkQWxnb3JpdGhtRGVzY3JpcHRpb24p
OiBEaXR0by4gVGhpcyBmdW5jdGlvbiBpcyBzdXBwb3NlZAorICAgICAgICB0byBiZSBjYWxsZWQg
YnkgZGVyaXZlZCBjbGFzc2VzIGJlZm9yZSBhZGRpbmcgb3RoZXIga2V5ZXMuCisgICAgICAgIChX
ZWJDb3JlOjpDcnlwdG9LZXk6OnVzYWdlcyk6IENvbnZlcnQgaW50ZXJuYWwgcmVwcmVzZW50YXRp
b24gZm9yIGJpbmRpbmdzIHVzZS4KKworICAgICAgICAqIGNyeXB0by9DcnlwdG9LZXkuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleTo6ZXh0cmFjdGFibGUpOiBFeHBvc2UgZm9yIGJpbmRp
bmdzLgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5OjphbGxvd3MpOiBBIGZhc3RlciB3YXkg
dG8gY2hlY2sgYWxsb3dlZCBrZXkgdXNhZ2UgZnJvbSBDKysgY29kZS4KKworICAgICAgICAqIGNy
eXB0by9DcnlwdG9LZXkuaWRsOiBBZGRlZCBTa2lwVlRhYmxlVmFsaWRhdGlvbiwgYmVjYXVzZSB2
YWxpZGF0aW9uIGRvZXNuJ3Qgd29yaworICAgICAgICB3aXRoIGRlcml2ZWQgY2xhc3Nlcy4gQ29y
cmVjdGVkICJ1c2FnZXMiIGF0dHJpYnV0ZSBuYW1lLgorCisgICAgICAgICogY3J5cHRvL0NyeXB0
b0tleUZvcm1hdC5oOiBBZGRlZC4gCisgICAgICAgICogY3J5cHRvL0NyeXB0b0tleVR5cGUuaDog
QWRkZWQuCisgICAgICAgICogY3J5cHRvL0NyeXB0b0tleVVzYWdlLmg6IEFkZGVkLgorICAgICAg
ICBBZGRlZCBlbnVtcyB1c2VkIGJ5IENyeXB0b0tleS4KKwogMjAxMy0xMC0yOSAgQnJhZHkgRWlk
c29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgR2V0IElEQlRyYW5zYWN0aW9uQmFj
a2VuZExldmVsREJPcGVyYXRpb25zICphbG1vc3QqIHJlYWR5IHRvIGdvIGNyb3NzIHBsYXRmb3Jt
LgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMTU4MjA4KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NTQyLDYgKzU1NDIsMTAg
QEAKIAkJRTE2OTgyNjAxMTM0NjM2QTAwODk0MTE1IC8qIE9iakNSdW50aW1lT2JqZWN0Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE2OTgyNUYxMTM0
NjM2QTAwODk0MTE1IC8qIE9iakNSdW50aW1lT2JqZWN0Lm1tICovOyB9OwogCQlFMTZBODRGOTE0
Qzg1Q0NDMDAyOTc3REYgLyogQ1NTQm9yZGVySW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE2QTg0RjcxNEM4NUNDQzAwMjk3N0RGIC8qIENT
U0JvcmRlckltYWdlLmNwcCAqLzsgfTsKIAkJRTE2QTg0RkExNEM4NUNDQzAwMjk3N0RGIC8qIENT
U0JvcmRlckltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMTZBODRGODE0Qzg1Q0NDMDAyOTc3REYgLyogQ1NTQm9yZGVySW1hZ2UuaCAqLzsgfTsK
KwkJRTE3MkFGNzAxODBGMjg5NTAwRkJBREI5IC8qIENyeXB0b0tleVVzYWdlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTcyQUY2RjE4MEYyODk1MDBG
QkFEQjkgLyogQ3J5cHRvS2V5VXNhZ2UuaCAqLzsgfTsKKwkJRTE3MkFGNzcxODBGMzY2QzAwRkJB
REI5IC8qIENyeXB0b0tleUZvcm1hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTE3MkFGNzYxODBGMzY2QzAwRkJBREI5IC8qIENyeXB0b0tleUZvcm1h
dC5oICovOyB9OworCQlFMTcyQUY4RjE4MTFCQzM3MDBGQkFEQjkgLyogSlNET01Qcm9taXNlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNzJBRjhE
MTgxMUJDMzcwMEZCQURCOSAvKiBKU0RPTVByb21pc2UuY3BwICovOyB9OworCQlFMTcyQUY5MDE4
MTFCQzM3MDBGQkFEQjkgLyogSlNET01Qcm9taXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTcyQUY4RTE4MTFCQzM3MDBGQkFEQjkgLyogSlNET01Q
cm9taXNlLmggKi87IH07CiAJCUUxN0I0OTE1MTZBOUIwOTQwMDFDODgzOSAvKiBUcmFuc2l0aW9u
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTE3QjQ5MTMxNkE5QjA5MzAwMUM4ODM5IC8qIFRyYW5zaXRpb25FdmVudC5jcHAgKi87IH07CiAJ
CUUxN0I0OTE2MTZBOUIwOTQwMDFDODgzOSAvKiBUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxN0I0OTE0MTZBOUIwOTMwMDFD
ODgzOSAvKiBUcmFuc2l0aW9uRXZlbnQuaCAqLzsgfTsKIAkJRTE3QjQ5MjExNkE5QjhGRjAwMUM4
ODM5IC8qIEpTVHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMTdCNDkxRjE2QTlCOEZGMDAxQzg4MzkgLyogSlNUcmFuc2l0aW9u
RXZlbnQuaCAqLzsgfTsKQEAgLTU1NTYsNiArNTU2MCw3IEBACiAJCUUxODI1OEFDMEVGM0NENzAw
MDkzMzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxODI1OEFCMEVGM0NENzAwMDkzMzI0MiAv
KiBKU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLzsgfTsKIAkJRTE4NzA1NjMxNkU1NEEw
RDAwNTg1RTk3IC8qIE1haW5UaHJlYWRUYXNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMTg3MDU2MjE2RTU0QTBEMDA1ODVFOTcgLyogTWFpblRocmVh
ZFRhc2suaCAqLzsgfTsKIAkJRTE4NzcyRjExMjZFMjYyOTAwM0RENTg2IC8qIExhbmd1YWdlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxODc3MkYw
MTI2RTI2MjkwMDNERDU4NiAvKiBMYW5ndWFnZS5jcHAgKi87IH07CisJCUUxOTcyNzE2MTgyMDU0
OUUwMDU5MkQ1MSAvKiBDcnlwdG9LZXlUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk3MjcxNTE4MjA1NDlFMDA1OTJENTEgLyogQ3J5cHRvS2V5
VHlwZS5oICovOyB9OwogCQlFMUExNDcwODExMTAyQjE1MDBFRUMwRjMgLyogQ29udGFpbmVyTm9k
ZUFsZ29yaXRobXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxQTE0NzA3MTExMDJCMTUwMEVFQzBGMyAvKiBDb250YWluZXJOb2RlQWxnb3JpdGhtcy5o
ICovOyB9OwogCQlFMUEzMTYyRDEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3Ry
aW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMUEzMTYyQjEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFB
MzE2MkUxMzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQTMxNjJDMTM0
QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMubW0gKi87IH07CkBA
IC01NjAzLDYgKzU2MDgsNyBAQAogCQlFMUM0MTYxNzBGNjU2MzE4MDA5MkQyRkIgLyogQ3Jvc3NP
cmlnaW5BY2Nlc3NDb250cm9sLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxQzQxNjE2MEY2NTYzMTgwMDkyRDJGQiAvKiBDcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuY3BwICovOyB9OwogCQlFMUM0REU2OTBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZl
RE9NT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMUM0REU2ODBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFDNERFNkUwRUE3NUM2
NTAwMjNDQ0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM0REU2RDBFQTc1QzY1MDAyM0NDRDYgLyogQWN0aXZl
RE9NT2JqZWN0LmNwcCAqLzsgfTsKKwkJRTFDNjU3MjUxODE2RTY5RDAwMjU2Q0REIC8qIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxQzY1NzI0MTgxNkU2OUQwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyLmggKi87IH07CiAJCUUxQzhCRTVEMEU4QkQxNUEwMDY0Q0I3RCAvKiBKU1dvcmtl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM4
QkU1QzBFOEJEMTVBMDA2NENCN0QgLyogSlNXb3JrZXIuY3BwICovOyB9OwogCQlFMUNBNUNCQzBF
OENEQ0FGMDBFOEVGOTAgLyogSlNXb3JrZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDQTVDQkIwRThDRENBRjAwRThFRjkwIC8qIEpT
V29ya2VyQ3VzdG9tLmNwcCAqLzsgfTsKIAkJRTFDQUE1QzYwRThCRDIzNjAwQTczRUNBIC8qIEpT
V29ya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUNBQTVDNTBFOEJEMjM2MDBBNzNFQ0EgLyogSlNXb3JrZXIuaCAqLzsgfTsKQEAgLTEyNTI3LDYg
KzEyNTMzLDEwIEBACiAJCUUxNjk4MjVGMTEzNDYzNkEwMDg5NDExNSAvKiBPYmpDUnVudGltZU9i
amVjdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE9iakNSdW50
aW1lT2JqZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTZBODRGNzE0Qzg1
Q0NDMDAyOTc3REYgLyogQ1NTQm9yZGVySW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ1NTQm9yZGVySW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMTZBODRGODE0Qzg1Q0NDMDAyOTc3REYgLyogQ1NTQm9yZGVySW1hZ2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTQm9yZGVySW1hZ2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE3MkFGNkYxODBGMjg5NTAwRkJBREI5IC8qIENyeXB0b0tl
eVVzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0tleVVzYWdl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxNzJBRjc2MTgwRjM2NkMwMEZCQURC
OSAvKiBDcnlwdG9LZXlGb3JtYXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q3J5cHRvS2V5Rm9ybWF0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxNzJBRjhE
MTgxMUJDMzcwMEZCQURCOSAvKiBKU0RPTVByb21pc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNET01Qcm9taXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTE3MkFGOEUxODExQkMzNzAwRkJBREI5IC8qIEpTRE9NUHJvbWlzZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVByb21pc2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTE3NjU4MEMxODBERjNBMDAwNUE5NkQxIC8qIE9FU0VsZW1lbnRJ
bmRleFVpbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgbmFtZSA9IE9FU0VsZW1lbnRJbmRleFVpbnQuaWRsOyBwYXRoID0gY2FudmFz
L09FU0VsZW1lbnRJbmRleFVpbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MTdCNDkwQjE2QTk3MjY5MDAxQzg4MzkgLyogVHJhbnNpdGlvbkV2ZW50LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBUcmFuc2l0aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMTdCNDkxMzE2QTlCMDkzMDAxQzg4MzkgLyogVHJhbnNpdGlvbkV2ZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRyYW5zaXRpb25FdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjU0Myw2ICsxMjU1Myw3IEBACiAJCUUx
ODI1OEFCMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV29ya2VyR2xvYmFsU2NvcGVD
dXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTg3MDU2MjE2RTU0QTBE
MDA1ODVFOTcgLyogTWFpblRocmVhZFRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWFpblRocmVhZFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4
NzcyRjAxMjZFMjYyOTAwM0RENTg2IC8qIExhbmd1YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IExhbmd1YWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTE5NzI3MTUxODIwNTQ5RTAwNTkyRDUxIC8qIENyeXB0b0tleVR5cGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvS2V5VHlwZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMUExNDcwNzExMTAyQjE1MDBFRUMwRjMgLyogQ29udGFpbmVyTm9k
ZUFsZ29yaXRobXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGFpbmVy
Tm9kZUFsZ29yaXRobXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFBMzE2MkIx
MzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFBMzE2MkMxMzRCQzMyRDAwN0M5QTRGIC8q
IFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNTk3LDYgKzEyNjA4LDcgQEAKIAkJRTFDNDE2MTYwRjY1
NjMxODAwOTJEMkZCIC8qIENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUM0REU2ODBFQTc1QzFFMDAyM0NDRDYgLyog
QWN0aXZlRE9NT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjdGl2
ZURPTU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUM0REU2RDBFQTc1
QzY1MDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFjdGl2ZURPTU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxQzY1NzI0MTgxNkU2OUQwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDNkNGQzIxNzQ2
RDI5MzAwN0I4N0ExIC8qIERPTVdpbmRvd0NvbnN0cnVjdG9ycy5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9NV2luZG93
Q29uc3RydWN0b3JzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDOEJFNUMw
RThCRDE1QTAwNjRDQjdEIC8qIEpTV29ya2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTV29ya2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTFDQTVDQkIwRThDRENBRjAwRThFRjkwIC8qIEpTV29ya2VyQ3VzdG9tLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV29ya2VyQ3VzdG9tLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MjQ0LDYgKzE5MjU2LDggQEAKIAkJCQlFMUMzNkMwMjBF
QjA3NkQ2MDA3NDEwQkMgLyogSlNET01HbG9iYWxPYmplY3QuaCAqLywKIAkJCQk3QzJCREQzQjE3
QzdGOThCMDAzOEZGMTUgLyogSlNET01HbG9iYWxPYmplY3RUYXNrLmNwcCAqLywKIAkJCQk3QzJC
REQzQzE3QzdGOThCMDAzOEZGMTUgLyogSlNET01HbG9iYWxPYmplY3RUYXNrLmggKi8sCisJCQkJ
RTE3MkFGOEQxODExQkMzNzAwRkJBREI5IC8qIEpTRE9NUHJvbWlzZS5jcHAgKi8sCisJCQkJRTE3
MkFGOEUxODExQkMzNzAwRkJBREI5IC8qIEpTRE9NUHJvbWlzZS5oICovLAogCQkJCUJDNjkzMjcx
MEQ3RTI5MzkwMEFFNDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuY3BwICovLAogCQkJCUJDNjkzMjcy
MEQ3RTI5MzkwMEFFNDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuaCAqLywKIAkJCQlCQ0JGQjUzQTBE
Q0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAgKi8sCkBAIC0yMDE4NCw5ICsy
MDE5OCwxMyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJRTE1N0E4RUExODE4NTFBQzAwOUY4MjFE
IC8qIENyeXB0b0FsZ29yaXRobURlc2NyaXB0aW9uQnVpbGRlci5jcHAgKi8sCiAJCQkJRTE1N0E4
RUIxODE4NTFBQzAwOUY4MjFEIC8qIENyeXB0b0FsZ29yaXRobURlc2NyaXB0aW9uQnVpbGRlci5o
ICovLAorCQkJCUUxQzY1NzI0MTgxNkU2OUQwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyLmggKi8sCiAJCQkJRTE1N0E4REMxODE3MkMyQzAwOUY4MjFEIC8qIENyeXB0b0tleS5p
ZGwgKi8sCiAJCQkJRTE1N0E4RTIxODE3M0EzQTAwOUY4MjFEIC8qIENyeXB0b0tleS5jcHAgKi8s
CiAJCQkJRTE1N0E4RTMxODE3M0EzQTAwOUY4MjFEIC8qIENyeXB0b0tleS5oICovLAorCQkJCUUx
NzJBRjc2MTgwRjM2NkMwMEZCQURCOSAvKiBDcnlwdG9LZXlGb3JtYXQuaCAqLywKKwkJCQlFMTk3
MjcxNTE4MjA1NDlFMDA1OTJENTEgLyogQ3J5cHRvS2V5VHlwZS5oICovLAorCQkJCUUxNzJBRjZG
MTgwRjI4OTUwMEZCQURCOSAvKiBDcnlwdG9LZXlVc2FnZS5oICovLAogCQkJCUUxRkY4RjVDMTgw
NzM2NEIwMDEzMjY3NCAvKiBTdWJ0bGVDcnlwdG8uaWRsICovLAogCQkJCUUxRkY4RjVEMTgwNzQ0
MjEwMDEzMjY3NCAvKiBTdWJ0bGVDcnlwdG8uY3BwICovLAogCQkJCUUxRkY4RjVFMTgwNzQ0MjEw
MDEzMjY3NCAvKiBTdWJ0bGVDcnlwdG8uaCAqLywKQEAgLTIyNTQ5LDYgKzIyNTY3LDcgQEAKIAkJ
CQk5M0I3N0EzODBBREQ3OTI1MDBFQTRCODEgLyogRnJhbWVMb2FkZXJUeXBlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNjU4NDM2ODYwQUUwMUI3NDAwRTUzNzUzIC8qIEZyYW1lTG9hZFJlcXVlc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCTYyOEQyMTRFMTIxMzFFRjQwMDU1RENGQyAvKiBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMTcyQUY3MDE4MEYyODk1MDBG
QkFEQjkgLyogQ3J5cHRvS2V5VXNhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTBFMDk5
RTY0OTIwMDU2RTU4MSAvKiBGcmFtZVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NF
MzBEQUExNzFCNjNEMjAwRUMzM0UxIC8qIEZyYW1lU25hcHNob3R0aW5nTWFjLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2NUEyMTQ4NTA5N0EzRjUzMDBCOTA1MEEgLyogRnJhbWVUcmVlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTIyOTUxLDYgKzIyOTcwLDcgQEAKIAkJCQlGQjkxMzkyQTE2QUU0RkMwMDAx
RkU2ODIgLyogSlNET01QYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUQyNDdGRjBENzU3RTY5
MDBGREY5NTkgLyogSlNET01QbHVnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUE5RDI0ODAxMEQ3
NTdFNjkwMEZERjk1OSAvKiBKU0RPTVBsdWdpbkFycmF5LmggaW4gSGVhZGVycyAqLywKKwkJCQlF
MTk3MjcxNjE4MjA1NDlFMDA1OTJENTEgLyogQ3J5cHRvS2V5VHlwZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM1QTg2QjYwQzMzNjdFODAwRUVBNjQ5IC8qIEpTRE9NU2VsZWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0QUNCQzBDQjEyNzEzRDBBMDA5NEY5QjIgLyogSlNET01TZXR0YWJsZVRv
a2VuTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzUxMzdDRjMxMUE1ODM3ODAwNEFEQjk5IC8q
IEpTRE9NU3RyaW5nTGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzE2NSw2ICsyMzE4NSw3IEBA
CiAJCQkJMUFFODJGRUQwQ0FCMDdFRTAwMjIzN0FFIC8qIEpTU1FMUmVzdWx0U2V0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUZFMTE5QTBDQkZGQ0M0MDAzMDE3RkEgLyogSlNTUUxSZXN1bHRTZXRS
b3dMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTlERDZBNTExOTAyQTYyMDA3RTk2ODQgLyog
SlNTUUxTdGF0ZW1lbnRDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTE3MkFGNzcxODBG
MzY2QzAwRkJBREI5IC8qIENyeXB0b0tleUZvcm1hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5
REQ2QTkxMTkwMkE3MTAwN0U5Njg0IC8qIEpTU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM4MjQzMkEwRDBDRThBMjAwNDYwQzhGIC8qIEpTU1FMVHJhbnNh
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUI1OURENjlEMTE5MDJBNDIwMDdFOTY4NCAvKiBK
U1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLApAQCAtMjM0NDQsNiArMjM0
NjUsNyBAQAogCQkJCUI1NjJEQjYwMTdEM0NENjMwMDEwQUY5NiAvKiBIVE1MRWxlbWVudFR5cGVI
ZWxwZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUFCQjc4NzEzQjkwNEJDMDBGMTk3RTMgLyog
TGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQjMxQzkxRTEw
QUUxQjhFMDAwQzdCOTIgLyogTGluZUNsYW1wVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUx
NzJBRjkwMTgxMUJDMzcwMEZCQURCOSAvKiBKU0RPTVByb21pc2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg5QjVFQUEyMTFFODAwM0QwMEYyMzY3RSAvKiBMaW5lRW5kaW5nLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBN0FEMkY4ODBFQzg5RDA3MDA4QUIwMDIgLyogTGlua0hhc2guaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk4Q0U0MzJBMTI5RTAwRTUwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI0NTQ5LDYgKzI0NTcxLDcgQEAKIAkJCQkyOUE4MTI0OTBGQkI5Q0E5MDA1
MTAyOTMgLyogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBQUE3MjhGNzE2RDFEOEJDMDBEM0JCQzYgLyogV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBNDc4QTdGMTZDRDcwQzMwMDdEMUJC
NCAvKiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTFDNjU3MjUxODE2RTY5RDAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUE4MDgyNDVFNTkwMDFFOUFCQyAvKiBXZWJDb3Jl
RnJhbWVWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OUREQTE2MzcxRkQ0MDA3QzM4REYg
LyogV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNEQzY5REQ2MTYzMjAyNkMwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNjcmVlbldhcm5pbmdWaWV3
LmggaW4gSGVhZGVycyAqLywKQEAgLTI3NzcwLDYgKzI3NzkzLDcgQEAKIAkJCQlFMUJFNTEyRDBD
RjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NBdWRpdG9yRGVsZWdhdGUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRTE3MkFGOEYxODExQkMzNzAwRkJBREI5IC8qIEpTRE9NUHJv
bWlzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyog
WmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQxNzYyREYxNzY2ODZEOTAwRDgzNkE4
IC8qIFVwU2FtcGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDE3NjJFMzE3NjY4NkVBMDBE
ODM2QTggLyogRG93blNhbXBsZXIuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmgJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXJfaAorI2RlZmluZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyX2gKKworI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK0VOVU1fQ0xBU1MoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcikgeworICAgIFJTQUVTX1BL
Q1MxX3YxXzUgPSAxLAorICAgIFJTQVNTQV9QS0NTMV92MV81LAorICAgIFJTQV9QU1MsCisgICAg
UlNBX09BRVAsCisgICAgRUNEU0EsCisgICAgRUNESCwKKyAgICBBRVNfQ1RSLAorICAgIEFFU19D
QkMsCisgICAgQUVTX0NNQUMsCisgICAgQUVTX0dDTSwKKyAgICBBRVNfQ0ZCLAorICAgIEhNQUMs
CisgICAgREgsCisgICAgU0hBXzEsCisgICAgU0hBXzIyNCwKKyAgICBTSEFfMjU2LAorICAgIFNI
QV8zODQsCisgICAgU0hBXzUxMiwKKyAgICBDT05DQVQsCisgICAgSEtERl9DVFIsCisgICAgUEJL
REYyCit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKKyNlbmRpZiAv
LyBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0
by9DcnlwdG9LZXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9Dcnlw
dG9LZXkuY3BwCShyZXZpc2lvbiAxNTgyMDgpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5
cHRvS2V5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksMTkgKzI5LDY0IEBACiAjaWYgRU5BQkxF
KFNVQlRMRV9DUllQVE8pCiAKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1EZXNjcmlwdGlvbkJ1
aWxkZXIuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK0NyeXB0b0tl
eTo6Q3J5cHRvS2V5KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBDcnlwdG9L
ZXlUeXBlIHR5cGUsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlcykKKyAg
ICA6IG1fYWxnb3JpdGhtKGFsZ29yaXRobSkKKyAgICAsIG1fdHlwZSh0eXBlKQorICAgICwgbV9l
eHRyYWN0YWJsZShleHRyYWN0YWJsZSkKKyAgICAsIG1fdXNhZ2VzKHVzYWdlcykKK3sKK30KKwog
Q3J5cHRvS2V5Ojp+Q3J5cHRvS2V5KCkKIHsKIH0KIAotdm9pZCBDcnlwdG9LZXk6OmJ1aWxkQWxn
b3JpdGhtRGVzY3JpcHRpb24oQ3J5cHRvQWxnb3JpdGhtRGVzY3JpcHRpb25CdWlsZGVyJiAvKmJ1
aWxkZXIqLykgY29uc3QKK1N0cmluZyBDcnlwdG9LZXk6OnR5cGUoKSBjb25zdAoreworICAgIHN3
aXRjaCAobV90eXBlKSB7CisgICAgY2FzZSBDcnlwdG9LZXlUeXBlOjpTZWNyZXQ6CisgICAgICAg
IHJldHVybiBBU0NJSUxpdGVyYWwoInNlY3JldCIpOworICAgIGNhc2UgQ3J5cHRvS2V5VHlwZTo6
UHVibGljOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJwdWJsaWMiKTsKKyAgICBjYXNl
IENyeXB0b0tleVR5cGU6OlByaXZhdGU6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInBy
aXZhdGUiKTsKKyAgICB9Cit9CisKK3ZvaWQgQ3J5cHRvS2V5OjpidWlsZEFsZ29yaXRobURlc2Ny
aXB0aW9uKENyeXB0b0FsZ29yaXRobURlc2NyaXB0aW9uQnVpbGRlciYgYnVpbGRlcikgY29uc3QK
IHsKLSAgICAvLyBXaWxsIGRvIHNvbWV0aGluZyBsaWtlIGJ1aWxkZXIuYWRkKCJuYW1lIiwgbV9h
bGdvcml0aG1OYW1lKTsKKyAgICBidWlsZGVyLmFkZCgibmFtZSIsIENyeXB0b0FsZ29yaXRobVJl
Z2lzdHJ5OjpzaGFyZWQoKS5uYW1lRm9ySWRlbnRpZmllcihtX2FsZ29yaXRobSkpOwogICAgIC8v
IFN1YmNsYXNzZXMgd2lsbCBhZGQgb3RoZXIga2V5cy4KIH0KIAorVmVjdG9yPFN0cmluZz4gQ3J5
cHRvS2V5Ojp1c2FnZXMoKSBjb25zdAoreworICAgIFZlY3RvcjxTdHJpbmc+IHJlc3VsdDsKKyAg
ICBpZiAobV91c2FnZXMgJiBDcnlwdG9LZXlVc2FnZUVuY3J5cHQpCisgICAgICAgIHJlc3VsdC5h
cHBlbmQoQVNDSUlMaXRlcmFsKCJlbmNyeXB0IikpOworICAgIGlmIChtX3VzYWdlcyAmIENyeXB0
b0tleVVzYWdlRGVjcnlwdCkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwoImRl
Y3J5cHQiKSk7CisgICAgaWYgKG1fdXNhZ2VzICYgQ3J5cHRvS2V5VXNhZ2VTaWduKQorICAgICAg
ICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCgic2lnbiIpKTsKKyAgICBpZiAobV91c2FnZXMg
JiBDcnlwdG9LZXlVc2FnZVZlcmlmeSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVy
YWwoInZlcmlmeSIpKTsKKyAgICBpZiAobV91c2FnZXMgJiBDcnlwdG9LZXlVc2FnZURlcml2ZUtl
eSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwoImRlcml2ZUtleSIpKTsKKyAg
ICBpZiAobV91c2FnZXMgJiBDcnlwdG9LZXlVc2FnZURlcml2ZUJpdHMpCisgICAgICAgIHJlc3Vs
dC5hcHBlbmQoQVNDSUlMaXRlcmFsKCJkZXJpdmVCaXRzIikpOworICAgIGlmIChtX3VzYWdlcyAm
IENyeXB0b0tleVVzYWdlV3JhcEtleSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVy
YWwoIndyYXBLZXkiKSk7CisgICAgaWYgKG1fdXNhZ2VzICYgQ3J5cHRvS2V5VXNhZ2VVbndyYXBL
ZXkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsKCJ1bndyYXBLZXkiKSk7CisK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9D
cnlwdG9LZXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5
LmgJKHJldmlzaW9uIDE1ODIwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXku
aAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOSBAQAogI2lmbmRlZiBDcnlwdG9LZXlfaAog
I2RlZmluZSBDcnlwdG9LZXlfaAogCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgIkNyeXB0b0tleVR5cGUuaCIKKyNpbmNsdWRlICJDcnlwdG9LZXlVc2Fn
ZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0zNiwxNCArMzksMjkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1EZXNjcmlwdGlvbkJ1aWxkZXI7CiAK
K0VOVU1fQ0xBU1MoQ3J5cHRvS2V5VHlwZSkgeworICAgIFNlY3JldCwKKyAgICBQdWJsaWMsCisg
ICAgUHJpdmF0ZQorfTsKKwogY2xhc3MgQ3J5cHRvS2V5IDogcHVibGljIFJlZkNvdW50ZWQ8Q3J5
cHRvS2V5PiB7CiBwdWJsaWM6CisgICAgQ3J5cHRvS2V5KENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXIsIENyeXB0b0tleVR5cGUsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlKTsKICAg
ICB2aXJ0dWFsIH5DcnlwdG9LZXkoKTsKIAotICAgIHZpcnR1YWwgU3RyaW5nIHR5cGUoKSBjb25z
dCA9IDA7Ci0gICAgdmlydHVhbCBib29sIGV4dHJhY3RhYmxlKCkgY29uc3QgPSAwOworICAgIFN0
cmluZyB0eXBlKCkgY29uc3Q7CisgICAgYm9vbCBleHRyYWN0YWJsZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZXh0cmFjdGFibGU7IH0KICAgICB2aXJ0dWFsIHZvaWQgYnVpbGRBbGdvcml0aG1EZXNjcmlw
dGlvbihDcnlwdG9BbGdvcml0aG1EZXNjcmlwdGlvbkJ1aWxkZXImKSBjb25zdDsKLSAgICB2aXJ0
dWFsIFZlY3RvcjxTdHJpbmc+IHVzYWdlKCkgY29uc3QgPSAwOworICAgIFZlY3RvcjxTdHJpbmc+
IHVzYWdlcygpIGNvbnN0OworCisgICAgYm9vbCBhbGxvd3MoQ3J5cHRvS2V5VXNhZ2UgdXNhZ2Up
IGNvbnN0IHsgcmV0dXJuIHVzYWdlID09IChtX3VzYWdlcyAmIHVzYWdlKTsgfQorCitwcml2YXRl
OgorICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgbV9hbGdvcml0aG07CisgICAgQ3J5cHRv
S2V5VHlwZSBtX3R5cGU7CisgICAgYm9vbCBtX2V4dHJhY3RhYmxlOworICAgIENyeXB0b0tleVVz
YWdlIG1fdXNhZ2VzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3J5cHRvL0NyeXB0b0tleS5pZGwJKHJldmlzaW9uIDE1ODIwOCkKKysrIFNvdXJjZS9XZWJD
b3JlL2NyeXB0by9DcnlwdG9LZXkuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxMCArNDQsMTEg
QEAgZW51bSBLZXlVc2FnZSB7CiAgICAgQ29uZGl0aW9uYWw9U1VCVExFX0NSWVBUTywKICAgICBJ
bnRlcmZhY2VOYW1lPUtleSwKICAgICBOb0ludGVyZmFjZU9iamVjdCwKLSAgICBPcGVyYXRpb25z
Tm90RGVsZXRhYmxlCisgICAgT3BlcmF0aW9uc05vdERlbGV0YWJsZSwKKyAgICBTa2lwVlRhYmxl
VmFsaWRhdGlvbgogXSBpbnRlcmZhY2UgQ3J5cHRvS2V5IHsKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgS2V5VHlwZSB0eXBlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGV4dHJhY3Rh
YmxlOwogICAgIFtDdXN0b21dIHJlYWRvbmx5IGF0dHJpYnV0ZSBBbGdvcml0aG0gYWxnb3JpdGht
OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBLZXlVc2FnZVtdIHVzYWdlOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBLZXlVc2FnZVtdIHVzYWdlczsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
cnlwdG8vQ3J5cHRvS2V5Rm9ybWF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5
cHRvL0NyeXB0b0tleUZvcm1hdC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvY3J5
cHRvL0NyeXB0b0tleUZvcm1hdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIENyeXB0b0tleUZvcm1hdF9oCisjZGVmaW5lIENyeXB0b0tleUZv
cm1hdF9oCisKKyNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitFTlVNX0NMQVNTKENyeXB0b0tleUZvcm1hdCkgeworICAgIC8vIEFuIHVuZm9ybWF0dGVk
IHNlcXVlbmNlIG9mIGJ5dGVzLiBJbnRlbmRlZCBmb3Igc2VjcmV0IGtleXMuCisgICAgUmF3LAor
CisgICAgLy8gVGhlIERFUiBlbmNvZGluZyBvZiB0aGUgUHJpdmF0ZUtleUluZm8gc3RydWN0dXJl
IGZyb20gUkZDIDUyMDguCisgICAgUEtDUzgsCisKKyAgICAvLyBUaGUgREVSIGVuY29kaW5nIG9m
IHRoZSBTdWJqZWN0UHVibGljS2V5SW5mbyBzdHJ1Y3R1cmUgZnJvbSBSRkMgNTI4MC4KKyAgICBT
UEtJLAorCisgICAgLy8gVGhlIGtleSBpcyByZXByZXNlbnRlZCBhcyBKU09OIGFjY29yZGluZyB0
byB0aGUgSlNPTiBXZWIgS2V5IGZvcm1hdC4KKyAgICBKV0sKK307CisKK30KKworI2VuZGlmIC8v
IEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorI2VuZGlmIC8vIENyeXB0b0tleUZvcm1hdF9oCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5VHlwZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlUeXBlLmgJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5VHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENyeXB0b0tleVR5cGVfaAorI2RlZmluZSBD
cnlwdG9LZXlUeXBlX2gKKworI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0VOVU1fQ0xBU1MoQ3J5cHRvS2V5VHlwZSkgeworICAgIFNlY3JldCwKKyAg
ICBQdWJsaWMsCisgICAgUHJpdmF0ZQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCisjZW5kaWYgLy8gQ3J5cHRvS2V5VHlwZV9o
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5VXNhZ2UuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5VXNhZ2UuaAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlVc2FnZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENyeXB0b0tleVVzYWdlX2gK
KyNkZWZpbmUgQ3J5cHRvS2V5VXNhZ2VfaAorCisjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSB7CisgIENyeXB0b0tleVVzYWdlRW5jcnlwdCA9
IDEgPDwgMCwKKyAgQ3J5cHRvS2V5VXNhZ2VEZWNyeXB0ID0gMSA8PCAxLAorICBDcnlwdG9LZXlV
c2FnZVNpZ24gPSAxIDw8IDIsCisgIENyeXB0b0tleVVzYWdlVmVyaWZ5ID0gMSA8PCAzLAorICBD
cnlwdG9LZXlVc2FnZURlcml2ZUtleSA9IDEgPDwgNCwKKyAgQ3J5cHRvS2V5VXNhZ2VEZXJpdmVC
aXRzID0gMSA8PCA1LAorICBDcnlwdG9LZXlVc2FnZVdyYXBLZXkgPSAxIDw8IDYsCisgIENyeXB0
b0tleVVzYWdlVW53cmFwS2V5ID0gMSA8PCA3Cit9OworCit0eXBlZGVmIGludCBDcnlwdG9LZXlV
c2FnZTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCisjZW5kaWYgLy8g
Q3J5cHRvS2V5VXNhZ2VfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215420</attachid>
            <date>2013-10-29 13:52:23 -0700</date>
            <delta_ts>2013-10-29 14:03:46 -0700</delta_ts>
            <desc>with appropriate style fixes</desc>
            <filename>ImproveCryptoKey.txt</filename>
            <type>text/plain</type>
            <size>25407</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1ODIxNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDEzLTEwLTI5ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIEJlZWYgdXAgQ3J5cHRvS2V5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM0NjIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkZWQgbmV3IGZpbGVzLgorCisgICAgICAg
ICogY3J5cHRvL0NyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaDogQWRkZWQgYW4gZW51bSB3aXRo
IGFsbCByZWdpc3RlcmVkIGFsZ29yaXRobXMKKyAgICAgICAgKHRoZXkgZG9uJ3QgaGF2ZSB0byBi
ZSBhbGwgaW1wbGVtZW50ZWQgaW4gYW55IHBvcnQpLgorCisgICAgICAgICogY3J5cHRvL0NyeXB0
b0tleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXk6OkNyeXB0b0tleSk6IEluaXRp
YWxpemUgYmFzZSBjbGFzcyB2YXJpYWJsZXMuCisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXk6
OnR5cGUpOiBDb252ZXJ0IGludGVybmFsIHJlcHJlc2VudGF0aW9uIGZvciBiaW5kaW5ncyB1c2Uu
CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXk6OmJ1aWxkQWxnb3JpdGhtRGVzY3JpcHRpb24p
OiBEaXR0by4gVGhpcyBmdW5jdGlvbiBpcyBzdXBwb3NlZAorICAgICAgICB0byBiZSBjYWxsZWQg
YnkgZGVyaXZlZCBjbGFzc2VzIGJlZm9yZSBhZGRpbmcgb3RoZXIga2V5ZXMuCisgICAgICAgIChX
ZWJDb3JlOjpDcnlwdG9LZXk6OnVzYWdlcyk6IENvbnZlcnQgaW50ZXJuYWwgcmVwcmVzZW50YXRp
b24gZm9yIGJpbmRpbmdzIHVzZS4KKworICAgICAgICAqIGNyeXB0by9DcnlwdG9LZXkuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleTo6ZXh0cmFjdGFibGUpOiBFeHBvc2UgZm9yIGJpbmRp
bmdzLgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5OjphbGxvd3MpOiBBIGZhc3RlciB3YXkg
dG8gY2hlY2sgYWxsb3dlZCBrZXkgdXNhZ2UgZnJvbSBDKysgY29kZS4KKworICAgICAgICAqIGNy
eXB0by9DcnlwdG9LZXkuaWRsOiBBZGRlZCBTa2lwVlRhYmxlVmFsaWRhdGlvbiwgYmVjYXVzZSB2
YWxpZGF0aW9uIGRvZXNuJ3Qgd29yaworICAgICAgICB3aXRoIGRlcml2ZWQgY2xhc3Nlcy4gQ29y
cmVjdGVkICJ1c2FnZXMiIGF0dHJpYnV0ZSBuYW1lLgorCisgICAgICAgICogY3J5cHRvL0NyeXB0
b0tleUZvcm1hdC5oOiBBZGRlZC4gCisgICAgICAgICogY3J5cHRvL0NyeXB0b0tleVR5cGUuaDog
QWRkZWQuCisgICAgICAgICogY3J5cHRvL0NyeXB0b0tleVVzYWdlLmg6IEFkZGVkLgorICAgICAg
ICBBZGRlZCBlbnVtcyB1c2VkIGJ5IENyeXB0b0tleS4KKwogMjAxMy0xMC0yOSAgQnJhZHkgRWlk
c29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgR2V0IElEQlRyYW5zYWN0aW9uQmFj
a2VuZExldmVsREJPcGVyYXRpb25zICphbG1vc3QqIHJlYWR5IHRvIGdvIGNyb3NzIHBsYXRmb3Jt
LgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMTU4MjA4KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NTQyLDYgKzU1NDIsOCBA
QAogCQlFMTY5ODI2MDExMzQ2MzZBMDA4OTQxMTUgLyogT2JqQ1J1bnRpbWVPYmplY3QubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTY5ODI1RjExMzQ2
MzZBMDA4OTQxMTUgLyogT2JqQ1J1bnRpbWVPYmplY3QubW0gKi87IH07CiAJCUUxNkE4NEY5MTRD
ODVDQ0MwMDI5NzdERiAvKiBDU1NCb3JkZXJJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTZBODRGNzE0Qzg1Q0NDMDAyOTc3REYgLyogQ1NT
Qm9yZGVySW1hZ2UuY3BwICovOyB9OwogCQlFMTZBODRGQTE0Qzg1Q0NDMDAyOTc3REYgLyogQ1NT
Qm9yZGVySW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxNkE4NEY4MTRDODVDQ0MwMDI5NzdERiAvKiBDU1NCb3JkZXJJbWFnZS5oICovOyB9Owor
CQlFMTcyQUY3MDE4MEYyODk1MDBGQkFEQjkgLyogQ3J5cHRvS2V5VXNhZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNzJBRjZGMTgwRjI4OTUwMEZC
QURCOSAvKiBDcnlwdG9LZXlVc2FnZS5oICovOyB9OworCQlFMTcyQUY3NzE4MEYzNjZDMDBGQkFE
QjkgLyogQ3J5cHRvS2V5Rm9ybWF0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMTcyQUY3NjE4MEYzNjZDMDBGQkFEQjkgLyogQ3J5cHRvS2V5Rm9ybWF0
LmggKi87IH07CiAJCUUxN0I0OTE1MTZBOUIwOTQwMDFDODgzOSAvKiBUcmFuc2l0aW9uRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE3QjQ5
MTMxNkE5QjA5MzAwMUM4ODM5IC8qIFRyYW5zaXRpb25FdmVudC5jcHAgKi87IH07CiAJCUUxN0I0
OTE2MTZBOUIwOTQwMDFDODgzOSAvKiBUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxN0I0OTE0MTZBOUIwOTMwMDFDODgzOSAv
KiBUcmFuc2l0aW9uRXZlbnQuaCAqLzsgfTsKIAkJRTE3QjQ5MjExNkE5QjhGRjAwMUM4ODM5IC8q
IEpTVHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMTdCNDkxRjE2QTlCOEZGMDAxQzg4MzkgLyogSlNUcmFuc2l0aW9uRXZlbnQu
aCAqLzsgfTsKQEAgLTU1NTYsNiArNTU1OCw3IEBACiAJCUUxODI1OEFDMEVGM0NENzAwMDkzMzI0
MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxODI1OEFCMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dv
cmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLzsgfTsKIAkJRTE4NzA1NjMxNkU1NEEwRDAwNTg1
RTk3IC8qIE1haW5UaHJlYWRUYXNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMTg3MDU2MjE2RTU0QTBEMDA1ODVFOTcgLyogTWFpblRocmVhZFRhc2su
aCAqLzsgfTsKIAkJRTE4NzcyRjExMjZFMjYyOTAwM0RENTg2IC8qIExhbmd1YWdlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxODc3MkYwMTI2RTI2
MjkwMDNERDU4NiAvKiBMYW5ndWFnZS5jcHAgKi87IH07CisJCUUxOTcyNzE2MTgyMDU0OUUwMDU5
MkQ1MSAvKiBDcnlwdG9LZXlUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMTk3MjcxNTE4MjA1NDlFMDA1OTJENTEgLyogQ3J5cHRvS2V5VHlwZS5o
ICovOyB9OwogCQlFMUExNDcwODExMTAyQjE1MDBFRUMwRjMgLyogQ29udGFpbmVyTm9kZUFsZ29y
aXRobXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
QTE0NzA3MTExMDJCMTUwMEVFQzBGMyAvKiBDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oICovOyB9
OwogCQlFMUEzMTYyRDEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0
cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUEz
MTYyQjEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFBMzE2MkUx
MzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQTMxNjJDMTM0QkMzMkQw
MDdDOUE0RiAvKiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMubW0gKi87IH07CkBAIC01NjAz
LDYgKzU2MDYsNyBAQAogCQlFMUM0MTYxNzBGNjU2MzE4MDA5MkQyRkIgLyogQ3Jvc3NPcmlnaW5B
Y2Nlc3NDb250cm9sLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxQzQxNjE2MEY2NTYzMTgwMDkyRDJGQiAvKiBDcm9zc09yaWdpbkFjY2Vzc0NvbnRy
b2wuY3BwICovOyB9OwogCQlFMUM0REU2OTBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9NT2Jq
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM0
REU2ODBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFDNERFNkUwRUE3NUM2NTAwMjND
Q0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUM0REU2RDBFQTc1QzY1MDAyM0NDRDYgLyogQWN0aXZlRE9NT2Jq
ZWN0LmNwcCAqLzsgfTsKKwkJRTFDNjU3MjUxODE2RTY5RDAwMjU2Q0REIC8qIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxQzY1NzI0MTgxNkU2OUQwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyLmggKi87IH07CiAJCUUxQzhCRTVEMEU4QkQxNUEwMDY0Q0I3RCAvKiBKU1dvcmtlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM4QkU1QzBF
OEJEMTVBMDA2NENCN0QgLyogSlNXb3JrZXIuY3BwICovOyB9OwogCQlFMUNBNUNCQzBFOENEQ0FG
MDBFOEVGOTAgLyogSlNXb3JrZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDQTVDQkIwRThDRENBRjAwRThFRjkwIC8qIEpTV29ya2Vy
Q3VzdG9tLmNwcCAqLzsgfTsKIAkJRTFDQUE1QzYwRThCRDIzNjAwQTczRUNBIC8qIEpTV29ya2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUNBQTVD
NTBFOEJEMjM2MDBBNzNFQ0EgLyogSlNXb3JrZXIuaCAqLzsgfTsKQEAgLTEyNTI3LDYgKzEyNTMx
LDggQEAKIAkJRTE2OTgyNUYxMTM0NjM2QTAwODk0MTE1IC8qIE9iakNSdW50aW1lT2JqZWN0Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gT2JqQ1J1bnRpbWVPYmpl
Y3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNkE4NEY3MTRDODVDQ0MwMDI5
NzdERiAvKiBDU1NCb3JkZXJJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDU1NCb3JkZXJJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxNkE4NEY4MTRDODVDQ0MwMDI5NzdERiAvKiBDU1NCb3JkZXJJbWFnZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NCb3JkZXJJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMTcyQUY2RjE4MEYyODk1MDBGQkFEQjkgLyogQ3J5cHRvS2V5VXNhZ2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvS2V5VXNhZ2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE3MkFGNzYxODBGMzY2QzAwRkJBREI5IC8qIENy
eXB0b0tleUZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9L
ZXlGb3JtYXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE3NjU4MEMxODBERjNB
MDAwNUE5NkQxIC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE9FU0VsZW1lbnRJbmRl
eFVpbnQuaWRsOyBwYXRoID0gY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMTdCNDkwQjE2QTk3MjY5MDAxQzg4MzkgLyogVHJhbnNp
dGlvbkV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBUcmFuc2l0aW9uRXZlbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTdCNDkxMzE2QTlCMDkzMDAxQzg4Mzkg
LyogVHJhbnNpdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFRyYW5zaXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MjU0Myw2ICsxMjU0OSw3IEBACiAJCUUxODI1OEFCMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtl
ckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMTg3MDU2MjE2RTU0QTBEMDA1ODVFOTcgLyogTWFpblRocmVhZFRhc2suaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFpblRocmVhZFRhc2suaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4NzcyRjAxMjZFMjYyOTAwM0RENTg2IC8qIExhbmd1YWdl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExhbmd1YWdlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NzI3MTUxODIwNTQ5RTAwNTkyRDUxIC8q
IENyeXB0b0tleVR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRv
S2V5VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUExNDcwNzExMTAyQjE1
MDBFRUMwRjMgLyogQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTFBMzE2MkIxMzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5TQXR0cmlidXRl
ZFN0cmluZ0V4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOU0F0
dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFB
MzE2MkMxMzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYk5TQXR0cmlidXRlZFN0
cmluZ0V4dHJhcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNTk3LDYgKzEy
NjA0LDcgQEAKIAkJRTFDNDE2MTYwRjY1NjMxODAwOTJEMkZCIC8qIENyb3NzT3JpZ2luQWNjZXNz
Q29udHJvbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcm9zc09y
aWdpbkFjY2Vzc0NvbnRyb2wuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUM0
REU2ODBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFjdGl2ZURPTU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMUM0REU2RDBFQTc1QzY1MDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjdGl2ZURPTU9iamVjdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxQzY1NzI0MTgxNkU2OUQwMDI1NkNE
RCAvKiBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTFDNkNGQzIxNzQ2RDI5MzAwN0I4N0ExIC8qIERPTVdpbmRvd0NvbnN0cnVj
dG9ycy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gRE9NV2luZG93Q29uc3RydWN0b3JzLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTFDOEJFNUMwRThCRDE1QTAwNjRDQjdEIC8qIEpTV29ya2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV29ya2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDQTVDQkIwRThDRENBRjAwRThFRjkwIC8qIEpTV29y
a2VyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV29y
a2VyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwMTg0LDkgKzIw
MTkyLDEzIEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlFMTU3QThFQTE4MTg1MUFDMDA5RjgyMUQg
LyogQ3J5cHRvQWxnb3JpdGhtRGVzY3JpcHRpb25CdWlsZGVyLmNwcCAqLywKIAkJCQlFMTU3QThF
QjE4MTg1MUFDMDA5RjgyMUQgLyogQ3J5cHRvQWxnb3JpdGhtRGVzY3JpcHRpb25CdWlsZGVyLmgg
Ki8sCisJCQkJRTFDNjU3MjQxODE2RTY5RDAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIuaCAqLywKIAkJCQlFMTU3QThEQzE4MTcyQzJDMDA5RjgyMUQgLyogQ3J5cHRvS2V5Lmlk
bCAqLywKIAkJCQlFMTU3QThFMjE4MTczQTNBMDA5RjgyMUQgLyogQ3J5cHRvS2V5LmNwcCAqLywK
IAkJCQlFMTU3QThFMzE4MTczQTNBMDA5RjgyMUQgLyogQ3J5cHRvS2V5LmggKi8sCisJCQkJRTE3
MkFGNzYxODBGMzY2QzAwRkJBREI5IC8qIENyeXB0b0tleUZvcm1hdC5oICovLAorCQkJCUUxOTcy
NzE1MTgyMDU0OUUwMDU5MkQ1MSAvKiBDcnlwdG9LZXlUeXBlLmggKi8sCisJCQkJRTE3MkFGNkYx
ODBGMjg5NTAwRkJBREI5IC8qIENyeXB0b0tleVVzYWdlLmggKi8sCiAJCQkJRTFGRjhGNUMxODA3
MzY0QjAwMTMyNjc0IC8qIFN1YnRsZUNyeXB0by5pZGwgKi8sCiAJCQkJRTFGRjhGNUQxODA3NDQy
MTAwMTMyNjc0IC8qIFN1YnRsZUNyeXB0by5jcHAgKi8sCiAJCQkJRTFGRjhGNUUxODA3NDQyMTAw
MTMyNjc0IC8qIFN1YnRsZUNyeXB0by5oICovLApAQCAtMjI1NDksNiArMjI1NjEsNyBAQAogCQkJ
CTkzQjc3QTM4MEFERDc5MjUwMEVBNEI4MSAvKiBGcmFtZUxvYWRlclR5cGVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2NTg0MzY4NjBBRTAxQjc0MDBFNTM3NTMgLyogRnJhbWVMb2FkUmVxdWVzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNjI4RDIxNEUxMjEzMUVGNDAwNTVEQ0ZDIC8qIEZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxNzJBRjcwMTgwRjI4OTUwMEZC
QURCOSAvKiBDcnlwdG9LZXlVc2FnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMEUwOTlF
NjQ5MjAwNTZFNTgxIC8qIEZyYW1lU2VsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0Uz
MERBQTE3MUI2M0QyMDBFQzMzRTEgLyogRnJhbWVTbmFwc2hvdHRpbmdNYWMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTY1QTIxNDg1MDk3QTNGNTMwMEI5MDUwQSAvKiBGcmFtZVRyZWUuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjI5NTEsNiArMjI5NjQsNyBAQAogCQkJCUZCOTEzOTJBMTZBRTRGQzAwMDFG
RTY4MiAvKiBKU0RPTVBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUE5RDI0N0ZGMEQ3NTdFNjkw
MEZERjk1OSAvKiBKU0RPTVBsdWdpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTlEMjQ4MDEwRDc1
N0U2OTAwRkRGOTU5IC8qIEpTRE9NUGx1Z2luQXJyYXkuaCBpbiBIZWFkZXJzICovLAorCQkJCUUx
OTcyNzE2MTgyMDU0OUUwMDU5MkQ1MSAvKiBDcnlwdG9LZXlUeXBlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzVBODZCNjBDMzM2N0U4MDBFRUE2NDkgLyogSlNET01TZWxlY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTRBQ0JDMENCMTI3MTNEMEEwMDk0RjlCMiAvKiBKU0RPTVNldHRhYmxlVG9r
ZW5MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTEzN0NGMzExQTU4Mzc4MDA0QURCOTkgLyog
SlNET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTIzMTY1LDYgKzIzMTc5LDcgQEAK
IAkJCQkxQUU4MkZFRDBDQUIwN0VFMDAyMjM3QUUgLyogSlNTUUxSZXN1bHRTZXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBRkUxMTlBMENCRkZDQzQwMDMwMTdGQSAvKiBKU1NRTFJlc3VsdFNldFJv
d0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1OURENkE1MTE5MDJBNjIwMDdFOTY4NCAvKiBK
U1NRTFN0YXRlbWVudENhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMTcyQUY3NzE4MEYz
NjZDMDBGQkFEQjkgLyogQ3J5cHRvS2V5Rm9ybWF0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTlE
RDZBOTExOTAyQTcxMDA3RTk2ODQgLyogSlNTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzgyNDMyQTBEMENFOEEyMDA0NjBDOEYgLyogSlNTUUxUcmFuc2Fj
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5REQ2OUQxMTkwMkE0MjAwN0U5Njg0IC8qIEpT
U1FMVHJhbnNhY3Rpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDU0OSw2ICsyNDU2
NCw3IEBACiAJCQkJMjlBODEyNDkwRkJCOUNBOTAwNTEwMjkzIC8qIFdlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUFBNzI4RjcxNkQxRDhCQzAw
RDNCQkM2IC8qIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBQTQ3OEE3RjE2Q0Q3MEMzMDA3RDFCQjQgLyogV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxQzY1NzI1MTgxNkU2OUQwMDI1NkNE
RCAvKiBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Yx
OTlBODA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUZyYW1lVmlldy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vo
b2xkZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OURENjE2MzIwMjZDMDA3QzM4REYg
LyogV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmgJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXJfaAorI2RlZmluZSBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyX2gKKworI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0VOVU1fQ0xBU1MoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcikgeworICAg
IFJTQUVTX1BLQ1MxX3YxXzUgPSAxLAorICAgIFJTQVNTQV9QS0NTMV92MV81LAorICAgIFJTQV9Q
U1MsCisgICAgUlNBX09BRVAsCisgICAgRUNEU0EsCisgICAgRUNESCwKKyAgICBBRVNfQ1RSLAor
ICAgIEFFU19DQkMsCisgICAgQUVTX0NNQUMsCisgICAgQUVTX0dDTSwKKyAgICBBRVNfQ0ZCLAor
ICAgIEhNQUMsCisgICAgREgsCisgICAgU0hBXzEsCisgICAgU0hBXzIyNCwKKyAgICBTSEFfMjU2
LAorICAgIFNIQV8zODQsCisgICAgU0hBXzUxMiwKKyAgICBDT05DQVQsCisgICAgSEtERl9DVFIs
CisgICAgUEJLREYyCit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykK
KyNlbmRpZiAvLyBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyX2gKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2NyeXB0by9DcnlwdG9LZXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Ny
eXB0by9DcnlwdG9LZXkuY3BwCShyZXZpc2lvbiAxNTgyMDgpCisrKyBTb3VyY2UvV2ViQ29yZS9j
cnlwdG8vQ3J5cHRvS2V5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksMTkgKzI5LDY0IEBACiAj
aWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1EZXNj
cmlwdGlvbkJ1aWxkZXIuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K0NyeXB0b0tleTo6Q3J5cHRvS2V5KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGht
LCBDcnlwdG9LZXlUeXBlIHR5cGUsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVz
YWdlcykKKyAgICA6IG1fYWxnb3JpdGhtKGFsZ29yaXRobSkKKyAgICAsIG1fdHlwZSh0eXBlKQor
ICAgICwgbV9leHRyYWN0YWJsZShleHRyYWN0YWJsZSkKKyAgICAsIG1fdXNhZ2VzKHVzYWdlcykK
K3sKK30KKwogQ3J5cHRvS2V5Ojp+Q3J5cHRvS2V5KCkKIHsKIH0KIAotdm9pZCBDcnlwdG9LZXk6
OmJ1aWxkQWxnb3JpdGhtRGVzY3JpcHRpb24oQ3J5cHRvQWxnb3JpdGhtRGVzY3JpcHRpb25CdWls
ZGVyJiAvKmJ1aWxkZXIqLykgY29uc3QKK1N0cmluZyBDcnlwdG9LZXk6OnR5cGUoKSBjb25zdAor
eworICAgIHN3aXRjaCAobV90eXBlKSB7CisgICAgY2FzZSBDcnlwdG9LZXlUeXBlOjpTZWNyZXQ6
CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInNlY3JldCIpOworICAgIGNhc2UgQ3J5cHRv
S2V5VHlwZTo6UHVibGljOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJwdWJsaWMiKTsK
KyAgICBjYXNlIENyeXB0b0tleVR5cGU6OlByaXZhdGU6CisgICAgICAgIHJldHVybiBBU0NJSUxp
dGVyYWwoInByaXZhdGUiKTsKKyAgICB9Cit9CisKK3ZvaWQgQ3J5cHRvS2V5OjpidWlsZEFsZ29y
aXRobURlc2NyaXB0aW9uKENyeXB0b0FsZ29yaXRobURlc2NyaXB0aW9uQnVpbGRlciYgYnVpbGRl
cikgY29uc3QKIHsKLSAgICAvLyBXaWxsIGRvIHNvbWV0aGluZyBsaWtlIGJ1aWxkZXIuYWRkKCJu
YW1lIiwgbV9hbGdvcml0aG1OYW1lKTsKKyAgICBidWlsZGVyLmFkZCgibmFtZSIsIENyeXB0b0Fs
Z29yaXRobVJlZ2lzdHJ5OjpzaGFyZWQoKS5uYW1lRm9ySWRlbnRpZmllcihtX2FsZ29yaXRobSkp
OwogICAgIC8vIFN1YmNsYXNzZXMgd2lsbCBhZGQgb3RoZXIga2V5cy4KIH0KIAorVmVjdG9yPFN0
cmluZz4gQ3J5cHRvS2V5Ojp1c2FnZXMoKSBjb25zdAoreworICAgIFZlY3RvcjxTdHJpbmc+IHJl
c3VsdDsKKyAgICBpZiAobV91c2FnZXMgJiBDcnlwdG9LZXlVc2FnZUVuY3J5cHQpCisgICAgICAg
IHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsKCJlbmNyeXB0IikpOworICAgIGlmIChtX3VzYWdl
cyAmIENyeXB0b0tleVVzYWdlRGVjcnlwdCkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxp
dGVyYWwoImRlY3J5cHQiKSk7CisgICAgaWYgKG1fdXNhZ2VzICYgQ3J5cHRvS2V5VXNhZ2VTaWdu
KQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCgic2lnbiIpKTsKKyAgICBpZiAo
bV91c2FnZXMgJiBDcnlwdG9LZXlVc2FnZVZlcmlmeSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChB
U0NJSUxpdGVyYWwoInZlcmlmeSIpKTsKKyAgICBpZiAobV91c2FnZXMgJiBDcnlwdG9LZXlVc2Fn
ZURlcml2ZUtleSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwoImRlcml2ZUtl
eSIpKTsKKyAgICBpZiAobV91c2FnZXMgJiBDcnlwdG9LZXlVc2FnZURlcml2ZUJpdHMpCisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsKCJkZXJpdmVCaXRzIikpOworICAgIGlmICht
X3VzYWdlcyAmIENyeXB0b0tleVVzYWdlV3JhcEtleSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChB
U0NJSUxpdGVyYWwoIndyYXBLZXkiKSk7CisgICAgaWYgKG1fdXNhZ2VzICYgQ3J5cHRvS2V5VXNh
Z2VVbndyYXBLZXkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsKCJ1bndyYXBL
ZXkiKSk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2NyeXB0by9DcnlwdG9LZXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8v
Q3J5cHRvS2V5LmgJKHJldmlzaW9uIDE1ODIwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9D
cnlwdG9LZXkuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOSBAQAogI2lmbmRlZiBDcnlw
dG9LZXlfaAogI2RlZmluZSBDcnlwdG9LZXlfaAogCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIkNyeXB0b0tleVR5cGUuaCIKKyNpbmNsdWRlICJDcnlw
dG9LZXlVc2FnZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0zNiwxNCArMzksMjkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1EZXNjcmlwdGlvbkJ1
aWxkZXI7CiAKK0VOVU1fQ0xBU1MoQ3J5cHRvS2V5VHlwZSkgeworICAgIFNlY3JldCwKKyAgICBQ
dWJsaWMsCisgICAgUHJpdmF0ZQorfTsKKwogY2xhc3MgQ3J5cHRvS2V5IDogcHVibGljIFJlZkNv
dW50ZWQ8Q3J5cHRvS2V5PiB7CiBwdWJsaWM6CisgICAgQ3J5cHRvS2V5KENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIsIENyeXB0b0tleVR5cGUsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVz
YWdlKTsKICAgICB2aXJ0dWFsIH5DcnlwdG9LZXkoKTsKIAotICAgIHZpcnR1YWwgU3RyaW5nIHR5
cGUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBib29sIGV4dHJhY3RhYmxlKCkgY29uc3QgPSAw
OworICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7CisgICAgYm9vbCBleHRyYWN0YWJsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZXh0cmFjdGFibGU7IH0KICAgICB2aXJ0dWFsIHZvaWQgYnVpbGRBbGdvcml0
aG1EZXNjcmlwdGlvbihDcnlwdG9BbGdvcml0aG1EZXNjcmlwdGlvbkJ1aWxkZXImKSBjb25zdDsK
LSAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IHVzYWdlKCkgY29uc3QgPSAwOworICAgIFZlY3Rv
cjxTdHJpbmc+IHVzYWdlcygpIGNvbnN0OworCisgICAgYm9vbCBhbGxvd3MoQ3J5cHRvS2V5VXNh
Z2UgdXNhZ2UpIGNvbnN0IHsgcmV0dXJuIHVzYWdlID09IChtX3VzYWdlcyAmIHVzYWdlKTsgfQor
Citwcml2YXRlOgorICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgbV9hbGdvcml0aG07Cisg
ICAgQ3J5cHRvS2V5VHlwZSBtX3R5cGU7CisgICAgYm9vbCBtX2V4dHJhY3RhYmxlOworICAgIENy
eXB0b0tleVVzYWdlIG1fdXNhZ2VzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleS5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleS5pZGwJKHJldmlzaW9uIDE1ODIwOCkKKysrIFNv
dXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXkuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00NCwx
MCArNDQsMTEgQEAgZW51bSBLZXlVc2FnZSB7CiAgICAgQ29uZGl0aW9uYWw9U1VCVExFX0NSWVBU
TywKICAgICBJbnRlcmZhY2VOYW1lPUtleSwKICAgICBOb0ludGVyZmFjZU9iamVjdCwKLSAgICBP
cGVyYXRpb25zTm90RGVsZXRhYmxlCisgICAgT3BlcmF0aW9uc05vdERlbGV0YWJsZSwKKyAgICBT
a2lwVlRhYmxlVmFsaWRhdGlvbgogXSBpbnRlcmZhY2UgQ3J5cHRvS2V5IHsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgS2V5VHlwZSB0eXBlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFu
IGV4dHJhY3RhYmxlOwogICAgIFtDdXN0b21dIHJlYWRvbmx5IGF0dHJpYnV0ZSBBbGdvcml0aG0g
YWxnb3JpdGhtOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBLZXlVc2FnZVtdIHVzYWdlOworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBLZXlVc2FnZVtdIHVzYWdlczsKIH07CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5Rm9ybWF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvY3J5cHRvL0NyeXB0b0tleUZvcm1hdC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YkNvcmUvY3J5cHRvL0NyeXB0b0tleUZvcm1hdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENyeXB0b0tleUZvcm1hdF9oCisjZGVmaW5lIENy
eXB0b0tleUZvcm1hdF9oCisKKyNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitFTlVNX0NMQVNTKENyeXB0b0tleUZvcm1hdCkgeworICAgIC8vIEFuIHVu
Zm9ybWF0dGVkIHNlcXVlbmNlIG9mIGJ5dGVzLiBJbnRlbmRlZCBmb3Igc2VjcmV0IGtleXMuCisg
ICAgUmF3LAorCisgICAgLy8gVGhlIERFUiBlbmNvZGluZyBvZiB0aGUgUHJpdmF0ZUtleUluZm8g
c3RydWN0dXJlIGZyb20gUkZDIDUyMDguCisgICAgUEtDUzgsCisKKyAgICAvLyBUaGUgREVSIGVu
Y29kaW5nIG9mIHRoZSBTdWJqZWN0UHVibGljS2V5SW5mbyBzdHJ1Y3R1cmUgZnJvbSBSRkMgNTI4
MC4KKyAgICBTUEtJLAorCisgICAgLy8gVGhlIGtleSBpcyByZXByZXNlbnRlZCBhcyBKU09OIGFj
Y29yZGluZyB0byB0aGUgSlNPTiBXZWIgS2V5IGZvcm1hdC4KKyAgICBKV0sKK307CisKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorI2VuZGlmIC8vIENyeXB0b0tleUZvcm1h
dF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5VHlwZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlUeXBlLmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5VHlwZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENyeXB0b0tleVR5cGVfaAor
I2RlZmluZSBDcnlwdG9LZXlUeXBlX2gKKworI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0VOVU1fQ0xBU1MoQ3J5cHRvS2V5VHlwZSkgeworICAgIFNl
Y3JldCwKKyAgICBQdWJsaWMsCisgICAgUHJpdmF0ZQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCisjZW5kaWYgLy8gQ3J5cHRv
S2V5VHlwZV9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5VXNhZ2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5VXNhZ2UuaAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlVc2FnZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENyeXB0b0tl
eVVzYWdlX2gKKyNkZWZpbmUgQ3J5cHRvS2V5VXNhZ2VfaAorCisjaWYgRU5BQkxFKFNVQlRMRV9D
UllQVE8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSB7CisgICAgQ3J5cHRvS2V5VXNh
Z2VFbmNyeXB0ID0gMSA8PCAwLAorICAgIENyeXB0b0tleVVzYWdlRGVjcnlwdCA9IDEgPDwgMSwK
KyAgICBDcnlwdG9LZXlVc2FnZVNpZ24gPSAxIDw8IDIsCisgICAgQ3J5cHRvS2V5VXNhZ2VWZXJp
ZnkgPSAxIDw8IDMsCisgICAgQ3J5cHRvS2V5VXNhZ2VEZXJpdmVLZXkgPSAxIDw8IDQsCisgICAg
Q3J5cHRvS2V5VXNhZ2VEZXJpdmVCaXRzID0gMSA8PCA1LAorICAgIENyeXB0b0tleVVzYWdlV3Jh
cEtleSA9IDEgPDwgNiwKKyAgICBDcnlwdG9LZXlVc2FnZVVud3JhcEtleSA9IDEgPDwgNworfTsK
KwordHlwZWRlZiBpbnQgQ3J5cHRvS2V5VXNhZ2U7CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShT
VUJUTEVfQ1JZUFRPKQorI2VuZGlmIC8vIENyeXB0b0tleVVzYWdlX2gK
</data>
<flag name="review"
          id="238144"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>