<?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>179732</bug_id>
          
          <creation_ts>2017-11-15 10:15:29 -0800</creation_ts>
          <short_desc>Log media readyState and networkState as strings</short_desc>
          <delta_ts>2018-01-31 09:36:40 -0800</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>Other</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="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1372003</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-11-15 10:15:29 -0800</bug_when>
    <thetext>Log states as readable strings instead of as integers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372043</commentid>
    <comment_count>1</comment_count>
      <attachid>327000</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-11-15 11:26:35 -0800</bug_when>
    <thetext>Created attachment 327000
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372044</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 11:27:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/35565687&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372426</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-11-15 13:30:53 -0800</bug_when>
    <thetext>Attachment 327000 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/MediaPlayer.cpp:1525:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WebCore/platform/graphics/MediaPlayer.cpp:1545:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WebCore/html/HTMLMediaElement.cpp:266:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WebCore/html/HTMLMediaElement.cpp:283:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 4 in 6 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>1372428</commentid>
    <comment_count>4</comment_count>
      <attachid>327000</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-11-15 13:33:16 -0800</bug_when>
    <thetext>Comment on attachment 327000
Proposed patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:2555
&gt; +            ALWAYS_LOG(LOGIDENTIFIER, &quot;AUTOPLAY BLOCKED, USER GESTURE REQUIRED&quot;);

IIANM, we will have twice the same message here and above.
Would it be possible to disambiguate this with something like Autoplay blocked in future data state, User gesture required?
Also I am not sure we should uppercase the message, or is it to attract the eye?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372451</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-11-15 14:17:39 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #4)
&gt; Comment on attachment 327000 [details]
&gt; Proposed patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=327000&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:2555
&gt; &gt; +            ALWAYS_LOG(LOGIDENTIFIER, &quot;AUTOPLAY BLOCKED, USER GESTURE REQUIRED&quot;);
&gt; 
&gt; IIANM, we will have twice the same message here and above.

No, the first happens when readyState is HAVE_ENOUGH_DATA, the second when it is HAVE_FUTURE_DATA.

&gt; Would it be possible to disambiguate this with something like Autoplay
&gt; blocked in future data state, User gesture required?
&gt; Also I am not sure we should uppercase the message, or is it to attract the
&gt; eye?

Yes, I put it upper case to make it more visible in the log. I suppose it isn&apos;t necessary, I will change back before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372456</commentid>
    <comment_count>6</comment_count>
      <attachid>327025</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-11-15 14:22:03 -0800</bug_when>
    <thetext>Created attachment 327025
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372477</commentid>
    <comment_count>7</comment_count>
      <attachid>327025</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-15 15:25:38 -0800</bug_when>
    <thetext>Comment on attachment 327025
Patch for landing.

Clearing flags on attachment: 327025

Committed r224904: &lt;https://trac.webkit.org/changeset/224904&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327000</attachid>
            <date>2017-11-15 11:26:35 -0800</date>
            <delta_ts>2018-01-31 09:36:33 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>log_state_string_patch_1.txt</filename>
            <type>text/plain</type>
            <size>14183</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDg4NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE3LTExLTE1ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIExvZyBtZWRpYSByZWFk
eVN0YXRlIGFuZCBuZXR3b3JrU3RhdGUgYXMgc3RyaW5ncworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NzMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVEZWxheWVkQWN0aW9uKTogRml4IGxv
Z2ljIGVycm9yLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGVuZGluZ0Fj
dGlvblRpbWVyRmlyZWQpOiBGaXggaW5jb3JyZWN0IGxvZyBzdHJpbmcuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXROZXR3b3JrU3RhdGUpOiBEb24ndCBjYXN0IHRvIGlu
dCBmb3IgbG9nZ2luZy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFJl
YWR5U3RhdGUpOiBEaXR0by4gTG9nIHdoZW4gYXV0b3BsYXkgaXMgYmxvY2tlZC4KKworICAgICAg
ICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudEVudW1zLmg6CisgICAgICAgIChQQUw6OkxvZ0FyZ3Vt
ZW50PFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6UmVhZHlTdGF0ZT46OnRvU3RyaW5n
KTogTmV3LgorICAgICAgICAoUEFMOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50RW51bXM6Ok5ldHdvcmtTdGF0ZT46OnRvU3RyaW5nKTogTmV3LgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVy
dEVudW1lcmF0aW9uVG9TdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyRW51bXMuaDoKKyAgICAgICAgKFBBTDo6TG9nQXJndW1lbnQ8V2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6UmVhZHlTdGF0ZT46OnRvU3RyaW5nKToKKyAgICAgICAgKFBBTDo6TG9nQXJn
dW1lbnQ8V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TmV0d29ya1N0YXRlPjo6dG9TdHJpbmcp
OgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb246OnVwZGF0ZVN0YXRlcyk6IExvZyBzdHJpbmdzLgorCiAyMDE3LTEx
LTE1ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0NhaXJvXSBDbGFuZyB3YXJucyBhYm91dCBtaXNtYXRjaGVkIGRlY2xhcmF0aW9uIHR5cGUg
dGFnIGZvciBHcmFwaGljc0NvbnRleHRTdGF0ZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjQyNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTQsNiArMjU0LDQw
IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBtZWRpYVN0cmVhbUJsb2JQcm90b2MKIAogdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKIAorU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEhU
TUxNZWRpYUVsZW1lbnQ6OlJlYWR5U3RhdGUgZW51bWVyYXRpb25WYWx1ZSkKK3sKKyAgICBzdGF0
aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKKyAgICAgICAgTUFL
RV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhBVkVfTk9USElORyIpLAorICAgICAgICBNQUtFX1NUQVRJ
Q19TVFJJTkdfSU1QTCgiSEFWRV9NRVRBREFUQSIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJ
TkdfSU1QTCgiSEFWRV9DVVJSRU5UX0RBVEEiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5H
X0lNUEwoIkhBVkVfRlVUVVJFX0RBVEEiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lN
UEwoIkhBVkVfRU5PVUdIX0RBVEEiKSwKKyAgICB9OworICAgIHN0YXRpY19hc3NlcnQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihIVE1MTWVkaWFFbGVtZW50RW51bXM6OkhBVkVfTk9USElORykgPT0gMCwg
IkhUTUxNZWRpYUVsZW1lbnQ6OkhBVkVfTk9USElORyBpcyBub3QgMCBhcyBleHBlY3RlZCIpOwor
ICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihIVE1MTWVkaWFFbGVtZW50RW51
bXM6OkhBVkVfTUVUQURBVEEpID09IDEsICJIVE1MTWVkaWFFbGVtZW50OjpIQVZFX01FVEFEQVRB
IGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxz
aXplX3Q+KEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6SEFWRV9DVVJSRU5UX0RBVEEpID09IDIsICJI
VE1MTWVkaWFFbGVtZW50OjpIQVZFX0NVUlJFTlRfREFUQSBpcyBub3QgMiBhcyBleHBlY3RlZCIp
OworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihIVE1MTWVkaWFFbGVtZW50
RW51bXM6OkhBVkVfRlVUVVJFX0RBVEEpID09IDMsICJIVE1MTWVkaWFFbGVtZW50OjpIQVZFX0ZV
VFVSRV9EQVRBIGlzIG5vdCAzIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0
aWNfY2FzdDxzaXplX3Q+KEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6SEFWRV9FTk9VR0hfREFUQSkg
PT0gNCwgIkhUTUxNZWRpYUVsZW1lbnQ6OkhBVkVfRU5PVUdIX0RBVEEgaXMgbm90IDQgYXMgZXhw
ZWN0ZWQiKTsKKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVl
KSA8IFdURl9BUlJBWV9MRU5HVEgodmFsdWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNf
Y2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpXTsKK30KKworU3RyaW5nIGNvbnZlcnRFbnVt
ZXJhdGlvblRvU3RyaW5nKEhUTUxNZWRpYUVsZW1lbnQ6Ok5ldHdvcmtTdGF0ZSBlbnVtZXJhdGlv
blZhbHVlKQoreworICAgIHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHZhbHVl
c1tdID0geworICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTkVUV09SS19FTVBUWSIp
LAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTkVUV09SS19JRExFIiksCisgICAg
ICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJORVRXT1JLX0xPQURJTkciKSwKKyAgICAgICAg
TUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk5FVFdPUktfTk9fU09VUkNFIiksCisgICAgfTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oSFRNTE1lZGlhRWxlbWVudEVudW1z
OjpORVRXT1JLX0VNUFRZKSA9PSAwLCAiSFRNTE1lZGlhRWxlbWVudDo6TkVUV09SS19FTVBUWSBp
cyBub3QgMCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6
ZV90PihIVE1MTWVkaWFFbGVtZW50RW51bXM6Ok5FVFdPUktfSURMRSkgPT0gMSwgIkhUTUxNZWRp
YUVsZW1lbnQ6Ok5FVFdPUktfSURMRSBpcyBub3QgMSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihIVE1MTWVkaWFFbGVtZW50RW51bXM6Ok5FVFdP
UktfTE9BRElORykgPT0gMiwgIkhUTUxNZWRpYUVsZW1lbnQ6Ok5FVFdPUktfTE9BRElORyBpcyBu
b3QgMiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90
PihIVE1MTWVkaWFFbGVtZW50RW51bXM6Ok5FVFdPUktfTk9fU09VUkNFKSA9PSAzLCAiSFRNTE1l
ZGlhRWxlbWVudDo6TkVUV09SS19OT19TT1VSQ0UgaXMgbm90IDMgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKSA8IFdURl9BUlJB
WV9MRU5HVEgodmFsdWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+
KGVudW1lcmF0aW9uVmFsdWUpXTsKK30KKwogdHlwZWRlZiBIYXNoTWFwPERvY3VtZW50KiwgSGFz
aFNldDxIVE1MTWVkaWFFbGVtZW50Kj4+IERvY3VtZW50RWxlbWVudFNldE1hcDsKIHN0YXRpYyBE
b2N1bWVudEVsZW1lbnRTZXRNYXAmIGRvY3VtZW50VG9FbGVtZW50U2V0TWFwKCkKIHsKQEAgLTk4
OCw3ICsxMDIyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkaWRSZWNhbGNTdHlsZShTdAog
CiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRGVsYXllZEFjdGlvbihEZWxheWVkQWN0
aW9uVHlwZSBhY3Rpb25UeXBlKQogewotICAgIGlmIChhY3Rpb25UeXBlIF4gbV9wZW5kaW5nQWN0
aW9uRmxhZ3MpCisgICAgaWYgKCEoYWN0aW9uVHlwZSAmIG1fcGVuZGluZ0FjdGlvbkZsYWdzKSkK
ICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAic2V0dGluZyAiLCBhY3Rpb25OYW1l
KGFjdGlvblR5cGUpLCAiIGZsYWciKTsKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKQEAgLTEw
ODgsNyArMTEyMiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGVuZGluZ0FjdGlvblRpbWUK
ICAgICBpZiAoIXBlbmRpbmdBY3Rpb25zKQogICAgICAgICByZXR1cm47CiAKLSAgICBBTFdBWVNf
TE9HKExPR0lERU5USUZJRVIsICJzZXR0aW5nICIsIGFjdGlvbk5hbWUoc3RhdGljX2Nhc3Q8RGVs
YXllZEFjdGlvblR5cGU+KHBlbmRpbmdBY3Rpb25zKSksICIgZmxhZyIpOworICAgIEFMV0FZU19M
T0coTE9HSURFTlRJRklFUiwgInByb2Nlc3NpbmcgIiwgYWN0aW9uTmFtZShzdGF0aWNfY2FzdDxE
ZWxheWVkQWN0aW9uVHlwZT4ocGVuZGluZ0FjdGlvbnMpKSwgIiBmbGFnIik7CiAKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCiAgICAgaWYgKHBlbmRpbmdBY3Rpb25zICYgQ29uZmlndXJlVGV4dFRy
YWNrcykKQEAgLTIyOTYsNyArMjMzMCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFM
b2FkaW5nRmFpbGUKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0TmV0d29ya1N0YXRlKE1lZGlh
UGxheWVyOjpOZXR3b3JrU3RhdGUgc3RhdGUpCiB7CiAgICAgaWYgKHN0YXRpY19jYXN0PGludD4o
c3RhdGUpICE9IHN0YXRpY19jYXN0PGludD4obV9uZXR3b3JrU3RhdGUpKQotICAgICAgICBBTFdB
WVNfTE9HKExPR0lERU5USUZJRVIsICJuZXcgc3RhdGUgPSAiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0
YXRlKSwgIiwgY3VycmVudCBzdGF0ZSA9ICIsIHN0YXRpY19jYXN0PGludD4obV9uZXR3b3JrU3Rh
dGUpKTsKKyAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAibmV3IHN0YXRlID0gIiwg
c3RhdGUsICIsIGN1cnJlbnQgc3RhdGUgPSAiLCBtX25ldHdvcmtTdGF0ZSk7CiAKICAgICBpZiAo
c3RhdGUgPT0gTWVkaWFQbGF5ZXI6OkVtcHR5KSB7CiAgICAgICAgIC8vIEp1c3QgdXBkYXRlIHRo
ZSBjYWNoZWQgc3RhdGUgYW5kIGxlYXZlLCB3ZSBjYW4ndCBkbyBhbnl0aGluZy4KQEAgLTI0MDIs
NyArMjQzNiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0UmVhZHlTdGF0ZShNZWQKICAg
ICBib29sIHRyYWNrc0FyZVJlYWR5ID0gdHJ1ZTsKICNlbmRpZgogCi0gICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSLCAibmV3IHN0YXRlID0gIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0ZSksICIs
IGN1cnJlbnQgc3RhdGUgPSAiLCBzdGF0aWNfY2FzdDxpbnQ+KG1fcmVhZHlTdGF0ZSkpOworICAg
IEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIm5ldyBzdGF0ZSA9ICIsIHN0YXRlLCAiLCBjdXJy
ZW50IHN0YXRlID0gIiwgbV9yZWFkeVN0YXRlKTsKIAogICAgIGlmICh0cmFja3NBcmVSZWFkeSkK
ICAgICAgICAgbV9yZWFkeVN0YXRlID0gbmV3U3RhdGU7CkBAIC0yNTA1LDggKzI1MzksMTAgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRSZWFkeVN0YXRlKE1lZAogICAgICAgICAgICAgbV9w
bGF5YmFja1N0YXJ0ZWRUaW1lID0gY3VycmVudE1lZGlhVGltZSgpLnRvRG91YmxlKCk7CiAgICAg
ICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5wbGF5RXZlbnQpOwogICAgICAgICAg
ICAgc2NoZWR1bGVOb3RpZnlBYm91dFBsYXlpbmcoKTsKLSAgICAgICAgfSBlbHNlIGlmIChzdWNj
ZXNzLnZhbHVlKCkgPT0gTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6VXNlckdlc3R1cmVSZXF1
aXJlZCkKKyAgICAgICAgfSBlbHNlIGlmIChzdWNjZXNzLnZhbHVlKCkgPT0gTWVkaWFQbGF5YmFj
a0RlbmlhbFJlYXNvbjo6VXNlckdlc3R1cmVSZXF1aXJlZCkgeworICAgICAgICAgICAgQUxXQVlT
X0xPRyhMT0dJREVOVElGSUVSLCAiQVVUT1BMQVkgQkxPQ0tFRCwgVVNFUiBHRVNUVVJFIFJFUVVJ
UkVEIik7CiAgICAgICAgICAgICBzZXRQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZShQbGF5YmFj
a1dpdGhvdXRVc2VyR2VzdHVyZTo6UHJldmVudGVkKTsKKyAgICAgICAgfQogCiAgICAgICAgIHNo
b3VsZFVwZGF0ZURpc3BsYXlTdGF0ZSA9IHRydWU7CiAgICAgfQpAQCAtMjUxNCw2ICsyNTUwLDEw
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0UmVhZHlTdGF0ZShNZWQKICAgICAvLyBJZiB3
ZSB0cmFuc2l0aW9uIHRvIHRoZSBGdXR1cmUgRGF0YSBzdGF0ZSBhbmQgd2UncmUgYWJvdXQgdG8g
YmVnaW4gcGxheWluZywgZW5zdXJlIHBsYXliYWNrIGlzIGFjdHVhbGx5IHBlcm1pdHRlZCBmaXJz
dCwKICAgICAvLyBob25vcmluZyBhbnkgcGxheWJhY2sgZGVuaWFsIHJlYXNvbnMgc3VjaCBhcyB0
aGUgcmVxdWlyZW1lbnQgb2YgYSB1c2VyIGdlc3R1cmUuCiAgICAgaWYgKG1fcmVhZHlTdGF0ZSA9
PSBIQVZFX0ZVVFVSRV9EQVRBICYmIG9sZFN0YXRlIDwgSEFWRV9GVVRVUkVfREFUQSAmJiBwb3Rl
bnRpYWxseVBsYXlpbmcoKSAmJiAhbV9tZWRpYVNlc3Npb24tPnBsYXliYWNrUGVybWl0dGVkKCp0
aGlzKSkgeworICAgICAgICBhdXRvIGNhblRyYW5zaXRpb24gPSBjYW5UcmFuc2l0aW9uRnJvbUF1
dG9wbGF5VG9QbGF5KCk7CisgICAgICAgIGlmIChjYW5UcmFuc2l0aW9uICYmIGNhblRyYW5zaXRp
b24udmFsdWUoKSA9PSBNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uOjpVc2VyR2VzdHVyZVJlcXVp
cmVkKQorICAgICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiQVVUT1BMQVkgQkxP
Q0tFRCwgVVNFUiBHRVNUVVJFIFJFUVVJUkVEIik7CisKICAgICAgICAgcGF1c2VJbnRlcm5hbCgp
OwogICAgICAgICBzZXRQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZShQbGF5YmFja1dpdGhvdXRV
c2VyR2VzdHVyZTo6UHJldmVudGVkKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudEVudW1zLmgJKHJldmlzaW9uIDIyNDI1MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudEVudW1zLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4
LDQgKzU4LDMxIEBAIHB1YmxpYzoKICAgICB9IFNlZWtUeXBlOwogfTsKIAorU3RyaW5nIGNvbnZl
cnRFbnVtZXJhdGlvblRvU3RyaW5nKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6UmVhZHlTdGF0ZSk7
CitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoSFRNTE1lZGlhRWxlbWVudEVudW1z
OjpOZXR3b3JrU3RhdGUpOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBQ
QUwgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgorc3RydWN0IExvZ0FyZ3VtZW50OworCit0
ZW1wbGF0ZSA8Pgorc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6UmVhZHlTdGF0ZT4geworICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpSZWFkeVN0YXRlIHN0YXRlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHN0YXRlKTsKKyAgICB9Cit9
OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6TmV0d29ya1N0YXRlPiB7CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhj
b25zdCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6Ok5ldHdvcmtTdGF0ZSBzdGF0ZSkK
KyAgICB7CisgICAgICAgIHJldHVybiBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhzdGF0ZSk7
CisgICAgfQorfTsKKworfTsgLy8gbmFtZXNwYWNlIFBBTAorCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCShyZXZpc2lvbiAyMjQy
NTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE1MTMsNiArMTUxMyw0NiBAQCBjb25zdCBQQUw6OkxvZ2dlciYg
TWVkaWFQbGF5ZXI6Om1lZGlhUGxhCiB9CiAjZW5kaWYKIAorU3RyaW5nIGNvbnZlcnRFbnVtZXJh
dGlvblRvU3RyaW5nKE1lZGlhUGxheWVyRW51bXM6OlJlYWR5U3RhdGUgZW51bWVyYXRpb25WYWx1
ZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9
IHsKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhhdmVOb3RoaW5nIiksCisgICAg
ICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJIYXZlTWV0YWRhdGEiKSwKKyAgICAgICAgTUFL
RV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhhdmVDdXJyZW50RGF0YSIpLAorICAgICAgICBNQUtFX1NU
QVRJQ19TVFJJTkdfSU1QTCgiSGF2ZUZ1dHVyZURhdGEiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNf
U1RSSU5HX0lNUEwoIkhhdmVFbm91Z2hEYXRhIiksCisgICAgfTsKKyAgICBzdGF0aWNfYXNzZXJ0
KHN0YXRpY19jYXN0PHNpemVfdD4oTWVkaWFQbGF5ZXJFbnVtczo6SGF2ZU5vdGhpbmcpID09IDAs
ICJNZWRpYVBsYXllckVudW1zOjpIYXZlTm90aGluZyBpcyBub3QgMCBhcyBleHBlY3RlZCIpOwor
ICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihNZWRpYVBsYXllckVudW1zOjpI
YXZlTWV0YWRhdGEpID09IDEsICJNZWRpYVBsYXllckVudW1zOjpIYXZlTWV0YWRhdGEgaXMgbm90
IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4o
TWVkaWFQbGF5ZXJFbnVtczo6SGF2ZUN1cnJlbnREYXRhKSA9PSAyLCAiTWVkaWFQbGF5ZXJFbnVt
czo6SGF2ZUN1cnJlbnREYXRhIGlzIG5vdCAyIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fz
c2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KE1lZGlhUGxheWVyRW51bXM6OkhhdmVGdXR1cmVEYXRh
KSA9PSAzLCAiTWVkaWFQbGF5ZXJFbnVtczo6SGF2ZUZ1dHVyZURhdGEgaXMgbm90IDMgYXMgZXhw
ZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oTWVkaWFQbGF5
ZXJFbnVtczo6SGF2ZUVub3VnaERhdGEpID09IDQsICJNZWRpYVBsYXllckVudW1zOjpIYXZlRW5v
dWdoRGF0YSBpcyBub3QgNCBhcyBleHBlY3RlZCIpOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxz
aXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpIDwgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpKTsKKyAg
ICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSldOwor
fQorCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoTWVkaWFQbGF5ZXJFbnVtczo6
TmV0d29ya1N0YXRlIGVudW1lcmF0aW9uVmFsdWUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVy
RGVzdHJveWVkPFN0cmluZz4gdmFsdWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklO
R19JTVBMKCJFbXB0eSIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSWRsZSIp
LAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTG9hZGluZyIpLAorICAgICAgICBN
QUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTG9hZGVkIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NU
UklOR19JTVBMKCJGb3JtYXRFcnJvciIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1Q
TCgiTmV0d29ya0Vycm9yIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJEZWNv
ZGVFcnJvciIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KE1lZGlhUGxheWVyRW51bXM6OkVtcHR5KSA9PSAwLCAiTWVkaWFQbGF5ZXJFbnVtczo6RW1wdHkg
aXMgbm90IDAgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNp
emVfdD4oTWVkaWFQbGF5ZXJFbnVtczo6SWRsZSkgPT0gMSwgIk1lZGlhUGxheWVyRW51bXM6Oklk
bGUgaXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0
PHNpemVfdD4oTWVkaWFQbGF5ZXJFbnVtczo6TG9hZGluZykgPT0gMiwgIk1lZGlhUGxheWVyRW51
bXM6OkxvYWRpbmcgaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
YXRpY19jYXN0PHNpemVfdD4oTWVkaWFQbGF5ZXJFbnVtczo6TG9hZGVkKSA9PSAzLCAiTWVkaWFQ
bGF5ZXJFbnVtczo6TG9hZGVkIGlzIG5vdCAzIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fz
c2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KE1lZGlhUGxheWVyRW51bXM6OkZvcm1hdEVycm9yKSA9
PSA0LCAiTWVkaWFQbGF5ZXJFbnVtczo6Rm9ybWF0RXJyb3IgaXMgbm90IDQgYXMgZXhwZWN0ZWQi
KTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oTWVkaWFQbGF5ZXJFbnVt
czo6TmV0d29ya0Vycm9yKSA9PSA1LCAiTWVkaWFQbGF5ZXJFbnVtczo6TmV0d29ya0Vycm9yIGlz
IG5vdCA1IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KE1lZGlhUGxheWVyRW51bXM6OkRlY29kZUVycm9yKSA9PSA2LCAiTWVkaWFQbGF5ZXJFbnVt
czo6RGVjb2RlRXJyb3IgaXMgbm90IDYgYXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NFUlQoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKSA8IFdURl9BUlJBWV9MRU5HVEgodmFsdWVz
KSk7CisgICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFs
dWUpXTsKK30KKwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyRW51bXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllckVudW1zLmgJKHJldmlzaW9uIDIyNDI1MSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyRW51bXMuaAkod29y
a2luZyBjb3B5KQpAQCAtMjMsOCArMjMsOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lm
bmRlZiBNZWRpYVBsYXllckVudW1zX2gKLSNkZWZpbmUgTWVkaWFQbGF5ZXJFbnVtc19oCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTQzLDYgKzQ0LDMxIEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIHVpbnQz
Ml90IFZpZGVvRnVsbHNjcmVlbk1vZGU7CiB9OwogCi19CitXVEY6OlN0cmluZyBjb252ZXJ0RW51
bWVyYXRpb25Ub1N0cmluZyhNZWRpYVBsYXllckVudW1zOjpSZWFkeVN0YXRlKTsKK1dURjo6U3Ry
aW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKE1lZGlhUGxheWVyRW51bXM6Ok5ldHdvcmtT
dGF0ZSk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworCituYW1lc3BhY2UgUEFMIHsKKwor
dGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4KK3N0cnVjdCBMb2dBcmd1bWVudDsKKwordGVtcGxhdGUg
PD4KK3N0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpSZWFkeVN0
YXRlPiB7CisgICAgc3RhdGljIFdURjo6U3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6OlJlYWR5U3RhdGUgc3RhdGUpCisgICAgeworICAgICAgICByZXR1cm4g
Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoc3RhdGUpOworICAgIH0KK307CisKK3RlbXBsYXRl
IDw+CitzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TmV0d29y
a1N0YXRlPiB7CisgICAgc3RhdGljIFdURjo6U3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6
Ok1lZGlhUGxheWVyRW51bXM6Ok5ldHdvcmtTdGF0ZSBzdGF0ZSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhzdGF0ZSk7CisgICAgfQorfTsKIAotI2Vu
ZGlmCit9OyAvLyBuYW1lc3BhY2UgUEFMCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAkocmV2aXNpb24gMjI0MjUxKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2NCw5ICs1NjQs
OSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dXBkCiAgICAgICAgIG1f
aGF2ZVJlcG9ydGVkRmlyc3RWaWRlb0ZyYW1lID0gZmFsc2U7CiAKICAgICBpZiAobV9uZXR3b3Jr
U3RhdGUgIT0gbmV3TmV0d29ya1N0YXRlKQotICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIsICJlbnRlcmVkIHdpdGggbmV0d29ya1N0YXRlICIsIHN0YXRpY19jYXN0PGludD4obV9uZXR3
b3JrU3RhdGUpLCAiLCBleGl0aW5nIHdpdGggIiwgc3RhdGljX2Nhc3Q8aW50PihuZXdOZXR3b3Jr
U3RhdGUpKTsKKyAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiZW50ZXJlZCB3aXRo
IG5ldHdvcmtTdGF0ZSAiLCBtX25ldHdvcmtTdGF0ZSwgIiwgZXhpdGluZyB3aXRoICIsIG5ld05l
dHdvcmtTdGF0ZSk7CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSAhPSBuZXdSZWFkeVN0YXRlKQotICAg
ICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJlbnRlcmVkIHdpdGggcmVhZHlTdGF0ZSAi
LCBzdGF0aWNfY2FzdDxpbnQ+KG1fcmVhZHlTdGF0ZSksICIsIGV4aXRpbmcgd2l0aCAiLCBzdGF0
aWNfY2FzdDxpbnQ+KG5ld1JlYWR5U3RhdGUpKTsKKyAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVO
VElGSUVSLCAiZW50ZXJlZCB3aXRoIHJlYWR5U3RhdGUgIiwgbV9yZWFkeVN0YXRlLCAiLCBleGl0
aW5nIHdpdGggIiwgbmV3UmVhZHlTdGF0ZSk7CiAKICAgICBzZXROZXR3b3JrU3RhdGUobmV3TmV0
d29ya1N0YXRlKTsKICAgICBzZXRSZWFkeVN0YXRlKG5ld1JlYWR5U3RhdGUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327025</attachid>
            <date>2017-11-15 14:22:03 -0800</date>
            <delta_ts>2017-11-15 15:25:38 -0800</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>log_state_string_patch_2.txt</filename>
            <type>text/plain</type>
            <size>14182</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDg4NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE3LTExLTE1ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIExvZyBtZWRpYSByZWFk
eVN0YXRlIGFuZCBuZXR3b3JrU3RhdGUgYXMgc3RyaW5ncworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NzMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
WW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZURlbGF5ZWRBY3Rpb24pOiBGaXggbG9n
aWMgZXJyb3IuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwZW5kaW5nQWN0
aW9uVGltZXJGaXJlZCk6IEZpeCBpbmNvcnJlY3QgbG9nIHN0cmluZy4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldE5ldHdvcmtTdGF0ZSk6IERvbid0IGNhc3QgdG8gaW50
IGZvciBsb2dnaW5nLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0UmVh
ZHlTdGF0ZSk6IERpdHRvLiBMb2cgd2hlbiBhdXRvcGxheSBpcyBibG9ja2VkLgorCisgICAgICAg
ICogaHRtbC9IVE1MTWVkaWFFbGVtZW50RW51bXMuaDoKKyAgICAgICAgKFBBTDo6TG9nQXJndW1l
bnQ8V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpSZWFkeVN0YXRlPjo6dG9TdHJpbmcp
OiBOZXcuCisgICAgICAgIChQQUw6OkxvZ0FyZ3VtZW50PFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnRFbnVtczo6TmV0d29ya1N0YXRlPjo6dG9TdHJpbmcpOiBOZXcuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0
RW51bWVyYXRpb25Ub1N0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJFbnVtcy5oOgorICAgICAgICAoUEFMOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpSZWFkeVN0YXRlPjo6dG9TdHJpbmcpOgorICAgICAgICAoUEFMOjpMb2dBcmd1
bWVudDxXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpOZXR3b3JrU3RhdGU+Ojp0b1N0cmluZyk6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6dXBkYXRlU3RhdGVzKTogTG9nIHN0cmluZ3MuCisKIDIwMTctMTEt
MTUgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbQ2Fpcm9dIENsYW5nIHdhcm5zIGFib3V0IG1pc21hdGNoZWQgZGVjbGFyYXRpb24gdHlwZSB0
YWcgZm9yIEdyYXBoaWNzQ29udGV4dFN0YXRlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyNDI1MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1NCw2ICsyNTQsNDAg
QEAgc3RhdGljIGNvbnN0IGNoYXIqIG1lZGlhU3RyZWFtQmxvYlByb3RvYwogCiB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwogCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoSFRN
TE1lZGlhRWxlbWVudDo6UmVhZHlTdGF0ZSBlbnVtZXJhdGlvblZhbHVlKQoreworICAgIHN0YXRp
YyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHZhbHVlc1tdID0geworICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiSEFWRV9OT1RISU5HIiksCisgICAgICAgIE1BS0VfU1RBVElD
X1NUUklOR19JTVBMKCJIQVZFX01FVEFEQVRBIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklO
R19JTVBMKCJIQVZFX0NVUlJFTlRfREFUQSIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdf
SU1QTCgiSEFWRV9GVVRVUkVfREFUQSIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1Q
TCgiSEFWRV9FTk9VR0hfREFUQSIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNf
Y2FzdDxzaXplX3Q+KEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6SEFWRV9OT1RISU5HKSA9PSAwLCAi
SFRNTE1lZGlhRWxlbWVudDo6SEFWRV9OT1RISU5HIGlzIG5vdCAwIGFzIGV4cGVjdGVkIik7Cisg
ICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6SEFWRV9NRVRBREFUQSkgPT0gMSwgIkhUTUxNZWRpYUVsZW1lbnQ6OkhBVkVfTUVUQURBVEEg
aXMgbm90IDEgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNp
emVfdD4oSFRNTE1lZGlhRWxlbWVudEVudW1zOjpIQVZFX0NVUlJFTlRfREFUQSkgPT0gMiwgIkhU
TUxNZWRpYUVsZW1lbnQ6OkhBVkVfQ1VSUkVOVF9EQVRBIGlzIG5vdCAyIGFzIGV4cGVjdGVkIik7
CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6SEFWRV9GVVRVUkVfREFUQSkgPT0gMywgIkhUTUxNZWRpYUVsZW1lbnQ6OkhBVkVfRlVU
VVJFX0RBVEEgaXMgbm90IDMgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRp
Y19jYXN0PHNpemVfdD4oSFRNTE1lZGlhRWxlbWVudEVudW1zOjpIQVZFX0VOT1VHSF9EQVRBKSA9
PSA0LCAiSFRNTE1lZGlhRWxlbWVudDo6SEFWRV9FTk9VR0hfREFUQSBpcyBub3QgNCBhcyBleHBl
Y3RlZCIpOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUp
IDwgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpKTsKKyAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19j
YXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSldOworfQorCitTdHJpbmcgY29udmVydEVudW1l
cmF0aW9uVG9TdHJpbmcoSFRNTE1lZGlhRWxlbWVudDo6TmV0d29ya1N0YXRlIGVudW1lcmF0aW9u
VmFsdWUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFsdWVz
W10gPSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJORVRXT1JLX0VNUFRZIiks
CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJORVRXT1JLX0lETEUiKSwKKyAgICAg
ICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk5FVFdPUktfTE9BRElORyIpLAorICAgICAgICBN
QUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTkVUV09SS19OT19TT1VSQ0UiKSwKKyAgICB9OworICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihIVE1MTWVkaWFFbGVtZW50RW51bXM6
Ok5FVFdPUktfRU1QVFkpID09IDAsICJIVE1MTWVkaWFFbGVtZW50OjpORVRXT1JLX0VNUFRZIGlz
IG5vdCAwIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6TkVUV09SS19JRExFKSA9PSAxLCAiSFRNTE1lZGlh
RWxlbWVudDo6TkVUV09SS19JRExFIGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGlj
X2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6TkVUV09S
S19MT0FESU5HKSA9PSAyLCAiSFRNTE1lZGlhRWxlbWVudDo6TkVUV09SS19MT0FESU5HIGlzIG5v
dCAyIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6TkVUV09SS19OT19TT1VSQ0UpID09IDMsICJIVE1MTWVk
aWFFbGVtZW50OjpORVRXT1JLX05PX1NPVVJDRSBpcyBub3QgMyBhcyBleHBlY3RlZCIpOworICAg
IEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpIDwgV1RGX0FSUkFZ
X0xFTkdUSCh2YWx1ZXMpKTsKKyAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVfdD4o
ZW51bWVyYXRpb25WYWx1ZSldOworfQorCiB0eXBlZGVmIEhhc2hNYXA8RG9jdW1lbnQqLCBIYXNo
U2V0PEhUTUxNZWRpYUVsZW1lbnQqPj4gRG9jdW1lbnRFbGVtZW50U2V0TWFwOwogc3RhdGljIERv
Y3VtZW50RWxlbWVudFNldE1hcCYgZG9jdW1lbnRUb0VsZW1lbnRTZXRNYXAoKQogewpAQCAtOTg4
LDcgKzEwMjIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZFJlY2FsY1N0eWxlKFN0CiAK
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVEZWxheWVkQWN0aW9uKERlbGF5ZWRBY3Rp
b25UeXBlIGFjdGlvblR5cGUpCiB7Ci0gICAgaWYgKGFjdGlvblR5cGUgXiBtX3BlbmRpbmdBY3Rp
b25GbGFncykKKyAgICBpZiAoIShhY3Rpb25UeXBlICYgbV9wZW5kaW5nQWN0aW9uRmxhZ3MpKQog
ICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJzZXR0aW5nICIsIGFjdGlvbk5hbWUo
YWN0aW9uVHlwZSksICIgZmxhZyIpOwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAtMTA4
OCw3ICsxMTIyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwZW5kaW5nQWN0aW9uVGltZQog
ICAgIGlmICghcGVuZGluZ0FjdGlvbnMpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFMV0FZU19M
T0coTE9HSURFTlRJRklFUiwgInNldHRpbmcgIiwgYWN0aW9uTmFtZShzdGF0aWNfY2FzdDxEZWxh
eWVkQWN0aW9uVHlwZT4ocGVuZGluZ0FjdGlvbnMpKSwgIiBmbGFnIik7CisgICAgQUxXQVlTX0xP
RyhMT0dJREVOVElGSUVSLCAicHJvY2Vzc2luZyAiLCBhY3Rpb25OYW1lKHN0YXRpY19jYXN0PERl
bGF5ZWRBY3Rpb25UeXBlPihwZW5kaW5nQWN0aW9ucykpLCAiIGZsYWciKTsKIAogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKICAgICBpZiAocGVuZGluZ0FjdGlvbnMgJiBDb25maWd1cmVUZXh0VHJh
Y2tzKQpAQCAtMjI5Niw3ICsyMzMwLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUxv
YWRpbmdGYWlsZQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXROZXR3b3JrU3RhdGUoTWVkaWFQ
bGF5ZXI6Ok5ldHdvcmtTdGF0ZSBzdGF0ZSkKIHsKICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50Pihz
dGF0ZSkgIT0gc3RhdGljX2Nhc3Q8aW50PihtX25ldHdvcmtTdGF0ZSkpCi0gICAgICAgIEFMV0FZ
U19MT0coTE9HSURFTlRJRklFUiwgIm5ldyBzdGF0ZSA9ICIsIHN0YXRpY19jYXN0PGludD4oc3Rh
dGUpLCAiLCBjdXJyZW50IHN0YXRlID0gIiwgc3RhdGljX2Nhc3Q8aW50PihtX25ldHdvcmtTdGF0
ZSkpOworICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJuZXcgc3RhdGUgPSAiLCBz
dGF0ZSwgIiwgY3VycmVudCBzdGF0ZSA9ICIsIG1fbmV0d29ya1N0YXRlKTsKIAogICAgIGlmIChz
dGF0ZSA9PSBNZWRpYVBsYXllcjo6RW1wdHkpIHsKICAgICAgICAgLy8gSnVzdCB1cGRhdGUgdGhl
IGNhY2hlZCBzdGF0ZSBhbmQgbGVhdmUsIHdlIGNhbid0IGRvIGFueXRoaW5nLgpAQCAtMjQwMiw3
ICsyNDM2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRSZWFkeVN0YXRlKE1lZAogICAg
IGJvb2wgdHJhY2tzQXJlUmVhZHkgPSB0cnVlOwogI2VuZGlmCiAKLSAgICBBTFdBWVNfTE9HKExP
R0lERU5USUZJRVIsICJuZXcgc3RhdGUgPSAiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXRlKSwgIiwg
Y3VycmVudCBzdGF0ZSA9ICIsIHN0YXRpY19jYXN0PGludD4obV9yZWFkeVN0YXRlKSk7CisgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAibmV3IHN0YXRlID0gIiwgc3RhdGUsICIsIGN1cnJl
bnQgc3RhdGUgPSAiLCBtX3JlYWR5U3RhdGUpOwogCiAgICAgaWYgKHRyYWNrc0FyZVJlYWR5KQog
ICAgICAgICBtX3JlYWR5U3RhdGUgPSBuZXdTdGF0ZTsKQEAgLTI1MDUsOCArMjUzOSwxMCBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFJlYWR5U3RhdGUoTWVkCiAgICAgICAgICAgICBtX3Bs
YXliYWNrU3RhcnRlZFRpbWUgPSBjdXJyZW50TWVkaWFUaW1lKCkudG9Eb3VibGUoKTsKICAgICAg
ICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnBsYXlFdmVudCk7CiAgICAgICAgICAg
ICBzY2hlZHVsZU5vdGlmeUFib3V0UGxheWluZygpOwotICAgICAgICB9IGVsc2UgaWYgKHN1Y2Nl
c3MudmFsdWUoKSA9PSBNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uOjpVc2VyR2VzdHVyZVJlcXVp
cmVkKQorICAgICAgICB9IGVsc2UgaWYgKHN1Y2Nlc3MudmFsdWUoKSA9PSBNZWRpYVBsYXliYWNr
RGVuaWFsUmVhc29uOjpVc2VyR2VzdHVyZVJlcXVpcmVkKSB7CisgICAgICAgICAgICBBTFdBWVNf
TE9HKExPR0lERU5USUZJRVIsICJBdXRvcGxheSBibG9ja2VkLCB1c2VyIGdlc3R1cmUgcmVxdWly
ZWQiKTsKICAgICAgICAgICAgIHNldFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlKFBsYXliYWNr
V2l0aG91dFVzZXJHZXN0dXJlOjpQcmV2ZW50ZWQpOworICAgICAgICB9CiAKICAgICAgICAgc2hv
dWxkVXBkYXRlRGlzcGxheVN0YXRlID0gdHJ1ZTsKICAgICB9CkBAIC0yNTE0LDYgKzI1NTAsMTAg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRSZWFkeVN0YXRlKE1lZAogICAgIC8vIElmIHdl
IHRyYW5zaXRpb24gdG8gdGhlIEZ1dHVyZSBEYXRhIHN0YXRlIGFuZCB3ZSdyZSBhYm91dCB0byBi
ZWdpbiBwbGF5aW5nLCBlbnN1cmUgcGxheWJhY2sgaXMgYWN0dWFsbHkgcGVybWl0dGVkIGZpcnN0
LAogICAgIC8vIGhvbm9yaW5nIGFueSBwbGF5YmFjayBkZW5pYWwgcmVhc29ucyBzdWNoIGFzIHRo
ZSByZXF1aXJlbWVudCBvZiBhIHVzZXIgZ2VzdHVyZS4KICAgICBpZiAobV9yZWFkeVN0YXRlID09
IEhBVkVfRlVUVVJFX0RBVEEgJiYgb2xkU3RhdGUgPCBIQVZFX0ZVVFVSRV9EQVRBICYmIHBvdGVu
dGlhbGx5UGxheWluZygpICYmICFtX21lZGlhU2Vzc2lvbi0+cGxheWJhY2tQZXJtaXR0ZWQoKnRo
aXMpKSB7CisgICAgICAgIGF1dG8gY2FuVHJhbnNpdGlvbiA9IGNhblRyYW5zaXRpb25Gcm9tQXV0
b3BsYXlUb1BsYXkoKTsKKyAgICAgICAgaWYgKGNhblRyYW5zaXRpb24gJiYgY2FuVHJhbnNpdGlv
bi52YWx1ZSgpID09IE1lZGlhUGxheWJhY2tEZW5pYWxSZWFzb246OlVzZXJHZXN0dXJlUmVxdWly
ZWQpCisgICAgICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJBdXRvcGxheSBibG9j
a2VkLCB1c2VyIGdlc3R1cmUgcmVxdWlyZWQiKTsKKwogICAgICAgICBwYXVzZUludGVybmFsKCk7
CiAgICAgICAgIHNldFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlKFBsYXliYWNrV2l0aG91dFVz
ZXJHZXN0dXJlOjpQcmV2ZW50ZWQpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudEVudW1zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50RW51bXMuaAkocmV2aXNpb24gMjI0MjUxKQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50RW51bXMuaAkod29ya2luZyBjb3B5KQpAQCAtNTgs
NCArNTgsMzEgQEAgcHVibGljOgogICAgIH0gU2Vla1R5cGU7CiB9OwogCitTdHJpbmcgY29udmVy
dEVudW1lcmF0aW9uVG9TdHJpbmcoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpSZWFkeVN0YXRlKTsK
K1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhIVE1MTWVkaWFFbGVtZW50RW51bXM6
Ok5ldHdvcmtTdGF0ZSk7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFBB
TCB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFR5cGU+CitzdHJ1Y3QgTG9nQXJndW1lbnQ7CisKK3Rl
bXBsYXRlIDw+CitzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpSZWFkeVN0YXRlPiB7CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlJlYWR5U3RhdGUgc3RhdGUpCisgICAgeworICAg
ICAgICByZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoc3RhdGUpOworICAgIH0KK307
CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudEVudW1zOjpOZXR3b3JrU3RhdGU+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNv
bnN0IFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6TmV0d29ya1N0YXRlIHN0YXRlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHN0YXRlKTsK
KyAgICB9Cit9OworCit9OyAvLyBuYW1lc3BhY2UgUEFMCisKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHJldmlzaW9uIDIyNDI1
MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTUxMyw2ICsxNTEzLDQ2IEBAIGNvbnN0IFBBTDo6TG9nZ2VyJiBN
ZWRpYVBsYXllcjo6bWVkaWFQbGEKIH0KICNlbmRpZgogCitTdHJpbmcgY29udmVydEVudW1lcmF0
aW9uVG9TdHJpbmcoTWVkaWFQbGF5ZXJFbnVtczo6UmVhZHlTdGF0ZSBlbnVtZXJhdGlvblZhbHVl
KQoreworICAgIHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHZhbHVlc1tdID0g
eworICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZU5vdGhpbmciKSwKKyAgICAg
ICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkhhdmVNZXRhZGF0YSIpLAorICAgICAgICBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiSGF2ZUN1cnJlbnREYXRhIiksCisgICAgICAgIE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJIYXZlRnV0dXJlRGF0YSIpLAorICAgICAgICBNQUtFX1NUQVRJQ19T
VFJJTkdfSU1QTCgiSGF2ZUVub3VnaERhdGEiKSwKKyAgICB9OworICAgIHN0YXRpY19hc3NlcnQo
c3RhdGljX2Nhc3Q8c2l6ZV90PihNZWRpYVBsYXllckVudW1zOjpIYXZlTm90aGluZykgPT0gMCwg
Ik1lZGlhUGxheWVyRW51bXM6OkhhdmVOb3RoaW5nIGlzIG5vdCAwIGFzIGV4cGVjdGVkIik7Cisg
ICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KE1lZGlhUGxheWVyRW51bXM6Okhh
dmVNZXRhZGF0YSkgPT0gMSwgIk1lZGlhUGxheWVyRW51bXM6OkhhdmVNZXRhZGF0YSBpcyBub3Qg
MSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihN
ZWRpYVBsYXllckVudW1zOjpIYXZlQ3VycmVudERhdGEpID09IDIsICJNZWRpYVBsYXllckVudW1z
OjpIYXZlQ3VycmVudERhdGEgaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oTWVkaWFQbGF5ZXJFbnVtczo6SGF2ZUZ1dHVyZURhdGEp
ID09IDMsICJNZWRpYVBsYXllckVudW1zOjpIYXZlRnV0dXJlRGF0YSBpcyBub3QgMyBhcyBleHBl
Y3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihNZWRpYVBsYXll
ckVudW1zOjpIYXZlRW5vdWdoRGF0YSkgPT0gNCwgIk1lZGlhUGxheWVyRW51bXM6OkhhdmVFbm91
Z2hEYXRhIGlzIG5vdCA0IGFzIGV4cGVjdGVkIik7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNp
emVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAg
IHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKV07Cit9
CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhNZWRpYVBsYXllckVudW1zOjpO
ZXR3b3JrU3RhdGUgZW51bWVyYXRpb25WYWx1ZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgTmV2ZXJE
ZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5H
X0lNUEwoIkVtcHR5IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJJZGxlIiks
CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJMb2FkaW5nIiksCisgICAgICAgIE1B
S0VfU1RBVElDX1NUUklOR19JTVBMKCJMb2FkZWQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RS
SU5HX0lNUEwoIkZvcm1hdEVycm9yIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJOZXR3b3JrRXJyb3IiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkRlY29k
ZUVycm9yIiksCisgICAgfTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4o
TWVkaWFQbGF5ZXJFbnVtczo6RW1wdHkpID09IDAsICJNZWRpYVBsYXllckVudW1zOjpFbXB0eSBp
cyBub3QgMCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6
ZV90PihNZWRpYVBsYXllckVudW1zOjpJZGxlKSA9PSAxLCAiTWVkaWFQbGF5ZXJFbnVtczo6SWRs
ZSBpcyBub3QgMSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
c2l6ZV90PihNZWRpYVBsYXllckVudW1zOjpMb2FkaW5nKSA9PSAyLCAiTWVkaWFQbGF5ZXJFbnVt
czo6TG9hZGluZyBpcyBub3QgMiBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihNZWRpYVBsYXllckVudW1zOjpMb2FkZWQpID09IDMsICJNZWRpYVBs
YXllckVudW1zOjpMb2FkZWQgaXMgbm90IDMgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oTWVkaWFQbGF5ZXJFbnVtczo6Rm9ybWF0RXJyb3IpID09
IDQsICJNZWRpYVBsYXllckVudW1zOjpGb3JtYXRFcnJvciBpcyBub3QgNCBhcyBleHBlY3RlZCIp
OworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihNZWRpYVBsYXllckVudW1z
OjpOZXR3b3JrRXJyb3IpID09IDUsICJNZWRpYVBsYXllckVudW1zOjpOZXR3b3JrRXJyb3IgaXMg
bm90IDUgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVf
dD4oTWVkaWFQbGF5ZXJFbnVtczo6RGVjb2RlRXJyb3IpID09IDYsICJNZWRpYVBsYXllckVudW1z
OjpEZWNvZGVFcnJvciBpcyBub3QgNiBhcyBleHBlY3RlZCIpOworICAgIEFTU0VSVChzdGF0aWNf
Y2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpIDwgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMp
KTsKKyAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1
ZSldOworfQorCiB9CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJFbnVtcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyRW51bXMuaAkocmV2aXNpb24gMjI0MjUxKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJFbnVtcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw5IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0jaWZu
ZGVmIE1lZGlhUGxheWVyRW51bXNfaAotI2RlZmluZSBNZWRpYVBsYXllckVudW1zX2gKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNDMsNiArNDQsMzEgQEAgcHVibGljOgogICAgIHR5cGVkZWYgdWludDMy
X3QgVmlkZW9GdWxsc2NyZWVuTW9kZTsKIH07CiAKLX0KK1dURjo6U3RyaW5nIGNvbnZlcnRFbnVt
ZXJhdGlvblRvU3RyaW5nKE1lZGlhUGxheWVyRW51bXM6OlJlYWR5U3RhdGUpOworV1RGOjpTdHJp
bmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoTWVkaWFQbGF5ZXJFbnVtczo6TmV0d29ya1N0
YXRlKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisKK25hbWVzcGFjZSBQQUwgeworCit0
ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgorc3RydWN0IExvZ0FyZ3VtZW50OworCit0ZW1wbGF0ZSA8
Pgorc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlJlYWR5U3Rh
dGU+IHsKKyAgICBzdGF0aWMgV1RGOjpTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6UmVhZHlTdGF0ZSBzdGF0ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBj
b252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhzdGF0ZSk7CisgICAgfQorfTsKKwordGVtcGxhdGUg
PD4KK3N0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpOZXR3b3Jr
U3RhdGU+IHsKKyAgICBzdGF0aWMgV1RGOjpTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6
TWVkaWFQbGF5ZXJFbnVtczo6TmV0d29ya1N0YXRlIHN0YXRlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHN0YXRlKTsKKyAgICB9Cit9OwogCi0jZW5k
aWYKK307IC8vIG5hbWVzcGFjZSBQQUwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCShyZXZpc2lvbiAyMjQyNTEpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTY0LDkgKzU2NCw5
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjp1cGQKICAgICAgICAgbV9o
YXZlUmVwb3J0ZWRGaXJzdFZpZGVvRnJhbWUgPSBmYWxzZTsKIAogICAgIGlmIChtX25ldHdvcmtT
dGF0ZSAhPSBuZXdOZXR3b3JrU3RhdGUpCi0gICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
UiwgImVudGVyZWQgd2l0aCBuZXR3b3JrU3RhdGUgIiwgc3RhdGljX2Nhc3Q8aW50PihtX25ldHdv
cmtTdGF0ZSksICIsIGV4aXRpbmcgd2l0aCAiLCBzdGF0aWNfY2FzdDxpbnQ+KG5ld05ldHdvcmtT
dGF0ZSkpOworICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJlbnRlcmVkIHdpdGgg
bmV0d29ya1N0YXRlICIsIG1fbmV0d29ya1N0YXRlLCAiLCBleGl0aW5nIHdpdGggIiwgbmV3TmV0
d29ya1N0YXRlKTsKICAgICBpZiAobV9yZWFkeVN0YXRlICE9IG5ld1JlYWR5U3RhdGUpCi0gICAg
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgImVudGVyZWQgd2l0aCByZWFkeVN0YXRlICIs
IHN0YXRpY19jYXN0PGludD4obV9yZWFkeVN0YXRlKSwgIiwgZXhpdGluZyB3aXRoICIsIHN0YXRp
Y19jYXN0PGludD4obmV3UmVhZHlTdGF0ZSkpOworICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIsICJlbnRlcmVkIHdpdGggcmVhZHlTdGF0ZSAiLCBtX3JlYWR5U3RhdGUsICIsIGV4aXRp
bmcgd2l0aCAiLCBuZXdSZWFkeVN0YXRlKTsKIAogICAgIHNldE5ldHdvcmtTdGF0ZShuZXdOZXR3
b3JrU3RhdGUpOwogICAgIHNldFJlYWR5U3RhdGUobmV3UmVhZHlTdGF0ZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>