<?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>199381</bug_id>
          
          <creation_ts>2019-07-01 14:25:33 -0700</creation_ts>
          <short_desc>Pipe suport for &apos;cenc&apos; init data type into CDMFairPlayStreaming</short_desc>
          <delta_ts>2019-07-02 11:00:54 -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>New Bugs</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1549334</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-07-01 14:25:33 -0700</bug_when>
    <thetext>Pipe suport for &apos;cenc&apos; init data type into CDMFairPlayStreaming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549338</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-01 14:31:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/52483103&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549342</commentid>
    <comment_count>2</comment_count>
      <attachid>373268</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-07-01 14:36:08 -0700</bug_when>
    <thetext>Created attachment 373268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549343</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-07-01 14:37:54 -0700</bug_when>
    <thetext>Attachment 373268 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.h:111:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549417</commentid>
    <comment_count>4</comment_count>
      <attachid>373268</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-07-01 17:42:21 -0700</bug_when>
    <thetext>Comment on attachment 373268
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.h:111
&gt; +    static FourCC boxTypeName() { return &quot;fpsdq&quot;; }

A five character FourCC?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549563</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-07-02 07:55:36 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #4)
&gt; Comment on attachment 373268 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=373268&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.h:111
&gt; &gt; +    static FourCC boxTypeName() { return &quot;fpsdq&quot;; }
&gt; 
&gt; A five character FourCC?

Gah, I must have hit &apos;q&apos; and saved it.  In good news tho:

/Volumes/Data/EWS/WebKit/Source/WebCore/platform/graphics/FourCC.h:39:9: error: static_assert failed &quot;FourCC literals must be exactly 4 characters long&quot;

Looks like FourCC&apos;s static checker is working great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549564</commentid>
    <comment_count>6</comment_count>
      <attachid>373321</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-07-02 07:57:45 -0700</bug_when>
    <thetext>Created attachment 373321
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549566</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-07-02 07:59:18 -0700</bug_when>
    <thetext>Attachment 373321 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.h:111:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549573</commentid>
    <comment_count>8</comment_count>
      <attachid>373324</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-07-02 08:31:31 -0700</bug_when>
    <thetext>Created attachment 373324
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549574</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-07-02 08:33:37 -0700</bug_when>
    <thetext>Attachment 373324 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.h:111:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549590</commentid>
    <comment_count>10</comment_count>
      <attachid>373330</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-07-02 09:11:47 -0700</bug_when>
    <thetext>Created attachment 373330
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549594</commentid>
    <comment_count>11</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-07-02 09:15:09 -0700</bug_when>
    <thetext>Attachment 373330 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.h:111:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549616</commentid>
    <comment_count>12</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-07-02 10:30:21 -0700</bug_when>
    <thetext>gtk-wk2 and wpe bots are both stuck in &quot;unable to build without patch&quot;. Landing anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549635</commentid>
    <comment_count>13</comment_count>
      <attachid>373330</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-02 11:00:52 -0700</bug_when>
    <thetext>Comment on attachment 373330
Patch for landing

Clearing flags on attachment: 373330

Committed r247059: &lt;https://trac.webkit.org/changeset/247059&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549636</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-02 11:00:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373268</attachid>
            <date>2019-07-01 14:36:08 -0700</date>
            <delta_ts>2019-07-02 07:57:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199381-20190701143607.patch</filename>
            <type>text/plain</type>
            <size>18373</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2OTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTM0NGJhZDgxOWY5ZDkw
MmY2NzRjMGUxNDA5MTFiMTEyOWMzOWUwYi4uM2U2NjExNzVhZGYxOGJlODNiMGY5ZTc5ZTZiNDY3
NDE1ZjUwMjM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE5LTA3LTAxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFBpcGUgc3Vwb3J0IGZvciAn
Y2VuYycgaW5pdCBkYXRhIHR5cGUgaW50byBDRE1GYWlyUGxheVN0cmVhbWluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzgxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRoZSBwYXJzaW5n
IG9mICdjZW5jJyBpbml0IGRhdGEgZnJvbSBJbml0RGF0YVJlZ2lzdHJ5LCBzbyBpdCBjYW4gYmUg
dXNlZCBpbiB0aGUKKyAgICAgICAgZXZhbHVhdGlvbiBzdGVwcyBpbnNpZGUgQ0RNRmFpclBsYXlT
dHJlYW1pbmcuCisKKyAgICAgICAgKyBBZGQgYSBuZXcgbWV0aG9kLCBleHRyYWN0UHNzaEJveGVz
RnJvbUNlbmMoKSB3aGljaCByZXR1cm5zIGFuIG9wdGlvbmFsIGFycmF5IG9mCisgICAgICAgICAg
dW5pcXVlX3B0cnMgdG8gZGlmZmVyZW50IHR5cGVzIG9mIElTT1BTU0hCb3hlcy4KKyAgICAgICAg
KyBBZGQgYSBwZWVrU2NoZW1lKCkgbWV0aG9kIHRvIElTT1BTU0hCb3ggc28gdGhhdCB3ZSBjYW4g
Y3JlYXRlIHRoZSBjb3JyZWN0IHN1YmNsYXNzCisgICAgICAgICAgb2YgSVNPUFNTSEJveCBmcm9t
IHRoZSBhYm92ZSBtZXRob2QuCisgICAgICAgICsgUmVtb3ZlIGFuIGV4dHJhIGRlZmluaXRpb24g
b2YgZmFpclBsYXlTeXN0ZW1JRCgpIGZyb20gQ0RNRmFpclBsYXlTdHJlYW1pbmcuCisgICAgICAg
ICsgQWRkICdjZW5jJyB0byB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgdHlwZXMgaW4gQ0RNUHJpdmF0
ZUZhaXJQbGF5U3RyZWFtaW5nOjp2YWlsZEluaXREYXRhVHlwZXMoKS4KKyAgICAgICAgKyBBZGQg
c3VwcG9ydCBmb3IgJ2NlbmMnIGluIENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c3VwcG9y
dHNJbml0RGF0YSgpLgorICAgICAgICArIEZvcm1hdCB0aGUgJ2NlbmMnIGluaXQgZGF0YSBhcyBh
biBlbmNvZGVjLUpTT04gc3RydWN0dXJlIGZvciBBVkNvbnRlbnRLZXlTZXNzaW9uLgorCisgICAg
ICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkluaXREYXRhUmVnaXN0cnk6OmV4dHJhY3RQc3NoQm94ZXNGcm9tQ2VuYyk6
CisgICAgICAgIChXZWJDb3JlOjpJbml0RGF0YVJlZ2lzdHJ5OjpleHRyYWN0S2V5SURzQ2VuYyk6
CisgICAgICAgIChXZWJDb3JlOjpJbml0RGF0YVJlZ2lzdHJ5OjpzYW5pdGl6ZUNlbmMpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5pdERhdGFSZWdpc3RyeTo6Y2VuY05hbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5pdERhdGFSZWdpc3RyeTo6a2V5aWRzTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bml0RGF0YVJlZ2lzdHJ5Ojp3ZWJtTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpleHRyYWN0S2V5
SURzQ2VuYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpzYW5pdGl6ZUNlbmMpOiBEZWxl
dGVkLgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5o
OgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpjaGFuZ2VUeXBlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRJbml0RGF0YVR5cGVzKToKKyAgICAgICAgKFdlYkNv
cmU6OkNETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c3VwcG9ydHNJbml0RGF0YSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmZhaXJQbGF5
U3lzdGVtSUQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9JU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3guaDoKKyAgICAgICAgKGlz
VHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RN
SW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpD
RE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnJlcXVlc3RMaWNlbnNl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pc28vSVNPUHJvdGVjdGlvblN5c3RlbVNw
ZWNpZmljSGVhZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklTT1Byb3RlY3Rpb25TeXN0
ZW1TcGVjaWZpY0hlYWRlckJveDo6cGVla1N5c3RlbUlEKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9pc28vSVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94Lmg6CisKIDIw
MTktMDYtMjggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgTmVlZCBhIHdheSBmb3IgU1BJIGNsaWVudHMgdG8ga25vdyB3aGVuIHRvIGF2b2lkIHJlc2l6
aW5nIHRvIGFjY29tbW9kYXRlIGZvciB0aGUgaW5wdXQgdmlldyBib3VuZHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0
cnkuY3BwCmluZGV4IDRiZjcxNDk0ZDliNzlkZjFmMGUyMDQwNTY5M2U1NjFjMGM3MGNjZDguLmI2
ZmQ2OGQ2NzJlZGUzODc3OGMxNWM2ZmVhYWY0NmI0NTVlNWExY2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5
LmNwcApAQCAtMTEyLDcgKzExMiw3IEBAIHN0YXRpYyBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5p
dGl6ZUtleWlkcyhjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKICAgICByZXR1cm4gU2hhcmVk
QnVmZmVyOjpjcmVhdGUoanNvbkRhdGEuZGF0YSgpLCBqc29uRGF0YS5sZW5ndGgoKSk7CiB9CiAK
LXN0YXRpYyBPcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0S2V5SURz
Q2VuYyhjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKK09wdGlvbmFsPFZlY3RvcjxzdGQ6OnVu
aXF1ZV9wdHI8SVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94Pj4+IEluaXREYXRh
UmVnaXN0cnk6OmV4dHJhY3RQc3NoQm94ZXNGcm9tQ2VuYyhjb25zdCBTaGFyZWRCdWZmZXImIGJ1
ZmZlcikKIHsKICAgICAvLyA0LiBDb21tb24gU3lzdGVtSUQgYW5kIFBTU0ggQm94IEZvcm1hdAog
ICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0LXJlZ2lz
dHJ5L2luaXRkYXRhL2NlbmMuaHRtbCNjb21tb24tc3lzdGVtCkBAIC0xMjAsNyArMTIwLDcgQEAg
c3RhdGljIE9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IGV4dHJhY3RLZXlJRHND
ZW5jKGNvbnN0IFNoYXJlZEJ1ZmZlciYKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAog
ICAgIHVuc2lnbmVkIG9mZnNldCA9IDA7Ci0gICAgVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBr
ZXlJRHM7CisgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxJU09Qcm90ZWN0aW9uU3lzdGVtU3Bl
Y2lmaWNIZWFkZXJCb3g+PiBwc3NoQm94ZXM7CiAKICAgICBhdXRvIHZpZXcgPSBKU0M6OkRhdGFW
aWV3OjpjcmVhdGUoYnVmZmVyLnRyeUNyZWF0ZUFycmF5QnVmZmVyKCksIG9mZnNldCwgYnVmZmVy
LnNpemUoKSk7CiAgICAgd2hpbGUgKGF1dG8gb3B0aW9uYWxCb3hUeXBlID0gSVNPQm94OjpwZWVr
Qm94KHZpZXcsIG9mZnNldCkpIHsKQEAgLTEzMCwxNiArMTMwLDQ0IEBAIHN0YXRpYyBPcHRpb25h
bDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0S2V5SURzQ2VuYyhjb25zdCBTaGFy
ZWRCdWZmZXImCiAgICAgICAgIGlmIChib3hUeXBlTmFtZSAhPSBJU09Qcm90ZWN0aW9uU3lzdGVt
U3BlY2lmaWNIZWFkZXJCb3g6OmJveFR5cGVOYW1lKCkgfHwgYm94U2l6ZSA+IGJ1ZmZlci5zaXpl
KCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgIElTT1Byb3Rl
Y3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveCBwc3NoQm94OwotICAgICAgICBpZiAoIXBzc2hC
b3gucmVhZCh2aWV3LCBvZmZzZXQpKQorICAgICAgICBhdXRvIHN5c3RlbUlEID0gSVNPUHJvdGVj
dGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94OjpwZWVrU3lzdGVtSUQodmlldywgb2Zmc2V0KTsK
KyNpZiBIQVZFKEZBSVJQTEFZU1RSRUFNSU5HX0NFTkNfSU5JVERBVEEpCisgICAgICAgIGlmIChz
eXN0ZW1JRCA9PSBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3g6OmZhaXJQbGF5U3lzdGVtSUQo
KSkgeworICAgICAgICAgICAgYXV0byBmcHNQc3NoID0gc3RkOjptYWtlX3VuaXF1ZTxJU09GYWly
UGxheVN0cmVhbWluZ1Bzc2hCb3g+KCk7CisgICAgICAgICAgICBpZiAoIWZwc1Bzc2gtPnJlYWQo
dmlldywgb2Zmc2V0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAg
ICAgICAgICAgcHNzaEJveGVzLmFwcGVuZChXVEZNb3ZlKGZwc1Bzc2gpKTsKKyAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICB9CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0oc3lzdGVt
SUQpOworI2VuZGlmCisgICAgICAgIGF1dG8gcHNzaEJveCA9IHN0ZDo6bWFrZV91bmlxdWU8SVNP
UHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94PigpOworICAgICAgICBpZiAoIXBzc2hC
b3gtPnJlYWQodmlldywgb2Zmc2V0KSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICAgICAgcHNzaEJveGVzLmFwcGVuZChXVEZNb3ZlKHBzc2hCb3gpKTsKKyAgICB9CisK
KyAgICByZXR1cm4gcHNzaEJveGVzOworfQorCitPcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1
ZmZlcj4+PiBJbml0RGF0YVJlZ2lzdHJ5OjpleHRyYWN0S2V5SURzQ2VuYyhjb25zdCBTaGFyZWRC
dWZmZXImIGJ1ZmZlcikKK3sKKyAgICBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGtleUlEczsK
KworICAgIGF1dG8gcHNzaEJveGVzID0gZXh0cmFjdFBzc2hCb3hlc0Zyb21DZW5jKGJ1ZmZlcik7
CisgICAgaWYgKCFwc3NoQm94ZXMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBmb3IgKGF1dG8mIHBzc2hCb3ggOiBwc3NoQm94ZXMudmFsdWUoKSkgeworICAgICAgICBBU1NF
UlQocHNzaEJveCk7CisgICAgICAgIGlmICghcHNzaEJveCkKICAgICAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAKICNpZiBIQVZFKEZBSVJQTEFZU1RSRUFNSU5HX0NFTkNfSU5JVERBVEEp
Ci0gICAgICAgIGlmIChwc3NoQm94LnN5c3RlbUlEKCkgPT0gQ0RNUHJpdmF0ZUZhaXJQbGF5U3Ry
ZWFtaW5nOjpmYWlyUGxheVN5c3RlbUlEKCkpIHsKLSAgICAgICAgICAgIElTT0ZhaXJQbGF5U3Ry
ZWFtaW5nUHNzaEJveCBmcHNQc3NoOwotICAgICAgICAgICAgb2Zmc2V0IC09IHBzc2hCb3guc2l6
ZSgpOwotICAgICAgICAgICAgaWYgKCFmcHNQc3NoLnJlYWQodmlldywgb2Zmc2V0KSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICBpZiAoaXM8SVNPRmFpclBs
YXlTdHJlYW1pbmdQc3NoQm94PigqcHNzaEJveCkpIHsKKyAgICAgICAgICAgIElTT0ZhaXJQbGF5
U3RyZWFtaW5nUHNzaEJveCYgZnBzUHNzaCA9IGRvd25jYXN0PElTT0ZhaXJQbGF5U3RyZWFtaW5n
UHNzaEJveD4oKnBzc2hCb3gpOwogCiAgICAgICAgICAgICBGb3VyQ0Mgc2NoZW1lID0gZnBzUHNz
aC5pbml0RGF0YUJveCgpLmluZm8oKS5zY2hlbWUoKTsKICAgICAgICAgICAgIGlmIChDRE1Qcml2
YXRlRmFpclBsYXlTdHJlYW1pbmc6OnZhbGlkRmFpclBsYXlTdHJlYW1pbmdTY2hlbWVzKCkuY29u
dGFpbnMoc2NoZW1lKSkgewpAQCAtMTUxLDE0ICsxNzksMTQgQEAgc3RhdGljIE9wdGlvbmFsPFZl
Y3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IGV4dHJhY3RLZXlJRHNDZW5jKGNvbnN0IFNoYXJlZEJ1
ZmZlciYKICAgICAgICAgfQogI2VuZGlmCiAKLSAgICAgICAgZm9yIChhdXRvJiB2YWx1ZSA6IHBz
c2hCb3gua2V5SURzKCkpCisgICAgICAgIGZvciAoYXV0byYgdmFsdWUgOiBwc3NoQm94LT5rZXlJ
RHMoKSkKICAgICAgICAgICAgIGtleUlEcy5hcHBlbmQoU2hhcmVkQnVmZmVyOjpjcmVhdGUoV1RG
TW92ZSh2YWx1ZSkpKTsKICAgICB9CiAKICAgICByZXR1cm4ga2V5SURzOwogfQogCi1zdGF0aWMg
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVDZW5jKGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVm
ZmVyKQorUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gSW5pdERhdGFSZWdpc3RyeTo6c2FuaXRpemVDZW5j
KGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogewogICAgIC8vIDQuIENvbW1vbiBTeXN0ZW1J
RCBhbmQgUFNTSCBCb3ggRm9ybWF0CiAgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2VuY3J5
cHRlZC1tZWRpYS9mb3JtYXQtcmVnaXN0cnkvaW5pdGRhdGEvY2VuYy5odG1sI2NvbW1vbi1zeXN0
ZW0KQEAgLTIyOCw2ICsyNTYsMjQgQEAgdm9pZCBJbml0RGF0YVJlZ2lzdHJ5OjpyZWdpc3Rlcklu
aXREYXRhVHlwZShjb25zdCBBdG9tU3RyaW5nJiBpbml0RGF0YVR5cGUsIEluaXQKICAgICBtX3R5
cGVzLnNldChpbml0RGF0YVR5cGUsIFdURk1vdmUoY2FsbGJhY2tzKSk7CiB9CiAKK2NvbnN0IEF0
b21TdHJpbmcmIEluaXREYXRhUmVnaXN0cnk6OmNlbmNOYW1lKCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJj
ZW5jIikgfTsKKyAgICByZXR1cm4gc2luZjsKK30KKworY29uc3QgQXRvbVN0cmluZyYgSW5pdERh
dGFSZWdpc3RyeTo6a2V5aWRzTmFtZSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IHNpbmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgia2V5aWRzIikgfTsKKyAg
ICByZXR1cm4gc2luZjsKK30KKworY29uc3QgQXRvbVN0cmluZyYgSW5pdERhdGFSZWdpc3RyeTo6
d2VibU5hbWUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzaW5m
IHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIndlYm0iKSB9OworICAgIHJldHVybiBzaW5mOwor
fQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnku
aAppbmRleCAxZjc5MzBiOTlkMjBjM2ZkNWVkNDc2NzNiZjZlZDQ1YjA4NmM4NDE2Li43OWZlNTEy
ODA2MTQ4NWVjYTI5ZjFjMzgyNjE2YjdlNDg2ZTE5MDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaApAQCAt
MzgsNiArMzgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIElTT1Byb3RlY3Rp
b25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveDsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAogY2xhc3Mg
SW5pdERhdGFSZWdpc3RyeSB7CkBAIC01Nyw2ICs1OCwxNCBAQCBwdWJsaWM6CiAgICAgfTsKICAg
ICB2b2lkIHJlZ2lzdGVySW5pdERhdGFUeXBlKGNvbnN0IEF0b21TdHJpbmcmIGluaXREYXRhVHlw
ZSwgSW5pdERhdGFUeXBlQ2FsbGJhY2tzJiYpOwogCisgICAgc3RhdGljIGNvbnN0IEF0b21TdHJp
bmcmIGNlbmNOYW1lKCk7CisgICAgc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGtleWlkc05hbWUo
KTsKKyAgICBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgd2VibU5hbWUoKTsKKworICAgIHN0YXRp
YyBPcHRpb25hbDxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPElTT1Byb3RlY3Rpb25TeXN0ZW1TcGVj
aWZpY0hlYWRlckJveD4+PiBleHRyYWN0UHNzaEJveGVzRnJvbUNlbmMoY29uc3QgU2hhcmVkQnVm
ZmVyJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4+IGV4
dHJhY3RLZXlJRHNDZW5jKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOworICAgIHN0YXRpYyBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZUNlbmMoY29uc3QgU2hhcmVkQnVmZmVyJik7CisKIHByaXZh
dGU6CiAgICAgSW5pdERhdGFSZWdpc3RyeSgpOwogICAgIH5Jbml0RGF0YVJlZ2lzdHJ5KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Q0RNRmFpclBsYXlTdHJlYW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcAppbmRleCAyMWI5M2RlODg4
MWI1ZGU3NjdmYTA0YzY2YjEyMGEwOTM2ODM3MTlmLi4zNjFhOTkyZjBjNDY1MGNmMmI5NjI4YTY0
MmU5N2I1ZGJhMGUyYTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWlu
Zy5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDRE1LZXlTeXN0ZW1Db25maWd1cmF0
aW9uLmgiCiAjaW5jbHVkZSAiQ0RNUmVzdHJpY3Rpb25zLmgiCiAjaW5jbHVkZSAiQ0RNU2Vzc2lv
blR5cGUuaCIKKyNpbmNsdWRlICJJU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3gu
aCIKICNpbmNsdWRlICJJU09TY2hlbWVJbmZvcm1hdGlvbkJveC5oIgogI2luY2x1ZGUgIklTT1Nj
aGVtZVR5cGVCb3guaCIKICNpbmNsdWRlICJJU09UcmFja0VuY3J5cHRpb25Cb3guaCIKQEAgLTQ4
LDYgKzQ5LDEwIEBACiAjaW5jbHVkZSAiQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9i
akMuaCIKICNlbmRpZgogCisjaWYgSEFWRShGQUlSUExBWVNUUkVBTUlOR19DRU5DX0lOSVREQVRB
KQorI2luY2x1ZGUgIklTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveC5oIgorI2VuZGlmCisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgVmVjdG9yPEZvdXJDQz4mIENETVByaXZhdGVGYWly
UGxheVN0cmVhbWluZzo6dmFsaWRGYWlyUGxheVN0cmVhbWluZ1NjaGVtZXMoKQpAQCAtNzQsMTIg
Kzc5LDYgQEAgY29uc3QgQXRvbVN0cmluZyYgQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpz
a2ROYW1lKCkKICAgICByZXR1cm4gc2tkOwogfQogCi1jb25zdCBWZWN0b3I8dWludDhfdD4mIENE
TVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6ZmFpclBsYXlTeXN0ZW1JRCgpCi17Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFZlY3Rvcjx1aW50OF90Pj4gc3lzdGVtSUQgPSBWZWN0b3I8dWlu
dDhfdD4oeyAweDk0LCAweENFLCAweDg2LCAweEZCLCAweDA3LCAweEZGLCAweDRGLCAweDQzLCAw
eEFELCAweEI4LCAweDkzLCAweEQyLCAweEZBLCAweDk2LCAweDhDLCAweEEyIH0pOwotICAgIHJl
dHVybiBzeXN0ZW1JRDsKLX0KLQogc3RhdGljIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4gZXh0
cmFjdFNpbmZEYXRhKGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogewogICAgIC8vIEpTT04g
b2YgdGhlIGZvcm1hdDogInsgc2luZjogWyA8YmFzZTY0LWVuY29kZWQtc3RyaW5nPiBdIH0iCkBA
IC0yMDUsNiArMjA0LDkgQEAgc3RhdGljIGNvbnN0IEhhc2hTZXQ8QXRvbVN0cmluZz4mIHZhbGlk
SW5pdERhdGFUeXBlcygpCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8QXRvbVN0
cmluZz4+IHZhbGlkVHlwZXMgPSBIYXNoU2V0PEF0b21TdHJpbmc+KHsKICAgICAgICAgQ0RNUHJp
dmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpzaW5mTmFtZSgpLAogICAgICAgICBDRE1Qcml2YXRlRmFp
clBsYXlTdHJlYW1pbmc6OnNrZE5hbWUoKSwKKyNpZiBIQVZFKEZBSVJQTEFZU1RSRUFNSU5HX0NF
TkNfSU5JVERBVEEpCisgICAgICAgIEluaXREYXRhUmVnaXN0cnk6OmNlbmNOYW1lKCksCisjZW5k
aWYKICAgICB9KTsKICAgICByZXR1cm4gdmFsaWRUeXBlczsKIH0KQEAgLTM3Myw2ICszNzUsMTgg
QEAgYm9vbCBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnN1cHBvcnRzSW5pdERhdGEoY29u
c3QgQXRvbVN0cmluZyYgaW5pdERhdGFUeXAKICAgICAgICAgfSk7CiAgICAgfQogCisjaWYgSEFW
RShGQUlSUExBWVNUUkVBTUlOR19DRU5DX0lOSVREQVRBKQorICAgIGlmIChpbml0RGF0YVR5cGUg
PT0gSW5pdERhdGFSZWdpc3RyeTo6Y2VuY05hbWUoKSkgeworICAgICAgICBhdXRvIHBzc2hCb3hl
cyA9IEluaXREYXRhUmVnaXN0cnk6OmV4dHJhY3RQc3NoQm94ZXNGcm9tQ2VuYyhpbml0RGF0YSk7
CisgICAgICAgIGlmICghcHNzaEJveGVzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgIHJldHVybiBXVEY6OmFueU9mKHBzc2hCb3hlcy52YWx1ZSgpLCBbXShhdXRvJiBwc3No
Qm94KSB7CisgICAgICAgICAgICByZXR1cm4gaXM8SVNPRmFpclBsYXlTdHJlYW1pbmdQc3NoQm94
PigqcHNzaEJveCk7CisgICAgICAgIH0pOworICAgIH0KKyNlbmRpZgorCiAgICAgaWYgKGluaXRE
YXRhVHlwZSA9PSBza2ROYW1lKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBs
YXlTdHJlYW1pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5oCmluZGV4IDRjOGE2Y2UwYWNlZDU2OTAyYTdkMWQ1
YzA4ZDQyNzExYzI4YTRkNzUuLjg5MThlODBlMGMzOTBkN2U4ZGFjYTE5MDM5NDc5YTBkMGY2OTVh
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5oCkBAIC03OCw3ICs3
OCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVT
a2QoY29uc3QgU2hhcmVkQnVmZmVyJik7CiAKICAgICBzdGF0aWMgY29uc3QgVmVjdG9yPEZvdXJD
Qz4mIHZhbGlkRmFpclBsYXlTdHJlYW1pbmdTY2hlbWVzKCk7Ci0gICAgc3RhdGljIGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgZmFpclBsYXlTeXN0ZW1JRCgpOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0lTT0ZhaXJQbGF5
U3RyZWFtaW5nUHNzaEJveC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL0lTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveC5oCmluZGV4IDNhNGVlZTcxMGQ5
YTkzYTkxNjljNzkzMzgwODQ4NGNhMzg2ODIxZTUuLmY2Yjg5MmJhOTBmODNlMTZlMjgzNDY3NzIx
NjY5OWU3NTc3Yjc1NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9JU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3guaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSVNPRmFpclBsYXlTdHJl
YW1pbmdQc3NoQm94LmgKQEAgLTQyLDcgKzQyLDcgQEAgcHJpdmF0ZToKICAgICBGb3VyQ0MgbV9z
Y2hlbWU7CiB9OwogCi1jbGFzcyBXRUJDT1JFX0VYUE9SVCBJU09GYWlyUGxheVN0cmVhbWluZ0tl
eVJlcXVlc3RJbmZvQm94IDogcHVibGljIElTT0JveCB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBJ
U09GYWlyUGxheVN0cmVhbWluZ0tleVJlcXVlc3RJbmZvQm94IDogcHVibGljIElTT0Z1bGxCb3gg
ewogcHVibGljOgogICAgIHN0YXRpYyBGb3VyQ0MgYm94VHlwZU5hbWUoKSB7IHJldHVybiAiZmty
aSI7IH0KIApAQCAtMTA4LDcgKzEwOCw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIFdFQkNPUkVfRVhQ
T1JUIElTT0ZhaXJQbGF5U3RyZWFtaW5nSW5pdERhdGFCb3ggOiBwdWJsaWMgSVNPQm94IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgRm91ckNDIGJveFR5cGVOYW1lKCkgeyByZXR1cm4gImZwcyAiOyB9
CisgICAgc3RhdGljIEZvdXJDQyBib3hUeXBlTmFtZSgpIHsgcmV0dXJuICJmcHNkcSI7IH0KIAog
ICAgIGNvbnN0IElTT0ZhaXJQbGF5U3RyZWFtaW5nSW5mb0JveCYgaW5mbygpIGNvbnN0IHsgcmV0
dXJuIG1faW5mbzsgfQogICAgIGNvbnN0IFZlY3RvcjxJU09GYWlyUGxheVN0cmVhbWluZ0tleVJl
cXVlc3RCb3g+JiByZXF1ZXN0cygpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdHM7IH0KQEAgLTEz
MywzICsxMzMsNyBAQCBwcml2YXRlOgogfTsKIAogfQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0JFR0lOKFdlYkNvcmU6OklTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveCkgXAorc3RhdGljIGJv
b2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OklTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRl
ckJveCYgcHNzaEJveCkgeyByZXR1cm4gcHNzaEJveC5zeXN0ZW1JRCgpID09IFdlYkNvcmU6OklT
T0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveDo6ZmFpclBsYXlTeXN0ZW1JRCgpOyB9CitTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0VORCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCmluZGV4IGJkOGE2
MTUzZGUzYTkxOWI3MDJhMzI3NWRhMTZlZDM3MDcxZGNlNTYuLmRjNzE0MmIwNjVkZTY5M2VmNjVh
OGY5NTNmZmM5NTQ4ZDM2OTg2OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdB
VkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCkBAIC0zMSw2
ICszMSw3IEBACiAjaW1wb3J0ICJDRE1GYWlyUGxheVN0cmVhbWluZy5oIgogI2ltcG9ydCAiQ0RN
S2V5U3lzdGVtQ29uZmlndXJhdGlvbi5oIgogI2ltcG9ydCAiQ0RNTWVkaWFDYXBhYmlsaXR5Lmgi
CisjaW1wb3J0ICJJbml0RGF0YVJlZ2lzdHJ5LmgiCiAjaW1wb3J0ICJOb3RJbXBsZW1lbnRlZC5o
IgogI2ltcG9ydCAiU2hhcmVkQnVmZmVyLmgiCiAjaW1wb3J0ICJUZXh0RGVjb2Rlci5oIgpAQCAt
MzksNiArNDAsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9tYWMvQVZGb3VuZGF0aW9uU1BJLmg+CiAj
aW1wb3J0IDx3dGYvQWxnb3JpdGhtcy5oPgogI2ltcG9ydCA8d3RmL0ZpbGVTeXN0ZW0uaD4KKyNp
bXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nSGFzaC5o
PgogCiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KQEAgLTMxOCw2
ICszMjAsMTIgQEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9i
akM6OnJlcXVlc3RMaWNlbnNlKExpY2Vuc2VUeXBlIGxpY2UKICAgICAgICAgaW5pdGlhbGl6YXRp
b25EYXRhID0gaW5pdERhdGEtPmNyZWF0ZU5TRGF0YSgpOwogICAgIGVsc2UgaWYgKGluaXREYXRh
VHlwZSA9PSBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnNrZE5hbWUoKSkKICAgICAgICAg
aWRlbnRpZmllciA9IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOmluaXRE
YXRhLT5jcmVhdGVOU0RhdGEoKS5nZXQoKSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10p
OworI2lmIEhBVkUoRkFJUlBMQVlTVFJFQU1JTkdfQ0VOQ19JTklUREFUQSkKKyAgICBlbHNlIGlm
IChpbml0RGF0YVR5cGUgPT0gSW5pdERhdGFSZWdpc3RyeTo6Y2VuY05hbWUoKSkgeworICAgICAg
ICBTdHJpbmcgcHNzaFN0cmluZyA9IGJhc2U2NEVuY29kZShpbml0RGF0YS0+ZGF0YSgpLCBpbml0
RGF0YS0+c2l6ZSgpKTsKKyAgICAgICAgaW5pdGlhbGl6YXRpb25EYXRhID0gW05TSlNPTlNlcmlh
bGl6YXRpb24gZGF0YVdpdGhKU09OT2JqZWN0OkB7IEAicHNzaCI6IChOU1N0cmluZyopcHNzaFN0
cmluZyB9IG9wdGlvbnM6TlNKU09OV3JpdGluZ1ByZXR0eVByaW50ZWQgZXJyb3I6bmlsXTsKKyAg
ICB9CisjZW5kaWYKICAgICBlbHNlIHsKICAgICAgICAgY2FsbGJhY2soU2hhcmVkQnVmZmVyOjpj
cmVhdGUoKSwgZW1wdHlTdHJpbmcoKSwgZmFsc2UsIEZhaWxlZCk7CiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09Qcm90
ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvaXNvL0lTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveC5jcHAK
aW5kZXggNmU0YjY0ZmI0MjAwYmIwOTBjMDU1ODc3YmM5NmI1MTJkNTUxZjk4YS4uMTU4ODljNGVh
NTQ4NWZmMmM2YjUyMDRkMzJlODM4ZjJhYzM4OTMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRl
ckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1By
b3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveC5jcHAKQEAgLTM0LDYgKzM0LDE3IEBAIHVz
aW5nIEpTQzo6RGF0YVZpZXc7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorT3B0aW9uYWw8VmVj
dG9yPHVpbnQ4X3Q+PiBJU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3g6OnBlZWtT
eXN0ZW1JRChKU0M6OkRhdGFWaWV3JiB2aWV3LCB1bnNpZ25lZCBvZmZzZXQpCit7CisgICAgYXV0
byBwZWVrUmVzdWx0ID0gSVNPQm94OjpwZWVrQm94KHZpZXcsIG9mZnNldCk7CisgICAgaWYgKCFw
ZWVrUmVzdWx0IHx8IHBlZWtSZXN1bHQudmFsdWUoKS5maXJzdCAhPSBib3hUeXBlTmFtZSgpKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgSVNPUHJvdGVjdGlvblN5c3RlbVNw
ZWNpZmljSGVhZGVyQm94IHBzc2hCb3g7CisgICAgcHNzaEJveC5wYXJzZSh2aWV3LCBvZmZzZXQp
OworICAgIHJldHVybiBwc3NoQm94LnN5c3RlbUlEKCk7Cit9CisKIGJvb2wgSVNPUHJvdGVjdGlv
blN5c3RlbVNwZWNpZmljSGVhZGVyQm94OjpwYXJzZShEYXRhVmlldyYgdmlldywgdW5zaWduZWQm
IG9mZnNldCkKIHsKICAgICBpZiAoIUlTT0Z1bGxCb3g6OnBhcnNlKHZpZXcsIG9mZnNldCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pc28vSVNPUHJvdGVj
dGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9pc28vSVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94LmgKaW5kZXgg
NzlkYzQ5MzhlZDM2MDIxYTZhMDQ1YWYwNzYxMzFlNmMzMTU4ZjZmOC4uMTEyNzgwYWJjZDVmMmY5
ZWRhMmE3Mjc1NjUyMGY5YWU4MTc3MGYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09Qcm90ZWN0aW9u
U3lzdGVtU3BlY2lmaWNIZWFkZXJCb3guaApAQCAtMzYsNiArMzYsOCBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgS2V5SUQgPSBWZWN0b3I8dWludDhfdD47CiAgICAgc3RhdGljIEZvdXJDQyBib3hUeXBl
TmFtZSgpIHsgcmV0dXJuICJwc3NoIjsgfQogCisgICAgc3RhdGljIE9wdGlvbmFsPFZlY3Rvcjx1
aW50OF90Pj4gcGVla1N5c3RlbUlEKEpTQzo6RGF0YVZpZXcmLCB1bnNpZ25lZCBvZmZzZXQpOwor
CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHN5c3RlbUlEKCkgY29uc3QgeyByZXR1cm4gbV9zeXN0ZW1J
RDsgfQogICAgIFZlY3RvcjxLZXlJRD4ga2V5SURzKCkgY29uc3QgeyByZXR1cm4gbV9rZXlJRHM7
IH0KICAgICBWZWN0b3I8dWludDhfdD4gZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg0Y2Qy
NjRhNzI4NzRmMTQ5Nzc5MWI3YTkwMjY2MTY1ODY3ODc5NjMuLjZmMzE1M2E1Y2ExOTA3NzRmZmE5
YmVlMzE4ZGY2ZmJkZTc1NjgxMzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0wNy0wMSAgSmVyIE5vYmxlICA8
amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBQaXBlIHN1cG9ydCBmb3IgJ2NlbmMnIGlu
aXQgZGF0YSB0eXBlIGludG8gQ0RNRmFpclBsYXlTdHJlYW1pbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTM4MQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTI0ODMxMDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSVNPQm94LmNwcDoKKwogMjAx
OS0wNi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
bmV3IC1bV0tXZWJWaWV3IF9jbG9zZUFsbE1lZGlhUHJlc2VudGF0aW9uc10gU1BJCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSVNPQm94LmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9JU09Cb3guY3BwCmluZGV4IDA5OTg3NjRiMDAz
YTM3OTZlOWRkZDkxNDhmNjlhMzQyMWU1ODhhZWMuLjk2MTdiMDE1YWI5ZWZkMzk1MDFjMjM2YWFh
YTQyY2M2MGVkNzE2NDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9JU09Cb3guY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9J
U09Cb3guY3BwCkBAIC03NCw3ICs3NCw3IEBAIFRFU1QoSVNPQm94LCBJU09Qcm90ZWN0aW9uU2No
ZW1lSW5mb0JveCkKICAgICBBU1NFUlRfRVEoZGVmYXVsdElWLCB0cmFja0VuY3J5cHRpb25Cb3gt
PmRlZmF1bHRDb25zdGFudElWKCkpOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciogYmFzZTY0RW5j
b2RlZFBzc2hXaXRoQXNzZXRJZCA9ICJBQUFBcUhCemMyZ0FBQUFBbE02Ryt3Zi9UME90dUpQUytw
YU1vZ0FBQUlnQUFBQ0labkJ6WkFBQUFCQm1jSE5wQUFBQUFHTmxibU1BQUFBNFpuQnphd0FBQUJo
bWEzSnBBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQmhtYTJGcEFBQUFBQUFBQUFBQUFBQUFBQUFB
OFFBQUFEaG1jSE5yQUFBQUdHWnJjbWtBQUFBQUFBQUFBQUFBQUFBQUFBQUNBQUFBR0dacllXa0FB
QUFBQUFBQUFBQUFBQUFBQUFEeSI7CitzdGF0aWMgY29uc3QgY2hhciogYmFzZTY0RW5jb2RlZFBz
c2hXaXRoQXNzZXRJZCA9ICJBQUFBc0hCemMyZ0FBQUFBbE02Ryt3Zi9UME90dUpQUytwYU1vZ0FB
QUpBQUFBQ1FabkJ6WkFBQUFCQm1jSE5wQUFBQUFHTmxibU1BQUFBOFpuQnphd0FBQUJ4bWEzSnBB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBWVptdGhhUUFBQUFBQUFBQUFBQUFBQUFBQUFQ
RUFBQUE4Wm5CemF3QUFBQnhtYTNKcEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFZWm10
aGFRQUFBQUFBQUFBQUFBQUFBQUFBQVBJPSI7CiAKIFRFU1QoSVNPQm94LCBJU09GYWlyUGxheVN0
cmVhbWluZ1Bzc2hCb3gpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373321</attachid>
            <date>2019-07-02 07:57:45 -0700</date>
            <delta_ts>2019-07-02 08:31:30 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-199381-20190702075744.patch</filename>
            <type>text/plain</type>
            <size>18516</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2OTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTM0NGJhZDgxOWY5ZDkw
MmY2NzRjMGUxNDA5MTFiMTEyOWMzOWUwYi4uMjA1YmJjMjRiNjU4NGMwYTkxNTAzOTM3YTkyMTkw
YTQ5NTI3MzBhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE5LTA3LTAxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFBpcGUgc3Vwb3J0IGZvciAn
Y2VuYycgaW5pdCBkYXRhIHR5cGUgaW50byBDRE1GYWlyUGxheVN0cmVhbWluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzgxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEV4cG9zZSB0aGUgcGFyc2luZyBv
ZiAnY2VuYycgaW5pdCBkYXRhIGZyb20gSW5pdERhdGFSZWdpc3RyeSwgc28gaXQgY2FuIGJlIHVz
ZWQgaW4gdGhlCisgICAgICAgIGV2YWx1YXRpb24gc3RlcHMgaW5zaWRlIENETUZhaXJQbGF5U3Ry
ZWFtaW5nLgorCisgICAgICAgICsgQWRkIGEgbmV3IG1ldGhvZCwgZXh0cmFjdFBzc2hCb3hlc0Zy
b21DZW5jKCkgd2hpY2ggcmV0dXJucyBhbiBvcHRpb25hbCBhcnJheSBvZgorICAgICAgICAgIHVu
aXF1ZV9wdHJzIHRvIGRpZmZlcmVudCB0eXBlcyBvZiBJU09QU1NIQm94ZXMuCisgICAgICAgICsg
QWRkIGEgcGVla1NjaGVtZSgpIG1ldGhvZCB0byBJU09QU1NIQm94IHNvIHRoYXQgd2UgY2FuIGNy
ZWF0ZSB0aGUgY29ycmVjdCBzdWJjbGFzcworICAgICAgICAgIG9mIElTT1BTU0hCb3ggZnJvbSB0
aGUgYWJvdmUgbWV0aG9kLgorICAgICAgICArIFJlbW92ZSBhbiBleHRyYSBkZWZpbml0aW9uIG9m
IGZhaXJQbGF5U3lzdGVtSUQoKSBmcm9tIENETUZhaXJQbGF5U3RyZWFtaW5nLgorICAgICAgICAr
IEFkZCAnY2VuYycgdG8gdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIHR5cGVzIGluIENETVByaXZhdGVG
YWlyUGxheVN0cmVhbWluZzo6dmFpbGRJbml0RGF0YVR5cGVzKCkuCisgICAgICAgICsgQWRkIHN1
cHBvcnQgZm9yICdjZW5jJyBpbiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnN1cHBvcnRz
SW5pdERhdGEoKS4KKyAgICAgICAgKyBGb3JtYXQgdGhlICdjZW5jJyBpbml0IGRhdGEgYXMgYW4g
ZW5jb2RlYy1KU09OIHN0cnVjdHVyZSBmb3IgQVZDb250ZW50S2V5U2Vzc2lvbi4KKyAgICAgICAg
KyBVcGRhdGUgdGhlIElTT0ZhaXJQbGF5U3RyZWFtaW5nS2V5UmVxdWVzdEluZm9Cb3ggdG8gYmUg
YSBJU09GdWxsQm94LgorICAgICAgICArIFVwZGF0ZSB0aGUgYm94IG5hbWUgb2YgSVNPRmFpclBs
YXlTdHJlYW1pbmdJbml0RGF0YUJveC4KKworICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvSW5pdERhdGFSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbml0RGF0YVJlZ2lz
dHJ5OjpleHRyYWN0UHNzaEJveGVzRnJvbUNlbmMpOgorICAgICAgICAoV2ViQ29yZTo6SW5pdERh
dGFSZWdpc3RyeTo6ZXh0cmFjdEtleUlEc0NlbmMpOgorICAgICAgICAoV2ViQ29yZTo6SW5pdERh
dGFSZWdpc3RyeTo6c2FuaXRpemVDZW5jKToKKyAgICAgICAgKFdlYkNvcmU6OkluaXREYXRhUmVn
aXN0cnk6OmNlbmNOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkluaXREYXRhUmVnaXN0cnk6Omtl
eWlkc05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5pdERhdGFSZWdpc3RyeTo6d2VibU5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6ZXh0cmFjdEtleUlEc0NlbmMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6c2FuaXRpemVDZW5jKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlcjo6Y2hhbmdlVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlk
SW5pdERhdGFUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJl
YW1pbmc6OnN1cHBvcnRzSW5pdERhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJp
dmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpmYWlyUGxheVN5c3RlbUlEKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSVNPRmFpclBsYXlT
dHJlYW1pbmdQc3NoQm94Lmg6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdB
VkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlT
dHJlYW1pbmdBVkZPYmpDOjpyZXF1ZXN0TGljZW5zZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvaXNvL0lTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3g6OnBlZWtT
eXN0ZW1JRCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1Byb3RlY3Rpb25T
eXN0ZW1TcGVjaWZpY0hlYWRlckJveC5oOgorCiAyMDE5LTA2LTI4ICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE5lZWQgYSB3YXkgZm9yIFNQSSBjbGll
bnRzIHRvIGtub3cgd2hlbiB0byBhdm9pZCByZXNpemluZyB0byBhY2NvbW1vZGF0ZSBmb3IgdGhl
IGlucHV0IHZpZXcgYm91bmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcAppbmRleCA0YmY3MTQ5NGQ5Yjc5
ZGYxZjBlMjA0MDU2OTNlNTYxYzBjNzBjY2Q4Li5iNmZkNjhkNjcyZWRlMzg3NzhjMTVjNmZlYWFm
NDZiNDU1ZTVhMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCBz
dGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVLZXlpZHMoY29uc3QgU2hhcmVkQnVm
ZmVyJiBidWZmZXIpCiAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGpzb25EYXRhLmRh
dGEoKSwganNvbkRhdGEubGVuZ3RoKCkpOwogfQogCi1zdGF0aWMgT3B0aW9uYWw8VmVjdG9yPFJl
ZjxTaGFyZWRCdWZmZXI+Pj4gZXh0cmFjdEtleUlEc0NlbmMoY29uc3QgU2hhcmVkQnVmZmVyJiBi
dWZmZXIpCitPcHRpb25hbDxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPElTT1Byb3RlY3Rpb25TeXN0
ZW1TcGVjaWZpY0hlYWRlckJveD4+PiBJbml0RGF0YVJlZ2lzdHJ5OjpleHRyYWN0UHNzaEJveGVz
RnJvbUNlbmMoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiB7CiAgICAgLy8gNC4gQ29tbW9u
IFN5c3RlbUlEIGFuZCBQU1NIIEJveCBGb3JtYXQKICAgICAvLyBodHRwczovL3czYy5naXRodWIu
aW8vZW5jcnlwdGVkLW1lZGlhL2Zvcm1hdC1yZWdpc3RyeS9pbml0ZGF0YS9jZW5jLmh0bWwjY29t
bW9uLXN5c3RlbQpAQCAtMTIwLDcgKzEyMCw3IEBAIHN0YXRpYyBPcHRpb25hbDxWZWN0b3I8UmVm
PFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0S2V5SURzQ2VuYyhjb25zdCBTaGFyZWRCdWZmZXImCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKICAgICB1bnNpZ25lZCBvZmZzZXQgPSAwOwot
ICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4ga2V5SURzOworICAgIFZlY3RvcjxzdGQ6OnVu
aXF1ZV9wdHI8SVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94Pj4gcHNzaEJveGVz
OwogCiAgICAgYXV0byB2aWV3ID0gSlNDOjpEYXRhVmlldzo6Y3JlYXRlKGJ1ZmZlci50cnlDcmVh
dGVBcnJheUJ1ZmZlcigpLCBvZmZzZXQsIGJ1ZmZlci5zaXplKCkpOwogICAgIHdoaWxlIChhdXRv
IG9wdGlvbmFsQm94VHlwZSA9IElTT0JveDo6cGVla0JveCh2aWV3LCBvZmZzZXQpKSB7CkBAIC0x
MzAsMTYgKzEzMCw0NCBAQCBzdGF0aWMgT3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+
Pj4gZXh0cmFjdEtleUlEc0NlbmMoY29uc3QgU2hhcmVkQnVmZmVyJgogICAgICAgICBpZiAoYm94
VHlwZU5hbWUgIT0gSVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94Ojpib3hUeXBl
TmFtZSgpIHx8IGJveFNpemUgPiBidWZmZXIuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKIAotICAgICAgICBJU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJC
b3ggcHNzaEJveDsKLSAgICAgICAgaWYgKCFwc3NoQm94LnJlYWQodmlldywgb2Zmc2V0KSkKKyAg
ICAgICAgYXV0byBzeXN0ZW1JRCA9IElTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJv
eDo6cGVla1N5c3RlbUlEKHZpZXcsIG9mZnNldCk7CisjaWYgSEFWRShGQUlSUExBWVNUUkVBTUlO
R19DRU5DX0lOSVREQVRBKQorICAgICAgICBpZiAoc3lzdGVtSUQgPT0gSVNPRmFpclBsYXlTdHJl
YW1pbmdQc3NoQm94OjpmYWlyUGxheVN5c3RlbUlEKCkpIHsKKyAgICAgICAgICAgIGF1dG8gZnBz
UHNzaCA9IHN0ZDo6bWFrZV91bmlxdWU8SVNPRmFpclBsYXlTdHJlYW1pbmdQc3NoQm94PigpOwor
ICAgICAgICAgICAgaWYgKCFmcHNQc3NoLT5yZWFkKHZpZXcsIG9mZnNldCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgICAgIHBzc2hCb3hlcy5hcHBlbmQo
V1RGTW92ZShmcHNQc3NoKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorI2Vs
c2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKHN5c3RlbUlEKTsKKyNlbmRpZgorICAgICAgICBhdXRv
IHBzc2hCb3ggPSBzdGQ6Om1ha2VfdW5pcXVlPElTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hl
YWRlckJveD4oKTsKKyAgICAgICAgaWYgKCFwc3NoQm94LT5yZWFkKHZpZXcsIG9mZnNldCkpCisg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIHBzc2hCb3hlcy5hcHBl
bmQoV1RGTW92ZShwc3NoQm94KSk7CisgICAgfQorCisgICAgcmV0dXJuIHBzc2hCb3hlczsKK30K
KworT3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+Pj4gSW5pdERhdGFSZWdpc3RyeTo6
ZXh0cmFjdEtleUlEc0NlbmMoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCit7CisgICAgVmVj
dG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBrZXlJRHM7CisKKyAgICBhdXRvIHBzc2hCb3hlcyA9IGV4
dHJhY3RQc3NoQm94ZXNGcm9tQ2VuYyhidWZmZXIpOworICAgIGlmICghcHNzaEJveGVzKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgZm9yIChhdXRvJiBwc3NoQm94IDogcHNz
aEJveGVzLnZhbHVlKCkpIHsKKyAgICAgICAgQVNTRVJUKHBzc2hCb3gpOworICAgICAgICBpZiAo
IXBzc2hCb3gpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAjaWYgSEFWRShG
QUlSUExBWVNUUkVBTUlOR19DRU5DX0lOSVREQVRBKQotICAgICAgICBpZiAocHNzaEJveC5zeXN0
ZW1JRCgpID09IENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6ZmFpclBsYXlTeXN0ZW1JRCgp
KSB7Ci0gICAgICAgICAgICBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3ggZnBzUHNzaDsKLSAg
ICAgICAgICAgIG9mZnNldCAtPSBwc3NoQm94LnNpemUoKTsKLSAgICAgICAgICAgIGlmICghZnBz
UHNzaC5yZWFkKHZpZXcsIG9mZnNldCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKyAgICAgICAgaWYgKGlzPElTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveD4oKnBzc2hC
b3gpKSB7CisgICAgICAgICAgICBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3gmIGZwc1Bzc2gg
PSBkb3duY2FzdDxJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3g+KCpwc3NoQm94KTsKIAogICAg
ICAgICAgICAgRm91ckNDIHNjaGVtZSA9IGZwc1Bzc2guaW5pdERhdGFCb3goKS5pbmZvKCkuc2No
ZW1lKCk7CiAgICAgICAgICAgICBpZiAoQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjp2YWxp
ZEZhaXJQbGF5U3RyZWFtaW5nU2NoZW1lcygpLmNvbnRhaW5zKHNjaGVtZSkpIHsKQEAgLTE1MSwx
NCArMTc5LDE0IEBAIHN0YXRpYyBPcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBl
eHRyYWN0S2V5SURzQ2VuYyhjb25zdCBTaGFyZWRCdWZmZXImCiAgICAgICAgIH0KICNlbmRpZgog
Ci0gICAgICAgIGZvciAoYXV0byYgdmFsdWUgOiBwc3NoQm94LmtleUlEcygpKQorICAgICAgICBm
b3IgKGF1dG8mIHZhbHVlIDogcHNzaEJveC0+a2V5SURzKCkpCiAgICAgICAgICAgICBrZXlJRHMu
YXBwZW5kKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUodmFsdWUpKSk7CiAgICAgfQogCiAg
ICAgcmV0dXJuIGtleUlEczsKIH0KIAotc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNhbml0
aXplQ2VuYyhjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKK1JlZlB0cjxTaGFyZWRCdWZmZXI+
IEluaXREYXRhUmVnaXN0cnk6OnNhbml0aXplQ2VuYyhjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZl
cikKIHsKICAgICAvLyA0LiBDb21tb24gU3lzdGVtSUQgYW5kIFBTU0ggQm94IEZvcm1hdAogICAg
IC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0LXJlZ2lzdHJ5
L2luaXRkYXRhL2NlbmMuaHRtbCNjb21tb24tc3lzdGVtCkBAIC0yMjgsNiArMjU2LDI0IEBAIHZv
aWQgSW5pdERhdGFSZWdpc3RyeTo6cmVnaXN0ZXJJbml0RGF0YVR5cGUoY29uc3QgQXRvbVN0cmlu
ZyYgaW5pdERhdGFUeXBlLCBJbml0CiAgICAgbV90eXBlcy5zZXQoaW5pdERhdGFUeXBlLCBXVEZN
b3ZlKGNhbGxiYWNrcykpOwogfQogCitjb25zdCBBdG9tU3RyaW5nJiBJbml0RGF0YVJlZ2lzdHJ5
OjpjZW5jTmFtZSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNp
bmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiY2VuYyIpIH07CisgICAgcmV0dXJuIHNpbmY7
Cit9CisKK2NvbnN0IEF0b21TdHJpbmcmIEluaXREYXRhUmVnaXN0cnk6OmtleWlkc05hbWUoKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzaW5mIHsgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoImtleWlkcyIpIH07CisgICAgcmV0dXJuIHNpbmY7Cit9CisKK2NvbnN0
IEF0b21TdHJpbmcmIEluaXREYXRhUmVnaXN0cnk6OndlYm1OYW1lKCkKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJ3ZWJtIikgfTsKKyAgICByZXR1cm4gc2luZjsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmgKaW5kZXggMWY3OTMwYjk5ZDIwYzNmZDVl
ZDQ3NjczYmY2ZWQ0NWIwODZjODQxNi4uNzlmZTUxMjgwNjE0ODVlY2EyOWYxYzM4MjYxNmI3ZTQ4
NmUxOTAyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9Jbml0RGF0YVJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmgKQEAgLTM4LDYgKzM4LDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBJU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3g7
CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiAKIGNsYXNzIEluaXREYXRhUmVnaXN0cnkgewpAQCAtNTcs
NiArNTgsMTQgQEAgcHVibGljOgogICAgIH07CiAgICAgdm9pZCByZWdpc3RlckluaXREYXRhVHlw
ZShjb25zdCBBdG9tU3RyaW5nJiBpbml0RGF0YVR5cGUsIEluaXREYXRhVHlwZUNhbGxiYWNrcyYm
KTsKIAorICAgIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBjZW5jTmFtZSgpOworICAgIHN0YXRp
YyBjb25zdCBBdG9tU3RyaW5nJiBrZXlpZHNOYW1lKCk7CisgICAgc3RhdGljIGNvbnN0IEF0b21T
dHJpbmcmIHdlYm1OYW1lKCk7CisKKyAgICBzdGF0aWMgT3B0aW9uYWw8VmVjdG9yPHN0ZDo6dW5p
cXVlX3B0cjxJU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3g+Pj4gZXh0cmFjdFBz
c2hCb3hlc0Zyb21DZW5jKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOworICAgIHN0YXRpYyBPcHRpb25h
bDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0S2V5SURzQ2VuYyhjb25zdCBTaGFy
ZWRCdWZmZXImKTsKKyAgICBzdGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVDZW5j
KGNvbnN0IFNoYXJlZEJ1ZmZlciYpOworCiBwcml2YXRlOgogICAgIEluaXREYXRhUmVnaXN0cnko
KTsKICAgICB+SW5pdERhdGFSZWdpc3RyeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxh
eVN0cmVhbWluZy5jcHAKaW5kZXggMjFiOTNkZTg4ODFiNWRlNzY3ZmEwNGM2NmIxMjBhMDkzNjgz
NzE5Zi4uMzYxYTk5MmYwYzQ2NTBjZjJiOTYyOGE2NDJlOTdiNWRiYTBlMmEzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQ
bGF5U3RyZWFtaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiQ0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIkNETVJlc3Ry
aWN0aW9ucy5oIgogI2luY2x1ZGUgIkNETVNlc3Npb25UeXBlLmgiCisjaW5jbHVkZSAiSVNPUHJv
dGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94LmgiCiAjaW5jbHVkZSAiSVNPU2NoZW1lSW5m
b3JtYXRpb25Cb3guaCIKICNpbmNsdWRlICJJU09TY2hlbWVUeXBlQm94LmgiCiAjaW5jbHVkZSAi
SVNPVHJhY2tFbmNyeXB0aW9uQm94LmgiCkBAIC00OCw2ICs0OSwxMCBAQAogI2luY2x1ZGUgIkNE
TUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmgiCiAjZW5kaWYKIAorI2lmIEhBVkUo
RkFJUlBMQVlTVFJFQU1JTkdfQ0VOQ19JTklUREFUQSkKKyNpbmNsdWRlICJJU09GYWlyUGxheVN0
cmVhbWluZ1Bzc2hCb3guaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0
IFZlY3RvcjxGb3VyQ0M+JiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnZhbGlkRmFpclBs
YXlTdHJlYW1pbmdTY2hlbWVzKCkKQEAgLTc0LDEyICs3OSw2IEBAIGNvbnN0IEF0b21TdHJpbmcm
IENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2tkTmFtZSgpCiAgICAgcmV0dXJuIHNrZDsK
IH0KIAotY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6
OmZhaXJQbGF5U3lzdGVtSUQoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8
dWludDhfdD4+IHN5c3RlbUlEID0gVmVjdG9yPHVpbnQ4X3Q+KHsgMHg5NCwgMHhDRSwgMHg4Niwg
MHhGQiwgMHgwNywgMHhGRiwgMHg0RiwgMHg0MywgMHhBRCwgMHhCOCwgMHg5MywgMHhEMiwgMHhG
QSwgMHg5NiwgMHg4QywgMHhBMiB9KTsKLSAgICByZXR1cm4gc3lzdGVtSUQ7Ci19Ci0KIHN0YXRp
YyBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGV4dHJhY3RTaW5mRGF0YShjb25zdCBTaGFyZWRC
dWZmZXImIGJ1ZmZlcikKIHsKICAgICAvLyBKU09OIG9mIHRoZSBmb3JtYXQ6ICJ7IHNpbmY6IFsg
PGJhc2U2NC1lbmNvZGVkLXN0cmluZz4gXSB9IgpAQCAtMjA1LDYgKzIwNCw5IEBAIHN0YXRpYyBj
b25zdCBIYXNoU2V0PEF0b21TdHJpbmc+JiB2YWxpZEluaXREYXRhVHlwZXMoKQogICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PEF0b21TdHJpbmc+PiB2YWxpZFR5cGVzID0gSGFzaFNl
dDxBdG9tU3RyaW5nPih7CiAgICAgICAgIENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2lu
Zk5hbWUoKSwKICAgICAgICAgQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpza2ROYW1lKCks
CisjaWYgSEFWRShGQUlSUExBWVNUUkVBTUlOR19DRU5DX0lOSVREQVRBKQorICAgICAgICBJbml0
RGF0YVJlZ2lzdHJ5OjpjZW5jTmFtZSgpLAorI2VuZGlmCiAgICAgfSk7CiAgICAgcmV0dXJuIHZh
bGlkVHlwZXM7CiB9CkBAIC0zNzMsNiArMzc1LDE4IEBAIGJvb2wgQ0RNUHJpdmF0ZUZhaXJQbGF5
U3RyZWFtaW5nOjpzdXBwb3J0c0luaXREYXRhKGNvbnN0IEF0b21TdHJpbmcmIGluaXREYXRhVHlw
CiAgICAgICAgIH0pOwogICAgIH0KIAorI2lmIEhBVkUoRkFJUlBMQVlTVFJFQU1JTkdfQ0VOQ19J
TklUREFUQSkKKyAgICBpZiAoaW5pdERhdGFUeXBlID09IEluaXREYXRhUmVnaXN0cnk6OmNlbmNO
YW1lKCkpIHsKKyAgICAgICAgYXV0byBwc3NoQm94ZXMgPSBJbml0RGF0YVJlZ2lzdHJ5OjpleHRy
YWN0UHNzaEJveGVzRnJvbUNlbmMoaW5pdERhdGEpOworICAgICAgICBpZiAoIXBzc2hCb3hlcykK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gV1RGOjphbnlPZihw
c3NoQm94ZXMudmFsdWUoKSwgW10oYXV0byYgcHNzaEJveCkgeworICAgICAgICAgICAgcmV0dXJu
IGlzPElTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveD4oKnBzc2hCb3gpOworICAgICAgICB9KTsK
KyAgICB9CisjZW5kaWYKKwogICAgIGlmIChpbml0RGF0YVR5cGUgPT0gc2tkTmFtZSgpKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
aAppbmRleCA0YzhhNmNlMGFjZWQ1NjkwMmE3ZDFkNWMwOGQ0MjcxMWMyOGE0ZDc1Li44OTE4ZTgw
ZTBjMzkwZDdlOGRhY2ExOTAzOTQ3OWEwZDBmNjk1YWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RN
RmFpclBsYXlTdHJlYW1pbmcuaApAQCAtNzgsNyArNzgsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNhbml0aXplU2tkKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwog
CiAgICAgc3RhdGljIGNvbnN0IFZlY3RvcjxGb3VyQ0M+JiB2YWxpZEZhaXJQbGF5U3RyZWFtaW5n
U2NoZW1lcygpOwotICAgIHN0YXRpYyBjb25zdCBWZWN0b3I8dWludDhfdD4mIGZhaXJQbGF5U3lz
dGVtSUQoKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9JU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3guaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JU09GYWlyUGxheVN0cmVh
bWluZ1Bzc2hCb3guaAppbmRleCAzYTRlZWU3MTBkOWE5M2E5MTY5Yzc5MzM4MDg0ODRjYTM4Njgy
MWU1Li5mNmI4OTJiYTkwZjgzZTE2ZTI4MzQ2NzcyMTY2OTllNzU3N2I3NTQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSVNPRmFpclBs
YXlTdHJlYW1pbmdQc3NoQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL0lTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveC5oCkBAIC00Miw3ICs0
Miw3IEBAIHByaXZhdGU6CiAgICAgRm91ckNDIG1fc2NoZW1lOwogfTsKIAotY2xhc3MgV0VCQ09S
RV9FWFBPUlQgSVNPRmFpclBsYXlTdHJlYW1pbmdLZXlSZXF1ZXN0SW5mb0JveCA6IHB1YmxpYyBJ
U09Cb3ggeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSVNPRmFpclBsYXlTdHJlYW1pbmdLZXlSZXF1
ZXN0SW5mb0JveCA6IHB1YmxpYyBJU09GdWxsQm94IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgRm91
ckNDIGJveFR5cGVOYW1lKCkgeyByZXR1cm4gImZrcmkiOyB9CiAKQEAgLTEwOCw3ICsxMDgsNyBA
QCBwcml2YXRlOgogCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBJU09GYWlyUGxheVN0cmVhbWluZ0lu
aXREYXRhQm94IDogcHVibGljIElTT0JveCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIEZvdXJDQyBi
b3hUeXBlTmFtZSgpIHsgcmV0dXJuICJmcHMgIjsgfQorICAgIHN0YXRpYyBGb3VyQ0MgYm94VHlw
ZU5hbWUoKSB7IHJldHVybiAiZnBzZHEiOyB9CiAKICAgICBjb25zdCBJU09GYWlyUGxheVN0cmVh
bWluZ0luZm9Cb3gmIGluZm8oKSBjb25zdCB7IHJldHVybiBtX2luZm87IH0KICAgICBjb25zdCBW
ZWN0b3I8SVNPRmFpclBsYXlTdHJlYW1pbmdLZXlSZXF1ZXN0Qm94PiYgcmVxdWVzdHMoKSBjb25z
dCB7IHJldHVybiBtX3JlcXVlc3RzOyB9CkBAIC0xMzMsMyArMTMzLDcgQEAgcHJpdmF0ZToKIH07
CiAKIH0KKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpJU09GYWlyUGxh
eVN0cmVhbWluZ1Bzc2hCb3gpIFwKK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpJ
U09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3gmIHBzc2hCb3gpIHsgcmV0dXJuIHBz
c2hCb3guc3lzdGVtSUQoKSA9PSBXZWJDb3JlOjpJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3g6
OmZhaXJQbGF5U3lzdGVtSUQoKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5
U3RyZWFtaW5nQVZGT2JqQy5tbQppbmRleCBiZDhhNjE1M2RlM2E5MTliNzAyYTMyNzVkYTE2ZWQz
NzA3MWRjZTU2Li5kYzcxNDJiMDY1ZGU2OTNlZjY1YThmOTUzZmZjOTU0OGQzNjk4NjhmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQ
bGF5U3RyZWFtaW5nQVZGT2JqQy5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiQ0RNRmFp
clBsYXlTdHJlYW1pbmcuaCIKICNpbXBvcnQgIkNETUtleVN5c3RlbUNvbmZpZ3VyYXRpb24uaCIK
ICNpbXBvcnQgIkNETU1lZGlhQ2FwYWJpbGl0eS5oIgorI2ltcG9ydCAiSW5pdERhdGFSZWdpc3Ry
eS5oIgogI2ltcG9ydCAiTm90SW1wbGVtZW50ZWQuaCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlci5o
IgogI2ltcG9ydCAiVGV4dERlY29kZXIuaCIKQEAgLTM5LDYgKzQwLDcgQEAKICNpbXBvcnQgPHBh
bC9zcGkvbWFjL0FWRm91bmRhdGlvblNQSS5oPgogI2ltcG9ydCA8d3RmL0FsZ29yaXRobXMuaD4K
ICNpbXBvcnQgPHd0Zi9GaWxlU3lzdGVtLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9CYXNlNjQuaD4K
ICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogI2ltcG9ydCA8cGFsL2NvY29hL0FW
Rm91bmRhdGlvblNvZnRMaW5rLmg+CkBAIC0zMTgsNiArMzIwLDEyIEBAIHZvaWQgQ0RNSW5zdGFu
Y2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpyZXF1ZXN0TGljZW5zZShMaWNlbnNl
VHlwZSBsaWNlCiAgICAgICAgIGluaXRpYWxpemF0aW9uRGF0YSA9IGluaXREYXRhLT5jcmVhdGVO
U0RhdGEoKTsKICAgICBlbHNlIGlmIChpbml0RGF0YVR5cGUgPT0gQ0RNUHJpdmF0ZUZhaXJQbGF5
U3RyZWFtaW5nOjpza2ROYW1lKCkpCiAgICAgICAgIGlkZW50aWZpZXIgPSBhZG9wdE5TKFtbTlNT
dHJpbmcgYWxsb2NdIGluaXRXaXRoRGF0YTppbml0RGF0YS0+Y3JlYXRlTlNEYXRhKCkuZ2V0KCkg
ZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddKTsKKyNpZiBIQVZFKEZBSVJQTEFZU1RSRUFN
SU5HX0NFTkNfSU5JVERBVEEpCisgICAgZWxzZSBpZiAoaW5pdERhdGFUeXBlID09IEluaXREYXRh
UmVnaXN0cnk6OmNlbmNOYW1lKCkpIHsKKyAgICAgICAgU3RyaW5nIHBzc2hTdHJpbmcgPSBiYXNl
NjRFbmNvZGUoaW5pdERhdGEtPmRhdGEoKSwgaW5pdERhdGEtPnNpemUoKSk7CisgICAgICAgIGlu
aXRpYWxpemF0aW9uRGF0YSA9IFtOU0pTT05TZXJpYWxpemF0aW9uIGRhdGFXaXRoSlNPTk9iamVj
dDpAeyBAInBzc2giOiAoTlNTdHJpbmcqKXBzc2hTdHJpbmcgfSBvcHRpb25zOk5TSlNPTldyaXRp
bmdQcmV0dHlQcmludGVkIGVycm9yOm5pbF07CisgICAgfQorI2VuZGlmCiAgICAgZWxzZSB7CiAg
ICAgICAgIGNhbGxiYWNrKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCksIGVtcHR5U3RyaW5nKCksIGZh
bHNlLCBGYWlsZWQpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9pc28vSVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVy
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09Qcm90ZWN0
aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3guY3BwCmluZGV4IDZlNGI2NGZiNDIwMGJiMDkwYzA1
NTg3N2JjOTZiNTEyZDU1MWY5OGEuLjE1ODg5YzRlYTU0ODVmZjJjNmI1MjA0ZDMyZTgzOGYyYWMz
ODkzMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lzby9J
U09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFk
ZXJCb3guY3BwCkBAIC0zNCw2ICszNCwxNyBAQCB1c2luZyBKU0M6OkRhdGFWaWV3OwogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK09wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gSVNPUHJvdGVjdGlv
blN5c3RlbVNwZWNpZmljSGVhZGVyQm94OjpwZWVrU3lzdGVtSUQoSlNDOjpEYXRhVmlldyYgdmll
dywgdW5zaWduZWQgb2Zmc2V0KQoreworICAgIGF1dG8gcGVla1Jlc3VsdCA9IElTT0JveDo6cGVl
a0JveCh2aWV3LCBvZmZzZXQpOworICAgIGlmICghcGVla1Jlc3VsdCB8fCBwZWVrUmVzdWx0LnZh
bHVlKCkuZmlyc3QgIT0gYm94VHlwZU5hbWUoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIElTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveCBwc3NoQm94Owor
ICAgIHBzc2hCb3gucGFyc2Uodmlldywgb2Zmc2V0KTsKKyAgICByZXR1cm4gcHNzaEJveC5zeXN0
ZW1JRCgpOworfQorCiBib29sIElTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveDo6
cGFyc2UoRGF0YVZpZXcmIHZpZXcsIHVuc2lnbmVkJiBvZmZzZXQpCiB7CiAgICAgaWYgKCFJU09G
dWxsQm94OjpwYXJzZSh2aWV3LCBvZmZzZXQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJv
eC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1Byb3RlY3Rpb25T
eXN0ZW1TcGVjaWZpY0hlYWRlckJveC5oCmluZGV4IDc5ZGM0OTM4ZWQzNjAyMWE2YTA0NWFmMDc2
MTMxZTZjMzE1OGY2ZjguLjExMjc4MGFiY2Q1ZjJmOWVkYTJhNzI3NTY1MjBmOWFlODE3NzBmM2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09Qcm90
ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9pc28vSVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94LmgK
QEAgLTM2LDYgKzM2LDggQEAgcHVibGljOgogICAgIHVzaW5nIEtleUlEID0gVmVjdG9yPHVpbnQ4
X3Q+OwogICAgIHN0YXRpYyBGb3VyQ0MgYm94VHlwZU5hbWUoKSB7IHJldHVybiAicHNzaCI7IH0K
IAorICAgIHN0YXRpYyBPcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IHBlZWtTeXN0ZW1JRChKU0M6
OkRhdGFWaWV3JiwgdW5zaWduZWQgb2Zmc2V0KTsKKwogICAgIFZlY3Rvcjx1aW50OF90PiBzeXN0
ZW1JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc3lzdGVtSUQ7IH0KICAgICBWZWN0b3I8S2V5SUQ+IGtl
eUlEcygpIGNvbnN0IHsgcmV0dXJuIG1fa2V5SURzOyB9CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGRh
dGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4NGNkMjY0YTcyODc0ZjE0OTc3OTFiN2E5MDI2NjE2
NTg2Nzg3OTYzLi5jYThiODc1ODc5ZTRkN2EwNmNmOTU1N2Y2ZjkyN2ViNzY4MTY3OGE2IDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMTktMDctMDEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAg
ICAgICAgUGlwZSBzdXBvcnQgZm9yICdjZW5jJyBpbml0IGRhdGEgdHlwZSBpbnRvIENETUZhaXJQ
bGF5U3RyZWFtaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTkzODEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUyNDgzMTAzPgorCisgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9JU09Cb3guY3BwOgorCiAyMDE5LTA2LTI4ICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBuZXcgLVtXS1dlYlZpZXcgX2Nsb3NlQWxsTWVk
aWFQcmVzZW50YXRpb25zXSBTUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9JU09Cb3guY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0lTT0JveC5jcHAKaW5kZXggMDk5ODc2NGIwMDNhMzc5NmU5ZGRkOTE0OGY2OWEzNDIxZTU4OGFl
Yy4uOTYxN2IwMTVhYjllZmQzOTUwMWMyMzZhYWFhNDJjYzYwZWQ3MTY0NSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0lTT0JveC5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0lTT0JveC5jcHAKQEAgLTc0LDcgKzc0LDcgQEAg
VEVTVChJU09Cb3gsIElTT1Byb3RlY3Rpb25TY2hlbWVJbmZvQm94KQogICAgIEFTU0VSVF9FUShk
ZWZhdWx0SVYsIHRyYWNrRW5jcnlwdGlvbkJveC0+ZGVmYXVsdENvbnN0YW50SVYoKSk7CiB9CiAK
LXN0YXRpYyBjb25zdCBjaGFyKiBiYXNlNjRFbmNvZGVkUHNzaFdpdGhBc3NldElkID0gIkFBQUFx
SEJ6YzJnQUFBQUFsTTZHK3dmL1QwT3R1SlBTK3BhTW9nQUFBSWdBQUFDSVpuQnpaQUFBQUJCbWNI
TnBBQUFBQUdObGJtTUFBQUE0Wm5CemF3QUFBQmhtYTNKcEFBQUFBQUFBQUFBQUFBQUFBQUFBQVFB
QUFCaG1hMkZwQUFBQUFBQUFBQUFBQUFBQUFBQUE4UUFBQURobWNITnJBQUFBR0dacmNta0FBQUFB
QUFBQUFBQUFBQUFBQUFBQ0FBQUFHR1pyWVdrQUFBQUFBQUFBQUFBQUFBQUFBQUR5IjsKK3N0YXRp
YyBjb25zdCBjaGFyKiBiYXNlNjRFbmNvZGVkUHNzaFdpdGhBc3NldElkID0gIkFBQUFzSEJ6YzJn
QUFBQUFsTTZHK3dmL1QwT3R1SlBTK3BhTW9nQUFBSkFBQUFDUVpuQnpaQUFBQUJCbWNITnBBQUFB
QUdObGJtTUFBQUE4Wm5CemF3QUFBQnhtYTNKcEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFB
QUFZWm10aGFRQUFBQUFBQUFBQUFBQUFBQUFBQVBFQUFBQThabkJ6YXdBQUFCeG1hM0pwQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFJQUFBQVlabXRoYVFBQUFBQUFBQUFBQUFBQUFBQUFBUEk9IjsK
IAogVEVTVChJU09Cb3gsIElTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveCkKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373324</attachid>
            <date>2019-07-02 08:31:31 -0700</date>
            <delta_ts>2019-07-02 09:11:46 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-199381-20190702083131.patch</filename>
            <type>text/plain</type>
            <size>18515</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2OTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTM0NGJhZDgxOWY5ZDkw
MmY2NzRjMGUxNDA5MTFiMTEyOWMzOWUwYi4uMjA1YmJjMjRiNjU4NGMwYTkxNTAzOTM3YTkyMTkw
YTQ5NTI3MzBhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE5LTA3LTAxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFBpcGUgc3Vwb3J0IGZvciAn
Y2VuYycgaW5pdCBkYXRhIHR5cGUgaW50byBDRE1GYWlyUGxheVN0cmVhbWluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzgxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEV4cG9zZSB0aGUgcGFyc2luZyBv
ZiAnY2VuYycgaW5pdCBkYXRhIGZyb20gSW5pdERhdGFSZWdpc3RyeSwgc28gaXQgY2FuIGJlIHVz
ZWQgaW4gdGhlCisgICAgICAgIGV2YWx1YXRpb24gc3RlcHMgaW5zaWRlIENETUZhaXJQbGF5U3Ry
ZWFtaW5nLgorCisgICAgICAgICsgQWRkIGEgbmV3IG1ldGhvZCwgZXh0cmFjdFBzc2hCb3hlc0Zy
b21DZW5jKCkgd2hpY2ggcmV0dXJucyBhbiBvcHRpb25hbCBhcnJheSBvZgorICAgICAgICAgIHVu
aXF1ZV9wdHJzIHRvIGRpZmZlcmVudCB0eXBlcyBvZiBJU09QU1NIQm94ZXMuCisgICAgICAgICsg
QWRkIGEgcGVla1NjaGVtZSgpIG1ldGhvZCB0byBJU09QU1NIQm94IHNvIHRoYXQgd2UgY2FuIGNy
ZWF0ZSB0aGUgY29ycmVjdCBzdWJjbGFzcworICAgICAgICAgIG9mIElTT1BTU0hCb3ggZnJvbSB0
aGUgYWJvdmUgbWV0aG9kLgorICAgICAgICArIFJlbW92ZSBhbiBleHRyYSBkZWZpbml0aW9uIG9m
IGZhaXJQbGF5U3lzdGVtSUQoKSBmcm9tIENETUZhaXJQbGF5U3RyZWFtaW5nLgorICAgICAgICAr
IEFkZCAnY2VuYycgdG8gdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIHR5cGVzIGluIENETVByaXZhdGVG
YWlyUGxheVN0cmVhbWluZzo6dmFpbGRJbml0RGF0YVR5cGVzKCkuCisgICAgICAgICsgQWRkIHN1
cHBvcnQgZm9yICdjZW5jJyBpbiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnN1cHBvcnRz
SW5pdERhdGEoKS4KKyAgICAgICAgKyBGb3JtYXQgdGhlICdjZW5jJyBpbml0IGRhdGEgYXMgYW4g
ZW5jb2RlYy1KU09OIHN0cnVjdHVyZSBmb3IgQVZDb250ZW50S2V5U2Vzc2lvbi4KKyAgICAgICAg
KyBVcGRhdGUgdGhlIElTT0ZhaXJQbGF5U3RyZWFtaW5nS2V5UmVxdWVzdEluZm9Cb3ggdG8gYmUg
YSBJU09GdWxsQm94LgorICAgICAgICArIFVwZGF0ZSB0aGUgYm94IG5hbWUgb2YgSVNPRmFpclBs
YXlTdHJlYW1pbmdJbml0RGF0YUJveC4KKworICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvSW5pdERhdGFSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbml0RGF0YVJlZ2lz
dHJ5OjpleHRyYWN0UHNzaEJveGVzRnJvbUNlbmMpOgorICAgICAgICAoV2ViQ29yZTo6SW5pdERh
dGFSZWdpc3RyeTo6ZXh0cmFjdEtleUlEc0NlbmMpOgorICAgICAgICAoV2ViQ29yZTo6SW5pdERh
dGFSZWdpc3RyeTo6c2FuaXRpemVDZW5jKToKKyAgICAgICAgKFdlYkNvcmU6OkluaXREYXRhUmVn
aXN0cnk6OmNlbmNOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkluaXREYXRhUmVnaXN0cnk6Omtl
eWlkc05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5pdERhdGFSZWdpc3RyeTo6d2VibU5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6ZXh0cmFjdEtleUlEc0NlbmMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6c2FuaXRpemVDZW5jKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlcjo6Y2hhbmdlVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlk
SW5pdERhdGFUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJl
YW1pbmc6OnN1cHBvcnRzSW5pdERhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJp
dmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpmYWlyUGxheVN5c3RlbUlEKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSVNPRmFpclBsYXlT
dHJlYW1pbmdQc3NoQm94Lmg6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdB
VkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlT
dHJlYW1pbmdBVkZPYmpDOjpyZXF1ZXN0TGljZW5zZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvaXNvL0lTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3g6OnBlZWtT
eXN0ZW1JRCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1Byb3RlY3Rpb25T
eXN0ZW1TcGVjaWZpY0hlYWRlckJveC5oOgorCiAyMDE5LTA2LTI4ICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE5lZWQgYSB3YXkgZm9yIFNQSSBjbGll
bnRzIHRvIGtub3cgd2hlbiB0byBhdm9pZCByZXNpemluZyB0byBhY2NvbW1vZGF0ZSBmb3IgdGhl
IGlucHV0IHZpZXcgYm91bmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcAppbmRleCA0YmY3MTQ5NGQ5Yjc5
ZGYxZjBlMjA0MDU2OTNlNTYxYzBjNzBjY2Q4Li5iNmZkNjhkNjcyZWRlMzg3NzhjMTVjNmZlYWFm
NDZiNDU1ZTVhMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCBz
dGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVLZXlpZHMoY29uc3QgU2hhcmVkQnVm
ZmVyJiBidWZmZXIpCiAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGpzb25EYXRhLmRh
dGEoKSwganNvbkRhdGEubGVuZ3RoKCkpOwogfQogCi1zdGF0aWMgT3B0aW9uYWw8VmVjdG9yPFJl
ZjxTaGFyZWRCdWZmZXI+Pj4gZXh0cmFjdEtleUlEc0NlbmMoY29uc3QgU2hhcmVkQnVmZmVyJiBi
dWZmZXIpCitPcHRpb25hbDxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPElTT1Byb3RlY3Rpb25TeXN0
ZW1TcGVjaWZpY0hlYWRlckJveD4+PiBJbml0RGF0YVJlZ2lzdHJ5OjpleHRyYWN0UHNzaEJveGVz
RnJvbUNlbmMoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiB7CiAgICAgLy8gNC4gQ29tbW9u
IFN5c3RlbUlEIGFuZCBQU1NIIEJveCBGb3JtYXQKICAgICAvLyBodHRwczovL3czYy5naXRodWIu
aW8vZW5jcnlwdGVkLW1lZGlhL2Zvcm1hdC1yZWdpc3RyeS9pbml0ZGF0YS9jZW5jLmh0bWwjY29t
bW9uLXN5c3RlbQpAQCAtMTIwLDcgKzEyMCw3IEBAIHN0YXRpYyBPcHRpb25hbDxWZWN0b3I8UmVm
PFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0S2V5SURzQ2VuYyhjb25zdCBTaGFyZWRCdWZmZXImCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKICAgICB1bnNpZ25lZCBvZmZzZXQgPSAwOwot
ICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4ga2V5SURzOworICAgIFZlY3RvcjxzdGQ6OnVu
aXF1ZV9wdHI8SVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94Pj4gcHNzaEJveGVz
OwogCiAgICAgYXV0byB2aWV3ID0gSlNDOjpEYXRhVmlldzo6Y3JlYXRlKGJ1ZmZlci50cnlDcmVh
dGVBcnJheUJ1ZmZlcigpLCBvZmZzZXQsIGJ1ZmZlci5zaXplKCkpOwogICAgIHdoaWxlIChhdXRv
IG9wdGlvbmFsQm94VHlwZSA9IElTT0JveDo6cGVla0JveCh2aWV3LCBvZmZzZXQpKSB7CkBAIC0x
MzAsMTYgKzEzMCw0NCBAQCBzdGF0aWMgT3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+
Pj4gZXh0cmFjdEtleUlEc0NlbmMoY29uc3QgU2hhcmVkQnVmZmVyJgogICAgICAgICBpZiAoYm94
VHlwZU5hbWUgIT0gSVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94Ojpib3hUeXBl
TmFtZSgpIHx8IGJveFNpemUgPiBidWZmZXIuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKIAotICAgICAgICBJU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJC
b3ggcHNzaEJveDsKLSAgICAgICAgaWYgKCFwc3NoQm94LnJlYWQodmlldywgb2Zmc2V0KSkKKyAg
ICAgICAgYXV0byBzeXN0ZW1JRCA9IElTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJv
eDo6cGVla1N5c3RlbUlEKHZpZXcsIG9mZnNldCk7CisjaWYgSEFWRShGQUlSUExBWVNUUkVBTUlO
R19DRU5DX0lOSVREQVRBKQorICAgICAgICBpZiAoc3lzdGVtSUQgPT0gSVNPRmFpclBsYXlTdHJl
YW1pbmdQc3NoQm94OjpmYWlyUGxheVN5c3RlbUlEKCkpIHsKKyAgICAgICAgICAgIGF1dG8gZnBz
UHNzaCA9IHN0ZDo6bWFrZV91bmlxdWU8SVNPRmFpclBsYXlTdHJlYW1pbmdQc3NoQm94PigpOwor
ICAgICAgICAgICAgaWYgKCFmcHNQc3NoLT5yZWFkKHZpZXcsIG9mZnNldCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgICAgIHBzc2hCb3hlcy5hcHBlbmQo
V1RGTW92ZShmcHNQc3NoKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorI2Vs
c2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKHN5c3RlbUlEKTsKKyNlbmRpZgorICAgICAgICBhdXRv
IHBzc2hCb3ggPSBzdGQ6Om1ha2VfdW5pcXVlPElTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hl
YWRlckJveD4oKTsKKyAgICAgICAgaWYgKCFwc3NoQm94LT5yZWFkKHZpZXcsIG9mZnNldCkpCisg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIHBzc2hCb3hlcy5hcHBl
bmQoV1RGTW92ZShwc3NoQm94KSk7CisgICAgfQorCisgICAgcmV0dXJuIHBzc2hCb3hlczsKK30K
KworT3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+Pj4gSW5pdERhdGFSZWdpc3RyeTo6
ZXh0cmFjdEtleUlEc0NlbmMoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCit7CisgICAgVmVj
dG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBrZXlJRHM7CisKKyAgICBhdXRvIHBzc2hCb3hlcyA9IGV4
dHJhY3RQc3NoQm94ZXNGcm9tQ2VuYyhidWZmZXIpOworICAgIGlmICghcHNzaEJveGVzKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgZm9yIChhdXRvJiBwc3NoQm94IDogcHNz
aEJveGVzLnZhbHVlKCkpIHsKKyAgICAgICAgQVNTRVJUKHBzc2hCb3gpOworICAgICAgICBpZiAo
IXBzc2hCb3gpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAjaWYgSEFWRShG
QUlSUExBWVNUUkVBTUlOR19DRU5DX0lOSVREQVRBKQotICAgICAgICBpZiAocHNzaEJveC5zeXN0
ZW1JRCgpID09IENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6ZmFpclBsYXlTeXN0ZW1JRCgp
KSB7Ci0gICAgICAgICAgICBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3ggZnBzUHNzaDsKLSAg
ICAgICAgICAgIG9mZnNldCAtPSBwc3NoQm94LnNpemUoKTsKLSAgICAgICAgICAgIGlmICghZnBz
UHNzaC5yZWFkKHZpZXcsIG9mZnNldCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKyAgICAgICAgaWYgKGlzPElTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveD4oKnBzc2hC
b3gpKSB7CisgICAgICAgICAgICBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3gmIGZwc1Bzc2gg
PSBkb3duY2FzdDxJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3g+KCpwc3NoQm94KTsKIAogICAg
ICAgICAgICAgRm91ckNDIHNjaGVtZSA9IGZwc1Bzc2guaW5pdERhdGFCb3goKS5pbmZvKCkuc2No
ZW1lKCk7CiAgICAgICAgICAgICBpZiAoQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjp2YWxp
ZEZhaXJQbGF5U3RyZWFtaW5nU2NoZW1lcygpLmNvbnRhaW5zKHNjaGVtZSkpIHsKQEAgLTE1MSwx
NCArMTc5LDE0IEBAIHN0YXRpYyBPcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBl
eHRyYWN0S2V5SURzQ2VuYyhjb25zdCBTaGFyZWRCdWZmZXImCiAgICAgICAgIH0KICNlbmRpZgog
Ci0gICAgICAgIGZvciAoYXV0byYgdmFsdWUgOiBwc3NoQm94LmtleUlEcygpKQorICAgICAgICBm
b3IgKGF1dG8mIHZhbHVlIDogcHNzaEJveC0+a2V5SURzKCkpCiAgICAgICAgICAgICBrZXlJRHMu
YXBwZW5kKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUodmFsdWUpKSk7CiAgICAgfQogCiAg
ICAgcmV0dXJuIGtleUlEczsKIH0KIAotc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNhbml0
aXplQ2VuYyhjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKK1JlZlB0cjxTaGFyZWRCdWZmZXI+
IEluaXREYXRhUmVnaXN0cnk6OnNhbml0aXplQ2VuYyhjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZl
cikKIHsKICAgICAvLyA0LiBDb21tb24gU3lzdGVtSUQgYW5kIFBTU0ggQm94IEZvcm1hdAogICAg
IC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0LXJlZ2lzdHJ5
L2luaXRkYXRhL2NlbmMuaHRtbCNjb21tb24tc3lzdGVtCkBAIC0yMjgsNiArMjU2LDI0IEBAIHZv
aWQgSW5pdERhdGFSZWdpc3RyeTo6cmVnaXN0ZXJJbml0RGF0YVR5cGUoY29uc3QgQXRvbVN0cmlu
ZyYgaW5pdERhdGFUeXBlLCBJbml0CiAgICAgbV90eXBlcy5zZXQoaW5pdERhdGFUeXBlLCBXVEZN
b3ZlKGNhbGxiYWNrcykpOwogfQogCitjb25zdCBBdG9tU3RyaW5nJiBJbml0RGF0YVJlZ2lzdHJ5
OjpjZW5jTmFtZSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNp
bmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiY2VuYyIpIH07CisgICAgcmV0dXJuIHNpbmY7
Cit9CisKK2NvbnN0IEF0b21TdHJpbmcmIEluaXREYXRhUmVnaXN0cnk6OmtleWlkc05hbWUoKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzaW5mIHsgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoImtleWlkcyIpIH07CisgICAgcmV0dXJuIHNpbmY7Cit9CisKK2NvbnN0
IEF0b21TdHJpbmcmIEluaXREYXRhUmVnaXN0cnk6OndlYm1OYW1lKCkKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJ3ZWJtIikgfTsKKyAgICByZXR1cm4gc2luZjsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmgKaW5kZXggMWY3OTMwYjk5ZDIwYzNmZDVl
ZDQ3NjczYmY2ZWQ0NWIwODZjODQxNi4uNzlmZTUxMjgwNjE0ODVlY2EyOWYxYzM4MjYxNmI3ZTQ4
NmUxOTAyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9Jbml0RGF0YVJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmgKQEAgLTM4LDYgKzM4LDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBJU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3g7
CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiAKIGNsYXNzIEluaXREYXRhUmVnaXN0cnkgewpAQCAtNTcs
NiArNTgsMTQgQEAgcHVibGljOgogICAgIH07CiAgICAgdm9pZCByZWdpc3RlckluaXREYXRhVHlw
ZShjb25zdCBBdG9tU3RyaW5nJiBpbml0RGF0YVR5cGUsIEluaXREYXRhVHlwZUNhbGxiYWNrcyYm
KTsKIAorICAgIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBjZW5jTmFtZSgpOworICAgIHN0YXRp
YyBjb25zdCBBdG9tU3RyaW5nJiBrZXlpZHNOYW1lKCk7CisgICAgc3RhdGljIGNvbnN0IEF0b21T
dHJpbmcmIHdlYm1OYW1lKCk7CisKKyAgICBzdGF0aWMgT3B0aW9uYWw8VmVjdG9yPHN0ZDo6dW5p
cXVlX3B0cjxJU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3g+Pj4gZXh0cmFjdFBz
c2hCb3hlc0Zyb21DZW5jKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOworICAgIHN0YXRpYyBPcHRpb25h
bDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0S2V5SURzQ2VuYyhjb25zdCBTaGFy
ZWRCdWZmZXImKTsKKyAgICBzdGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVDZW5j
KGNvbnN0IFNoYXJlZEJ1ZmZlciYpOworCiBwcml2YXRlOgogICAgIEluaXREYXRhUmVnaXN0cnko
KTsKICAgICB+SW5pdERhdGFSZWdpc3RyeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxh
eVN0cmVhbWluZy5jcHAKaW5kZXggMjFiOTNkZTg4ODFiNWRlNzY3ZmEwNGM2NmIxMjBhMDkzNjgz
NzE5Zi4uMzYxYTk5MmYwYzQ2NTBjZjJiOTYyOGE2NDJlOTdiNWRiYTBlMmEzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQ
bGF5U3RyZWFtaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiQ0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIkNETVJlc3Ry
aWN0aW9ucy5oIgogI2luY2x1ZGUgIkNETVNlc3Npb25UeXBlLmgiCisjaW5jbHVkZSAiSVNPUHJv
dGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94LmgiCiAjaW5jbHVkZSAiSVNPU2NoZW1lSW5m
b3JtYXRpb25Cb3guaCIKICNpbmNsdWRlICJJU09TY2hlbWVUeXBlQm94LmgiCiAjaW5jbHVkZSAi
SVNPVHJhY2tFbmNyeXB0aW9uQm94LmgiCkBAIC00OCw2ICs0OSwxMCBAQAogI2luY2x1ZGUgIkNE
TUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmgiCiAjZW5kaWYKIAorI2lmIEhBVkUo
RkFJUlBMQVlTVFJFQU1JTkdfQ0VOQ19JTklUREFUQSkKKyNpbmNsdWRlICJJU09GYWlyUGxheVN0
cmVhbWluZ1Bzc2hCb3guaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0
IFZlY3RvcjxGb3VyQ0M+JiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnZhbGlkRmFpclBs
YXlTdHJlYW1pbmdTY2hlbWVzKCkKQEAgLTc0LDEyICs3OSw2IEBAIGNvbnN0IEF0b21TdHJpbmcm
IENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2tkTmFtZSgpCiAgICAgcmV0dXJuIHNrZDsK
IH0KIAotY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6
OmZhaXJQbGF5U3lzdGVtSUQoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8
dWludDhfdD4+IHN5c3RlbUlEID0gVmVjdG9yPHVpbnQ4X3Q+KHsgMHg5NCwgMHhDRSwgMHg4Niwg
MHhGQiwgMHgwNywgMHhGRiwgMHg0RiwgMHg0MywgMHhBRCwgMHhCOCwgMHg5MywgMHhEMiwgMHhG
QSwgMHg5NiwgMHg4QywgMHhBMiB9KTsKLSAgICByZXR1cm4gc3lzdGVtSUQ7Ci19Ci0KIHN0YXRp
YyBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGV4dHJhY3RTaW5mRGF0YShjb25zdCBTaGFyZWRC
dWZmZXImIGJ1ZmZlcikKIHsKICAgICAvLyBKU09OIG9mIHRoZSBmb3JtYXQ6ICJ7IHNpbmY6IFsg
PGJhc2U2NC1lbmNvZGVkLXN0cmluZz4gXSB9IgpAQCAtMjA1LDYgKzIwNCw5IEBAIHN0YXRpYyBj
b25zdCBIYXNoU2V0PEF0b21TdHJpbmc+JiB2YWxpZEluaXREYXRhVHlwZXMoKQogICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PEF0b21TdHJpbmc+PiB2YWxpZFR5cGVzID0gSGFzaFNl
dDxBdG9tU3RyaW5nPih7CiAgICAgICAgIENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2lu
Zk5hbWUoKSwKICAgICAgICAgQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpza2ROYW1lKCks
CisjaWYgSEFWRShGQUlSUExBWVNUUkVBTUlOR19DRU5DX0lOSVREQVRBKQorICAgICAgICBJbml0
RGF0YVJlZ2lzdHJ5OjpjZW5jTmFtZSgpLAorI2VuZGlmCiAgICAgfSk7CiAgICAgcmV0dXJuIHZh
bGlkVHlwZXM7CiB9CkBAIC0zNzMsNiArMzc1LDE4IEBAIGJvb2wgQ0RNUHJpdmF0ZUZhaXJQbGF5
U3RyZWFtaW5nOjpzdXBwb3J0c0luaXREYXRhKGNvbnN0IEF0b21TdHJpbmcmIGluaXREYXRhVHlw
CiAgICAgICAgIH0pOwogICAgIH0KIAorI2lmIEhBVkUoRkFJUlBMQVlTVFJFQU1JTkdfQ0VOQ19J
TklUREFUQSkKKyAgICBpZiAoaW5pdERhdGFUeXBlID09IEluaXREYXRhUmVnaXN0cnk6OmNlbmNO
YW1lKCkpIHsKKyAgICAgICAgYXV0byBwc3NoQm94ZXMgPSBJbml0RGF0YVJlZ2lzdHJ5OjpleHRy
YWN0UHNzaEJveGVzRnJvbUNlbmMoaW5pdERhdGEpOworICAgICAgICBpZiAoIXBzc2hCb3hlcykK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gV1RGOjphbnlPZihw
c3NoQm94ZXMudmFsdWUoKSwgW10oYXV0byYgcHNzaEJveCkgeworICAgICAgICAgICAgcmV0dXJu
IGlzPElTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveD4oKnBzc2hCb3gpOworICAgICAgICB9KTsK
KyAgICB9CisjZW5kaWYKKwogICAgIGlmIChpbml0RGF0YVR5cGUgPT0gc2tkTmFtZSgpKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
aAppbmRleCA0YzhhNmNlMGFjZWQ1NjkwMmE3ZDFkNWMwOGQ0MjcxMWMyOGE0ZDc1Li44OTE4ZTgw
ZTBjMzkwZDdlOGRhY2ExOTAzOTQ3OWEwZDBmNjk1YWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RN
RmFpclBsYXlTdHJlYW1pbmcuaApAQCAtNzgsNyArNzgsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNhbml0aXplU2tkKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwog
CiAgICAgc3RhdGljIGNvbnN0IFZlY3RvcjxGb3VyQ0M+JiB2YWxpZEZhaXJQbGF5U3RyZWFtaW5n
U2NoZW1lcygpOwotICAgIHN0YXRpYyBjb25zdCBWZWN0b3I8dWludDhfdD4mIGZhaXJQbGF5U3lz
dGVtSUQoKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9JU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3guaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JU09GYWlyUGxheVN0cmVh
bWluZ1Bzc2hCb3guaAppbmRleCAzYTRlZWU3MTBkOWE5M2E5MTY5Yzc5MzM4MDg0ODRjYTM4Njgy
MWU1Li5lNDYwMTQ4MzA1Y2VlZDFiNTY0ODQxOTk2Y2I5ZmMzNGNkYzNhYjUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSVNPRmFpclBs
YXlTdHJlYW1pbmdQc3NoQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL0lTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveC5oCkBAIC00Miw3ICs0
Miw3IEBAIHByaXZhdGU6CiAgICAgRm91ckNDIG1fc2NoZW1lOwogfTsKIAotY2xhc3MgV0VCQ09S
RV9FWFBPUlQgSVNPRmFpclBsYXlTdHJlYW1pbmdLZXlSZXF1ZXN0SW5mb0JveCA6IHB1YmxpYyBJ
U09Cb3ggeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSVNPRmFpclBsYXlTdHJlYW1pbmdLZXlSZXF1
ZXN0SW5mb0JveCA6IHB1YmxpYyBJU09GdWxsQm94IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgRm91
ckNDIGJveFR5cGVOYW1lKCkgeyByZXR1cm4gImZrcmkiOyB9CiAKQEAgLTEwOCw3ICsxMDgsNyBA
QCBwcml2YXRlOgogCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBJU09GYWlyUGxheVN0cmVhbWluZ0lu
aXREYXRhQm94IDogcHVibGljIElTT0JveCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIEZvdXJDQyBi
b3hUeXBlTmFtZSgpIHsgcmV0dXJuICJmcHMgIjsgfQorICAgIHN0YXRpYyBGb3VyQ0MgYm94VHlw
ZU5hbWUoKSB7IHJldHVybiAiZnBzZCI7IH0KIAogICAgIGNvbnN0IElTT0ZhaXJQbGF5U3RyZWFt
aW5nSW5mb0JveCYgaW5mbygpIGNvbnN0IHsgcmV0dXJuIG1faW5mbzsgfQogICAgIGNvbnN0IFZl
Y3RvcjxJU09GYWlyUGxheVN0cmVhbWluZ0tleVJlcXVlc3RCb3g+JiByZXF1ZXN0cygpIGNvbnN0
IHsgcmV0dXJuIG1fcmVxdWVzdHM7IH0KQEAgLTEzMywzICsxMzMsNyBAQCBwcml2YXRlOgogfTsK
IAogfQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OklTT0ZhaXJQbGF5
U3RyZWFtaW5nUHNzaEJveCkgXAorc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OklT
T1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveCYgcHNzaEJveCkgeyByZXR1cm4gcHNz
aEJveC5zeXN0ZW1JRCgpID09IFdlYkNvcmU6OklTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveDo6
ZmFpclBsYXlTeXN0ZW1JRCgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlT
dHJlYW1pbmdBVkZPYmpDLm1tCmluZGV4IGJkOGE2MTUzZGUzYTkxOWI3MDJhMzI3NWRhMTZlZDM3
MDcxZGNlNTYuLmRjNzE0MmIwNjVkZTY5M2VmNjVhOGY5NTNmZmM5NTQ4ZDM2OTg2OGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBs
YXlTdHJlYW1pbmdBVkZPYmpDLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJDRE1GYWly
UGxheVN0cmVhbWluZy5oIgogI2ltcG9ydCAiQ0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbi5oIgog
I2ltcG9ydCAiQ0RNTWVkaWFDYXBhYmlsaXR5LmgiCisjaW1wb3J0ICJJbml0RGF0YVJlZ2lzdHJ5
LmgiCiAjaW1wb3J0ICJOb3RJbXBsZW1lbnRlZC5oIgogI2ltcG9ydCAiU2hhcmVkQnVmZmVyLmgi
CiAjaW1wb3J0ICJUZXh0RGVjb2Rlci5oIgpAQCAtMzksNiArNDAsNyBAQAogI2ltcG9ydCA8cGFs
L3NwaS9tYWMvQVZGb3VuZGF0aW9uU1BJLmg+CiAjaW1wb3J0IDx3dGYvQWxnb3JpdGhtcy5oPgog
I2ltcG9ydCA8d3RmL0ZpbGVTeXN0ZW0uaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgog
I2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAjaW1wb3J0IDxwYWwvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmsuaD4KQEAgLTMxOCw2ICszMjAsMTIgQEAgdm9pZCBDRE1JbnN0YW5j
ZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnJlcXVlc3RMaWNlbnNlKExpY2Vuc2VU
eXBlIGxpY2UKICAgICAgICAgaW5pdGlhbGl6YXRpb25EYXRhID0gaW5pdERhdGEtPmNyZWF0ZU5T
RGF0YSgpOwogICAgIGVsc2UgaWYgKGluaXREYXRhVHlwZSA9PSBDRE1Qcml2YXRlRmFpclBsYXlT
dHJlYW1pbmc6OnNrZE5hbWUoKSkKICAgICAgICAgaWRlbnRpZmllciA9IGFkb3B0TlMoW1tOU1N0
cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOmluaXREYXRhLT5jcmVhdGVOU0RhdGEoKS5nZXQoKSBl
bmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10pOworI2lmIEhBVkUoRkFJUlBMQVlTVFJFQU1J
TkdfQ0VOQ19JTklUREFUQSkKKyAgICBlbHNlIGlmIChpbml0RGF0YVR5cGUgPT0gSW5pdERhdGFS
ZWdpc3RyeTo6Y2VuY05hbWUoKSkgeworICAgICAgICBTdHJpbmcgcHNzaFN0cmluZyA9IGJhc2U2
NEVuY29kZShpbml0RGF0YS0+ZGF0YSgpLCBpbml0RGF0YS0+c2l6ZSgpKTsKKyAgICAgICAgaW5p
dGlhbGl6YXRpb25EYXRhID0gW05TSlNPTlNlcmlhbGl6YXRpb24gZGF0YVdpdGhKU09OT2JqZWN0
OkB7IEAicHNzaCI6IChOU1N0cmluZyopcHNzaFN0cmluZyB9IG9wdGlvbnM6TlNKU09OV3JpdGlu
Z1ByZXR0eVByaW50ZWQgZXJyb3I6bmlsXTsKKyAgICB9CisjZW5kaWYKICAgICBlbHNlIHsKICAg
ICAgICAgY2FsbGJhY2soU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSwgZW1wdHlTdHJpbmcoKSwgZmFs
c2UsIEZhaWxlZCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1Byb3RlY3Rp
b25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveC5jcHAKaW5kZXggNmU0YjY0ZmI0MjAwYmIwOTBjMDU1
ODc3YmM5NmI1MTJkNTUxZjk4YS4uMTU4ODljNGVhNTQ4NWZmMmM2YjUyMDRkMzJlODM4ZjJhYzM4
OTMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lT
T1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRl
ckJveC5jcHAKQEAgLTM0LDYgKzM0LDE3IEBAIHVzaW5nIEpTQzo6RGF0YVZpZXc7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorT3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiBJU09Qcm90ZWN0aW9u
U3lzdGVtU3BlY2lmaWNIZWFkZXJCb3g6OnBlZWtTeXN0ZW1JRChKU0M6OkRhdGFWaWV3JiB2aWV3
LCB1bnNpZ25lZCBvZmZzZXQpCit7CisgICAgYXV0byBwZWVrUmVzdWx0ID0gSVNPQm94OjpwZWVr
Qm94KHZpZXcsIG9mZnNldCk7CisgICAgaWYgKCFwZWVrUmVzdWx0IHx8IHBlZWtSZXN1bHQudmFs
dWUoKS5maXJzdCAhPSBib3hUeXBlTmFtZSgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgSVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94IHBzc2hCb3g7Cisg
ICAgcHNzaEJveC5wYXJzZSh2aWV3LCBvZmZzZXQpOworICAgIHJldHVybiBwc3NoQm94LnN5c3Rl
bUlEKCk7Cit9CisKIGJvb2wgSVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94Ojpw
YXJzZShEYXRhVmlldyYgdmlldywgdW5zaWduZWQmIG9mZnNldCkKIHsKICAgICBpZiAoIUlTT0Z1
bGxCb3g6OnBhcnNlKHZpZXcsIG9mZnNldCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9pc28vSVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pc28vSVNPUHJvdGVjdGlvblN5
c3RlbVNwZWNpZmljSGVhZGVyQm94LmgKaW5kZXggNzlkYzQ5MzhlZDM2MDIxYTZhMDQ1YWYwNzYx
MzFlNmMzMTU4ZjZmOC4uMTEyNzgwYWJjZDVmMmY5ZWRhMmE3Mjc1NjUyMGY5YWU4MTc3MGYzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1Byb3Rl
Y3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2lzby9JU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3guaApA
QCAtMzYsNiArMzYsOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgS2V5SUQgPSBWZWN0b3I8dWludDhf
dD47CiAgICAgc3RhdGljIEZvdXJDQyBib3hUeXBlTmFtZSgpIHsgcmV0dXJuICJwc3NoIjsgfQog
CisgICAgc3RhdGljIE9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gcGVla1N5c3RlbUlEKEpTQzo6
RGF0YVZpZXcmLCB1bnNpZ25lZCBvZmZzZXQpOworCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHN5c3Rl
bUlEKCkgY29uc3QgeyByZXR1cm4gbV9zeXN0ZW1JRDsgfQogICAgIFZlY3RvcjxLZXlJRD4ga2V5
SURzKCkgY29uc3QgeyByZXR1cm4gbV9rZXlJRHM7IH0KICAgICBWZWN0b3I8dWludDhfdD4gZGF0
YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg0Y2QyNjRhNzI4NzRmMTQ5Nzc5MWI3YTkwMjY2MTY1
ODY3ODc5NjMuLmNhOGI4NzU4NzllNGQ3YTA2Y2Y5NTU3ZjZmOTI3ZWI3NjgxNjc4YTYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxOS0wNy0wMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAg
ICAgICBQaXBlIHN1cG9ydCBmb3IgJ2NlbmMnIGluaXQgZGF0YSB0eXBlIGludG8gQ0RNRmFpclBs
YXlTdHJlYW1pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5OTM4MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTI0ODMxMDM+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0lTT0JveC5jcHA6CisKIDIwMTktMDYtMjggIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIG5ldyAtW1dLV2ViVmlldyBfY2xvc2VBbGxNZWRp
YVByZXNlbnRhdGlvbnNdIFNQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0lTT0JveC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
SVNPQm94LmNwcAppbmRleCAwOTk4NzY0YjAwM2EzNzk2ZTlkZGQ5MTQ4ZjY5YTM0MjFlNTg4YWVj
Li45NjE3YjAxNWFiOWVmZDM5NTAxYzIzNmFhYWE0MmNjNjBlZDcxNjQ1IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSVNPQm94LmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSVNPQm94LmNwcApAQCAtNzQsNyArNzQsNyBAQCBU
RVNUKElTT0JveCwgSVNPUHJvdGVjdGlvblNjaGVtZUluZm9Cb3gpCiAgICAgQVNTRVJUX0VRKGRl
ZmF1bHRJViwgdHJhY2tFbmNyeXB0aW9uQm94LT5kZWZhdWx0Q29uc3RhbnRJVigpKTsKIH0KIAot
c3RhdGljIGNvbnN0IGNoYXIqIGJhc2U2NEVuY29kZWRQc3NoV2l0aEFzc2V0SWQgPSAiQUFBQXFI
QnpjMmdBQUFBQWxNNkcrd2YvVDBPdHVKUFMrcGFNb2dBQUFJZ0FBQUNJWm5CelpBQUFBQkJtY0hO
cEFBQUFBR05sYm1NQUFBQTRabkJ6YXdBQUFCaG1hM0pwQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFB
QUJobWEyRnBBQUFBQUFBQUFBQUFBQUFBQUFBQThRQUFBRGhtY0hOckFBQUFHR1pyY21rQUFBQUFB
QUFBQUFBQUFBQUFBQUFDQUFBQUdHWnJZV2tBQUFBQUFBQUFBQUFBQUFBQUFBRHkiOworc3RhdGlj
IGNvbnN0IGNoYXIqIGJhc2U2NEVuY29kZWRQc3NoV2l0aEFzc2V0SWQgPSAiQUFBQXNIQnpjMmdB
QUFBQWxNNkcrd2YvVDBPdHVKUFMrcGFNb2dBQUFKQUFBQUNRWm5CelpBQUFBQkJtY0hOcEFBQUFB
R05sYm1NQUFBQThabkJ6YXdBQUFCeG1hM0pwQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFB
QVlabXRoYVFBQUFBQUFBQUFBQUFBQUFBQUFBUEVBQUFBOFpuQnphd0FBQUJ4bWEzSnBBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBWVptdGhhUUFBQUFBQUFBQUFBQUFBQUFBQUFQST0iOwog
CiBURVNUKElTT0JveCwgSVNPRmFpclBsYXlTdHJlYW1pbmdQc3NoQm94KQogewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373330</attachid>
            <date>2019-07-02 09:11:47 -0700</date>
            <delta_ts>2019-07-02 11:00:52 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-199381-20190702091147.patch</filename>
            <type>text/plain</type>
            <size>19854</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2OTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTM0NGJhZDgxOWY5ZDkw
MmY2NzRjMGUxNDA5MTFiMTEyOWMzOWUwYi4uMjA1YmJjMjRiNjU4NGMwYTkxNTAzOTM3YTkyMTkw
YTQ5NTI3MzBhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE5LTA3LTAxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFBpcGUgc3Vwb3J0IGZvciAn
Y2VuYycgaW5pdCBkYXRhIHR5cGUgaW50byBDRE1GYWlyUGxheVN0cmVhbWluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzgxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEV4cG9zZSB0aGUgcGFyc2luZyBv
ZiAnY2VuYycgaW5pdCBkYXRhIGZyb20gSW5pdERhdGFSZWdpc3RyeSwgc28gaXQgY2FuIGJlIHVz
ZWQgaW4gdGhlCisgICAgICAgIGV2YWx1YXRpb24gc3RlcHMgaW5zaWRlIENETUZhaXJQbGF5U3Ry
ZWFtaW5nLgorCisgICAgICAgICsgQWRkIGEgbmV3IG1ldGhvZCwgZXh0cmFjdFBzc2hCb3hlc0Zy
b21DZW5jKCkgd2hpY2ggcmV0dXJucyBhbiBvcHRpb25hbCBhcnJheSBvZgorICAgICAgICAgIHVu
aXF1ZV9wdHJzIHRvIGRpZmZlcmVudCB0eXBlcyBvZiBJU09QU1NIQm94ZXMuCisgICAgICAgICsg
QWRkIGEgcGVla1NjaGVtZSgpIG1ldGhvZCB0byBJU09QU1NIQm94IHNvIHRoYXQgd2UgY2FuIGNy
ZWF0ZSB0aGUgY29ycmVjdCBzdWJjbGFzcworICAgICAgICAgIG9mIElTT1BTU0hCb3ggZnJvbSB0
aGUgYWJvdmUgbWV0aG9kLgorICAgICAgICArIFJlbW92ZSBhbiBleHRyYSBkZWZpbml0aW9uIG9m
IGZhaXJQbGF5U3lzdGVtSUQoKSBmcm9tIENETUZhaXJQbGF5U3RyZWFtaW5nLgorICAgICAgICAr
IEFkZCAnY2VuYycgdG8gdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIHR5cGVzIGluIENETVByaXZhdGVG
YWlyUGxheVN0cmVhbWluZzo6dmFpbGRJbml0RGF0YVR5cGVzKCkuCisgICAgICAgICsgQWRkIHN1
cHBvcnQgZm9yICdjZW5jJyBpbiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnN1cHBvcnRz
SW5pdERhdGEoKS4KKyAgICAgICAgKyBGb3JtYXQgdGhlICdjZW5jJyBpbml0IGRhdGEgYXMgYW4g
ZW5jb2RlYy1KU09OIHN0cnVjdHVyZSBmb3IgQVZDb250ZW50S2V5U2Vzc2lvbi4KKyAgICAgICAg
KyBVcGRhdGUgdGhlIElTT0ZhaXJQbGF5U3RyZWFtaW5nS2V5UmVxdWVzdEluZm9Cb3ggdG8gYmUg
YSBJU09GdWxsQm94LgorICAgICAgICArIFVwZGF0ZSB0aGUgYm94IG5hbWUgb2YgSVNPRmFpclBs
YXlTdHJlYW1pbmdJbml0RGF0YUJveC4KKworICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvSW5pdERhdGFSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbml0RGF0YVJlZ2lz
dHJ5OjpleHRyYWN0UHNzaEJveGVzRnJvbUNlbmMpOgorICAgICAgICAoV2ViQ29yZTo6SW5pdERh
dGFSZWdpc3RyeTo6ZXh0cmFjdEtleUlEc0NlbmMpOgorICAgICAgICAoV2ViQ29yZTo6SW5pdERh
dGFSZWdpc3RyeTo6c2FuaXRpemVDZW5jKToKKyAgICAgICAgKFdlYkNvcmU6OkluaXREYXRhUmVn
aXN0cnk6OmNlbmNOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkluaXREYXRhUmVnaXN0cnk6Omtl
eWlkc05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5pdERhdGFSZWdpc3RyeTo6d2VibU5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6ZXh0cmFjdEtleUlEc0NlbmMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6c2FuaXRpemVDZW5jKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlcjo6Y2hhbmdlVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlk
SW5pdERhdGFUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJl
YW1pbmc6OnN1cHBvcnRzSW5pdERhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJp
dmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpmYWlyUGxheVN5c3RlbUlEKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSVNPRmFpclBsYXlT
dHJlYW1pbmdQc3NoQm94Lmg6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdB
VkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlT
dHJlYW1pbmdBVkZPYmpDOjpyZXF1ZXN0TGljZW5zZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvaXNvL0lTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3g6OnBlZWtT
eXN0ZW1JRCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1Byb3RlY3Rpb25T
eXN0ZW1TcGVjaWZpY0hlYWRlckJveC5oOgorCiAyMDE5LTA2LTI4ICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE5lZWQgYSB3YXkgZm9yIFNQSSBjbGll
bnRzIHRvIGtub3cgd2hlbiB0byBhdm9pZCByZXNpemluZyB0byBhY2NvbW1vZGF0ZSBmb3IgdGhl
IGlucHV0IHZpZXcgYm91bmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcAppbmRleCA0YmY3MTQ5NGQ5Yjc5
ZGYxZjBlMjA0MDU2OTNlNTYxYzBjNzBjY2Q4Li5iNmZkNjhkNjcyZWRlMzg3NzhjMTVjNmZlYWFm
NDZiNDU1ZTVhMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCBz
dGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVLZXlpZHMoY29uc3QgU2hhcmVkQnVm
ZmVyJiBidWZmZXIpCiAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGpzb25EYXRhLmRh
dGEoKSwganNvbkRhdGEubGVuZ3RoKCkpOwogfQogCi1zdGF0aWMgT3B0aW9uYWw8VmVjdG9yPFJl
ZjxTaGFyZWRCdWZmZXI+Pj4gZXh0cmFjdEtleUlEc0NlbmMoY29uc3QgU2hhcmVkQnVmZmVyJiBi
dWZmZXIpCitPcHRpb25hbDxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPElTT1Byb3RlY3Rpb25TeXN0
ZW1TcGVjaWZpY0hlYWRlckJveD4+PiBJbml0RGF0YVJlZ2lzdHJ5OjpleHRyYWN0UHNzaEJveGVz
RnJvbUNlbmMoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiB7CiAgICAgLy8gNC4gQ29tbW9u
IFN5c3RlbUlEIGFuZCBQU1NIIEJveCBGb3JtYXQKICAgICAvLyBodHRwczovL3czYy5naXRodWIu
aW8vZW5jcnlwdGVkLW1lZGlhL2Zvcm1hdC1yZWdpc3RyeS9pbml0ZGF0YS9jZW5jLmh0bWwjY29t
bW9uLXN5c3RlbQpAQCAtMTIwLDcgKzEyMCw3IEBAIHN0YXRpYyBPcHRpb25hbDxWZWN0b3I8UmVm
PFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0S2V5SURzQ2VuYyhjb25zdCBTaGFyZWRCdWZmZXImCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKICAgICB1bnNpZ25lZCBvZmZzZXQgPSAwOwot
ICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4ga2V5SURzOworICAgIFZlY3RvcjxzdGQ6OnVu
aXF1ZV9wdHI8SVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94Pj4gcHNzaEJveGVz
OwogCiAgICAgYXV0byB2aWV3ID0gSlNDOjpEYXRhVmlldzo6Y3JlYXRlKGJ1ZmZlci50cnlDcmVh
dGVBcnJheUJ1ZmZlcigpLCBvZmZzZXQsIGJ1ZmZlci5zaXplKCkpOwogICAgIHdoaWxlIChhdXRv
IG9wdGlvbmFsQm94VHlwZSA9IElTT0JveDo6cGVla0JveCh2aWV3LCBvZmZzZXQpKSB7CkBAIC0x
MzAsMTYgKzEzMCw0NCBAQCBzdGF0aWMgT3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+
Pj4gZXh0cmFjdEtleUlEc0NlbmMoY29uc3QgU2hhcmVkQnVmZmVyJgogICAgICAgICBpZiAoYm94
VHlwZU5hbWUgIT0gSVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94Ojpib3hUeXBl
TmFtZSgpIHx8IGJveFNpemUgPiBidWZmZXIuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKIAotICAgICAgICBJU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJC
b3ggcHNzaEJveDsKLSAgICAgICAgaWYgKCFwc3NoQm94LnJlYWQodmlldywgb2Zmc2V0KSkKKyAg
ICAgICAgYXV0byBzeXN0ZW1JRCA9IElTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJv
eDo6cGVla1N5c3RlbUlEKHZpZXcsIG9mZnNldCk7CisjaWYgSEFWRShGQUlSUExBWVNUUkVBTUlO
R19DRU5DX0lOSVREQVRBKQorICAgICAgICBpZiAoc3lzdGVtSUQgPT0gSVNPRmFpclBsYXlTdHJl
YW1pbmdQc3NoQm94OjpmYWlyUGxheVN5c3RlbUlEKCkpIHsKKyAgICAgICAgICAgIGF1dG8gZnBz
UHNzaCA9IHN0ZDo6bWFrZV91bmlxdWU8SVNPRmFpclBsYXlTdHJlYW1pbmdQc3NoQm94PigpOwor
ICAgICAgICAgICAgaWYgKCFmcHNQc3NoLT5yZWFkKHZpZXcsIG9mZnNldCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgICAgIHBzc2hCb3hlcy5hcHBlbmQo
V1RGTW92ZShmcHNQc3NoKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorI2Vs
c2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKHN5c3RlbUlEKTsKKyNlbmRpZgorICAgICAgICBhdXRv
IHBzc2hCb3ggPSBzdGQ6Om1ha2VfdW5pcXVlPElTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hl
YWRlckJveD4oKTsKKyAgICAgICAgaWYgKCFwc3NoQm94LT5yZWFkKHZpZXcsIG9mZnNldCkpCisg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIHBzc2hCb3hlcy5hcHBl
bmQoV1RGTW92ZShwc3NoQm94KSk7CisgICAgfQorCisgICAgcmV0dXJuIHBzc2hCb3hlczsKK30K
KworT3B0aW9uYWw8VmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+Pj4gSW5pdERhdGFSZWdpc3RyeTo6
ZXh0cmFjdEtleUlEc0NlbmMoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCit7CisgICAgVmVj
dG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBrZXlJRHM7CisKKyAgICBhdXRvIHBzc2hCb3hlcyA9IGV4
dHJhY3RQc3NoQm94ZXNGcm9tQ2VuYyhidWZmZXIpOworICAgIGlmICghcHNzaEJveGVzKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgZm9yIChhdXRvJiBwc3NoQm94IDogcHNz
aEJveGVzLnZhbHVlKCkpIHsKKyAgICAgICAgQVNTRVJUKHBzc2hCb3gpOworICAgICAgICBpZiAo
IXBzc2hCb3gpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAjaWYgSEFWRShG
QUlSUExBWVNUUkVBTUlOR19DRU5DX0lOSVREQVRBKQotICAgICAgICBpZiAocHNzaEJveC5zeXN0
ZW1JRCgpID09IENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6ZmFpclBsYXlTeXN0ZW1JRCgp
KSB7Ci0gICAgICAgICAgICBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3ggZnBzUHNzaDsKLSAg
ICAgICAgICAgIG9mZnNldCAtPSBwc3NoQm94LnNpemUoKTsKLSAgICAgICAgICAgIGlmICghZnBz
UHNzaC5yZWFkKHZpZXcsIG9mZnNldCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKyAgICAgICAgaWYgKGlzPElTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveD4oKnBzc2hC
b3gpKSB7CisgICAgICAgICAgICBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3gmIGZwc1Bzc2gg
PSBkb3duY2FzdDxJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3g+KCpwc3NoQm94KTsKIAogICAg
ICAgICAgICAgRm91ckNDIHNjaGVtZSA9IGZwc1Bzc2guaW5pdERhdGFCb3goKS5pbmZvKCkuc2No
ZW1lKCk7CiAgICAgICAgICAgICBpZiAoQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjp2YWxp
ZEZhaXJQbGF5U3RyZWFtaW5nU2NoZW1lcygpLmNvbnRhaW5zKHNjaGVtZSkpIHsKQEAgLTE1MSwx
NCArMTc5LDE0IEBAIHN0YXRpYyBPcHRpb25hbDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBl
eHRyYWN0S2V5SURzQ2VuYyhjb25zdCBTaGFyZWRCdWZmZXImCiAgICAgICAgIH0KICNlbmRpZgog
Ci0gICAgICAgIGZvciAoYXV0byYgdmFsdWUgOiBwc3NoQm94LmtleUlEcygpKQorICAgICAgICBm
b3IgKGF1dG8mIHZhbHVlIDogcHNzaEJveC0+a2V5SURzKCkpCiAgICAgICAgICAgICBrZXlJRHMu
YXBwZW5kKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUodmFsdWUpKSk7CiAgICAgfQogCiAg
ICAgcmV0dXJuIGtleUlEczsKIH0KIAotc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNhbml0
aXplQ2VuYyhjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKK1JlZlB0cjxTaGFyZWRCdWZmZXI+
IEluaXREYXRhUmVnaXN0cnk6OnNhbml0aXplQ2VuYyhjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZl
cikKIHsKICAgICAvLyA0LiBDb21tb24gU3lzdGVtSUQgYW5kIFBTU0ggQm94IEZvcm1hdAogICAg
IC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9lbmNyeXB0ZWQtbWVkaWEvZm9ybWF0LXJlZ2lzdHJ5
L2luaXRkYXRhL2NlbmMuaHRtbCNjb21tb24tc3lzdGVtCkBAIC0yMjgsNiArMjU2LDI0IEBAIHZv
aWQgSW5pdERhdGFSZWdpc3RyeTo6cmVnaXN0ZXJJbml0RGF0YVR5cGUoY29uc3QgQXRvbVN0cmlu
ZyYgaW5pdERhdGFUeXBlLCBJbml0CiAgICAgbV90eXBlcy5zZXQoaW5pdERhdGFUeXBlLCBXVEZN
b3ZlKGNhbGxiYWNrcykpOwogfQogCitjb25zdCBBdG9tU3RyaW5nJiBJbml0RGF0YVJlZ2lzdHJ5
OjpjZW5jTmFtZSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNp
bmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiY2VuYyIpIH07CisgICAgcmV0dXJuIHNpbmY7
Cit9CisKK2NvbnN0IEF0b21TdHJpbmcmIEluaXREYXRhUmVnaXN0cnk6OmtleWlkc05hbWUoKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzaW5mIHsgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoImtleWlkcyIpIH07CisgICAgcmV0dXJuIHNpbmY7Cit9CisKK2NvbnN0
IEF0b21TdHJpbmcmIEluaXREYXRhUmVnaXN0cnk6OndlYm1OYW1lKCkKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJ3ZWJtIikgfTsKKyAgICByZXR1cm4gc2luZjsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmgKaW5kZXggMWY3OTMwYjk5ZDIwYzNmZDVl
ZDQ3NjczYmY2ZWQ0NWIwODZjODQxNi4uNzlmZTUxMjgwNjE0ODVlY2EyOWYxYzM4MjYxNmI3ZTQ4
NmUxOTAyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9Jbml0RGF0YVJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmgKQEAgLTM4LDYgKzM4LDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBJU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3g7
CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiAKIGNsYXNzIEluaXREYXRhUmVnaXN0cnkgewpAQCAtNTcs
NiArNTgsMTQgQEAgcHVibGljOgogICAgIH07CiAgICAgdm9pZCByZWdpc3RlckluaXREYXRhVHlw
ZShjb25zdCBBdG9tU3RyaW5nJiBpbml0RGF0YVR5cGUsIEluaXREYXRhVHlwZUNhbGxiYWNrcyYm
KTsKIAorICAgIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBjZW5jTmFtZSgpOworICAgIHN0YXRp
YyBjb25zdCBBdG9tU3RyaW5nJiBrZXlpZHNOYW1lKCk7CisgICAgc3RhdGljIGNvbnN0IEF0b21T
dHJpbmcmIHdlYm1OYW1lKCk7CisKKyAgICBzdGF0aWMgT3B0aW9uYWw8VmVjdG9yPHN0ZDo6dW5p
cXVlX3B0cjxJU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3g+Pj4gZXh0cmFjdFBz
c2hCb3hlc0Zyb21DZW5jKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOworICAgIHN0YXRpYyBPcHRpb25h
bDxWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+PiBleHRyYWN0S2V5SURzQ2VuYyhjb25zdCBTaGFy
ZWRCdWZmZXImKTsKKyAgICBzdGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVDZW5j
KGNvbnN0IFNoYXJlZEJ1ZmZlciYpOworCiBwcml2YXRlOgogICAgIEluaXREYXRhUmVnaXN0cnko
KTsKICAgICB+SW5pdERhdGFSZWdpc3RyeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxh
eVN0cmVhbWluZy5jcHAKaW5kZXggMjFiOTNkZTg4ODFiNWRlNzY3ZmEwNGM2NmIxMjBhMDkzNjgz
NzE5Zi4uMzYxYTk5MmYwYzQ2NTBjZjJiOTYyOGE2NDJlOTdiNWRiYTBlMmEzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQ
bGF5U3RyZWFtaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiQ0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIkNETVJlc3Ry
aWN0aW9ucy5oIgogI2luY2x1ZGUgIkNETVNlc3Npb25UeXBlLmgiCisjaW5jbHVkZSAiSVNPUHJv
dGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94LmgiCiAjaW5jbHVkZSAiSVNPU2NoZW1lSW5m
b3JtYXRpb25Cb3guaCIKICNpbmNsdWRlICJJU09TY2hlbWVUeXBlQm94LmgiCiAjaW5jbHVkZSAi
SVNPVHJhY2tFbmNyeXB0aW9uQm94LmgiCkBAIC00OCw2ICs0OSwxMCBAQAogI2luY2x1ZGUgIkNE
TUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmgiCiAjZW5kaWYKIAorI2lmIEhBVkUo
RkFJUlBMQVlTVFJFQU1JTkdfQ0VOQ19JTklUREFUQSkKKyNpbmNsdWRlICJJU09GYWlyUGxheVN0
cmVhbWluZ1Bzc2hCb3guaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0
IFZlY3RvcjxGb3VyQ0M+JiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnZhbGlkRmFpclBs
YXlTdHJlYW1pbmdTY2hlbWVzKCkKQEAgLTc0LDEyICs3OSw2IEBAIGNvbnN0IEF0b21TdHJpbmcm
IENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2tkTmFtZSgpCiAgICAgcmV0dXJuIHNrZDsK
IH0KIAotY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6
OmZhaXJQbGF5U3lzdGVtSUQoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8
dWludDhfdD4+IHN5c3RlbUlEID0gVmVjdG9yPHVpbnQ4X3Q+KHsgMHg5NCwgMHhDRSwgMHg4Niwg
MHhGQiwgMHgwNywgMHhGRiwgMHg0RiwgMHg0MywgMHhBRCwgMHhCOCwgMHg5MywgMHhEMiwgMHhG
QSwgMHg5NiwgMHg4QywgMHhBMiB9KTsKLSAgICByZXR1cm4gc3lzdGVtSUQ7Ci19Ci0KIHN0YXRp
YyBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGV4dHJhY3RTaW5mRGF0YShjb25zdCBTaGFyZWRC
dWZmZXImIGJ1ZmZlcikKIHsKICAgICAvLyBKU09OIG9mIHRoZSBmb3JtYXQ6ICJ7IHNpbmY6IFsg
PGJhc2U2NC1lbmNvZGVkLXN0cmluZz4gXSB9IgpAQCAtMjA1LDYgKzIwNCw5IEBAIHN0YXRpYyBj
b25zdCBIYXNoU2V0PEF0b21TdHJpbmc+JiB2YWxpZEluaXREYXRhVHlwZXMoKQogICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PEF0b21TdHJpbmc+PiB2YWxpZFR5cGVzID0gSGFzaFNl
dDxBdG9tU3RyaW5nPih7CiAgICAgICAgIENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2lu
Zk5hbWUoKSwKICAgICAgICAgQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpza2ROYW1lKCks
CisjaWYgSEFWRShGQUlSUExBWVNUUkVBTUlOR19DRU5DX0lOSVREQVRBKQorICAgICAgICBJbml0
RGF0YVJlZ2lzdHJ5OjpjZW5jTmFtZSgpLAorI2VuZGlmCiAgICAgfSk7CiAgICAgcmV0dXJuIHZh
bGlkVHlwZXM7CiB9CkBAIC0zNzMsNiArMzc1LDE4IEBAIGJvb2wgQ0RNUHJpdmF0ZUZhaXJQbGF5
U3RyZWFtaW5nOjpzdXBwb3J0c0luaXREYXRhKGNvbnN0IEF0b21TdHJpbmcmIGluaXREYXRhVHlw
CiAgICAgICAgIH0pOwogICAgIH0KIAorI2lmIEhBVkUoRkFJUlBMQVlTVFJFQU1JTkdfQ0VOQ19J
TklUREFUQSkKKyAgICBpZiAoaW5pdERhdGFUeXBlID09IEluaXREYXRhUmVnaXN0cnk6OmNlbmNO
YW1lKCkpIHsKKyAgICAgICAgYXV0byBwc3NoQm94ZXMgPSBJbml0RGF0YVJlZ2lzdHJ5OjpleHRy
YWN0UHNzaEJveGVzRnJvbUNlbmMoaW5pdERhdGEpOworICAgICAgICBpZiAoIXBzc2hCb3hlcykK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gV1RGOjphbnlPZihw
c3NoQm94ZXMudmFsdWUoKSwgW10oYXV0byYgcHNzaEJveCkgeworICAgICAgICAgICAgcmV0dXJu
IGlzPElTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveD4oKnBzc2hCb3gpOworICAgICAgICB9KTsK
KyAgICB9CisjZW5kaWYKKwogICAgIGlmIChpbml0RGF0YVR5cGUgPT0gc2tkTmFtZSgpKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
aAppbmRleCA0YzhhNmNlMGFjZWQ1NjkwMmE3ZDFkNWMwOGQ0MjcxMWMyOGE0ZDc1Li44OTE4ZTgw
ZTBjMzkwZDdlOGRhY2ExOTAzOTQ3OWEwZDBmNjk1YWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RN
RmFpclBsYXlTdHJlYW1pbmcuaApAQCAtNzgsNyArNzgsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNhbml0aXplU2tkKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwog
CiAgICAgc3RhdGljIGNvbnN0IFZlY3RvcjxGb3VyQ0M+JiB2YWxpZEZhaXJQbGF5U3RyZWFtaW5n
U2NoZW1lcygpOwotICAgIHN0YXRpYyBjb25zdCBWZWN0b3I8dWludDhfdD4mIGZhaXJQbGF5U3lz
dGVtSUQoKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9JU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3guaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JU09GYWlyUGxheVN0cmVh
bWluZ1Bzc2hCb3guaAppbmRleCAzYTRlZWU3MTBkOWE5M2E5MTY5Yzc5MzM4MDg0ODRjYTM4Njgy
MWU1Li5lNDYwMTQ4MzA1Y2VlZDFiNTY0ODQxOTk2Y2I5ZmMzNGNkYzNhYjUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSVNPRmFpclBs
YXlTdHJlYW1pbmdQc3NoQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL0lTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveC5oCkBAIC00Miw3ICs0
Miw3IEBAIHByaXZhdGU6CiAgICAgRm91ckNDIG1fc2NoZW1lOwogfTsKIAotY2xhc3MgV0VCQ09S
RV9FWFBPUlQgSVNPRmFpclBsYXlTdHJlYW1pbmdLZXlSZXF1ZXN0SW5mb0JveCA6IHB1YmxpYyBJ
U09Cb3ggeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgSVNPRmFpclBsYXlTdHJlYW1pbmdLZXlSZXF1
ZXN0SW5mb0JveCA6IHB1YmxpYyBJU09GdWxsQm94IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgRm91
ckNDIGJveFR5cGVOYW1lKCkgeyByZXR1cm4gImZrcmkiOyB9CiAKQEAgLTEwOCw3ICsxMDgsNyBA
QCBwcml2YXRlOgogCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBJU09GYWlyUGxheVN0cmVhbWluZ0lu
aXREYXRhQm94IDogcHVibGljIElTT0JveCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIEZvdXJDQyBi
b3hUeXBlTmFtZSgpIHsgcmV0dXJuICJmcHMgIjsgfQorICAgIHN0YXRpYyBGb3VyQ0MgYm94VHlw
ZU5hbWUoKSB7IHJldHVybiAiZnBzZCI7IH0KIAogICAgIGNvbnN0IElTT0ZhaXJQbGF5U3RyZWFt
aW5nSW5mb0JveCYgaW5mbygpIGNvbnN0IHsgcmV0dXJuIG1faW5mbzsgfQogICAgIGNvbnN0IFZl
Y3RvcjxJU09GYWlyUGxheVN0cmVhbWluZ0tleVJlcXVlc3RCb3g+JiByZXF1ZXN0cygpIGNvbnN0
IHsgcmV0dXJuIG1fcmVxdWVzdHM7IH0KQEAgLTEzMywzICsxMzMsNyBAQCBwcml2YXRlOgogfTsK
IAogfQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OklTT0ZhaXJQbGF5
U3RyZWFtaW5nUHNzaEJveCkgXAorc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OklT
T1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveCYgcHNzaEJveCkgeyByZXR1cm4gcHNz
aEJveC5zeXN0ZW1JRCgpID09IFdlYkNvcmU6OklTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveDo6
ZmFpclBsYXlTeXN0ZW1JRCgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlT
dHJlYW1pbmdBVkZPYmpDLm1tCmluZGV4IGJkOGE2MTUzZGUzYTkxOWI3MDJhMzI3NWRhMTZlZDM3
MDcxZGNlNTYuLmRjNzE0MmIwNjVkZTY5M2VmNjVhOGY5NTNmZmM5NTQ4ZDM2OTg2OGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBs
YXlTdHJlYW1pbmdBVkZPYmpDLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJDRE1GYWly
UGxheVN0cmVhbWluZy5oIgogI2ltcG9ydCAiQ0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbi5oIgog
I2ltcG9ydCAiQ0RNTWVkaWFDYXBhYmlsaXR5LmgiCisjaW1wb3J0ICJJbml0RGF0YVJlZ2lzdHJ5
LmgiCiAjaW1wb3J0ICJOb3RJbXBsZW1lbnRlZC5oIgogI2ltcG9ydCAiU2hhcmVkQnVmZmVyLmgi
CiAjaW1wb3J0ICJUZXh0RGVjb2Rlci5oIgpAQCAtMzksNiArNDAsNyBAQAogI2ltcG9ydCA8cGFs
L3NwaS9tYWMvQVZGb3VuZGF0aW9uU1BJLmg+CiAjaW1wb3J0IDx3dGYvQWxnb3JpdGhtcy5oPgog
I2ltcG9ydCA8d3RmL0ZpbGVTeXN0ZW0uaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgog
I2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAjaW1wb3J0IDxwYWwvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmsuaD4KQEAgLTMxOCw2ICszMjAsMTIgQEAgdm9pZCBDRE1JbnN0YW5j
ZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnJlcXVlc3RMaWNlbnNlKExpY2Vuc2VU
eXBlIGxpY2UKICAgICAgICAgaW5pdGlhbGl6YXRpb25EYXRhID0gaW5pdERhdGEtPmNyZWF0ZU5T
RGF0YSgpOwogICAgIGVsc2UgaWYgKGluaXREYXRhVHlwZSA9PSBDRE1Qcml2YXRlRmFpclBsYXlT
dHJlYW1pbmc6OnNrZE5hbWUoKSkKICAgICAgICAgaWRlbnRpZmllciA9IGFkb3B0TlMoW1tOU1N0
cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOmluaXREYXRhLT5jcmVhdGVOU0RhdGEoKS5nZXQoKSBl
bmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10pOworI2lmIEhBVkUoRkFJUlBMQVlTVFJFQU1J
TkdfQ0VOQ19JTklUREFUQSkKKyAgICBlbHNlIGlmIChpbml0RGF0YVR5cGUgPT0gSW5pdERhdGFS
ZWdpc3RyeTo6Y2VuY05hbWUoKSkgeworICAgICAgICBTdHJpbmcgcHNzaFN0cmluZyA9IGJhc2U2
NEVuY29kZShpbml0RGF0YS0+ZGF0YSgpLCBpbml0RGF0YS0+c2l6ZSgpKTsKKyAgICAgICAgaW5p
dGlhbGl6YXRpb25EYXRhID0gW05TSlNPTlNlcmlhbGl6YXRpb24gZGF0YVdpdGhKU09OT2JqZWN0
OkB7IEAicHNzaCI6IChOU1N0cmluZyopcHNzaFN0cmluZyB9IG9wdGlvbnM6TlNKU09OV3JpdGlu
Z1ByZXR0eVByaW50ZWQgZXJyb3I6bmlsXTsKKyAgICB9CisjZW5kaWYKICAgICBlbHNlIHsKICAg
ICAgICAgY2FsbGJhY2soU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSwgZW1wdHlTdHJpbmcoKSwgZmFs
c2UsIEZhaWxlZCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1Byb3RlY3Rp
b25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveC5jcHAKaW5kZXggNmU0YjY0ZmI0MjAwYmIwOTBjMDU1
ODc3YmM5NmI1MTJkNTUxZjk4YS4uMTU4ODljNGVhNTQ4NWZmMmM2YjUyMDRkMzJlODM4ZjJhYzM4
OTMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lT
T1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRl
ckJveC5jcHAKQEAgLTM0LDYgKzM0LDE3IEBAIHVzaW5nIEpTQzo6RGF0YVZpZXc7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorT3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiBJU09Qcm90ZWN0aW9u
U3lzdGVtU3BlY2lmaWNIZWFkZXJCb3g6OnBlZWtTeXN0ZW1JRChKU0M6OkRhdGFWaWV3JiB2aWV3
LCB1bnNpZ25lZCBvZmZzZXQpCit7CisgICAgYXV0byBwZWVrUmVzdWx0ID0gSVNPQm94OjpwZWVr
Qm94KHZpZXcsIG9mZnNldCk7CisgICAgaWYgKCFwZWVrUmVzdWx0IHx8IHBlZWtSZXN1bHQudmFs
dWUoKS5maXJzdCAhPSBib3hUeXBlTmFtZSgpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgSVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94IHBzc2hCb3g7Cisg
ICAgcHNzaEJveC5wYXJzZSh2aWV3LCBvZmZzZXQpOworICAgIHJldHVybiBwc3NoQm94LnN5c3Rl
bUlEKCk7Cit9CisKIGJvb2wgSVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94Ojpw
YXJzZShEYXRhVmlldyYgdmlldywgdW5zaWduZWQmIG9mZnNldCkKIHsKICAgICBpZiAoIUlTT0Z1
bGxCb3g6OnBhcnNlKHZpZXcsIG9mZnNldCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9pc28vSVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pc28vSVNPUHJvdGVjdGlvblN5
c3RlbVNwZWNpZmljSGVhZGVyQm94LmgKaW5kZXggNzlkYzQ5MzhlZDM2MDIxYTZhMDQ1YWYwNzYx
MzFlNmMzMTU4ZjZmOC4uMTEyNzgwYWJjZDVmMmY5ZWRhMmE3Mjc1NjUyMGY5YWU4MTc3MGYzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1Byb3Rl
Y3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2lzby9JU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3guaApA
QCAtMzYsNiArMzYsOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgS2V5SUQgPSBWZWN0b3I8dWludDhf
dD47CiAgICAgc3RhdGljIEZvdXJDQyBib3hUeXBlTmFtZSgpIHsgcmV0dXJuICJwc3NoIjsgfQog
CisgICAgc3RhdGljIE9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gcGVla1N5c3RlbUlEKEpTQzo6
RGF0YVZpZXcmLCB1bnNpZ25lZCBvZmZzZXQpOworCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHN5c3Rl
bUlEKCkgY29uc3QgeyByZXR1cm4gbV9zeXN0ZW1JRDsgfQogICAgIFZlY3RvcjxLZXlJRD4ga2V5
SURzKCkgY29uc3QgeyByZXR1cm4gbV9rZXlJRHM7IH0KICAgICBWZWN0b3I8dWludDhfdD4gZGF0
YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg0Y2QyNjRhNzI4NzRmMTQ5Nzc5MWI3YTkwMjY2MTY1
ODY3ODc5NjMuLmNhOGI4NzU4NzllNGQ3YTA2Y2Y5NTU3ZjZmOTI3ZWI3NjgxNjc4YTYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxOS0wNy0wMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAg
ICAgICBQaXBlIHN1cG9ydCBmb3IgJ2NlbmMnIGluaXQgZGF0YSB0eXBlIGludG8gQ0RNRmFpclBs
YXlTdHJlYW1pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5OTM4MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTI0ODMxMDM+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0lTT0JveC5jcHA6CisKIDIwMTktMDYtMjggIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIG5ldyAtW1dLV2ViVmlldyBfY2xvc2VBbGxNZWRp
YVByZXNlbnRhdGlvbnNdIFNQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0lTT0JveC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
SVNPQm94LmNwcAppbmRleCAwOTk4NzY0YjAwM2EzNzk2ZTlkZGQ5MTQ4ZjY5YTM0MjFlNTg4YWVj
Li4wZWMzOGY2ZmRjOWVjNWE1NjVlMjRkYzQwMDBhOGI4ZGJhYTEyNDM2IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSVNPQm94LmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvSVNPQm94LmNwcApAQCAtNzQsMTMgKzc0LDEzIEBA
IFRFU1QoSVNPQm94LCBJU09Qcm90ZWN0aW9uU2NoZW1lSW5mb0JveCkKICAgICBBU1NFUlRfRVEo
ZGVmYXVsdElWLCB0cmFja0VuY3J5cHRpb25Cb3gtPmRlZmF1bHRDb25zdGFudElWKCkpOwogfQog
Ci1zdGF0aWMgY29uc3QgY2hhciogYmFzZTY0RW5jb2RlZFBzc2hXaXRoQXNzZXRJZCA9ICJBQUFB
cUhCemMyZ0FBQUFBbE02Ryt3Zi9UME90dUpQUytwYU1vZ0FBQUlnQUFBQ0labkJ6WkFBQUFCQm1j
SE5wQUFBQUFHTmxibU1BQUFBNFpuQnphd0FBQUJobWEzSnBBQUFBQUFBQUFBQUFBQUFBQUFBQUFR
QUFBQmhtYTJGcEFBQUFBQUFBQUFBQUFBQUFBQUFBOFFBQUFEaG1jSE5yQUFBQUdHWnJjbWtBQUFB
QUFBQUFBQUFBQUFBQUFBQUNBQUFBR0dacllXa0FBQUFBQUFBQUFBQUFBQUFBQUFEeSI7CitzdGF0
aWMgY29uc3QgY2hhciogYmFzZTY0RW5jb2RlZFBzc2hXaXRoQXNzZXRJZCA9ICJBQUFBc0hCemMy
Z0FBQUFBbE02Ryt3Zi9UME90dUpQUytwYU1vZ0FBQUpBQUFBQ1FabkJ6WkFBQUFCQm1jSE5wQUFB
QUFHTmxibU1BQUFBOFpuQnphd0FBQUJ4bWEzSnBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVB
QUFBWVptdGhhUUFBQUFBQUFBQUFBQUFBQUFBQUFQRUFBQUE4Wm5CemF3QUFBQnhtYTNKcEFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFZWm10aGFRQUFBQUFBQUFBQUFBQUFBQUFBQVBJPSI7
CiAKIFRFU1QoSVNPQm94LCBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3gpCiB7CiAgICAgVmVj
dG9yPHVpbnQ4X3Q+IHBzc2hBcnJheTsKICAgICBBU1NFUlRfVFJVRShiYXNlNjREZWNvZGUoU3Ry
aW5nVmlldyhiYXNlNjRFbmNvZGVkUHNzaFdpdGhBc3NldElkKSwgcHNzaEFycmF5KSk7Ci0gICAg
QVNTRVJUX0VRKDE2OFVMLCBwc3NoQXJyYXkuc2l6ZSgpKTsKKyAgICBBU1NFUlRfRVEoMTc2VUws
IHBzc2hBcnJheS5zaXplKCkpOwogCiAgICAgYXV0byB2aWV3ID0gSlNDOjpEYXRhVmlldzo6Y3Jl
YXRlKEFycmF5QnVmZmVyOjpjcmVhdGUocHNzaEFycmF5LmRhdGEoKSwgcHNzaEFycmF5LnNpemUo
KSksIDAsIHBzc2hBcnJheS5zaXplKCkpOwogCkBAIC05NCwxNCArOTQsMTQgQEAgVEVTVChJU09C
b3gsIElTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveCkKICAgICBhdXRvIHJlcXVlc3RzID0gcHNz
aEJveC5pbml0RGF0YUJveCgpLnJlcXVlc3RzKCk7CiAgICAgQVNTRVJUX0VRKDJVTCwgcmVxdWVz
dHMuc2l6ZSgpKTsKIAotICAgIFZlY3Rvcjx1aW50OF90LCAxNj4gZXhwZWN0ZWRGaXJzdEtleUlE
ID0geyAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxIH07Cisg
ICAgVmVjdG9yPHVpbnQ4X3QsIDE2PiBleHBlY3RlZEZpcnN0S2V5SUQgPSB7IDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAgfTsKICAgICBBU1NFUlRfRVEocmVx
dWVzdHNbMF0ucmVxdWVzdEluZm8oKS5rZXlJRCgpLCBleHBlY3RlZEZpcnN0S2V5SUQpOwogCiAg
ICAgVmVjdG9yPHVpbnQ4X3Q+IGV4cGVjdGVkRmlyc3RBc3NldElEID0geyAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAweEYxIH07CiAgICAgQVNTRVJUX1RSVUUo
cmVxdWVzdHNbMF0uYXNzZXRJRCgpKTsKICAgICBBU1NFUlRfRVEocmVxdWVzdHNbMF0uYXNzZXRJ
RCgpLnZhbHVlKCkuZGF0YSgpLCBleHBlY3RlZEZpcnN0QXNzZXRJRCk7CiAKLSAgICBWZWN0b3I8
dWludDhfdCwgMTY+IGV4cGVjdGVkU2Vjb25kS2V5SUQgPSB7IDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIgfTsKKyAgICBWZWN0b3I8dWludDhfdCwgMTY+IGV4
cGVjdGVkU2Vjb25kS2V5SUQgPSB7IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAgfTsKICAgICBBU1NFUlRfRVEocmVxdWVzdHNbMV0ucmVxdWVzdEluZm8oKS5r
ZXlJRCgpLCBleHBlY3RlZFNlY29uZEtleUlEKTsKIAogICAgIFZlY3Rvcjx1aW50OF90PiBleHBl
Y3RlZFNlY29uZEFzc2V0SUQgPSB7IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDB4RjIgfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>