<?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>86123</bug_id>
          
          <creation_ts>2012-05-10 11:55:55 -0700</creation_ts>
          <short_desc>IndexedDB: Implement spec behavior for multiEntry indexes with invalid/duplicate subkeys</short_desc>
          <delta_ts>2012-06-21 15:29:02 -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>
          <dependson>86122</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Alec Flett">alecflett</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>haraken</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>jsbell</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>620819</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-05-10 11:55:55 -0700</bug_when>
    <thetext>The spec details the handling of multiEntry key paths where the key path yields an array and the array includes values that are duplicates or invalid sub-keys. WebKit&apos;s implementation (WebCore/binding/v8/IDBBindingUtilities.cpp) yields an overall InvalidType key if any of the subkeys are invalid.

http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#dfn-steps-for-storing-a-record-into-an-object-store

7.4 If index&apos;s multiEntry flag is true, and index key is an Array, remove any elements from index key that are not valid keys and remove any duplicate elements from index key such that only one instance of the duplicate value remains.

For example, the following value of index key [10, 20, null, 30, 20] is converted to [10, 20, 30].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652700</commentid>
    <comment_count>1</comment_count>
      <attachid>148395</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-06-19 12:55:00 -0700</bug_when>
    <thetext>Created attachment 148395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652701</commentid>
    <comment_count>2</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-06-19 12:55:50 -0700</bug_when>
    <thetext>jsbell@ or dgrogan@ - mind a quick look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652703</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-19 12:57:35 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652776</commentid>
    <comment_count>4</comment_count>
      <attachid>148414</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-06-19 13:59:26 -0700</bug_when>
    <thetext>Created attachment 148414
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652807</commentid>
    <comment_count>5</comment_count>
      <attachid>148414</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-06-19 14:22:25 -0700</bug_when>
    <thetext>Comment on attachment 148414
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=148414&amp;action=review

&gt; Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.cpp:393
&gt; +        ASSERT_NOT_REACHED();

Redundant with fall through.

&gt; Source/WebCore/Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:451
&gt; +                if (!m_index-&gt;addingKeyAllowed(indexKey-&gt;array()[i].get()))

Ouch, good catch.

&gt; LayoutTests/storage/indexeddb/resources/index-multientry.js:124
&gt; +                                         };

Either put this callback all on one line, or correct the indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652819</commentid>
    <comment_count>6</comment_count>
      <attachid>148425</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-06-19 14:30:25 -0700</bug_when>
    <thetext>Created attachment 148425
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652820</commentid>
    <comment_count>7</comment_count>
      <attachid>148425</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-06-19 14:31:27 -0700</bug_when>
    <thetext>Comment on attachment 148425
Patch

tkent@ - r? cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654741</commentid>
    <comment_count>8</comment_count>
      <attachid>148848</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-06-21 11:35:19 -0700</bug_when>
    <thetext>Created attachment 148848
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654758</commentid>
    <comment_count>9</comment_count>
      <attachid>148851</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-06-21 11:46:17 -0700</bug_when>
    <thetext>Created attachment 148851
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654946</commentid>
    <comment_count>10</comment_count>
      <attachid>148851</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-21 15:28:57 -0700</bug_when>
    <thetext>Comment on attachment 148851
Patch for landing

Clearing flags on attachment: 148851

Committed r120967: &lt;http://trac.webkit.org/changeset/120967&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654947</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-21 15:29:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148395</attachid>
            <date>2012-06-19 12:55:00 -0700</date>
            <delta_ts>2012-06-19 13:59:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86123-20120619125459.patch</filename>
            <type>text/plain</type>
            <size>26230</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FkM2Q0NWJmZWU1OTRh
YTBhMjg3NmIwYTFkZjg4NDZhZTc2OTU2My4uNjQzMDJkYTY1ODFmMWFjNzVmNDE1MDIyOGE1Mzcy
MWQyZTg4OTBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTA2LTE5ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IElt
cGxlbWVudCBzcGVjIGJlaGF2aW9yIGZvciBtdWx0aUVudHJ5IGluZGV4ZXMgd2l0aCBpbnZhbGlk
L2R1cGxpY2F0ZSBzdWJrZXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NjEyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIERpc3Rpbmd1aXNoIGJldHdlZW4gYW4gYWN0dWFsIGludmFsaWQgSURCS2V5LCBh
bmQgYW4gYXJyYXkgb2YKKyAgICAgICAgcG9zc2libHktaW52YWxpZCBzdWJrZXlzIGJ5IG1ha2lu
ZyBJREJLZXk6OmlzVmFsaWQoKSBjaGVjayBzdWJrZXlzCisgICAgICAgIGlmIHRoZSB0eXBlIGlz
IGFuIGFycmF5LgorCisgICAgICAgIEludHJvZHVjZSBhIG5ldyB3YXkgdG8gdHJhbnNmb3JtIGFu
IElEQktleSBpbnRvIGEKKyAgICAgICAgbXVsdGlFbnRyeS1zcGVjaWZpYyBJREJLZXksIChJREJL
ZXk6OmNyZWF0ZU11bHRpRW50cnlBcnJheSkKKyAgICAgICAgdGhyb3dpbmcgb3V0IGR1cGxpY2F0
ZXMgYW5kIGludmFsaWQga2V5cy4gVXNlIGl0IHdoZW4gc3RvcmluZworICAgICAgICBpbmRleCBl
bnRyaWVzIGZvciBtdWx0aUVudHJ5IGluZGV4ZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOiBl
eGlzdGluZyB0ZXN0cyBoYXZlIGJlZW4gYWx0ZXJlZCB0byBpbmNsdWRlIG5ldyBiZWhhdmlvci4K
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJDdXJzb3I6OmNvbnRpbnVlRnVuY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeTo6
Y21wKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJJbmRleDo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4Ojpn
ZXRLZXkpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJLZXk6OmlzVmFsaWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5Lmg6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXk6
OmNyZWF0ZU11bHRpRW50cnlBcnJheSk6CisgICAgICAgIChJREJLZXkpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQktl
eVJhbmdlOjpvbmx5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdlOjpsb3dlckJvdW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdlOjp1cHBlckJvdW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQktleVJhbmdlOjpib3VuZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJMZXZl
bERCQmFja2luZ1N0b3JlOjpwdXRPYmplY3RTdG9yZVJlY29yZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJMZXZlbERCQmFja2luZ1N0b3JlOjpwdXRJbmRleERhdGFGb3JSZWNvcmQpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCTGV2ZWxEQkNvZGluZzo6ZW5jb2RlSURCS2V5KToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmpl
Y3RTdG9yZTo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjphZGQpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6OnB1dCk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpwdXRJbnRlcm5hbCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUlEQktleUZyb21WYWx1ZSk6CisKIDIwMTItMDYtMTgg
IEpvb25lIEh1ciAgPGpvb25lLmh1ckBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gRm9udGNv
bmZpZyBjYW4ndCBiZSBsaW5rZWQgcHJvcGVybHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggOTk5MmUyOGU3MTM4OTA5ZTEyNTBlMGIyNjA2MGZkMjUwYWNjODQ0NS4uOGExZTc3OWUwMWEz
YTRjNzI2ODU5NDZjOWY5ZTE5YzE1Y2E1NWMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOSBAQAorMjAxMi0wNi0xOSAgQWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBJbXBsZW1lbnQgc3BlYyBiZWhhdmlvciBm
b3IgbXVsdGlFbnRyeSBpbmRleGVzIHdpdGggaW52YWxpZC9kdXBsaWNhdGUgc3Via2V5cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYxMjMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbWF0Y2hpbmcg
aXNWYWxpZCgpIHRvIFdlYklEQktleSB0byBtYXRjaCB0aGUgb25lIGluIElEQktleS4KKworICAg
ICAgICAqIHB1YmxpYy9XZWJJREJLZXkuaDoKKyAgICAgICAgKiBzcmMvV2ViSURCS2V5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5Ojppc1ZhbGlkKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgICogc3JjL1dlYklEQktleVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
SURCS2V5UmFuZ2U6OmFzc2lnbik6CisKIDIwMTItMDYtMTggIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEdlc3R1cmVQaW5jaEJlZ2luIGFuZCBm
cmllbmRzIGFyZSBnZXN0dXJlIGV2ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggOGQyMThlZTg1NTc4ZTgyZTFmN2U0MWMwOTZiOWRl
MmM1ZjljMjA2MC4uMjc1OTUxNGVmZjc0MjI0YzYxNzk5Y2Y1ZjYwNzc5ZmRjZTRkMjQyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0x
ODMsNyArMTgzLDcgQEAgdm9pZCBJREJDdXJzb3I6OmFkdmFuY2UodW5zaWduZWQgbG9uZyBjb3Vu
dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB2b2lkIElEQkN1cnNvcjo6Y29udGludWVGdW5jdGlvbihQ
YXNzUmVmUHRyPElEQktleT4ga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJREJfVFJB
Q0UoIklEQkN1cnNvcjo6Y29udGludWUiKTsKLSAgICBpZiAoa2V5ICYmIChrZXktPnR5cGUoKSA9
PSBJREJLZXk6OkludmFsaWRUeXBlKSkgeworICAgIGlmIChrZXkgJiYgIWtleS0+aXNWYWxpZCgp
KSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmNwcAppbmRleCAxODExNmY1YTNlYTk3ODVkMWI2OWQ4MjhhZjNhZGNkZTFiNmZj
NmU5Li5kM2RlOGY2ZmE1YjRlNzMzMzY0MGM2MzEzZDZkNGVmZjhlZTlkYjUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcApAQCAtMTMzLDcg
KzEzMyw3IEBAIHNob3J0IElEQkZhY3Rvcnk6OmNtcChQYXNzUmVmUHRyPElEQktleT4gZmlyc3Qs
IFBhc3NSZWZQdHI8SURCS2V5PiBzZWNvbmQsIEV4Y2VwCiAgICAgQVNTRVJUKGZpcnN0KTsKICAg
ICBBU1NFUlQoc2Vjb25kKTsKIAotICAgIGlmIChmaXJzdC0+dHlwZSgpID09IElEQktleTo6SW52
YWxpZFR5cGUgfHwgc2Vjb25kLT50eXBlKCkgPT0gSURCS2V5OjpJbnZhbGlkVHlwZSkgeworICAg
IGlmICghZmlyc3QtPmlzVmFsaWQoKSB8fCAhc2Vjb25kLT5pc1ZhbGlkKCkpIHsKICAgICAgICAg
ZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6REFUQV9FUlI7CiAgICAgICAgIHJldHVybiAwOwog
ICAgIH0gICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJJbmRleC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5j
cHAKaW5kZXggZDZkNzYyMmJiMmE0YTliZDhlN2VhZDA4OWRmYjU1NzQ4YjFiZGVhMi4uOTc3NmZm
MmE5NzE1ZWM2NzlmMDgzZTg4MDljMDFlZDRmMTI0NWEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcApAQCAtMTkwLDcgKzE5MCw3IEBAIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBQYXNzUmVmUHRyCiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklE
Ql9JTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIGlmIChr
ZXkgJiYgKGtleS0+dHlwZSgpID09IElEQktleTo6SW52YWxpZFR5cGUpKSB7CisgICAgaWYgKGtl
eSAmJiAha2V5LT5pc1ZhbGlkKCkpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6REFUQV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTIzMCw3ICsyMzAsNyBA
QCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpnZXRLZXkoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgUGFzc1JlZgogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0
aW9uOjpJREJfSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAg
ICBpZiAoa2V5ICYmIChrZXktPnR5cGUoKSA9PSBJREJLZXk6OkludmFsaWRUeXBlKSkgeworICAg
IGlmIChrZXkgJiYgIWtleS0+aXNWYWxpZCgpKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VF
eGNlcHRpb246OkRBVEFfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNwcAppbmRleCA1OTg2ODZlMWEwMzlhZGJm
ZGNiMjQ3N2ZmZmUwOTExNTM4YzY4MzFjLi5iNzZlZDJjZWUzMDVkNjI4N2Y5ZGIxM2UxMGRkMTA4
ZTYxZDY4NGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5j
cHAKQEAgLTQwLDYgKzQwLDIxIEBAIElEQktleTo6fklEQktleSgpCiB7CiB9CiAKK2Jvb2wgSURC
S2V5Ojppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICBpZiAobV90eXBlID09IEludmFsaWRUeXBlKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobV90eXBlID09IEFycmF5VHlwZSkgewor
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fYXJyYXkuc2l6ZSgpOyBpKyspIHsKKyAg
ICAgICAgICAgIGlmICghbV9hcnJheVtpXS0+aXNWYWxpZCgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiBp
bnQgSURCS2V5Ojpjb21wYXJlKGNvbnN0IElEQktleSogb3RoZXIpIGNvbnN0CiB7CiAgICAgQVNT
RVJUKG90aGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQktleS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmgKaW5k
ZXggNDBjZTgzM2Y5MDg5NDM1MjExZTQ5NzFkMzU3MzBmYzJjYzU4NGIxNy4uY2JmZGYxZDRmYzU2
ZWY0NWFmNTIwYWEyNmJkMTUwOWE2NjZmNWY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCS2V5LmgKQEAgLTczLDYgKzczLDMyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGlkYktleS5yZWxlYXNlKCk7CiAgICAgfQogCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURC
S2V5PiBjcmVhdGVNdWx0aUVudHJ5QXJyYXkoY29uc3QgS2V5QXJyYXkmIGFycmF5KQorICAgIHsK
KyAgICAgICAgUmVmUHRyPElEQktleT4gaWRiS2V5ID0gYWRvcHRSZWYobmV3IElEQktleSgpKTsK
KyAgICAgICAgaWRiS2V5LT5tX3R5cGUgPSBBcnJheVR5cGU7CisgICAgICAgIEtleUFycmF5JiBy
ZXN1bHQgPSBpZGJLZXktPm1fYXJyYXk7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBhcnJheS5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKCFhcnJheVtpXS0+aXNWYWxp
ZCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBib29sIHNraXAg
PSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgcmVzdWx0LnNpemUo
KTsgaisrKSB7CisgICAgICAgICAgICAgICAgaWYgKGFycmF5W2ldLT5pc0VxdWFsKHJlc3VsdFtq
XS5nZXQoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgc2tpcCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGlmICghc2tpcCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYXJyYXlb
aV0pOworICAgICAgICAgICAgICAgIGlkYktleS0+bV9zaXplRXN0aW1hdGUgKz0gYXJyYXlbaV0t
Pm1fc2l6ZUVzdGltYXRlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIEFTU0VS
VChpZGJLZXktPmlzVmFsaWQoKSk7CisgICAgICAgIHJldHVybiBpZGJLZXkucmVsZWFzZSgpOwor
ICAgIH0KKwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlQXJyYXkoY29uc3Qg
S2V5QXJyYXkmIGFycmF5KQogICAgIHsKICAgICAgICAgUmVmUHRyPElEQktleT4gaWRiS2V5ID0g
YWRvcHRSZWYobmV3IElEQktleSgpKTsKQEAgLTk4LDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICB9
OwogCiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0gICAgYm9vbCBp
c1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEludmFsaWRUeXBlOyB9CisgICAgYm9v
bCBpc1ZhbGlkKCkgY29uc3Q7CiAKICAgICBjb25zdCBLZXlBcnJheSYgYXJyYXkoKSBjb25zdAog
ICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktl
eVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdl
LmNwcAppbmRleCAwYzIzMjZlNWQ2NDNiMzA2NDI5NTExOTQ5ZTI5ZmYzZmFjN2UyMGVjLi5lODAx
M2YxMjRlMTEwYTg3MGNjYzg3MGJkMjRmZjM2YmFmNDdiMTkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwCkBAIC00NCw3ICs0NCw3IEBA
IElEQktleVJhbmdlOjpJREJLZXlSYW5nZShQYXNzUmVmUHRyPElEQktleT4gbG93ZXIsIFBhc3NS
ZWZQdHI8SURCS2V5PiB1cHBlciwgTG93CiBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBJREJLZXlS
YW5nZTo6b25seShQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICBSZWZQdHI8SURCS2V5PiBrZXkgPSBwcnBLZXk7Ci0gICAgaWYgKGtleSAmJiAoa2V5
LT50eXBlKCkgPT0gSURCS2V5OjpJbnZhbGlkVHlwZSkpIHsKKyAgICBpZiAoa2V5ICYmICFrZXkt
PmlzVmFsaWQoKSkgewogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEQVRBX0VS
UjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtNTQsNyArNTQsNyBAQCBQYXNzUmVmUHRy
PElEQktleVJhbmdlPiBJREJLZXlSYW5nZTo6b25seShQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5
LCBFeGNlcHRpb25DbwogCiBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBJREJLZXlSYW5nZTo6bG93
ZXJCb3VuZChQYXNzUmVmUHRyPElEQktleT4gYm91bmQsIGJvb2wgb3BlbiwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7Ci0gICAgaWYgKGJvdW5kICYmIChib3VuZC0+dHlwZSgpID09IElEQktleTo6SW52
YWxpZFR5cGUpKSB7CisgICAgaWYgKGJvdW5kICYmICFib3VuZC0+aXNWYWxpZCgpKSB7CiAgICAg
ICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSOwogICAgICAgICByZXR1cm4g
MDsKICAgICB9CkBAIC02NCw3ICs2NCw3IEBAIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IElEQktl
eVJhbmdlOjpsb3dlckJvdW5kKFBhc3NSZWZQdHI8SURCS2V5PiBib3VuZCwgYm9vbCBvCiAKIFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+IElEQktleVJhbmdlOjp1cHBlckJvdW5kKFBhc3NSZWZQdHI8
SURCS2V5PiBib3VuZCwgYm9vbCBvcGVuLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAo
Ym91bmQgJiYgKGJvdW5kLT50eXBlKCkgPT0gSURCS2V5OjpJbnZhbGlkVHlwZSkpIHsKKyAgICBp
ZiAoYm91bmQgJiYgIWJvdW5kLT5pc1ZhbGlkKCkpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6REFUQV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTc0LDcg
Kzc0LDcgQEAgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gSURCS2V5UmFuZ2U6OnVwcGVyQm91bmQo
UGFzc1JlZlB0cjxJREJLZXk+IGJvdW5kLCBib29sIG8KIAogUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4gSURCS2V5UmFuZ2U6OmJvdW5kKFBhc3NSZWZQdHI8SURCS2V5PiBsb3dlciwgUGFzc1JlZlB0
cjxJREJLZXk+IHVwcGVyLCBib29sIGxvd2VyT3BlbiwgYm9vbCB1cHBlck9wZW4sIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewotICAgIGlmICgobG93ZXIgJiYgKGxvd2VyLT50eXBlKCkgPT0gSURCS2V5
OjpJbnZhbGlkVHlwZSkpIHx8ICh1cHBlciAmJiAodXBwZXItPnR5cGUoKSA9PSBJREJLZXk6Oklu
dmFsaWRUeXBlKSkpIHsKKyAgICBpZiAoKGxvd2VyICYmICFsb3dlci0+aXNWYWxpZCgpKSB8fCAo
dXBwZXIgJiYgIXVwcGVyLT5pc1ZhbGlkKCkpKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VF
eGNlcHRpb246OkRBVEFfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNraW5n
U3RvcmUuY3BwCmluZGV4IDQ5Nzc3YzYxYmYzNWNjN2I2NGQxMWYzMTVmYTIzM2Q1ZDc3Njk1ZmMu
LjhkY2I0NjA1YzBhYzdjMzAzMjE0MmVmNDQyYzIxMjYzNDM4NTliNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNraW5nU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNraW5n
U3RvcmUuY3BwCkBAIC01ODcsNiArNTg3LDcgQEAgc3RhdGljIGludDY0X3QgZ2V0TmV3VmVyc2lv
bk51bWJlcihMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGEKIAog
Ym9vbCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpwdXRPYmplY3RTdG9yZVJlY29yZChpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiBrZXksIGNv
bnN0IFN0cmluZyYgdmFsdWUsIE9iamVjdFN0b3JlUmVjb3JkSWRlbnRpZmllciogcmVjb3JkSWRl
bnRpZmllcikKIHsKKyAgICBBU1NFUlQoa2V5LmlzVmFsaWQoKSk7CiAgICAgQVNTRVJUKG1fY3Vy
cmVudFRyYW5zYWN0aW9uKTsKICAgICBpbnQ2NF90IHZlcnNpb24gPSBnZXROZXdWZXJzaW9uTnVt
YmVyKG1fY3VycmVudFRyYW5zYWN0aW9uLmdldCgpLCBkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlk
KTsKICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gb2JqZWN0U3RvcmVkYXRhS2V5ID0gT2JqZWN0U3Rv
cmVEYXRhS2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwga2V5KTsKQEAgLTg2
OSw2ICs4NzAsNyBAQCB2b2lkIElEQkxldmVsREJCYWNraW5nU3RvcmU6OmRlbGV0ZUluZGV4KGlu
dDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZQogCiBib29sIElEQkxldmVsREJC
YWNraW5nU3RvcmU6OnB1dEluZGV4RGF0YUZvclJlY29yZChpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmIGtleSwg
Y29uc3QgT2JqZWN0U3RvcmVSZWNvcmRJZGVudGlmaWVyKiByZWNvcmRJZGVudGlmaWVyKQogewor
ICAgIEFTU0VSVChrZXkuaXNWYWxpZCgpKTsKICAgICBBU1NFUlQoaW5kZXhJZCA+PSBrTWluaW11
bUluZGV4SWQpOwogICAgIGNvbnN0IExldmVsREJSZWNvcmRJZGVudGlmaWVyKiBsZXZlbERCUmVj
b3JkSWRlbnRpZmllciA9IHN0YXRpY19jYXN0PGNvbnN0IExldmVsREJSZWNvcmRJZGVudGlmaWVy
Kj4ocmVjb3JkSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5jcHAKaW5kZXggNDdjOWY3ZDNkMWY0ZjFkNmEy
MjExOGY2NDE5ODFkMzU3NWVlNWRhNy4uMzNiZjRlZGYwNDcwYzlmYTBmY2U5ZmU1ZWEwNDUzMTRm
ZjUxMWNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
TGV2ZWxEQkNvZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCTGV2ZWxEQkNvZGluZy5jcHAKQEAgLTM4Nyw4ICszODcsMTAgQEAgVmVjdG9yPGNoYXI+IGVu
Y29kZUlEQktleShjb25zdCBJREJLZXkmIGtleSkKIHZvaWQgZW5jb2RlSURCS2V5KGNvbnN0IElE
QktleSYga2V5LCBWZWN0b3I8Y2hhcj4mIGludG8pCiB7CiAgICAgc2l6ZV90IHByZXZpb3VzU2l6
ZSA9IGludG8uc2l6ZSgpOworICAgIEFTU0VSVChrZXkuaXNWYWxpZCgpKTsKICAgICBzd2l0Y2gg
KGtleS50eXBlKCkpIHsKICAgICBjYXNlIElEQktleTo6SW52YWxpZFR5cGU6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIGNhc2UgSURCS2V5OjpNaW5UeXBlOgogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgaW50by5hcHBlbmQoZW5jb2RlQnl0ZShrSURC
S2V5TnVsbFR5cGVCeXRlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKaW5kZXggMmFmY2IzMGUxNDg1MDJkOTFiNzg3NmNkYzYx
MjJiZjJmNTI1NDhkOC4uNzIyZGFlMDZkMGU2Y2ExY2JiM2NlMGM4OTg1YWVhNWIxNDU5OTJhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0
b3JlLmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2Jq
ZWN0U3RvcmU6OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzCiAgICAg
ICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlmICgha2V5IHx8IChrZXktPnR5cGUoKSA9PSBJ
REJLZXk6OkludmFsaWRUeXBlKSkgeworICAgIGlmICgha2V5IHx8ICFrZXktPmlzVmFsaWQoKSkg
ewogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEQVRBX0VSUjsKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQpAQCAtMTMzLDcgKzEzMyw3IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gSURCT2JqZWN0U3RvcmU6OmFkZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQ
YXNzCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlmIChrZXkgJiYgKGtleS0+dHlw
ZSgpID09IElEQktleTo6SW52YWxpZFR5cGUpKSB7CisgICAgaWYgKGtleSAmJiAha2V5LT5pc1Zh
bGlkKCkpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6REFUQV9FUlI7CiAg
ICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTE2Niw3ICsxNjYsNyBAQCBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpwdXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgUGFzcwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBpZiAoa2V5ICYmIChr
ZXktPnR5cGUoKSA9PSBJREJLZXk6OkludmFsaWRUeXBlKSkgeworICAgIGlmIChrZXkgJiYgIWtl
eS0+aXNWYWxpZCgpKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFf
RVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3Bw
CmluZGV4IGRjNDEzNDM5YTdlNWZjZWZjZDcxYmExMWU5ZWEzNmI3ZmI3YzBjZGYuLjhhYjU4MmEy
MGU4MGI1OGI1YzZlNDE3OWMxNTQ3NzBjZDZhMzI3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZElt
cGwuY3BwCkBAIC0yNjQsNiArMjY0LDkgQEAgdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
OjpwdXRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjwKICAgICAg
ICAgY29uc3QgUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+JiBpbmRleCA9IGl0LT5zZWNvbmQ7
CiAKICAgICAgICAgUmVmUHRyPElEQktleT4gaW5kZXhLZXkgPSBmZXRjaEtleUZyb21LZXlQYXRo
KHZhbHVlLmdldCgpLCBpbmRleC0+a2V5UGF0aCgpKTsKKyAgICAgICAgaWYgKGluZGV4S2V5ICYm
IGluZGV4LT5tdWx0aUVudHJ5KCkgJiYgaW5kZXhLZXktPnR5cGUoKSA9PSBJREJLZXk6OkFycmF5
VHlwZSkKKyAgICAgICAgICAgIGluZGV4S2V5ID0gSURCS2V5OjpjcmVhdGVNdWx0aUVudHJ5QXJy
YXkoaW5kZXhLZXktPmFycmF5KCkpOworCiAgICAgICAgIGlmICghaW5kZXhLZXkgfHwgIWluZGV4
S2V5LT5pc1ZhbGlkKCkpIHsKICAgICAgICAgICAgIC8vIE51bGwvaW52YWxpZCBrZXlzIG5vdCBh
ZGRlZCB0byBpbmRleDsgbnVsbCBlbnRyeSBrZWVwcyBpdGVyYXRvci92ZWN0b3IgaW5kZXhlcyBj
b25zaXN0ZW50LgogICAgICAgICAgICAgaW5kZXhLZXkuY2xlYXIoKTsKQEAgLTI3OSw3ICsyODIs
NyBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OnB1dEludGVybmFsKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPAogICAgICAgICB9CiAKICAgICAgICAgaWYgKGlu
ZGV4LT5tdWx0aUVudHJ5KCkgJiYgaW5kZXhLZXktPnR5cGUoKSA9PSBJREJLZXk6OkFycmF5VHlw
ZSkgewotICAgICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGluZGV4S2V5LT5hcnJheSgp
LnNpemUoKTsgKytqKSB7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGluZGV4
S2V5LT5hcnJheSgpLnNpemUoKTsgKytqKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFpbmRleC0+
YWRkaW5nS2V5QWxsb3dlZChpbmRleEtleS0+YXJyYXkoKVtqXS5nZXQoKSwga2V5LmdldCgpKSkg
ewogICAgICAgICAgICAgICAgICAgICBvYmplY3RTdG9yZS0+cmVzZXRBdXRvSW5jcmVtZW50S2V5
Q2FjaGUoKTsKICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFi
YXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6REFUQV9FUlIsICJPbmUgb2Yg
dGhlIGRlcml2ZWQgKGZyb20gYSBrZXlQYXRoKSBrZXlzIGZvciBhbiBpbmRleCBkb2VzIG5vdCBz
YXRpc2Z5IGl0cyB1bmlxdWVuZXNzIHJlcXVpcmVtZW50cy4iKSk7CkBAIC00NDIsOCArNDQ1LDEw
IEBAIHB1YmxpYzoKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChtX2luZGV4
LT5tdWx0aUVudHJ5KCkpOwogICAgICAgICAgICAgQVNTRVJUKGluZGV4S2V5LT50eXBlKCkgPT0g
SURCS2V5OjpBcnJheVR5cGUpOworCisgICAgICAgICAgICBpbmRleEtleSA9IElEQktleTo6Y3Jl
YXRlTXVsdGlFbnRyeUFycmF5KGluZGV4S2V5LT5hcnJheSgpKTsKICAgICAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgaW5kZXhLZXktPmFycmF5KCkuc2l6ZSgpOyArK2kpIHsKLSAgICAg
ICAgICAgICAgICBpZiAoIW1faW5kZXgtPmFkZGluZ0tleUFsbG93ZWQoaW5kZXhLZXkuZ2V0KCkp
KQorICAgICAgICAgICAgICAgIGlmICghbV9pbmRleC0+YWRkaW5nS2V5QWxsb3dlZChpbmRleEtl
eS0+YXJyYXkoKVtpXS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgICAgICAgICBpZiAoIW1fYmFja2luZ1N0b3JlLnB1dEluZGV4RGF0YUZvclJlY29y
ZChtX2RhdGFiYXNlSWQsIG1fb2JqZWN0U3RvcmVJZCwgbV9pbmRleC0+aWQoKSwgKmluZGV4S2V5
LT5hcnJheSgpW2ldLCByZWNvcmRJZGVudGlmaWVyKSkKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmlu
ZGluZ1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5n
VXRpbGl0aWVzLmNwcAppbmRleCBkMzE2YWQ3Mjk5ZjRlMjgzMTQ1OTVlMzVkYzNmZDA1MDcyODNj
NjNjLi5lZTc2ZWUyOWEwMDFkNmNkNzZjNWYxN2FkMzVlY2I3ZmNjNjc0YzI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcApAQCAt
NjUsOCArNjUsOSBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJREJLZXk+IGNyZWF0ZUlEQktleUZyb21W
YWx1ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIFZlYwogICAgICAgICAgICAgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gaXRlbSA9IGFycmF5LT5HZXQodjg6OkludDMyOjpOZXcoaSkpOwogICAg
ICAgICAgICAgUmVmUHRyPElEQktleT4gc3Via2V5ID0gY3JlYXRlSURCS2V5RnJvbVZhbHVlKGl0
ZW0sIHN0YWNrKTsKICAgICAgICAgICAgIGlmICghc3Via2V5KQotICAgICAgICAgICAgICAgIHJl
dHVybiAwOwotICAgICAgICAgICAgc3Via2V5cy5hcHBlbmQoc3Via2V5KTsKKyAgICAgICAgICAg
ICAgICBzdWJrZXlzLmFwcGVuZChJREJLZXk6OmNyZWF0ZUludmFsaWQoKSk7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgc3Via2V5cy5hcHBlbmQoc3Via2V5KTsKICAgICAgICAg
fQogCiAgICAgICAgIHN0YWNrLnJlbW92ZUxhc3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQktleS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSURCS2V5LmgKaW5kZXggYTc4MTQyMzQ1OTQwYmRhMTY4YTA2NzJkMzdmZTc0MGFj
YWNlNDMxYy4uMGI3MDRjYWMyODQ0NjFjYzM2MTAxYWU2MWFlZDY1OGQ0MDM2MTkwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCS2V5LmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCS2V5LmgKQEAgLTc5LDYgKzc5LDcgQEAg
cHVibGljOgogICAgIH07CiAKICAgICBXRUJLSVRfRVhQT1JUIFR5cGUgdHlwZSgpIGNvbnN0Owor
ICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CiAgICAgV0VCS0lUX0VYUE9S
VCBXZWJWZWN0b3I8V2ViSURCS2V5PiBhcnJheSgpIGNvbnN0OyAvLyBPbmx5IHZhbGlkIGZvciBB
cnJheVR5cGUuCiAgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgc3RyaW5nKCkgY29uc3Q7IC8v
IE9ubHkgdmFsaWQgZm9yIFN0cmluZ1R5cGUuCiAgICAgV0VCS0lUX0VYUE9SVCBkb3VibGUgZGF0
ZSgpIGNvbnN0OyAvLyBPbmx5IHZhbGlkIGZvciBEYXRlVHlwZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJLZXkuY3BwCmluZGV4IDI1YmU2YzUyZjc0NDUzZDdkMzZhYmRjMDgyZDYy
NDgzYjQ0OGRmMGIuLmJlOTQ2YmU0ZDQ5M2NmOTk5YWEyMDQ2MmJmYjgyNTBkZjcwMWMxYTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5LmNwcApAQCAtMTk5LDYgKzE5OSwx
MyBAQCBXZWJJREJLZXk6OlR5cGUgV2ViSURCS2V5Ojp0eXBlKCkgY29uc3QKICAgICByZXR1cm4g
VHlwZShtX3ByaXZhdGUtPnR5cGUoKSk7CiB9CiAKK2Jvb2wgV2ViSURCS2V5Ojppc1ZhbGlkKCkg
Y29uc3QKK3sKKyAgICBpZiAoIW1fcHJpdmF0ZS5nZXQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIHJldHVybiBtX3ByaXZhdGUtPmlzVmFsaWQoKTsKK30KKwogV2ViVmVjdG9yPFdlYklE
QktleT4gV2ViSURCS2V5OjphcnJheSgpIGNvbnN0CiB7CiAgICAgV2ViVmVjdG9yPFdlYklEQktl
eT4ga2V5czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktl
eVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleVJhbmdlLmNw
cAppbmRleCBmZWYwZDNjM2RhZWFhNTQwYmFiNzM4M2I1YjM3MDQzMmFkNjJmOGZjLi40MTkyNjFj
MjIzZWRkNjU1ZGQ0NTVkZjY0NWEzNjcxY2FjZjA0NDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJLZXlSYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCS2V5UmFuZ2UuY3BwCkBAIC00Myw3ICs0Myw3IEBAIHZvaWQgV2Vi
SURCS2V5UmFuZ2U6OmFzc2lnbihjb25zdCBXZWJJREJLZXlSYW5nZSYgb3RoZXIpCiAKIHZvaWQg
V2ViSURCS2V5UmFuZ2U6OmFzc2lnbihjb25zdCBXZWJJREJLZXkmIGxvd2VyLCBjb25zdCBXZWJJ
REJLZXkmIHVwcGVyLCBib29sIGxvd2VyT3BlbiwgYm9vbCB1cHBlck9wZW4pCiB7Ci0gICAgaWYg
KGxvd2VyLnR5cGUoKSA9PSBXZWJJREJLZXk6OkludmFsaWRUeXBlICYmIHVwcGVyLnR5cGUoKSA9
PSBXZWJJREJLZXk6OkludmFsaWRUeXBlKQorICAgIGlmICghbG93ZXIuaXNWYWxpZCgpICYmICF1
cHBlci5pc1ZhbGlkKCkpCiAgICAgICAgIG1fcHJpdmF0ZSA9IDA7CiAgICAgZWxzZQogICAgICAg
ICBtX3ByaXZhdGUgPSBJREJLZXlSYW5nZTo6Y3JlYXRlKGxvd2VyLCB1cHBlciwgbG93ZXJPcGVu
ID8gSURCS2V5UmFuZ2U6Okxvd2VyQm91bmRPcGVuIDogSURCS2V5UmFuZ2U6Okxvd2VyQm91bmRD
bG9zZWQsIHVwcGVyT3BlbiA/IElEQktleVJhbmdlOjpVcHBlckJvdW5kT3BlbiA6IElEQktleVJh
bmdlOjpVcHBlckJvdW5kQ2xvc2VkKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhYmZkYmIwOTM4MTQ0MDgzNWMyZjBmNjQy
OWYwMTk3NzQwYTc5OGJjLi4xODBlYzM0Yjk3YmZhYmU5ZTI1ZjE5NzdhMzQzODYwMWRmZGVkMTM0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDYtMTkgIEFsZWMgRmxldHQgIDxhbGVjZmxl
dHRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogSW1wbGVtZW50IHNwZWMgYmVo
YXZpb3IgZm9yIG11bHRpRW50cnkgaW5kZXhlcyB3aXRoIGludmFsaWQvZHVwbGljYXRlIHN1Ymtl
eXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MTIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9pbmRleC1tdWx0aWVudHJ5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW5kZXgtbXVsdGllbnRyeS5qczoKKyAgICAgICAg
KGFkZERhdGEpOgorICAgICAgICAodmVyaWZ5SW5kZXhlcy5yZXF1ZXN0Lm9uc3VjY2Vzcyk6Cisg
ICAgICAgICh2ZXJpZnlJbmRleGVzKToKKyAgICAgICAgKHZlcmlmeVVuaXF1ZUNvbnN0cmFpbnQu
cmVxdWVzdC5vbnN1Y2Nlc3MucmVxdWVzdC5vbnN1Y2Nlc3MucmVxdWVzdC5vbmVycm9yKToKKyAg
ICAgICAgKHZlcmlmeVVuaXF1ZUNvbnN0cmFpbnQucmVxdWVzdC5vbnN1Y2Nlc3MucmVxdWVzdC5v
bnN1Y2Nlc3MpOgorICAgICAgICAodmVyaWZ5VW5pcXVlQ29uc3RyYWludC5yZXF1ZXN0Lm9uc3Vj
Y2Vzcyk6CisgICAgICAgICh2ZXJpZnlVbmlxdWVDb25zdHJhaW50KToKKwogMjAxMi0wNi0xOCAg
WmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgR1RLIGdhcmRlbmluZywgdXBkYXRpbmcgYmFzZWxpbmVzIGFmdGVyIHJvbGxvdXRzIGluIHIx
MjA2MjcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1t
dWx0aWVudHJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
ZGV4LW11bHRpZW50cnktZXhwZWN0ZWQudHh0CmluZGV4IDNiOGIwN2IzODE0NmU4ODM0MjI2MDEy
MDcwMmFmNTM1NjM3MWY3MGMuLjgyY2JkNDlmZWJjZjE1MTM5OGFiYmY3MzFmNWU3N2NmNjFkNjA2
ZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LW11bHRp
ZW50cnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
ZGV4LW11bHRpZW50cnktZXhwZWN0ZWQudHh0CkBAIC0yNSw2ICsyNSw4IEBAIHRyYW5zYWN0aW9u
Lm9iamVjdFN0b3JlKCdzdG9yZScpLnB1dCh7eDogWzcsIDgsIDldLCB5OiAnYSd9LCAnZm9vJykK
IE5vdyBvdmVyd3JpdGUgdGhlbSB3aXRoIHdoYXQgd2UncmUgZXhwZWN0aW5nCiB0cmFuc2FjdGlv
bi5vYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoe3g6IFsxLCAyLCAzXSwgeTogJ2EnfSwgJ2Zvbycp
CiB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoe3g6IFs0LCA1LCA2XSwgeTog
J2InfSwgJ2JhcicpCit0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoe3g6IFs3
LCA3LCA4LCA3XSwgeTogJ2MnfSwgJ2JheicpCit0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3Rv
cmUnKS5wdXQoe3g6IFtudWxsLCA5LCA5XSwgeTogJ2QnfSwgJ2Jsb29wJykKIAogVmVyaWZ5aW5n
IGluZGV4OiBpbmRleAogdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbihbJ3N0b3JlJ10sICdy
ZWFkb25seScpCkBAIC0zNCwzMSArMzYsNTUgQEAgUEFTUyBleCBpcyBub24tbnVsbC4KIFBBU1Mg
Y3Vyc29yLmtleSBpcyAxCiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJmb28iCiBQQVNTIGN1
cnNvci52YWx1ZS55IGlzICJhIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2ZW50LnRh
cmdldC5yZXN1bHQKIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5rZXkgaXMgMgog
UEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiZm9vIgogUEFTUyBjdXJzb3IudmFsdWUueSBpcyAi
YSIKK2N1cnNvci5jb250aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CiBQQVNT
IGV4IGlzIG5vbi1udWxsLgogUEFTUyBjdXJzb3Iua2V5IGlzIDMKIFBBU1MgY3Vyc29yLnByaW1h
cnlLZXkgaXMgImZvbyIKIFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImEiCitjdXJzb3IuY29udGlu
dWUoKQogY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleCBpcyBub24tbnVsbC4K
IFBBU1MgY3Vyc29yLmtleSBpcyA0CiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJiYXIiCiBQ
QVNTIGN1cnNvci52YWx1ZS55IGlzICJiIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5rZXkg
aXMgNQogUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmFyIgogUEFTUyBjdXJzb3IudmFsdWUu
eSBpcyAiYiIKK2N1cnNvci5jb250aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0
CiBQQVNTIGV4IGlzIG5vbi1udWxsLgogUEFTUyBjdXJzb3Iua2V5IGlzIDYKIFBBU1MgY3Vyc29y
LnByaW1hcnlLZXkgaXMgImJhciIKIFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImIiCitjdXJzb3Iu
Y29udGludWUoKQorY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBleCBpcyBub24t
bnVsbC4KK1BBU1MgY3Vyc29yLmtleSBpcyA3CitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJi
YXoiCitQQVNTIGN1cnNvci52YWx1ZS55IGlzICJjIgorY3Vyc29yLmNvbnRpbnVlKCkKK2N1cnNv
ciA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZXggaXMgbm9uLW51bGwuCitQQVNTIGN1cnNv
ci5rZXkgaXMgOAorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmF6IgorUEFTUyBjdXJzb3Iu
dmFsdWUueSBpcyAiYyIKK2N1cnNvci5jb250aW51ZSgpCitjdXJzb3IgPSBldmVudC50YXJnZXQu
cmVzdWx0CitQQVNTIGV4IGlzIG5vbi1udWxsLgorUEFTUyBjdXJzb3Iua2V5IGlzIDkKK1BBU1Mg
Y3Vyc29yLnByaW1hcnlLZXkgaXMgImJsb29wIgorUEFTUyBjdXJzb3IudmFsdWUueSBpcyAiZCIK
K2N1cnNvci5jb250aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CiBQQVNTIGV4
cGVjdGVkLmxlbmd0aCBpcyAwCiAKQEAgLTcxLDcgKzk3LDcgQEAgdHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoJ3N0b3JlLXVuaXF1ZScpLnB1dCh7eDogWzEsIDIsIDddLCB5OiAnYSd9LCAnZm9vJykK
IHN1Y2Nlc3MhCiBUaGlzIHNob3VsZCBmYWlsIHRoZSB1bmlxdWVuZXNzIGNvbnN0cmFpbnQgb24g
dGhlIGluZGV4LCBhbmQgZmFpbDoKIHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZS11bmlx
dWUnKS5wdXQoe3g6IFs1LCAyXSwgeTogJ2MnfSwgJ3Nob3VsZCBmYWlsJykKLVJlcXVlc3QgZmFp
bGVkLCBhcyBleHBlY3RlZAorUmVxdWVzdCBmYWlsZWQsIGFzIGV4cGVjdGVkIChEYXRhRXJyb3Ip
CiBUcmFuc2FjdGlvbiBhYm9ydGVkIGFzIGV4cGVjdGVkCiAKIENyZWF0ZSBhbiBpbmRleCBvbiBh
IHBvcHVsYXRlZCBzdG9yZQpAQCAtODksMzEgKzExNSw1NSBAQCBQQVNTIGV4IGlzIG5vbi1udWxs
LgogUEFTUyBjdXJzb3Iua2V5IGlzIDEKIFBBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgImZvbyIK
IFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImEiCitjdXJzb3IuY29udGludWUoKQogY3Vyc29yID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleCBpcyBub24tbnVsbC4KIFBBU1MgY3Vyc29yLmtl
eSBpcyAyCiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJmb28iCiBQQVNTIGN1cnNvci52YWx1
ZS55IGlzICJhIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1
bHQKIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5rZXkgaXMgMwogUEFTUyBjdXJz
b3IucHJpbWFyeUtleSBpcyAiZm9vIgogUEFTUyBjdXJzb3IudmFsdWUueSBpcyAiYSIKK2N1cnNv
ci5jb250aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CiBQQVNTIGV4IGlzIG5v
bi1udWxsLgogUEFTUyBjdXJzb3Iua2V5IGlzIDQKIFBBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMg
ImJhciIKIFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImIiCitjdXJzb3IuY29udGludWUoKQogY3Vy
c29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleCBpcyBub24tbnVsbC4KIFBBU1MgY3Vy
c29yLmtleSBpcyA1CiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJiYXIiCiBQQVNTIGN1cnNv
ci52YWx1ZS55IGlzICJiIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQKIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5rZXkgaXMgNgogUEFT
UyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmFyIgogUEFTUyBjdXJzb3IudmFsdWUueSBpcyAiYiIK
K2N1cnNvci5jb250aW51ZSgpCitjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIGV4
IGlzIG5vbi1udWxsLgorUEFTUyBjdXJzb3Iua2V5IGlzIDcKK1BBU1MgY3Vyc29yLnByaW1hcnlL
ZXkgaXMgImJheiIKK1BBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImMiCitjdXJzb3IuY29udGludWUo
KQorY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBleCBpcyBub24tbnVsbC4KK1BB
U1MgY3Vyc29yLmtleSBpcyA4CitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJiYXoiCitQQVNT
IGN1cnNvci52YWx1ZS55IGlzICJjIgorY3Vyc29yLmNvbnRpbnVlKCkKK2N1cnNvciA9IGV2ZW50
LnRhcmdldC5yZXN1bHQKK1BBU1MgZXggaXMgbm9uLW51bGwuCitQQVNTIGN1cnNvci5rZXkgaXMg
OQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmxvb3AiCitQQVNTIGN1cnNvci52YWx1ZS55
IGlzICJkIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
IFBBU1MgZXhwZWN0ZWQubGVuZ3RoIGlzIDAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9p
bmRleC1tdWx0aWVudHJ5LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2luZGV4LW11bHRpZW50cnkuanMKaW5kZXggOWUxYWQ3YTU5ZTJjY2M1NGM1NjFhMzBiYTky
ZjExMTJlYTdhMzcwZi4uOGE1YzRlN2RkZTBiN2I1YWY4ZWIyZDFmZjY4ZDQ0ODJmYmFmNTk3NSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2luZGV4
LW11bHRpZW50cnkuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2luZGV4LW11bHRpZW50cnkuanMKQEAgLTU0LDYgKzU0LDEwIEBAIGZ1bmN0aW9uIGFkZERh
dGEoKQogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAg
IHJlcXVlc3QgPSBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUnKS5w
dXQoe3g6IFs0LCA1LCA2XSwgeTogJ2InfSwgJ2JhcicpIik7CiAgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInRy
YW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLnB1dCh7eDogWzcsIDcsIDgsIDddLCB5OiAn
Yyd9LCAnYmF6JykiKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygidHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUo
J3N0b3JlJykucHV0KHt4OiBbbnVsbCwgOSwgOV0sIHk6ICdkJ30sICdibG9vcCcpIik7CisgICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiB9CiAKIGZ1bmN0aW9u
IHZlcmlmeUluZGV4ZXMoaW5kZXhOYW1lLCBjYWxsYmFjaykKQEAgLTcxLDYgKzc1LDkgQEAgZnVu
Y3Rpb24gdmVyaWZ5SW5kZXhlcyhpbmRleE5hbWUsIGNhbGxiYWNrKQogICAgICAgICB7IGtleTog
NCwgcHJpbWFyeUtleTogJ2JhcicsIHk6ICdiJyB9LAogICAgICAgICB7IGtleTogNSwgcHJpbWFy
eUtleTogJ2JhcicsIHk6ICdiJyB9LAogICAgICAgICB7IGtleTogNiwgcHJpbWFyeUtleTogJ2Jh
cicsIHk6ICdiJyB9LAorICAgICAgICB7IGtleTogNywgcHJpbWFyeUtleTogJ2JheicsIHk6ICdj
JyB9LAorICAgICAgICB7IGtleTogOCwgcHJpbWFyeUtleTogJ2JheicsIHk6ICdjJyB9LAorICAg
ICAgICB7IGtleTogOSwgcHJpbWFyeUtleTogJ2Jsb29wJywgeTogJ2QnIH0sCiAgICAgXTsKIAog
ICAgIHZhciByZXF1ZXN0ID0gZXZhbEFuZExvZygidHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0
b3JlJykuaW5kZXgoJyIgKyBpbmRleE5hbWUgKyAiJykub3BlbkN1cnNvcigpIik7CkBAIC04Myw3
ICs5MCw3IEBAIGZ1bmN0aW9uIHZlcmlmeUluZGV4ZXMoaW5kZXhOYW1lLCBjYWxsYmFjaykKICAg
ICAgICAgICAgIHNob3VsZEJlKCJjdXJzb3Iua2V5IiwgU3RyaW5nKGV4LmtleSkpOwogICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJzb3IucHJpbWFyeUtleSIsIGV4LnByaW1h
cnlLZXkpOwogICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJzb3IudmFsdWUu
eSIsIGV4LnkpOwotICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICBl
dmFsQW5kTG9nKCJjdXJzb3IuY29udGludWUoKSIpOwogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgc2hvdWxkQmUoImV4cGVjdGVkLmxlbmd0aCIsICIwIik7CiAgICAgICAgIH0KQEAgLTEx
Myw3ICsxMjAsOCBAQCBmdW5jdGlvbiB2ZXJpZnlVbmlxdWVDb25zdHJhaW50KCkKICAgICAgICAg
ICAgIGRlYnVnKCJUaGlzIHNob3VsZCBmYWlsIHRoZSB1bmlxdWVuZXNzIGNvbnN0cmFpbnQgb24g
dGhlIGluZGV4LCBhbmQgZmFpbDoiKTsKICAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJ0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUtdW5pcXVlJykucHV0KHt4OiBbNSwgMl0s
IHk6ICdjJ30sICdzaG91bGQgZmFpbCcpIik7CiAgICAgICAgICAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7Ci0gICAgICAgICAgICByZXF1ZXN0Lm9uZXJy
b3IgPSBmdW5jdGlvbigpIHsgZGVidWcoIlJlcXVlc3QgZmFpbGVkLCBhcyBleHBlY3RlZCIpOyB9
OworICAgICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24oKSB7IGRlYnVnKCJSZXF1
ZXN0IGZhaWxlZCwgYXMgZXhwZWN0ZWQgKCIgKyByZXF1ZXN0LmVycm9yLm5hbWUgKyAiKSIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICB9Owog
ICAgIH07CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148414</attachid>
            <date>2012-06-19 13:59:26 -0700</date>
            <delta_ts>2012-06-19 14:30:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86123-20120619135926.patch</filename>
            <type>text/plain</type>
            <size>26606</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FkM2Q0NWJmZWU1OTRh
YTBhMjg3NmIwYTFkZjg4NDZhZTc2OTU2My4uNjQzMDJkYTY1ODFmMWFjNzVmNDE1MDIyOGE1Mzcy
MWQyZTg4OTBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTA2LTE5ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IElt
cGxlbWVudCBzcGVjIGJlaGF2aW9yIGZvciBtdWx0aUVudHJ5IGluZGV4ZXMgd2l0aCBpbnZhbGlk
L2R1cGxpY2F0ZSBzdWJrZXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NjEyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIERpc3Rpbmd1aXNoIGJldHdlZW4gYW4gYWN0dWFsIGludmFsaWQgSURCS2V5LCBh
bmQgYW4gYXJyYXkgb2YKKyAgICAgICAgcG9zc2libHktaW52YWxpZCBzdWJrZXlzIGJ5IG1ha2lu
ZyBJREJLZXk6OmlzVmFsaWQoKSBjaGVjayBzdWJrZXlzCisgICAgICAgIGlmIHRoZSB0eXBlIGlz
IGFuIGFycmF5LgorCisgICAgICAgIEludHJvZHVjZSBhIG5ldyB3YXkgdG8gdHJhbnNmb3JtIGFu
IElEQktleSBpbnRvIGEKKyAgICAgICAgbXVsdGlFbnRyeS1zcGVjaWZpYyBJREJLZXksIChJREJL
ZXk6OmNyZWF0ZU11bHRpRW50cnlBcnJheSkKKyAgICAgICAgdGhyb3dpbmcgb3V0IGR1cGxpY2F0
ZXMgYW5kIGludmFsaWQga2V5cy4gVXNlIGl0IHdoZW4gc3RvcmluZworICAgICAgICBpbmRleCBl
bnRyaWVzIGZvciBtdWx0aUVudHJ5IGluZGV4ZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOiBl
eGlzdGluZyB0ZXN0cyBoYXZlIGJlZW4gYWx0ZXJlZCB0byBpbmNsdWRlIG5ldyBiZWhhdmlvci4K
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJDdXJzb3I6OmNvbnRpbnVlRnVuY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeTo6
Y21wKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJJbmRleDo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4Ojpn
ZXRLZXkpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJLZXk6OmlzVmFsaWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5Lmg6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXk6
OmNyZWF0ZU11bHRpRW50cnlBcnJheSk6CisgICAgICAgIChJREJLZXkpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQktl
eVJhbmdlOjpvbmx5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdlOjpsb3dlckJvdW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdlOjp1cHBlckJvdW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQktleVJhbmdlOjpib3VuZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJMZXZl
bERCQmFja2luZ1N0b3JlOjpwdXRPYmplY3RTdG9yZVJlY29yZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJMZXZlbERCQmFja2luZ1N0b3JlOjpwdXRJbmRleERhdGFGb3JSZWNvcmQpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCTGV2ZWxEQkNvZGluZzo6ZW5jb2RlSURCS2V5KToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmpl
Y3RTdG9yZTo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjphZGQpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6OnB1dCk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpwdXRJbnRlcm5hbCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUlEQktleUZyb21WYWx1ZSk6CisKIDIwMTItMDYtMTgg
IEpvb25lIEh1ciAgPGpvb25lLmh1ckBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gRm9udGNv
bmZpZyBjYW4ndCBiZSBsaW5rZWQgcHJvcGVybHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggOTk5MmUyOGU3MTM4OTA5ZTEyNTBlMGIyNjA2MGZkMjUwYWNjODQ0NS4uOGExZTc3OWUwMWEz
YTRjNzI2ODU5NDZjOWY5ZTE5YzE1Y2E1NWMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOSBAQAorMjAxMi0wNi0xOSAgQWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBJbXBsZW1lbnQgc3BlYyBiZWhhdmlvciBm
b3IgbXVsdGlFbnRyeSBpbmRleGVzIHdpdGggaW52YWxpZC9kdXBsaWNhdGUgc3Via2V5cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYxMjMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbWF0Y2hpbmcg
aXNWYWxpZCgpIHRvIFdlYklEQktleSB0byBtYXRjaCB0aGUgb25lIGluIElEQktleS4KKworICAg
ICAgICAqIHB1YmxpYy9XZWJJREJLZXkuaDoKKyAgICAgICAgKiBzcmMvV2ViSURCS2V5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5Ojppc1ZhbGlkKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgICogc3JjL1dlYklEQktleVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
SURCS2V5UmFuZ2U6OmFzc2lnbik6CisKIDIwMTItMDYtMTggIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEdlc3R1cmVQaW5jaEJlZ2luIGFuZCBm
cmllbmRzIGFyZSBnZXN0dXJlIGV2ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggOGQyMThlZTg1NTc4ZTgyZTFmN2U0MWMwOTZiOWRl
MmM1ZjljMjA2MC4uMjc1OTUxNGVmZjc0MjI0YzYxNzk5Y2Y1ZjYwNzc5ZmRjZTRkMjQyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0x
ODMsNyArMTgzLDcgQEAgdm9pZCBJREJDdXJzb3I6OmFkdmFuY2UodW5zaWduZWQgbG9uZyBjb3Vu
dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB2b2lkIElEQkN1cnNvcjo6Y29udGludWVGdW5jdGlvbihQ
YXNzUmVmUHRyPElEQktleT4ga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJREJfVFJB
Q0UoIklEQkN1cnNvcjo6Y29udGludWUiKTsKLSAgICBpZiAoa2V5ICYmIChrZXktPnR5cGUoKSA9
PSBJREJLZXk6OkludmFsaWRUeXBlKSkgeworICAgIGlmIChrZXkgJiYgIWtleS0+aXNWYWxpZCgp
KSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmNwcAppbmRleCAxODExNmY1YTNlYTk3ODVkMWI2OWQ4MjhhZjNhZGNkZTFiNmZj
NmU5Li5kM2RlOGY2ZmE1YjRlNzMzMzY0MGM2MzEzZDZkNGVmZjhlZTlkYjUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcApAQCAtMTMzLDcg
KzEzMyw3IEBAIHNob3J0IElEQkZhY3Rvcnk6OmNtcChQYXNzUmVmUHRyPElEQktleT4gZmlyc3Qs
IFBhc3NSZWZQdHI8SURCS2V5PiBzZWNvbmQsIEV4Y2VwCiAgICAgQVNTRVJUKGZpcnN0KTsKICAg
ICBBU1NFUlQoc2Vjb25kKTsKIAotICAgIGlmIChmaXJzdC0+dHlwZSgpID09IElEQktleTo6SW52
YWxpZFR5cGUgfHwgc2Vjb25kLT50eXBlKCkgPT0gSURCS2V5OjpJbnZhbGlkVHlwZSkgeworICAg
IGlmICghZmlyc3QtPmlzVmFsaWQoKSB8fCAhc2Vjb25kLT5pc1ZhbGlkKCkpIHsKICAgICAgICAg
ZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6REFUQV9FUlI7CiAgICAgICAgIHJldHVybiAwOwog
ICAgIH0gICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJJbmRleC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5j
cHAKaW5kZXggZDZkNzYyMmJiMmE0YTliZDhlN2VhZDA4OWRmYjU1NzQ4YjFiZGVhMi4uOTc3NmZm
MmE5NzE1ZWM2NzlmMDgzZTg4MDljMDFlZDRmMTI0NWEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcApAQCAtMTkwLDcgKzE5MCw3IEBAIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBQYXNzUmVmUHRyCiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklE
Ql9JTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIGlmIChr
ZXkgJiYgKGtleS0+dHlwZSgpID09IElEQktleTo6SW52YWxpZFR5cGUpKSB7CisgICAgaWYgKGtl
eSAmJiAha2V5LT5pc1ZhbGlkKCkpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6REFUQV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTIzMCw3ICsyMzAsNyBA
QCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpnZXRLZXkoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgUGFzc1JlZgogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0
aW9uOjpJREJfSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAg
ICBpZiAoa2V5ICYmIChrZXktPnR5cGUoKSA9PSBJREJLZXk6OkludmFsaWRUeXBlKSkgeworICAg
IGlmIChrZXkgJiYgIWtleS0+aXNWYWxpZCgpKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VF
eGNlcHRpb246OkRBVEFfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNwcAppbmRleCA1OTg2ODZlMWEwMzlhZGJm
ZGNiMjQ3N2ZmZmUwOTExNTM4YzY4MzFjLi5iNzZlZDJjZWUzMDVkNjI4N2Y5ZGIxM2UxMGRkMTA4
ZTYxZDY4NGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5j
cHAKQEAgLTQwLDYgKzQwLDIxIEBAIElEQktleTo6fklEQktleSgpCiB7CiB9CiAKK2Jvb2wgSURC
S2V5Ojppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICBpZiAobV90eXBlID09IEludmFsaWRUeXBlKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobV90eXBlID09IEFycmF5VHlwZSkgewor
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fYXJyYXkuc2l6ZSgpOyBpKyspIHsKKyAg
ICAgICAgICAgIGlmICghbV9hcnJheVtpXS0+aXNWYWxpZCgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiBp
bnQgSURCS2V5Ojpjb21wYXJlKGNvbnN0IElEQktleSogb3RoZXIpIGNvbnN0CiB7CiAgICAgQVNT
RVJUKG90aGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQktleS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmgKaW5k
ZXggNDBjZTgzM2Y5MDg5NDM1MjExZTQ5NzFkMzU3MzBmYzJjYzU4NGIxNy4uY2JmZGYxZDRmYzU2
ZWY0NWFmNTIwYWEyNmJkMTUwOWE2NjZmNWY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCS2V5LmgKQEAgLTczLDYgKzczLDMyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGlkYktleS5yZWxlYXNlKCk7CiAgICAgfQogCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURC
S2V5PiBjcmVhdGVNdWx0aUVudHJ5QXJyYXkoY29uc3QgS2V5QXJyYXkmIGFycmF5KQorICAgIHsK
KyAgICAgICAgUmVmUHRyPElEQktleT4gaWRiS2V5ID0gYWRvcHRSZWYobmV3IElEQktleSgpKTsK
KyAgICAgICAgaWRiS2V5LT5tX3R5cGUgPSBBcnJheVR5cGU7CisgICAgICAgIEtleUFycmF5JiBy
ZXN1bHQgPSBpZGJLZXktPm1fYXJyYXk7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBhcnJheS5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKCFhcnJheVtpXS0+aXNWYWxp
ZCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBib29sIHNraXAg
PSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgcmVzdWx0LnNpemUo
KTsgaisrKSB7CisgICAgICAgICAgICAgICAgaWYgKGFycmF5W2ldLT5pc0VxdWFsKHJlc3VsdFtq
XS5nZXQoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgc2tpcCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGlmICghc2tpcCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYXJyYXlb
aV0pOworICAgICAgICAgICAgICAgIGlkYktleS0+bV9zaXplRXN0aW1hdGUgKz0gYXJyYXlbaV0t
Pm1fc2l6ZUVzdGltYXRlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIEFTU0VS
VChpZGJLZXktPmlzVmFsaWQoKSk7CisgICAgICAgIHJldHVybiBpZGJLZXkucmVsZWFzZSgpOwor
ICAgIH0KKwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlQXJyYXkoY29uc3Qg
S2V5QXJyYXkmIGFycmF5KQogICAgIHsKICAgICAgICAgUmVmUHRyPElEQktleT4gaWRiS2V5ID0g
YWRvcHRSZWYobmV3IElEQktleSgpKTsKQEAgLTk4LDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICB9
OwogCiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0gICAgYm9vbCBp
c1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEludmFsaWRUeXBlOyB9CisgICAgYm9v
bCBpc1ZhbGlkKCkgY29uc3Q7CiAKICAgICBjb25zdCBLZXlBcnJheSYgYXJyYXkoKSBjb25zdAog
ICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktl
eVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdl
LmNwcAppbmRleCAwYzIzMjZlNWQ2NDNiMzA2NDI5NTExOTQ5ZTI5ZmYzZmFjN2UyMGVjLi5lODAx
M2YxMjRlMTEwYTg3MGNjYzg3MGJkMjRmZjM2YmFmNDdiMTkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwCkBAIC00NCw3ICs0NCw3IEBA
IElEQktleVJhbmdlOjpJREJLZXlSYW5nZShQYXNzUmVmUHRyPElEQktleT4gbG93ZXIsIFBhc3NS
ZWZQdHI8SURCS2V5PiB1cHBlciwgTG93CiBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBJREJLZXlS
YW5nZTo6b25seShQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICBSZWZQdHI8SURCS2V5PiBrZXkgPSBwcnBLZXk7Ci0gICAgaWYgKGtleSAmJiAoa2V5
LT50eXBlKCkgPT0gSURCS2V5OjpJbnZhbGlkVHlwZSkpIHsKKyAgICBpZiAoa2V5ICYmICFrZXkt
PmlzVmFsaWQoKSkgewogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEQVRBX0VS
UjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtNTQsNyArNTQsNyBAQCBQYXNzUmVmUHRy
PElEQktleVJhbmdlPiBJREJLZXlSYW5nZTo6b25seShQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5
LCBFeGNlcHRpb25DbwogCiBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBJREJLZXlSYW5nZTo6bG93
ZXJCb3VuZChQYXNzUmVmUHRyPElEQktleT4gYm91bmQsIGJvb2wgb3BlbiwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7Ci0gICAgaWYgKGJvdW5kICYmIChib3VuZC0+dHlwZSgpID09IElEQktleTo6SW52
YWxpZFR5cGUpKSB7CisgICAgaWYgKGJvdW5kICYmICFib3VuZC0+aXNWYWxpZCgpKSB7CiAgICAg
ICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSOwogICAgICAgICByZXR1cm4g
MDsKICAgICB9CkBAIC02NCw3ICs2NCw3IEBAIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IElEQktl
eVJhbmdlOjpsb3dlckJvdW5kKFBhc3NSZWZQdHI8SURCS2V5PiBib3VuZCwgYm9vbCBvCiAKIFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+IElEQktleVJhbmdlOjp1cHBlckJvdW5kKFBhc3NSZWZQdHI8
SURCS2V5PiBib3VuZCwgYm9vbCBvcGVuLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAo
Ym91bmQgJiYgKGJvdW5kLT50eXBlKCkgPT0gSURCS2V5OjpJbnZhbGlkVHlwZSkpIHsKKyAgICBp
ZiAoYm91bmQgJiYgIWJvdW5kLT5pc1ZhbGlkKCkpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6REFUQV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTc0LDcg
Kzc0LDcgQEAgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gSURCS2V5UmFuZ2U6OnVwcGVyQm91bmQo
UGFzc1JlZlB0cjxJREJLZXk+IGJvdW5kLCBib29sIG8KIAogUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4gSURCS2V5UmFuZ2U6OmJvdW5kKFBhc3NSZWZQdHI8SURCS2V5PiBsb3dlciwgUGFzc1JlZlB0
cjxJREJLZXk+IHVwcGVyLCBib29sIGxvd2VyT3BlbiwgYm9vbCB1cHBlck9wZW4sIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewotICAgIGlmICgobG93ZXIgJiYgKGxvd2VyLT50eXBlKCkgPT0gSURCS2V5
OjpJbnZhbGlkVHlwZSkpIHx8ICh1cHBlciAmJiAodXBwZXItPnR5cGUoKSA9PSBJREJLZXk6Oklu
dmFsaWRUeXBlKSkpIHsKKyAgICBpZiAoKGxvd2VyICYmICFsb3dlci0+aXNWYWxpZCgpKSB8fCAo
dXBwZXIgJiYgIXVwcGVyLT5pc1ZhbGlkKCkpKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VF
eGNlcHRpb246OkRBVEFfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNraW5n
U3RvcmUuY3BwCmluZGV4IDQ5Nzc3YzYxYmYzNWNjN2I2NGQxMWYzMTVmYTIzM2Q1ZDc3Njk1ZmMu
LjhkY2I0NjA1YzBhYzdjMzAzMjE0MmVmNDQyYzIxMjYzNDM4NTliNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNraW5nU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNraW5n
U3RvcmUuY3BwCkBAIC01ODcsNiArNTg3LDcgQEAgc3RhdGljIGludDY0X3QgZ2V0TmV3VmVyc2lv
bk51bWJlcihMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGEKIAog
Ym9vbCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpwdXRPYmplY3RTdG9yZVJlY29yZChpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiBrZXksIGNv
bnN0IFN0cmluZyYgdmFsdWUsIE9iamVjdFN0b3JlUmVjb3JkSWRlbnRpZmllciogcmVjb3JkSWRl
bnRpZmllcikKIHsKKyAgICBBU1NFUlQoa2V5LmlzVmFsaWQoKSk7CiAgICAgQVNTRVJUKG1fY3Vy
cmVudFRyYW5zYWN0aW9uKTsKICAgICBpbnQ2NF90IHZlcnNpb24gPSBnZXROZXdWZXJzaW9uTnVt
YmVyKG1fY3VycmVudFRyYW5zYWN0aW9uLmdldCgpLCBkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlk
KTsKICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gb2JqZWN0U3RvcmVkYXRhS2V5ID0gT2JqZWN0U3Rv
cmVEYXRhS2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwga2V5KTsKQEAgLTg2
OSw2ICs4NzAsNyBAQCB2b2lkIElEQkxldmVsREJCYWNraW5nU3RvcmU6OmRlbGV0ZUluZGV4KGlu
dDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZQogCiBib29sIElEQkxldmVsREJC
YWNraW5nU3RvcmU6OnB1dEluZGV4RGF0YUZvclJlY29yZChpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmIGtleSwg
Y29uc3QgT2JqZWN0U3RvcmVSZWNvcmRJZGVudGlmaWVyKiByZWNvcmRJZGVudGlmaWVyKQogewor
ICAgIEFTU0VSVChrZXkuaXNWYWxpZCgpKTsKICAgICBBU1NFUlQoaW5kZXhJZCA+PSBrTWluaW11
bUluZGV4SWQpOwogICAgIGNvbnN0IExldmVsREJSZWNvcmRJZGVudGlmaWVyKiBsZXZlbERCUmVj
b3JkSWRlbnRpZmllciA9IHN0YXRpY19jYXN0PGNvbnN0IExldmVsREJSZWNvcmRJZGVudGlmaWVy
Kj4ocmVjb3JkSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5jcHAKaW5kZXggNDdjOWY3ZDNkMWY0ZjFkNmEy
MjExOGY2NDE5ODFkMzU3NWVlNWRhNy4uMzNiZjRlZGYwNDcwYzlmYTBmY2U5ZmU1ZWEwNDUzMTRm
ZjUxMWNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
TGV2ZWxEQkNvZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCTGV2ZWxEQkNvZGluZy5jcHAKQEAgLTM4Nyw4ICszODcsMTAgQEAgVmVjdG9yPGNoYXI+IGVu
Y29kZUlEQktleShjb25zdCBJREJLZXkmIGtleSkKIHZvaWQgZW5jb2RlSURCS2V5KGNvbnN0IElE
QktleSYga2V5LCBWZWN0b3I8Y2hhcj4mIGludG8pCiB7CiAgICAgc2l6ZV90IHByZXZpb3VzU2l6
ZSA9IGludG8uc2l6ZSgpOworICAgIEFTU0VSVChrZXkuaXNWYWxpZCgpKTsKICAgICBzd2l0Y2gg
KGtleS50eXBlKCkpIHsKICAgICBjYXNlIElEQktleTo6SW52YWxpZFR5cGU6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIGNhc2UgSURCS2V5OjpNaW5UeXBlOgogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgaW50by5hcHBlbmQoZW5jb2RlQnl0ZShrSURC
S2V5TnVsbFR5cGVCeXRlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKaW5kZXggMmFmY2IzMGUxNDg1MDJkOTFiNzg3NmNkYzYx
MjJiZjJmNTI1NDhkOC4uNzIyZGFlMDZkMGU2Y2ExY2JiM2NlMGM4OTg1YWVhNWIxNDU5OTJhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0
b3JlLmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2Jq
ZWN0U3RvcmU6OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzCiAgICAg
ICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlmICgha2V5IHx8IChrZXktPnR5cGUoKSA9PSBJ
REJLZXk6OkludmFsaWRUeXBlKSkgeworICAgIGlmICgha2V5IHx8ICFrZXktPmlzVmFsaWQoKSkg
ewogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEQVRBX0VSUjsKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQpAQCAtMTMzLDcgKzEzMyw3IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gSURCT2JqZWN0U3RvcmU6OmFkZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQ
YXNzCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlmIChrZXkgJiYgKGtleS0+dHlw
ZSgpID09IElEQktleTo6SW52YWxpZFR5cGUpKSB7CisgICAgaWYgKGtleSAmJiAha2V5LT5pc1Zh
bGlkKCkpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6REFUQV9FUlI7CiAg
ICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTE2Niw3ICsxNjYsNyBAQCBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpwdXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgUGFzcwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBpZiAoa2V5ICYmIChr
ZXktPnR5cGUoKSA9PSBJREJLZXk6OkludmFsaWRUeXBlKSkgeworICAgIGlmIChrZXkgJiYgIWtl
eS0+aXNWYWxpZCgpKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFf
RVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3Bw
CmluZGV4IGRjNDEzNDM5YTdlNWZjZWZjZDcxYmExMWU5ZWEzNmI3ZmI3YzBjZGYuLjhhYjU4MmEy
MGU4MGI1OGI1YzZlNDE3OWMxNTQ3NzBjZDZhMzI3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZElt
cGwuY3BwCkBAIC0yNjQsNiArMjY0LDkgQEAgdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
OjpwdXRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjwKICAgICAg
ICAgY29uc3QgUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+JiBpbmRleCA9IGl0LT5zZWNvbmQ7
CiAKICAgICAgICAgUmVmUHRyPElEQktleT4gaW5kZXhLZXkgPSBmZXRjaEtleUZyb21LZXlQYXRo
KHZhbHVlLmdldCgpLCBpbmRleC0+a2V5UGF0aCgpKTsKKyAgICAgICAgaWYgKGluZGV4S2V5ICYm
IGluZGV4LT5tdWx0aUVudHJ5KCkgJiYgaW5kZXhLZXktPnR5cGUoKSA9PSBJREJLZXk6OkFycmF5
VHlwZSkKKyAgICAgICAgICAgIGluZGV4S2V5ID0gSURCS2V5OjpjcmVhdGVNdWx0aUVudHJ5QXJy
YXkoaW5kZXhLZXktPmFycmF5KCkpOworCiAgICAgICAgIGlmICghaW5kZXhLZXkgfHwgIWluZGV4
S2V5LT5pc1ZhbGlkKCkpIHsKICAgICAgICAgICAgIC8vIE51bGwvaW52YWxpZCBrZXlzIG5vdCBh
ZGRlZCB0byBpbmRleDsgbnVsbCBlbnRyeSBrZWVwcyBpdGVyYXRvci92ZWN0b3IgaW5kZXhlcyBj
b25zaXN0ZW50LgogICAgICAgICAgICAgaW5kZXhLZXkuY2xlYXIoKTsKQEAgLTI3OSw3ICsyODIs
NyBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OnB1dEludGVybmFsKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPAogICAgICAgICB9CiAKICAgICAgICAgaWYgKGlu
ZGV4LT5tdWx0aUVudHJ5KCkgJiYgaW5kZXhLZXktPnR5cGUoKSA9PSBJREJLZXk6OkFycmF5VHlw
ZSkgewotICAgICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGluZGV4S2V5LT5hcnJheSgp
LnNpemUoKTsgKytqKSB7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGluZGV4
S2V5LT5hcnJheSgpLnNpemUoKTsgKytqKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFpbmRleC0+
YWRkaW5nS2V5QWxsb3dlZChpbmRleEtleS0+YXJyYXkoKVtqXS5nZXQoKSwga2V5LmdldCgpKSkg
ewogICAgICAgICAgICAgICAgICAgICBvYmplY3RTdG9yZS0+cmVzZXRBdXRvSW5jcmVtZW50S2V5
Q2FjaGUoKTsKICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFi
YXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6REFUQV9FUlIsICJPbmUgb2Yg
dGhlIGRlcml2ZWQgKGZyb20gYSBrZXlQYXRoKSBrZXlzIGZvciBhbiBpbmRleCBkb2VzIG5vdCBz
YXRpc2Z5IGl0cyB1bmlxdWVuZXNzIHJlcXVpcmVtZW50cy4iKSk7CkBAIC00NDIsOCArNDQ1LDEw
IEBAIHB1YmxpYzoKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChtX2luZGV4
LT5tdWx0aUVudHJ5KCkpOwogICAgICAgICAgICAgQVNTRVJUKGluZGV4S2V5LT50eXBlKCkgPT0g
SURCS2V5OjpBcnJheVR5cGUpOworCisgICAgICAgICAgICBpbmRleEtleSA9IElEQktleTo6Y3Jl
YXRlTXVsdGlFbnRyeUFycmF5KGluZGV4S2V5LT5hcnJheSgpKTsKICAgICAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgaW5kZXhLZXktPmFycmF5KCkuc2l6ZSgpOyArK2kpIHsKLSAgICAg
ICAgICAgICAgICBpZiAoIW1faW5kZXgtPmFkZGluZ0tleUFsbG93ZWQoaW5kZXhLZXkuZ2V0KCkp
KQorICAgICAgICAgICAgICAgIGlmICghbV9pbmRleC0+YWRkaW5nS2V5QWxsb3dlZChpbmRleEtl
eS0+YXJyYXkoKVtpXS5nZXQoKSkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgICAgICAgICBpZiAoIW1fYmFja2luZ1N0b3JlLnB1dEluZGV4RGF0YUZvclJlY29y
ZChtX2RhdGFiYXNlSWQsIG1fb2JqZWN0U3RvcmVJZCwgbV9pbmRleC0+aWQoKSwgKmluZGV4S2V5
LT5hcnJheSgpW2ldLCByZWNvcmRJZGVudGlmaWVyKSkKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmlu
ZGluZ1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5n
VXRpbGl0aWVzLmNwcAppbmRleCBkMzE2YWQ3Mjk5ZjRlMjgzMTQ1OTVlMzVkYzNmZDA1MDcyODNj
NjNjLi5lZTc2ZWUyOWEwMDFkNmNkNzZjNWYxN2FkMzVlY2I3ZmNjNjc0YzI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcApAQCAt
NjUsOCArNjUsOSBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJREJLZXk+IGNyZWF0ZUlEQktleUZyb21W
YWx1ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIFZlYwogICAgICAgICAgICAgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gaXRlbSA9IGFycmF5LT5HZXQodjg6OkludDMyOjpOZXcoaSkpOwogICAg
ICAgICAgICAgUmVmUHRyPElEQktleT4gc3Via2V5ID0gY3JlYXRlSURCS2V5RnJvbVZhbHVlKGl0
ZW0sIHN0YWNrKTsKICAgICAgICAgICAgIGlmICghc3Via2V5KQotICAgICAgICAgICAgICAgIHJl
dHVybiAwOwotICAgICAgICAgICAgc3Via2V5cy5hcHBlbmQoc3Via2V5KTsKKyAgICAgICAgICAg
ICAgICBzdWJrZXlzLmFwcGVuZChJREJLZXk6OmNyZWF0ZUludmFsaWQoKSk7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgc3Via2V5cy5hcHBlbmQoc3Via2V5KTsKICAgICAgICAg
fQogCiAgICAgICAgIHN0YWNrLnJlbW92ZUxhc3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQktleS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSURCS2V5LmgKaW5kZXggYTc4MTQyMzQ1OTQwYmRhMTY4YTA2NzJkMzdmZTc0MGFj
YWNlNDMxYy4uMGI3MDRjYWMyODQ0NjFjYzM2MTAxYWU2MWFlZDY1OGQ0MDM2MTkwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCS2V5LmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCS2V5LmgKQEAgLTc5LDYgKzc5LDcgQEAg
cHVibGljOgogICAgIH07CiAKICAgICBXRUJLSVRfRVhQT1JUIFR5cGUgdHlwZSgpIGNvbnN0Owor
ICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CiAgICAgV0VCS0lUX0VYUE9S
VCBXZWJWZWN0b3I8V2ViSURCS2V5PiBhcnJheSgpIGNvbnN0OyAvLyBPbmx5IHZhbGlkIGZvciBB
cnJheVR5cGUuCiAgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgc3RyaW5nKCkgY29uc3Q7IC8v
IE9ubHkgdmFsaWQgZm9yIFN0cmluZ1R5cGUuCiAgICAgV0VCS0lUX0VYUE9SVCBkb3VibGUgZGF0
ZSgpIGNvbnN0OyAvLyBPbmx5IHZhbGlkIGZvciBEYXRlVHlwZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJLZXkuY3BwCmluZGV4IDI1YmU2YzUyZjc0NDUzZDdkMzZhYmRjMDgyZDYy
NDgzYjQ0OGRmMGIuLmFkODE4ZTViNTE2ZDM0MDQ0MWRiYzZiYTcxYjA5ODgyMzMwOGRjMzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5LmNwcApAQCAtMTQ5LDYgKzE0OSw4
IEBAIHN0YXRpYyB2b2lkIGNvbnZlcnRUb1dlYklEQktleUFycmF5KGNvbnN0IElEQktleTo6S2V5
QXJyYXkmIGFycmF5LCBXZWJWZWN0b3I8V2ViCiAgICAgICAgICAgICBrZXlzW2ldID0gV2ViSURC
S2V5OjpjcmVhdGVOdW1iZXIoa2V5LT5udW1iZXIoKSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBJREJLZXk6OkludmFsaWRUeXBlOgorICAgICAgICAgICAga2V5c1tpXSA9IFdl
YklEQktleTo6Y3JlYXRlSW52YWxpZCgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgSURCS2V5OjpNaW5UeXBlOgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgICAgICBicmVhazsKQEAgLTE5OSw2ICsyMDEsMTMgQEAgV2ViSURCS2V5OjpUeXBlIFdl
YklEQktleTo6dHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIFR5cGUobV9wcml2YXRlLT50eXBlKCkp
OwogfQogCitib29sIFdlYklEQktleTo6aXNWYWxpZCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3By
aXZhdGUuZ2V0KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9wcml2YXRl
LT5pc1ZhbGlkKCk7Cit9CisKIFdlYlZlY3RvcjxXZWJJREJLZXk+IFdlYklEQktleTo6YXJyYXko
KSBjb25zdAogewogICAgIFdlYlZlY3RvcjxXZWJJREJLZXk+IGtleXM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJLZXlSYW5nZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJLZXlSYW5nZS5jcHAKaW5kZXggZmVmMGQzYzNkYWVhYTU0
MGJhYjczODNiNWIzNzA0MzJhZDYyZjhmYy4uNDE5MjYxYzIyM2VkZDY1NWRkNDU1ZGY2NDVhMzY3
MWNhY2YwNDQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
S2V5UmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleVJh
bmdlLmNwcApAQCAtNDMsNyArNDMsNyBAQCB2b2lkIFdlYklEQktleVJhbmdlOjphc3NpZ24oY29u
c3QgV2ViSURCS2V5UmFuZ2UmIG90aGVyKQogCiB2b2lkIFdlYklEQktleVJhbmdlOjphc3NpZ24o
Y29uc3QgV2ViSURCS2V5JiBsb3dlciwgY29uc3QgV2ViSURCS2V5JiB1cHBlciwgYm9vbCBsb3dl
ck9wZW4sIGJvb2wgdXBwZXJPcGVuKQogewotICAgIGlmIChsb3dlci50eXBlKCkgPT0gV2ViSURC
S2V5OjpJbnZhbGlkVHlwZSAmJiB1cHBlci50eXBlKCkgPT0gV2ViSURCS2V5OjpJbnZhbGlkVHlw
ZSkKKyAgICBpZiAoIWxvd2VyLmlzVmFsaWQoKSAmJiAhdXBwZXIuaXNWYWxpZCgpKQogICAgICAg
ICBtX3ByaXZhdGUgPSAwOwogICAgIGVsc2UKICAgICAgICAgbV9wcml2YXRlID0gSURCS2V5UmFu
Z2U6OmNyZWF0ZShsb3dlciwgdXBwZXIsIGxvd2VyT3BlbiA/IElEQktleVJhbmdlOjpMb3dlckJv
dW5kT3BlbiA6IElEQktleVJhbmdlOjpMb3dlckJvdW5kQ2xvc2VkLCB1cHBlck9wZW4gPyBJREJL
ZXlSYW5nZTo6VXBwZXJCb3VuZE9wZW4gOiBJREJLZXlSYW5nZTo6VXBwZXJCb3VuZENsb3NlZCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggYWJmZGJiMDkzODE0NDA4MzVjMmYwZjY0MjlmMDE5Nzc0MGE3OThiYy4uMTgwZWMz
NGI5N2JmYWJlOWUyNWYxOTc3YTM0Mzg2MDFkZmRlZDEzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBA
CisyMDEyLTA2LTE5ICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAg
ICAgICBJbmRleGVkREI6IEltcGxlbWVudCBzcGVjIGJlaGF2aW9yIGZvciBtdWx0aUVudHJ5IGlu
ZGV4ZXMgd2l0aCBpbnZhbGlkL2R1cGxpY2F0ZSBzdWJrZXlzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjEyMworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtbXVs
dGllbnRyeS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2luZGV4LW11bHRpZW50cnkuanM6CisgICAgICAgIChhZGREYXRhKToKKyAgICAgICAgKHZl
cmlmeUluZGV4ZXMucmVxdWVzdC5vbnN1Y2Nlc3MpOgorICAgICAgICAodmVyaWZ5SW5kZXhlcyk6
CisgICAgICAgICh2ZXJpZnlVbmlxdWVDb25zdHJhaW50LnJlcXVlc3Qub25zdWNjZXNzLnJlcXVl
c3Qub25zdWNjZXNzLnJlcXVlc3Qub25lcnJvcik6CisgICAgICAgICh2ZXJpZnlVbmlxdWVDb25z
dHJhaW50LnJlcXVlc3Qub25zdWNjZXNzLnJlcXVlc3Qub25zdWNjZXNzKToKKyAgICAgICAgKHZl
cmlmeVVuaXF1ZUNvbnN0cmFpbnQucmVxdWVzdC5vbnN1Y2Nlc3MpOgorICAgICAgICAodmVyaWZ5
VW5pcXVlQ29uc3RyYWludCk6CisKIDIwMTItMDYtMTggIFphbiBEb2JlcnNlayAgPHphbmRvYmVy
c2VrQGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEdUSyBnYXJkZW5pbmcsIHVwZGF0
aW5nIGJhc2VsaW5lcyBhZnRlciByb2xsb3V0cyBpbiByMTIwNjI3LgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtbXVsdGllbnRyeS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1tdWx0aWVudHJ5LWV4cGVjdGVk
LnR4dAppbmRleCAzYjhiMDdiMzgxNDZlODgzNDIyNjAxMjA3MDJhZjUzNTYzNzFmNzBjLi44MmNi
ZDQ5ZmViY2YxNTEzOThhYmJmNzMxZjVlNzdjZjYxZDYwNmZiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1tdWx0aWVudHJ5LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1tdWx0aWVudHJ5LWV4cGVjdGVk
LnR4dApAQCAtMjUsNiArMjUsOCBAQCB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUnKS5w
dXQoe3g6IFs3LCA4LCA5XSwgeTogJ2EnfSwgJ2ZvbycpCiBOb3cgb3ZlcndyaXRlIHRoZW0gd2l0
aCB3aGF0IHdlJ3JlIGV4cGVjdGluZwogdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlJyku
cHV0KHt4OiBbMSwgMiwgM10sIHk6ICdhJ30sICdmb28nKQogdHJhbnNhY3Rpb24ub2JqZWN0U3Rv
cmUoJ3N0b3JlJykucHV0KHt4OiBbNCwgNSwgNl0sIHk6ICdiJ30sICdiYXInKQordHJhbnNhY3Rp
b24ub2JqZWN0U3RvcmUoJ3N0b3JlJykucHV0KHt4OiBbNywgNywgOCwgN10sIHk6ICdjJ30sICdi
YXonKQordHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlJykucHV0KHt4OiBbbnVsbCwgOSwg
OV0sIHk6ICdkJ30sICdibG9vcCcpCiAKIFZlcmlmeWluZyBpbmRleDogaW5kZXgKIHRyYW5zYWN0
aW9uID0gZGIudHJhbnNhY3Rpb24oWydzdG9yZSddLCAncmVhZG9ubHknKQpAQCAtMzQsMzEgKzM2
LDU1IEBAIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5rZXkgaXMgMQogUEFTUyBj
dXJzb3IucHJpbWFyeUtleSBpcyAiZm9vIgogUEFTUyBjdXJzb3IudmFsdWUueSBpcyAiYSIKK2N1
cnNvci5jb250aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CiBQQVNTIGV4IGlz
IG5vbi1udWxsLgogUEFTUyBjdXJzb3Iua2V5IGlzIDIKIFBBU1MgY3Vyc29yLnByaW1hcnlLZXkg
aXMgImZvbyIKIFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImEiCitjdXJzb3IuY29udGludWUoKQog
Y3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleCBpcyBub24tbnVsbC4KIFBBU1Mg
Y3Vyc29yLmtleSBpcyAzCiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJmb28iCiBQQVNTIGN1
cnNvci52YWx1ZS55IGlzICJhIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2ZW50LnRh
cmdldC5yZXN1bHQKIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5rZXkgaXMgNAog
UEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmFyIgogUEFTUyBjdXJzb3IudmFsdWUueSBpcyAi
YiIKK2N1cnNvci5jb250aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CiBQQVNT
IGV4IGlzIG5vbi1udWxsLgogUEFTUyBjdXJzb3Iua2V5IGlzIDUKIFBBU1MgY3Vyc29yLnByaW1h
cnlLZXkgaXMgImJhciIKIFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImIiCitjdXJzb3IuY29udGlu
dWUoKQogY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleCBpcyBub24tbnVsbC4K
IFBBU1MgY3Vyc29yLmtleSBpcyA2CiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJiYXIiCiBQ
QVNTIGN1cnNvci52YWx1ZS55IGlzICJiIgorY3Vyc29yLmNvbnRpbnVlKCkKK2N1cnNvciA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZXggaXMgbm9uLW51bGwuCitQQVNTIGN1cnNvci5rZXkg
aXMgNworUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmF6IgorUEFTUyBjdXJzb3IudmFsdWUu
eSBpcyAiYyIKK2N1cnNvci5jb250aW51ZSgpCitjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0
CitQQVNTIGV4IGlzIG5vbi1udWxsLgorUEFTUyBjdXJzb3Iua2V5IGlzIDgKK1BBU1MgY3Vyc29y
LnByaW1hcnlLZXkgaXMgImJheiIKK1BBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImMiCitjdXJzb3Iu
Y29udGludWUoKQorY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBleCBpcyBub24t
bnVsbC4KK1BBU1MgY3Vyc29yLmtleSBpcyA5CitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJi
bG9vcCIKK1BBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImQiCitjdXJzb3IuY29udGludWUoKQogY3Vy
c29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleHBlY3RlZC5sZW5ndGggaXMgMAogCkBA
IC03MSw3ICs5Nyw3IEBAIHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZS11bmlxdWUnKS5w
dXQoe3g6IFsxLCAyLCA3XSwgeTogJ2EnfSwgJ2ZvbycpCiBzdWNjZXNzIQogVGhpcyBzaG91bGQg
ZmFpbCB0aGUgdW5pcXVlbmVzcyBjb25zdHJhaW50IG9uIHRoZSBpbmRleCwgYW5kIGZhaWw6CiB0
cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUtdW5pcXVlJykucHV0KHt4OiBbNSwgMl0sIHk6
ICdjJ30sICdzaG91bGQgZmFpbCcpCi1SZXF1ZXN0IGZhaWxlZCwgYXMgZXhwZWN0ZWQKK1JlcXVl
c3QgZmFpbGVkLCBhcyBleHBlY3RlZCAoRGF0YUVycm9yKQogVHJhbnNhY3Rpb24gYWJvcnRlZCBh
cyBleHBlY3RlZAogCiBDcmVhdGUgYW4gaW5kZXggb24gYSBwb3B1bGF0ZWQgc3RvcmUKQEAgLTg5
LDMxICsxMTUsNTUgQEAgUEFTUyBleCBpcyBub24tbnVsbC4KIFBBU1MgY3Vyc29yLmtleSBpcyAx
CiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJmb28iCiBQQVNTIGN1cnNvci52YWx1ZS55IGlz
ICJhIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQKIFBB
U1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5rZXkgaXMgMgogUEFTUyBjdXJzb3IucHJp
bWFyeUtleSBpcyAiZm9vIgogUEFTUyBjdXJzb3IudmFsdWUueSBpcyAiYSIKK2N1cnNvci5jb250
aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CiBQQVNTIGV4IGlzIG5vbi1udWxs
LgogUEFTUyBjdXJzb3Iua2V5IGlzIDMKIFBBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgImZvbyIK
IFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImEiCitjdXJzb3IuY29udGludWUoKQogY3Vyc29yID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleCBpcyBub24tbnVsbC4KIFBBU1MgY3Vyc29yLmtl
eSBpcyA0CiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJiYXIiCiBQQVNTIGN1cnNvci52YWx1
ZS55IGlzICJiIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1
bHQKIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5rZXkgaXMgNQogUEFTUyBjdXJz
b3IucHJpbWFyeUtleSBpcyAiYmFyIgogUEFTUyBjdXJzb3IudmFsdWUueSBpcyAiYiIKK2N1cnNv
ci5jb250aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CiBQQVNTIGV4IGlzIG5v
bi1udWxsLgogUEFTUyBjdXJzb3Iua2V5IGlzIDYKIFBBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMg
ImJhciIKIFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImIiCitjdXJzb3IuY29udGludWUoKQorY3Vy
c29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBleCBpcyBub24tbnVsbC4KK1BBU1MgY3Vy
c29yLmtleSBpcyA3CitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJiYXoiCitQQVNTIGN1cnNv
ci52YWx1ZS55IGlzICJjIgorY3Vyc29yLmNvbnRpbnVlKCkKK2N1cnNvciA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQKK1BBU1MgZXggaXMgbm9uLW51bGwuCitQQVNTIGN1cnNvci5rZXkgaXMgOAorUEFT
UyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmF6IgorUEFTUyBjdXJzb3IudmFsdWUueSBpcyAiYyIK
K2N1cnNvci5jb250aW51ZSgpCitjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIGV4
IGlzIG5vbi1udWxsLgorUEFTUyBjdXJzb3Iua2V5IGlzIDkKK1BBU1MgY3Vyc29yLnByaW1hcnlL
ZXkgaXMgImJsb29wIgorUEFTUyBjdXJzb3IudmFsdWUueSBpcyAiZCIKK2N1cnNvci5jb250aW51
ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CiBQQVNTIGV4cGVjdGVkLmxlbmd0aCBp
cyAwCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW5kZXgtbXVsdGllbnRyeS5qcyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbmRleC1tdWx0aWVudHJ5Lmpz
CmluZGV4IDllMWFkN2E1OWUyY2NjNTRjNTYxYTMwYmE5MmYxMTEyZWE3YTM3MGYuLjhhNWM0ZTdk
ZGUwYjdiNWFmOGViMmQxZmY2OGQ0NDgyZmJhZjU5NzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbmRleC1tdWx0aWVudHJ5LmpzCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbmRleC1tdWx0aWVudHJ5Lmpz
CkBAIC01NCw2ICs1NCwxMCBAQCBmdW5jdGlvbiBhZGREYXRhKCkKICAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygi
dHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlJykucHV0KHt4OiBbNCwgNSwgNl0sIHk6ICdi
J30sICdiYXInKSIpOwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmUnKS5wdXQoe3g6IFs3LCA3LCA4LCA3XSwgeTogJ2MnfSwgJ2JheicpIik7CisgICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdCA9IGV2
YWxBbmRMb2coInRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLnB1dCh7eDogW251bGws
IDksIDldLCB5OiAnZCd9LCAnYmxvb3AnKSIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOwogfQogCiBmdW5jdGlvbiB2ZXJpZnlJbmRleGVzKGluZGV4TmFt
ZSwgY2FsbGJhY2spCkBAIC03MSw2ICs3NSw5IEBAIGZ1bmN0aW9uIHZlcmlmeUluZGV4ZXMoaW5k
ZXhOYW1lLCBjYWxsYmFjaykKICAgICAgICAgeyBrZXk6IDQsIHByaW1hcnlLZXk6ICdiYXInLCB5
OiAnYicgfSwKICAgICAgICAgeyBrZXk6IDUsIHByaW1hcnlLZXk6ICdiYXInLCB5OiAnYicgfSwK
ICAgICAgICAgeyBrZXk6IDYsIHByaW1hcnlLZXk6ICdiYXInLCB5OiAnYicgfSwKKyAgICAgICAg
eyBrZXk6IDcsIHByaW1hcnlLZXk6ICdiYXonLCB5OiAnYycgfSwKKyAgICAgICAgeyBrZXk6IDgs
IHByaW1hcnlLZXk6ICdiYXonLCB5OiAnYycgfSwKKyAgICAgICAgeyBrZXk6IDksIHByaW1hcnlL
ZXk6ICdibG9vcCcsIHk6ICdkJyB9LAogICAgIF07CiAKICAgICB2YXIgcmVxdWVzdCA9IGV2YWxB
bmRMb2coInRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLmluZGV4KCciICsgaW5kZXhO
YW1lICsgIicpLm9wZW5DdXJzb3IoKSIpOwpAQCAtODMsNyArOTAsNyBAQCBmdW5jdGlvbiB2ZXJp
ZnlJbmRleGVzKGluZGV4TmFtZSwgY2FsbGJhY2spCiAgICAgICAgICAgICBzaG91bGRCZSgiY3Vy
c29yLmtleSIsIFN0cmluZyhleC5rZXkpKTsKICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiY3Vyc29yLnByaW1hcnlLZXkiLCBleC5wcmltYXJ5S2V5KTsKICAgICAgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygiY3Vyc29yLnZhbHVlLnkiLCBleC55KTsKLSAgICAgICAgICAg
IGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgZXZhbEFuZExvZygiY3Vyc29yLmNvbnRp
bnVlKCkiKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHNob3VsZEJlKCJleHBlY3Rl
ZC5sZW5ndGgiLCAiMCIpOwogICAgICAgICB9CkBAIC0xMTMsNyArMTIwLDggQEAgZnVuY3Rpb24g
dmVyaWZ5VW5pcXVlQ29uc3RyYWludCgpCiAgICAgICAgICAgICBkZWJ1ZygiVGhpcyBzaG91bGQg
ZmFpbCB0aGUgdW5pcXVlbmVzcyBjb25zdHJhaW50IG9uIHRoZSBpbmRleCwgYW5kIGZhaWw6Iik7
CiAgICAgICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygidHJhbnNhY3Rpb24ub2JqZWN0U3Rv
cmUoJ3N0b3JlLXVuaXF1ZScpLnB1dCh7eDogWzUsIDJdLCB5OiAnYyd9LCAnc2hvdWxkIGZhaWwn
KSIpOwogICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0Nh
bGxiYWNrOwotICAgICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24oKSB7IGRlYnVn
KCJSZXF1ZXN0IGZhaWxlZCwgYXMgZXhwZWN0ZWQiKTsgfTsKKyAgICAgICAgICAgIHJlcXVlc3Qu
b25lcnJvciA9IGZ1bmN0aW9uKCkgeyBkZWJ1ZygiUmVxdWVzdCBmYWlsZWQsIGFzIGV4cGVjdGVk
ICgiICsgcmVxdWVzdC5lcnJvci5uYW1lICsgIikiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgfTsKICAgICB9OwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148425</attachid>
            <date>2012-06-19 14:30:25 -0700</date>
            <delta_ts>2012-06-21 11:35:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86123-20120619143025.patch</filename>
            <type>text/plain</type>
            <size>26832</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FkM2Q0NWJmZWU1OTRh
YTBhMjg3NmIwYTFkZjg4NDZhZTc2OTU2My4uNjQzMDJkYTY1ODFmMWFjNzVmNDE1MDIyOGE1Mzcy
MWQyZTg4OTBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTA2LTE5ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IElt
cGxlbWVudCBzcGVjIGJlaGF2aW9yIGZvciBtdWx0aUVudHJ5IGluZGV4ZXMgd2l0aCBpbnZhbGlk
L2R1cGxpY2F0ZSBzdWJrZXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NjEyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIERpc3Rpbmd1aXNoIGJldHdlZW4gYW4gYWN0dWFsIGludmFsaWQgSURCS2V5LCBh
bmQgYW4gYXJyYXkgb2YKKyAgICAgICAgcG9zc2libHktaW52YWxpZCBzdWJrZXlzIGJ5IG1ha2lu
ZyBJREJLZXk6OmlzVmFsaWQoKSBjaGVjayBzdWJrZXlzCisgICAgICAgIGlmIHRoZSB0eXBlIGlz
IGFuIGFycmF5LgorCisgICAgICAgIEludHJvZHVjZSBhIG5ldyB3YXkgdG8gdHJhbnNmb3JtIGFu
IElEQktleSBpbnRvIGEKKyAgICAgICAgbXVsdGlFbnRyeS1zcGVjaWZpYyBJREJLZXksIChJREJL
ZXk6OmNyZWF0ZU11bHRpRW50cnlBcnJheSkKKyAgICAgICAgdGhyb3dpbmcgb3V0IGR1cGxpY2F0
ZXMgYW5kIGludmFsaWQga2V5cy4gVXNlIGl0IHdoZW4gc3RvcmluZworICAgICAgICBpbmRleCBl
bnRyaWVzIGZvciBtdWx0aUVudHJ5IGluZGV4ZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOiBl
eGlzdGluZyB0ZXN0cyBoYXZlIGJlZW4gYWx0ZXJlZCB0byBpbmNsdWRlIG5ldyBiZWhhdmlvci4K
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJDdXJzb3I6OmNvbnRpbnVlRnVuY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeTo6
Y21wKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJJbmRleDo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4Ojpn
ZXRLZXkpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJLZXk6OmlzVmFsaWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5Lmg6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXk6
OmNyZWF0ZU11bHRpRW50cnlBcnJheSk6CisgICAgICAgIChJREJLZXkpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQktl
eVJhbmdlOjpvbmx5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdlOjpsb3dlckJvdW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdlOjp1cHBlckJvdW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQktleVJhbmdlOjpib3VuZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJMZXZl
bERCQmFja2luZ1N0b3JlOjpwdXRPYmplY3RTdG9yZVJlY29yZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJMZXZlbERCQmFja2luZ1N0b3JlOjpwdXRJbmRleERhdGFGb3JSZWNvcmQpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCTGV2ZWxEQkNvZGluZzo6ZW5jb2RlSURCS2V5KToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmpl
Y3RTdG9yZTo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjphZGQpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6OnB1dCk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpwdXRJbnRlcm5hbCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUlEQktleUZyb21WYWx1ZSk6CisKIDIwMTItMDYtMTgg
IEpvb25lIEh1ciAgPGpvb25lLmh1ckBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gRm9udGNv
bmZpZyBjYW4ndCBiZSBsaW5rZWQgcHJvcGVybHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggOTk5MmUyOGU3MTM4OTA5ZTEyNTBlMGIyNjA2MGZkMjUwYWNjODQ0NS4uOGExZTc3OWUwMWEz
YTRjNzI2ODU5NDZjOWY5ZTE5YzE1Y2E1NWMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOSBAQAorMjAxMi0wNi0xOSAgQWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBJbXBsZW1lbnQgc3BlYyBiZWhhdmlvciBm
b3IgbXVsdGlFbnRyeSBpbmRleGVzIHdpdGggaW52YWxpZC9kdXBsaWNhdGUgc3Via2V5cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYxMjMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbWF0Y2hpbmcg
aXNWYWxpZCgpIHRvIFdlYklEQktleSB0byBtYXRjaCB0aGUgb25lIGluIElEQktleS4KKworICAg
ICAgICAqIHB1YmxpYy9XZWJJREJLZXkuaDoKKyAgICAgICAgKiBzcmMvV2ViSURCS2V5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5Ojppc1ZhbGlkKToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgICogc3JjL1dlYklEQktleVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
SURCS2V5UmFuZ2U6OmFzc2lnbik6CisKIDIwMTItMDYtMTggIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEdlc3R1cmVQaW5jaEJlZ2luIGFuZCBm
cmllbmRzIGFyZSBnZXN0dXJlIGV2ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggOGQyMThlZTg1NTc4ZTgyZTFmN2U0MWMwOTZiOWRl
MmM1ZjljMjA2MC4uMjc1OTUxNGVmZjc0MjI0YzYxNzk5Y2Y1ZjYwNzc5ZmRjZTRkMjQyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0x
ODMsNyArMTgzLDcgQEAgdm9pZCBJREJDdXJzb3I6OmFkdmFuY2UodW5zaWduZWQgbG9uZyBjb3Vu
dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB2b2lkIElEQkN1cnNvcjo6Y29udGludWVGdW5jdGlvbihQ
YXNzUmVmUHRyPElEQktleT4ga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJREJfVFJB
Q0UoIklEQkN1cnNvcjo6Y29udGludWUiKTsKLSAgICBpZiAoa2V5ICYmIChrZXktPnR5cGUoKSA9
PSBJREJLZXk6OkludmFsaWRUeXBlKSkgeworICAgIGlmIChrZXkgJiYgIWtleS0+aXNWYWxpZCgp
KSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmNwcAppbmRleCAxODExNmY1YTNlYTk3ODVkMWI2OWQ4MjhhZjNhZGNkZTFiNmZj
NmU5Li5kM2RlOGY2ZmE1YjRlNzMzMzY0MGM2MzEzZDZkNGVmZjhlZTlkYjUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcApAQCAtMTMzLDcg
KzEzMyw3IEBAIHNob3J0IElEQkZhY3Rvcnk6OmNtcChQYXNzUmVmUHRyPElEQktleT4gZmlyc3Qs
IFBhc3NSZWZQdHI8SURCS2V5PiBzZWNvbmQsIEV4Y2VwCiAgICAgQVNTRVJUKGZpcnN0KTsKICAg
ICBBU1NFUlQoc2Vjb25kKTsKIAotICAgIGlmIChmaXJzdC0+dHlwZSgpID09IElEQktleTo6SW52
YWxpZFR5cGUgfHwgc2Vjb25kLT50eXBlKCkgPT0gSURCS2V5OjpJbnZhbGlkVHlwZSkgeworICAg
IGlmICghZmlyc3QtPmlzVmFsaWQoKSB8fCAhc2Vjb25kLT5pc1ZhbGlkKCkpIHsKICAgICAgICAg
ZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6REFUQV9FUlI7CiAgICAgICAgIHJldHVybiAwOwog
ICAgIH0gICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJJbmRleC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5j
cHAKaW5kZXggZDZkNzYyMmJiMmE0YTliZDhlN2VhZDA4OWRmYjU1NzQ4YjFiZGVhMi4uOTc3NmZm
MmE5NzE1ZWM2NzlmMDgzZTg4MDljMDFlZDRmMTI0NWEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcApAQCAtMTkwLDcgKzE5MCw3IEBAIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBQYXNzUmVmUHRyCiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklE
Ql9JTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIGlmIChr
ZXkgJiYgKGtleS0+dHlwZSgpID09IElEQktleTo6SW52YWxpZFR5cGUpKSB7CisgICAgaWYgKGtl
eSAmJiAha2V5LT5pc1ZhbGlkKCkpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6REFUQV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTIzMCw3ICsyMzAsNyBA
QCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpnZXRLZXkoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgUGFzc1JlZgogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0
aW9uOjpJREJfSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAg
ICBpZiAoa2V5ICYmIChrZXktPnR5cGUoKSA9PSBJREJLZXk6OkludmFsaWRUeXBlKSkgeworICAg
IGlmIChrZXkgJiYgIWtleS0+aXNWYWxpZCgpKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VF
eGNlcHRpb246OkRBVEFfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNwcAppbmRleCA1OTg2ODZlMWEwMzlhZGJm
ZGNiMjQ3N2ZmZmUwOTExNTM4YzY4MzFjLi5iNzZlZDJjZWUzMDVkNjI4N2Y5ZGIxM2UxMGRkMTA4
ZTYxZDY4NGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5j
cHAKQEAgLTQwLDYgKzQwLDIxIEBAIElEQktleTo6fklEQktleSgpCiB7CiB9CiAKK2Jvb2wgSURC
S2V5Ojppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICBpZiAobV90eXBlID09IEludmFsaWRUeXBlKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobV90eXBlID09IEFycmF5VHlwZSkgewor
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fYXJyYXkuc2l6ZSgpOyBpKyspIHsKKyAg
ICAgICAgICAgIGlmICghbV9hcnJheVtpXS0+aXNWYWxpZCgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiBp
bnQgSURCS2V5Ojpjb21wYXJlKGNvbnN0IElEQktleSogb3RoZXIpIGNvbnN0CiB7CiAgICAgQVNT
RVJUKG90aGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQktleS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmgKaW5k
ZXggNDBjZTgzM2Y5MDg5NDM1MjExZTQ5NzFkMzU3MzBmYzJjYzU4NGIxNy4uY2JmZGYxZDRmYzU2
ZWY0NWFmNTIwYWEyNmJkMTUwOWE2NjZmNWY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCS2V5LmgKQEAgLTczLDYgKzczLDMyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGlkYktleS5yZWxlYXNlKCk7CiAgICAgfQogCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURC
S2V5PiBjcmVhdGVNdWx0aUVudHJ5QXJyYXkoY29uc3QgS2V5QXJyYXkmIGFycmF5KQorICAgIHsK
KyAgICAgICAgUmVmUHRyPElEQktleT4gaWRiS2V5ID0gYWRvcHRSZWYobmV3IElEQktleSgpKTsK
KyAgICAgICAgaWRiS2V5LT5tX3R5cGUgPSBBcnJheVR5cGU7CisgICAgICAgIEtleUFycmF5JiBy
ZXN1bHQgPSBpZGJLZXktPm1fYXJyYXk7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBhcnJheS5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKCFhcnJheVtpXS0+aXNWYWxp
ZCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBib29sIHNraXAg
PSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgcmVzdWx0LnNpemUo
KTsgaisrKSB7CisgICAgICAgICAgICAgICAgaWYgKGFycmF5W2ldLT5pc0VxdWFsKHJlc3VsdFtq
XS5nZXQoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgc2tpcCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGlmICghc2tpcCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYXJyYXlb
aV0pOworICAgICAgICAgICAgICAgIGlkYktleS0+bV9zaXplRXN0aW1hdGUgKz0gYXJyYXlbaV0t
Pm1fc2l6ZUVzdGltYXRlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIEFTU0VS
VChpZGJLZXktPmlzVmFsaWQoKSk7CisgICAgICAgIHJldHVybiBpZGJLZXkucmVsZWFzZSgpOwor
ICAgIH0KKwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlQXJyYXkoY29uc3Qg
S2V5QXJyYXkmIGFycmF5KQogICAgIHsKICAgICAgICAgUmVmUHRyPElEQktleT4gaWRiS2V5ID0g
YWRvcHRSZWYobmV3IElEQktleSgpKTsKQEAgLTk4LDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICB9
OwogCiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0gICAgYm9vbCBp
c1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEludmFsaWRUeXBlOyB9CisgICAgYm9v
bCBpc1ZhbGlkKCkgY29uc3Q7CiAKICAgICBjb25zdCBLZXlBcnJheSYgYXJyYXkoKSBjb25zdAog
ICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktl
eVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdl
LmNwcAppbmRleCAwYzIzMjZlNWQ2NDNiMzA2NDI5NTExOTQ5ZTI5ZmYzZmFjN2UyMGVjLi5lODAx
M2YxMjRlMTEwYTg3MGNjYzg3MGJkMjRmZjM2YmFmNDdiMTkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwCkBAIC00NCw3ICs0NCw3IEBA
IElEQktleVJhbmdlOjpJREJLZXlSYW5nZShQYXNzUmVmUHRyPElEQktleT4gbG93ZXIsIFBhc3NS
ZWZQdHI8SURCS2V5PiB1cHBlciwgTG93CiBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBJREJLZXlS
YW5nZTo6b25seShQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICBSZWZQdHI8SURCS2V5PiBrZXkgPSBwcnBLZXk7Ci0gICAgaWYgKGtleSAmJiAoa2V5
LT50eXBlKCkgPT0gSURCS2V5OjpJbnZhbGlkVHlwZSkpIHsKKyAgICBpZiAoa2V5ICYmICFrZXkt
PmlzVmFsaWQoKSkgewogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEQVRBX0VS
UjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtNTQsNyArNTQsNyBAQCBQYXNzUmVmUHRy
PElEQktleVJhbmdlPiBJREJLZXlSYW5nZTo6b25seShQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5
LCBFeGNlcHRpb25DbwogCiBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBJREJLZXlSYW5nZTo6bG93
ZXJCb3VuZChQYXNzUmVmUHRyPElEQktleT4gYm91bmQsIGJvb2wgb3BlbiwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7Ci0gICAgaWYgKGJvdW5kICYmIChib3VuZC0+dHlwZSgpID09IElEQktleTo6SW52
YWxpZFR5cGUpKSB7CisgICAgaWYgKGJvdW5kICYmICFib3VuZC0+aXNWYWxpZCgpKSB7CiAgICAg
ICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSOwogICAgICAgICByZXR1cm4g
MDsKICAgICB9CkBAIC02NCw3ICs2NCw3IEBAIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IElEQktl
eVJhbmdlOjpsb3dlckJvdW5kKFBhc3NSZWZQdHI8SURCS2V5PiBib3VuZCwgYm9vbCBvCiAKIFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+IElEQktleVJhbmdlOjp1cHBlckJvdW5kKFBhc3NSZWZQdHI8
SURCS2V5PiBib3VuZCwgYm9vbCBvcGVuLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAo
Ym91bmQgJiYgKGJvdW5kLT50eXBlKCkgPT0gSURCS2V5OjpJbnZhbGlkVHlwZSkpIHsKKyAgICBp
ZiAoYm91bmQgJiYgIWJvdW5kLT5pc1ZhbGlkKCkpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6REFUQV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTc0LDcg
Kzc0LDcgQEAgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gSURCS2V5UmFuZ2U6OnVwcGVyQm91bmQo
UGFzc1JlZlB0cjxJREJLZXk+IGJvdW5kLCBib29sIG8KIAogUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4gSURCS2V5UmFuZ2U6OmJvdW5kKFBhc3NSZWZQdHI8SURCS2V5PiBsb3dlciwgUGFzc1JlZlB0
cjxJREJLZXk+IHVwcGVyLCBib29sIGxvd2VyT3BlbiwgYm9vbCB1cHBlck9wZW4sIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewotICAgIGlmICgobG93ZXIgJiYgKGxvd2VyLT50eXBlKCkgPT0gSURCS2V5
OjpJbnZhbGlkVHlwZSkpIHx8ICh1cHBlciAmJiAodXBwZXItPnR5cGUoKSA9PSBJREJLZXk6Oklu
dmFsaWRUeXBlKSkpIHsKKyAgICBpZiAoKGxvd2VyICYmICFsb3dlci0+aXNWYWxpZCgpKSB8fCAo
dXBwZXIgJiYgIXVwcGVyLT5pc1ZhbGlkKCkpKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VF
eGNlcHRpb246OkRBVEFfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNraW5n
U3RvcmUuY3BwCmluZGV4IDQ5Nzc3YzYxYmYzNWNjN2I2NGQxMWYzMTVmYTIzM2Q1ZDc3Njk1ZmMu
LjhkY2I0NjA1YzBhYzdjMzAzMjE0MmVmNDQyYzIxMjYzNDM4NTliNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNraW5nU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNraW5n
U3RvcmUuY3BwCkBAIC01ODcsNiArNTg3LDcgQEAgc3RhdGljIGludDY0X3QgZ2V0TmV3VmVyc2lv
bk51bWJlcihMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGEKIAog
Ym9vbCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjpwdXRPYmplY3RTdG9yZVJlY29yZChpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiBrZXksIGNv
bnN0IFN0cmluZyYgdmFsdWUsIE9iamVjdFN0b3JlUmVjb3JkSWRlbnRpZmllciogcmVjb3JkSWRl
bnRpZmllcikKIHsKKyAgICBBU1NFUlQoa2V5LmlzVmFsaWQoKSk7CiAgICAgQVNTRVJUKG1fY3Vy
cmVudFRyYW5zYWN0aW9uKTsKICAgICBpbnQ2NF90IHZlcnNpb24gPSBnZXROZXdWZXJzaW9uTnVt
YmVyKG1fY3VycmVudFRyYW5zYWN0aW9uLmdldCgpLCBkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlk
KTsKICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gb2JqZWN0U3RvcmVkYXRhS2V5ID0gT2JqZWN0U3Rv
cmVEYXRhS2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwga2V5KTsKQEAgLTg2
OSw2ICs4NzAsNyBAQCB2b2lkIElEQkxldmVsREJCYWNraW5nU3RvcmU6OmRlbGV0ZUluZGV4KGlu
dDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZQogCiBib29sIElEQkxldmVsREJC
YWNraW5nU3RvcmU6OnB1dEluZGV4RGF0YUZvclJlY29yZChpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmIGtleSwg
Y29uc3QgT2JqZWN0U3RvcmVSZWNvcmRJZGVudGlmaWVyKiByZWNvcmRJZGVudGlmaWVyKQogewor
ICAgIEFTU0VSVChrZXkuaXNWYWxpZCgpKTsKICAgICBBU1NFUlQoaW5kZXhJZCA+PSBrTWluaW11
bUluZGV4SWQpOwogICAgIGNvbnN0IExldmVsREJSZWNvcmRJZGVudGlmaWVyKiBsZXZlbERCUmVj
b3JkSWRlbnRpZmllciA9IHN0YXRpY19jYXN0PGNvbnN0IExldmVsREJSZWNvcmRJZGVudGlmaWVy
Kj4ocmVjb3JkSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5jcHAKaW5kZXggNDdjOWY3ZDNkMWY0ZjFkNmEy
MjExOGY2NDE5ODFkMzU3NWVlNWRhNy4uYmYxOTVhZGNhNGI3ZGJhOTVkYmQ3Nzg2OWJlODgxNjAx
NmYwZWMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
TGV2ZWxEQkNvZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCTGV2ZWxEQkNvZGluZy5jcHAKQEAgLTM4Nyw2ICszODcsNyBAQCBWZWN0b3I8Y2hhcj4gZW5j
b2RlSURCS2V5KGNvbnN0IElEQktleSYga2V5KQogdm9pZCBlbmNvZGVJREJLZXkoY29uc3QgSURC
S2V5JiBrZXksIFZlY3RvcjxjaGFyPiYgaW50bykKIHsKICAgICBzaXplX3QgcHJldmlvdXNTaXpl
ID0gaW50by5zaXplKCk7CisgICAgQVNTRVJUKGtleS5pc1ZhbGlkKCkpOwogICAgIHN3aXRjaCAo
a2V5LnR5cGUoKSkgewogICAgIGNhc2UgSURCS2V5OjpJbnZhbGlkVHlwZToKICAgICBjYXNlIElE
QktleTo6TWluVHlwZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9iamVjdFN0b3JlLmNwcAppbmRleCAyYWZjYjMwZTE0ODUwMmQ5MWI3ODc2Y2RjNjEyMmJm
MmY1MjU0OGQ4Li43MjJkYWUwNmQwZTZjYTFjYmIzY2UwYzg5ODVhZWE1YjE0NTk5MmFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUu
Y3BwCkBAIC0xMTAsNyArMTEwLDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RT
dG9yZTo6Z2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3MKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQogCi0gICAgaWYgKCFrZXkgfHwgKGtleS0+dHlwZSgpID09IElEQktl
eTo6SW52YWxpZFR5cGUpKSB7CisgICAgaWYgKCFrZXkgfHwgIWtleS0+aXNWYWxpZCgpKSB7CiAg
ICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSOwogICAgICAgICByZXR1
cm4gMDsKICAgICB9CkBAIC0xMzMsNyArMTMzLDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJ
REJPYmplY3RTdG9yZTo6YWRkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3MK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgaWYgKGtleSAmJiAoa2V5LT50eXBlKCkg
PT0gSURCS2V5OjpJbnZhbGlkVHlwZSkpIHsKKyAgICBpZiAoa2V5ICYmICFrZXktPmlzVmFsaWQo
KSkgewogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEQVRBX0VSUjsKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTY2LDcgKzE2Niw3IEBAIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gSURCT2JqZWN0U3RvcmU6OnB1dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBQYXNzCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlmIChrZXkgJiYgKGtleS0+
dHlwZSgpID09IElEQktleTo6SW52YWxpZFR5cGUpKSB7CisgICAgaWYgKGtleSAmJiAha2V5LT5p
c1ZhbGlkKCkpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6REFUQV9FUlI7
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKaW5k
ZXggZGM0MTM0MzlhN2U1ZmNlZmNkNzFiYTExZTllYTM2YjdmYjdjMGNkZi4uOGFiNTgyYTIwZTgw
YjU4YjVjNmU0MTc5YzE1NDc3MGNkNmEzMjc2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5j
cHAKQEAgLTI2NCw2ICsyNjQsOSBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OnB1
dEludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPAogICAgICAgICBj
b25zdCBSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4mIGluZGV4ID0gaXQtPnNlY29uZDsKIAog
ICAgICAgICBSZWZQdHI8SURCS2V5PiBpbmRleEtleSA9IGZldGNoS2V5RnJvbUtleVBhdGgodmFs
dWUuZ2V0KCksIGluZGV4LT5rZXlQYXRoKCkpOworICAgICAgICBpZiAoaW5kZXhLZXkgJiYgaW5k
ZXgtPm11bHRpRW50cnkoKSAmJiBpbmRleEtleS0+dHlwZSgpID09IElEQktleTo6QXJyYXlUeXBl
KQorICAgICAgICAgICAgaW5kZXhLZXkgPSBJREJLZXk6OmNyZWF0ZU11bHRpRW50cnlBcnJheShp
bmRleEtleS0+YXJyYXkoKSk7CisKICAgICAgICAgaWYgKCFpbmRleEtleSB8fCAhaW5kZXhLZXkt
PmlzVmFsaWQoKSkgewogICAgICAgICAgICAgLy8gTnVsbC9pbnZhbGlkIGtleXMgbm90IGFkZGVk
IHRvIGluZGV4OyBudWxsIGVudHJ5IGtlZXBzIGl0ZXJhdG9yL3ZlY3RvciBpbmRleGVzIGNvbnNp
c3RlbnQuCiAgICAgICAgICAgICBpbmRleEtleS5jbGVhcigpOwpAQCAtMjc5LDcgKzI4Miw3IEBA
IHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6cHV0SW50ZXJuYWwoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoaW5kZXgt
Pm11bHRpRW50cnkoKSAmJiBpbmRleEtleS0+dHlwZSgpID09IElEQktleTo6QXJyYXlUeXBlKSB7
Ci0gICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgaW5kZXhLZXktPmFycmF5KCkuc2l6
ZSgpOyArK2opIHsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgaW5kZXhLZXkt
PmFycmF5KCkuc2l6ZSgpOyArK2opIHsKICAgICAgICAgICAgICAgICBpZiAoIWluZGV4LT5hZGRp
bmdLZXlBbGxvd2VkKGluZGV4S2V5LT5hcnJheSgpW2pdLmdldCgpLCBrZXkuZ2V0KCkpKSB7CiAg
ICAgICAgICAgICAgICAgICAgIG9iamVjdFN0b3JlLT5yZXNldEF1dG9JbmNyZW1lbnRLZXlDYWNo
ZSgpOwogICAgICAgICAgICAgICAgICAgICBjYWxsYmFja3MtPm9uRXJyb3IoSURCRGF0YWJhc2VF
cnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEQVRBX0VSUiwgIk9uZSBvZiB0aGUg
ZGVyaXZlZCAoZnJvbSBhIGtleVBhdGgpIGtleXMgZm9yIGFuIGluZGV4IGRvZXMgbm90IHNhdGlz
ZnkgaXRzIHVuaXF1ZW5lc3MgcmVxdWlyZW1lbnRzLiIpKTsKQEAgLTQ0Miw4ICs0NDUsMTAgQEAg
cHVibGljOgogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgQVNTRVJUKG1faW5kZXgtPm11
bHRpRW50cnkoKSk7CiAgICAgICAgICAgICBBU1NFUlQoaW5kZXhLZXktPnR5cGUoKSA9PSBJREJL
ZXk6OkFycmF5VHlwZSk7CisKKyAgICAgICAgICAgIGluZGV4S2V5ID0gSURCS2V5OjpjcmVhdGVN
dWx0aUVudHJ5QXJyYXkoaW5kZXhLZXktPmFycmF5KCkpOwogICAgICAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBpbmRleEtleS0+YXJyYXkoKS5zaXplKCk7ICsraSkgewotICAgICAgICAg
ICAgICAgIGlmICghbV9pbmRleC0+YWRkaW5nS2V5QWxsb3dlZChpbmRleEtleS5nZXQoKSkpCisg
ICAgICAgICAgICAgICAgaWYgKCFtX2luZGV4LT5hZGRpbmdLZXlBbGxvd2VkKGluZGV4S2V5LT5h
cnJheSgpW2ldLmdldCgpKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICAgICAgICAgIGlmICghbV9iYWNraW5nU3RvcmUucHV0SW5kZXhEYXRhRm9yUmVjb3JkKG1f
ZGF0YWJhc2VJZCwgbV9vYmplY3RTdG9yZUlkLCBtX2luZGV4LT5pZCgpLCAqaW5kZXhLZXktPmFy
cmF5KClbaV0sIHJlY29yZElkZW50aWZpZXIpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5n
VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGls
aXRpZXMuY3BwCmluZGV4IGQzMTZhZDcyOTlmNGUyODMxNDU5NWUzNWRjM2ZkMDUwNzI4M2M2M2Mu
LmVlNzZlZTI5YTAwMWQ2Y2Q3NmM1ZjE3YWQzNWVjYjdmY2M2NzRjMjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC02NSw4
ICs2NSw5IEBAIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVZhbHVl
KHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSwgVmVjCiAgICAgICAgICAgICB2ODo6TG9jYWw8
djg6OlZhbHVlPiBpdGVtID0gYXJyYXktPkdldCh2ODo6SW50MzI6Ok5ldyhpKSk7CiAgICAgICAg
ICAgICBSZWZQdHI8SURCS2V5PiBzdWJrZXkgPSBjcmVhdGVJREJLZXlGcm9tVmFsdWUoaXRlbSwg
c3RhY2spOwogICAgICAgICAgICAgaWYgKCFzdWJrZXkpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IDA7Ci0gICAgICAgICAgICBzdWJrZXlzLmFwcGVuZChzdWJrZXkpOworICAgICAgICAgICAgICAg
IHN1YmtleXMuYXBwZW5kKElEQktleTo6Y3JlYXRlSW52YWxpZCgpKTsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBzdWJrZXlzLmFwcGVuZChzdWJrZXkpOwogICAgICAgICB9CiAK
ICAgICAgICAgc3RhY2sucmVtb3ZlTGFzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCS2V5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJJREJLZXkuaAppbmRleCBhNzgxNDIzNDU5NDBiZGExNjhhMDY3MmQzN2ZlNzQwYWNhY2U0
MzFjLi4wYjcwNGNhYzI4NDQ2MWNjMzYxMDFhZTYxYWVkNjU4ZDQwMzYxOTA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJLZXkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJLZXkuaApAQCAtNzksNiArNzksNyBAQCBwdWJs
aWM6CiAgICAgfTsKIAogICAgIFdFQktJVF9FWFBPUlQgVHlwZSB0eXBlKCkgY29uc3Q7CisgICAg
V0VCS0lUX0VYUE9SVCBib29sIGlzVmFsaWQoKSBjb25zdDsKICAgICBXRUJLSVRfRVhQT1JUIFdl
YlZlY3RvcjxXZWJJREJLZXk+IGFycmF5KCkgY29uc3Q7IC8vIE9ubHkgdmFsaWQgZm9yIEFycmF5
VHlwZS4KICAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBzdHJpbmcoKSBjb25zdDsgLy8gT25s
eSB2YWxpZCBmb3IgU3RyaW5nVHlwZS4KICAgICBXRUJLSVRfRVhQT1JUIGRvdWJsZSBkYXRlKCkg
Y29uc3Q7IC8vIE9ubHkgdmFsaWQgZm9yIERhdGVUeXBlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQktleS5jcHAKaW5kZXggMjViZTZjNTJmNzQ0NTNkN2QzNmFiZGMwODJkNjI0ODNi
NDQ4ZGYwYi4uY2ZhZGFmYmFjZDk3Mzg5ZTg1ZjZlNGMzZGUxOTIyNTA0YWJhMzlhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJLZXkuY3BwCkBAIC0xMjAsNiArMTIwLDggQEAg
c3RhdGljIFBhc3NSZWZQdHI8SURCS2V5PiBjb252ZXJ0RnJvbVdlYklEQktleUFycmF5KGNvbnN0
IFdlYlZlY3RvcjxXZWJJREJLZXk+JgogICAgICAgICAgICAga2V5cy5hcHBlbmQoSURCS2V5Ojpj
cmVhdGVOdW1iZXIoYXJyYXlbaV0ubnVtYmVyKCkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIFdlYklEQktleTo6SW52YWxpZFR5cGU6CisgICAgICAgICAgICBrZXlzLmFwcGVu
ZChJREJLZXk6OmNyZWF0ZUludmFsaWQoKSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBXZWJJREJLZXk6Ok51bGxUeXBlOgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTE0OSw2ICsxNTEsOCBAQCBzdGF0aWMgdm9pZCBj
b252ZXJ0VG9XZWJJREJLZXlBcnJheShjb25zdCBJREJLZXk6OktleUFycmF5JiBhcnJheSwgV2Vi
VmVjdG9yPFdlYgogICAgICAgICAgICAga2V5c1tpXSA9IFdlYklEQktleTo6Y3JlYXRlTnVtYmVy
KGtleS0+bnVtYmVyKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSURCS2V5
OjpJbnZhbGlkVHlwZToKKyAgICAgICAgICAgIGtleXNbaV0gPSBXZWJJREJLZXk6OmNyZWF0ZUlu
dmFsaWQoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIElEQktleTo6TWluVHlw
ZToKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgYnJlYWs7
CkBAIC0xOTksNiArMjAzLDEzIEBAIFdlYklEQktleTo6VHlwZSBXZWJJREJLZXk6OnR5cGUoKSBj
b25zdAogICAgIHJldHVybiBUeXBlKG1fcHJpdmF0ZS0+dHlwZSgpKTsKIH0KIAorYm9vbCBXZWJJ
REJLZXk6OmlzVmFsaWQoKSBjb25zdAoreworICAgIGlmICghbV9wcml2YXRlLmdldCgpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNWYWxpZCgpOworfQor
CiBXZWJWZWN0b3I8V2ViSURCS2V5PiBXZWJJREJLZXk6OmFycmF5KCkgY29uc3QKIHsKICAgICBX
ZWJWZWN0b3I8V2ViSURCS2V5PiBrZXlzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCS2V5UmFuZ2UuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCS2V5UmFuZ2UuY3BwCmluZGV4IGZlZjBkM2MzZGFlYWE1NDBiYWI3MzgzYjViMzcwNDMy
YWQ2MmY4ZmMuLjQxOTI2MWMyMjNlZGQ2NTVkZDQ1NWRmNjQ1YTM2NzFjYWNmMDQ0MWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleVJhbmdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJLZXlSYW5nZS5jcHAKQEAgLTQzLDcg
KzQzLDcgQEAgdm9pZCBXZWJJREJLZXlSYW5nZTo6YXNzaWduKGNvbnN0IFdlYklEQktleVJhbmdl
JiBvdGhlcikKIAogdm9pZCBXZWJJREJLZXlSYW5nZTo6YXNzaWduKGNvbnN0IFdlYklEQktleSYg
bG93ZXIsIGNvbnN0IFdlYklEQktleSYgdXBwZXIsIGJvb2wgbG93ZXJPcGVuLCBib29sIHVwcGVy
T3BlbikKIHsKLSAgICBpZiAobG93ZXIudHlwZSgpID09IFdlYklEQktleTo6SW52YWxpZFR5cGUg
JiYgdXBwZXIudHlwZSgpID09IFdlYklEQktleTo6SW52YWxpZFR5cGUpCisgICAgaWYgKCFsb3dl
ci5pc1ZhbGlkKCkgJiYgIXVwcGVyLmlzVmFsaWQoKSkKICAgICAgICAgbV9wcml2YXRlID0gMDsK
ICAgICBlbHNlCiAgICAgICAgIG1fcHJpdmF0ZSA9IElEQktleVJhbmdlOjpjcmVhdGUobG93ZXIs
IHVwcGVyLCBsb3dlck9wZW4gPyBJREJLZXlSYW5nZTo6TG93ZXJCb3VuZE9wZW4gOiBJREJLZXlS
YW5nZTo6TG93ZXJCb3VuZENsb3NlZCwgdXBwZXJPcGVuID8gSURCS2V5UmFuZ2U6OlVwcGVyQm91
bmRPcGVuIDogSURCS2V5UmFuZ2U6OlVwcGVyQm91bmRDbG9zZWQpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFiZmRiYjA5
MzgxNDQwODM1YzJmMGY2NDI5ZjAxOTc3NDBhNzk4YmMuLjE4MGVjMzRiOTdiZmFiZTllMjVmMTk3
N2EzNDM4NjAxZGZkZWQxMzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wNi0xOSAgQWxl
YyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBJ
bXBsZW1lbnQgc3BlYyBiZWhhdmlvciBmb3IgbXVsdGlFbnRyeSBpbmRleGVzIHdpdGggaW52YWxp
ZC9kdXBsaWNhdGUgc3Via2V5cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODYxMjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LW11bHRpZW50cnktZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbmRleC1tdWx0aWVu
dHJ5LmpzOgorICAgICAgICAoYWRkRGF0YSk6CisgICAgICAgICh2ZXJpZnlJbmRleGVzLnJlcXVl
c3Qub25zdWNjZXNzKToKKyAgICAgICAgKHZlcmlmeUluZGV4ZXMpOgorICAgICAgICAodmVyaWZ5
VW5pcXVlQ29uc3RyYWludC5yZXF1ZXN0Lm9uc3VjY2Vzcy5yZXF1ZXN0Lm9uc3VjY2Vzcy5yZXF1
ZXN0Lm9uZXJyb3IpOgorICAgICAgICAodmVyaWZ5VW5pcXVlQ29uc3RyYWludC5yZXF1ZXN0Lm9u
c3VjY2Vzcy5yZXF1ZXN0Lm9uc3VjY2Vzcyk6CisgICAgICAgICh2ZXJpZnlVbmlxdWVDb25zdHJh
aW50LnJlcXVlc3Qub25zdWNjZXNzKToKKyAgICAgICAgKHZlcmlmeVVuaXF1ZUNvbnN0cmFpbnQp
OgorCiAyMDEyLTA2LTE4ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCBHVEsgZ2FyZGVuaW5nLCB1cGRhdGluZyBiYXNlbGluZXMgYWZ0
ZXIgcm9sbG91dHMgaW4gcjEyMDYyNy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2luZGV4LW11bHRpZW50cnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvaW5kZXgtbXVsdGllbnRyeS1leHBlY3RlZC50eHQKaW5kZXggM2I4YjA3
YjM4MTQ2ZTg4MzQyMjYwMTIwNzAyYWY1MzU2MzcxZjcwYy4uODJjYmQ0OWZlYmNmMTUxMzk4YWJi
ZjczMWY1ZTc3Y2Y2MWQ2MDZmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW5kZXgtbXVsdGllbnRyeS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvaW5kZXgtbXVsdGllbnRyeS1leHBlY3RlZC50eHQKQEAgLTI1LDYgKzI1
LDggQEAgdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlJykucHV0KHt4OiBbNywgOCwgOV0s
IHk6ICdhJ30sICdmb28nKQogTm93IG92ZXJ3cml0ZSB0aGVtIHdpdGggd2hhdCB3ZSdyZSBleHBl
Y3RpbmcKIHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLnB1dCh7eDogWzEsIDIsIDNd
LCB5OiAnYSd9LCAnZm9vJykKIHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLnB1dCh7
eDogWzQsIDUsIDZdLCB5OiAnYid9LCAnYmFyJykKK3RyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdz
dG9yZScpLnB1dCh7eDogWzcsIDcsIDgsIDddLCB5OiAnYyd9LCAnYmF6JykKK3RyYW5zYWN0aW9u
Lm9iamVjdFN0b3JlKCdzdG9yZScpLnB1dCh7eDogW251bGwsIDksIDldLCB5OiAnZCd9LCAnYmxv
b3AnKQogCiBWZXJpZnlpbmcgaW5kZXg6IGluZGV4CiB0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0
aW9uKFsnc3RvcmUnXSwgJ3JlYWRvbmx5JykKQEAgLTM0LDMxICszNiw1NSBAQCBQQVNTIGV4IGlz
IG5vbi1udWxsLgogUEFTUyBjdXJzb3Iua2V5IGlzIDEKIFBBU1MgY3Vyc29yLnByaW1hcnlLZXkg
aXMgImZvbyIKIFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImEiCitjdXJzb3IuY29udGludWUoKQog
Y3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleCBpcyBub24tbnVsbC4KIFBBU1Mg
Y3Vyc29yLmtleSBpcyAyCiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJmb28iCiBQQVNTIGN1
cnNvci52YWx1ZS55IGlzICJhIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2ZW50LnRh
cmdldC5yZXN1bHQKIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5rZXkgaXMgMwog
UEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiZm9vIgogUEFTUyBjdXJzb3IudmFsdWUueSBpcyAi
YSIKK2N1cnNvci5jb250aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CiBQQVNT
IGV4IGlzIG5vbi1udWxsLgogUEFTUyBjdXJzb3Iua2V5IGlzIDQKIFBBU1MgY3Vyc29yLnByaW1h
cnlLZXkgaXMgImJhciIKIFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImIiCitjdXJzb3IuY29udGlu
dWUoKQogY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleCBpcyBub24tbnVsbC4K
IFBBU1MgY3Vyc29yLmtleSBpcyA1CiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJiYXIiCiBQ
QVNTIGN1cnNvci52YWx1ZS55IGlzICJiIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5rZXkg
aXMgNgogUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmFyIgogUEFTUyBjdXJzb3IudmFsdWUu
eSBpcyAiYiIKK2N1cnNvci5jb250aW51ZSgpCitjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0
CitQQVNTIGV4IGlzIG5vbi1udWxsLgorUEFTUyBjdXJzb3Iua2V5IGlzIDcKK1BBU1MgY3Vyc29y
LnByaW1hcnlLZXkgaXMgImJheiIKK1BBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImMiCitjdXJzb3Iu
Y29udGludWUoKQorY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBleCBpcyBub24t
bnVsbC4KK1BBU1MgY3Vyc29yLmtleSBpcyA4CitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJi
YXoiCitQQVNTIGN1cnNvci52YWx1ZS55IGlzICJjIgorY3Vyc29yLmNvbnRpbnVlKCkKK2N1cnNv
ciA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZXggaXMgbm9uLW51bGwuCitQQVNTIGN1cnNv
ci5rZXkgaXMgOQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmxvb3AiCitQQVNTIGN1cnNv
ci52YWx1ZS55IGlzICJkIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQKIFBBU1MgZXhwZWN0ZWQubGVuZ3RoIGlzIDAKIApAQCAtNzEsNyArOTcsNyBAQCB0
cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUtdW5pcXVlJykucHV0KHt4OiBbMSwgMiwgN10s
IHk6ICdhJ30sICdmb28nKQogc3VjY2VzcyEKIFRoaXMgc2hvdWxkIGZhaWwgdGhlIHVuaXF1ZW5l
c3MgY29uc3RyYWludCBvbiB0aGUgaW5kZXgsIGFuZCBmYWlsOgogdHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoJ3N0b3JlLXVuaXF1ZScpLnB1dCh7eDogWzUsIDJdLCB5OiAnYyd9LCAnc2hvdWxkIGZh
aWwnKQotUmVxdWVzdCBmYWlsZWQsIGFzIGV4cGVjdGVkCitSZXF1ZXN0IGZhaWxlZCwgYXMgZXhw
ZWN0ZWQgKERhdGFFcnJvcikKIFRyYW5zYWN0aW9uIGFib3J0ZWQgYXMgZXhwZWN0ZWQKIAogQ3Jl
YXRlIGFuIGluZGV4IG9uIGEgcG9wdWxhdGVkIHN0b3JlCkBAIC04OSwzMSArMTE1LDU1IEBAIFBB
U1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5rZXkgaXMgMQogUEFTUyBjdXJzb3IucHJp
bWFyeUtleSBpcyAiZm9vIgogUEFTUyBjdXJzb3IudmFsdWUueSBpcyAiYSIKK2N1cnNvci5jb250
aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CiBQQVNTIGV4IGlzIG5vbi1udWxs
LgogUEFTUyBjdXJzb3Iua2V5IGlzIDIKIFBBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgImZvbyIK
IFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImEiCitjdXJzb3IuY29udGludWUoKQogY3Vyc29yID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleCBpcyBub24tbnVsbC4KIFBBU1MgY3Vyc29yLmtl
eSBpcyAzCiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJmb28iCiBQQVNTIGN1cnNvci52YWx1
ZS55IGlzICJhIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1
bHQKIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5rZXkgaXMgNAogUEFTUyBjdXJz
b3IucHJpbWFyeUtleSBpcyAiYmFyIgogUEFTUyBjdXJzb3IudmFsdWUueSBpcyAiYiIKK2N1cnNv
ci5jb250aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CiBQQVNTIGV4IGlzIG5v
bi1udWxsLgogUEFTUyBjdXJzb3Iua2V5IGlzIDUKIFBBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMg
ImJhciIKIFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImIiCitjdXJzb3IuY29udGludWUoKQogY3Vy
c29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleCBpcyBub24tbnVsbC4KIFBBU1MgY3Vy
c29yLmtleSBpcyA2CiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJiYXIiCiBQQVNTIGN1cnNv
ci52YWx1ZS55IGlzICJiIgorY3Vyc29yLmNvbnRpbnVlKCkKK2N1cnNvciA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQKK1BBU1MgZXggaXMgbm9uLW51bGwuCitQQVNTIGN1cnNvci5rZXkgaXMgNworUEFT
UyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmF6IgorUEFTUyBjdXJzb3IudmFsdWUueSBpcyAiYyIK
K2N1cnNvci5jb250aW51ZSgpCitjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIGV4
IGlzIG5vbi1udWxsLgorUEFTUyBjdXJzb3Iua2V5IGlzIDgKK1BBU1MgY3Vyc29yLnByaW1hcnlL
ZXkgaXMgImJheiIKK1BBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImMiCitjdXJzb3IuY29udGludWUo
KQorY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBleCBpcyBub24tbnVsbC4KK1BB
U1MgY3Vyc29yLmtleSBpcyA5CitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJibG9vcCIKK1BB
U1MgY3Vyc29yLnZhbHVlLnkgaXMgImQiCitjdXJzb3IuY29udGludWUoKQogY3Vyc29yID0gZXZl
bnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleHBlY3RlZC5sZW5ndGggaXMgMAogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2luZGV4LW11bHRpZW50cnkuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvaW5kZXgtbXVsdGllbnRyeS5qcwppbmRleCA5ZTFhZDdhNTll
MmNjYzU0YzU2MWEzMGJhOTJmMTExMmVhN2EzNzBmLi41OGZiOTJkMWY5ZGZhYTQ1ZWFiYjRmNWI3
NzhlMjAwOTIxMWVmYmEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvaW5kZXgtbXVsdGllbnRyeS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvaW5kZXgtbXVsdGllbnRyeS5qcwpAQCAtNTQsNiArNTQsMTAg
QEAgZnVuY3Rpb24gYWRkRGF0YSgpCiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7CiAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCdzdG9yZScpLnB1dCh7eDogWzQsIDUsIDZdLCB5OiAnYid9LCAnYmFyJykiKTsKICAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygidHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlJykucHV0KHt4OiBb
NywgNywgOCwgN10sIHk6ICdjJ30sICdiYXonKSIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJ0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoe3g6IFtudWxsLCA5LCA5XSwgeTogJ2QnfSwg
J2Jsb29wJykiKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKIH0KIAogZnVuY3Rpb24gdmVyaWZ5SW5kZXhlcyhpbmRleE5hbWUsIGNhbGxiYWNrKQpAQCAt
NzEsNiArNzUsOSBAQCBmdW5jdGlvbiB2ZXJpZnlJbmRleGVzKGluZGV4TmFtZSwgY2FsbGJhY2sp
CiAgICAgICAgIHsga2V5OiA0LCBwcmltYXJ5S2V5OiAnYmFyJywgeTogJ2InIH0sCiAgICAgICAg
IHsga2V5OiA1LCBwcmltYXJ5S2V5OiAnYmFyJywgeTogJ2InIH0sCiAgICAgICAgIHsga2V5OiA2
LCBwcmltYXJ5S2V5OiAnYmFyJywgeTogJ2InIH0sCisgICAgICAgIHsga2V5OiA3LCBwcmltYXJ5
S2V5OiAnYmF6JywgeTogJ2MnIH0sCisgICAgICAgIHsga2V5OiA4LCBwcmltYXJ5S2V5OiAnYmF6
JywgeTogJ2MnIH0sCisgICAgICAgIHsga2V5OiA5LCBwcmltYXJ5S2V5OiAnYmxvb3AnLCB5OiAn
ZCcgfSwKICAgICBdOwogCiAgICAgdmFyIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJ0cmFuc2FjdGlv
bi5vYmplY3RTdG9yZSgnc3RvcmUnKS5pbmRleCgnIiArIGluZGV4TmFtZSArICInKS5vcGVuQ3Vy
c29yKCkiKTsKQEAgLTgzLDcgKzkwLDcgQEAgZnVuY3Rpb24gdmVyaWZ5SW5kZXhlcyhpbmRleE5h
bWUsIGNhbGxiYWNrKQogICAgICAgICAgICAgc2hvdWxkQmUoImN1cnNvci5rZXkiLCBTdHJpbmco
ZXgua2V5KSk7CiAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnNvci5wcmlt
YXJ5S2V5IiwgZXgucHJpbWFyeUtleSk7CiAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImN1cnNvci52YWx1ZS55IiwgZXgueSk7Ci0gICAgICAgICAgICBjdXJzb3IuY29udGludWUo
KTsKKyAgICAgICAgICAgIGV2YWxBbmRMb2coImN1cnNvci5jb250aW51ZSgpIik7CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBzaG91bGRCZSgiZXhwZWN0ZWQubGVuZ3RoIiwgIjAiKTsK
ICAgICAgICAgfQpAQCAtMTEzLDcgKzEyMCw3IEBAIGZ1bmN0aW9uIHZlcmlmeVVuaXF1ZUNvbnN0
cmFpbnQoKQogICAgICAgICAgICAgZGVidWcoIlRoaXMgc2hvdWxkIGZhaWwgdGhlIHVuaXF1ZW5l
c3MgY29uc3RyYWludCBvbiB0aGUgaW5kZXgsIGFuZCBmYWlsOiIpOwogICAgICAgICAgICAgcmVx
dWVzdCA9IGV2YWxBbmRMb2coInRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZS11bmlxdWUn
KS5wdXQoe3g6IFs1LCAyXSwgeTogJ2MnfSwgJ3Nob3VsZCBmYWlsJykiKTsKICAgICAgICAgICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKLSAgICAgICAg
ICAgIHJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKCkgeyBkZWJ1ZygiUmVxdWVzdCBmYWlsZWQs
IGFzIGV4cGVjdGVkIik7IH07CisgICAgICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlv
bigpIHsgZGVidWcoIlJlcXVlc3QgZmFpbGVkLCBhcyBleHBlY3RlZCAoIiArIHJlcXVlc3QuZXJy
b3IubmFtZSArICIpIik7IH07CiAgICAgICAgIH07CiAgICAgfTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148848</attachid>
            <date>2012-06-21 11:35:19 -0700</date>
            <delta_ts>2012-06-21 11:46:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86123-20120621113519.patch</filename>
            <type>text/plain</type>
            <size>23632</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwOTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJkMzNjY2MwOTViMzlj
MTM5MzQ5NDUyZjY4YjMzMDA0YjkzNGM2Ni4uOTc4NWE0NTZkOGY5NmI1MWY0ZmVkODM0NGQ0YzJi
MGFjYmEwY2Q2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTA2LTE5ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IElt
cGxlbWVudCBzcGVjIGJlaGF2aW9yIGZvciBtdWx0aUVudHJ5IGluZGV4ZXMgd2l0aCBpbnZhbGlk
L2R1cGxpY2F0ZSBzdWJrZXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NjEyMworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KKwor
ICAgICAgICBEaXN0aW5ndWlzaCBiZXR3ZWVuIGFuIGFjdHVhbCBpbnZhbGlkIElEQktleSwgYW5k
IGFuIGFycmF5IG9mCisgICAgICAgIHBvc3NpYmx5LWludmFsaWQgc3Via2V5cyBieSBtYWtpbmcg
SURCS2V5Ojppc1ZhbGlkKCkgY2hlY2sgc3Via2V5cworICAgICAgICBpZiB0aGUgdHlwZSBpcyBh
biBhcnJheS4KKworICAgICAgICBJbnRyb2R1Y2UgYSBuZXcgd2F5IHRvIHRyYW5zZm9ybSBhbiBJ
REJLZXkgaW50byBhCisgICAgICAgIG11bHRpRW50cnktc3BlY2lmaWMgSURCS2V5LCAoSURCS2V5
OjpjcmVhdGVNdWx0aUVudHJ5QXJyYXkpCisgICAgICAgIHRocm93aW5nIG91dCBkdXBsaWNhdGVz
IGFuZCBpbnZhbGlkIGtleXMuIFVzZSBpdCB3aGVuIHN0b3JpbmcKKyAgICAgICAgaW5kZXggZW50
cmllcyBmb3IgbXVsdGlFbnRyeSBpbmRleGVzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czogZXhp
c3RpbmcgdGVzdHMgaGF2ZSBiZWVuIGFsdGVyZWQgdG8gaW5jbHVkZSBuZXcgYmVoYXZpb3IuCisK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCQ3Vyc29yOjpjb250aW51ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkZhY3Rvcnk6OmNt
cCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCSW5kZXg6OmdldCk6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6Z2V0
S2V5KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCS2V5Ojppc1ZhbGlkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5Ojpj
cmVhdGVNdWx0aUVudHJ5QXJyYXkpOgorICAgICAgICAoSURCS2V5KToKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlS
YW5nZTo6b25seSk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6bG93ZXJCb3VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6dXBwZXJCb3VuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJLZXlSYW5nZTo6Ym91bmQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkxldmVsREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCTGV2ZWxE
QkJhY2tpbmdTdG9yZTo6cHV0T2JqZWN0U3RvcmVSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6
SURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6cHV0SW5kZXhEYXRhRm9yUmVjb3JkKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQ29kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQkxldmVsREJDb2Rpbmc6OmVuY29kZUlEQktleSk6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0
U3RvcmU6OmdldCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6YWRkKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpwdXQpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6cHV0SW50ZXJuYWwpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVJREJLZXlGcm9tVmFsdWUpOgorCiAyMDEyLTA2LTIxICBU
YWlqdSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBNb3ZlIHJlcXVlc3RJZCBhbGxvY2F0aW9uIGZyb20gRmlsZVN5c3RlbSBmcm9udGVuZCB0byBi
YWNrZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGY3NTU2YWNjYzAxZjY4YWNkOGU1
NWZkNGZmODhkYWJjZDY1NWNmYjEuLjMzMDQ4ODUzM2QzOGFjZDBjZTVjYjEzODZjNmY0OGRiZjc0
NzEyMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTIt
MDYtMTkgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIElu
ZGV4ZWREQjogSW1wbGVtZW50IHNwZWMgYmVoYXZpb3IgZm9yIG11bHRpRW50cnkgaW5kZXhlcyB3
aXRoIGludmFsaWQvZHVwbGljYXRlIHN1YmtleXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
RmlzaGVyLgorCisgICAgICAgIEFkZCBtYXRjaGluZyBpc1ZhbGlkKCkgdG8gV2ViSURCS2V5IHRv
IG1hdGNoIHRoZSBvbmUgaW4gSURCS2V5LgorCisgICAgICAgICogcHVibGljL1dlYklEQktleS5o
OgorICAgICAgICAqIHNyYy9XZWJJREJLZXkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJL
ZXk6OmlzVmFsaWQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViSURCS2V5
UmFuZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXlSYW5nZTo6YXNzaWduKToKKwog
MjAxMi0wNi0yMCAgWmVldiBMaWViZXIgIDx6bGllYmVyQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbQ2hyb21pdW1dIERhbWFnZSB0cmFja2VyIGlzIG5vdCB1c2VkIHdpdGhvdXQgcGFydGlhbCBz
d2FwLCBjYXVzaW5nIHZhbGlkIHJlbmRlciBwYXNzZXMgdG8gYmUgcmVtb3ZlZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggOGQyMThlZTg1
NTc4ZTgyZTFmN2U0MWMwOTZiOWRlMmM1ZjljMjA2MC4uMjc1OTUxNGVmZjc0MjI0YzYxNzk5Y2Y1
ZjYwNzc5ZmRjZTRkMjQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3IuY3BwCkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBJREJDdXJzb3I6OmFkdmFu
Y2UodW5zaWduZWQgbG9uZyBjb3VudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB2b2lkIElEQkN1cnNv
cjo6Y29udGludWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4ga2V5LCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBJREJfVFJBQ0UoIklEQkN1cnNvcjo6Y29udGludWUiKTsKLSAgICBpZiAo
a2V5ICYmIChrZXktPnR5cGUoKSA9PSBJREJLZXk6OkludmFsaWRUeXBlKSkgeworICAgIGlmIChr
ZXkgJiYgIWtleS0+aXNWYWxpZCgpKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRp
b246OkRBVEFfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAppbmRleCAxODExNmY1YTNlYTk3ODVk
MWI2OWQ4MjhhZjNhZGNkZTFiNmZjNmU5Li5kM2RlOGY2ZmE1YjRlNzMzMzY0MGM2MzEzZDZkNGVm
ZjhlZTlkYjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJG
YWN0b3J5LmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIHNob3J0IElEQkZhY3Rvcnk6OmNtcChQYXNz
UmVmUHRyPElEQktleT4gZmlyc3QsIFBhc3NSZWZQdHI8SURCS2V5PiBzZWNvbmQsIEV4Y2VwCiAg
ICAgQVNTRVJUKGZpcnN0KTsKICAgICBBU1NFUlQoc2Vjb25kKTsKIAotICAgIGlmIChmaXJzdC0+
dHlwZSgpID09IElEQktleTo6SW52YWxpZFR5cGUgfHwgc2Vjb25kLT50eXBlKCkgPT0gSURCS2V5
OjpJbnZhbGlkVHlwZSkgeworICAgIGlmICghZmlyc3QtPmlzVmFsaWQoKSB8fCAhc2Vjb25kLT5p
c1ZhbGlkKCkpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6REFUQV9FUlI7
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0gICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCS2V5LmNwcAppbmRleCA1OTg2ODZlMWEwMzlhZGJmZGNiMjQ3N2ZmZmUwOTEx
NTM4YzY4MzFjLi5iNzZlZDJjZWUzMDVkNjI4N2Y5ZGIxM2UxMGRkMTA4ZTYxZDY4NGVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5jcHAKQEAgLTQwLDYgKzQw
LDIxIEBAIElEQktleTo6fklEQktleSgpCiB7CiB9CiAKK2Jvb2wgSURCS2V5Ojppc1ZhbGlkKCkg
Y29uc3QKK3sKKyAgICBpZiAobV90eXBlID09IEludmFsaWRUeXBlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAobV90eXBlID09IEFycmF5VHlwZSkgeworICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG1fYXJyYXkuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmICgh
bV9hcnJheVtpXS0+aXNWYWxpZCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiBpbnQgSURCS2V5Ojpjb21w
YXJlKGNvbnN0IElEQktleSogb3RoZXIpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG90aGVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmgKaW5kZXggNDBjZTgzM2Y5MDg5
NDM1MjExZTQ5NzFkMzU3MzBmYzJjYzU4NGIxNy4uY2JmZGYxZDRmYzU2ZWY0NWFmNTIwYWEyNmJk
MTUwOWE2NjZmNWY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
LmgKQEAgLTczLDYgKzczLDMyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGlkYktleS5yZWxl
YXNlKCk7CiAgICAgfQogCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCS2V5PiBjcmVhdGVNdWx0
aUVudHJ5QXJyYXkoY29uc3QgS2V5QXJyYXkmIGFycmF5KQorICAgIHsKKyAgICAgICAgUmVmUHRy
PElEQktleT4gaWRiS2V5ID0gYWRvcHRSZWYobmV3IElEQktleSgpKTsKKyAgICAgICAgaWRiS2V5
LT5tX3R5cGUgPSBBcnJheVR5cGU7CisgICAgICAgIEtleUFycmF5JiByZXN1bHQgPSBpZGJLZXkt
Pm1fYXJyYXk7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcnJheS5zaXplKCk7
IGkrKykgeworICAgICAgICAgICAgaWYgKCFhcnJheVtpXS0+aXNWYWxpZCgpKQorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBib29sIHNraXAgPSBmYWxzZTsKKyAgICAg
ICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgcmVzdWx0LnNpemUoKTsgaisrKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGFycmF5W2ldLT5pc0VxdWFsKHJlc3VsdFtqXS5nZXQoKSkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgc2tpcCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghc2tp
cCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYXJyYXlbaV0pOworICAgICAgICAg
ICAgICAgIGlkYktleS0+bV9zaXplRXN0aW1hdGUgKz0gYXJyYXlbaV0tPm1fc2l6ZUVzdGltYXRl
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIEFTU0VSVChpZGJLZXktPmlzVmFs
aWQoKSk7CisgICAgICAgIHJldHVybiBpZGJLZXkucmVsZWFzZSgpOworICAgIH0KKwogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlQXJyYXkoY29uc3QgS2V5QXJyYXkmIGFycmF5
KQogICAgIHsKICAgICAgICAgUmVmUHRyPElEQktleT4gaWRiS2V5ID0gYWRvcHRSZWYobmV3IElE
QktleSgpKTsKQEAgLTk4LDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Qg
eyByZXR1cm4gbV90eXBlICE9IEludmFsaWRUeXBlOyB9CisgICAgYm9vbCBpc1ZhbGlkKCkgY29u
c3Q7CiAKICAgICBjb25zdCBLZXlBcnJheSYgYXJyYXkoKSBjb25zdAogICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNraW5nU3Rv
cmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tp
bmdTdG9yZS5jcHAKaW5kZXggNDk3NzdjNjFiZjM1Y2M3YjY0ZDExZjMxNWZhMjMzZDVkNzc2OTVm
Yy4uOGRjYjQ2MDVjMGFjN2MzMDMyMTQyZWY0NDJjMjEyNjM0Mzg1OWI1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tp
bmdTdG9yZS5jcHAKQEAgLTU4Nyw2ICs1ODcsNyBAQCBzdGF0aWMgaW50NjRfdCBnZXROZXdWZXJz
aW9uTnVtYmVyKExldmVsREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YQog
CiBib29sIElEQkxldmVsREJCYWNraW5nU3RvcmU6OnB1dE9iamVjdFN0b3JlUmVjb3JkKGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmIGtleSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSwgT2JqZWN0U3RvcmVSZWNvcmRJZGVudGlmaWVyKiByZWNvcmRJ
ZGVudGlmaWVyKQogeworICAgIEFTU0VSVChrZXkuaXNWYWxpZCgpKTsKICAgICBBU1NFUlQobV9j
dXJyZW50VHJhbnNhY3Rpb24pOwogICAgIGludDY0X3QgdmVyc2lvbiA9IGdldE5ld1ZlcnNpb25O
dW1iZXIobV9jdXJyZW50VHJhbnNhY3Rpb24uZ2V0KCksIGRhdGFiYXNlSWQsIG9iamVjdFN0b3Jl
SWQpOwogICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBvYmplY3RTdG9yZWRhdGFLZXkgPSBPYmplY3RT
dG9yZURhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBrZXkpOwpAQCAt
ODY5LDYgKzg3MCw3IEBAIHZvaWQgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlSW5kZXgo
aW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlCiAKIGJvb2wgSURCTGV2ZWxE
QkJhY2tpbmdTdG9yZTo6cHV0SW5kZXhEYXRhRm9yUmVjb3JkKGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYga2V5
LCBjb25zdCBPYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXIqIHJlY29yZElkZW50aWZpZXIpCiB7
CisgICAgQVNTRVJUKGtleS5pc1ZhbGlkKCkpOwogICAgIEFTU0VSVChpbmRleElkID49IGtNaW5p
bXVtSW5kZXhJZCk7CiAgICAgY29uc3QgTGV2ZWxEQlJlY29yZElkZW50aWZpZXIqIGxldmVsREJS
ZWNvcmRJZGVudGlmaWVyID0gc3RhdGljX2Nhc3Q8Y29uc3QgTGV2ZWxEQlJlY29yZElkZW50aWZp
ZXIqPihyZWNvcmRJZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQ29kaW5nLmNwcAppbmRleCA0N2M5ZjdkM2QxZjRmMWQ2
YTIyMTE4ZjY0MTk4MWQzNTc1ZWU1ZGE3Li5iZjE5NWFkY2E0YjdkYmE5NWRiZDc3ODY5YmU4ODE2
MDE2ZjBlYzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJMZXZlbERCQ29kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJMZXZlbERCQ29kaW5nLmNwcApAQCAtMzg3LDYgKzM4Nyw3IEBAIFZlY3RvcjxjaGFyPiBl
bmNvZGVJREJLZXkoY29uc3QgSURCS2V5JiBrZXkpCiB2b2lkIGVuY29kZUlEQktleShjb25zdCBJ
REJLZXkmIGtleSwgVmVjdG9yPGNoYXI+JiBpbnRvKQogewogICAgIHNpemVfdCBwcmV2aW91c1Np
emUgPSBpbnRvLnNpemUoKTsKKyAgICBBU1NFUlQoa2V5LmlzVmFsaWQoKSk7CiAgICAgc3dpdGNo
IChrZXkudHlwZSgpKSB7CiAgICAgY2FzZSBJREJLZXk6OkludmFsaWRUeXBlOgogICAgIGNhc2Ug
SURCS2V5OjpNaW5UeXBlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCT2JqZWN0U3RvcmUuY3BwCmluZGV4IGI1ZDc4MTRjYzIxMGU2NmQ0ZGQ4ZDI4ODU3MWJk
MDE4YTNjMDIzOGYuLmIwZmFlODViZjc2OGE4Mjg3NzA5NTI2NTExZjhlODY0Mjc4ODE0ODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9y
ZS5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVj
dFN0b3JlOjphZGQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzcwogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBpZiAoa2V5ICYmIChrZXktPnR5cGUoKSA9PSBJREJL
ZXk6OkludmFsaWRUeXBlKSkgeworICAgIGlmIChrZXkgJiYgIWtleS0+aXNWYWxpZCgpKSB7CiAg
ICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSOwogICAgICAgICByZXR1
cm4gMDsKICAgICB9CkBAIC0xNTksNyArMTU5LDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJ
REJPYmplY3RTdG9yZTo6cHV0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3MK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgaWYgKGtleSAmJiAoa2V5LT50eXBlKCkg
PT0gSURCS2V5OjpJbnZhbGlkVHlwZSkpIHsKKyAgICBpZiAoa2V5ICYmICFrZXktPmlzVmFsaWQo
KSkgewogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEQVRBX0VSUjsKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAppbmRleCBkOWFm
MmI5NzMzZmY4MzE2ZTU3OGE1OTE2ODA0OTRjODAyYzlkMzcxLi5mZWNmODgwY2ExOGQ2OTNiZTQ1
MTU3NWE4YzE4MGVkYTIzOTM5YmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcApAQCAt
MjY0LDYgKzI2NCw5IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6cHV0SW50ZXJu
YWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8CiAgICAgICAgIGNvbnN0IFJl
ZlB0cjxJREJJbmRleEJhY2tlbmRJbXBsPiYgaW5kZXggPSBpdC0+c2Vjb25kOwogCiAgICAgICAg
IFJlZlB0cjxJREJLZXk+IGluZGV4S2V5ID0gZmV0Y2hLZXlGcm9tS2V5UGF0aCh2YWx1ZS5nZXQo
KSwgaW5kZXgtPmtleVBhdGgoKSk7CisgICAgICAgIGlmIChpbmRleEtleSAmJiBpbmRleC0+bXVs
dGlFbnRyeSgpICYmIGluZGV4S2V5LT50eXBlKCkgPT0gSURCS2V5OjpBcnJheVR5cGUpCisgICAg
ICAgICAgICBpbmRleEtleSA9IElEQktleTo6Y3JlYXRlTXVsdGlFbnRyeUFycmF5KGluZGV4S2V5
LT5hcnJheSgpKTsKKwogICAgICAgICBpZiAoIWluZGV4S2V5IHx8ICFpbmRleEtleS0+aXNWYWxp
ZCgpKSB7CiAgICAgICAgICAgICAvLyBOdWxsL2ludmFsaWQga2V5cyBub3QgYWRkZWQgdG8gaW5k
ZXg7IG51bGwgZW50cnkga2VlcHMgaXRlcmF0b3IvdmVjdG9yIGluZGV4ZXMgY29uc2lzdGVudC4K
ICAgICAgICAgICAgIGluZGV4S2V5LmNsZWFyKCk7CkBAIC0yNzksNyArMjgyLDcgQEAgdm9pZCBJ
REJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpwdXRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc1JlZlB0cjwKICAgICAgICAgfQogCiAgICAgICAgIGlmIChpbmRleC0+bXVsdGlF
bnRyeSgpICYmIGluZGV4S2V5LT50eXBlKCkgPT0gSURCS2V5OjpBcnJheVR5cGUpIHsKLSAgICAg
ICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBpbmRleEtleS0+YXJyYXkoKS5zaXplKCk7ICsr
aikgeworICAgICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBpbmRleEtleS0+YXJyYXko
KS5zaXplKCk7ICsraikgewogICAgICAgICAgICAgICAgIGlmICghaW5kZXgtPmFkZGluZ0tleUFs
bG93ZWQoaW5kZXhLZXktPmFycmF5KClbal0uZ2V0KCksIGtleS5nZXQoKSkpIHsKICAgICAgICAg
ICAgICAgICAgICAgb2JqZWN0U3RvcmUtPnJlc2V0QXV0b0luY3JlbWVudEtleUNhY2hlKCk7CiAg
ICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpj
cmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSLCAiT25lIG9mIHRoZSBkZXJpdmVk
IChmcm9tIGEga2V5UGF0aCkga2V5cyBmb3IgYW4gaW5kZXggZG9lcyBub3Qgc2F0aXNmeSBpdHMg
dW5pcXVlbmVzcyByZXF1aXJlbWVudHMuIikpOwpAQCAtNDI2LDggKzQyOSwxMCBAQCBwdWJsaWM6
CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlQobV9pbmRleC0+bXVsdGlFbnRy
eSgpKTsKICAgICAgICAgICAgIEFTU0VSVChpbmRleEtleS0+dHlwZSgpID09IElEQktleTo6QXJy
YXlUeXBlKTsKKworICAgICAgICAgICAgaW5kZXhLZXkgPSBJREJLZXk6OmNyZWF0ZU11bHRpRW50
cnlBcnJheShpbmRleEtleS0+YXJyYXkoKSk7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGluZGV4S2V5LT5hcnJheSgpLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKCFtX2luZGV4LT5hZGRpbmdLZXlBbGxvd2VkKGluZGV4S2V5LmdldCgpKSkKKyAgICAgICAg
ICAgICAgICBpZiAoIW1faW5kZXgtPmFkZGluZ0tleUFsbG93ZWQoaW5kZXhLZXktPmFycmF5KClb
aV0uZ2V0KCkpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAg
ICAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZS5wdXRJbmRleERhdGFGb3JSZWNvcmQobV9kYXRhYmFz
ZUlkLCBtX29iamVjdFN0b3JlSWQsIG1faW5kZXgtPmlkKCksICppbmRleEtleS0+YXJyYXkoKVtp
XSwgcmVjb3JkSWRlbnRpZmllcikpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRp
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5j
cHAKaW5kZXggZDMxNmFkNzI5OWY0ZTI4MzE0NTk1ZTM1ZGMzZmQwNTA3MjgzYzYzYy4uZWU3NmVl
MjlhMDAxZDZjZDc2YzVmMTdhZDM1ZWNiN2ZjYzY3NGMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKQEAgLTY1LDggKzY1LDkg
QEAgc3RhdGljIFBhc3NSZWZQdHI8SURCS2V5PiBjcmVhdGVJREJLZXlGcm9tVmFsdWUodjg6Okhh
bmRsZTx2ODo6VmFsdWU+IHZhbHVlLCBWZWMKICAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFs
dWU+IGl0ZW0gPSBhcnJheS0+R2V0KHY4OjpJbnQzMjo6TmV3KGkpKTsKICAgICAgICAgICAgIFJl
ZlB0cjxJREJLZXk+IHN1YmtleSA9IGNyZWF0ZUlEQktleUZyb21WYWx1ZShpdGVtLCBzdGFjayk7
CiAgICAgICAgICAgICBpZiAoIXN1YmtleSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAg
ICAgICAgICAgIHN1YmtleXMuYXBwZW5kKHN1YmtleSk7CisgICAgICAgICAgICAgICAgc3Via2V5
cy5hcHBlbmQoSURCS2V5OjpjcmVhdGVJbnZhbGlkKCkpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHN1YmtleXMuYXBwZW5kKHN1YmtleSk7CiAgICAgICAgIH0KIAogICAgICAg
ICBzdGFjay5yZW1vdmVMYXN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJJREJLZXkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklE
QktleS5oCmluZGV4IGE3ODE0MjM0NTk0MGJkYTE2OGEwNjcyZDM3ZmU3NDBhY2FjZTQzMWMuLjBi
NzA0Y2FjMjg0NDYxY2MzNjEwMWFlNjFhZWQ2NThkNDAzNjE5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQktleS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYklEQktleS5oCkBAIC03OSw2ICs3OSw3IEBAIHB1YmxpYzoKICAg
ICB9OwogCiAgICAgV0VCS0lUX0VYUE9SVCBUeXBlIHR5cGUoKSBjb25zdDsKKyAgICBXRUJLSVRf
RVhQT1JUIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwogICAgIFdFQktJVF9FWFBPUlQgV2ViVmVjdG9y
PFdlYklEQktleT4gYXJyYXkoKSBjb25zdDsgLy8gT25seSB2YWxpZCBmb3IgQXJyYXlUeXBlLgog
ICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHN0cmluZygpIGNvbnN0OyAvLyBPbmx5IHZhbGlk
IGZvciBTdHJpbmdUeXBlLgogICAgIFdFQktJVF9FWFBPUlQgZG91YmxlIGRhdGUoKSBjb25zdDsg
Ly8gT25seSB2YWxpZCBmb3IgRGF0ZVR5cGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJLZXkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCS2V5LmNwcAppbmRleCAyNWJlNmM1MmY3NDQ1M2Q3ZDM2YWJkYzA4MmQ2MjQ4M2I0NDhkZjBi
Li5jZmFkYWZiYWNkOTczODllODVmNmU0YzNkZTE5MjI1MDRhYmEzOWE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQktleS5jcHAKQEAgLTEyMCw2ICsxMjAsOCBAQCBzdGF0aWMg
UGFzc1JlZlB0cjxJREJLZXk+IGNvbnZlcnRGcm9tV2ViSURCS2V5QXJyYXkoY29uc3QgV2ViVmVj
dG9yPFdlYklEQktleT4mCiAgICAgICAgICAgICBrZXlzLmFwcGVuZChJREJLZXk6OmNyZWF0ZU51
bWJlcihhcnJheVtpXS5udW1iZXIoKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgV2ViSURCS2V5OjpJbnZhbGlkVHlwZToKKyAgICAgICAgICAgIGtleXMuYXBwZW5kKElEQktl
eTo6Y3JlYXRlSW52YWxpZCgpKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdl
YklEQktleTo6TnVsbFR5cGU6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgICAgIGJyZWFrOwpAQCAtMTQ5LDYgKzE1MSw4IEBAIHN0YXRpYyB2b2lkIGNvbnZlcnRU
b1dlYklEQktleUFycmF5KGNvbnN0IElEQktleTo6S2V5QXJyYXkmIGFycmF5LCBXZWJWZWN0b3I8
V2ViCiAgICAgICAgICAgICBrZXlzW2ldID0gV2ViSURCS2V5OjpjcmVhdGVOdW1iZXIoa2V5LT5u
dW1iZXIoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJREJLZXk6OkludmFs
aWRUeXBlOgorICAgICAgICAgICAga2V5c1tpXSA9IFdlYklEQktleTo6Y3JlYXRlSW52YWxpZCgp
OworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSURCS2V5OjpNaW5UeXBlOgogICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTE5
OSw2ICsyMDMsMTMgQEAgV2ViSURCS2V5OjpUeXBlIFdlYklEQktleTo6dHlwZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIFR5cGUobV9wcml2YXRlLT50eXBlKCkpOwogfQogCitib29sIFdlYklEQktleTo6
aXNWYWxpZCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3ByaXZhdGUuZ2V0KCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5pc1ZhbGlkKCk7Cit9CisKIFdlYlZl
Y3RvcjxXZWJJREJLZXk+IFdlYklEQktleTo6YXJyYXkoKSBjb25zdAogewogICAgIFdlYlZlY3Rv
cjxXZWJJREJLZXk+IGtleXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJLZXlSYW5nZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJL
ZXlSYW5nZS5jcHAKaW5kZXggZmVmMGQzYzNkYWVhYTU0MGJhYjczODNiNWIzNzA0MzJhZDYyZjhm
Yy4uNDE5MjYxYzIyM2VkZDY1NWRkNDU1ZGY2NDVhMzY3MWNhY2YwNDQxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5UmFuZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleVJhbmdlLmNwcApAQCAtNDMsNyArNDMsNyBA
QCB2b2lkIFdlYklEQktleVJhbmdlOjphc3NpZ24oY29uc3QgV2ViSURCS2V5UmFuZ2UmIG90aGVy
KQogCiB2b2lkIFdlYklEQktleVJhbmdlOjphc3NpZ24oY29uc3QgV2ViSURCS2V5JiBsb3dlciwg
Y29uc3QgV2ViSURCS2V5JiB1cHBlciwgYm9vbCBsb3dlck9wZW4sIGJvb2wgdXBwZXJPcGVuKQog
ewotICAgIGlmIChsb3dlci50eXBlKCkgPT0gV2ViSURCS2V5OjpJbnZhbGlkVHlwZSAmJiB1cHBl
ci50eXBlKCkgPT0gV2ViSURCS2V5OjpJbnZhbGlkVHlwZSkKKyAgICBpZiAoIWxvd2VyLmlzVmFs
aWQoKSAmJiAhdXBwZXIuaXNWYWxpZCgpKQogICAgICAgICBtX3ByaXZhdGUgPSAwOwogICAgIGVs
c2UKICAgICAgICAgbV9wcml2YXRlID0gSURCS2V5UmFuZ2U6OmNyZWF0ZShsb3dlciwgdXBwZXIs
IGxvd2VyT3BlbiA/IElEQktleVJhbmdlOjpMb3dlckJvdW5kT3BlbiA6IElEQktleVJhbmdlOjpM
b3dlckJvdW5kQ2xvc2VkLCB1cHBlck9wZW4gPyBJREJLZXlSYW5nZTo6VXBwZXJCb3VuZE9wZW4g
OiBJREJLZXlSYW5nZTo6VXBwZXJCb3VuZENsb3NlZCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjU1OTJlMjM5MDJjYTll
OGQ5YWQ5ZTg2ODE0NjQzZWFlNTg5ZTYwMS4uODQyYzE5NDUzOTVjNGI0ZTBmMjM4NTAzMDRiOWI5
N2RjYTNhZThkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA2LTE5ICBBbGVjIEZsZXR0
ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEltcGxlbWVu
dCBzcGVjIGJlaGF2aW9yIGZvciBtdWx0aUVudHJ5IGluZGV4ZXMgd2l0aCBpbnZhbGlkL2R1cGxp
Y2F0ZSBzdWJrZXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NjEyMworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KKworICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LW11bHRpZW50cnktZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbmRleC1tdWx0aWVudHJ5LmpzOgor
ICAgICAgICAoYWRkRGF0YSk6CisgICAgICAgICh2ZXJpZnlJbmRleGVzLnJlcXVlc3Qub25zdWNj
ZXNzKToKKyAgICAgICAgKHZlcmlmeUluZGV4ZXMpOgorICAgICAgICAodmVyaWZ5VW5pcXVlQ29u
c3RyYWludC5yZXF1ZXN0Lm9uc3VjY2Vzcy5yZXF1ZXN0Lm9uc3VjY2Vzcy5yZXF1ZXN0Lm9uZXJy
b3IpOgorICAgICAgICAodmVyaWZ5VW5pcXVlQ29uc3RyYWludC5yZXF1ZXN0Lm9uc3VjY2Vzcy5y
ZXF1ZXN0Lm9uc3VjY2Vzcyk6CisgICAgICAgICh2ZXJpZnlVbmlxdWVDb25zdHJhaW50LnJlcXVl
c3Qub25zdWNjZXNzKToKKyAgICAgICAgKHZlcmlmeVVuaXF1ZUNvbnN0cmFpbnQpOgorCiAyMDEy
LTA2LTIxICBUYWlqdSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBNb3ZlIHJlcXVlc3RJZCBhbGxvY2F0aW9uIGZyb20gRmlsZVN5c3RlbSBmcm9u
dGVuZCB0byBiYWNrZW5kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbmRleC1tdWx0aWVudHJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2luZGV4LW11bHRpZW50cnktZXhwZWN0ZWQudHh0CmluZGV4IDNiOGIwN2IzODE0NmU4
ODM0MjI2MDEyMDcwMmFmNTM1NjM3MWY3MGMuLjgyY2JkNDlmZWJjZjE1MTM5OGFiYmY3MzFmNWU3
N2NmNjFkNjA2ZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
ZGV4LW11bHRpZW50cnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2luZGV4LW11bHRpZW50cnktZXhwZWN0ZWQudHh0CkBAIC0yNSw2ICsyNSw4IEBAIHRy
YW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLnB1dCh7eDogWzcsIDgsIDldLCB5OiAnYSd9
LCAnZm9vJykKIE5vdyBvdmVyd3JpdGUgdGhlbSB3aXRoIHdoYXQgd2UncmUgZXhwZWN0aW5nCiB0
cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoe3g6IFsxLCAyLCAzXSwgeTogJ2En
fSwgJ2ZvbycpCiB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoe3g6IFs0LCA1
LCA2XSwgeTogJ2InfSwgJ2JhcicpCit0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUnKS5w
dXQoe3g6IFs3LCA3LCA4LCA3XSwgeTogJ2MnfSwgJ2JheicpCit0cmFuc2FjdGlvbi5vYmplY3RT
dG9yZSgnc3RvcmUnKS5wdXQoe3g6IFtudWxsLCA5LCA5XSwgeTogJ2QnfSwgJ2Jsb29wJykKIAog
VmVyaWZ5aW5nIGluZGV4OiBpbmRleAogdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbihbJ3N0
b3JlJ10sICdyZWFkb25seScpCkBAIC0zNCwzMSArMzYsNTUgQEAgUEFTUyBleCBpcyBub24tbnVs
bC4KIFBBU1MgY3Vyc29yLmtleSBpcyAxCiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJmb28i
CiBQQVNTIGN1cnNvci52YWx1ZS55IGlzICJhIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5r
ZXkgaXMgMgogUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiZm9vIgogUEFTUyBjdXJzb3IudmFs
dWUueSBpcyAiYSIKK2N1cnNvci5jb250aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVz
dWx0CiBQQVNTIGV4IGlzIG5vbi1udWxsLgogUEFTUyBjdXJzb3Iua2V5IGlzIDMKIFBBU1MgY3Vy
c29yLnByaW1hcnlLZXkgaXMgImZvbyIKIFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImEiCitjdXJz
b3IuY29udGludWUoKQogY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleCBpcyBu
b24tbnVsbC4KIFBBU1MgY3Vyc29yLmtleSBpcyA0CiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlz
ICJiYXIiCiBQQVNTIGN1cnNvci52YWx1ZS55IGlzICJiIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1
cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQKIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1
cnNvci5rZXkgaXMgNQogUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmFyIgogUEFTUyBjdXJz
b3IudmFsdWUueSBpcyAiYiIKK2N1cnNvci5jb250aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJn
ZXQucmVzdWx0CiBQQVNTIGV4IGlzIG5vbi1udWxsLgogUEFTUyBjdXJzb3Iua2V5IGlzIDYKIFBB
U1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgImJhciIKIFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImIi
CitjdXJzb3IuY29udGludWUoKQorY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBl
eCBpcyBub24tbnVsbC4KK1BBU1MgY3Vyc29yLmtleSBpcyA3CitQQVNTIGN1cnNvci5wcmltYXJ5
S2V5IGlzICJiYXoiCitQQVNTIGN1cnNvci52YWx1ZS55IGlzICJjIgorY3Vyc29yLmNvbnRpbnVl
KCkKK2N1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZXggaXMgbm9uLW51bGwuCitQ
QVNTIGN1cnNvci5rZXkgaXMgOAorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmF6IgorUEFT
UyBjdXJzb3IudmFsdWUueSBpcyAiYyIKK2N1cnNvci5jb250aW51ZSgpCitjdXJzb3IgPSBldmVu
dC50YXJnZXQucmVzdWx0CitQQVNTIGV4IGlzIG5vbi1udWxsLgorUEFTUyBjdXJzb3Iua2V5IGlz
IDkKK1BBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgImJsb29wIgorUEFTUyBjdXJzb3IudmFsdWUu
eSBpcyAiZCIKK2N1cnNvci5jb250aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0
CiBQQVNTIGV4cGVjdGVkLmxlbmd0aCBpcyAwCiAKQEAgLTcxLDcgKzk3LDcgQEAgdHJhbnNhY3Rp
b24ub2JqZWN0U3RvcmUoJ3N0b3JlLXVuaXF1ZScpLnB1dCh7eDogWzEsIDIsIDddLCB5OiAnYSd9
LCAnZm9vJykKIHN1Y2Nlc3MhCiBUaGlzIHNob3VsZCBmYWlsIHRoZSB1bmlxdWVuZXNzIGNvbnN0
cmFpbnQgb24gdGhlIGluZGV4LCBhbmQgZmFpbDoKIHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdz
dG9yZS11bmlxdWUnKS5wdXQoe3g6IFs1LCAyXSwgeTogJ2MnfSwgJ3Nob3VsZCBmYWlsJykKLVJl
cXVlc3QgZmFpbGVkLCBhcyBleHBlY3RlZAorUmVxdWVzdCBmYWlsZWQsIGFzIGV4cGVjdGVkIChE
YXRhRXJyb3IpCiBUcmFuc2FjdGlvbiBhYm9ydGVkIGFzIGV4cGVjdGVkCiAKIENyZWF0ZSBhbiBp
bmRleCBvbiBhIHBvcHVsYXRlZCBzdG9yZQpAQCAtODksMzEgKzExNSw1NSBAQCBQQVNTIGV4IGlz
IG5vbi1udWxsLgogUEFTUyBjdXJzb3Iua2V5IGlzIDEKIFBBU1MgY3Vyc29yLnByaW1hcnlLZXkg
aXMgImZvbyIKIFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImEiCitjdXJzb3IuY29udGludWUoKQog
Y3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleCBpcyBub24tbnVsbC4KIFBBU1Mg
Y3Vyc29yLmtleSBpcyAyCiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJmb28iCiBQQVNTIGN1
cnNvci52YWx1ZS55IGlzICJhIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2ZW50LnRh
cmdldC5yZXN1bHQKIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5rZXkgaXMgMwog
UEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiZm9vIgogUEFTUyBjdXJzb3IudmFsdWUueSBpcyAi
YSIKK2N1cnNvci5jb250aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CiBQQVNT
IGV4IGlzIG5vbi1udWxsLgogUEFTUyBjdXJzb3Iua2V5IGlzIDQKIFBBU1MgY3Vyc29yLnByaW1h
cnlLZXkgaXMgImJhciIKIFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImIiCitjdXJzb3IuY29udGlu
dWUoKQogY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleCBpcyBub24tbnVsbC4K
IFBBU1MgY3Vyc29yLmtleSBpcyA1CiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJiYXIiCiBQ
QVNTIGN1cnNvci52YWx1ZS55IGlzICJiIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5rZXkg
aXMgNgogUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmFyIgogUEFTUyBjdXJzb3IudmFsdWUu
eSBpcyAiYiIKK2N1cnNvci5jb250aW51ZSgpCitjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0
CitQQVNTIGV4IGlzIG5vbi1udWxsLgorUEFTUyBjdXJzb3Iua2V5IGlzIDcKK1BBU1MgY3Vyc29y
LnByaW1hcnlLZXkgaXMgImJheiIKK1BBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImMiCitjdXJzb3Iu
Y29udGludWUoKQorY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBleCBpcyBub24t
bnVsbC4KK1BBU1MgY3Vyc29yLmtleSBpcyA4CitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJi
YXoiCitQQVNTIGN1cnNvci52YWx1ZS55IGlzICJjIgorY3Vyc29yLmNvbnRpbnVlKCkKK2N1cnNv
ciA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZXggaXMgbm9uLW51bGwuCitQQVNTIGN1cnNv
ci5rZXkgaXMgOQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmxvb3AiCitQQVNTIGN1cnNv
ci52YWx1ZS55IGlzICJkIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQKIFBBU1MgZXhwZWN0ZWQubGVuZ3RoIGlzIDAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9pbmRleC1tdWx0aWVudHJ5LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2luZGV4LW11bHRpZW50cnkuanMKaW5kZXggOWUxYWQ3YTU5ZTJjY2M1NGM1
NjFhMzBiYTkyZjExMTJlYTdhMzcwZi4uNThmYjkyZDFmOWRmYWE0NWVhYmI0ZjViNzc4ZTIwMDky
MTFlZmJhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2luZGV4LW11bHRpZW50cnkuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2luZGV4LW11bHRpZW50cnkuanMKQEAgLTU0LDYgKzU0LDEwIEBAIGZ1bmN0
aW9uIGFkZERhdGEoKQogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOwogICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmUnKS5wdXQoe3g6IFs0LCA1LCA2XSwgeTogJ2InfSwgJ2JhcicpIik7CiAgICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coInRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLnB1dCh7eDogWzcsIDcsIDgs
IDddLCB5OiAnYyd9LCAnYmF6JykiKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygidHJhbnNhY3Rpb24ub2Jq
ZWN0U3RvcmUoJ3N0b3JlJykucHV0KHt4OiBbbnVsbCwgOSwgOV0sIHk6ICdkJ30sICdibG9vcCcp
Iik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiB9CiAK
IGZ1bmN0aW9uIHZlcmlmeUluZGV4ZXMoaW5kZXhOYW1lLCBjYWxsYmFjaykKQEAgLTcxLDYgKzc1
LDkgQEAgZnVuY3Rpb24gdmVyaWZ5SW5kZXhlcyhpbmRleE5hbWUsIGNhbGxiYWNrKQogICAgICAg
ICB7IGtleTogNCwgcHJpbWFyeUtleTogJ2JhcicsIHk6ICdiJyB9LAogICAgICAgICB7IGtleTog
NSwgcHJpbWFyeUtleTogJ2JhcicsIHk6ICdiJyB9LAogICAgICAgICB7IGtleTogNiwgcHJpbWFy
eUtleTogJ2JhcicsIHk6ICdiJyB9LAorICAgICAgICB7IGtleTogNywgcHJpbWFyeUtleTogJ2Jh
eicsIHk6ICdjJyB9LAorICAgICAgICB7IGtleTogOCwgcHJpbWFyeUtleTogJ2JheicsIHk6ICdj
JyB9LAorICAgICAgICB7IGtleTogOSwgcHJpbWFyeUtleTogJ2Jsb29wJywgeTogJ2QnIH0sCiAg
ICAgXTsKIAogICAgIHZhciByZXF1ZXN0ID0gZXZhbEFuZExvZygidHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoJ3N0b3JlJykuaW5kZXgoJyIgKyBpbmRleE5hbWUgKyAiJykub3BlbkN1cnNvcigpIik7
CkBAIC04Myw3ICs5MCw3IEBAIGZ1bmN0aW9uIHZlcmlmeUluZGV4ZXMoaW5kZXhOYW1lLCBjYWxs
YmFjaykKICAgICAgICAgICAgIHNob3VsZEJlKCJjdXJzb3Iua2V5IiwgU3RyaW5nKGV4LmtleSkp
OwogICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJzb3IucHJpbWFyeUtleSIs
IGV4LnByaW1hcnlLZXkpOwogICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJz
b3IudmFsdWUueSIsIGV4LnkpOwotICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAg
ICAgICAgICBldmFsQW5kTG9nKCJjdXJzb3IuY29udGludWUoKSIpOwogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgc2hvdWxkQmUoImV4cGVjdGVkLmxlbmd0aCIsICIwIik7CiAgICAgICAg
IH0KQEAgLTExMyw3ICsxMjAsNyBAQCBmdW5jdGlvbiB2ZXJpZnlVbmlxdWVDb25zdHJhaW50KCkK
ICAgICAgICAgICAgIGRlYnVnKCJUaGlzIHNob3VsZCBmYWlsIHRoZSB1bmlxdWVuZXNzIGNvbnN0
cmFpbnQgb24gdGhlIGluZGV4LCBhbmQgZmFpbDoiKTsKICAgICAgICAgICAgIHJlcXVlc3QgPSBl
dmFsQW5kTG9nKCJ0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUtdW5pcXVlJykucHV0KHt4
OiBbNSwgMl0sIHk6ICdjJ30sICdzaG91bGQgZmFpbCcpIik7CiAgICAgICAgICAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7Ci0gICAgICAgICAgICByZXF1
ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsgZGVidWcoIlJlcXVlc3QgZmFpbGVkLCBhcyBleHBl
Y3RlZCIpOyB9OworICAgICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24oKSB7IGRl
YnVnKCJSZXF1ZXN0IGZhaWxlZCwgYXMgZXhwZWN0ZWQgKCIgKyByZXF1ZXN0LmVycm9yLm5hbWUg
KyAiKSIpOyB9OwogICAgICAgICB9OwogICAgIH07CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148851</attachid>
            <date>2012-06-21 11:46:17 -0700</date>
            <delta_ts>2012-06-21 15:28:57 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-86123-20120621114617.patch</filename>
            <type>text/plain</type>
            <size>23569</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwOTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTUxZDBjMmY3OTIxYzYw
OThlNjVmYjlmYzRhMTk5NzU2NTUwMTM0Ni4uMmFkYmFhNGUxZjAxNTQyZDI3YjczZDgwOWExODhm
MDcyYjg2Y2I4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTA2LTIxICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IElt
cGxlbWVudCBzcGVjIGJlaGF2aW9yIGZvciBtdWx0aUVudHJ5IGluZGV4ZXMgd2l0aCBpbnZhbGlk
L2R1cGxpY2F0ZSBzdWJrZXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NjEyMworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KKwor
ICAgICAgICBEaXN0aW5ndWlzaCBiZXR3ZWVuIGFuIGFjdHVhbCBpbnZhbGlkIElEQktleSwgYW5k
IGFuIGFycmF5IG9mCisgICAgICAgIHBvc3NpYmx5LWludmFsaWQgc3Via2V5cyBieSBtYWtpbmcg
SURCS2V5Ojppc1ZhbGlkKCkgY2hlY2sgc3Via2V5cworICAgICAgICBpZiB0aGUgdHlwZSBpcyBh
biBhcnJheS4KKworICAgICAgICBJbnRyb2R1Y2UgYSBuZXcgd2F5IHRvIHRyYW5zZm9ybSBhbiBJ
REJLZXkgaW50byBhCisgICAgICAgIG11bHRpRW50cnktc3BlY2lmaWMgSURCS2V5LCAoSURCS2V5
OjpjcmVhdGVNdWx0aUVudHJ5QXJyYXkpCisgICAgICAgIHRocm93aW5nIG91dCBkdXBsaWNhdGVz
IGFuZCBpbnZhbGlkIGtleXMuIFVzZSBpdCB3aGVuIHN0b3JpbmcKKyAgICAgICAgaW5kZXggZW50
cmllcyBmb3IgbXVsdGlFbnRyeSBpbmRleGVzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czogZXhp
c3RpbmcgdGVzdHMgaGF2ZSBiZWVuIGFsdGVyZWQgdG8gaW5jbHVkZSBuZXcgYmVoYXZpb3IuCisK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCQ3Vyc29yOjpjb250aW51ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkZhY3Rvcnk6OmNt
cCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCSW5kZXg6OmdldCk6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6Z2V0
S2V5KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCS2V5Ojppc1ZhbGlkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5Ojpj
cmVhdGVNdWx0aUVudHJ5QXJyYXkpOgorICAgICAgICAoSURCS2V5KToKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlS
YW5nZTo6b25seSk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6bG93ZXJCb3VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6dXBwZXJCb3VuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJLZXlSYW5nZTo6Ym91bmQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkxldmVsREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCTGV2ZWxE
QkJhY2tpbmdTdG9yZTo6cHV0T2JqZWN0U3RvcmVSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6
SURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6cHV0SW5kZXhEYXRhRm9yUmVjb3JkKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQ29kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQkxldmVsREJDb2Rpbmc6OmVuY29kZUlEQktleSk6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0
U3RvcmU6OmdldCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6YWRkKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpwdXQpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6cHV0SW50ZXJuYWwpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVJREJLZXlGcm9tVmFsdWUpOgorCiAyMDEyLTA2LTIxICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFNWR0ltYWdl
Q2FjaGUgaXNuJ3QgaW52YWxpZGF0ZWQgZm9yIDxpbWc+IG9uIGR5bmFtaWMgcGFnZSBzY2FsZSBj
aGFuZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDQ2Yzk4MzIyYjVlOWM1M2IzMTk3
ZDY5ZTM1ZWM5MjAwOWI2ODRiYWQuLjI3ZDY1MGUzZDVmNjlhNThmNzQ2NzhkYWI1MWMxNjBjZGVm
Mzk3N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTIt
MDYtMjEgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIElu
ZGV4ZWREQjogSW1wbGVtZW50IHNwZWMgYmVoYXZpb3IgZm9yIG11bHRpRW50cnkgaW5kZXhlcyB3
aXRoIGludmFsaWQvZHVwbGljYXRlIHN1YmtleXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
RmlzaGVyLgorCisgICAgICAgIEFkZCBtYXRjaGluZyBpc1ZhbGlkKCkgdG8gV2ViSURCS2V5IHRv
IG1hdGNoIHRoZSBvbmUgaW4gSURCS2V5LgorCisgICAgICAgICogcHVibGljL1dlYklEQktleS5o
OgorICAgICAgICAqIHNyYy9XZWJJREJLZXkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJL
ZXk6OmlzVmFsaWQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViSURCS2V5
UmFuZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXlSYW5nZTo6YXNzaWduKToKKwog
MjAxMi0wNi0yMSAgTWluIFFpbiAgPHFpbm1pbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgcmVt
b3ZlIEVOQUJMRV9GVUxMU0NSRUVOX01FRElBX0NPTlRST0wgZmxhZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggOGQyMThlZTg1NTc4ZTgy
ZTFmN2U0MWMwOTZiOWRlMmM1ZjljMjA2MC4uMjc1OTUxNGVmZjc0MjI0YzYxNzk5Y2Y1ZjYwNzc5
ZmRjZTRkMjQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJD
dXJzb3IuY3BwCkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBJREJDdXJzb3I6OmFkdmFuY2UodW5z
aWduZWQgbG9uZyBjb3VudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB2b2lkIElEQkN1cnNvcjo6Y29u
dGludWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4ga2V5LCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICBJREJfVFJBQ0UoIklEQkN1cnNvcjo6Y29udGludWUiKTsKLSAgICBpZiAoa2V5ICYm
IChrZXktPnR5cGUoKSA9PSBJREJLZXk6OkludmFsaWRUeXBlKSkgeworICAgIGlmIChrZXkgJiYg
IWtleS0+aXNWYWxpZCgpKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRB
VEFfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAppbmRleCAxODExNmY1YTNlYTk3ODVkMWI2OWQ4
MjhhZjNhZGNkZTFiNmZjNmU5Li5kM2RlOGY2ZmE1YjRlNzMzMzY0MGM2MzEzZDZkNGVmZjhlZTlk
YjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
LmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIHNob3J0IElEQkZhY3Rvcnk6OmNtcChQYXNzUmVmUHRy
PElEQktleT4gZmlyc3QsIFBhc3NSZWZQdHI8SURCS2V5PiBzZWNvbmQsIEV4Y2VwCiAgICAgQVNT
RVJUKGZpcnN0KTsKICAgICBBU1NFUlQoc2Vjb25kKTsKIAotICAgIGlmIChmaXJzdC0+dHlwZSgp
ID09IElEQktleTo6SW52YWxpZFR5cGUgfHwgc2Vjb25kLT50eXBlKCkgPT0gSURCS2V5OjpJbnZh
bGlkVHlwZSkgeworICAgIGlmICghZmlyc3QtPmlzVmFsaWQoKSB8fCAhc2Vjb25kLT5pc1ZhbGlk
KCkpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6REFUQV9FUlI7CiAgICAg
ICAgIHJldHVybiAwOwogICAgIH0gICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCS2V5LmNwcAppbmRleCA1OTg2ODZlMWEwMzlhZGJmZGNiMjQ3N2ZmZmUwOTExNTM4YzY4
MzFjLi5iNzZlZDJjZWUzMDVkNjI4N2Y5ZGIxM2UxMGRkMTA4ZTYxZDY4NGVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5jcHAKQEAgLTQwLDYgKzQwLDIxIEBA
IElEQktleTo6fklEQktleSgpCiB7CiB9CiAKK2Jvb2wgSURCS2V5Ojppc1ZhbGlkKCkgY29uc3QK
K3sKKyAgICBpZiAobV90eXBlID09IEludmFsaWRUeXBlKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAobV90eXBlID09IEFycmF5VHlwZSkgeworICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG1fYXJyYXkuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmICghbV9hcnJh
eVtpXS0+aXNWYWxpZCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiBpbnQgSURCS2V5Ojpjb21wYXJlKGNv
bnN0IElEQktleSogb3RoZXIpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG90aGVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmgKaW5kZXggNDBjZTgzM2Y5MDg5NDM1MjEx
ZTQ5NzFkMzU3MzBmYzJjYzU4NGIxNy4uY2JmZGYxZDRmYzU2ZWY0NWFmNTIwYWEyNmJkMTUwOWE2
NjZmNWY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmgKQEAg
LTczLDYgKzczLDMyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGlkYktleS5yZWxlYXNlKCk7
CiAgICAgfQogCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCS2V5PiBjcmVhdGVNdWx0aUVudHJ5
QXJyYXkoY29uc3QgS2V5QXJyYXkmIGFycmF5KQorICAgIHsKKyAgICAgICAgUmVmUHRyPElEQktl
eT4gaWRiS2V5ID0gYWRvcHRSZWYobmV3IElEQktleSgpKTsKKyAgICAgICAgaWRiS2V5LT5tX3R5
cGUgPSBBcnJheVR5cGU7CisgICAgICAgIEtleUFycmF5JiByZXN1bHQgPSBpZGJLZXktPm1fYXJy
YXk7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcnJheS5zaXplKCk7IGkrKykg
eworICAgICAgICAgICAgaWYgKCFhcnJheVtpXS0+aXNWYWxpZCgpKQorICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworCisgICAgICAgICAgICBib29sIHNraXAgPSBmYWxzZTsKKyAgICAgICAgICAg
IGZvciAoc2l6ZV90IGogPSAwOyBqIDwgcmVzdWx0LnNpemUoKTsgaisrKSB7CisgICAgICAgICAg
ICAgICAgaWYgKGFycmF5W2ldLT5pc0VxdWFsKHJlc3VsdFtqXS5nZXQoKSkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgc2tpcCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghc2tpcCkgewor
ICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYXJyYXlbaV0pOworICAgICAgICAgICAgICAg
IGlkYktleS0+bV9zaXplRXN0aW1hdGUgKz0gYXJyYXlbaV0tPm1fc2l6ZUVzdGltYXRlOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIEFTU0VSVChpZGJLZXktPmlzVmFsaWQoKSk7
CisgICAgICAgIHJldHVybiBpZGJLZXkucmVsZWFzZSgpOworICAgIH0KKwogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPElEQktleT4gY3JlYXRlQXJyYXkoY29uc3QgS2V5QXJyYXkmIGFycmF5KQogICAg
IHsKICAgICAgICAgUmVmUHRyPElEQktleT4gaWRiS2V5ID0gYWRvcHRSZWYobmV3IElEQktleSgp
KTsKQEAgLTk4LDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlICE9IEludmFsaWRUeXBlOyB9CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CiAK
ICAgICBjb25zdCBLZXlBcnJheSYgYXJyYXkoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNraW5nU3RvcmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9y
ZS5jcHAKaW5kZXggNDk3NzdjNjFiZjM1Y2M3YjY0ZDExZjMxNWZhMjMzZDVkNzc2OTVmYy4uOGRj
YjQ2MDVjMGFjN2MzMDMyMTQyZWY0NDJjMjEyNjM0Mzg1OWI1NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9y
ZS5jcHAKQEAgLTU4Nyw2ICs1ODcsNyBAQCBzdGF0aWMgaW50NjRfdCBnZXROZXdWZXJzaW9uTnVt
YmVyKExldmVsREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YQogCiBib29s
IElEQkxldmVsREJCYWNraW5nU3RvcmU6OnB1dE9iamVjdFN0b3JlUmVjb3JkKGludDY0X3QgZGF0
YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmIGtleSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSwgT2JqZWN0U3RvcmVSZWNvcmRJZGVudGlmaWVyKiByZWNvcmRJZGVudGlm
aWVyKQogeworICAgIEFTU0VSVChrZXkuaXNWYWxpZCgpKTsKICAgICBBU1NFUlQobV9jdXJyZW50
VHJhbnNhY3Rpb24pOwogICAgIGludDY0X3QgdmVyc2lvbiA9IGdldE5ld1ZlcnNpb25OdW1iZXIo
bV9jdXJyZW50VHJhbnNhY3Rpb24uZ2V0KCksIGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQpOwog
ICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBvYmplY3RTdG9yZWRhdGFLZXkgPSBPYmplY3RTdG9yZURh
dGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBrZXkpOwpAQCAtODY5LDYg
Kzg3MCw3IEBAIHZvaWQgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlSW5kZXgoaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlCiAKIGJvb2wgSURCTGV2ZWxEQkJhY2tp
bmdTdG9yZTo6cHV0SW5kZXhEYXRhRm9yUmVjb3JkKGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYga2V5LCBjb25z
dCBPYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXIqIHJlY29yZElkZW50aWZpZXIpCiB7CisgICAg
QVNTRVJUKGtleS5pc1ZhbGlkKCkpOwogICAgIEFTU0VSVChpbmRleElkID49IGtNaW5pbXVtSW5k
ZXhJZCk7CiAgICAgY29uc3QgTGV2ZWxEQlJlY29yZElkZW50aWZpZXIqIGxldmVsREJSZWNvcmRJ
ZGVudGlmaWVyID0gc3RhdGljX2Nhc3Q8Y29uc3QgTGV2ZWxEQlJlY29yZElkZW50aWZpZXIqPihy
ZWNvcmRJZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJMZXZlbERCQ29kaW5nLmNwcAppbmRleCA0N2M5ZjdkM2QxZjRmMWQ2YTIyMTE4
ZjY0MTk4MWQzNTc1ZWU1ZGE3Li5iZjE5NWFkY2E0YjdkYmE5NWRiZDc3ODY5YmU4ODE2MDE2ZjBl
YzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZl
bERCQ29kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJM
ZXZlbERCQ29kaW5nLmNwcApAQCAtMzg3LDYgKzM4Nyw3IEBAIFZlY3RvcjxjaGFyPiBlbmNvZGVJ
REJLZXkoY29uc3QgSURCS2V5JiBrZXkpCiB2b2lkIGVuY29kZUlEQktleShjb25zdCBJREJLZXkm
IGtleSwgVmVjdG9yPGNoYXI+JiBpbnRvKQogewogICAgIHNpemVfdCBwcmV2aW91c1NpemUgPSBp
bnRvLnNpemUoKTsKKyAgICBBU1NFUlQoa2V5LmlzVmFsaWQoKSk7CiAgICAgc3dpdGNoIChrZXku
dHlwZSgpKSB7CiAgICAgY2FzZSBJREJLZXk6OkludmFsaWRUeXBlOgogICAgIGNhc2UgSURCS2V5
OjpNaW5UeXBlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCT2JqZWN0U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmUuY3BwCmluZGV4IGI1ZDc4MTRjYzIxMGU2NmQ0ZGQ4ZDI4ODU3MWJkMDE4YTNj
MDIzOGYuLmIwZmFlODViZjc2OGE4Mjg3NzA5NTI2NTExZjhlODY0Mjc4ODE0ODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAK
QEAgLTEyNiw3ICsxMjYsNyBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3Jl
OjphZGQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzcwogICAgICAgICByZXR1
cm4gMDsKICAgICB9CiAKLSAgICBpZiAoa2V5ICYmIChrZXktPnR5cGUoKSA9PSBJREJLZXk6Oklu
dmFsaWRUeXBlKSkgeworICAgIGlmIChrZXkgJiYgIWtleS0+aXNWYWxpZCgpKSB7CiAgICAgICAg
IGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSOwogICAgICAgICByZXR1cm4gMDsK
ICAgICB9CkBAIC0xNTksNyArMTU5LDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmpl
Y3RTdG9yZTo6cHV0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3MKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgaWYgKGtleSAmJiAoa2V5LT50eXBlKCkgPT0gSURC
S2V5OjpJbnZhbGlkVHlwZSkpIHsKKyAgICBpZiAoa2V5ICYmICFrZXktPmlzVmFsaWQoKSkgewog
ICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEQVRBX0VSUjsKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAppbmRleCBkOWFmMmI5NzMz
ZmY4MzE2ZTU3OGE1OTE2ODA0OTRjODAyYzlkMzcxLi5mZWNmODgwY2ExOGQ2OTNiZTQ1MTU3NWE4
YzE4MGVkYTIzOTM5YmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcApAQCAtMjY0LDYg
KzI2NCw5IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6cHV0SW50ZXJuYWwoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8CiAgICAgICAgIGNvbnN0IFJlZlB0cjxJ
REJJbmRleEJhY2tlbmRJbXBsPiYgaW5kZXggPSBpdC0+c2Vjb25kOwogCiAgICAgICAgIFJlZlB0
cjxJREJLZXk+IGluZGV4S2V5ID0gZmV0Y2hLZXlGcm9tS2V5UGF0aCh2YWx1ZS5nZXQoKSwgaW5k
ZXgtPmtleVBhdGgoKSk7CisgICAgICAgIGlmIChpbmRleEtleSAmJiBpbmRleC0+bXVsdGlFbnRy
eSgpICYmIGluZGV4S2V5LT50eXBlKCkgPT0gSURCS2V5OjpBcnJheVR5cGUpCisgICAgICAgICAg
ICBpbmRleEtleSA9IElEQktleTo6Y3JlYXRlTXVsdGlFbnRyeUFycmF5KGluZGV4S2V5LT5hcnJh
eSgpKTsKKwogICAgICAgICBpZiAoIWluZGV4S2V5IHx8ICFpbmRleEtleS0+aXNWYWxpZCgpKSB7
CiAgICAgICAgICAgICAvLyBOdWxsL2ludmFsaWQga2V5cyBub3QgYWRkZWQgdG8gaW5kZXg7IG51
bGwgZW50cnkga2VlcHMgaXRlcmF0b3IvdmVjdG9yIGluZGV4ZXMgY29uc2lzdGVudC4KICAgICAg
ICAgICAgIGluZGV4S2V5LmNsZWFyKCk7CkBAIC0yNzksNyArMjgyLDcgQEAgdm9pZCBJREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbXBsOjpwdXRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
UGFzc1JlZlB0cjwKICAgICAgICAgfQogCiAgICAgICAgIGlmIChpbmRleC0+bXVsdGlFbnRyeSgp
ICYmIGluZGV4S2V5LT50eXBlKCkgPT0gSURCS2V5OjpBcnJheVR5cGUpIHsKLSAgICAgICAgICAg
Zm9yIChzaXplX3QgaiA9IDA7IGogPCBpbmRleEtleS0+YXJyYXkoKS5zaXplKCk7ICsraikgewor
ICAgICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBpbmRleEtleS0+YXJyYXkoKS5zaXpl
KCk7ICsraikgewogICAgICAgICAgICAgICAgIGlmICghaW5kZXgtPmFkZGluZ0tleUFsbG93ZWQo
aW5kZXhLZXktPmFycmF5KClbal0uZ2V0KCksIGtleS5nZXQoKSkpIHsKICAgICAgICAgICAgICAg
ICAgICAgb2JqZWN0U3RvcmUtPnJlc2V0QXV0b0luY3JlbWVudEtleUNhY2hlKCk7CiAgICAgICAg
ICAgICAgICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUo
SURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSLCAiT25lIG9mIHRoZSBkZXJpdmVkIChmcm9t
IGEga2V5UGF0aCkga2V5cyBmb3IgYW4gaW5kZXggZG9lcyBub3Qgc2F0aXNmeSBpdHMgdW5pcXVl
bmVzcyByZXF1aXJlbWVudHMuIikpOwpAQCAtNDI2LDggKzQyOSwxMCBAQCBwdWJsaWM6CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlQobV9pbmRleC0+bXVsdGlFbnRyeSgpKTsK
ICAgICAgICAgICAgIEFTU0VSVChpbmRleEtleS0+dHlwZSgpID09IElEQktleTo6QXJyYXlUeXBl
KTsKKworICAgICAgICAgICAgaW5kZXhLZXkgPSBJREJLZXk6OmNyZWF0ZU11bHRpRW50cnlBcnJh
eShpbmRleEtleS0+YXJyYXkoKSk7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGluZGV4S2V5LT5hcnJheSgpLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFt
X2luZGV4LT5hZGRpbmdLZXlBbGxvd2VkKGluZGV4S2V5LmdldCgpKSkKKyAgICAgICAgICAgICAg
ICBpZiAoIW1faW5kZXgtPmFkZGluZ0tleUFsbG93ZWQoaW5kZXhLZXktPmFycmF5KClbaV0uZ2V0
KCkpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAg
aWYgKCFtX2JhY2tpbmdTdG9yZS5wdXRJbmRleERhdGFGb3JSZWNvcmQobV9kYXRhYmFzZUlkLCBt
X29iamVjdFN0b3JlSWQsIG1faW5kZXgtPmlkKCksICppbmRleEtleS0+YXJyYXkoKVtpXSwgcmVj
b3JkSWRlbnRpZmllcikpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKaW5k
ZXggZDMxNmFkNzI5OWY0ZTI4MzE0NTk1ZTM1ZGMzZmQwNTA3MjgzYzYzYy4uZWU3NmVlMjlhMDAx
ZDZjZDc2YzVmMTdhZDM1ZWNiN2ZjYzY3NGMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKQEAgLTY1LDggKzY1LDkgQEAgc3Rh
dGljIFBhc3NSZWZQdHI8SURCS2V5PiBjcmVhdGVJREJLZXlGcm9tVmFsdWUodjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHZhbHVlLCBWZWMKICAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGl0
ZW0gPSBhcnJheS0+R2V0KHY4OjpJbnQzMjo6TmV3KGkpKTsKICAgICAgICAgICAgIFJlZlB0cjxJ
REJLZXk+IHN1YmtleSA9IGNyZWF0ZUlEQktleUZyb21WYWx1ZShpdGVtLCBzdGFjayk7CiAgICAg
ICAgICAgICBpZiAoIXN1YmtleSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAg
ICAgIHN1YmtleXMuYXBwZW5kKHN1YmtleSk7CisgICAgICAgICAgICAgICAgc3Via2V5cy5hcHBl
bmQoSURCS2V5OjpjcmVhdGVJbnZhbGlkKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHN1YmtleXMuYXBwZW5kKHN1YmtleSk7CiAgICAgICAgIH0KIAogICAgICAgICBzdGFj
ay5yZW1vdmVMYXN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJJREJLZXkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQktleS5o
CmluZGV4IGE3ODE0MjM0NTk0MGJkYTE2OGEwNjcyZDM3ZmU3NDBhY2FjZTQzMWMuLjBiNzA0Y2Fj
Mjg0NDYxY2MzNjEwMWFlNjFhZWQ2NThkNDAzNjE5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQktleS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYklEQktleS5oCkBAIC03OSw2ICs3OSw3IEBAIHB1YmxpYzoKICAgICB9Owog
CiAgICAgV0VCS0lUX0VYUE9SVCBUeXBlIHR5cGUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JU
IGJvb2wgaXNWYWxpZCgpIGNvbnN0OwogICAgIFdFQktJVF9FWFBPUlQgV2ViVmVjdG9yPFdlYklE
QktleT4gYXJyYXkoKSBjb25zdDsgLy8gT25seSB2YWxpZCBmb3IgQXJyYXlUeXBlLgogICAgIFdF
QktJVF9FWFBPUlQgV2ViU3RyaW5nIHN0cmluZygpIGNvbnN0OyAvLyBPbmx5IHZhbGlkIGZvciBT
dHJpbmdUeXBlLgogICAgIFdFQktJVF9FWFBPUlQgZG91YmxlIGRhdGUoKSBjb25zdDsgLy8gT25s
eSB2YWxpZCBmb3IgRGF0ZVR5cGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJLZXkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5
LmNwcAppbmRleCAyNWJlNmM1MmY3NDQ1M2Q3ZDM2YWJkYzA4MmQ2MjQ4M2I0NDhkZjBiLi5jZmFk
YWZiYWNkOTczODllODVmNmU0YzNkZTE5MjI1MDRhYmEzOWE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQktleS5jcHAKQEAgLTEyMCw2ICsxMjAsOCBAQCBzdGF0aWMgUGFzc1Jl
ZlB0cjxJREJLZXk+IGNvbnZlcnRGcm9tV2ViSURCS2V5QXJyYXkoY29uc3QgV2ViVmVjdG9yPFdl
YklEQktleT4mCiAgICAgICAgICAgICBrZXlzLmFwcGVuZChJREJLZXk6OmNyZWF0ZU51bWJlcihh
cnJheVtpXS5udW1iZXIoKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2Vi
SURCS2V5OjpJbnZhbGlkVHlwZToKKyAgICAgICAgICAgIGtleXMuYXBwZW5kKElEQktleTo6Y3Jl
YXRlSW52YWxpZCgpKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYklEQktl
eTo6TnVsbFR5cGU6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtMTQ5LDYgKzE1MSw4IEBAIHN0YXRpYyB2b2lkIGNvbnZlcnRUb1dlYklE
QktleUFycmF5KGNvbnN0IElEQktleTo6S2V5QXJyYXkmIGFycmF5LCBXZWJWZWN0b3I8V2ViCiAg
ICAgICAgICAgICBrZXlzW2ldID0gV2ViSURCS2V5OjpjcmVhdGVOdW1iZXIoa2V5LT5udW1iZXIo
KSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJREJLZXk6OkludmFsaWRUeXBl
OgorICAgICAgICAgICAga2V5c1tpXSA9IFdlYklEQktleTo6Y3JlYXRlSW52YWxpZCgpOworICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSURCS2V5OjpNaW5UeXBlOgogICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTE5OSw2ICsy
MDMsMTMgQEAgV2ViSURCS2V5OjpUeXBlIFdlYklEQktleTo6dHlwZSgpIGNvbnN0CiAgICAgcmV0
dXJuIFR5cGUobV9wcml2YXRlLT50eXBlKCkpOwogfQogCitib29sIFdlYklEQktleTo6aXNWYWxp
ZCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3ByaXZhdGUuZ2V0KCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5pc1ZhbGlkKCk7Cit9CisKIFdlYlZlY3RvcjxX
ZWJJREJLZXk+IFdlYklEQktleTo6YXJyYXkoKSBjb25zdAogewogICAgIFdlYlZlY3RvcjxXZWJJ
REJLZXk+IGtleXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJLZXlSYW5nZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJLZXlSYW5n
ZS5jcHAKaW5kZXggZmVmMGQzYzNkYWVhYTU0MGJhYjczODNiNWIzNzA0MzJhZDYyZjhmYy4uNDE5
MjYxYzIyM2VkZDY1NWRkNDU1ZGY2NDVhMzY3MWNhY2YwNDQxZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5UmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQktleVJhbmdlLmNwcApAQCAtNDMsNyArNDMsNyBAQCB2b2lk
IFdlYklEQktleVJhbmdlOjphc3NpZ24oY29uc3QgV2ViSURCS2V5UmFuZ2UmIG90aGVyKQogCiB2
b2lkIFdlYklEQktleVJhbmdlOjphc3NpZ24oY29uc3QgV2ViSURCS2V5JiBsb3dlciwgY29uc3Qg
V2ViSURCS2V5JiB1cHBlciwgYm9vbCBsb3dlck9wZW4sIGJvb2wgdXBwZXJPcGVuKQogewotICAg
IGlmIChsb3dlci50eXBlKCkgPT0gV2ViSURCS2V5OjpJbnZhbGlkVHlwZSAmJiB1cHBlci50eXBl
KCkgPT0gV2ViSURCS2V5OjpJbnZhbGlkVHlwZSkKKyAgICBpZiAoIWxvd2VyLmlzVmFsaWQoKSAm
JiAhdXBwZXIuaXNWYWxpZCgpKQogICAgICAgICBtX3ByaXZhdGUgPSAwOwogICAgIGVsc2UKICAg
ICAgICAgbV9wcml2YXRlID0gSURCS2V5UmFuZ2U6OmNyZWF0ZShsb3dlciwgdXBwZXIsIGxvd2Vy
T3BlbiA/IElEQktleVJhbmdlOjpMb3dlckJvdW5kT3BlbiA6IElEQktleVJhbmdlOjpMb3dlckJv
dW5kQ2xvc2VkLCB1cHBlck9wZW4gPyBJREJLZXlSYW5nZTo6VXBwZXJCb3VuZE9wZW4gOiBJREJL
ZXlSYW5nZTo6VXBwZXJCb3VuZENsb3NlZCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzVmMmQ4NmEwMTcxZjZlNmEzNGJk
NTA5MTYzMjhjYWVmYzcxNjFlMi4uNTU4MDgyZjhkNTlhYmU0OWVlYjQ1MGRkZjcxNTI0ZjUwMmY0
MjRiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA2LTIxICBBbGVjIEZsZXR0ICA8YWxl
Y2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEltcGxlbWVudCBzcGVj
IGJlaGF2aW9yIGZvciBtdWx0aUVudHJ5IGluZGV4ZXMgd2l0aCBpbnZhbGlkL2R1cGxpY2F0ZSBz
dWJrZXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NjEyMworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KKworICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL2luZGV4LW11bHRpZW50cnktZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbmRleC1tdWx0aWVudHJ5LmpzOgorICAgICAg
ICAoYWRkRGF0YSk6CisgICAgICAgICh2ZXJpZnlJbmRleGVzLnJlcXVlc3Qub25zdWNjZXNzKToK
KyAgICAgICAgKHZlcmlmeUluZGV4ZXMpOgorICAgICAgICAodmVyaWZ5VW5pcXVlQ29uc3RyYWlu
dC5yZXF1ZXN0Lm9uc3VjY2Vzcy5yZXF1ZXN0Lm9uc3VjY2Vzcy5yZXF1ZXN0Lm9uZXJyb3IpOgor
ICAgICAgICAodmVyaWZ5VW5pcXVlQ29uc3RyYWludC5yZXF1ZXN0Lm9uc3VjY2Vzcy5yZXF1ZXN0
Lm9uc3VjY2Vzcyk6CisgICAgICAgICh2ZXJpZnlVbmlxdWVDb25zdHJhaW50LnJlcXVlc3Qub25z
dWNjZXNzKToKKyAgICAgICAgKHZlcmlmeVVuaXF1ZUNvbnN0cmFpbnQpOgorCiAyMDEyLTA2LTIx
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFNWR0lt
YWdlQ2FjaGUgaXNuJ3QgaW52YWxpZGF0ZWQgZm9yIDxpbWc+IG9uIGR5bmFtaWMgcGFnZSBzY2Fs
ZSBjaGFuZ2VzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRl
eC1tdWx0aWVudHJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2luZGV4LW11bHRpZW50cnktZXhwZWN0ZWQudHh0CmluZGV4IDNiOGIwN2IzODE0NmU4ODM0MjI2
MDEyMDcwMmFmNTM1NjM3MWY3MGMuLjgyY2JkNDlmZWJjZjE1MTM5OGFiYmY3MzFmNWU3N2NmNjFk
NjA2ZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LW11
bHRpZW50cnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2luZGV4LW11bHRpZW50cnktZXhwZWN0ZWQudHh0CkBAIC0yNSw2ICsyNSw4IEBAIHRyYW5zYWN0
aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLnB1dCh7eDogWzcsIDgsIDldLCB5OiAnYSd9LCAnZm9v
JykKIE5vdyBvdmVyd3JpdGUgdGhlbSB3aXRoIHdoYXQgd2UncmUgZXhwZWN0aW5nCiB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoe3g6IFsxLCAyLCAzXSwgeTogJ2EnfSwgJ2Zv
bycpCiB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoe3g6IFs0LCA1LCA2XSwg
eTogJ2InfSwgJ2JhcicpCit0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoe3g6
IFs3LCA3LCA4LCA3XSwgeTogJ2MnfSwgJ2JheicpCit0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmUnKS5wdXQoe3g6IFtudWxsLCA5LCA5XSwgeTogJ2QnfSwgJ2Jsb29wJykKIAogVmVyaWZ5
aW5nIGluZGV4OiBpbmRleAogdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbihbJ3N0b3JlJ10s
ICdyZWFkb25seScpCkBAIC0zNCwzMSArMzYsNTUgQEAgUEFTUyBleCBpcyBub24tbnVsbC4KIFBB
U1MgY3Vyc29yLmtleSBpcyAxCiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJmb28iCiBQQVNT
IGN1cnNvci52YWx1ZS55IGlzICJhIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2ZW50
LnRhcmdldC5yZXN1bHQKIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5rZXkgaXMg
MgogUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiZm9vIgogUEFTUyBjdXJzb3IudmFsdWUueSBp
cyAiYSIKK2N1cnNvci5jb250aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CiBQ
QVNTIGV4IGlzIG5vbi1udWxsLgogUEFTUyBjdXJzb3Iua2V5IGlzIDMKIFBBU1MgY3Vyc29yLnBy
aW1hcnlLZXkgaXMgImZvbyIKIFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImEiCitjdXJzb3IuY29u
dGludWUoKQogY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleCBpcyBub24tbnVs
bC4KIFBBU1MgY3Vyc29yLmtleSBpcyA0CiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJiYXIi
CiBQQVNTIGN1cnNvci52YWx1ZS55IGlzICJiIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5r
ZXkgaXMgNQogUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmFyIgogUEFTUyBjdXJzb3IudmFs
dWUueSBpcyAiYiIKK2N1cnNvci5jb250aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVz
dWx0CiBQQVNTIGV4IGlzIG5vbi1udWxsLgogUEFTUyBjdXJzb3Iua2V5IGlzIDYKIFBBU1MgY3Vy
c29yLnByaW1hcnlLZXkgaXMgImJhciIKIFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImIiCitjdXJz
b3IuY29udGludWUoKQorY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBleCBpcyBu
b24tbnVsbC4KK1BBU1MgY3Vyc29yLmtleSBpcyA3CitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlz
ICJiYXoiCitQQVNTIGN1cnNvci52YWx1ZS55IGlzICJjIgorY3Vyc29yLmNvbnRpbnVlKCkKK2N1
cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZXggaXMgbm9uLW51bGwuCitQQVNTIGN1
cnNvci5rZXkgaXMgOAorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmF6IgorUEFTUyBjdXJz
b3IudmFsdWUueSBpcyAiYyIKK2N1cnNvci5jb250aW51ZSgpCitjdXJzb3IgPSBldmVudC50YXJn
ZXQucmVzdWx0CitQQVNTIGV4IGlzIG5vbi1udWxsLgorUEFTUyBjdXJzb3Iua2V5IGlzIDkKK1BB
U1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgImJsb29wIgorUEFTUyBjdXJzb3IudmFsdWUueSBpcyAi
ZCIKK2N1cnNvci5jb250aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CiBQQVNT
IGV4cGVjdGVkLmxlbmd0aCBpcyAwCiAKQEAgLTcxLDcgKzk3LDcgQEAgdHJhbnNhY3Rpb24ub2Jq
ZWN0U3RvcmUoJ3N0b3JlLXVuaXF1ZScpLnB1dCh7eDogWzEsIDIsIDddLCB5OiAnYSd9LCAnZm9v
JykKIHN1Y2Nlc3MhCiBUaGlzIHNob3VsZCBmYWlsIHRoZSB1bmlxdWVuZXNzIGNvbnN0cmFpbnQg
b24gdGhlIGluZGV4LCBhbmQgZmFpbDoKIHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZS11
bmlxdWUnKS5wdXQoe3g6IFs1LCAyXSwgeTogJ2MnfSwgJ3Nob3VsZCBmYWlsJykKLVJlcXVlc3Qg
ZmFpbGVkLCBhcyBleHBlY3RlZAorUmVxdWVzdCBmYWlsZWQsIGFzIGV4cGVjdGVkIChEYXRhRXJy
b3IpCiBUcmFuc2FjdGlvbiBhYm9ydGVkIGFzIGV4cGVjdGVkCiAKIENyZWF0ZSBhbiBpbmRleCBv
biBhIHBvcHVsYXRlZCBzdG9yZQpAQCAtODksMzEgKzExNSw1NSBAQCBQQVNTIGV4IGlzIG5vbi1u
dWxsLgogUEFTUyBjdXJzb3Iua2V5IGlzIDEKIFBBU1MgY3Vyc29yLnByaW1hcnlLZXkgaXMgImZv
byIKIFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImEiCitjdXJzb3IuY29udGludWUoKQogY3Vyc29y
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleCBpcyBub24tbnVsbC4KIFBBU1MgY3Vyc29y
LmtleSBpcyAyCiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJmb28iCiBQQVNTIGN1cnNvci52
YWx1ZS55IGlzICJhIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQKIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5rZXkgaXMgMwogUEFTUyBj
dXJzb3IucHJpbWFyeUtleSBpcyAiZm9vIgogUEFTUyBjdXJzb3IudmFsdWUueSBpcyAiYSIKK2N1
cnNvci5jb250aW51ZSgpCiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CiBQQVNTIGV4IGlz
IG5vbi1udWxsLgogUEFTUyBjdXJzb3Iua2V5IGlzIDQKIFBBU1MgY3Vyc29yLnByaW1hcnlLZXkg
aXMgImJhciIKIFBBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImIiCitjdXJzb3IuY29udGludWUoKQog
Y3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyBleCBpcyBub24tbnVsbC4KIFBBU1Mg
Y3Vyc29yLmtleSBpcyA1CiBQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJiYXIiCiBQQVNTIGN1
cnNvci52YWx1ZS55IGlzICJiIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2ZW50LnRh
cmdldC5yZXN1bHQKIFBBU1MgZXggaXMgbm9uLW51bGwuCiBQQVNTIGN1cnNvci5rZXkgaXMgNgog
UEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmFyIgogUEFTUyBjdXJzb3IudmFsdWUueSBpcyAi
YiIKK2N1cnNvci5jb250aW51ZSgpCitjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNT
IGV4IGlzIG5vbi1udWxsLgorUEFTUyBjdXJzb3Iua2V5IGlzIDcKK1BBU1MgY3Vyc29yLnByaW1h
cnlLZXkgaXMgImJheiIKK1BBU1MgY3Vyc29yLnZhbHVlLnkgaXMgImMiCitjdXJzb3IuY29udGlu
dWUoKQorY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBleCBpcyBub24tbnVsbC4K
K1BBU1MgY3Vyc29yLmtleSBpcyA4CitQQVNTIGN1cnNvci5wcmltYXJ5S2V5IGlzICJiYXoiCitQ
QVNTIGN1cnNvci52YWx1ZS55IGlzICJjIgorY3Vyc29yLmNvbnRpbnVlKCkKK2N1cnNvciA9IGV2
ZW50LnRhcmdldC5yZXN1bHQKK1BBU1MgZXggaXMgbm9uLW51bGwuCitQQVNTIGN1cnNvci5rZXkg
aXMgOQorUEFTUyBjdXJzb3IucHJpbWFyeUtleSBpcyAiYmxvb3AiCitQQVNTIGN1cnNvci52YWx1
ZS55IGlzICJkIgorY3Vyc29yLmNvbnRpbnVlKCkKIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1
bHQKIFBBU1MgZXhwZWN0ZWQubGVuZ3RoIGlzIDAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9pbmRleC1tdWx0aWVudHJ5LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL2luZGV4LW11bHRpZW50cnkuanMKaW5kZXggOWUxYWQ3YTU5ZTJjY2M1NGM1NjFhMzBi
YTkyZjExMTJlYTdhMzcwZi4uNThmYjkyZDFmOWRmYWE0NWVhYmI0ZjViNzc4ZTIwMDkyMTFlZmJh
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2lu
ZGV4LW11bHRpZW50cnkuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL2luZGV4LW11bHRpZW50cnkuanMKQEAgLTU0LDYgKzU0LDEwIEBAIGZ1bmN0aW9uIGFk
ZERhdGEoKQogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwog
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUn
KS5wdXQoe3g6IFs0LCA1LCA2XSwgeTogJ2InfSwgJ2JhcicpIik7CiAgICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
InRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLnB1dCh7eDogWzcsIDcsIDgsIDddLCB5
OiAnYyd9LCAnYmF6JykiKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygidHJhbnNhY3Rpb24ub2JqZWN0U3Rv
cmUoJ3N0b3JlJykucHV0KHt4OiBbbnVsbCwgOSwgOV0sIHk6ICdkJ30sICdibG9vcCcpIik7Cisg
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiB9CiAKIGZ1bmN0
aW9uIHZlcmlmeUluZGV4ZXMoaW5kZXhOYW1lLCBjYWxsYmFjaykKQEAgLTcxLDYgKzc1LDkgQEAg
ZnVuY3Rpb24gdmVyaWZ5SW5kZXhlcyhpbmRleE5hbWUsIGNhbGxiYWNrKQogICAgICAgICB7IGtl
eTogNCwgcHJpbWFyeUtleTogJ2JhcicsIHk6ICdiJyB9LAogICAgICAgICB7IGtleTogNSwgcHJp
bWFyeUtleTogJ2JhcicsIHk6ICdiJyB9LAogICAgICAgICB7IGtleTogNiwgcHJpbWFyeUtleTog
J2JhcicsIHk6ICdiJyB9LAorICAgICAgICB7IGtleTogNywgcHJpbWFyeUtleTogJ2JheicsIHk6
ICdjJyB9LAorICAgICAgICB7IGtleTogOCwgcHJpbWFyeUtleTogJ2JheicsIHk6ICdjJyB9LAor
ICAgICAgICB7IGtleTogOSwgcHJpbWFyeUtleTogJ2Jsb29wJywgeTogJ2QnIH0sCiAgICAgXTsK
IAogICAgIHZhciByZXF1ZXN0ID0gZXZhbEFuZExvZygidHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUo
J3N0b3JlJykuaW5kZXgoJyIgKyBpbmRleE5hbWUgKyAiJykub3BlbkN1cnNvcigpIik7CkBAIC04
Myw3ICs5MCw3IEBAIGZ1bmN0aW9uIHZlcmlmeUluZGV4ZXMoaW5kZXhOYW1lLCBjYWxsYmFjaykK
ICAgICAgICAgICAgIHNob3VsZEJlKCJjdXJzb3Iua2V5IiwgU3RyaW5nKGV4LmtleSkpOwogICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJzb3IucHJpbWFyeUtleSIsIGV4LnBy
aW1hcnlLZXkpOwogICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJzb3IudmFs
dWUueSIsIGV4LnkpOwotICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAg
ICBldmFsQW5kTG9nKCJjdXJzb3IuY29udGludWUoKSIpOwogICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgc2hvdWxkQmUoImV4cGVjdGVkLmxlbmd0aCIsICIwIik7CiAgICAgICAgIH0KQEAg
LTExMyw3ICsxMjAsNyBAQCBmdW5jdGlvbiB2ZXJpZnlVbmlxdWVDb25zdHJhaW50KCkKICAgICAg
ICAgICAgIGRlYnVnKCJUaGlzIHNob3VsZCBmYWlsIHRoZSB1bmlxdWVuZXNzIGNvbnN0cmFpbnQg
b24gdGhlIGluZGV4LCBhbmQgZmFpbDoiKTsKICAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5k
TG9nKCJ0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmUtdW5pcXVlJykucHV0KHt4OiBbNSwg
Ml0sIHk6ICdjJ30sICdzaG91bGQgZmFpbCcpIik7CiAgICAgICAgICAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7Ci0gICAgICAgICAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSBmdW5jdGlvbigpIHsgZGVidWcoIlJlcXVlc3QgZmFpbGVkLCBhcyBleHBlY3RlZCIp
OyB9OworICAgICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24oKSB7IGRlYnVnKCJS
ZXF1ZXN0IGZhaWxlZCwgYXMgZXhwZWN0ZWQgKCIgKyByZXF1ZXN0LmVycm9yLm5hbWUgKyAiKSIp
OyB9OwogICAgICAgICB9OwogICAgIH07CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>