<?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>173030</bug_id>
          
          <creation_ts>2017-06-06 13:05:22 -0700</creation_ts>
          <short_desc>Netflix seeking quirk should also apply to Now Playing, and should always use the livestream UI</short_desc>
          <delta_ts>2024-08-05 20:09:08 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Beth Dakin">bdakin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>buildbot</cc>
    
    <cc>darin</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonlee</cc>
    
    <cc>karlcow</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1316191</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2017-06-06 13:05:22 -0700</bug_when>
    <thetext>Netflix seeking quirk should also apply to Now Playing, and should always use the livestream UI

rdar://problem/32228660</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316205</commentid>
    <comment_count>1</comment_count>
      <attachid>312114</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2017-06-06 13:25:47 -0700</bug_when>
    <thetext>Created attachment 312114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316207</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-06 13:28:29 -0700</bug_when>
    <thetext>Attachment 312114 did not pass style-queue:


ERROR: Source/WebCore/html/HTMLMediaElement.cpp:7100:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/html/HTMLMediaElement.cpp:7104:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 2 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>1316227</commentid>
    <comment_count>3</comment_count>
      <attachid>312114</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-06-06 14:06:45 -0700</bug_when>
    <thetext>Comment on attachment 312114
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:7091
&gt; +static bool needsSeekingSupportQuirk(Page&amp; page)

It’s awkward to use this since the caller needs to check Page for null. I think it would be cleaner to just pass an Element or Document to this function.

Also, we could write an implementation that uses Document::settings to check the &quot;needs quirks&quot; flag, and then Document::topDocument to get the hose, and then we would not need to use Page at all.

In fact, there would be no null checks needed either!

    auto&amp; document = element.document().topDocument();
    if (!document.settings().needsSiteSpecificQuirks())
        return false;
    String host = document.url().host();
    return equalLettersIgnoringASCIICase(host, &quot;netflix.com&quot;) || host.endsWithIgnoringASCIICase(&quot;.netflix.com&quot;);

&gt; Source/WebCore/html/HTMLMediaElement.cpp:7110
&gt; +    if (Page* page = document().page()) {
&gt; +        if (needsSeekingSupportQuirk(*page))
&gt; +            return false;
&gt; +    }
&gt;      return !isLiveStream();

Then this code could be:

    return !needsSeekingSupportQuirk(*this) &amp;&amp; !isLiveStream();

&gt; Source/WebCore/platform/mac/WebPlaybackControlsManager.mm:123
&gt; +    return !isnan(_contentDuration) &amp;&amp; !isinf(_contentDuration);

A nice way to write this is:

    return std::isfinite(_contentDuration);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316246</commentid>
    <comment_count>4</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2017-06-06 14:47:06 -0700</bug_when>
    <thetext>Thanks Darin! I addressed all of your comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316247</commentid>
    <comment_count>5</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2017-06-06 14:47:12 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/217858/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312114</attachid>
            <date>2017-06-06 13:25:47 -0700</date>
            <delta_ts>2017-06-06 14:06:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>24182</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYxIEBACisyMDE3LTA2LTA2ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBOZXRmbGl4IHNlZWtpbmcgcXVpcmsg
c2hvdWxkIGFsc28gYXBwbHkgdG8gTm93IFBsYXlpbmcsIGFuZCBzaG91bGQgYWx3YXlzIHVzZSB0
aGUgCisgICAgICAgIGxpdmVzdHJlYW0gVUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3MzAzMAorICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCisg
ICAgICAgIHJkYXI6Ly9wcm9ibGVtLzMyMjI4NjYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByb2xscyBvdXQgbXVjaCBvZiBodHRw
czovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjE3NzkxL3dlYmtpdCBpbiAKKyAgICAgICAg
ZmF2b3Igb2YgYW4gYXBwcm9hY2ggdGhhdCBjYW4gYmUgdXNlZCB0byBhcHBseSB0aGUgcXVpcmsg
dG8gTm93IFBsYXlpbmcgaW4gCisgICAgICAgIGFkZGl0aW9uIHRvIFRvdWNoIEJhci4gVGhpcyBw
YXRjaCBhbHNvIGNoYW5nZXMgdGhlIFVJIGluIGJvdGggVG91Y2ggQmFyIGFuZCBOb3cgCisgICAg
ICAgIFBsYXlpbmcgdG8gbWF0Y2ggbGl2ZSBzdHJlYW0gVUksIHdoaWNoIG1lYW5zIHRoZXJlIGlz
IG5vIHBsYXloZWFkLiBUaGlzIGhvcGVmdWxseSAKKyAgICAgICAgbWFrZXMgaXQgbGVzcyBjb25m
dXNpbmcgdGhhdCB0YXBzIG9uIHRoZSB0aW1lbGluZSB3aWxsIGhhdmUgbm8gZWZmZWN0LiAKKwor
ICAgICAgICBzdXBwb3J0c1NlZWtpbmcoKSBzaG91bGQgcmV0dXJuIGZhbHNlIGZvciBOZXRmbGl4
LiBUaGF0IGZ1bmN0aW9uIG5lZWRzIHRvIGJlIAorICAgICAgICBwdWJsaWMgbm93LgorICAgICAg
ICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpuZWVkc1Nl
ZWtpbmdTdXBwb3J0UXVpcmspOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
c3VwcG9ydHNTZWVraW5nKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKwor
ICAgICAgICBIZXJlIGlzIHdoZXJlIHdlIGdldCB0aGUgZGVzaXJlZCByZXN1bHQgaW4gTm93IFBs
YXlpbmcuIE1ha2Ugc3VyZSB0aGUgCisgICAgICAgIGN1cnJlbnRTZXNzaW9uIHN1cHBvcnRzU2Vl
a2luZygpIGJlZm9yZSByZWx5aW5nIG9uIHRoZSB0aW1lIGFuZCBkdXJhdGlvbiBpbmZvIGZvciAK
KyAgICAgICAgdGhlIHNha2Ugb2YgTm93IFBsYXlpbmcuIAorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2VyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uTWFuYWdlck1hYzo6dXBkYXRlTm93UGxheWluZ0luZm8pOgorCisgICAgICAgIFdl
IGNhbiByb2xsIG91dCBhbGxvd3NUb3VjaEJhclNjcnViYmluZygpIGFuZCByZWx5IG9uIHN1cHBv
cnRzU2Vla2luZygpLgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lv
bk1vZGVsLmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENsaWVu
dDo6bXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlBsYXliYWNrU2Vzc2lvbk1v
ZGVsQ2xpZW50OjphbGxvd3NUb3VjaEJhclNjcnViYmluZ0NoYW5nZWQpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50
Lmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRp
YUVsZW1lbnQubW06CisgICAgICAgIChXZWJDb3JlOjpXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1l
ZGlhRWxlbWVudDo6dXBkYXRlRm9yRXZlbnROYW1lKToKKworICAgICAgICBBbmQgaGVyZSBpcyB3
aGVyZSB3ZSBnZXQgdGhlIGRlc2lyZWQgcmVzdWx0IGZvciBUb3VjaCBCYXIuIE1ha2Ugc3VyZSB0
aGUgdGhlIG1lZGlhIAorICAgICAgICBlbGVtZW50IHN1cHBvcnRzU2Vla2luZygpIGJlZm9yZSBy
ZWx5aW5nIG9uIHRoZSBkdXJhdGlvbi4gCisgICAgICAgIChXZWJDb3JlOjpXZWJQbGF5YmFja1Nl
c3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6ZHVyYXRpb24pOgorCisgICAgICAgIFdlIGNhbiByb2xs
IG91dCBhbGxvd3NUb3VjaEJhclNjcnViYmluZygpIGFuZCByZWx5IG9uIHN1cHBvcnRzU2Vla2lu
ZygpLgorICAgICAgICAoV2ViQ29yZTo6V2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1l
bnQ6OmFsbG93c1RvdWNoQmFyU2NydWJiaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9XZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5oOgorCisgICAgICAgIEN1cnJl
bnRseSB0aGUgVG91Y2ggQmFyIGxpdmUgc3RyZWFtIFVJIGxldHMgeW91IHNlZWssIHdoaWNoIHJl
c3VsdHMgaW4gYnJva2VuIAorICAgICAgICBiZWhhdmlvciBvbiByZWFsIGxpdmUgc3RyZWFtcyBh
bmQgb24gTmV0ZmxpeC4gUHJldmVudCB0aGF0IGJ5IHByZXZlbnRpbmcgc2NydWJiaW5nIAorICAg
ICAgICBmb3IgTmFOIGFuZCBpbmZpbml0ZSBkdXJhdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0v
bWFjL1dlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyLm1tOgorICAgICAgICAoLVtXZWJQbGF5YmFj
a0NvbnRyb2xzTWFuYWdlciBjYW5CZWdpblRvdWNoQmFyU2NydWJiaW5nXSk6CisKKyAgICAgICAg
V2UgY2FuIHJvbGwgb3V0IGFsbG93c1RvdWNoQmFyU2NydWJiaW5nKCkgYW5kIHJlbHkgb24gc3Vw
cG9ydHNTZWVraW5nKCkuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYlBsYXliYWNrU2Vzc2lv
bkludGVyZmFjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJQbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpXZWJQbGF5YmFja1Nlc3Npb25J
bnRlcmZhY2VNYWM6OnNldFBsYXlCYWNrQ29udHJvbHNNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYzo6YWxsb3dzVG91Y2hCYXJTY3J1YmJp
bmdDaGFuZ2VkKTogRGVsZXRlZC4KKwogMjAxNy0wNi0wNiAgS29uc3RhbnRpbiBUb2thcmV2ICA8
YW5udWxlbkB5YW5kZXgucnU+CiAKICAgICAgICAgRml4IGNvbXBpbGF0aW9uIHdpdGggIUVOQUJM
RShTVkdfRk9OVFMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAJKHJldmlzaW9uIDIxNzc5MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcwODgsOCArNzA4OCwyNSBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmRpZFJlY2VpdmVSZW1vdGVDCiAgICAgfQogfQogCitzdGF0aWMgYm9vbCBu
ZWVkc1NlZWtpbmdTdXBwb3J0UXVpcmsoUGFnZSYgcGFnZSkKK3sKKyAgICBpZiAoIXBhZ2Uuc2V0
dGluZ3MoKS5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIAorICAgIGF1dG8qIGRvY3VtZW50ID0gcGFnZS5tYWluRnJhbWUoKS5kb2N1bWVu
dCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
ICAgIAorICAgIFN0cmluZyBob3N0ID0gZG9jdW1lbnQtPnVybCgpLmhvc3QoKTsKKyAgICByZXR1
cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoaG9zdCwgIm5ldGZsaXguY29tIikgfHwg
aG9zdC5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCIubmV0ZmxpeC5jb20iKTsKK30KKwogYm9v
bCBIVE1MTWVkaWFFbGVtZW50OjpzdXBwb3J0c1NlZWtpbmcoKSBjb25zdCAKIHsKKyAgICBpZiAo
UGFnZSogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpKSB7CisgICAgICAgIGlmIChuZWVkc1NlZWtp
bmdTdXBwb3J0UXVpcmsoKnBhZ2UpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
ICAgICByZXR1cm4gIWlzTGl2ZVN0cmVhbSgpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAkocmV2aXNpb24gMjE3NzkwKQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTUxOCw2ICs1MTgsOCBA
QCBwdWJsaWM6CiAgICAgYm9vbCBoYXNNZWRpYVN0cmVhbVNyY09iamVjdCgpIGNvbnN0IHsgcmV0
dXJuICEhbV9tZWRpYVN0cmVhbVNyY09iamVjdDsgfQogI2VuZGlmCiAKKyAgICBib29sIHN1cHBv
cnRzU2Vla2luZygpIGNvbnN0IG92ZXJyaWRlOworCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTE1lZGlh
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIGNyZWF0ZWRCeVBh
cnNlcik7CiAgICAgdmlydHVhbCB+SFRNTE1lZGlhRWxlbWVudCgpOwpAQCAtODE2LDcgKzgxOCw2
IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1lZGlhU2Vzc2lvbkN1cnJlbnRUaW1lKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gY3VycmVudFRpbWUoKTsgfQogICAgIGJvb2wgY2FuUmVjZWl2ZVJl
bW90ZUNvbnRyb2xDb21tYW5kcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAg
ICB2b2lkIGRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlLCBjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
UmVtb3RlQ29tbWFuZEFyZ3VtZW50Kikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBzdXBwb3J0c1NlZWtp
bmcoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBs
YXliYWNrUmVzdHJpY3Rpb24oUGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUp
IGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkT3ZlcnJpZGVCYWNrZ3JvdW5kTG9hZGlu
Z1Jlc3RyaWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBjYW5Qcm9kdWNlQXVkaW8o
KSBjb25zdCBmaW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9N
ZWRpYVNlc3Npb25NYW5hZ2VyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9NZWRpYVNlc3Npb25NYW5hZ2VyTWFjLm1tCShyZXZpc2lvbiAyMTc3
OTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvTWVkaWFTZXNzaW9uTWFu
YWdlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgTWVkaWFT
ZXNzaW9uTWFuYWdlck1hYzo6dXBkYXRlTm93UGwKICAgICB9KTsKIAogICAgIFN0cmluZyB0aXRs
ZSA9IGN1cnJlbnRTZXNzaW9uLT50aXRsZSgpOwotICAgIGRvdWJsZSBkdXJhdGlvbiA9IGN1cnJl
bnRTZXNzaW9uLT5kdXJhdGlvbigpOworICAgIGRvdWJsZSBkdXJhdGlvbiA9IGN1cnJlbnRTZXNz
aW9uLT5zdXBwb3J0c1NlZWtpbmcoKSA/IGN1cnJlbnRTZXNzaW9uLT5kdXJhdGlvbigpIDogTWVk
aWFQbGF5ZXI6OmludmFsaWRUaW1lKCk7CiAgICAgZG91YmxlIHJhdGUgPSBjdXJyZW50U2Vzc2lv
bi0+c3RhdGUoKSA9PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxheWluZyA/IDEgOiAwOwogICAg
IGF1dG8gaW5mbyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCA0LCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGlj
dGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CiAKQEAgLTE3NCw3ICsxNzQsNyBAQCB2b2lkIE1lZGlh
U2Vzc2lvbk1hbmFnZXJNYWM6OnVwZGF0ZU5vd1BsCiAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUo
aW5mby5nZXQoKSwga01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb1BsYXliYWNrUmF0ZSwgY2ZS
YXRlKTsKIAogICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IGN1cnJlbnRTZXNzaW9uLT5jdXJyZW50
VGltZSgpOwotICAgIGlmIChzdGQ6OmlzZmluaXRlKGN1cnJlbnRUaW1lKSAmJiBjdXJyZW50VGlt
ZSAhPSBNZWRpYVBsYXllcjo6aW52YWxpZFRpbWUoKSkgeworICAgIGlmIChzdGQ6OmlzZmluaXRl
KGN1cnJlbnRUaW1lKSAmJiBjdXJyZW50VGltZSAhPSBNZWRpYVBsYXllcjo6aW52YWxpZFRpbWUo
KSAmJiBjdXJyZW50U2Vzc2lvbi0+c3VwcG9ydHNTZWVraW5nKCkpIHsKICAgICAgICAgYXV0byBj
ZkN1cnJlbnRUaW1lID0gYWRvcHRDRihDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBrQ0ZOdW1iZXJEb3VibGVUeXBlLCAmY3VycmVudFRpbWUpKTsKICAgICAgICAgQ0ZEaWN0aW9u
YXJ5U2V0VmFsdWUoaW5mby5nZXQoKSwga01STWVkaWFSZW1vdGVOb3dQbGF5aW5nSW5mb0VsYXBz
ZWRUaW1lLCBjZkN1cnJlbnRUaW1lLmdldCgpKTsKICAgICAgICAgbV9sYXN0VXBkYXRlZE5vd1Bs
YXlpbmdFbGFwc2VkVGltZSA9IGN1cnJlbnRUaW1lOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbC5oCShyZXZp
c2lvbiAyMTc3OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFj
a1Nlc3Npb25Nb2RlbC5oCSh3b3JraW5nIGNvcHkpCkBAIC03OCw3ICs3OCw2IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIFN0cmluZyBleHRlcm5hbFBsYXliYWNrTG9jYWxpemVkRGV2aWNlTmFtZSgp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJs
ZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzTXV0ZWQoKSBjb25zdCA9IDA7Ci0g
ICAgdmlydHVhbCBib29sIGFsbG93c1RvdWNoQmFyU2NydWJiaW5nKCkgY29uc3QgPSAwOwogfTsK
IAogY2xhc3MgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQgewpAQCAtOTgsNyArOTcsNiBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGV4dGVybmFsUGxheWJhY2tDaGFuZ2VkKGJvb2wg
LyogZW5hYmxlZCAqLywgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWw6OkV4dGVybmFsUGxheWJhY2tU
YXJnZXRUeXBlLCBjb25zdCBTdHJpbmcmIC8qIGxvY2FsaXplZERldmljZU5hbWUgKi8pIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZENoYW5nZWQoYm9v
bCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG11dGVkQ2hhbmdlZChib29sKSB7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgYWxsb3dzVG91Y2hCYXJTY3J1YmJpbmdDaGFuZ2VkKGJvb2wpIHsgfQogfTsKIAog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9u
TW9kZWxNZWRpYUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5oCShyZXZpc2lvbiAy
MTc3OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Np
b25Nb2RlbE1lZGlhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw2IEBAIHB1
YmxpYzoKICAgICBTdHJpbmcgZXh0ZXJuYWxQbGF5YmFja0xvY2FsaXplZERldmljZU5hbWUoKSBj
b25zdCBmaW5hbDsKICAgICBib29sIHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCkgY29u
c3QgZmluYWw7CiAgICAgYm9vbCBpc011dGVkKCkgY29uc3QgZmluYWw7Ci0gICAgYm9vbCBhbGxv
d3NUb3VjaEJhclNjcnViYmluZygpIGNvbnN0IGZpbmFsOwogCiBwcm90ZWN0ZWQ6CiAgICAgV0VC
Q09SRV9FWFBPUlQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQoKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVk
aWFFbGVtZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tCShyZXZpc2lvbiAyMTc3OTEp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2Rl
bE1lZGlhRWxlbWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMzUsMTIgKzM1LDEwIEBACiAjaW1w
b3J0ICJIVE1MRWxlbWVudC5oIgogI2ltcG9ydCAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2ltcG9y
dCAiTG9nZ2luZy5oIgotI2ltcG9ydCAiTWFpbkZyYW1lLmgiCiAjaW1wb3J0ICJNZWRpYUNvbnRy
b2xzSG9zdC5oIgogI2ltcG9ydCAiTWVkaWFTZWxlY3Rpb25PcHRpb24uaCIKICNpbXBvcnQgIlBh
Z2UuaCIKICNpbXBvcnQgIlBhZ2VHcm91cC5oIgotI2ltcG9ydCAiU2V0dGluZ3MuaCIKICNpbXBv
cnQgIlNvZnRMaW5raW5nLmgiCiAjaW1wb3J0ICJUZXh0VHJhY2tMaXN0LmgiCiAjaW1wb3J0ICJU
aW1lUmFuZ2VzLmgiCkBAIC0xNzIsMTEgKzE3MCw2IEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9u
TW9kZWxNZWRpYUVsZW1lbnQKICAgICAgICAgZm9yIChhdXRvIGNsaWVudCA6IG1fY2xpZW50cykK
ICAgICAgICAgICAgIGNsaWVudC0+bXV0ZWRDaGFuZ2VkKGlzTXV0ZWQoKSk7CiAgICAgfQotICAg
IAotICAgIGlmIChhbGwpIHsKLSAgICAgICAgZm9yIChhdXRvIGNsaWVudCA6IG1fY2xpZW50cykK
LSAgICAgICAgICAgIGNsaWVudC0+YWxsb3dzVG91Y2hCYXJTY3J1YmJpbmdDaGFuZ2VkKGFsbG93
c1RvdWNoQmFyU2NydWJiaW5nKCkpOwotICAgIH0KIH0KIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9u
TW9kZWxNZWRpYUVsZW1lbnQ6OmFkZENsaWVudChXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENsaWVu
dCYgY2xpZW50KQogewpAQCAtMzYzLDcgKzM1Niw5IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgIFdl
YlBsYXliYWNrU2Vzc2lvbk0KIAogZG91YmxlIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFF
bGVtZW50OjpkdXJhdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbWVkaWFFbGVtZW50ID8g
bV9tZWRpYUVsZW1lbnQtPmR1cmF0aW9uKCkgOiAwOworICAgIGlmICghbV9tZWRpYUVsZW1lbnQp
CisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBtX21lZGlhRWxlbWVudC0+c3VwcG9ydHNT
ZWVraW5nKCkgPyBtX21lZGlhRWxlbWVudC0+ZHVyYXRpb24oKSA6IHN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CiB9CiAKIGRvdWJsZSBXZWJQbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudDo6Y3VycmVudFRpbWUoKSBjb25zdApAQCAtNTEzLDI2ICs1MDgsNiBA
QCBib29sIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50CiAgICAgcmV0dXJuIG1f
bWVkaWFFbGVtZW50ID8gbV9tZWRpYUVsZW1lbnQtPm11dGVkKCkgOiBmYWxzZTsKIH0KIAotYm9v
bCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6YWxsb3dzVG91Y2hCYXJTY3J1
YmJpbmcoKSBjb25zdAotewotICAgIGlmICghbV9tZWRpYUVsZW1lbnQpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgCi0gICAgUGFnZSogcGFnZSA9IG1fbWVkaWFFbGVtZW50LT5kb2N1
bWVudCgpLnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgCi0gICAgYXV0byogZG9jdW1lbnQgPSBwYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgp
OwotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgCi0g
ICAgaWYgKCFwYWdlLT5zZXR0aW5ncygpLm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkpCi0gICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICAKLSAgICBTdHJpbmcgaG9zdCA9IGRvY3VtZW50LT51
cmwoKS5ob3N0KCk7Ci0gICAgcmV0dXJuICEoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
aG9zdCwgIm5ldGZsaXguY29tIikgfHwgaG9zdC5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCIu
bmV0ZmxpeC5jb20iKSk7Ci19Ci0KIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQVZLaXQubW0JKHJldmlzaW9uIDIxNzc5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTE2Niw3ICsxNjYsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgd2lyZWxlc3NWaWRlb1Bs
YXliYWNrRGlzYWJsZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHRvZ2dsZVBpY3R1cmVJ
blBpY3R1cmUoKSBvdmVycmlkZSB7IH0KICAgICB2b2lkIHRvZ2dsZU11dGVkKCkgb3ZlcnJpZGU7
Ci0gICAgYm9vbCBhbGxvd3NUb3VjaEJhclNjcnViYmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGZhbHNlOyB9CiAKICAgICAvLyBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbENsaWVudAogICAg
IHZvaWQgZHVyYXRpb25DaGFuZ2VkKGRvdWJsZSkgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFn
ZXIuaAkocmV2aXNpb24gMjE3NzkxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dl
YlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDYg
QEAgQGludGVyZmFjZSBXZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlciA6IAogICAgIFJldGFpblB0
cjxBVlRvdWNoQmFyTWVkaWFTZWxlY3Rpb25PcHRpb24+IF9jdXJyZW50TGVnaWJsZVRvdWNoQmFy
TWVkaWFTZWxlY3Rpb25PcHRpb247CiAgICAgZmxvYXQgX3JhdGU7CiAgICAgQk9PTCBfY2FuVG9n
Z2xlUGxheWJhY2s7Ci0gICAgQk9PTCBfYWxsb3dzVG91Y2hCYXJTY3J1YmJpbmc7CiAKICAgICBS
ZWZQdHI8V2ViQ29yZTo6V2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjPiBfd2ViUGxheWJh
Y2tTZXNzaW9uSW50ZXJmYWNlTWFjOwogfQpAQCAtNjksNyArNjgsNiBAQCBAaW50ZXJmYWNlIFdl
YlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyIDogCiBAcHJvcGVydHkgQk9PTCBhbGxvd3NQaWN0dXJl
SW5QaWN0dXJlUGxheWJhY2s7CiBAcHJvcGVydHkgKGdldHRlcj1pc1BpY3R1cmVJblBpY3R1cmVB
Y3RpdmUpIEJPT0wgcGljdHVyZUluUGljdHVyZUFjdGl2ZTsKIEBwcm9wZXJ0eSBCT09MIGNhblRv
Z2dsZVBpY3R1cmVJblBpY3R1cmU7Ci1AcHJvcGVydHkgQk9PTCBhbGxvd3NUb3VjaEJhclNjcnVi
YmluZzsKIAogLSAoQVZUb3VjaEJhck1lZGlhU2VsZWN0aW9uT3B0aW9uICopY3VycmVudEF1ZGlv
VG91Y2hCYXJNZWRpYVNlbGVjdGlvbk9wdGlvbjsKIC0gKHZvaWQpc2V0Q3VycmVudEF1ZGlvVG91
Y2hCYXJNZWRpYVNlbGVjdGlvbk9wdGlvbjooQVZUb3VjaEJhck1lZGlhU2VsZWN0aW9uT3B0aW9u
ICopb3B0aW9uOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlBsYXliYWNr
Q29udHJvbHNNYW5hZ2VyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9XZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5tbQkocmV2aXNpb24gMjE3NzkxKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw2IEBAIFNPRlRfTElOS19DTEFTU19PUFRJT05B
TChBVktpdCwgQVZGdW5jdGkKIEBzeW50aGVzaXplIGFsbG93c1BpY3R1cmVJblBpY3R1cmVQbGF5
YmFjazsKIEBzeW50aGVzaXplIHBpY3R1cmVJblBpY3R1cmVBY3RpdmU7CiBAc3ludGhlc2l6ZSBj
YW5Ub2dnbGVQaWN0dXJlSW5QaWN0dXJlOwotQHN5bnRoZXNpemUgYWxsb3dzVG91Y2hCYXJTY3J1
YmJpbmc9X2FsbG93c1RvdWNoQmFyU2NydWJiaW5nOwogCiAtICh2b2lkKWRlYWxsb2MKIHsKQEAg
LTExNywxMSArMTE2LDExIEBAIC0gKHZvaWQpZ2VuZXJhdGVUb3VjaEJhckF1ZGlvQW1wbGl0dWRl
U2EKIAogLSAoQk9PTCljYW5CZWdpblRvdWNoQmFyU2NydWJiaW5nCiB7Ci0gICAgLy8gQXQgdGhp
cyB0aW1lLCBfYWxsb3dzVG91Y2hCYXJTY3J1YmJpbmcgaXMgYWx3YXlzIFlFUyBleGNlcHQgZm9y
IE5ldGZsaXgsIHdoaWNoIHJlcXVpcmVzIGEgcXVpcmsgdG8KLSAgICAvLyBkaXNhYmxlIHNjcnVi
YmluZy4gSXQncyBub3QgaWRlYWwgdG8gcmV0dXJuIFlFUyBmb3IgYWxsIG90aGVyIG1lZGlhLiBU
aGUgaW50ZW50IG9mIHRoZSBBUEkgaXMgdGhhdAotICAgIC8vIHdlIHJldHVybiBOTyB3aGVuIHRo
ZSBtZWRpYSBpcyBiZWluZyBzY3J1YmJlZCB2aWEgdGhlIG9uLXNjcmVlbiBzY3J1YmJlci4gQnV0
IHdlIGNhbiBvbmx5IHBvc3NpYmx5Ci0gICAgLy8gZ2V0IHRoZSByaWdodCBhbnN3ZXIgZm9yIG1l
ZGlhIHRoYXQgdXNlcyB0aGUgZGVmYXVsdCBjb250cm9scy4KLSAgICByZXR1cm4gX2FsbG93c1Rv
dWNoQmFyU2NydWJiaW5nOworICAgIC8vIEF0IHRoaXMgdGltZSwgd2UgcmV0dXJuIFlFUyBmb3Ig
YWxsIG1lZGlhIHRoYXQgaXMgbm90IGEgbGl2ZSBzdHJlYW0gYW5kIG1lZGlhIHRoYXQgaXMgbm90
IE5ldGZsaXguIChBIE5ldGZsaXgKKyAgICAvLyBxdWlyayBtZWFucyB3ZSBwcmV0ZW5kIE5ldGZs
aXggaXMgYSBsaXZlIHN0cmVhbSBmb3IgVG91Y2ggQmFyLikgSXQncyBub3QgaWRlYWwgdG8gcmV0
dXJuIFlFUyBhbGwgdGhlIHRpbWUgZm9yCisgICAgLy8gb3RoZXIgbWVkaWEuIFRoZSBpbnRlbnQg
b2YgdGhlIEFQSSBpcyB0aGF0IHdlIHJldHVybiBOTyB3aGVuIHRoZSBtZWRpYSBpcyBiZWluZyBz
Y3J1YmJlZCB2aWEgdGhlIG9uLXNjcmVlbiBzY3J1YmJlci4KKyAgICAvLyBCdXQgd2UgY2FuIG9u
bHkgcG9zc2libHkgZ2V0IHRoZSByaWdodCBhbnN3ZXIgZm9yIG1lZGlhIHRoYXQgdXNlcyB0aGUg
ZGVmYXVsdCBjb250cm9scy4KKyAgICByZXR1cm4gIWlzbmFuKF9jb250ZW50RHVyYXRpb24pICYm
ICFpc2luZihfY29udGVudER1cmF0aW9uKTsKIH0KIAogLSAodm9pZCliZWdpblRvdWNoQmFyU2Ny
dWJiaW5nCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tTZXNz
aW9uSW50ZXJmYWNlTWFjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1dlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5oCShyZXZpc2lvbiAyMTc3OTEpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
TWFjLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDYgQEAgcHVibGljOgogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgYXVkaW9NZWRpYVNlbGVjdGlvbkluZGV4Q2hhbmdlZCh1aW50NjRfdCkg
ZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBsZWdpYmxlTWVkaWFTZWxlY3Rpb25JbmRl
eENoYW5nZWQodWludDY0X3QpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXh0ZXJu
YWxQbGF5YmFja0NoYW5nZWQoYm9vbCAvKiBlbmFibGVkICovLCBXZWJQbGF5YmFja1Nlc3Npb25N
b2RlbDo6RXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUsIGNvbnN0IFN0cmluZyYgLyogbG9jYWxp
emVkRGV2aWNlTmFtZSAqLykgZmluYWw7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhbGxvd3NU
b3VjaEJhclNjcnViYmluZ0NoYW5nZWQoYm9vbCBhbGxvd3NUb3VjaEJhclNjcnViYmluZykgZmlu
YWw7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGludmFsaWRhdGUoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGVuc3VyZUNvbnRyb2xzTWFuYWdlcigpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tTZXNzaW9uSW50
ZXJmYWNlTWFjLm1tCShyZXZpc2lvbiAyMTc3OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xODYsMTUgKzE4Niw2IEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjOjpl
eHQKICNlbmRpZgogfQogCi12b2lkIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYzo6YWxs
b3dzVG91Y2hCYXJTY3J1YmJpbmdDaGFuZ2VkKGJvb2wgYWxsb3dzVG91Y2hCYXJTY3J1YmJpbmcp
Ci17Ci0jaWYgRU5BQkxFKFdFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSKQotICAgIFtwbGF5
QmFja0NvbnRyb2xzTWFuYWdlcigpIHNldEFsbG93c1RvdWNoQmFyU2NydWJiaW5nOmFsbG93c1Rv
dWNoQmFyU2NydWJiaW5nXTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGFsbG93c1RvdWNoQmFy
U2NydWJiaW5nKTsKLSNlbmRpZgotfQotCiB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFj
ZU1hYzo6aW52YWxpZGF0ZSgpCiB7CiAgICAgaWYgKCFtX3BsYXliYWNrU2Vzc2lvbk1vZGVsKQpA
QCAtMjM3LDcgKzIyOCw2IEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjOjpz
ZXQKICAgICBtYW5hZ2VyLnBsYXlpbmcgPSBtX3BsYXliYWNrU2Vzc2lvbk1vZGVsLT5pc1BsYXlp
bmcoKTsKICAgICBbbWFuYWdlciBzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uczptX3BsYXli
YWNrU2Vzc2lvbk1vZGVsLT5hdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucygpIHdpdGhTZWxlY3Rl
ZEluZGV4OnN0YXRpY19jYXN0PE5TVUludGVnZXI+KG1fcGxheWJhY2tTZXNzaW9uTW9kZWwtPmF1
ZGlvTWVkaWFTZWxlY3RlZEluZGV4KCkpXTsKICAgICBbbWFuYWdlciBzZXRMZWdpYmxlTWVkaWFT
ZWxlY3Rpb25PcHRpb25zOm1fcGxheWJhY2tTZXNzaW9uTW9kZWwtPmxlZ2libGVNZWRpYVNlbGVj
dGlvbk9wdGlvbnMoKSB3aXRoU2VsZWN0ZWRJbmRleDpzdGF0aWNfY2FzdDxOU1VJbnRlZ2VyPiht
X3BsYXliYWNrU2Vzc2lvbk1vZGVsLT5sZWdpYmxlTWVkaWFTZWxlY3RlZEluZGV4KCkpXTsKLSAg
ICBtYW5hZ2VyLmFsbG93c1RvdWNoQmFyU2NydWJiaW5nID0gbV9wbGF5YmFja1Nlc3Npb25Nb2Rl
bC0+YWxsb3dzVG91Y2hCYXJTY3J1YmJpbmcoKTsKIH0KIAogdm9pZCBXZWJQbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VNYWM6OnVwZGF0ZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyVGltaW5nKGRvdWJs
ZSBjdXJyZW50VGltZSwgZG91YmxlIGFuY2hvclRpbWUsIGRvdWJsZSBwbGF5YmFja1JhdGUsIGJv
b2wgaXNQbGF5aW5nKQpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMjE3ODUyKQorKysgU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTct
MDYtMDYgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIE5ldGZsaXgg
c2Vla2luZyBxdWlyayBzaG91bGQgYWxzbyBhcHBseSB0byBOb3cgUGxheWluZywgYW5kIHNob3Vs
ZCBhbHdheXMgdXNlIHRoZSAKKyAgICAgICAgbGl2ZXN0cmVhbSBVSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMDMwCisgICAgICAgIC1hbmQgY29y
cmVzcG9uZGluZy0KKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMzIyMjg2NjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgV2ViQ29yZSBDaGFuZ2VM
b2cgZm9yIG1vcmUgZGV0YWlscy4gV2UgY2FuIHJvbGwgb3V0IGFsbG93c1RvdWNoQmFyU2NydWJi
aW5nKCkgCisgICAgICAgIGFuZCByZWx5IG9uIHN1cHBvcnRzU2Vla2luZygpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1h
bmFnZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxheWJhY2tTZXNzaW9uTW9kZWxD
b250ZXh0OjpzZXRBbGxvd3NUb3VjaEJhclNjcnViYmluZyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6c2V0QWxsb3dzVG91Y2hCYXJT
Y3J1YmJpbmcpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJh
Y2tTZXNzaW9uTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJh
Y2tTZXNzaW9uTWFuYWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlQ29udGV4dDo6YWxsb3dzVG91Y2hCYXJTY3J1YmJpbmdDaGFuZ2VkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6YWxsb3dzVG91
Y2hCYXJTY3J1YmJpbmdDaGFuZ2VkKTogRGVsZXRlZC4KKwogMjAxNy0wNi0wNiAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIFNldCBkZWZhdWx0cyBm
b3IgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQgc2V0dGluZwpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMjE3NzkxKQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94
eS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dEV4dGVybmFsUGxheWJhY2soYm9vbCwgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWw6OkV4dGVybmFs
UGxheWJhY2tUYXJnZXRUeXBlLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNldFdpcmVsZXNz
VmlkZW9QbGF5YmFja0Rpc2FibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7Ci0g
ICAgdm9pZCBzZXRBbGxvd3NUb3VjaEJhclNjcnViYmluZyhib29sKTsKIAogcHJpdmF0ZToKICAg
ICBmcmllbmQgY2xhc3MgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0OwpAQCAtMTI5LDcg
KzEyOCw2IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGV4dGVybmFsUGxheWJhY2tMb2NhbGl6ZWRE
ZXZpY2VOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9leHRlcm5hbFBsYXliYWNrTG9jYWxp
emVkRGV2aWNlTmFtZTsgfQogICAgIGJvb2wgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3dpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkOyB9
CiAgICAgYm9vbCBpc011dGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9tdXRlZDsgfQotICAg
IGJvb2wgYWxsb3dzVG91Y2hCYXJTY3J1YmJpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Fs
bG93c1RvdWNoQmFyU2NydWJiaW5nOyB9CiAKICAgICBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
UHJveHkqIG1fbWFuYWdlcjsKICAgICB1aW50NjRfdCBtX2NvbnRleHRJZDsKQEAgLTE1Myw3ICsx
NTEsNiBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2V4dGVybmFsUGxheWJhY2tMb2NhbGl6ZWRE
ZXZpY2VOYW1lOwogICAgIGJvb2wgbV93aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1fYWxsb3dzVG91
Y2hCYXJTY3J1YmJpbmcgeyB0cnVlIH07CiB9OwogCiBjbGFzcyBXZWJQbGF5YmFja1Nlc3Npb25N
YW5hZ2VyUHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
UHJveHk+LCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKQEAgLTIwMCw3ICsxOTcsNiBA
QCBwcml2YXRlOgogICAgIHZvaWQgc2V0UmF0ZSh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgaXNQ
bGF5aW5nLCBkb3VibGUgcmF0ZSk7CiAgICAgdm9pZCBoYW5kbGVDb250cm9sbGVkRWxlbWVudElE
UmVzcG9uc2UodWludDY0X3QsIFN0cmluZykgY29uc3Q7CiAgICAgdm9pZCBzZXRNdXRlZCh1aW50
NjRfdCBjb250ZXh0SWQsIGJvb2wgbXV0ZWQpOwotICAgIHZvaWQgc2V0QWxsb3dzVG91Y2hCYXJT
Y3J1YmJpbmcodWludDY0X3QgY29udGV4dElkLCBib29sIGFsbG93c1RvdWNoQmFyU2NydWJiaW5n
KTsKIAogICAgIC8vIE1lc3NhZ2VzIHRvIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIKICAgICB2
b2lkIHBsYXkodWludDY0X3QgY29udGV4dElkKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vz
c2lvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjE3NzkxKQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNiBAQCBtZXNzYWdlcyAtPiBX
ZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJvCiAgICAgU2V0TXV0ZWQodWludDY0X3QgY29udGV4
dElkLCBib29sIG11dGVkKTsKICAgICBTZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyV2l0aElE
KHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBDbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkK
LSAgICBTZXRBbGxvd3NUb3VjaEJhclNjcnViYmluZyh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wg
YWxsb3dzVG91Y2hCYXJTY3J1YmJpbmcpCiAKICAgICBIYW5kbGVDb250cm9sbGVkRWxlbWVudElE
UmVzcG9uc2UodWludDY0X3QgY29udGV4dElkLCBTdHJpbmcgaWQpCiB9CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyUHJveHkubW0JKHJldmlzaW9uIDIxNzc5MSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubW0JKHdv
cmtpbmcgY29weSkKQEAgLTI1MSwxMyArMjUxLDYgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25N
b2RlbENvbnRleHQ6OnNldAogICAgICAgICBjbGllbnQtPm11dGVkQ2hhbmdlZChtdXRlZCk7CiB9
CiAKLXZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OjpzZXRBbGxvd3NUb3VjaEJh
clNjcnViYmluZyhib29sIGFsbG93c1RvdWNoQmFyU2NydWJiaW5nKQotewotICAgIG1fYWxsb3dz
VG91Y2hCYXJTY3J1YmJpbmcgPSBhbGxvd3NUb3VjaEJhclNjcnViYmluZzsKLSAgICBmb3IgKGF1
dG8qIGNsaWVudCA6IG1fY2xpZW50cykKLSAgICAgICAgY2xpZW50LT5hbGxvd3NUb3VjaEJhclNj
cnViYmluZ0NoYW5nZWQoYWxsb3dzVG91Y2hCYXJTY3J1YmJpbmcpOwotfQotCiAjcHJhZ21hIG1h
cmsgLSBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkKIAogUmVmUHRyPFdlYlBsYXliYWNr
U2Vzc2lvbk1hbmFnZXJQcm94eT4gV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpjcmVh
dGUoV2ViUGFnZVByb3h5JiBwYWdlKQpAQCAtNDM5LDExICs0MzIsNiBAQCB2b2lkIFdlYlBsYXli
YWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6c2V0CiAgICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS5z
ZXRNdXRlZChtdXRlZCk7CiB9CiAKLXZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5
OjpzZXRBbGxvd3NUb3VjaEJhclNjcnViYmluZyh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgYWxs
b3dzVG91Y2hCYXJTY3J1YmJpbmcpCi17Ci0gICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS5zZXRB
bGxvd3NUb3VjaEJhclNjcnViYmluZyhhbGxvd3NUb3VjaEJhclNjcnViYmluZyk7Ci19Ci0KIHZv
aWQgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpzZXREdXJhdGlvbih1aW50NjRfdCBj
b250ZXh0SWQsIGRvdWJsZSBkdXJhdGlvbikKIHsKICAgICBlbnN1cmVNb2RlbChjb250ZXh0SWQp
LnNldER1cmF0aW9uKGR1cmF0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oCShyZXZp
c2lvbiAyMTc3OTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXli
YWNrU2Vzc2lvbk1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtODgsNyArODgsNiBAQCBwcml2
YXRlOgogICAgIHZvaWQgZXh0ZXJuYWxQbGF5YmFja0NoYW5nZWQoYm9vbCBlbmFibGVkLCBXZWJD
b3JlOjpXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbDo6RXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUs
IGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGV2aWNlTmFtZSkgZmluYWw7CiAgICAgdm9pZCB3aXJl
bGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZENoYW5nZWQoYm9vbCkgZmluYWw7CiAgICAgdm9pZCBt
dXRlZENoYW5nZWQoYm9vbCkgZmluYWw7Ci0gICAgdm9pZCBhbGxvd3NUb3VjaEJhclNjcnViYmlu
Z0NoYW5nZWQoYm9vbCkgZmluYWw7CiAKICAgICBXZWJQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VD
b250ZXh0KFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXImLCB1aW50NjRfdCBjb250ZXh0SWQpOwog
CkBAIC0xMzgsNyArMTM3LDYgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZXh0ZXJuYWxQbGF5YmFj
a0NoYW5nZWQodWludDY0X3QgY29udGV4dElkLCBib29sIGVuYWJsZWQsIFdlYkNvcmU6OldlYlBs
YXliYWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgU3RyaW5nIGxv
Y2FsaXplZERldmljZU5hbWUpOwogICAgIHZvaWQgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJs
ZWRDaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCk7CiAgICAgdm9pZCBtdXRlZENoYW5n
ZWQodWludDY0X3QgY29udGV4dElkLCBib29sKTsKLSAgICB2b2lkIGFsbG93c1RvdWNoQmFyU2Ny
dWJiaW5nQ2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wpOwogCiAgICAgLy8gTWVzc2Fn
ZXMgZnJvbSBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkKICAgICB2b2lkIHBsYXkodWlu
dDY0X3QgY29udGV4dElkKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2Ev
V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0JKHJldmlzaW9u
IDIxNzc5MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUGxheWJhY2tT
ZXNzaW9uTWFuYWdlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMTU1LDEyICsxNTUsNiBAQCB2b2lk
IFdlYlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUNvbnRleHQ6CiAgICAgICAgIG1fbWFuYWdlci0+
bXV0ZWRDaGFuZ2VkKG1fY29udGV4dElkLCBtdXRlZCk7CiB9CiAKLXZvaWQgV2ViUGxheWJhY2tT
ZXNzaW9uSW50ZXJmYWNlQ29udGV4dDo6YWxsb3dzVG91Y2hCYXJTY3J1YmJpbmdDaGFuZ2VkKGJv
b2wgYWxsb3dzVG91Y2hCYXJTY3J1YmJpbmcpCi17Ci0gICAgaWYgKG1fbWFuYWdlcikKLSAgICAg
ICAgbV9tYW5hZ2VyLT5hbGxvd3NUb3VjaEJhclNjcnViYmluZ0NoYW5nZWQobV9jb250ZXh0SWQs
IGFsbG93c1RvdWNoQmFyU2NydWJiaW5nKTsKLX0KLQogI3ByYWdtYSBtYXJrIC0gV2ViUGxheWJh
Y2tTZXNzaW9uTWFuYWdlcgogCiBSZWY8V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcj4gV2ViUGxh
eWJhY2tTZXNzaW9uTWFuYWdlcjo6Y3JlYXRlKFdlYlBhZ2UmIHBhZ2UpCkBAIC0zNzUsMTEgKzM2
OSw2IEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6bXV0ZWRDaGEKICAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6U2V0TXV0
ZWQoY29udGV4dElkLCBtdXRlZCkpOwogfQogCi12b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXI6OmFsbG93c1RvdWNoQmFyU2NydWJiaW5nQ2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIGJv
b2wgYWxsb3dzVG91Y2hCYXJTY3J1YmJpbmcpCi17Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OlNldEFsbG93c1RvdWNoQmFyU2NydWJi
aW5nKGNvbnRleHRJZCwgYWxsb3dzVG91Y2hCYXJTY3J1YmJpbmcpLCBtX3BhZ2UtPnBhZ2VJRCgp
KTsKLX0KLQogI3ByYWdtYSBtYXJrIE1lc3NhZ2VzIGZyb20gV2ViUGxheWJhY2tTZXNzaW9uTWFu
YWdlclByb3h5OgogCiB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6OnBsYXkodWludDY0
X3QgY29udGV4dElkKQo=
</data>
<flag name="review"
          id="333051"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>