<?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>179131</bug_id>
          
          <creation_ts>2017-11-01 11:22:10 -0700</creation_ts>
          <short_desc>[Performance] Painting &lt;video&gt; to canvas spends a lot of time in URL getting and parsing</short_desc>
          <delta_ts>2017-11-02 08:43:27 -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>Media</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>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1366935</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-11-01 11:22:10 -0700</bug_when>
    <thetext>[Performance] Painting &lt;video&gt; to canvas spends a lot of time in URL getting and parsing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366943</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-01 11:26:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/35297356&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366944</commentid>
    <comment_count>2</comment_count>
      <attachid>325599</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-11-01 11:27:45 -0700</bug_when>
    <thetext>Created attachment 325599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366945</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-11-01 11:30:02 -0700</bug_when>
    <thetext>Attachment 325599 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:208:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 7 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>1366999</commentid>
    <comment_count>4</comment_count>
      <attachid>325599</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-11-01 12:49:22 -0700</bug_when>
    <thetext>Comment on attachment 325599
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:208
&gt; +    void createAVAssetForURL(const URL&amp; url) override;

Nit: &quot;url&quot; isn&apos;t necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367045</commentid>
    <comment_count>5</comment_count>
      <attachid>325630</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-11-01 14:23:44 -0700</bug_when>
    <thetext>Created attachment 325630
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367051</commentid>
    <comment_count>6</comment_count>
      <attachid>325631</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-11-01 14:25:39 -0700</bug_when>
    <thetext>Created attachment 325631
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367061</commentid>
    <comment_count>7</comment_count>
      <attachid>325631</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-01 14:42:02 -0700</bug_when>
    <thetext>Comment on attachment 325631
Patch for landing

Clearing flags on attachment: 325631

Committed r224297: &lt;https://trac.webkit.org/changeset/224297&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367062</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-01 14:42:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367119</commentid>
    <comment_count>9</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-11-01 16:50:46 -0700</bug_when>
    <thetext>This change broke the Windows build:
https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/5727/steps/compile-webkit/logs/stdio

Here is the log after an attempt to fix it in https://trac.webkit.org/changeset/224305/webkit:
https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/5732/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367135</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-11-01 17:30:55 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #9)
&gt; This change broke the Windows build:
&gt; https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/
&gt; 5727/steps/compile-webkit/logs/stdio
&gt; 
&gt; Here is the log after an attempt to fix it in
&gt; https://trac.webkit.org/changeset/224305/webkit:
&gt; https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/
&gt; 5732/steps/compile-webkit/logs/stdio

Looks like you forgot to update MediaPlayerPrivateAVFoundationCF::createAVAssetForURL for the signature change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367338</commentid>
    <comment_count>11</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-11-02 08:43:27 -0700</bug_when>
    <thetext>The build was fixed with https://trac.webkit.org/changeset/224311/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325599</attachid>
            <date>2017-11-01 11:27:45 -0700</date>
            <delta_ts>2017-11-01 14:23:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179131-20171101112744.patch</filename>
            <type>text/plain</type>
            <size>16197</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTJjZjUxMGUxZDAwYmJh
ZWFjMzQ4NWUyYmViZmFjMjE5MTc4YThjMC4uOTNlODIyZDU1Y2VlOWVjZmY2NzRjMjM5YTYxNGZm
NTMzNmJkYTczZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE3LTExLTAxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtQZXJmb3JtYW5jZV0gUGFp
bnRpbmcgPHZpZGVvPiB0byBjYW52YXMgc3BlbmRzIGEgbG90IG9mIHRpbWUgaW4gVVJMIGdldHRp
bmcgYW5kIHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3OTEzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEV2ZXJ5IHRpbWUgYSA8dmlkZW8+IGJhY2tlZCBieSBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24gaXMgYXNrZWQgdG8gcGFpbnQsIGl0IGlzIGZpcnN0CisgICAgICAgIHF1ZXJp
ZWQgd2hldGhlciBpdCBoYXMgYSBzaW5nbGUgc2VjdXJpdHkgb3JpZ2luLiBUbyBkbyB0aGlzLCB0
aGUgbWVkaWEgcGxheWVyIGFza3MKKyAgICAgICAgQVZGb3VuZGF0aW9uIHdoYXQgdGhlICJyZXNv
bHZlZFVSTCIgb2YgdGhlIGFzc2V0IGlzLiBUaGlzIGFuc3dlciBuZXZlciBjaGFuZ2VzIGFmdGVy
CisgICAgICAgIG1ldGFkYXRhIGlzIGZpcnN0IGZldGNoZWQsIHNvIHRoZSBhbnN3ZXIgc2hvdWxk
IGJlIGNhY2hlZC4gVG8gZG8gc28sIGFkZCBhIG1fcmVzb2x2ZWRVUkwKKyAgICAgICAgaXZhciB0
byBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24sIGFuZCBhZGQgYSBzZXRSZXNvbHZlZFVS
TCgpIGFuZCByZXNvbHZlZFVSTENoYW5nZWQoKQorICAgICAgICBtZXRob2QgdG8gcmUtcXVlcnkg
dGhlIHZhbHVlLiBBbHNvIGNyZWF0ZSBpdmFycyBmb3IgdGhlIHNlY3VyaXR5IG9yaWdpbiByYXRo
ZXIgdGhhbiByZS0KKyAgICAgICAgcGFyc2luZyB0aGVtIGV2ZXJ5IHRpbWUuCisKKyAgICAgICAg
RHJpdmUtYnkgZml4OiBjbGVhbiB1cCBhbGwgdGhlIGluc3RhbmNlcyB3aGVyZSB3ZSBwYXNzIGEg
U3RyaW5nIHJhdGhlciB0aGFuIGEgVVJMIChhbmQgdGh1cworICAgICAgICBoYXZlIHRvIHJlLXBh
cnNlIHRoZSBVUkwgYXQgZWFjaCBwb2ludCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bG9hZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Omhhc1NpbmdsZVNl
Y3VyaXR5T3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbjo6c2V0UmVzb2x2ZWRVUkwpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjptZXRhZGF0YUxvYWRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFByZWxvYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpyZXNvbHZlZFVSTCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpyZXNvbHZlZFVSTCBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGOjpyZXNvbHZlZFVSTENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVZG
V3JhcHBlcjo6Y3JlYXRlQXNzZXRGb3JVUkwpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJlc29sdmVkVVJMIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpoYXNTaW5n
bGVTZWN1cml0eU9yaWdpbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06
CisgICAgICAgIChXZWJDb3JlOjpjYW5vbmljYWxVUkwpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzaXpl
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpjYW5vbmljYWxVUkwpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6aGFzU2luZ2xlU2VjdXJp
dHlPcmlnaW4gY29uc3QpOiBEZWxldGVkLgorCiAyMDE3LTEwLTI3ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHTF0gT3B0aW1pemF0aW9uIHRvIHNraXAg
cGFpbnRpbmcgaWYgdGV4dHVyZSBhbmQgc291cmNlIHN1cmZhY2UgaGFzbid0IGNoYW5nZWQgaXNu
J3Qgd29ya2luZzsgcmUtb3B0aW1pemUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCmluZGV4IGI1NWExYjQzZGY3YmU5NWY1M2Rm
YTY5MDBjMzhmNzZlZWI2MGZkZTkuLjQzNmM3ZTA4YmRkMDhiNDg5OTM1YmRiMWRlNWI4ZjIyNGMz
NDQ5ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24uY3BwCkBAIC0xNzIsNyArMTcyLDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb246OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwpCiAgICAgc2V0TmV0d29ya1N0
YXRlKG1fcHJlbG9hZCA9PSBNZWRpYVBsYXllcjo6Tm9uZSA/IE1lZGlhUGxheWVyOjpJZGxlIDog
TWVkaWFQbGF5ZXI6OkxvYWRpbmcpOwogICAgIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6Okhh
dmVOb3RoaW5nKTsKIAotICAgIG1fYXNzZXRVUkwgPSB1cmw7CisgICAgbV9hc3NldFVSTCA9IFVS
TChQYXJzZWRVUkxTdHJpbmcsIHVybCk7CisgICAgbV9yZXF1ZXN0ZWRPcmlnaW4gPSBTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKG1fYXNzZXRVUkwpOwogCiAgICAgLy8gRG9uJ3QgZG8gYW55IG1vcmUg
d29yayBpZiB0aGUgdXJsIGlzIGVtcHR5LgogICAgIGlmICghdXJsLmxlbmd0aCgpKQpAQCAtNDgy
LDYgKzQ4MywxOSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c3VwcG9y
dHNGdWxsc2NyZWVuKCkgY29uc3QKICNlbmRpZgogfQogCitib29sIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbjo6aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdAoreworICAgIGlm
IChtX3Jlc29sdmVkT3JpZ2luICYmIG1fcmVxdWVzdGVkT3JpZ2luKQorICAgICAgICByZXR1cm4g
bV9yZXNvbHZlZE9yaWdpbi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQoKm1fcmVxdWVzdGVkT3JpZ2lu
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uOjpzZXRSZXNvbHZlZFVSTChVUkwmJiByZXNvbHZlZFVSTCkKK3sKKyAgICBtX3Jlc29s
dmVkVVJMID0gV1RGTW92ZShyZXNvbHZlZFVSTCk7CisgICAgbV9yZXNvbHZlZE9yaWdpbiA9IFNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGUobV9yZXNvbHZlZFVSTCk7Cit9CisKIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjp1cGRhdGVTdGF0ZXMoKQogewogICAgIGlmIChtX2lnbm9y
ZUxvYWRTdGF0ZUNoYW5nZXMpCkBAIC02MTEsNiArNjI1LDcgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb246OnNldFNob3VsZE1haW50YWluQXNwZWN0UmF0aW8oYm9vbCBtYWlu
dGFpbkEKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjptZXRhZGF0YUxvYWRl
ZCgpCiB7CiAgICAgbV9sb2FkaW5nTWV0YWRhdGEgPSBmYWxzZTsKKyAgICByZXNvbHZlZFVSTENo
YW5nZWQoKTsKICAgICB0cmFja3NDaGFuZ2VkKCk7CiB9CiAKQEAgLTcyMCw3ICs3MzUsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0UHJlbG9hZChNZWRpYVBsYXll
cjo6UHJlbG9hZCBwcmVsb2FkKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIiAt
ICIsIHN0YXRpY19jYXN0PGludD4ocHJlbG9hZCkpOwogICAgIG1fcHJlbG9hZCA9IHByZWxvYWQ7
Ci0gICAgaWYgKCFtX2Fzc2V0VVJMLmxlbmd0aCgpKQorICAgIGlmIChtX2Fzc2V0VVJMLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc2V0RGVsYXlDYWxsYmFja3ModHJ1ZSk7CkBA
IC0xMDQ1LDE0ICsxMDYwLDYgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246
OmV4dHJhY3RLZXlVUklLZXlJREFuZENlcnRpZmljYXRlRnJvbUluaXREYXQKIH0KICNlbmRpZgog
Ci1VUkwgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpyZXNvbHZlZFVSTCgpIGNvbnN0
Ci17Ci0gICAgaWYgKCFtX2Fzc2V0VVJMLmxlbmd0aCgpKQotICAgICAgICByZXR1cm4gVVJMKCk7
Ci0KLSAgICByZXR1cm4gVVJMKFBhcnNlZFVSTFN0cmluZywgbV9hc3NldFVSTCk7Ci19Ci0KIGJv
b2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjYW5TYXZlTWVkaWFEYXRhKCkgY29u
c3QKIHsKICAgICBVUkwgdXJsID0gcmVzb2x2ZWRVUkwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAppbmRleCA1ZTQ4NTI1Yjc3ZGVm
NWQ3NWI3MWUyOTY0ZWNmOTIwMDZjNzZmOWE5Li43YzE3MjcyOWIwNGI5MjJhZDkwZmU3N2E4ZjQ4
M2M5NTAwMzlkNGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5oCkBAIC0yMTksOCArMjE5LDEwIEBAIHByb3RlY3RlZDoKICAgICBi
b29sIHN1cHBvcnRzU2Nhbm5pbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAg
ICAgdW5zaWduZWQgbG9uZyBsb25nIGZpbGVTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dG90YWxCeXRlcygpOyB9CiAKKyAgICBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29u
c3Qgb3ZlcnJpZGU7CisKICAgICAvLyBSZXF1aXJlZCBpbnRlcmZhY2VzIGZvciBjb25jcmV0ZSBk
ZXJpdmVkIGNsYXNzZXMuCi0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZUFWQXNzZXRGb3JVUkwoY29u
c3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVBVkFzc2V0Rm9yVVJMKGNv
bnN0IFVSTCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQVZQbGF5ZXIoKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGNyZWF0ZUFWUGxheWVySXRlbSgpID0gMDsKIApAQCAtMjc0LDYgKzI3
Niw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgaGFzTGF5ZXJSZW5kZXJlcigpIGNv
bnN0ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWRlb0xheWVyR3Jhdml0eSgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzb2x2ZWRVUkxDaGFuZ2VkKCkgPSAwOwogCiAgICAgc3Rh
dGljIGJvb2wgaXNVbnN1cHBvcnRlZE1JTUVUeXBlKGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRp
YyBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3RhdGlj
TUlNRVR5cGVMaXN0KCk7CkBAIC0zMjYsNyArMzI5LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
Y2xlYXJUZXh0VHJhY2tzKCk7CiAgICAgVmVjdG9yPFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2
YXRlQVZGPj4gbV90ZXh0VHJhY2tzOwogCi0gICAgdmlydHVhbCBVUkwgcmVzb2x2ZWRVUkwoKSBj
b25zdDsKKyAgICB2b2lkIHNldFJlc29sdmVkVVJMKFVSTCYmKTsKKyAgICBjb25zdCBVUkwmIHJl
c29sdmVkVVJMKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZlZFVSTDsgfQogCiBwcml2YXRlOgog
ICAgIE1lZGlhUGxheWVyKiBtX3BsYXllcjsKQEAgLTM0Myw3ICszNDcsMTEgQEAgcHJpdmF0ZToK
ICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlOwogICAgIE1lZGlh
UGxheWVyOjpSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZTsKIAotICAgIFN0cmluZyBtX2Fzc2V0VVJM
OworICAgIFVSTCBtX2Fzc2V0VVJMOworICAgIFVSTCBtX3Jlc29sdmVkVVJMOworICAgIFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4gbV9yZXF1ZXN0ZWRPcmlnaW47CisgICAgUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiBtX3Jlc29sdmVkT3JpZ2luOworCiAgICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9w
cmVsb2FkOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRl
eCA2OGFkYzNkNmFjNzlhMjI2MGQyYTk5NTc2YWVkYWQxNjYwNzEzZjlkLi45MGM2ZmM0NjdhOTZh
NjEwNTk3ZWQ5ZDRiZDY4YWY2Nzg5OTc4OTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTExMTAs
NiArMTExMCwxNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpzaXpl
Q2hhbmdlZCgpCiAgICAgc2V0TmF0dXJhbFNpemUoSW50U2l6ZShuYXR1cmFsU2l6ZSkpOwogfQog
Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpyZXNvbHZlZFVSTENoYW5n
ZWQoKQoreworICAgIGlmIChtX2F2ZldyYXBwZXIgJiYgbV9hdmZXcmFwcGVyLT5hdkFzc2V0KCkp
CisgICAgICAgIHNldFJlc29sdmVkVVJMKGFkb3B0Q0YoQVZDRkFzc2V0Q29weVJlc29sdmVkVVJM
KG1fYXZmV3JhcHBlci0+YXZBc3NldCgpKSkpOworICAgIGVsc2UKKyAgICAgICAgc2V0UmVzb2x2
ZWRVUkwoeyB9KTsKK30KKwogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6
cmVxdWlyZXNJbW1lZGlhdGVDb21wb3NpdGluZygpIGNvbnN0CiB7CiAgICAgLy8gVGhlIEFWRm91
bmRhdGlvbkNGIHBsYXllciBuZWVkcyB0byBoYXZlIHRoZSByb290IGNvbXBvc2l0b3IgYXZhaWxh
YmxlIGF0IGNvbnN0cnVjdGlvbiB0aW1lCkBAIC0xMzQyLDI2ICsxMzUwLDYgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6Y29udGVudHNOZWVkc0Rpc3BsYXkoKQogICAg
ICAgICBtX2F2ZldyYXBwZXItPnNldFZpZGVvTGF5ZXJOZWVkc0NvbW1pdCgpOwogfQogCi1VUkwg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJlc29sdmVkVVJMKCkgY29uc3QKLXsK
LSAgICBpZiAoIW1fYXZmV3JhcHBlciB8fCAhbV9hdmZXcmFwcGVyLT5hdkFzc2V0KCkpCi0gICAg
ICAgIHJldHVybiBVUkwoKTsKLQotICAgIGF1dG8gcmVzb2x2ZWRVUkwgPSBhZG9wdENGKEFWQ0ZB
c3NldENvcHlSZXNvbHZlZFVSTChtX2F2ZldyYXBwZXItPmF2QXNzZXQoKSkpOwotCi0gICAgcmV0
dXJuIFVSTChyZXNvbHZlZFVSTC5nZXQoKSk7Ci19Ci0KLWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0Y6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QKLXsKLSAgICBp
ZiAoIW1fYXZmV3JhcHBlciB8fCAhbV9hdmZXcmFwcGVyLT5hdkFzc2V0KCkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIFJlZjxTZWN1cml0eU9yaWdpbj4gcmVzb2x2ZWRPcmlnaW4oU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZShyZXNvbHZlZFVSTCgpKSk7Ci0gICAgUmVmPFNlY3VyaXR5T3Jp
Z2luPiByZXF1ZXN0ZWRPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoYXNz
ZXRVUkwoKSkpOwotICAgIHJldHVybiByZXNvbHZlZE9yaWdpbi0+aXNTYW1lU2NoZW1lSG9zdFBv
cnQocmVxdWVzdGVkT3JpZ2luLmdldCgpKTsKLX0KLQogQVZGV3JhcHBlcjo6QVZGV3JhcHBlcihN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRiogb3duZXIpCiAgICAgOiBtX293bmVyKG93
bmVyKQogICAgICwgbV9vYmplY3RJRChzX25leHRBVkZXcmFwcGVyT2JqZWN0SUQrKykKQEAgLTE1
MTAsMTEgKzE0OTgsMTEgQEAgdm9pZCBBVkZXcmFwcGVyOjpkaXNjb25uZWN0QW5kRGVsZXRlQVZG
V3JhcHBlcih2b2lkKiBjb250ZXh0KQogICAgIGRpc3BhdGNoX2FzeW5jX2YoZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSwgY29udGV4dCwgZGVzdHJveUFWRldyYXBwZXIpOwogfQogCi12b2lkIEFW
RldyYXBwZXI6OmNyZWF0ZUFzc2V0Rm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsLCBib29sIGluaGVy
aXRVUkkpCit2b2lkIEFWRldyYXBwZXI6OmNyZWF0ZUFzc2V0Rm9yVVJMKGNvbnN0IFVSTCYgdXJs
LCBib29sIGluaGVyaXRVUkkpCiB7CiAgICAgQVNTRVJUKCFhdkFzc2V0KCkpOwogCi0gICAgUmV0
YWluUHRyPENGVVJMUmVmPiB1cmxSZWYgPSBVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLmNyZWF0
ZUNGVVJMKCk7CisgICAgUmV0YWluUHRyPENGVVJMUmVmPiB1cmxSZWYgPSB1cmwuY3JlYXRlQ0ZV
UkwoKTsKIAogICAgIFJldGFpblB0cjxDRk11dGFibGVEaWN0aW9uYXJ5UmVmPiBvcHRpb25zUmVm
ID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFs
dWVDYWxsQmFja3MpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAppbmRleCA1NDA1MDMwYzBlZmZjZmY1YjBiYTZm
ODAyMjcyNDY2NGY0NmU2ODdlLi4wNWQ0MjNkODgyZjZkY2E2NGMyMjFmYWQzZDhhOWQ2ZmE5MzU0
ODU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uQ0YuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB+TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YoKTsKIAogICAgIHZvaWQgdHJhY2tz
Q2hhbmdlZCgpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzb2x2ZWRVUkxDaGFuZ2VkKCkgb3ZlcnJp
ZGU7CiAKICNpZiBIQVZFKEFWRk9VTkRBVElPTl9MT0FERVJfREVMRUdBVEUpCiAgICAgYm9vbCBz
aG91bGRXYWl0Rm9yTG9hZGluZ09mUmVzb3VyY2UoQVZDRkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVx
dWVzdFJlZik7CkBAIC04Myw3ICs4NCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQg
Y3JlYXRlQVZQbGF5ZXIoKTsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQVZQbGF5ZXJJdGVtKCk7
Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgU3RyaW5nJiB1cmwp
OworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFVSTCYpOwogICAg
IHZpcnR1YWwgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpJdGVtU3RhdHVzIHBsYXll
ckl0ZW1TdGF0dXMoKSBjb25zdDsKICAgICB2aXJ0dWFsIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbjo6QXNzZXRTdGF0dXMgYXNzZXRTdGF0dXMoKSBjb25zdDsKIApAQCAtMTE2LDEwICsx
MTcsNiBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzTmVlZHNEaXNwbGF5
KCk7CiAKLSAgICBVUkwgcmVzb2x2ZWRVUkwoKSBjb25zdCBvdmVycmlkZTsKLQotICAgIGJvb2wg
aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCBvdmVycmlkZTsKLQogI2lmIEVOQUJMRShM
RUdBQ1lfRU5DUllQVEVEX01FRElBKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxMZWdhY3lDRE1TZXNz
aW9uPiBjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmluZyYsIExlZ2FjeUNETVNlc3Npb25DbGllbnQq
KSBvdmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDZhYjAzMmI5NTM3
ZmMwZTY3YTllYzQ4YzI1MzE0NGQzZDc5YmQxZWEuLmRhNDBkMmVhODdhOTBlNjlhNTc1MGFlYThh
ZTBlNGE2ZjRmZGMyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTIwNSw3ICsyMDUsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlQVZQbGF5ZXIoKSBvdmVycmlkZTsKICAgICB2b2lk
IGNyZWF0ZUFWUGxheWVySXRlbSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVB
VlBsYXllckxheWVyKCk7Ci0gICAgdm9pZCBjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFN0cmlu
ZyYgdXJsKSBvdmVycmlkZTsKKyAgICB2b2lkIGNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgVVJM
JiB1cmwpIG92ZXJyaWRlOwogICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6SXRl
bVN0YXR1cyBwbGF5ZXJJdGVtU3RhdHVzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpBc3NldFN0YXR1cyBhc3NldFN0YXR1cygpIGNvbnN0IG92
ZXJyaWRlOwogICAgIGxvbmcgYXNzZXRFcnJvckNvZGUoKSBjb25zdCBvdmVycmlkZTsKQEAgLTIy
Niw2ICsyMjYsNyBAQCBwcml2YXRlOgogICAgIE1lZGlhVGltZSBwbGF0Zm9ybU1heFRpbWVMb2Fk
ZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGJlZ2luTG9hZGluZ01ldGFkYXRhKCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCBzaXplQ2hhbmdlZCgpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzb2x2
ZWRVUkxDaGFuZ2VkKCkgb3ZlcnJpZGU7CiAKICAgICBib29sIGhhc0F2YWlsYWJsZVZpZGVvRnJh
bWUoKSBjb25zdCBvdmVycmlkZTsKIApAQCAtMjQwLDcgKzI0MSw2IEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIHVwZGF0ZVZpZGVvTGF5ZXJHcmF2aXR5KCkgb3ZlcnJpZGU7CiAKLSAgICBib29sIGhh
c1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBkaWRQYXNz
Q09SU0FjY2Vzc0NoZWNrKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBNZWRpYVRpbWUgZ2V0U3Rh
cnREYXRlKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0zMzAsOCArMzMwLDYgQEAgcHJpdmF0ZToKICAg
ICBkb3VibGUgbWF4RmFzdEZvcndhcmRSYXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9j
YWNoZWRDYW5QbGF5RmFzdEZvcndhcmQgPyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Omlu
ZmluaXR5KCkgOiAyLjA7IH0KICAgICBkb3VibGUgbWluRmFzdFJldmVyc2VSYXRlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9jYWNoZWRDYW5QbGF5RmFzdFJldmVyc2UgPyAtc3RkOjpudW1l
cmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpIDogMC4wOyB9CiAKLSAgICBVUkwgcmVzb2x2
ZWRVUkwoKSBjb25zdCBvdmVycmlkZTsKLQogICAgIFZlY3RvcjxTdHJpbmc+IHByZWZlcnJlZEF1
ZGlvQ2hhcmFjdGVyaXN0aWNzKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFNob3VsZERpc2FibGVT
bGVlcChib29sKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDBkYTliNWZl
MjIxY2E1ZTMzZDcwYzM0ZjExNGQ2OTEwOTIwMWJhNDIuLjE2OGY4MDNlOWZkMWU1ODQ1ODI3ZjNm
NWZmOGUyN2E2YjEzYjFhMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtODczLDkgKzg3
Myw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3luY2hyb25p
emVUZXh0VHJhY2tTdGF0ZSgpCiAjZW5kaWYKIAogCi1zdGF0aWMgTlNVUkwgKmNhbm9uaWNhbFVS
TChjb25zdCBTdHJpbmcmIHVybCkKK3N0YXRpYyBOU1VSTCAqY2Fub25pY2FsVVJMKGNvbnN0IFVS
TCYgdXJsKQogewotICAgIE5TVVJMICpjb2NvYVVSTCA9IFVSTChQYXJzZWRVUkxTdHJpbmcsIHVy
bCk7CisgICAgTlNVUkwgKmNvY29hVVJMID0gdXJsOwogICAgIGlmICh1cmwuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4gY29jb2FVUkw7CiAKQEAgLTkxMCw3ICs5MTAsNyBAQCBzdGF0aWMgTlNI
VFRQQ29va2llKiB0b05TSFRUUENvb2tpZShjb25zdCBDb29raWUmIGNvb2tpZSkKIH0KICNlbmRp
ZgogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNz
ZXRGb3JVUkwoY29uc3QgU3RyaW5nJiB1cmwpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1cmwpCiB7CiAgICAg
aWYgKG1fYXZBc3NldCkKICAgICAgICAgcmV0dXJuOwpAQCAtOTkwLDcgKzk5MCw3IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTChj
b25zdCBTdHJpbmcmIHVybCkKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBWZWN0b3I8Q29va2ll
PiBjb29raWVzOwotICAgIGlmIChwbGF5ZXIoKS0+Z2V0UmF3Q29va2llcyhVUkwoUGFyc2VkVVJM
U3RyaW5nLCB1cmwpLCBjb29raWVzKSkgeworICAgIGlmIChwbGF5ZXIoKS0+Z2V0UmF3Q29va2ll
cyh1cmwsIGNvb2tpZXMpKSB7CiAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gbnND
b29raWVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5
OmNvb2tpZXMuc2l6ZSgpXSk7CiAgICAgICAgIGZvciAoYXV0byYgY29va2llIDogY29va2llcykK
ICAgICAgICAgICAgIFtuc0Nvb2tpZXMgYWRkT2JqZWN0OnRvTlNIVFRQQ29va2llKGNvb2tpZSld
OwpAQCAtMjI4NiwxNSArMjI4NiwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnNpemVDaGFuZ2VkKCkKIAogICAgIHNldE5hdHVyYWxTaXplKG1fY2FjaGVkUHJl
c2VudGF0aW9uU2l6ZSk7CiB9Ci0gICAgCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgCisKK3ZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cmVzb2x2ZWRVUkxDaGFuZ2VkKCkKIHsKLSAg
ICBpZiAoIW1fYXZBc3NldCB8fCBbbV9hdkFzc2V0IHN0YXR1c09mVmFsdWVGb3JLZXk6QCJyZXNv
bHZlZFVSTCIgZXJyb3I6bnVsbHB0cl0gIT0gQVZLZXlWYWx1ZVN0YXR1c0xvYWRlZCkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIFJlZjxTZWN1cml0eU9yaWdpbj4gcmVzb2x2ZWRP
cmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShyZXNvbHZlZFVSTCgpKSk7Ci0gICAgUmVmPFNl
Y3VyaXR5T3JpZ2luPiByZXF1ZXN0ZWRPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21T
dHJpbmcoYXNzZXRVUkwoKSkpOwotICAgIHJldHVybiByZXNvbHZlZE9yaWdpbi0+aXNTYW1lU2No
ZW1lSG9zdFBvcnQocmVxdWVzdGVkT3JpZ2luLmdldCgpKTsKKyAgICBzZXRSZXNvbHZlZFVSTCht
X2F2QXNzZXQgPyBVUkwoW21fYXZBc3NldCByZXNvbHZlZFVSTF0pIDogVVJMKCkpOwogfQogCiBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRpZFBhc3NDT1JTQWNjZXNz
Q2hlY2soKSBjb25zdApAQCAtMzI5MiwxNCArMzI4Nyw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y2FuUGxheUZhc3RSZXZlcnNlRGlkQ2hhbmdlKGJvb2wgbmV3
VmFsCiAgICAgbV9jYWNoZWRDYW5QbGF5RmFzdFJldmVyc2UgPSBuZXdWYWx1ZTsKIH0KIAotVVJM
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnJlc29sdmVkVVJMKCkgY29uc3QK
LXsKLSAgICBpZiAoIW1fYXZBc3NldCB8fCBbbV9hdkFzc2V0IHN0YXR1c09mVmFsdWVGb3JLZXk6
QCJyZXNvbHZlZFVSTCIgZXJyb3I6bnVsbHB0cl0gIT0gQVZLZXlWYWx1ZVN0YXR1c0xvYWRlZCkK
LSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6cmVzb2x2ZWRV
UkwoKTsKLQotICAgIHJldHVybiBVUkwoW21fYXZBc3NldCByZXNvbHZlZFVSTF0pOwotfQotCiB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNob3VsZERpc2FibGVT
bGVlcChib29sIGZsYWcpCiB7CiAjaWYgUExBVEZPUk0oSU9TKSAmJiAhUExBVEZPUk0oSU9TX1NJ
TVVMQVRPUikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325630</attachid>
            <date>2017-11-01 14:23:44 -0700</date>
            <delta_ts>2017-11-01 14:24:30 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-179131-20171101142343.patch</filename>
            <type>text/plain</type>
            <size>16195</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTJjZjUxMGUxZDAwYmJh
ZWFjMzQ4NWUyYmViZmFjMjE5MTc4YThjMC4uYjA1NWIwNWZkOGE2ZTRjYTE5MTgwZjhlYWE1YWYx
ZDM4NGJiMTQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE3LTExLTAxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtQZXJmb3JtYW5jZV0gUGFp
bnRpbmcgPHZpZGVvPiB0byBjYW52YXMgc3BlbmRzIGEgbG90IG9mIHRpbWUgaW4gVVJMIGdldHRp
bmcgYW5kIHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3OTEzMQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAg
ICAgICBFdmVyeSB0aW1lIGEgPHZpZGVvPiBiYWNrZWQgYnkgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uIGlzIGFza2VkIHRvIHBhaW50LCBpdCBpcyBmaXJzdAorICAgICAgICBxdWVyaWVk
IHdoZXRoZXIgaXQgaGFzIGEgc2luZ2xlIHNlY3VyaXR5IG9yaWdpbi4gVG8gZG8gdGhpcywgdGhl
IG1lZGlhIHBsYXllciBhc2tzCisgICAgICAgIEFWRm91bmRhdGlvbiB3aGF0IHRoZSAicmVzb2x2
ZWRVUkwiIG9mIHRoZSBhc3NldCBpcy4gVGhpcyBhbnN3ZXIgbmV2ZXIgY2hhbmdlcyBhZnRlcgor
ICAgICAgICBtZXRhZGF0YSBpcyBmaXJzdCBmZXRjaGVkLCBzbyB0aGUgYW5zd2VyIHNob3VsZCBi
ZSBjYWNoZWQuIFRvIGRvIHNvLCBhZGQgYSBtX3Jlc29sdmVkVVJMCisgICAgICAgIGl2YXIgdG8g
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLCBhbmQgYWRkIGEgc2V0UmVzb2x2ZWRVUkwo
KSBhbmQgcmVzb2x2ZWRVUkxDaGFuZ2VkKCkKKyAgICAgICAgbWV0aG9kIHRvIHJlLXF1ZXJ5IHRo
ZSB2YWx1ZS4gQWxzbyBjcmVhdGUgaXZhcnMgZm9yIHRoZSBzZWN1cml0eSBvcmlnaW4gcmF0aGVy
IHRoYW4gcmUtCisgICAgICAgIHBhcnNpbmcgdGhlbSBldmVyeSB0aW1lLgorCisgICAgICAgIERy
aXZlLWJ5IGZpeDogY2xlYW4gdXAgYWxsIHRoZSBpbnN0YW5jZXMgd2hlcmUgd2UgcGFzcyBhIFN0
cmluZyByYXRoZXIgdGhhbiBhIFVSTCAoYW5kIHRodXMKKyAgICAgICAgaGF2ZSB0byByZS1wYXJz
ZSB0aGUgVVJMIGF0IGVhY2ggcG9pbnQpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmxvYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpoYXNTaW5nbGVTZWN1
cml0eU9yaWdpbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb246OnNldFJlc29sdmVkVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bWV0YWRhdGFMb2FkZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRQcmVsb2FkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6cmVzb2x2ZWRVUkwgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6cmVzb2x2ZWRVUkwgY29uc3QpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRjo6cmVzb2x2ZWRVUkxDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldy
YXBwZXI6OmNyZWF0ZUFzc2V0Rm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpyZXNvbHZlZFVSTCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6aGFzU2luZ2xl
U2VjdXJpdHlPcmlnaW4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6Y2Fub25pY2FsVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2l6ZUNo
YW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6Y2Fub25pY2FsVVJMKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omhhc1NpbmdsZVNlY3VyaXR5
T3JpZ2luIGNvbnN0KTogRGVsZXRlZC4KKwogMjAxNy0xMC0yNyAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIE9wdGltaXphdGlvbiB0byBza2lwIHBh
aW50aW5nIGlmIHRleHR1cmUgYW5kIHNvdXJjZSBzdXJmYWNlIGhhc24ndCBjaGFuZ2VkIGlzbid0
IHdvcmtpbmc7IHJlLW9wdGltaXplLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAppbmRleCBiNTVhMWI0M2RmN2JlOTVmNTNkZmE2
OTAwYzM4Zjc2ZWViNjBmZGU5Li40MzZjN2UwOGJkZDA4YjQ4OTkzNWJkYjFkZTViOGYyMjRjMzQ0
OTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uLmNwcApAQCAtMTcyLDcgKzE3Miw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uOjpsb2FkKGNvbnN0IFN0cmluZyYgdXJsKQogICAgIHNldE5ldHdvcmtTdGF0
ZShtX3ByZWxvYWQgPT0gTWVkaWFQbGF5ZXI6Ok5vbmUgPyBNZWRpYVBsYXllcjo6SWRsZSA6IE1l
ZGlhUGxheWVyOjpMb2FkaW5nKTsKICAgICBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpIYXZl
Tm90aGluZyk7CiAKLSAgICBtX2Fzc2V0VVJMID0gdXJsOworICAgIG1fYXNzZXRVUkwgPSBVUkwo
UGFyc2VkVVJMU3RyaW5nLCB1cmwpOworICAgIG1fcmVxdWVzdGVkT3JpZ2luID0gU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZShtX2Fzc2V0VVJMKTsKIAogICAgIC8vIERvbid0IGRvIGFueSBtb3JlIHdv
cmsgaWYgdGhlIHVybCBpcyBlbXB0eS4KICAgICBpZiAoIXVybC5sZW5ndGgoKSkKQEAgLTQ4Miw2
ICs0ODMsMTkgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnN1cHBvcnRz
RnVsbHNjcmVlbigpIGNvbnN0CiAjZW5kaWYKIH0KIAorYm9vbCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb246Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QKK3sKKyAgICBpZiAo
bV9yZXNvbHZlZE9yaWdpbiAmJiBtX3JlcXVlc3RlZE9yaWdpbikKKyAgICAgICAgcmV0dXJuIG1f
cmVzb2x2ZWRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KCptX3JlcXVlc3RlZE9yaWdpbik7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbjo6c2V0UmVzb2x2ZWRVUkwoVVJMJiYgcmVzb2x2ZWRVUkwpCit7CisgICAgbV9yZXNvbHZl
ZFVSTCA9IFdURk1vdmUocmVzb2x2ZWRVUkwpOworICAgIG1fcmVzb2x2ZWRPcmlnaW4gPSBTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlKG1fcmVzb2x2ZWRVUkwpOworfQorCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbjo6dXBkYXRlU3RhdGVzKCkKIHsKICAgICBpZiAobV9pZ25vcmVM
b2FkU3RhdGVDaGFuZ2VzKQpAQCAtNjExLDYgKzYyNSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uOjpzZXRTaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKGJvb2wgbWFpbnRh
aW5BCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bWV0YWRhdGFMb2FkZWQo
KQogewogICAgIG1fbG9hZGluZ01ldGFkYXRhID0gZmFsc2U7CisgICAgcmVzb2x2ZWRVUkxDaGFu
Z2VkKCk7CiAgICAgdHJhY2tzQ2hhbmdlZCgpOwogfQogCkBAIC03MjAsNyArNzM1LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFByZWxvYWQoTWVkaWFQbGF5ZXI6
OlByZWxvYWQgcHJlbG9hZCkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICIgLSAi
LCBzdGF0aWNfY2FzdDxpbnQ+KHByZWxvYWQpKTsKICAgICBtX3ByZWxvYWQgPSBwcmVsb2FkOwot
ICAgIGlmICghbV9hc3NldFVSTC5sZW5ndGgoKSkKKyAgICBpZiAobV9hc3NldFVSTC5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIHNldERlbGF5Q2FsbGJhY2tzKHRydWUpOwpAQCAt
MTA0NSwxNCArMTA2MCw2IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpl
eHRyYWN0S2V5VVJJS2V5SURBbmRDZXJ0aWZpY2F0ZUZyb21Jbml0RGF0CiB9CiAjZW5kaWYKIAot
VVJMIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6cmVzb2x2ZWRVUkwoKSBjb25zdAot
ewotICAgIGlmICghbV9hc3NldFVSTC5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIFVSTCgpOwot
Ci0gICAgcmV0dXJuIFVSTChQYXJzZWRVUkxTdHJpbmcsIG1fYXNzZXRVUkwpOwotfQotCiBib29s
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6Y2FuU2F2ZU1lZGlhRGF0YSgpIGNvbnN0
CiB7CiAgICAgVVJMIHVybCA9IHJlc29sdmVkVVJMKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggNWU0ODUyNWI3N2RlZjVk
NzViNzFlMjk2NGVjZjkyMDA2Yzc2ZjlhOS4uN2MxNzI3MjliMDRiOTIyYWQ5MGZlNzdhOGY0ODNj
OTUwMDM5ZDRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24uaApAQCAtMjE5LDggKzIxOSwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9v
bCBzdXBwb3J0c1NjYW5uaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IHVuc2lnbmVkIGxvbmcgbG9uZyBmaWxlU2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRv
dGFsQnl0ZXMoKTsgfQogCisgICAgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0
IG92ZXJyaWRlOworCiAgICAgLy8gUmVxdWlyZWQgaW50ZXJmYWNlcyBmb3IgY29uY3JldGUgZGVy
aXZlZCBjbGFzc2VzLgotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0
IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQVZBc3NldEZvclVSTChjb25z
dCBVUkwmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUFWUGxheWVyKCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBjcmVhdGVBVlBsYXllckl0ZW0oKSA9IDA7CiAKQEAgLTI3NCw2ICsyNzYs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIGhhc0xheWVyUmVuZGVyZXIoKSBjb25z
dCA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlkZW9MYXllckdyYXZpdHkoKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHJlc29sdmVkVVJMQ2hhbmdlZCgpID0gMDsKIAogICAgIHN0YXRp
YyBib29sIGlzVW5zdXBwb3J0ZWRNSU1FVHlwZShjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMg
Y29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN0YXRpY01J
TUVUeXBlTGlzdCgpOwpAQCAtMzI2LDcgKzMyOSw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNs
ZWFyVGV4dFRyYWNrcygpOwogICAgIFZlY3RvcjxSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUFWRj4+IG1fdGV4dFRyYWNrczsKIAotICAgIHZpcnR1YWwgVVJMIHJlc29sdmVkVVJMKCkgY29u
c3Q7CisgICAgdm9pZCBzZXRSZXNvbHZlZFVSTChVUkwmJik7CisgICAgY29uc3QgVVJMJiByZXNv
bHZlZFVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRVUkw7IH0KIAogcHJpdmF0ZToKICAg
ICBNZWRpYVBsYXllciogbV9wbGF5ZXI7CkBAIC0zNDMsNyArMzQ3LDExIEBAIHByaXZhdGU6CiAg
ICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBtX25ldHdvcmtTdGF0ZTsKICAgICBNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGU7CiAKLSAgICBTdHJpbmcgbV9hc3NldFVSTDsK
KyAgICBVUkwgbV9hc3NldFVSTDsKKyAgICBVUkwgbV9yZXNvbHZlZFVSTDsKKyAgICBSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+IG1fcmVxdWVzdGVkT3JpZ2luOworICAgIFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4gbV9yZXNvbHZlZE9yaWdpbjsKKwogICAgIE1lZGlhUGxheWVyOjpQcmVsb2FkIG1fcHJl
bG9hZDsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKaW5kZXgg
NjhhZGMzZDZhYzc5YTIyNjBkMmE5OTU3NmFlZGFkMTY2MDcxM2Y5ZC4uOTBjNmZjNDY3YTk2YTYx
MDU5N2VkOWQ0YmQ2OGFmNjc4OTk3ODkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC0xMTEwLDYg
KzExMTAsMTQgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6c2l6ZUNo
YW5nZWQoKQogICAgIHNldE5hdHVyYWxTaXplKEludFNpemUobmF0dXJhbFNpemUpKTsKIH0KIAor
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6cmVzb2x2ZWRVUkxDaGFuZ2Vk
KCkKK3sKKyAgICBpZiAobV9hdmZXcmFwcGVyICYmIG1fYXZmV3JhcHBlci0+YXZBc3NldCgpKQor
ICAgICAgICBzZXRSZXNvbHZlZFVSTChhZG9wdENGKEFWQ0ZBc3NldENvcHlSZXNvbHZlZFVSTCht
X2F2ZldyYXBwZXItPmF2QXNzZXQoKSkpKTsKKyAgICBlbHNlCisgICAgICAgIHNldFJlc29sdmVk
VVJMKHsgfSk7Cit9CisKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJl
cXVpcmVzSW1tZWRpYXRlQ29tcG9zaXRpbmcoKSBjb25zdAogewogICAgIC8vIFRoZSBBVkZvdW5k
YXRpb25DRiBwbGF5ZXIgbmVlZHMgdG8gaGF2ZSB0aGUgcm9vdCBjb21wb3NpdG9yIGF2YWlsYWJs
ZSBhdCBjb25zdHJ1Y3Rpb24gdGltZQpAQCAtMTM0MiwyNiArMTM1MCw2IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmNvbnRlbnRzTmVlZHNEaXNwbGF5KCkKICAgICAg
ICAgbV9hdmZXcmFwcGVyLT5zZXRWaWRlb0xheWVyTmVlZHNDb21taXQoKTsKIH0KIAotVVJMIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpyZXNvbHZlZFVSTCgpIGNvbnN0Ci17Ci0g
ICAgaWYgKCFtX2F2ZldyYXBwZXIgfHwgIW1fYXZmV3JhcHBlci0+YXZBc3NldCgpKQotICAgICAg
ICByZXR1cm4gVVJMKCk7Ci0KLSAgICBhdXRvIHJlc29sdmVkVVJMID0gYWRvcHRDRihBVkNGQXNz
ZXRDb3B5UmVzb2x2ZWRVUkwobV9hdmZXcmFwcGVyLT5hdkFzc2V0KCkpKTsKLQotICAgIHJldHVy
biBVUkwocmVzb2x2ZWRVUkwuZ2V0KCkpOwotfQotCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGOjpoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0Ci17Ci0gICAgaWYg
KCFtX2F2ZldyYXBwZXIgfHwgIW1fYXZmV3JhcHBlci0+YXZBc3NldCgpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBSZWY8U2VjdXJpdHlPcmlnaW4+IHJlc29sdmVkT3JpZ2luKFNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGUocmVzb2x2ZWRVUkwoKSkpOwotICAgIFJlZjxTZWN1cml0eU9yaWdp
bj4gcmVxdWVzdGVkT3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGFzc2V0
VVJMKCkpKTsKLSAgICByZXR1cm4gcmVzb2x2ZWRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0
KHJlcXVlc3RlZE9yaWdpbi5nZXQoKSk7Ci19Ci0KIEFWRldyYXBwZXI6OkFWRldyYXBwZXIoTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YqIG93bmVyKQogICAgIDogbV9vd25lcihvd25l
cikKICAgICAsIG1fb2JqZWN0SUQoc19uZXh0QVZGV3JhcHBlck9iamVjdElEKyspCkBAIC0xNTEw
LDExICsxNDk4LDExIEBAIHZvaWQgQVZGV3JhcHBlcjo6ZGlzY29ubmVjdEFuZERlbGV0ZUFWRldy
YXBwZXIodm9pZCogY29udGV4dCkKICAgICBkaXNwYXRjaF9hc3luY19mKGRpc3BhdGNoX2dldF9t
YWluX3F1ZXVlKCksIGNvbnRleHQsIGRlc3Ryb3lBVkZXcmFwcGVyKTsKIH0KIAotdm9pZCBBVkZX
cmFwcGVyOjpjcmVhdGVBc3NldEZvclVSTChjb25zdCBTdHJpbmcmIHVybCwgYm9vbCBpbmhlcml0
VVJJKQordm9pZCBBVkZXcmFwcGVyOjpjcmVhdGVBc3NldEZvclVSTChjb25zdCBVUkwmIHVybCwg
Ym9vbCBpbmhlcml0VVJJKQogewogICAgIEFTU0VSVCghYXZBc3NldCgpKTsKIAotICAgIFJldGFp
blB0cjxDRlVSTFJlZj4gdXJsUmVmID0gVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKS5jcmVhdGVD
RlVSTCgpOworICAgIFJldGFpblB0cjxDRlVSTFJlZj4gdXJsUmVmID0gdXJsLmNyZWF0ZUNGVVJM
KCk7CiAKICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4gb3B0aW9uc1JlZiA9
IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAw
LCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVl
Q2FsbEJhY2tzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKaW5kZXggNTQwNTAzMGMwZWZmY2ZmNWIwYmE2Zjgw
MjI3MjQ2NjRmNDZlNjg3ZS4uMDVkNDIzZDg4MmY2ZGNhNjRjMjIxZmFkM2Q4YTlkNmZhOTM1NDg1
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
fk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGKCk7CiAKICAgICB2b2lkIHRyYWNrc0No
YW5nZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc29sdmVkVVJMQ2hhbmdlZCgpIG92ZXJyaWRl
OwogCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fTE9BREVSX0RFTEVHQVRFKQogICAgIGJvb2wgc2hv
dWxkV2FpdEZvckxvYWRpbmdPZlJlc291cmNlKEFWQ0ZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVl
c3RSZWYpOwpAQCAtODMsNyArODQsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGNy
ZWF0ZUFWUGxheWVyKCk7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUFWUGxheWVySXRlbSgpOwot
ICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsKTsK
KyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQVZBc3NldEZvclVSTChjb25zdCBVUkwmKTsKICAgICB2
aXJ0dWFsIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6SXRlbVN0YXR1cyBwbGF5ZXJJ
dGVtU3RhdHVzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb246OkFzc2V0U3RhdHVzIGFzc2V0U3RhdHVzKCkgY29uc3Q7CiAKQEAgLTExNiwxMCArMTE3
LDYgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c05lZWRzRGlzcGxheSgp
OwogCi0gICAgVVJMIHJlc29sdmVkVVJMKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICBib29sIGhh
c1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KICNpZiBFTkFCTEUoTEVH
QUNZX0VOQ1JZUFRFRF9NRURJQSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGVnYWN5Q0RNU2Vzc2lv
bj4gY3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmLCBMZWdhY3lDRE1TZXNzaW9uQ2xpZW50Kikg
b3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCA2YWIwMzJiOTUzN2Zj
MGU2N2E5ZWM0OGMyNTMxNDRkM2Q3OWJkMWVhLi5kYTQwZDJlYTg3YTkwZTY5YTU3NTBhZWE4YWUw
ZTRhNmY0ZmRjMjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0yMDUsNyArMjA1LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZUFWUGxheWVyKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBj
cmVhdGVBVlBsYXllckl0ZW0oKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQVZQ
bGF5ZXJMYXllcigpOwotICAgIHZvaWQgY3JlYXRlQVZBc3NldEZvclVSTChjb25zdCBTdHJpbmcm
IHVybCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFVSTCYg
dXJsKSBvdmVycmlkZTsKICAgICBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Okl0ZW1T
dGF0dXMgcGxheWVySXRlbVN0YXR1cygpIGNvbnN0IG92ZXJyaWRlOwogICAgIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbjo6QXNzZXRTdGF0dXMgYXNzZXRTdGF0dXMoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBsb25nIGFzc2V0RXJyb3JDb2RlKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0yMjYs
NiArMjI2LDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVRpbWUgcGxhdGZvcm1NYXhUaW1lTG9hZGVk
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBiZWdpbkxvYWRpbmdNZXRhZGF0YSgpIG92ZXJy
aWRlOwogICAgIHZvaWQgc2l6ZUNoYW5nZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc29sdmVk
VVJMQ2hhbmdlZCgpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBoYXNBdmFpbGFibGVWaWRlb0ZyYW1l
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKQEAgLTI0MCw3ICsyNDEsNiBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCB1cGRhdGVWaWRlb0xheWVyR3Jhdml0eSgpIG92ZXJyaWRlOwogCi0gICAgYm9vbCBoYXNT
aW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgZGlkUGFzc0NP
UlNBY2Nlc3NDaGVjaygpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTWVkaWFUaW1lIGdldFN0YXJ0
RGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtMzMwLDggKzMzMCw2IEBAIHByaXZhdGU6CiAgICAg
ZG91YmxlIG1heEZhc3RGb3J3YXJkUmF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2Fj
aGVkQ2FuUGxheUZhc3RGb3J3YXJkID8gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZp
bml0eSgpIDogMi4wOyB9CiAgICAgZG91YmxlIG1pbkZhc3RSZXZlcnNlUmF0ZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fY2FjaGVkQ2FuUGxheUZhc3RSZXZlcnNlID8gLXN0ZDo6bnVtZXJp
Y19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSA6IDAuMDsgfQogCi0gICAgVVJMIHJlc29sdmVk
VVJMKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KICAgICBWZWN0b3I8U3RyaW5nPiBwcmVmZXJyZWRBdWRp
b0NoYXJhY3RlcmlzdGljcygpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRTaG91bGREaXNhYmxlU2xl
ZXAoYm9vbCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAwZGE5YjVmZTIy
MWNhNWUzM2Q3MGMzNGYxMTRkNjkxMDkyMDFiYTQyLi4xNjhmODAzZTlmZDFlNTg0NTgyN2YzZjVm
ZjhlMjdhNmIxM2IxYTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTg3Myw5ICs4NzMs
OSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN5bmNocm9uaXpl
VGV4dFRyYWNrU3RhdGUoKQogI2VuZGlmCiAKIAotc3RhdGljIE5TVVJMICpjYW5vbmljYWxVUkwo
Y29uc3QgU3RyaW5nJiB1cmwpCitzdGF0aWMgTlNVUkwgKmNhbm9uaWNhbFVSTChjb25zdCBVUkwm
IHVybCkKIHsKLSAgICBOU1VSTCAqY29jb2FVUkwgPSBVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwp
OworICAgIE5TVVJMICpjb2NvYVVSTCA9IHVybDsKICAgICBpZiAodXJsLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuIGNvY29hVVJMOwogCkBAIC05MTAsNyArOTEwLDcgQEAgc3RhdGljIE5TSFRU
UENvb2tpZSogdG9OU0hUVFBDb29raWUoY29uc3QgQ29va2llJiBjb29raWUpCiB9CiAjZW5kaWYK
IAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0
Rm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFVSTCYgdXJsKQogewogICAgIGlm
IChtX2F2QXNzZXQpCiAgICAgICAgIHJldHVybjsKQEAgLTk5MCw3ICs5OTAsNyBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29u
c3QgU3RyaW5nJiB1cmwpCiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgVmVjdG9yPENvb2tpZT4g
Y29va2llczsKLSAgICBpZiAocGxheWVyKCktPmdldFJhd0Nvb2tpZXMoVVJMKFBhcnNlZFVSTFN0
cmluZywgdXJsKSwgY29va2llcykpIHsKKyAgICBpZiAocGxheWVyKCktPmdldFJhd0Nvb2tpZXMo
dXJsLCBjb29raWVzKSkgewogICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IG5zQ29v
a2llcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpj
b29raWVzLnNpemUoKV0pOwogICAgICAgICBmb3IgKGF1dG8mIGNvb2tpZSA6IGNvb2tpZXMpCiAg
ICAgICAgICAgICBbbnNDb29raWVzIGFkZE9iamVjdDp0b05TSFRUUENvb2tpZShjb29raWUpXTsK
QEAgLTIyODYsMTUgKzIyODYsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpzaXplQ2hhbmdlZCgpCiAKICAgICBzZXROYXR1cmFsU2l6ZShtX2NhY2hlZFByZXNl
bnRhdGlvblNpemUpOwogfQotICAgIAotYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0IAorCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnJlc29sdmVkVVJMQ2hhbmdlZCgpCiB7Ci0gICAg
aWYgKCFtX2F2QXNzZXQgfHwgW21fYXZBc3NldCBzdGF0dXNPZlZhbHVlRm9yS2V5OkAicmVzb2x2
ZWRVUkwiIGVycm9yOm51bGxwdHJdICE9IEFWS2V5VmFsdWVTdGF0dXNMb2FkZWQpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBSZWY8U2VjdXJpdHlPcmlnaW4+IHJlc29sdmVkT3Jp
Z2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUocmVzb2x2ZWRVUkwoKSkpOwotICAgIFJlZjxTZWN1
cml0eU9yaWdpbj4gcmVxdWVzdGVkT3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3Ry
aW5nKGFzc2V0VVJMKCkpKTsKLSAgICByZXR1cm4gcmVzb2x2ZWRPcmlnaW4tPmlzU2FtZVNjaGVt
ZUhvc3RQb3J0KHJlcXVlc3RlZE9yaWdpbi5nZXQoKSk7CisgICAgc2V0UmVzb2x2ZWRVUkwobV9h
dkFzc2V0ID8gVVJMKFttX2F2QXNzZXQgcmVzb2x2ZWRVUkxdKSA6IFVSTCgpKTsKIH0KIAogYm9v
bCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkaWRQYXNzQ09SU0FjY2Vzc0No
ZWNrKCkgY29uc3QKQEAgLTMyOTIsMTQgKzMyODcsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNhblBsYXlGYXN0UmV2ZXJzZURpZENoYW5nZShib29sIG5ld1Zh
bAogICAgIG1fY2FjaGVkQ2FuUGxheUZhc3RSZXZlcnNlID0gbmV3VmFsdWU7CiB9CiAKLVVSTCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpyZXNvbHZlZFVSTCgpIGNvbnN0Ci17
Ci0gICAgaWYgKCFtX2F2QXNzZXQgfHwgW21fYXZBc3NldCBzdGF0dXNPZlZhbHVlRm9yS2V5OkAi
cmVzb2x2ZWRVUkwiIGVycm9yOm51bGxwdHJdICE9IEFWS2V5VmFsdWVTdGF0dXNMb2FkZWQpCi0g
ICAgICAgIHJldHVybiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnJlc29sdmVkVVJM
KCk7Ci0KLSAgICByZXR1cm4gVVJMKFttX2F2QXNzZXQgcmVzb2x2ZWRVUkxdKTsKLX0KLQogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRTaG91bGREaXNhYmxlU2xl
ZXAoYm9vbCBmbGFnKQogewogI2lmIFBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKElPU19TSU1V
TEFUT1IpCg==
</data>
<flag name="commit-queue"
          id="345060"
          type_id="3"
          status="+"
          setter="jer.noble"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325631</attachid>
            <date>2017-11-01 14:25:39 -0700</date>
            <delta_ts>2017-11-01 14:42:02 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-179131-20171101142538.patch</filename>
            <type>text/plain</type>
            <size>16191</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTJjZjUxMGUxZDAwYmJh
ZWFjMzQ4NWUyYmViZmFjMjE5MTc4YThjMC4uYjA1NWIwNWZkOGE2ZTRjYTE5MTgwZjhlYWE1YWYx
ZDM4NGJiMTQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE3LTExLTAxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtQZXJmb3JtYW5jZV0gUGFp
bnRpbmcgPHZpZGVvPiB0byBjYW52YXMgc3BlbmRzIGEgbG90IG9mIHRpbWUgaW4gVVJMIGdldHRp
bmcgYW5kIHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3OTEzMQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAg
ICAgICBFdmVyeSB0aW1lIGEgPHZpZGVvPiBiYWNrZWQgYnkgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uIGlzIGFza2VkIHRvIHBhaW50LCBpdCBpcyBmaXJzdAorICAgICAgICBxdWVyaWVk
IHdoZXRoZXIgaXQgaGFzIGEgc2luZ2xlIHNlY3VyaXR5IG9yaWdpbi4gVG8gZG8gdGhpcywgdGhl
IG1lZGlhIHBsYXllciBhc2tzCisgICAgICAgIEFWRm91bmRhdGlvbiB3aGF0IHRoZSAicmVzb2x2
ZWRVUkwiIG9mIHRoZSBhc3NldCBpcy4gVGhpcyBhbnN3ZXIgbmV2ZXIgY2hhbmdlcyBhZnRlcgor
ICAgICAgICBtZXRhZGF0YSBpcyBmaXJzdCBmZXRjaGVkLCBzbyB0aGUgYW5zd2VyIHNob3VsZCBi
ZSBjYWNoZWQuIFRvIGRvIHNvLCBhZGQgYSBtX3Jlc29sdmVkVVJMCisgICAgICAgIGl2YXIgdG8g
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLCBhbmQgYWRkIGEgc2V0UmVzb2x2ZWRVUkwo
KSBhbmQgcmVzb2x2ZWRVUkxDaGFuZ2VkKCkKKyAgICAgICAgbWV0aG9kIHRvIHJlLXF1ZXJ5IHRo
ZSB2YWx1ZS4gQWxzbyBjcmVhdGUgaXZhcnMgZm9yIHRoZSBzZWN1cml0eSBvcmlnaW4gcmF0aGVy
IHRoYW4gcmUtCisgICAgICAgIHBhcnNpbmcgdGhlbSBldmVyeSB0aW1lLgorCisgICAgICAgIERy
aXZlLWJ5IGZpeDogY2xlYW4gdXAgYWxsIHRoZSBpbnN0YW5jZXMgd2hlcmUgd2UgcGFzcyBhIFN0
cmluZyByYXRoZXIgdGhhbiBhIFVSTCAoYW5kIHRodXMKKyAgICAgICAgaGF2ZSB0byByZS1wYXJz
ZSB0aGUgVVJMIGF0IGVhY2ggcG9pbnQpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmxvYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpoYXNTaW5nbGVTZWN1
cml0eU9yaWdpbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb246OnNldFJlc29sdmVkVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bWV0YWRhdGFMb2FkZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRQcmVsb2FkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6cmVzb2x2ZWRVUkwgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6cmVzb2x2ZWRVUkwgY29uc3QpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRjo6cmVzb2x2ZWRVUkxDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkFWRldy
YXBwZXI6OmNyZWF0ZUFzc2V0Rm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpyZXNvbHZlZFVSTCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6aGFzU2luZ2xl
U2VjdXJpdHlPcmlnaW4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6Y2Fub25pY2FsVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2l6ZUNo
YW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6Y2Fub25pY2FsVVJMKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omhhc1NpbmdsZVNlY3VyaXR5
T3JpZ2luIGNvbnN0KTogRGVsZXRlZC4KKwogMjAxNy0xMC0yNyAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIE9wdGltaXphdGlvbiB0byBza2lwIHBh
aW50aW5nIGlmIHRleHR1cmUgYW5kIHNvdXJjZSBzdXJmYWNlIGhhc24ndCBjaGFuZ2VkIGlzbid0
IHdvcmtpbmc7IHJlLW9wdGltaXplLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAppbmRleCBiNTVhMWI0M2RmN2JlOTVmNTNkZmE2
OTAwYzM4Zjc2ZWViNjBmZGU5Li40MzZjN2UwOGJkZDA4YjQ4OTkzNWJkYjFkZTViOGYyMjRjMzQ0
OTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uLmNwcApAQCAtMTcyLDcgKzE3Miw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uOjpsb2FkKGNvbnN0IFN0cmluZyYgdXJsKQogICAgIHNldE5ldHdvcmtTdGF0
ZShtX3ByZWxvYWQgPT0gTWVkaWFQbGF5ZXI6Ok5vbmUgPyBNZWRpYVBsYXllcjo6SWRsZSA6IE1l
ZGlhUGxheWVyOjpMb2FkaW5nKTsKICAgICBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpIYXZl
Tm90aGluZyk7CiAKLSAgICBtX2Fzc2V0VVJMID0gdXJsOworICAgIG1fYXNzZXRVUkwgPSBVUkwo
UGFyc2VkVVJMU3RyaW5nLCB1cmwpOworICAgIG1fcmVxdWVzdGVkT3JpZ2luID0gU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZShtX2Fzc2V0VVJMKTsKIAogICAgIC8vIERvbid0IGRvIGFueSBtb3JlIHdv
cmsgaWYgdGhlIHVybCBpcyBlbXB0eS4KICAgICBpZiAoIXVybC5sZW5ndGgoKSkKQEAgLTQ4Miw2
ICs0ODMsMTkgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnN1cHBvcnRz
RnVsbHNjcmVlbigpIGNvbnN0CiAjZW5kaWYKIH0KIAorYm9vbCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb246Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QKK3sKKyAgICBpZiAo
bV9yZXNvbHZlZE9yaWdpbiAmJiBtX3JlcXVlc3RlZE9yaWdpbikKKyAgICAgICAgcmV0dXJuIG1f
cmVzb2x2ZWRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KCptX3JlcXVlc3RlZE9yaWdpbik7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbjo6c2V0UmVzb2x2ZWRVUkwoVVJMJiYgcmVzb2x2ZWRVUkwpCit7CisgICAgbV9yZXNvbHZl
ZFVSTCA9IFdURk1vdmUocmVzb2x2ZWRVUkwpOworICAgIG1fcmVzb2x2ZWRPcmlnaW4gPSBTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlKG1fcmVzb2x2ZWRVUkwpOworfQorCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbjo6dXBkYXRlU3RhdGVzKCkKIHsKICAgICBpZiAobV9pZ25vcmVM
b2FkU3RhdGVDaGFuZ2VzKQpAQCAtNjExLDYgKzYyNSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uOjpzZXRTaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKGJvb2wgbWFpbnRh
aW5BCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bWV0YWRhdGFMb2FkZWQo
KQogewogICAgIG1fbG9hZGluZ01ldGFkYXRhID0gZmFsc2U7CisgICAgcmVzb2x2ZWRVUkxDaGFu
Z2VkKCk7CiAgICAgdHJhY2tzQ2hhbmdlZCgpOwogfQogCkBAIC03MjAsNyArNzM1LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFByZWxvYWQoTWVkaWFQbGF5ZXI6
OlByZWxvYWQgcHJlbG9hZCkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICIgLSAi
LCBzdGF0aWNfY2FzdDxpbnQ+KHByZWxvYWQpKTsKICAgICBtX3ByZWxvYWQgPSBwcmVsb2FkOwot
ICAgIGlmICghbV9hc3NldFVSTC5sZW5ndGgoKSkKKyAgICBpZiAobV9hc3NldFVSTC5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIHNldERlbGF5Q2FsbGJhY2tzKHRydWUpOwpAQCAt
MTA0NSwxNCArMTA2MCw2IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpl
eHRyYWN0S2V5VVJJS2V5SURBbmRDZXJ0aWZpY2F0ZUZyb21Jbml0RGF0CiB9CiAjZW5kaWYKIAot
VVJMIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6cmVzb2x2ZWRVUkwoKSBjb25zdAot
ewotICAgIGlmICghbV9hc3NldFVSTC5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIFVSTCgpOwot
Ci0gICAgcmV0dXJuIFVSTChQYXJzZWRVUkxTdHJpbmcsIG1fYXNzZXRVUkwpOwotfQotCiBib29s
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6Y2FuU2F2ZU1lZGlhRGF0YSgpIGNvbnN0
CiB7CiAgICAgVVJMIHVybCA9IHJlc29sdmVkVVJMKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggNWU0ODUyNWI3N2RlZjVk
NzViNzFlMjk2NGVjZjkyMDA2Yzc2ZjlhOS4uN2MxNzI3MjliMDRiOTIyYWQ5MGZlNzdhOGY0ODNj
OTUwMDM5ZDRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24uaApAQCAtMjE5LDggKzIxOSwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9v
bCBzdXBwb3J0c1NjYW5uaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IHVuc2lnbmVkIGxvbmcgbG9uZyBmaWxlU2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRv
dGFsQnl0ZXMoKTsgfQogCisgICAgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0
IG92ZXJyaWRlOworCiAgICAgLy8gUmVxdWlyZWQgaW50ZXJmYWNlcyBmb3IgY29uY3JldGUgZGVy
aXZlZCBjbGFzc2VzLgotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0
IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQVZBc3NldEZvclVSTChjb25z
dCBVUkwmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUFWUGxheWVyKCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBjcmVhdGVBVlBsYXllckl0ZW0oKSA9IDA7CiAKQEAgLTI3NCw2ICsyNzYs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIGhhc0xheWVyUmVuZGVyZXIoKSBjb25z
dCA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlkZW9MYXllckdyYXZpdHkoKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHJlc29sdmVkVVJMQ2hhbmdlZCgpID0gMDsKIAogICAgIHN0YXRp
YyBib29sIGlzVW5zdXBwb3J0ZWRNSU1FVHlwZShjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMg
Y29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN0YXRpY01J
TUVUeXBlTGlzdCgpOwpAQCAtMzI2LDcgKzMyOSw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNs
ZWFyVGV4dFRyYWNrcygpOwogICAgIFZlY3RvcjxSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUFWRj4+IG1fdGV4dFRyYWNrczsKIAotICAgIHZpcnR1YWwgVVJMIHJlc29sdmVkVVJMKCkgY29u
c3Q7CisgICAgdm9pZCBzZXRSZXNvbHZlZFVSTChVUkwmJik7CisgICAgY29uc3QgVVJMJiByZXNv
bHZlZFVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRVUkw7IH0KIAogcHJpdmF0ZToKICAg
ICBNZWRpYVBsYXllciogbV9wbGF5ZXI7CkBAIC0zNDMsNyArMzQ3LDExIEBAIHByaXZhdGU6CiAg
ICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBtX25ldHdvcmtTdGF0ZTsKICAgICBNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGU7CiAKLSAgICBTdHJpbmcgbV9hc3NldFVSTDsK
KyAgICBVUkwgbV9hc3NldFVSTDsKKyAgICBVUkwgbV9yZXNvbHZlZFVSTDsKKyAgICBSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+IG1fcmVxdWVzdGVkT3JpZ2luOworICAgIFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4gbV9yZXNvbHZlZE9yaWdpbjsKKwogICAgIE1lZGlhUGxheWVyOjpQcmVsb2FkIG1fcHJl
bG9hZDsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKaW5kZXgg
NjhhZGMzZDZhYzc5YTIyNjBkMmE5OTU3NmFlZGFkMTY2MDcxM2Y5ZC4uOTBjNmZjNDY3YTk2YTYx
MDU5N2VkOWQ0YmQ2OGFmNjc4OTk3ODkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC0xMTEwLDYg
KzExMTAsMTQgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6c2l6ZUNo
YW5nZWQoKQogICAgIHNldE5hdHVyYWxTaXplKEludFNpemUobmF0dXJhbFNpemUpKTsKIH0KIAor
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6cmVzb2x2ZWRVUkxDaGFuZ2Vk
KCkKK3sKKyAgICBpZiAobV9hdmZXcmFwcGVyICYmIG1fYXZmV3JhcHBlci0+YXZBc3NldCgpKQor
ICAgICAgICBzZXRSZXNvbHZlZFVSTChhZG9wdENGKEFWQ0ZBc3NldENvcHlSZXNvbHZlZFVSTCht
X2F2ZldyYXBwZXItPmF2QXNzZXQoKSkpKTsKKyAgICBlbHNlCisgICAgICAgIHNldFJlc29sdmVk
VVJMKHsgfSk7Cit9CisKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJl
cXVpcmVzSW1tZWRpYXRlQ29tcG9zaXRpbmcoKSBjb25zdAogewogICAgIC8vIFRoZSBBVkZvdW5k
YXRpb25DRiBwbGF5ZXIgbmVlZHMgdG8gaGF2ZSB0aGUgcm9vdCBjb21wb3NpdG9yIGF2YWlsYWJs
ZSBhdCBjb25zdHJ1Y3Rpb24gdGltZQpAQCAtMTM0MiwyNiArMTM1MCw2IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmNvbnRlbnRzTmVlZHNEaXNwbGF5KCkKICAgICAg
ICAgbV9hdmZXcmFwcGVyLT5zZXRWaWRlb0xheWVyTmVlZHNDb21taXQoKTsKIH0KIAotVVJMIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpyZXNvbHZlZFVSTCgpIGNvbnN0Ci17Ci0g
ICAgaWYgKCFtX2F2ZldyYXBwZXIgfHwgIW1fYXZmV3JhcHBlci0+YXZBc3NldCgpKQotICAgICAg
ICByZXR1cm4gVVJMKCk7Ci0KLSAgICBhdXRvIHJlc29sdmVkVVJMID0gYWRvcHRDRihBVkNGQXNz
ZXRDb3B5UmVzb2x2ZWRVUkwobV9hdmZXcmFwcGVyLT5hdkFzc2V0KCkpKTsKLQotICAgIHJldHVy
biBVUkwocmVzb2x2ZWRVUkwuZ2V0KCkpOwotfQotCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGOjpoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0Ci17Ci0gICAgaWYg
KCFtX2F2ZldyYXBwZXIgfHwgIW1fYXZmV3JhcHBlci0+YXZBc3NldCgpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBSZWY8U2VjdXJpdHlPcmlnaW4+IHJlc29sdmVkT3JpZ2luKFNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGUocmVzb2x2ZWRVUkwoKSkpOwotICAgIFJlZjxTZWN1cml0eU9yaWdp
bj4gcmVxdWVzdGVkT3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGFzc2V0
VVJMKCkpKTsKLSAgICByZXR1cm4gcmVzb2x2ZWRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0
KHJlcXVlc3RlZE9yaWdpbi5nZXQoKSk7Ci19Ci0KIEFWRldyYXBwZXI6OkFWRldyYXBwZXIoTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YqIG93bmVyKQogICAgIDogbV9vd25lcihvd25l
cikKICAgICAsIG1fb2JqZWN0SUQoc19uZXh0QVZGV3JhcHBlck9iamVjdElEKyspCkBAIC0xNTEw
LDExICsxNDk4LDExIEBAIHZvaWQgQVZGV3JhcHBlcjo6ZGlzY29ubmVjdEFuZERlbGV0ZUFWRldy
YXBwZXIodm9pZCogY29udGV4dCkKICAgICBkaXNwYXRjaF9hc3luY19mKGRpc3BhdGNoX2dldF9t
YWluX3F1ZXVlKCksIGNvbnRleHQsIGRlc3Ryb3lBVkZXcmFwcGVyKTsKIH0KIAotdm9pZCBBVkZX
cmFwcGVyOjpjcmVhdGVBc3NldEZvclVSTChjb25zdCBTdHJpbmcmIHVybCwgYm9vbCBpbmhlcml0
VVJJKQordm9pZCBBVkZXcmFwcGVyOjpjcmVhdGVBc3NldEZvclVSTChjb25zdCBVUkwmIHVybCwg
Ym9vbCBpbmhlcml0VVJJKQogewogICAgIEFTU0VSVCghYXZBc3NldCgpKTsKIAotICAgIFJldGFp
blB0cjxDRlVSTFJlZj4gdXJsUmVmID0gVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKS5jcmVhdGVD
RlVSTCgpOworICAgIFJldGFpblB0cjxDRlVSTFJlZj4gdXJsUmVmID0gdXJsLmNyZWF0ZUNGVVJM
KCk7CiAKICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZj4gb3B0aW9uc1JlZiA9
IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAw
LCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVl
Q2FsbEJhY2tzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKaW5kZXggNTQwNTAzMGMwZWZmY2ZmNWIwYmE2Zjgw
MjI3MjQ2NjRmNDZlNjg3ZS4uMDVkNDIzZDg4MmY2ZGNhNjRjMjIxZmFkM2Q4YTlkNmZhOTM1NDg1
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
fk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGKCk7CiAKICAgICB2b2lkIHRyYWNrc0No
YW5nZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc29sdmVkVVJMQ2hhbmdlZCgpIG92ZXJyaWRl
OwogCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fTE9BREVSX0RFTEVHQVRFKQogICAgIGJvb2wgc2hv
dWxkV2FpdEZvckxvYWRpbmdPZlJlc291cmNlKEFWQ0ZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVl
c3RSZWYpOwpAQCAtODMsNyArODQsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGNy
ZWF0ZUFWUGxheWVyKCk7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUFWUGxheWVySXRlbSgpOwot
ICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsKTsK
KyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQVZBc3NldEZvclVSTChjb25zdCBVUkwmKTsKICAgICB2
aXJ0dWFsIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6SXRlbVN0YXR1cyBwbGF5ZXJJ
dGVtU3RhdHVzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb246OkFzc2V0U3RhdHVzIGFzc2V0U3RhdHVzKCkgY29uc3Q7CiAKQEAgLTExNiwxMCArMTE3
LDYgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c05lZWRzRGlzcGxheSgp
OwogCi0gICAgVVJMIHJlc29sdmVkVVJMKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICBib29sIGhh
c1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KICNpZiBFTkFCTEUoTEVH
QUNZX0VOQ1JZUFRFRF9NRURJQSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGVnYWN5Q0RNU2Vzc2lv
bj4gY3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmLCBMZWdhY3lDRE1TZXNzaW9uQ2xpZW50Kikg
b3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCA2YWIwMzJiOTUzN2Zj
MGU2N2E5ZWM0OGMyNTMxNDRkM2Q3OWJkMWVhLi4xNGM5NWE2ZTU2ZTE3MmRiNGExZjNjMzY0NjJi
Mzk0ZjUzOTYyMjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0yMDUsNyArMjA1LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZUFWUGxheWVyKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBj
cmVhdGVBVlBsYXllckl0ZW0oKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQVZQ
bGF5ZXJMYXllcigpOwotICAgIHZvaWQgY3JlYXRlQVZBc3NldEZvclVSTChjb25zdCBTdHJpbmcm
IHVybCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFVSTCYp
IG92ZXJyaWRlOwogICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6SXRlbVN0YXR1
cyBwbGF5ZXJJdGVtU3RhdHVzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uOjpBc3NldFN0YXR1cyBhc3NldFN0YXR1cygpIGNvbnN0IG92ZXJyaWRl
OwogICAgIGxvbmcgYXNzZXRFcnJvckNvZGUoKSBjb25zdCBvdmVycmlkZTsKQEAgLTIyNiw2ICsy
MjYsNyBAQCBwcml2YXRlOgogICAgIE1lZGlhVGltZSBwbGF0Zm9ybU1heFRpbWVMb2FkZWQoKSBj
b25zdCBvdmVycmlkZTsKICAgICB2b2lkIGJlZ2luTG9hZGluZ01ldGFkYXRhKCkgb3ZlcnJpZGU7
CiAgICAgdm9pZCBzaXplQ2hhbmdlZCgpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzb2x2ZWRVUkxD
aGFuZ2VkKCkgb3ZlcnJpZGU7CiAKICAgICBib29sIGhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSBj
b25zdCBvdmVycmlkZTsKIApAQCAtMjQwLDcgKzI0MSw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IHVwZGF0ZVZpZGVvTGF5ZXJHcmF2aXR5KCkgb3ZlcnJpZGU7CiAKLSAgICBib29sIGhhc1Npbmds
ZVNlY3VyaXR5T3JpZ2luKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBkaWRQYXNzQ09SU0Fj
Y2Vzc0NoZWNrKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBNZWRpYVRpbWUgZ2V0U3RhcnREYXRl
KCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0zMzAsOCArMzMwLDYgQEAgcHJpdmF0ZToKICAgICBkb3Vi
bGUgbWF4RmFzdEZvcndhcmRSYXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jYWNoZWRD
YW5QbGF5RmFzdEZvcndhcmQgPyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5
KCkgOiAyLjA7IH0KICAgICBkb3VibGUgbWluRmFzdFJldmVyc2VSYXRlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9jYWNoZWRDYW5QbGF5RmFzdFJldmVyc2UgPyAtc3RkOjpudW1lcmljX2xp
bWl0czxkb3VibGU+OjppbmZpbml0eSgpIDogMC4wOyB9CiAKLSAgICBVUkwgcmVzb2x2ZWRVUkwo
KSBjb25zdCBvdmVycmlkZTsKLQogICAgIFZlY3RvcjxTdHJpbmc+IHByZWZlcnJlZEF1ZGlvQ2hh
cmFjdGVyaXN0aWNzKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFNob3VsZERpc2FibGVTbGVlcChi
b29sKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDBkYTliNWZlMjIxY2E1
ZTMzZDcwYzM0ZjExNGQ2OTEwOTIwMWJhNDIuLjE2OGY4MDNlOWZkMWU1ODQ1ODI3ZjNmNWZmOGUy
N2E2YjEzYjFhMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtODczLDkgKzg3Myw5IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3luY2hyb25pemVUZXh0
VHJhY2tTdGF0ZSgpCiAjZW5kaWYKIAogCi1zdGF0aWMgTlNVUkwgKmNhbm9uaWNhbFVSTChjb25z
dCBTdHJpbmcmIHVybCkKK3N0YXRpYyBOU1VSTCAqY2Fub25pY2FsVVJMKGNvbnN0IFVSTCYgdXJs
KQogewotICAgIE5TVVJMICpjb2NvYVVSTCA9IFVSTChQYXJzZWRVUkxTdHJpbmcsIHVybCk7Cisg
ICAgTlNVUkwgKmNvY29hVVJMID0gdXJsOwogICAgIGlmICh1cmwuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gY29jb2FVUkw7CiAKQEAgLTkxMCw3ICs5MTAsNyBAQCBzdGF0aWMgTlNIVFRQQ29v
a2llKiB0b05TSFRUUENvb2tpZShjb25zdCBDb29raWUmIGNvb2tpZSkKIH0KICNlbmRpZgogCi12
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JV
UkwoY29uc3QgU3RyaW5nJiB1cmwpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1cmwpCiB7CiAgICAgaWYgKG1f
YXZBc3NldCkKICAgICAgICAgcmV0dXJuOwpAQCAtOTkwLDcgKzk5MCw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTChjb25zdCBT
dHJpbmcmIHVybCkKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBWZWN0b3I8Q29va2llPiBjb29r
aWVzOwotICAgIGlmIChwbGF5ZXIoKS0+Z2V0UmF3Q29va2llcyhVUkwoUGFyc2VkVVJMU3RyaW5n
LCB1cmwpLCBjb29raWVzKSkgeworICAgIGlmIChwbGF5ZXIoKS0+Z2V0UmF3Q29va2llcyh1cmws
IGNvb2tpZXMpKSB7CiAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gbnNDb29raWVz
ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OmNvb2tp
ZXMuc2l6ZSgpXSk7CiAgICAgICAgIGZvciAoYXV0byYgY29va2llIDogY29va2llcykKICAgICAg
ICAgICAgIFtuc0Nvb2tpZXMgYWRkT2JqZWN0OnRvTlNIVFRQQ29va2llKGNvb2tpZSldOwpAQCAt
MjI4NiwxNSArMjI4NiwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnNpemVDaGFuZ2VkKCkKIAogICAgIHNldE5hdHVyYWxTaXplKG1fY2FjaGVkUHJlc2VudGF0
aW9uU2l6ZSk7CiB9Ci0gICAgCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgCisKK3ZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cmVzb2x2ZWRVUkxDaGFuZ2VkKCkKIHsKLSAgICBpZiAo
IW1fYXZBc3NldCB8fCBbbV9hdkFzc2V0IHN0YXR1c09mVmFsdWVGb3JLZXk6QCJyZXNvbHZlZFVS
TCIgZXJyb3I6bnVsbHB0cl0gIT0gQVZLZXlWYWx1ZVN0YXR1c0xvYWRlZCkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIAotICAgIFJlZjxTZWN1cml0eU9yaWdpbj4gcmVzb2x2ZWRPcmlnaW4o
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShyZXNvbHZlZFVSTCgpKSk7Ci0gICAgUmVmPFNlY3VyaXR5
T3JpZ2luPiByZXF1ZXN0ZWRPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmco
YXNzZXRVUkwoKSkpOwotICAgIHJldHVybiByZXNvbHZlZE9yaWdpbi0+aXNTYW1lU2NoZW1lSG9z
dFBvcnQocmVxdWVzdGVkT3JpZ2luLmdldCgpKTsKKyAgICBzZXRSZXNvbHZlZFVSTChtX2F2QXNz
ZXQgPyBVUkwoW21fYXZBc3NldCByZXNvbHZlZFVSTF0pIDogVVJMKCkpOwogfQogCiBib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRpZFBhc3NDT1JTQWNjZXNzQ2hlY2so
KSBjb25zdApAQCAtMzI5MiwxNCArMzI4Nyw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6Y2FuUGxheUZhc3RSZXZlcnNlRGlkQ2hhbmdlKGJvb2wgbmV3VmFsCiAg
ICAgbV9jYWNoZWRDYW5QbGF5RmFzdFJldmVyc2UgPSBuZXdWYWx1ZTsKIH0KIAotVVJMIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnJlc29sdmVkVVJMKCkgY29uc3QKLXsKLSAg
ICBpZiAoIW1fYXZBc3NldCB8fCBbbV9hdkFzc2V0IHN0YXR1c09mVmFsdWVGb3JLZXk6QCJyZXNv
bHZlZFVSTCIgZXJyb3I6bnVsbHB0cl0gIT0gQVZLZXlWYWx1ZVN0YXR1c0xvYWRlZCkKLSAgICAg
ICAgcmV0dXJuIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6cmVzb2x2ZWRVUkwoKTsK
LQotICAgIHJldHVybiBVUkwoW21fYXZBc3NldCByZXNvbHZlZFVSTF0pOwotfQotCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNob3VsZERpc2FibGVTbGVlcChi
b29sIGZsYWcpCiB7CiAjaWYgUExBVEZPUk0oSU9TKSAmJiAhUExBVEZPUk0oSU9TX1NJTVVMQVRP
UikK
</data>

          </attachment>
      

    </bug>

</bugzilla>