<?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>158196</bug_id>
          
          <creation_ts>2016-05-29 22:16:41 -0700</creation_ts>
          <short_desc>Transition various Task/Function queues from std::function to NoncopyableFunction</short_desc>
          <delta_ts>2016-05-29 23:52:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>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>
          
          <blocked>158173</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1197538</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-05-29 22:16:41 -0700</bug_when>
    <thetext>Transition various Task/Function queues from std::function to NoncopyableFunction

Another smaller step towards https://bugs.webkit.org/show_bug.cgi?id=158173</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197539</commentid>
    <comment_count>1</comment_count>
      <attachid>280070</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-05-29 22:22:45 -0700</bug_when>
    <thetext>Created attachment 280070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197540</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-29 22:33:09 -0700</bug_when>
    <thetext>Patch does not apply</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197543</commentid>
    <comment_count>3</comment_count>
      <attachid>280070</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-05-29 22:39:17 -0700</bug_when>
    <thetext>Comment on attachment 280070
Patch

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

R=me with a couple of comments

&gt; Source/WebCore/html/HTMLMediaElement.cpp:3997
&gt; +    NoncopyableFunction&lt;void()&gt; task = [this, protectedThis = Ref&lt;Element&gt;(*this)] {

Could use &quot;auto task = ...&quot;

&gt; Source/WebCore/page/FrameView.cpp:3150
&gt; +    queue.swap(m_postLayoutCallbackQueue);

I thought we preferred to use WTFMove() for these sort of things these days:
Vector&lt;NoncopyableFunction&lt;void()&gt;&gt; queue = WTFMove(m_postLayoutCallbackQueue);

&gt; Source/WebCore/platform/GenericTaskQueue.h:87
&gt;      void enqueueTask(TaskFunction task)

Should be a TaskFunction&amp;&amp; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197545</commentid>
    <comment_count>4</comment_count>
      <attachid>280073</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-05-29 23:07:38 -0700</bug_when>
    <thetext>Created attachment 280073
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197548</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-29 23:08:24 -0700</bug_when>
    <thetext>Attachment 280073 did not pass style-queue:


ERROR: Source/WebCore/style/StyleTreeResolver.cpp:524:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/style/StyleTreeResolver.cpp:526:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/style/StyleTreeResolver.cpp:530:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/style/StyleTreeResolver.h:113:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 4 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197552</commentid>
    <comment_count>6</comment_count>
      <attachid>280073</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-29 23:52:21 -0700</bug_when>
    <thetext>Comment on attachment 280073
Patch

Clearing flags on attachment: 280073

Committed r201497: &lt;http://trac.webkit.org/changeset/201497&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197553</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-29 23:52:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280070</attachid>
            <date>2016-05-29 22:22:45 -0700</date>
            <delta_ts>2016-05-29 23:07:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158196-20160529222359.patch</filename>
            <type>text/plain</type>
            <size>18202</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzUwZjkxOGU2MTdjZDE4
ODIxNjA1OGIxNzYwNzI0MDFjODcwZDRiNi4uMjFkYjQ4YTQ5YmI0NTBmNTZkZWY0NTYyNDQxOGNk
OTc0MTUyNDk3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA1LTI5ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBUcmFuc2l0aW9uIHZhcmlv
dXMgVGFzay9GdW5jdGlvbiBxdWV1ZXMgZnJvbSBzdGQ6OmZ1bmN0aW9uIHRvIE5vbmNvcHlhYmxl
RnVuY3Rpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTgxOTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgKFJlZmFjdG9yLCBubyBiZWhhdmlvciBjaGFuZ2UpLgorCisgICAgICAg
ICogZG9tL0FjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrOjpBY3RpdmVET01DYWxsYmFja01pY3JvdGFzayk6
CisgICAgICAgICogZG9tL0FjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmg6CisKKyAgICAgICAg
KiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6bGF5b3V0U2l6ZUNoYW5nZWQpOgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpxdWV1ZVBvc3RMYXlvdXRDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmZsdXNoUG9zdExheW91dFRhc2tzUXVl
dWUpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9H
ZW5lcmljVGFza1F1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRhc2tEaXNwYXRjaGVyPFRp
bWVyPjo6cG9zdFRhc2spOgorICAgICAgICAoV2ViQ29yZTo6VGFza0Rpc3BhdGNoZXI8VGltZXI+
OjpkaXNwYXRjaE9uZVRhc2spOgorICAgICAgICAqIHBsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlRhc2tEaXNwYXRjaGVyOjpwb3N0VGFzayk6CisgICAgICAg
IChXZWJDb3JlOjpHZW5lcmljVGFza1F1ZXVlOjplbnF1ZXVlVGFzayk6CisKKyAgICAgICAgKiBz
dHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6cG9z
dFJlc29sdXRpb25DYWxsYmFja1F1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpxdWV1
ZVBvc3RSZXNvbHV0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OnN1c3Bl
bmRNZW1vcnlDYWNoZUNsaWVudENhbGxzKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVRyZWVSZXNv
bHZlci5oOgorCiAyMDE2LTA1LTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGVtcGxhdGl6ZSBOb25jb3B5YWJsZUZ1bmN0aW9uIGNsYXNzIHNpbWlsYXJseSB0
byBzdGQ6OmZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdFRhc2suY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01HbG9iYWxPYmplY3RUYXNrLmNwcAppbmRleCA5ZjM2ZWQzOTliMzNiZGNkOTkxYjg3ZjllNTA5
MGE4ODczNTk5NTM2Li41Yjk1OWQyY2UwYjJiMzczMWM1N2U0ODBiY2ExOTg1ZTU0MDlmNDExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdFRh
c2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0
VGFzay5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKIH07CiAKIEpTR2xvYmFsT2JqZWN0
VGFzazo6SlNHbG9iYWxPYmplY3RUYXNrKEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFJlZjxNaWNyb3Rhc2s+JiYgdGFzaykKLSAgICA6IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRh
c2sobnVsbHB0cikKKyAgICA6IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2soeyB9KQogewog
ICAgIFJlZlB0cjxKU0dsb2JhbE9iamVjdENhbGxiYWNrPiBjYWxsYmFjayA9IEpTR2xvYmFsT2Jq
ZWN0Q2FsbGJhY2s6OmNyZWF0ZShnbG9iYWxPYmplY3QsIFdURk1vdmUodGFzaykpOwogICAgIG1f
dGFzayA9IFtjYWxsYmFja10gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmNwcAppbmRleCAzZDIz
ZWVmOTcwOTQwY2VlNTFmZGFkMjZmOGUyNDRhOTFhMWFjOWYzLi43YWEyMjY5ZjRjNWZlMTE3MzA4
NjNjZjIxMzJmZmZkODI2OTIyZTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0
aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3Rp
dmVET01DYWxsYmFja01pY3JvdGFzay5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1BY3RpdmVET01DYWxsYmFja01pY3JvdGFzazo6QWN0aXZlRE9NQ2FsbGJh
Y2tNaWNyb3Rhc2soTWljcm90YXNrUXVldWUmIHF1ZXVlLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKQor
QWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2s6OkFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrKE1p
Y3JvdGFza1F1ZXVlJiBxdWV1ZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgTm9uY29weWFibGVGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKICAgICA6IEFj
dGl2ZURPTUNhbGxiYWNrKCZzY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICwgbV9xdWV1ZShx
dWV1ZSkKICAgICAsIG1fdGFzayhXVEZNb3ZlKHRhc2spKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0FjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaAppbmRleCBkMDA5MzRiZjhkMWVjYThkNTcy
OGZlMzE0Yjc4ZGQ1Y2NmM2U1ZGNiLi43MzQ0MDRjZGZhZWFmYjk4NWU1NmZkZTRlYzBmMTIxZWM0
Yjc2NWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NQ2FsbGJhY2tN
aWNyb3Rhc2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NQ2FsbGJhY2tNaWNy
b3Rhc2suaApAQCAtMjgsMTQgKzI4LDE0IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01DYWxsYmFj
ay5oIgogI2luY2x1ZGUgIk1pY3JvdGFza3MuaCIKLSNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZUZ1bmN0aW9uLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2sgZmluYWwgOiBwdWJsaWMgTWljcm90
YXNrLCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2sgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIEFjdGl2ZURPTUNhbGxiYWNrTWljcm90
YXNrKE1pY3JvdGFza1F1ZXVlJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6ZnVuY3Rp
b248dm9pZCgpPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBBY3RpdmVET01DYWxsYmFja01pY3Jv
dGFzayhNaWNyb3Rhc2tRdWV1ZSYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBOb25jb3B5YWJs
ZUZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+QWN0aXZl
RE9NQ2FsbGJhY2tNaWNyb3Rhc2soKTsKIAogICAgIFJlc3VsdCBydW4oKSBvdmVycmlkZTsKQEAg
LTQ3LDcgKzQ3LDcgQEAgcHJpdmF0ZToKICAgICAvLyBiZSBhY2Nlc3NlZCB2aWEgdGhlIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIHdoaWNoIHNob3VsZCBob2xkIGEgcmVmZXJlbmNlIHRvIHRoZSBy
ZWxldmVudAogICAgIC8vIHF1ZXVlLgogICAgIE1pY3JvdGFza1F1ZXVlJiBtX3F1ZXVlOwotICAg
IHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX3Rhc2s7CisgICAgTm9uY29weWFibGVGdW5jdGlvbjx2
b2lkKCk+IG1fdGFzazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCmluZGV4IDZjNmIzMWM1MDdiZjUwZDZlNjQ5OWJlOGU2NmJlZjYzYTU3ZTBkMTUu
LmNmYjQ3YjU2YThkOTcyYWJiMDRiMzQ4YWE2NTFmOGZmMDNkYjBkMWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcApAQCAtNTM4NCw3ICs1Mzg0LDcgQEAgU2VjdXJpdHlPcmlnaW4qIERvY3VtZW50
Ojp0b3BPcmlnaW4oKSBjb25zdAogICAgIHJldHVybiB0b3BEb2N1bWVudCgpLnNlY3VyaXR5T3Jp
Z2luKCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnBvc3RUYXNrKFRhc2sgdGFzaykKK3ZvaWQgRG9j
dW1lbnQ6OnBvc3RUYXNrKFRhc2smJiB0YXNrKQogewogICAgIGNhbGxPbk1haW5UaHJlYWQoW2Rv
Y3VtZW50UmVmZXJlbmNlID0gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIHRhc2sgPSBX
VEZNb3ZlKHRhc2spXSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA2NTgxOWRmZDNiNDgxZDRkNzQzNzQ0NWFkMWM5ZmE0
YjU3ZWYyYThhLi4xMmJhYTIwYWM5ZDMxMDJkMmVjMjhhODM5ZWM2ODAyMGRlNDFmYTRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaApAQCAtOTc1LDcgKzk3NSw3IEBAIHB1YmxpYzoKICAgICBib29sIGlz
RE5TUHJlZmV0Y2hFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0ROU1ByZWZldGNoRW5hYmxl
ZDsgfQogICAgIHZvaWQgcGFyc2VETlNQcmVmZXRjaENvbnRyb2xIZWFkZXIoY29uc3QgU3RyaW5n
Jik7CiAKLSAgICB2b2lkIHBvc3RUYXNrKFRhc2spIGZpbmFsOyAvLyBFeGVjdXRlcyB0aGUgdGFz
ayBvbiBjb250ZXh0J3MgdGhyZWFkIGFzeW5jaHJvbm91c2x5LgorICAgIHZvaWQgcG9zdFRhc2so
VGFzayYmKSBmaW5hbDsgLy8gRXhlY3V0ZXMgdGhlIHRhc2sgb24gY29udGV4dCdzIHRocmVhZCBh
c3luY2hyb25vdXNseS4KIAogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICAg
ICBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIqIHNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxl
cigpIHsgcmV0dXJuIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmdldCgpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCA0YWQwMGIzYjFk
MWUyZTI1YWQ0MDk2M2Y3YTc1NjA3MDUwODRjMDA2Li4yNmVhNWQ5MjBkNzZkMTY1OTYxYzk4ZjE1
ODM1ZDM2OThhYjc4NDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgog
I2luY2x1ZGUgPHJ1bnRpbWUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGVGdW5jdGlvbi5oPgogCiBuYW1lc3BhY2UgSlND
IHsKIGNsYXNzIEV4ZWNTdGF0ZTsKQEAgLTEzMiwyMCArMTMzLDIwIEBAIHB1YmxpYzoKICAgICBw
dWJsaWM6CiAgICAgICAgIGVudW0gQ2xlYW51cFRhc2tUYWcgeyBDbGVhbnVwVGFzayB9OwogCi0g
ICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gdHlwZW5hbWUgc3RkOjplbmFi
bGVfaWY8IXN0ZDo6aXNfYmFzZV9vZjxUYXNrLCBUPjo6dmFsdWUgJiYgc3RkOjppc19jb252ZXJ0
aWJsZTxULCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKT4+Ojp2
YWx1ZT46OnR5cGU+CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gdHlw
ZW5hbWUgc3RkOjplbmFibGVfaWY8IXN0ZDo6aXNfYmFzZV9vZjxUYXNrLCBUPjo6dmFsdWUgJiYg
c3RkOjppc19jb252ZXJ0aWJsZTxULCBOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmKT4+Ojp2YWx1ZT46OnR5cGU+CiAgICAgICAgIFRhc2soVCB0YXNrKQog
ICAgICAgICAgICAgOiBtX3Rhc2soV1RGTW92ZSh0YXNrKSkKICAgICAgICAgICAgICwgbV9pc0Ns
ZWFudXBUYXNrKGZhbHNlKQogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICBUYXNrKHN0
ZDo6ZnVuY3Rpb248dm9pZCgpPiB0YXNrKQorICAgICAgICBUYXNrKHN0ZDo6ZnVuY3Rpb248dm9p
ZCAoKT4gdGFzaykKICAgICAgICAgICAgIDogbV90YXNrKFt0YXNrXShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JikgeyB0YXNrKCk7IH0pCiAgICAgICAgICAgICAsIG1faXNDbGVhbnVwVGFzayhmYWxz
ZSkKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwg
dHlwZW5hbWUgPSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX2NvbnZlcnRpYmxlPFQs
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPj46OnZhbHVlPjo6
dHlwZT4KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSB0eXBlbmFtZSBz
dGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX2NvbnZlcnRpYmxlPFQsIE5vbmNvcHlhYmxlRnVuY3Rpb248
dm9pZCAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPj46OnZhbHVlPjo6dHlwZT4KICAgICAgICAg
VGFzayhDbGVhbnVwVGFza1RhZywgVCB0YXNrKQogICAgICAgICAgICAgOiBtX3Rhc2soV1RGTW92
ZSh0YXNrKSkKICAgICAgICAgICAgICwgbV9pc0NsZWFudXBUYXNrKHRydWUpCkBAIC0xNjIsMTEg
KzE2MywxMSBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgaXNDbGVhbnVwVGFzaygpIGNvbnN0IHsg
cmV0dXJuIG1faXNDbGVhbnVwVGFzazsgfQogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBzdGQ6
OmZ1bmN0aW9uPHZvaWQgKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKT4gbV90YXNrOworICAgICAg
ICBOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKT4gbV90
YXNrOwogICAgICAgICBib29sIG1faXNDbGVhbnVwVGFzazsKICAgICB9OwogCi0gICAgdmlydHVh
bCB2b2lkIHBvc3RUYXNrKFRhc2spID0gMDsgLy8gRXhlY3V0ZXMgdGhlIHRhc2sgb24gY29udGV4
dCdzIHRocmVhZCBhc3luY2hyb25vdXNseS4KKyAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2soVGFz
ayYmKSA9IDA7IC8vIEV4ZWN1dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQncyB0aHJlYWQgYXN5bmNo
cm9ub3VzbHkuCiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgdm9p
ZCBwb3N0Q3Jvc3NUaHJlYWRUYXNrKEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDMzNjA4MDQxN2UxYTE4MDI0YTk4
Yjg1NWM3MmNkMjgwNTBlMDgzYmIuLmQ5NDhhOTlkY2FlMmE3ZjNhZGM1NmIxMWZhNjI3NTQxN2My
YmQwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMzk5
NCwxMiArMzk5NCwxMSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZUNhcHRpb25Db250
YWluZXIoKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpsYXlvdXRTaXplQ2hhbmdlZCgpCiB7CiAj
aWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX1NDUklQVCkKLSAgICBSZWZQdHI8SFRNTE1lZGlhRWxl
bWVudD4gc3Ryb25nVGhpcyA9IHRoaXM7Ci0gICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IHRhc2sg
PSBbc3Ryb25nVGhpc10gewotICAgICAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHN0cm9uZ1Ro
aXMtPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkKKyAgICBOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQo
KT4gdGFzayA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmPEVsZW1lbnQ+KCp0aGlzKV0gewor
ICAgICAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkKICAg
ICAgICAgICAgIHJvb3QtPmRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZSgicmVzaXplIiwgZmFs
c2UsIGZhbHNlKSk7CiAgICAgfTsKLSAgICBtX3Jlc2l6ZVRhc2tRdWV1ZS5lbnF1ZXVlVGFzayh0
YXNrKTsKKyAgICBtX3Jlc2l6ZVRhc2tRdWV1ZS5lbnF1ZXVlVGFzayhXVEZNb3ZlKHRhc2spKTsK
ICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggZjUxYmNjYjFiODU5
NmY3MGM0N2FhYjFhOGIzYzVlMDg5YTQ5YWI2MC4uNzQyNWMyN2RjMjVmNmIxMmYyNzE2MWJhNTIx
M2Q3MDhhOGM4Zjg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzEzMyw5ICsz
MTMzLDkgQEAgdm9pZCBGcmFtZVZpZXc6OmZsdXNoQW55UGVuZGluZ1Bvc3RMYXlvdXRUYXNrcygp
CiAgICAgICAgIHVwZGF0ZUVtYmVkZGVkT2JqZWN0c1RpbWVyRmlyZWQoKTsKIH0KIAotdm9pZCBG
cmFtZVZpZXc6OnF1ZXVlUG9zdExheW91dENhbGxiYWNrKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBj
YWxsYmFjaykKK3ZvaWQgRnJhbWVWaWV3OjpxdWV1ZVBvc3RMYXlvdXRDYWxsYmFjayhOb25jb3B5
YWJsZUZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKLSAgICBtX3Bvc3RMYXlvdXRDYWxs
YmFja1F1ZXVlLmFwcGVuZChjYWxsYmFjayk7CisgICAgbV9wb3N0TGF5b3V0Q2FsbGJhY2tRdWV1
ZS5hcHBlbmQoV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6Zmx1c2hQ
b3N0TGF5b3V0VGFza3NRdWV1ZSgpCkBAIC0zMTQ2LDEwICszMTQ2LDEwIEBAIHZvaWQgRnJhbWVW
aWV3OjpmbHVzaFBvc3RMYXlvdXRUYXNrc1F1ZXVlKCkKICAgICBpZiAoIW1fcG9zdExheW91dENh
bGxiYWNrUXVldWUuc2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zdCBhdXRvIHF1
ZXVlID0gbV9wb3N0TGF5b3V0Q2FsbGJhY2tRdWV1ZTsKLSAgICBtX3Bvc3RMYXlvdXRDYWxsYmFj
a1F1ZXVlLmNsZWFyKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBxdWV1ZS5zaXplKCk7
ICsraSkKLSAgICAgICAgcXVldWVbaV0oKTsKKyAgICBWZWN0b3I8Tm9uY29weWFibGVGdW5jdGlv
bjx2b2lkKCk+PiBxdWV1ZTsKKyAgICBxdWV1ZS5zd2FwKG1fcG9zdExheW91dENhbGxiYWNrUXVl
dWUpOworICAgIGZvciAoYXV0byYgdGFzayA6IHF1ZXVlKQorICAgICAgICB0YXNrKCk7CiB9CiAK
IHZvaWQgRnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCmluZGV4IDI5MGM5ZWVkM2I4N2VhMGJmMzQ5ZDNlOGMyOTJhNzVlZmU2ZWZlZDAuLmY3
NWI3YzFhOWY3ZmRmN2I1YWJmNWQxMzU5Y2Y1NjJjODg5MWUwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuaApAQCAtNCw3ICs0LDcgQEAKICAgICAgICAgICAgICAoQykgMTk5OCwgMTk5OSBUb3Ji
ZW4gV2VpcyAod2Vpc0BrZGUub3JnKQogICAgICAgICAgICAgIChDKSAxOTk5IExhcnMgS25vbGwg
KGtub2xsQGtkZS5vcmcpCiAgICAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtv
aXZpc3RvQGtkZS5vcmcpCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOSwgMjAxNC0yMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDA5
LCAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogCiAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KKyNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGVGdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTEsNyArMTEyLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2NoZWR1bGVSZWxheW91dCgpOwogICAgIHZvaWQgc2NoZWR1bGVSZWxheW91dE9m
U3VidHJlZShSZW5kZXJFbGVtZW50Jik7CiAgICAgdm9pZCB1bnNjaGVkdWxlUmVsYXlvdXQoKTsK
LSAgICB2b2lkIHF1ZXVlUG9zdExheW91dENhbGxiYWNrKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPik7
CisgICAgdm9pZCBxdWV1ZVBvc3RMYXlvdXRDYWxsYmFjayhOb25jb3B5YWJsZUZ1bmN0aW9uPHZv
aWQoKT4mJik7CiAgICAgYm9vbCBsYXlvdXRQZW5kaW5nKCkgY29uc3Q7CiAgICAgYm9vbCBpc0lu
TGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRQaGFzZSAhPSBPdXRzaWRlTGF5b3V0OyB9
CiAgICAgYm9vbCBpc0luUmVuZGVyVHJlZUxheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0
UGhhc2UgPT0gSW5SZW5kZXJUcmVlTGF5b3V0OyB9CkBAIC04MjgsNyArODI5LDcgQEAgcHJpdmF0
ZToKICAgICBTY3JvbGxQaW5uaW5nQmVoYXZpb3IgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3I7CiAK
ICAgICBJbnRSZWN0KiBtX2NhY2hlZFdpbmRvd0NsaXBSZWN0IHsgbnVsbHB0ciB9OwotICAgIFZl
Y3RvcjxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4+IG1fcG9zdExheW91dENhbGxiYWNrUXVldWU7Cisg
ICAgVmVjdG9yPE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCgpPj4gbV9wb3N0TGF5b3V0Q2FsbGJh
Y2tRdWV1ZTsKIH07CiAKIGlubGluZSB2b2lkIEZyYW1lVmlldzo6aW5jcmVtZW50VmlzdWFsbHlO
b25FbXB0eUNoYXJhY3RlckNvdW50KHVuc2lnbmVkIGNvdW50KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmNwcAppbmRleCA0NWE4MWRlNTliYWFhMDgxODdiOGI1
OGUxNDE2ZWM0N2IyNTZhYjE3Li4wYzZjMjQzYjhlMDhjYTEyYjg5NjZkOWZhYWNjZGU0MjIyZjkw
MTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmNwcApA
QCAtMzYsNyArMzYsNyBAQCBUYXNrRGlzcGF0Y2hlcjxUaW1lcj46OlRhc2tEaXNwYXRjaGVyKCkK
IHsKIH0KIAotdm9pZCBUYXNrRGlzcGF0Y2hlcjxUaW1lcj46OnBvc3RUYXNrKHN0ZDo6ZnVuY3Rp
b248dm9pZCgpPiBmdW5jdGlvbikKK3ZvaWQgVGFza0Rpc3BhdGNoZXI8VGltZXI+Ojpwb3N0VGFz
ayhOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKIHsKICAgICBtX3BlbmRp
bmdUYXNrcy5hcHBlbmQoV1RGTW92ZShmdW5jdGlvbikpOwogICAgIHBlbmRpbmdEaXNwYXRjaGVy
cygpLmFwcGVuZChtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSk7CkBAIC03Nyw3ICs3
Nyw3IEBAIERlcXVlPFdlYWtQdHI8VGFza0Rpc3BhdGNoZXI8VGltZXI+Pj4mIFRhc2tEaXNwYXRj
aGVyPFRpbWVyPjo6cGVuZGluZ0Rpc3BhdGNoZXJzCiB2b2lkIFRhc2tEaXNwYXRjaGVyPFRpbWVy
Pjo6ZGlzcGF0Y2hPbmVUYXNrKCkKIHsKICAgICBBU1NFUlQoIW1fcGVuZGluZ1Rhc2tzLmlzRW1w
dHkoKSk7Ci0gICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IHRhc2sgPSBtX3BlbmRpbmdUYXNrcy50
YWtlRmlyc3QoKTsKKyAgICBhdXRvIHRhc2sgPSBtX3BlbmRpbmdUYXNrcy50YWtlRmlyc3QoKTsK
ICAgICB0YXNrKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dl
bmVyaWNUYXNrUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVl
dWUuaAppbmRleCBlNjc3YTRjMzAwOTViMWIyNWE3ZmY2MmMwYzBlZThlZjQzZTY2NjRjLi5hMzBi
YWRmZWEzZWJmMmQzNzVlOTYxYTM0ODQzNDY1YTEzZGJmNjY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRl
ICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5
YWJsZUZ1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNDAsOSArNDEsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZv
aWQgcG9zdFRhc2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGYpCisgICAgdm9pZCBwb3N0VGFzayhO
b25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQoKT4mJiBmKQogICAgIHsKLSAgICAgICAgbV9jb250ZXh0
LnBvc3RUYXNrKGYpOworICAgICAgICBtX2NvbnRleHQucG9zdFRhc2soV1RGTW92ZShmKSk7CiAg
ICAgfQogCiBwcml2YXRlOgpAQCAtNTMsNyArNTQsNyBAQCB0ZW1wbGF0ZTw+CiBjbGFzcyBUYXNr
RGlzcGF0Y2hlcjxUaW1lcj4gewogcHVibGljOgogICAgIFRhc2tEaXNwYXRjaGVyKCk7Ci0gICAg
dm9pZCBwb3N0VGFzayhzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4pOworICAgIHZvaWQgcG9zdFRhc2so
Tm9uY29weWFibGVGdW5jdGlvbjx2b2lkKCk+JiYpOwogCiBwcml2YXRlOgogICAgIHN0YXRpYyBU
aW1lciYgc2hhcmVkVGltZXIoKTsKQEAgLTYzLDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRpc3BhdGNoT25lVGFzaygpOwogCiAgICAgV2Vha1B0ckZhY3Rvcnk8VGFza0Rpc3BhdGNoZXI+
IG1fd2Vha1B0ckZhY3Rvcnk7Ci0gICAgRGVxdWU8c3RkOjpmdW5jdGlvbjx2b2lkKCk+PiBtX3Bl
bmRpbmdUYXNrczsKKyAgICBEZXF1ZTxOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQoKT4+IG1fcGVu
ZGluZ1Rhc2tzOwogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CkBAIC04MSw3ICs4Miw3IEBA
IHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdHlwZWRlZiBzdGQ6OmZ1bmN0aW9uPHZvaWQo
KT4gVGFza0Z1bmN0aW9uOworICAgIHR5cGVkZWYgTm9uY29weWFibGVGdW5jdGlvbjx2b2lkKCk+
IFRhc2tGdW5jdGlvbjsKIAogICAgIHZvaWQgZW5xdWV1ZVRhc2soVGFza0Z1bmN0aW9uIHRhc2sp
CiAgICAgewpAQCAtOTAsNyArOTEsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgKyttX3BlbmRpbmdU
YXNrczsKICAgICAgICAgYXV0byB3ZWFrVGhpcyA9IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vh
a1B0cigpOwotICAgICAgICBtX2Rpc3BhdGNoZXIucG9zdFRhc2soW3dlYWtUaGlzLCB0YXNrXSB7
CisgICAgICAgIG1fZGlzcGF0Y2hlci5wb3N0VGFzayhbd2Vha1RoaXMsIHRhc2sgPSBXVEZNb3Zl
KHRhc2spXSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIEFTU0VSVCh3ZWFrVGhpcy0+bV9wZW5kaW5nVGFza3MpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCmluZGV4IGZhYjU2MDlkOWNm
M2I1NzFmZGFiNTc2OTYwYWE0MTk4YjY2YzhhMDAuLmUxNzI1NjNkZGRjNGNlYjI1ZDlmZGE2YTMw
M2UyY2YwOTFiZjAwZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJl
ZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZl
ci5jcHAKQEAgLTUyMSwxNSArNTIxLDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxVcGRhdGU+IFRyZWVS
ZXNvbHZlcjo6cmVzb2x2ZShDaGFuZ2UgY2hhbmdlKQogICAgIHJldHVybiBXVEZNb3ZlKG1fdXBk
YXRlKTsKIH0KIAotc3RhdGljIFZlY3RvcjxzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+PiYgcG9zdFJl
c29sdXRpb25DYWxsYmFja1F1ZXVlKCkKK3N0YXRpYyBWZWN0b3I8Tm9uY29weWFibGVGdW5jdGlv
bjx2b2lkICgpPj4mIHBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tRdWV1ZSgpCiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFZlY3RvcjxzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+Pj4gdmVjdG9yOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Tm9uY29weWFibGVGdW5jdGlvbjx2b2lk
ICgpPj4+IHZlY3RvcjsKICAgICByZXR1cm4gdmVjdG9yOwogfQogCi12b2lkIHF1ZXVlUG9zdFJl
c29sdXRpb25DYWxsYmFjayhzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGNhbGxiYWNrKQordm9pZCBx
dWV1ZVBvc3RSZXNvbHV0aW9uQ2FsbGJhY2soTm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgpPiYm
IGNhbGxiYWNrKQogewotICAgIHBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tRdWV1ZSgpLmFwcGVuZChj
YWxsYmFjayk7CisgICAgcG9zdFJlc29sdXRpb25DYWxsYmFja1F1ZXVlKCkuYXBwZW5kKFdURk1v
dmUoY2FsbGJhY2spKTsKIH0KIAogc3RhdGljIHZvaWQgc3VzcGVuZE1lbW9yeUNhY2hlQ2xpZW50
Q2FsbHMoRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtNTQwLDggKzU0MCw3IEBAIHN0YXRpYyB2b2lk
IHN1c3BlbmRNZW1vcnlDYWNoZUNsaWVudENhbGxzKERvY3VtZW50JiBkb2N1bWVudCkKIAogICAg
IHBhZ2UtPnNldE1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkKGZhbHNlKTsKIAotICAgIFJl
ZlB0cjxNYWluRnJhbWU+IHByb3RlY3RlZE1haW5GcmFtZSA9ICZwYWdlLT5tYWluRnJhbWUoKTsK
LSAgICBwb3N0UmVzb2x1dGlvbkNhbGxiYWNrUXVldWUoKS5hcHBlbmQoW3Byb3RlY3RlZE1haW5G
cmFtZV17CisgICAgcG9zdFJlc29sdXRpb25DYWxsYmFja1F1ZXVlKCkuYXBwZW5kKFtwcm90ZWN0
ZWRNYWluRnJhbWUgPSBSZWY8TWFpbkZyYW1lPihwYWdlLT5tYWluRnJhbWUoKSldIHsKICAgICAg
ICAgaWYgKFBhZ2UqIHBhZ2UgPSBwcm90ZWN0ZWRNYWluRnJhbWUtPnBhZ2UoKSkKICAgICAgICAg
ICAgIHBhZ2UtPnNldE1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkKHRydWUpOwogICAgIH0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgKaW5kZXggZmE3MDc5OTRh
YmNkMzUzMGEyMDk3NjdmYjlkNGNjYTE3YjE3MmM4ZC4uM2NlNzA0NjI2NzQ1YTkzNmViNGNkYjVi
OThiYTc0MDc2MDhjMTUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVU
cmVlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZl
ci5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgU3R5
bGVUcmVlUmVzb2x2ZXJfaAotI2RlZmluZSBTdHlsZVRyZWVSZXNvbHZlcl9oCisjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiUmVuZGVy
VHJlZVBvc2l0aW9uLmgiCkBAIC0zNSw2ICszNCw3IEBACiAjaW5jbHVkZSAiU3R5bGVVcGRhdGUu
aCIKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExMCw3ICsxMTAsNyBAQCBwcml2YXRlOgogICAg
IHN0ZDo6dW5pcXVlX3B0cjxVcGRhdGU+IG1fdXBkYXRlOwogfTsKIAotdm9pZCBxdWV1ZVBvc3RS
ZXNvbHV0aW9uQ2FsbGJhY2soc3RkOjpmdW5jdGlvbjx2b2lkICgpPik7Cit2b2lkIHF1ZXVlUG9z
dFJlc29sdXRpb25DYWxsYmFjayhOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYpOwogYm9v
bCBwb3N0UmVzb2x1dGlvbkNhbGxiYWNrc0FyZVN1c3BlbmRlZCgpOwogCiBib29sIGlzUGxhY2Vo
b2xkZXJTdHlsZShjb25zdCBSZW5kZXJTdHlsZSYpOwpAQCAtMTI0LDUgKzEyNCwzIEBAIHB1Ymxp
YzoKIH0KIAogfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5jcHAKaW5kZXggNTQ3NGZhODhmZDJhMzI3NWY5ZWRhZWNhOTlkZDA5Nzc2ZGM3ODk1
ZC4uMTU0NTZlNDlkMzdhYTU1NTk2ZTY5NjVkODhjZDdlNTI5N2FmNjI1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTE3Myw3ICsxNzMsNyBA
QCBXb3JrZXJOYXZpZ2F0b3ImIFdvcmtlckdsb2JhbFNjb3BlOjpuYXZpZ2F0b3IoKSBjb25zdAog
ICAgIHJldHVybiAqbV9uYXZpZ2F0b3I7CiB9CiAKLXZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OnBv
c3RUYXNrKFRhc2sgdGFzaykKK3ZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OnBvc3RUYXNrKFRhc2sm
JiB0YXNrKQogewogICAgIHRocmVhZCgpLnJ1bkxvb3AoKS5wb3N0VGFzayhXVEZNb3ZlKHRhc2sp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCA3
ZGZjNWQ0ZDQ4NTc5MmJkZWQ2MGUwOTM1N2E0YWU3ZjVjMmEzOTJlLi4yZmNjZGFiYmFlODhkZTUx
MGE5YWE1NTVkYzU5ZWJkMzUxNDA4Y2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5oCkBAIC04OCw3ICs4OCw3IEBAIHB1YmxpYzoKIAogICAgIHVzaW5nIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6Omhhc1BlbmRpbmdBY3Rpdml0eTsKIAotICAgIHZvaWQgcG9z
dFRhc2soVGFzaykgb3ZlcnJpZGU7IC8vIEV4ZWN1dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQncyB0
aHJlYWQgYXN5bmNocm9ub3VzbHkuCisgICAgdm9pZCBwb3N0VGFzayhUYXNrJiYpIGZpbmFsOyAv
LyBFeGVjdXRlcyB0aGUgdGFzayBvbiBjb250ZXh0J3MgdGhyZWFkIGFzeW5jaHJvbm91c2x5Lgog
CiAgICAgLy8gV29ya2VyR2xvYmFsU2NvcGUKICAgICBXb3JrZXJHbG9iYWxTY29wZSYgc2VsZigp
IHsgcmV0dXJuICp0aGlzOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280073</attachid>
            <date>2016-05-29 23:07:38 -0700</date>
            <delta_ts>2016-05-29 23:52:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158196-20160529230853.patch</filename>
            <type>text/plain</type>
            <size>14144</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNjZjc4MTgxMDkxMjc1
Y2M5NjM2MGMzNDU2NTBiOGUzOWQ3NThmNi4uNjdkZDZmMmNkZDM2NWE3OWMzNTk5MjE0YjJjOTdm
MzI4ZWIyM2FhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDE2LTA1LTI5ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAorICAgICAgICBUcmFuc2l0aW9uIHZhcmlv
dXMgVGFzay9GdW5jdGlvbiBxdWV1ZXMgZnJvbSBzdGQ6OmZ1bmN0aW9uIHRvIE5vbmNvcHlhYmxl
RnVuY3Rpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTgxOTYKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBO
byBuZXcgdGVzdHMgKFJlZmFjdG9yLCBubyBiZWhhdmlvciBjaGFuZ2UpLgorCisgICAgICAgICog
ZG9tL0FjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFj
dGl2ZURPTUNhbGxiYWNrTWljcm90YXNrOjpBY3RpdmVET01DYWxsYmFja01pY3JvdGFzayk6Cisg
ICAgICAgICogZG9tL0FjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmg6CisKKyAgICAgICAgKiBo
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6bGF5b3V0U2l6ZUNoYW5nZWQpOgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpxdWV1ZVBvc3RMYXlvdXRDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmZsdXNoUG9zdExheW91dFRhc2tzUXVldWUp
OgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9HZW5l
cmljVGFza1F1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRhc2tEaXNwYXRjaGVyPFRpbWVy
Pjo6cG9zdFRhc2spOgorICAgICAgICAoV2ViQ29yZTo6VGFza0Rpc3BhdGNoZXI8VGltZXI+Ojpk
aXNwYXRjaE9uZVRhc2spOgorICAgICAgICAqIHBsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlRhc2tEaXNwYXRjaGVyOjpwb3N0VGFzayk6CisgICAgICAgIChX
ZWJDb3JlOjpHZW5lcmljVGFza1F1ZXVlOjplbnF1ZXVlVGFzayk6CisKKyAgICAgICAgKiBzdHls
ZS9TdHlsZVRyZWVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6cG9zdFJl
c29sdXRpb25DYWxsYmFja1F1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpxdWV1ZVBv
c3RSZXNvbHV0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OnN1c3BlbmRN
ZW1vcnlDYWNoZUNsaWVudENhbGxzKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVRyZWVSZXNvbHZl
ci5oOgorCisyMDE2LTA1LTI5ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKwog
ICAgICAgICBNYWtlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgd29yayBpbiB0ZXJtcyBv
ZiB3dGY6Ok5vbmNvcHlhYmxlRnVuY3Rpb24gaW5zdGVhZCBvZiBzdGQ6OmZ1bmN0aW9uLgogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MTg3CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01DYWxsYmFja01pY3JvdGFzay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suY3BwCmlu
ZGV4IDNkMjNlZWY5NzA5NDBjZWU1MWZkYWQyNmY4ZTI0NGE5MWExYWM5ZjMuLjdhYTIyNjlmNGM1
ZmUxMTczMDg2M2NmMjEzMmZmZmQ4MjY5MjJlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9BY3RpdmVET01DYWxsYmFja01pY3JvdGFzay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0FjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrOjpBY3RpdmVE
T01DYWxsYmFja01pY3JvdGFzayhNaWNyb3Rhc2tRdWV1ZSYgcXVldWUsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYm
IHRhc2spCitBY3RpdmVET01DYWxsYmFja01pY3JvdGFzazo6QWN0aXZlRE9NQ2FsbGJhY2tNaWNy
b3Rhc2soTWljcm90YXNrUXVldWUmIHF1ZXVlLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0LCBOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKQog
ICAgIDogQWN0aXZlRE9NQ2FsbGJhY2soJnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCiAgICAgLCBt
X3F1ZXVlKHF1ZXVlKQogICAgICwgbV90YXNrKFdURk1vdmUodGFzaykpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9BY3RpdmVET01DYWxsYmFja01pY3JvdGFzay5oCmluZGV4IGQwMDkzNGJmOGQx
ZWNhOGQ1NzI4ZmUzMTRiNzhkZDVjY2YzZTVkY2IuLmUxMWM0ZDA3YTRhYWE1NGI5ZGZiM2IzMWQ0
MTNjMTkyNTAwOGJjYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01D
YWxsYmFja01pY3JvdGFzay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01DYWxs
YmFja01pY3JvdGFzay5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUs
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yMywxOSArMjMsMTggQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrX2gK
LSNkZWZpbmUgQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2tfaAorI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJBY3RpdmVET01DYWxsYmFjay5oIgogI2luY2x1ZGUgIk1pY3JvdGFza3MuaCIKLSNp
bmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZUZ1bmN0aW9uLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rh
c2sgZmluYWwgOiBwdWJsaWMgTWljcm90YXNrLCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2sgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JU
IEFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrKE1pY3JvdGFza1F1ZXVlJiwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBBY3RpdmVET01DYWxsYmFja01pY3JvdGFzayhNaWNyb3Rhc2tRdWV1ZSYsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdmlydHVhbCB+QWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2soKTsKIAogICAgIFJl
c3VsdCBydW4oKSBvdmVycmlkZTsKQEAgLTQ3LDkgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICAvLyBi
ZSBhY2Nlc3NlZCB2aWEgdGhlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHdoaWNoIHNob3VsZCBo
b2xkIGEgcmVmZXJlbmNlIHRvIHRoZSByZWxldmVudAogICAgIC8vIHF1ZXVlLgogICAgIE1pY3Jv
dGFza1F1ZXVlJiBtX3F1ZXVlOwotICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX3Rhc2s7Cisg
ICAgTm9uY29weWFibGVGdW5jdGlvbjx2b2lkKCk+IG1fdGFzazsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDMzNjA4MDQxN2UxYTE4
MDI0YTk4Yjg1NWM3MmNkMjgwNTBlMDgzYmIuLjdmMDFhMGNlNjJlYzkzNjMxZjczZDZjODg1ZmNi
ZWNhYTRkZDcwYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApA
QCAtMzk5NCwxMiArMzk5NCwxMSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZUNhcHRp
b25Db250YWluZXIoKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpsYXlvdXRTaXplQ2hhbmdlZCgp
CiB7CiAjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX1NDUklQVCkKLSAgICBSZWZQdHI8SFRNTE1l
ZGlhRWxlbWVudD4gc3Ryb25nVGhpcyA9IHRoaXM7Ci0gICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+
IHRhc2sgPSBbc3Ryb25nVGhpc10gewotICAgICAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHN0
cm9uZ1RoaXMtPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkKKyAgICBhdXRvIHRhc2sgPSBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFJlZjxFbGVtZW50PigqdGhpcyldIHsKKyAgICAgICAgaWYgKFNoYWRv
d1Jvb3QqIHJvb3QgPSB1c2VyQWdlbnRTaGFkb3dSb290KCkpCiAgICAgICAgICAgICByb290LT5k
aXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoInJlc2l6ZSIsIGZhbHNlLCBmYWxzZSkpOwogICAg
IH07Ci0gICAgbV9yZXNpemVUYXNrUXVldWUuZW5xdWV1ZVRhc2sodGFzayk7CisgICAgbV9yZXNp
emVUYXNrUXVldWUuZW5xdWV1ZVRhc2soV1RGTW92ZSh0YXNrKSk7CiAjZW5kaWYKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGY1MWJjY2IxYjg1OTZmNzBjNDdhYWIxYThiM2M1
ZTA4OWE0OWFiNjAuLmYwNWJmMWEzOTkwZGY1ZmQyYzZhNzcyYzk4MTA3MWNmZjVmNDIzYmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTMxMzMsOSArMzEzMyw5IEBAIHZvaWQgRnJh
bWVWaWV3OjpmbHVzaEFueVBlbmRpbmdQb3N0TGF5b3V0VGFza3MoKQogICAgICAgICB1cGRhdGVF
bWJlZGRlZE9iamVjdHNUaW1lckZpcmVkKCk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpxdWV1ZVBv
c3RMYXlvdXRDYWxsYmFjayhzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY2FsbGJhY2spCit2b2lkIEZy
YW1lVmlldzo6cXVldWVQb3N0TGF5b3V0Q2FsbGJhY2soTm9uY29weWFibGVGdW5jdGlvbjx2b2lk
KCk+JiYgY2FsbGJhY2spCiB7Ci0gICAgbV9wb3N0TGF5b3V0Q2FsbGJhY2tRdWV1ZS5hcHBlbmQo
Y2FsbGJhY2spOworICAgIG1fcG9zdExheW91dENhbGxiYWNrUXVldWUuYXBwZW5kKFdURk1vdmUo
Y2FsbGJhY2spKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OmZsdXNoUG9zdExheW91dFRhc2tzUXVl
dWUoKQpAQCAtMzE0NiwxMCArMzE0Niw5IEBAIHZvaWQgRnJhbWVWaWV3OjpmbHVzaFBvc3RMYXlv
dXRUYXNrc1F1ZXVlKCkKICAgICBpZiAoIW1fcG9zdExheW91dENhbGxiYWNrUXVldWUuc2l6ZSgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zdCBhdXRvIHF1ZXVlID0gbV9wb3N0TGF5b3V0
Q2FsbGJhY2tRdWV1ZTsKLSAgICBtX3Bvc3RMYXlvdXRDYWxsYmFja1F1ZXVlLmNsZWFyKCk7Ci0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBxdWV1ZS5zaXplKCk7ICsraSkKLSAgICAgICAgcXVl
dWVbaV0oKTsKKyAgICBWZWN0b3I8Tm9uY29weWFibGVGdW5jdGlvbjx2b2lkKCk+PiBxdWV1ZSA9
IFdURk1vdmUobV9wb3N0TGF5b3V0Q2FsbGJhY2tRdWV1ZSk7CisgICAgZm9yIChhdXRvJiB0YXNr
IDogcXVldWUpCisgICAgICAgIHRhc2soKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnBlcmZvcm1Q
b3N0TGF5b3V0VGFza3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggMjkwYzllZWQzYjg3
ZWEwYmYzNDlkM2U4YzI5MmE3NWVmZTZlZmVkMC4uZjQ0NDllNTM0OGU1ODczMjIyMDliY2E2NjZk
NDFiNmMyODMwZGUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC00LDcgKzQsNyBAQAog
ICAgICAgICAgICAgIChDKSAxOTk4LCAxOTk5IFRvcmJlbiBXZWlzICh3ZWlzQGtkZS5vcmcpCiAg
ICAgICAgICAgICAgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAgICAgICAg
ICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKLSAgIENvcHly
aWdodCAoQykgMjAwNC0yMDA5LCAyMDE0LTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDksIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAKICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMiw4ICsyMiw3IEBACiAg
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICovCiAKLSNpZm5kZWYgRnJhbWVWaWV3X2gK
LSNkZWZpbmUgRnJhbWVWaWV3X2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQWRqdXN0Vmll
d1NpemVPck5vdC5oIgogI2luY2x1ZGUgIkNvbG9yLmgiCkBAIC0zOCw2ICszNyw3IEBACiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9MaXN0SGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZUZ1bmN0aW9uLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTExMSw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY2hlZHVsZVJlbGF5b3V0KCk7
CiAgICAgdm9pZCBzY2hlZHVsZVJlbGF5b3V0T2ZTdWJ0cmVlKFJlbmRlckVsZW1lbnQmKTsKICAg
ICB2b2lkIHVuc2NoZWR1bGVSZWxheW91dCgpOwotICAgIHZvaWQgcXVldWVQb3N0TGF5b3V0Q2Fs
bGJhY2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKKyAgICB2b2lkIHF1ZXVlUG9zdExheW91dENh
bGxiYWNrKE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICBib29sIGxheW91dFBl
bmRpbmcoKSBjb25zdDsKICAgICBib29sIGlzSW5MYXlvdXQoKSBjb25zdCB7IHJldHVybiBtX2xh
eW91dFBoYXNlICE9IE91dHNpZGVMYXlvdXQ7IH0KICAgICBib29sIGlzSW5SZW5kZXJUcmVlTGF5
b3V0KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRQaGFzZSA9PSBJblJlbmRlclRyZWVMYXlvdXQ7
IH0KQEAgLTgyOCw3ICs4MjgsNyBAQCBwcml2YXRlOgogICAgIFNjcm9sbFBpbm5pbmdCZWhhdmlv
ciBtX3Njcm9sbFBpbm5pbmdCZWhhdmlvcjsKIAogICAgIEludFJlY3QqIG1fY2FjaGVkV2luZG93
Q2xpcFJlY3QgeyBudWxscHRyIH07Ci0gICAgVmVjdG9yPHN0ZDo6ZnVuY3Rpb248dm9pZCgpPj4g
bV9wb3N0TGF5b3V0Q2FsbGJhY2tRdWV1ZTsKKyAgICBWZWN0b3I8Tm9uY29weWFibGVGdW5jdGlv
bjx2b2lkKCk+PiBtX3Bvc3RMYXlvdXRDYWxsYmFja1F1ZXVlOwogfTsKIAogaW5saW5lIHZvaWQg
RnJhbWVWaWV3OjppbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5Q2hhcmFjdGVyQ291bnQodW5zaWdu
ZWQgY291bnQpCkBAIC04NTQsNSArODU0LDMgQEAgaW5saW5lIHZvaWQgRnJhbWVWaWV3OjppbmNy
ZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudChjb25zdCBJbnRTaXplJiBzaXplKQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1dJREdFVChGcmFt
ZVZpZXcsIGlzRnJhbWVWaWV3KCkpCi0KLSNlbmRpZiAvLyBGcmFtZVZpZXdfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmNwcAppbmRleCA0NWE4MWRlNTliYWFh
MDgxODdiOGI1OGUxNDE2ZWM0N2IyNTZhYjE3Li4wYzZjMjQzYjhlMDhjYTEyYjg5NjZkOWZhYWNj
ZGU0MjIyZjkwMTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW5lcmlj
VGFza1F1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW5lcmljVGFza1F1
ZXVlLmNwcApAQCAtMzYsNyArMzYsNyBAQCBUYXNrRGlzcGF0Y2hlcjxUaW1lcj46OlRhc2tEaXNw
YXRjaGVyKCkKIHsKIH0KIAotdm9pZCBUYXNrRGlzcGF0Y2hlcjxUaW1lcj46OnBvc3RUYXNrKHN0
ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbikKK3ZvaWQgVGFza0Rpc3BhdGNoZXI8VGltZXI+
Ojpwb3N0VGFzayhOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKIHsKICAg
ICBtX3BlbmRpbmdUYXNrcy5hcHBlbmQoV1RGTW92ZShmdW5jdGlvbikpOwogICAgIHBlbmRpbmdE
aXNwYXRjaGVycygpLmFwcGVuZChtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSk7CkBA
IC03Nyw3ICs3Nyw3IEBAIERlcXVlPFdlYWtQdHI8VGFza0Rpc3BhdGNoZXI8VGltZXI+Pj4mIFRh
c2tEaXNwYXRjaGVyPFRpbWVyPjo6cGVuZGluZ0Rpc3BhdGNoZXJzCiB2b2lkIFRhc2tEaXNwYXRj
aGVyPFRpbWVyPjo6ZGlzcGF0Y2hPbmVUYXNrKCkKIHsKICAgICBBU1NFUlQoIW1fcGVuZGluZ1Rh
c2tzLmlzRW1wdHkoKSk7Ci0gICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IHRhc2sgPSBtX3BlbmRp
bmdUYXNrcy50YWtlRmlyc3QoKTsKKyAgICBhdXRvIHRhc2sgPSBtX3BlbmRpbmdUYXNrcy50YWtl
Rmlyc3QoKTsKICAgICB0YXNrKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVy
aWNUYXNrUXVldWUuaAppbmRleCBlNjc3YTRjMzAwOTViMWIyNWE3ZmY2MmMwYzBlZThlZjQzZTY2
NjRjLi40ZDg1YzlhMGIyMTg0OThjNjk1MTQ2MTkxMDZkMzhkMDc5OTkxYWJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywxMSArMjMsMTEgQEAKICAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5kZWYgR2VuZXJpY1Rhc2tRdWV1ZV9oCi0jZGVmaW5l
IEdlbmVyaWNUYXNrUXVldWVfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJUaW1lci5oIgog
I2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZUZ1bmN0aW9u
Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDAsOSArNDAsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgcG9zdFRhc2so
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IGYpCisgICAgdm9pZCBwb3N0VGFzayhOb25jb3B5YWJsZUZ1
bmN0aW9uPHZvaWQoKT4mJiBmKQogICAgIHsKLSAgICAgICAgbV9jb250ZXh0LnBvc3RUYXNrKGYp
OworICAgICAgICBtX2NvbnRleHQucG9zdFRhc2soV1RGTW92ZShmKSk7CiAgICAgfQogCiBwcml2
YXRlOgpAQCAtNTMsNyArNTMsNyBAQCB0ZW1wbGF0ZTw+CiBjbGFzcyBUYXNrRGlzcGF0Y2hlcjxU
aW1lcj4gewogcHVibGljOgogICAgIFRhc2tEaXNwYXRjaGVyKCk7Ci0gICAgdm9pZCBwb3N0VGFz
ayhzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4pOworICAgIHZvaWQgcG9zdFRhc2soTm9uY29weWFibGVG
dW5jdGlvbjx2b2lkKCk+JiYpOwogCiBwcml2YXRlOgogICAgIHN0YXRpYyBUaW1lciYgc2hhcmVk
VGltZXIoKTsKQEAgLTYzLDcgKzYzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoT25l
VGFzaygpOwogCiAgICAgV2Vha1B0ckZhY3Rvcnk8VGFza0Rpc3BhdGNoZXI+IG1fd2Vha1B0ckZh
Y3Rvcnk7Ci0gICAgRGVxdWU8c3RkOjpmdW5jdGlvbjx2b2lkKCk+PiBtX3BlbmRpbmdUYXNrczsK
KyAgICBEZXF1ZTxOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQoKT4+IG1fcGVuZGluZ1Rhc2tzOwog
fTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CkBAIC04MSwxNiArODEsMTYgQEAgcHVibGljOgog
ICAgIHsKICAgICB9CiAKLSAgICB0eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBUYXNrRnVu
Y3Rpb247CisgICAgdHlwZWRlZiBOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQoKT4gVGFza0Z1bmN0
aW9uOwogCi0gICAgdm9pZCBlbnF1ZXVlVGFzayhUYXNrRnVuY3Rpb24gdGFzaykKKyAgICB2b2lk
IGVucXVldWVUYXNrKFRhc2tGdW5jdGlvbiYmIHRhc2spCiAgICAgewogICAgICAgICBpZiAobV9p
c0Nsb3NlZCkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICArK21fcGVuZGluZ1Rhc2tz
OwogICAgICAgICBhdXRvIHdlYWtUaGlzID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCk7Ci0gICAgICAgIG1fZGlzcGF0Y2hlci5wb3N0VGFzayhbd2Vha1RoaXMsIHRhc2tdIHsKKyAg
ICAgICAgbV9kaXNwYXRjaGVyLnBvc3RUYXNrKFt3ZWFrVGhpcywgdGFzayA9IFdURk1vdmUodGFz
ayldIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgQVNTRVJUKHdlYWtUaGlzLT5tX3BlbmRpbmdUYXNrcyk7CkBAIC0xMjAs
NSArMTIwLDMgQEAgcHJpdmF0ZToKIH07CiAKIH0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKaW5kZXggZmFiNTYwOWQ5Y2YzYjU3MWZkYWI1NzY5
NjBhYTQxOThiNjZjOGEwMC4uZTE3MjU2M2RkZGM0Y2ViMjVkOWZkYTZhMzAzZTJjZjA5MWJmMDBk
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcApAQCAtNTIx
LDE1ICs1MjEsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPFVwZGF0ZT4gVHJlZVJlc29sdmVyOjpyZXNv
bHZlKENoYW5nZSBjaGFuZ2UpCiAgICAgcmV0dXJuIFdURk1vdmUobV91cGRhdGUpOwogfQogCi1z
dGF0aWMgVmVjdG9yPHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4+JiBwb3N0UmVzb2x1dGlvbkNhbGxi
YWNrUXVldWUoKQorc3RhdGljIFZlY3RvcjxOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+PiYg
cG9zdFJlc29sdXRpb25DYWxsYmFja1F1ZXVlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8VmVjdG9yPHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4+PiB2ZWN0b3I7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFZlY3RvcjxOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+Pj4gdmVjdG9y
OwogICAgIHJldHVybiB2ZWN0b3I7CiB9CiAKLXZvaWQgcXVldWVQb3N0UmVzb2x1dGlvbkNhbGxi
YWNrKHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY2FsbGJhY2spCit2b2lkIHF1ZXVlUG9zdFJlc29s
dXRpb25DYWxsYmFjayhOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQgKCk+JiYgY2FsbGJhY2spCiB7
Ci0gICAgcG9zdFJlc29sdXRpb25DYWxsYmFja1F1ZXVlKCkuYXBwZW5kKGNhbGxiYWNrKTsKKyAg
ICBwb3N0UmVzb2x1dGlvbkNhbGxiYWNrUXVldWUoKS5hcHBlbmQoV1RGTW92ZShjYWxsYmFjaykp
OwogfQogCiBzdGF0aWMgdm9pZCBzdXNwZW5kTWVtb3J5Q2FjaGVDbGllbnRDYWxscyhEb2N1bWVu
dCYgZG9jdW1lbnQpCkBAIC01NDAsOCArNTQwLDcgQEAgc3RhdGljIHZvaWQgc3VzcGVuZE1lbW9y
eUNhY2hlQ2xpZW50Q2FsbHMoRG9jdW1lbnQmIGRvY3VtZW50KQogCiAgICAgcGFnZS0+c2V0TWVt
b3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWQoZmFsc2UpOwogCi0gICAgUmVmUHRyPE1haW5GcmFt
ZT4gcHJvdGVjdGVkTWFpbkZyYW1lID0gJnBhZ2UtPm1haW5GcmFtZSgpOwotICAgIHBvc3RSZXNv
bHV0aW9uQ2FsbGJhY2tRdWV1ZSgpLmFwcGVuZChbcHJvdGVjdGVkTWFpbkZyYW1lXXsKKyAgICBw
b3N0UmVzb2x1dGlvbkNhbGxiYWNrUXVldWUoKS5hcHBlbmQoW3Byb3RlY3RlZE1haW5GcmFtZSA9
IFJlZjxNYWluRnJhbWU+KHBhZ2UtPm1haW5GcmFtZSgpKV0gewogICAgICAgICBpZiAoUGFnZSog
cGFnZSA9IHByb3RlY3RlZE1haW5GcmFtZS0+cGFnZSgpKQogICAgICAgICAgICAgcGFnZS0+c2V0
TWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWQodHJ1ZSk7CiAgICAgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaAppbmRleCBmYTcwNzk5NGFiY2QzNTMwYTIwOTc2
N2ZiOWQ0Y2NhMTdiMTcyYzhkLi4zY2U3MDQ2MjY3NDVhOTM2ZWI0Y2RiNWI5OGJhNzQwNzYwOGMx
NTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgKQEAgLTIzLDgg
KzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBTdHlsZVRyZWVSZXNvbHZl
cl9oCi0jZGVmaW5lIFN0eWxlVHJlZVJlc29sdmVyX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlUG9zaXRpb24u
aCIKQEAgLTM1LDYgKzM0LDcgQEAKICNpbmNsdWRlICJTdHlsZVVwZGF0ZS5oIgogI2luY2x1ZGUg
PGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGVGdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMTEwLDcgKzExMCw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFVwZGF0ZT4gbV91cGRhdGU7CiB9OwogCi12b2lkIHF1ZXVlUG9zdFJlc29sdXRpb25DYWxs
YmFjayhzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+KTsKK3ZvaWQgcXVldWVQb3N0UmVzb2x1dGlvbkNh
bGxiYWNrKE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4mJik7CiBib29sIHBvc3RSZXNvbHV0
aW9uQ2FsbGJhY2tzQXJlU3VzcGVuZGVkKCk7CiAKIGJvb2wgaXNQbGFjZWhvbGRlclN0eWxlKGNv
bnN0IFJlbmRlclN0eWxlJik7CkBAIC0xMjQsNSArMTI0LDMgQEAgcHVibGljOgogfQogCiB9Ci0K
LSNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>