<?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>142674</bug_id>
          
          <creation_ts>2015-03-13 10:54:38 -0700</creation_ts>
          <short_desc>Replace TCSpinLock with a new WTF::SpinLock based on WTF::Atomic</short_desc>
          <delta_ts>2015-03-14 11:10:33 -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>Web Template Framework</component>
          <version>528+ (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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1076964</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-03-13 10:54:38 -0700</bug_when>
    <thetext>We no longer use TCMalloc in our code, and we now have C++11.  This replaces the TCMalloc_SpinLock with a new WTF::SpinLock based on WTF::Atomic (which is a wrapper around std::atomic).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076973</commentid>
    <comment_count>1</comment_count>
      <attachid>248592</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-03-13 11:25:54 -0700</bug_when>
    <thetext>Created attachment 248592
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076974</commentid>
    <comment_count>2</comment_count>
      <attachid>248593</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-03-13 11:38:07 -0700</bug_when>
    <thetext>Created attachment 248593
patch 2: added some ChangeLog comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076986</commentid>
    <comment_count>3</comment_count>
      <attachid>248593</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-03-13 12:14:45 -0700</bug_when>
    <thetext>Comment on attachment 248593
patch 2: added some ChangeLog comment.

Can you also change this SpinLock to using methods named according to our conventions (i.e. lock() instead of Lock())?  Then you could get rid of SpinLockHolder and use the existing WTF holder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076993</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-03-13 12:48:09 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 248593 [details]
&gt; patch 2: added some ChangeLog comment.
&gt; 
&gt; Can you also change this SpinLock to using methods named according to our
&gt; conventions (i.e. lock() instead of Lock())?  Then you could get rid of
&gt; SpinLockHolder and use the existing WTF holder.

I did.  Look at SpinLock.h.  I think you may be looking at the deleted TCSpinLock.h.  SpinLockHolder is now implemented on top of WTF::Locker just like we do with MutexLocker.  I opted not to rename it to SpinLockLocker because this reduces unnecessary diffs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077000</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-03-13 13:06:30 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r181485: &lt;http://trac.webkit.org/r181485&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077168</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-14 10:58:12 -0700</bug_when>
    <thetext>This may have caused Speedometer to start crashing:
Running Speedometer/Full.html (144 of 144)
error: Speedometer/Full.html
1   0x113d6747e JSC::DFG::(anonymous namespace)::PutStackSinkingPhase::run()
2   0x113d5ded4 JSC::DFG::performPutStackSinking(JSC::DFG::Graph&amp;)
3   0x113db9d99 JSC::DFG::Plan::compileInThreadImpl(JSC::DFG::LongLivedState&amp;)
4   0x113db96dd JSC::DFG::Plan::compileInThread(JSC::DFG::LongLivedState&amp;, JSC::DFG::ThreadData*)
5   0x113e45042 JSC::DFG::Worklist::runThread(JSC::DFG::ThreadData*)
6   0x1141cf833 WTF::threadEntryPoint(void*)
7   0x1141cfd1f WTF::wtfThreadEntryPoint(void*)
8   0x7fff8e583268 _pthread_body
9   0x7fff8e5831e5 _pthread_body
10  0x7fff8e58141d thread_start

It is consistently crashing on all perf bots:
https://build.webkit.org/builders/Apple%20Yosemite%20Release%20WK2%20%28Perf%29/builds/1263/steps/perf-test/logs/stdio

There are a few other commits in the range but this one seems the most likely cause.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077170</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-14 11:02:14 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; This may have caused Speedometer to start crashing:
&gt; Running Speedometer/Full.html (144 of 144)
&gt; error: Speedometer/Full.html
&gt; 1   0x113d6747e JSC::DFG::(anonymous namespace)::PutStackSinkingPhase::run()
&gt; 2   0x113d5ded4 JSC::DFG::performPutStackSinking(JSC::DFG::Graph&amp;)
&gt; 3   0x113db9d99
&gt; JSC::DFG::Plan::compileInThreadImpl(JSC::DFG::LongLivedState&amp;)
&gt; 4   0x113db96dd JSC::DFG::Plan::compileInThread(JSC::DFG::LongLivedState&amp;,
&gt; JSC::DFG::ThreadData*)
&gt; 5   0x113e45042 JSC::DFG::Worklist::runThread(JSC::DFG::ThreadData*)
&gt; 6   0x1141cf833 WTF::threadEntryPoint(void*)
&gt; 7   0x1141cfd1f WTF::wtfThreadEntryPoint(void*)
&gt; 8   0x7fff8e583268 _pthread_body
&gt; 9   0x7fff8e5831e5 _pthread_body
&gt; 10  0x7fff8e58141d thread_start
&gt; 
&gt; It is consistently crashing on all perf bots:
&gt; https://build.webkit.org/builders/
&gt; Apple%20Yosemite%20Release%20WK2%20%28Perf%29/builds/1263/steps/perf-test/
&gt; logs/stdio
&gt; 
&gt; There are a few other commits in the range but this one seems the most
&gt; likely cause.

Filed https://bugs.webkit.org/show_bug.cgi?id=142697</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248592</attachid>
            <date>2015-03-13 11:25:54 -0700</date>
            <delta_ts>2015-03-13 11:38:07 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-142674.patch</filename>
            <type>text/plain</type>
            <size>33769</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgxNDgxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBA
CisyMDE1LTAzLTEzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXBsYWNlIFRDU3BpbkxvY2sgd2l0aCBhIG5ldyBXVEY6OlNwaW5Mb2NrIGJhc2VkIG9uIFdURjo6
QXRvbWljLgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQyNjc0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQVBJL0pTVmFsdWUubW06
CisgICAgICAgIChoYW5kZXJGb3JTdHJ1Y3RUYWcpOgorICAgICAgICAqIEFQSS9KU1dyYXBwZXJN
YXAubW06CisgICAgICAgICogZGZnL0RGR0NvbW1vbi5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
c3RhcnRDcmFzaGluZyk6CisgICAgICAgIChKU0M6OkRGRzo6aXNDcmFzaGluZyk6CisgICAgICAg
IC0gQ2hhbmdlZCB0byB1c2UgYSBTdGF0aWNTcGluTG9jayBzaW5jZSB0aGF0J3Mgd2hhdCB0aGlz
IGNvZGUgd2FzIHRyeWluZyB0byBkbworICAgICAgICAgIGFueXdheS4KKyAgICAgICAgKiBoZWFw
L0NvcGllZEJsb2NrLmg6CisgICAgICAgIChKU0M6OkNvcGllZEJsb2NrOjpDb3BpZWRCbG9jayk6
CisgICAgICAgICogaGVhcC9Db3BpZWRTcGFjZS5jcHA6CisgICAgICAgIChKU0M6OkNvcGllZFNw
YWNlOjpDb3BpZWRTcGFjZSk6CisgICAgICAgICogaGVhcC9Db3BpZWRTcGFjZS5oOgorICAgICAg
ICAqIGhlYXAvR0NUaHJlYWRTaGFyZWREYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6R0NUaHJlYWRT
aGFyZWREYXRhOjpHQ1RocmVhZFNoYXJlZERhdGEpOgorICAgICAgICAqIGhlYXAvR0NUaHJlYWRT
aGFyZWREYXRhLmg6CisgICAgICAgICogaGVhcC9MaXN0YWJsZUhhbmRsZXIuaDoKKyAgICAgICAg
KEpTQzo6TGlzdGFibGVIYW5kbGVyOjpMaXN0OjpMaXN0KToKKyAgICAgICAgKiBwYXJzZXIvU291
cmNlUHJvdmlkZXIuY3BwOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuY3Bw
OgorICAgICAgICAoSlNDOjpQcm9maWxlcjo6RGF0YWJhc2U6OmFkZERhdGFiYXNlVG9BdEV4aXQp
OgorICAgICAgICAoSlNDOjpQcm9maWxlcjo6RGF0YWJhc2U6OnJlbW92ZURhdGFiYXNlRnJvbUF0
RXhpdCk6CisgICAgICAgIChKU0M6OlByb2ZpbGVyOjpEYXRhYmFzZTo6cmVtb3ZlRmlyc3RBdEV4
aXREYXRhYmFzZSk6CisKIDIwMTUtMDMtMTMgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIEludHJvZHVjZSBXVEY6OkF0b21pYyB0byB3cmFwIHN0ZDo6YXRvbWljIGZv
ciBhIGZyaWVuZGxpZXIgQ0FTLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Zh
bHVlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5t
bQkocmV2aXNpb24gMTgxNDgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVl
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MSw4ICs0MSw4IEBACiAjaW1wb3J0IDx3dGYvSGFzaE1h
cC5oPgogI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4
dHJhcy5oPgorI2ltcG9ydCA8d3RmL1NwaW5Mb2NrLmg+CiAjaW1wb3J0IDx3dGYvVmVjdG9yLmg+
Ci0jaW1wb3J0IDx3dGYvVENTcGluTG9jay5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTExMDIsNyArMTEwMiw3
IEBAIHN0YXRpYyBTdHJ1Y3RIYW5kbGVycyogY3JlYXRlU3RydWN0SGFuZGwKIAogc3RhdGljIFN0
cnVjdFRhZ0hhbmRsZXIqIGhhbmRlckZvclN0cnVjdFRhZyhjb25zdCBjaGFyKiBlbmNvZGVkVHlw
ZSkKIHsKLSAgICBzdGF0aWMgU3BpbkxvY2sgaGFuZGVyRm9yU3RydWN0VGFnTG9jayA9IFNQSU5M
T0NLX0lOSVRJQUxJWkVSOworICAgIHN0YXRpYyBTdGF0aWNTcGluTG9jayBoYW5kZXJGb3JTdHJ1
Y3RUYWdMb2NrOwogICAgIFNwaW5Mb2NrSG9sZGVyIGxvY2tIb2xkZXIoJmhhbmRlckZvclN0cnVj
dFRhZ0xvY2spOwogCiAgICAgc3RhdGljIFN0cnVjdEhhbmRsZXJzKiBzdHJ1Y3RIYW5kbGVycyA9
IGNyZWF0ZVN0cnVjdEhhbmRsZXJNYXAoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNXcmFwcGVyTWFwLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNXcmFwcGVyTWFwLm1tCShyZXZpc2lvbiAxODE0ODEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNiBA
QAogI2ltcG9ydCAiV2Vha0dDTWFwLmgiCiAjaW1wb3J0ICJXZWFrR0NNYXBJbmxpbmVzLmgiCiAj
aW1wb3J0IDx3dGYvSGFzaFNldC5oPgotI2ltcG9ydCA8d3RmL1RDU3BpbkxvY2suaD4KICNpbXBv
cnQgPHd0Zi9WZWN0b3IuaD4KICNpbXBvcnQgPHd0Zi9zcGkvY29jb2EvTlNNYXBUYWJsZVNQSS5o
PgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uY3BwCShyZXZpc2lv
biAxODE0ODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM0LDE3ICszNCwxNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIERGRyB7CiAKLXN0YXRpYyBBdG9taWM8dW5zaWduZWQ+IGNyYXNoTG9jazsKK3N0YXRpYyBT
dGF0aWNTcGluTG9jayBjcmFzaExvY2s7CiAKIHZvaWQgc3RhcnRDcmFzaGluZygpCiB7Ci0gICAg
d2hpbGUgKCFjcmFzaExvY2suY29tcGFyZV9leGNoYW5nZV93ZWFrKDAsIDEsIHN0ZDo6bWVtb3J5
X29yZGVyX2FjcXVpcmUpKQotICAgICAgICBzdGQ6OnRoaXNfdGhyZWFkOjp5aWVsZCgpOworICAg
IGNyYXNoTG9jay5sb2NrKCk7CiB9CiAKIGJvb2wgaXNDcmFzaGluZygpCiB7Ci0gICAgcmV0dXJu
ICEhY3Jhc2hMb2NrLmxvYWQoc3RkOjptZW1vcnlfb3JkZXJfYWNxdWlyZSk7CisgICAgcmV0dXJu
IGNyYXNoTG9jay5pc0xvY2tlZCgpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRCbG9jay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZEJsb2NrLmgJKHJldmlzaW9uIDE4
MTQ4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZEJsb2NrLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVk
ZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvRG91Ymx5TGlua2VkTGlzdC5oPgotI2lu
Y2x1ZGUgPHd0Zi9UQ1NwaW5Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL1NwaW5Mb2NrLmg+CiAKIG5h
bWVzcGFjZSBKU0MgewogCkBAIC0xNTIsNyArMTUyLDYgQEAgaW5saW5lIENvcGllZEJsb2NrOjpD
b3BpZWRCbG9jayhzaXplX3QgYwogICAgICwgbV9saXZlT2JqZWN0cygwKQogI2VuZGlmCiB7Ci0g
ICAgbV93b3JrTGlzdExvY2suSW5pdCgpOwogICAgIEFTU0VSVChpczhCeXRlQWxpZ25lZChyZWlu
dGVycHJldF9jYXN0PHZvaWQqPihtX3JlbWFpbmluZykpKTsKIH0KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAkocmV2aXNpb24gMTgxNDgxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zOSw3ICszOSw2IEBAIENvcGllZFNwYWNlOjpDb3BpZWRTcGFjZShIZWFwKiBoZWFwKQog
ICAgICwgbV9zaG91bGREb0NvcHlQaGFzZShmYWxzZSkKICAgICAsIG1fbnVtYmVyT2ZMb2FuZWRC
bG9ja3MoMCkKIHsKLSAgICBtX3RvU3BhY2VMb2NrLkluaXQoKTsKIH0KIAogQ29waWVkU3BhY2U6
On5Db3BpZWRTcGFjZSgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRT
cGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNw
YWNlLmgJKHJldmlzaW9uIDE4MTQ4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
cGllZFNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDggKzM3LDggQEAKICNpbmNsdWRlIDx3
dGYvT1NBbGxvY2F0b3IuaD4KICNpbmNsdWRlIDx3dGYvUGFnZUFsbG9jYXRpb25BbGlnbmVkLmg+
CiAjaW5jbHVkZSA8d3RmL1BhZ2VCbG9jay5oPgorI2luY2x1ZGUgPHd0Zi9TcGluTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvVENTcGluTG9jay5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAKIG5hbWVzcGFjZSBKU0Mg
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWRTaGFyZWREYXRhLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZFNoYXJl
ZERhdGEuY3BwCShyZXZpc2lvbiAxODE0ODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9HQ1RocmVhZFNoYXJlZERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MSw3ICs4MSw2IEBA
IEdDVGhyZWFkU2hhcmVkRGF0YTo6R0NUaHJlYWRTaGFyZWREYXRhKFYKICAgICAsIG1fZ2NUaHJl
YWRzU2hvdWxkV2FpdChmYWxzZSkKICAgICAsIG1fY3VycmVudFBoYXNlKE5vUGhhc2UpCiB7Ci0g
ICAgbV9jb3B5TG9jay5Jbml0KCk7CiAjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQogICAgIC8vIEdy
YWIgdGhlIGxvY2sgc28gdGhlIG5ldyBHQyB0aHJlYWRzIGNhbiBiZSBwcm9wZXJseSBpbml0aWFs
aXplZCBiZWZvcmUgdGhleSBzdGFydCBydW5uaW5nLgogICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3Rk
OjptdXRleD4gbG9jayhtX3BoYXNlTXV0ZXgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvR0NUaHJlYWRTaGFyZWREYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvR0NUaHJlYWRTaGFyZWREYXRhLmgJKHJldmlzaW9uIDE4MTQ4MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDVGhyZWFkU2hhcmVkRGF0YS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5o
IgogI2luY2x1ZGUgPGNvbmRpdGlvbl92YXJpYWJsZT4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgotI2luY2x1ZGUgPHd0Zi9UQ1NwaW5Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL1NwaW5Mb2NrLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0xpc3RhYmxlSGFuZGxlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0xpc3RhYmxlSGFuZGxlci5oCShyZXZpc2lvbiAxODE0
ODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9MaXN0YWJsZUhhbmRsZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMjMsOCArMjMsOCBAQAogI2luY2x1ZGUgPHN0ZGludC5oPgogI2luY2x1
ZGUgPHd0Zi9Mb2NrZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRl
IDx3dGYvU3BpbkxvY2suaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgot
I2luY2x1ZGUgPHd0Zi9UQ1NwaW5Mb2NrLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC02MSw3
ICs2MSw2IEBAIHByaXZhdGU6CiAgICAgICAgIExpc3QoKQogICAgICAgICAgICAgOiBtX2ZpcnN0
KDApCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1fbG9jay5Jbml0KCk7CiAgICAgICAgIH0KICAg
ICAgICAgCiAgICAgICAgIHZvaWQgYWRkVGhyZWFkU2FmZShUKiBoYW5kbGVyKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAJKHJldmlz
aW9uIDE4MTQ4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlk
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNyw4IEBACiAjaW5jbHVkZSAiU291cmNl
UHJvdmlkZXIuaCIKIAogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNsdWRlIDx3dGYvU3Bp
bkxvY2suaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL1RD
U3BpbkxvY2suaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTQ0LDcgKzQ0LDcgQEAgU291cmNl
UHJvdmlkZXI6On5Tb3VyY2VQcm92aWRlcigpCiB7CiB9CiAKLXN0YXRpYyBUQ01hbGxvY19TcGlu
TG9jayBwcm92aWRlcklkTG9jayA9IFNQSU5MT0NLX0lOSVRJQUxJWkVSOworc3RhdGljIFN0YXRp
Y1NwaW5Mb2NrIHByb3ZpZGVySWRMb2NrOwogCiB2b2lkIFNvdXJjZVByb3ZpZGVyOjpnZXRJRCgp
CiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFz
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVyRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxODE0ODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcg
KzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKIHN0YXRpYyBz
dGQ6OmF0b21pYzxpbnQ+IGRhdGFiYXNlQ291bnRlcjsKIAotc3RhdGljIFNwaW5Mb2NrIHJlZ2lz
dHJhdGlvbkxvY2sgPSBTUElOTE9DS19JTklUSUFMSVpFUjsKK3N0YXRpYyBTdGF0aWNTcGluTG9j
ayByZWdpc3RyYXRpb25Mb2NrOwogc3RhdGljIHN0ZDo6YXRvbWljPGludD4gZGlkUmVnaXN0ZXJB
dEV4aXQ7CiBzdGF0aWMgRGF0YWJhc2UqIGZpcnN0RGF0YWJhc2U7CiAKQEAgLTEzOCwxNCArMTM4
LDE0IEBAIHZvaWQgRGF0YWJhc2U6OmFkZERhdGFiYXNlVG9BdEV4aXQoKQogICAgIGlmICgrK2Rp
ZFJlZ2lzdGVyQXRFeGl0ID09IDEpCiAgICAgICAgIGF0ZXhpdChhdEV4aXRDYWxsYmFjayk7CiAg
ICAgCi0gICAgVENNYWxsb2NfU3BpbkxvY2tIb2xkZXIgaG9sZGVyKCZyZWdpc3RyYXRpb25Mb2Nr
KTsKKyAgICBTcGluTG9ja0hvbGRlciBob2xkZXIocmVnaXN0cmF0aW9uTG9jayk7CiAgICAgbV9u
ZXh0UmVnaXN0ZXJlZERhdGFiYXNlID0gZmlyc3REYXRhYmFzZTsKICAgICBmaXJzdERhdGFiYXNl
ID0gdGhpczsKIH0KIAogdm9pZCBEYXRhYmFzZTo6cmVtb3ZlRGF0YWJhc2VGcm9tQXRFeGl0KCkK
IHsKLSAgICBUQ01hbGxvY19TcGluTG9ja0hvbGRlciBob2xkZXIoJnJlZ2lzdHJhdGlvbkxvY2sp
OworICAgIFNwaW5Mb2NrSG9sZGVyIGhvbGRlcihyZWdpc3RyYXRpb25Mb2NrKTsKICAgICBmb3Ig
KERhdGFiYXNlKiogY3VycmVudCA9ICZmaXJzdERhdGFiYXNlOyAqY3VycmVudDsgY3VycmVudCA9
ICYoKmN1cnJlbnQpLT5tX25leHRSZWdpc3RlcmVkRGF0YWJhc2UpIHsKICAgICAgICAgaWYgKCpj
dXJyZW50ICE9IHRoaXMpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTE2Myw3ICsxNjMsNyBA
QCB2b2lkIERhdGFiYXNlOjpwZXJmb3JtQXRFeGl0U2F2ZSgpIGNvbnN0CiAKIERhdGFiYXNlKiBE
YXRhYmFzZTo6cmVtb3ZlRmlyc3RBdEV4aXREYXRhYmFzZSgpCiB7Ci0gICAgVENNYWxsb2NfU3Bp
bkxvY2tIb2xkZXIgaG9sZGVyKCZyZWdpc3RyYXRpb25Mb2NrKTsKKyAgICBTcGluTG9ja0hvbGRl
ciBob2xkZXIocmVnaXN0cmF0aW9uTG9jayk7CiAgICAgRGF0YWJhc2UqIHJlc3VsdCA9IGZpcnN0
RGF0YWJhc2U7CiAgICAgaWYgKHJlc3VsdCkgewogICAgICAgICBmaXJzdERhdGFiYXNlID0gcmVz
dWx0LT5tX25leHRSZWdpc3RlcmVkRGF0YWJhc2U7CkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMTgxNDgxKQor
KysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMSBAQAor
MjAxNS0wMy0xMyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVw
bGFjZSBUQ1NwaW5Mb2NrIHdpdGggYSBuZXcgV1RGOjpTcGluTG9jayBiYXNlZCBvbiBXVEY6OkF0
b21pYy4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE0MjY3ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBubyBsb25nZXIgdXNlIFRD
TWFsbG9jIGluIG91ciBjb2RlLCBhbmQgd2Ugbm93IGhhdmUgQysrMTEuICBUaGlzIHJlcGxhY2Vz
IHRoZQorICAgICAgICBUQ01hbGxvY19TcGluTG9jayB3aXRoIGEgbmV3IFdURjo6U3BpbkxvY2sg
YmFzZWQgb24gV1RGOjpBdG9taWMgKHdoaWNoIGlzIGEKKyAgICAgICAgd3JhcHBlciBhcm91bmQg
c3RkOjphdG9taWMpLgorCisgICAgICAgICogV1RGLnZjeHByb2ovV1RGLnZjeHByb2o6CisgICAg
ICAgICogV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogd3RmL01ldGFBbGxvY2F0b3IuY3BwOgorICAgICAgICAoV1RGOjpNZXRhQWxsb2Nh
dG9yOjp+TWV0YUFsbG9jYXRvcik6CisgICAgICAgIChXVEY6Ok1ldGFBbGxvY2F0b3I6Ok1ldGFB
bGxvY2F0b3IpOgorICAgICAgICAqIHd0Zi9NZXRhQWxsb2NhdG9yLmg6CisgICAgICAgICogd3Rm
L1NwaW5Mb2NrLmg6IEFkZGVkLgorICAgICAgICAoV1RGOjpTcGluTG9ja0Jhc2U6OmxvY2spOgor
ICAgICAgICAoV1RGOjpTcGluTG9ja0Jhc2U6OnVubG9jayk6CisgICAgICAgIChXVEY6OlNwaW5M
b2NrQmFzZTo6aXNMb2NrZWQpOgorICAgICAgICAoV1RGOjpTcGluTG9ja0Jhc2U6OnNsb3dMb2Nr
KToKKyAgICAgICAgKFdURjo6U3BpbkxvY2s6OlNwaW5Mb2NrKToKKyAgICAgICAgKiB3dGYvVENT
cGluTG9jay5oOiBSZW1vdmVkLgorICAgICAgICAqIHd0Zi90ZXh0L0F0b21pY1N0cmluZy5jcHA6
CisKIDIwMTUtMDMtMTMgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IEludHJvZHVjZSBXVEY6OkF0b21pYyB0byB3cmFwIHN0ZDo6YXRvbWljIGZvciBhIGZyaWVuZGxp
ZXIgQ0FTLgpJbmRleDogU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCShyZXZpc2lvbiAxODE0
ODEpCisrKyBTb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC0yNzEsNiArMjcxLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxTSEEx
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcU2luZ2x5TGlua2VkTGlzdC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFNpeENoYXJhY3Rlckhhc2guaCIg
Lz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxTcGluTG9jay5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFN0YWNrQm91bmRzLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlx3dGZcU3RhdGljQ29uc3RydWN0b3JzLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlx3dGZcU3RkTGliRXh0cmFzLmgiIC8+CkBAIC0yNzgsNyArMjc5LDYgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxTdHJpbmdFeHRyYXMuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxTdHJpbmdIYXNoZXIuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHd0ZlxTdHJpbmdQcmludFN0cmVhbS5oIiAvPgotICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cd3RmXFRDU3BpbkxvY2suaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHd0ZlxUZW1wb3JhcnlDaGFuZ2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHd0Zlx0ZXh0XEFTQ0lJRmFzdFBhdGguaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHd0Zlx0ZXh0XEF0b21pY1N0cmluZy5oIiAvPgpJbmRleDogU291cmNlL1dURi9XVEYudmN4
cHJvai9XVEYudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvV1RGLnZj
eHByb2ovV1RGLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24gMTgxNDgxKQorKysgU291cmNlL1dU
Ri9XVEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC02MTIs
NiArNjEyLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxTaW5nbHlMaW5rZWRM
aXN0LmgiPgogICAgICAgPEZpbHRlcj53dGY8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxTcGluTG9jay5oIj4KKyAgICAgIDxGaWx0ZXI+
d3RmPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llx3dGZcU3RhY2tCb3VuZHMuaCI+CiAgICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgpAQCAtNjMzLDkgKzYzNiw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llx3dGZcU3RyaW5nUHJpbnRTdHJlYW0uaCI+CiAgICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFRDU3Bpbkxv
Y2suaCI+Ci0gICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFRlbXBvcmFyeUNoYW5nZS5oIj4KICAgICAgIDxG
aWx0ZXI+d3RmPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkluZGV4OiBTb3VyY2UvV1RGL1dU
Ri54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE4MTQ4MSkKKysrIFNvdXJjZS9X
VEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIyMSw3
ICsyMjEsNiBAQAogCQlBOEE0NzQyQTE1MUE4MjVCMDA0MTIzRkYgLyogU3RkTGliRXh0cmFzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzMxMTE1
MUE4MjVCMDA0MTIzRkYgLyogU3RkTGliRXh0cmFzLmggKi87IH07CiAJCUE4QTQ3NDJDMTUxQTgy
NUIwMDQxMjNGRiAvKiBTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MzEzMTUxQTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdFeHRy
YXMuaCAqLzsgfTsKIAkJQThBNDc0MkQxNTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0hhc2hlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczMTQx
NTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0hhc2hlci5oICovOyB9OwotCQlBOEE0NzQzMDE1MUE4
MjVCMDA0MTIzRkYgLyogVENTcGluTG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThBNDczMTcxNTFBODI1QjAwNDEyM0ZGIC8qIFRDU3BpbkxvY2su
aCAqLzsgfTsKIAkJQThBNDc0MzMxNTFBODI1QjAwNDEyM0ZGIC8qIFRlbXBvcmFyeUNoYW5nZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczMUEx
NTFBODI1QjAwNDEyM0ZGIC8qIFRlbXBvcmFyeUNoYW5nZS5oICovOyB9OwogCQlBOEE0NzQzNDE1
MUE4MjVCMDA0MTIzRkYgLyogQVNDSUlGYXN0UGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczMUMxNTFBODI1QjAwNDEyM0ZGIC8qIEFTQ0lJ
RmFzdFBhdGguaCAqLzsgfTsKIAkJQThBNDc0MzUxNTFBODI1QjAwNDEyM0ZGIC8qIEF0b21pY1N0
cmluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEE0NzMxRDE1MUE4MjVCMDA0MTIzRkYgLyogQXRvbWljU3RyaW5nLmNwcCAqLzsgfTsKQEAgLTI3
OSw2ICsyNzgsNyBAQAogCQlFNEEwQUQzQTFBOTYyNDU1MDA1MzZERjYgLyogV29ya1F1ZXVlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEEwQUQzODFB
OTYyNDU1MDA1MzZERjYgLyogV29ya1F1ZXVlLmggKi87IH07CiAJCUU0QTBBRDNEMUE5NjI1M0Mw
MDUzNkRGNiAvKiBXb3JrUXVldWVDb2NvYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNEEwQUQzQzFBOTYyNTNDMDA1MzZERjYgLyogV29ya1F1ZXVl
Q29jb2EuY3BwICovOyB9OwogCQlFQjk1RTFGMDE2MUE3MjQxMDA4OUEyRjUgLyogQnl0ZU9yZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQjk1RTFF
RjE2MUE3MjQxMDA4OUEyRjUgLyogQnl0ZU9yZGVyLmggKi87IH07CisJCUZFOTFFODgxMUFCMkEw
MjAwMDk5ODk1RiAvKiBTcGluTG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkU5MUU4ODAxQUIyQTAyMDAwOTk4OTVGIC8qIFNwaW5Mb2NrLmggKi87
IH07CiAJCUZFREFDRDNEMTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0YXRzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFREFDRDNCMTYzMEY4M0Yw
MEM2OTYzNCAvKiBTdGFja1N0YXRzLmNwcCAqLzsgfTsKIAkJRkVEQUNEM0UxNjMwRjgzRjAwQzY5
NjM0IC8qIFN0YWNrU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEZFREFDRDNDMTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0YXRzLmggKi87IH07
CiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KQEAgLTUxMyw3ICs1MTMsNiBAQAogCQlB
OEE0NzMxMTE1MUE4MjVCMDA0MTIzRkYgLyogU3RkTGliRXh0cmFzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN0ZExpYkV4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBOEE0NzMxMzE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nRXh0cmFzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmluZ0V4dHJhcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBOEE0NzMxNDE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nSGFzaGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmluZ0hhc2hlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBOEE0NzMxNzE1MUE4MjVCMDA0MTIzRkYgLyogVENT
cGluTG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUQ1NwaW5Mb2NrLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MzFBMTUxQTgyNUIwMDQxMjNGRiAv
KiBUZW1wb3JhcnlDaGFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVt
cG9yYXJ5Q2hhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MzFDMTUx
QTgyNUIwMDQxMjNGRiAvKiBBU0NJSUZhc3RQYXRoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFTQ0lJRmFzdFBhdGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QThBNDczMUQxNTFBODI1QjAwNDEyM0ZGIC8qIEF0b21pY1N0cmluZy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdG9taWNTdHJpbmcuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTcxLDYgKzU3MCw3IEBACiAJCUU0QTBBRDM4MUE5NjI0NTUwMDUz
NkRGNiAvKiBXb3JrUXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29y
a1F1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0QTBBRDNDMUE5NjI1M0Mw
MDUzNkRGNiAvKiBXb3JrUXVldWVDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXb3JrUXVldWVDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUVCOTVFMUVGMTYxQTcyNDEwMDg5QTJGNSAvKiBCeXRlT3JkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQnl0ZU9yZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUZFOTFFODgwMUFCMkEwMjAwMDk5ODk1RiAvKiBTcGluTG9jay5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGluTG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGRURBQ0QzQjE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdGFja1N0YXRzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVEQUNEM0MxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3Rh
dHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RhY2tTdGF0cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAq
LwpAQCAtODUwLDYgKzg1MCw3IEBACiAJCQkJQTc0ODc0NTAxN0EwQkRBRTAwRkEwNENCIC8qIFNp
eENoYXJhY3Rlckhhc2guaCAqLywKIAkJCQlBOEE0NzMwQzE1MUE4MjVCMDA0MTIzRkYgLyogU2l6
ZUxpbWl0cy5jcHAgKi8sCiAJCQkJQThBNDczMEQxNTFBODI1QjAwNDEyM0ZGIC8qIFNwZWN0cnVt
LmggKi8sCisJCQkJRkU5MUU4ODAxQUIyQTAyMDAwOTk4OTVGIC8qIFNwaW5Mb2NrLmggKi8sCiAJ
CQkJQThBNDczMEUxNTFBODI1QjAwNDEyM0ZGIC8qIFN0YWNrQm91bmRzLmNwcCAqLywKIAkJCQlB
OEE0NzMwRjE1MUE4MjVCMDA0MTIzRkYgLyogU3RhY2tCb3VuZHMuaCAqLywKIAkJCQlGRURBQ0Qz
QjE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5jcHAgKi8sCkBAIC04NjMsNyArODY0LDYg
QEAKIAkJCQlBOEE0NzMxNDE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nSGFzaGVyLmggKi8sCiAJ
CQkJMEZEREJGQTUxNjY2REZBMzAwQzU1RkVGIC8qIFN0cmluZ1ByaW50U3RyZWFtLmNwcCAqLywK
IAkJCQkwRkREQkZBNjE2NjZERkEzMDBDNTVGRUYgLyogU3RyaW5nUHJpbnRTdHJlYW0uaCAqLywK
LQkJCQlBOEE0NzMxNzE1MUE4MjVCMDA0MTIzRkYgLyogVENTcGluTG9jay5oICovLAogCQkJCUE4
QTQ3MzFBMTUxQTgyNUIwMDQxMjNGRiAvKiBUZW1wb3JhcnlDaGFuZ2UuaCAqLywKIAkJCQlBOEE0
NzMyRjE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9uLmggKi8sCiAJ
CQkJQThBNDczMzAxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZElkZW50aWZpZXJEYXRhUHRocmVh
ZHMuY3BwICovLApAQCAtMTE4Miw2ICsxMTgyLDcgQEAKIAkJCQlBOEE0NzQzQjE1MUE4MjVCMDA0
MTIzRkYgLyogU3RyaW5nQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQzRDE1MUE4
MjVCMDA0MTIzRkYgLyogU3RyaW5nQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0
M0UxNTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0NvbmNhdGVuYXRlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlGRTkxRTg4MTFBQjJBMDIwMDA5OTg5NUYgLyogU3BpbkxvY2suaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4QTQ3NDJDMTUxQTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdFeHRyYXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4QTQ3NDNGMTUxQTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdIYXNoLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNzQ4NzQ1NDE3QTBCREFFMDBGQTA0Q0IgLyogU3RyaW5nSGFzaER1
bXBDb250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTExOTEsNyArMTE5Miw2IEBACiAJCQkJMEZE
REJGQTgxNjY2REZBMzAwQzU1RkVGIC8qIFN0cmluZ1ByaW50U3RyZWFtLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUZERTY1MzE5NTNCMjNEMDBDNDhGRkEgLyogT3B0aW9uYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4QTQ3M0I4MTUxQTgyNUIwMDQxMjNGRiAvKiBzdHJ0b2QuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUE4QTQ3NDMwMTUxQTgyNUIwMDQxMjNGRiAvKiBUQ1NwaW5Mb2NrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMTU1NTZGNjE4QTBDQzE4MDA2RjQ4RkIgLyogQ3J5cHRvZ3JhcGhpY1V0
aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNGQkE5MzIxOURGNDU5NzAwRjMwQURCIC8q
IFR5cGVDYXN0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2RUIxRTAxODdEMEJEMzAwMzAxMjZG
IC8qIFN0cmluZ1ZpZXcuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dURi93dGYvQ01h
a2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQJ
KHJldmlzaW9uIDE4MTQ4MSkKKysrIFNvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw3IEBAIHNldChXVEZfSEVBREVSUwogICAgIFNIQTEuaAog
ICAgIFNhdHVyYXRlZEFyaXRobWV0aWMuaAogICAgIFNlZ21lbnRlZFZlY3Rvci5oCisgICAgU3Bp
bkxvY2suaAogICAgIFN0YWNrQm91bmRzLmgKICAgICBTdGFja1N0YXRzLmgKICAgICBTdGF0aWND
b25zdHJ1Y3RvcnMuaApAQCAtOTUsNyArOTYsNiBAQCBzZXQoV1RGX0hFQURFUlMKICAgICBTdHJp
bmdFeHRyYXMuaAogICAgIFN0cmluZ0hhc2hlci5oCiAgICAgU3RyaW5nUHJpbnRTdHJlYW0uaAot
ICAgIFRDU3BpbkxvY2suaAogICAgIFRocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuaAogICAg
IFRocmVhZFNhZmVSZWZDb3VudGVkLmgKICAgICBUaHJlYWRTcGVjaWZpYy5oCkluZGV4OiBTb3Vy
Y2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9NZXRhQWxsb2NhdG9yLmNwcAkocmV2aXNpb24gMTgxNDgxKQorKysgU291cmNlL1dURi93dGYv
TWV0YUFsbG9jYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDYgQEAgTWV0YUFs
bG9jYXRvcjo6fk1ldGFBbGxvY2F0b3IoKQogICAgICAgICBmcmVlRnJlZVNwYWNlTm9kZShub2Rl
KTsKICAgICAgICAgbm9kZSA9IG5leHQ7CiAgICAgfQotICAgIG1fbG9jay5GaW5hbGl6ZSgpOwog
I2lmbmRlZiBOREVCVUcKICAgICBBU1NFUlQoIW1fbWFsbG9jQmFsYW5jZSk7CiAjZW5kaWYKQEAg
LTEyOSw4ICsxMjgsNiBAQCBNZXRhQWxsb2NhdG9yOjpNZXRhQWxsb2NhdG9yKHNpemVfdCBhbGxv
CiAgICAgLCBtX251bUZyZWVzKDApCiAjZW5kaWYKIHsKLSAgICBtX2xvY2suSW5pdCgpOwotICAg
IAogICAgIGZvciAobV9sb2dQYWdlU2l6ZSA9IDA7IG1fbG9nUGFnZVNpemUgPCAzMjsgKyttX2xv
Z1BhZ2VTaXplKSB7CiAgICAgICAgIGlmIChzdGF0aWNfY2FzdDxzaXplX3Q+KDEpIDw8IG1fbG9n
UGFnZVNpemUgPT0gbV9wYWdlU2l6ZSkKICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNl
L1dURi93dGYvTWV0YUFsbG9jYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL01l
dGFBbGxvY2F0b3IuaAkocmV2aXNpb24gMTgxNDgxKQorKysgU291cmNlL1dURi93dGYvTWV0YUFs
bG9jYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSA8d3Rm
L1JlZEJsYWNrVHJlZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9UQ1NwaW5Mb2NrLmg+CisjaW5jbHVkZSA8d3Rm
L1NwaW5Mb2NrLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9T
cGluTG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1NwaW5Mb2NrLmgJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvV1RGL3d0Zi9TcGluTG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFNwaW5Mb2NrX2gKKyNkZWZpbmUgU3BpbkxvY2tfaAorCisjaW5jbHVkZSA8dGhy
ZWFkPgorI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CisjaW5jbHVkZSA8d3RmL0xvY2tlci5oPgor
CituYW1lc3BhY2UgV1RGIHsKKworLy8gU3BpbkxvY2tCYXNlIGlzIGEgc3RydWN0IHdpdGhvdXQg
YW4gZXhwbGljaXRseSBkZWZpbmVkIGNvbnN0cnVjdG9ycyBzbyB0aGF0CisvLyBpdCBjYW4gYmUg
aW5pdGlhbGl6ZWQgYXQgY29tcGlsZSB0aW1lLiBTZWUgU3RhdGljU3BpbkxvY2sgYmVsb3cuCitz
dHJ1Y3QgU3BpbkxvY2tCYXNlIHsKKworICAgIHZvaWQgbG9jaygpCisgICAgeworICAgICAgICB3
aGlsZSAoIW1fbG9jay5jb21wYXJlX2V4Y2hhbmdlX3dlYWsoMCwgMSwgc3RkOjptZW1vcnlfb3Jk
ZXJfYWNxdWlyZSkpCisgICAgICAgICAgICBzdGQ6OnRoaXNfdGhyZWFkOjp5aWVsZCgpOworICAg
IH0KKworICAgIHZvaWQgdW5sb2NrKCkKKyAgICB7CisgICAgICAgIG1fbG9jay5zdG9yZSgwLCBz
dGQ6Om1lbW9yeV9vcmRlcl9yZWxlYXNlKTsKKyAgICB9CisKKyAgICBib29sIGlzTG9ja2VkKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2xvY2subG9hZChzdGQ6Om1lbW9yeV9vcmRl
cl9hY3F1aXJlKTsKKyAgICB9CisgICAgCisgICAgQXRvbWljPHVuc2lnbmVkPiBtX2xvY2s7Cit9
OworCisvLyBTcGluTG9jayBpcyBmb3IgdXNlIGFzIGluc3RhbmNlIHZhcmlhYmxlcyBpbiBzdHJ1
Y3RzIGFuZCBjbGFzc2VzLCBub3QgYXMKKy8vIHN0YXRpY3MgYW5kIGdsb2JhbHMuCitzdHJ1Y3Qg
U3BpbkxvY2sgOiBwdWJsaWMgU3BpbkxvY2tCYXNlIHsKKyAgICBTcGluTG9jaygpCisgICAgewor
ICAgICAgICBtX2xvY2suc3RvcmUoMCwgc3RkOjptZW1vcnlfb3JkZXJfcmVsYXhlZCk7CisgICAg
fQorfTsKKworLy8gU3RhdGljU3BpbkxvY2sgaXMgZm9yIHVzZSBhcyBzdGF0aWNzIGFuZCBnbG9i
YWxzLCBub3QgYXMgaW5zdGFuY2UgdmFyaWFibGVzLgordHlwZWRlZiBTcGluTG9ja0Jhc2UgU3Rh
dGljU3BpbkxvY2s7Cit0eXBlZGVmIExvY2tlcjxTcGluTG9ja0Jhc2U+IFNwaW5Mb2NrSG9sZGVy
OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpTdGF0aWNTcGluTG9jazsKK3Vz
aW5nIFdURjo6U3BpbkxvY2s7Cit1c2luZyBXVEY6OlNwaW5Mb2NrSG9sZGVyOworCisjZW5kaWYg
Ly8gU3BpbkxvY2tfaApJbmRleDogU291cmNlL1dURi93dGYvVENTcGluTG9jay5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1RDU3BpbkxvY2suaAkocmV2aXNpb24gMTgxNDgxKQorKysg
U291cmNlL1dURi93dGYvVENTcGluTG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzMyArMCww
IEBACi0vLyBDb3B5cmlnaHQgKGMpIDIwMDUsIDIwMDYsIEdvb2dsZSBJbmMuCi0vLyBDb3B5cmln
aHQgKGMpIDIwMTAsIFBhdHJpY2sgR2Fuc3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4KLS8vIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0vLyAKLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
Ly8gbWV0OgotLy8gCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0vLyAKLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8v
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0KLS8vIC0tLQotLy8gQXV0aG9yOiBTYW5qYXkgR2hlbWF3YXQgPG9wZW5zb3Vy
Y2VAZ29vZ2xlLmNvbT4KLQotI2lmbmRlZiBUQ01BTExPQ19JTlRFUk5BTF9TUElOTE9DS19IX18K
LSNkZWZpbmUgVENNQUxMT0NfSU5URVJOQUxfU1BJTkxPQ0tfSF9fCi0KLSNpbmNsdWRlIDx3dGYv
QXRvbWljcy5oPgotI2lmIE9TKFVOSVgpCi0jaW5jbHVkZSA8c2NoZWQuaD4KLSNlbmRpZgotCi0j
aWYgRU5BQkxFKENPTVBBUkVfQU5EX1NXQVApCi0KLXN0YXRpYyB2b2lkIFRDTWFsbG9jX1Nsb3dM
b2NrKHVuc2lnbmVkKiBsb2Nrd29yZCk7Ci0KLS8vIFRoZSBmb2xsb3dpbmcgaXMgYSBzdHJ1Y3Qg
c28gdGhhdCBpdCBjYW4gYmUgaW5pdGlhbGl6ZWQgYXQgY29tcGlsZSB0aW1lCi1zdHJ1Y3QgVENN
YWxsb2NfU3BpbkxvY2sgewotICAgIHZvaWQgTG9jaygpIHsKLSAgICAgIGlmICghV1RGOjp3ZWFr
Q29tcGFyZUFuZFN3YXAoJmxvY2t3b3JkXywgMCwgMSkpCi0gICAgICAgIFRDTWFsbG9jX1Nsb3dM
b2NrKCZsb2Nrd29yZF8pOwotICAgICAgV1RGOjptZW1vcnlCYXJyaWVyQWZ0ZXJMb2NrKCk7Ci0g
ICAgfQotCi0gICAgdm9pZCBVbmxvY2soKSB7Ci0gICAgICBXVEY6Om1lbW9yeUJhcnJpZXJCZWZv
cmVVbmxvY2soKTsKLSAgICAgIGxvY2t3b3JkXyA9IDA7Ci0gICAgfQotCi0gICAgLy8gUmVwb3J0
IGlmIHdlIHRoaW5rIHRoZSBsb2NrIGNhbiBiZSBoZWxkIGJ5IHRoaXMgdGhyZWFkLgotICAgIC8v
IFdoZW4gdGhlIGxvY2sgaXMgdHJ1bHkgaGVsZCBieSB0aGUgaW52b2tpbmcgdGhyZWFkCi0gICAg
Ly8gd2Ugd2lsbCBhbHdheXMgcmV0dXJuIHRydWUuCi0gICAgLy8gSW5kZW5kZWQgdG8gYmUgdXNl
ZCBhcyBDSEVDSyhsb2NrLklzSGVsZCgpKTsKLSAgICBib29sIElzSGVsZCgpIGNvbnN0IHsKLSAg
ICAgICAgcmV0dXJuIGxvY2t3b3JkXyAhPSAwOwotICAgIH0KLQotICAgIHZvaWQgSW5pdCgpIHsg
bG9ja3dvcmRfID0gMDsgfQotICAgIHZvaWQgRmluYWxpemUoKSB7IH0KLQotICAgIHVuc2lnbmVk
IGxvY2t3b3JkXzsKLX07Ci0KLSNkZWZpbmUgU1BJTkxPQ0tfSU5JVElBTElaRVIgeyAwIH0KLQot
c3RhdGljIHZvaWQgVENNYWxsb2NfU2xvd0xvY2sodW5zaWduZWQqIGxvY2t3b3JkKSB7Ci0gIGRv
IHsKLSNpZiBPUyhXSU5ET1dTKQotICAgIFNsZWVwKDApOwotI2Vsc2UKLSAgICBzY2hlZF95aWVs
ZCgpOwotI2VuZGlmCi0gIH0gd2hpbGUgKCFXVEY6OndlYWtDb21wYXJlQW5kU3dhcChsb2Nrd29y
ZCwgMCwgMSkpOwotfQotCi0jZWxzZQotCi0jaW5jbHVkZSA8cHRocmVhZC5oPgotCi0vLyBQb3J0
YWJsZSB2ZXJzaW9uCi1zdHJ1Y3QgVENNYWxsb2NfU3BpbkxvY2sgewotICBwdGhyZWFkX211dGV4
X3QgcHJpdmF0ZV9sb2NrXzsKLQotICBpbmxpbmUgdm9pZCBJbml0KCkgewotICAgIGlmIChwdGhy
ZWFkX211dGV4X2luaXQoJnByaXZhdGVfbG9ja18sIE5VTEwpICE9IDApIENSQVNIKCk7Ci0gIH0K
LSAgaW5saW5lIHZvaWQgRmluYWxpemUoKSB7Ci0gICAgaWYgKHB0aHJlYWRfbXV0ZXhfZGVzdHJv
eSgmcHJpdmF0ZV9sb2NrXykgIT0gMCkgQ1JBU0goKTsKLSAgfQotICBpbmxpbmUgdm9pZCBMb2Nr
KCkgewotICAgIGlmIChwdGhyZWFkX211dGV4X2xvY2soJnByaXZhdGVfbG9ja18pICE9IDApIENS
QVNIKCk7Ci0gIH0KLSAgaW5saW5lIHZvaWQgVW5sb2NrKCkgewotICAgIGlmIChwdGhyZWFkX211
dGV4X3VubG9jaygmcHJpdmF0ZV9sb2NrXykgIT0gMCkgQ1JBU0goKTsKLSAgfQotICBib29sIElz
SGVsZCgpIHsKLSAgICBpZiAocHRocmVhZF9tdXRleF90cnlsb2NrKCZwcml2YXRlX2xvY2tfKSkK
LSAgICAgIHJldHVybiB0cnVlOwotCi0gICAgVW5sb2NrKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwot
ICB9Ci19OwotCi0jZGVmaW5lIFNQSU5MT0NLX0lOSVRJQUxJWkVSIHsgUFRIUkVBRF9NVVRFWF9J
TklUSUFMSVpFUiB9Ci0KLSNlbmRpZgotCi0vLyBDb3JyZXNwb25kaW5nIGxvY2tlciBvYmplY3Qg
dGhhdCBhcnJhbmdlcyB0byBhY3F1aXJlIGEgc3BpbmxvY2sgZm9yCi0vLyB0aGUgZHVyYXRpb24g
b2YgYSBDKysgc2NvcGUuCi1jbGFzcyBUQ01hbGxvY19TcGluTG9ja0hvbGRlciB7Ci0gcHJpdmF0
ZToKLSAgVENNYWxsb2NfU3BpbkxvY2sqIGxvY2tfOwotIHB1YmxpYzoKLSAgaW5saW5lIGV4cGxp
Y2l0IFRDTWFsbG9jX1NwaW5Mb2NrSG9sZGVyKFRDTWFsbG9jX1NwaW5Mb2NrKiBsKQotICAgIDog
bG9ja18obCkgeyBsLT5Mb2NrKCk7IH0KLSAgaW5saW5lIH5UQ01hbGxvY19TcGluTG9ja0hvbGRl
cigpIHsgbG9ja18tPlVubG9jaygpOyB9Ci19OwotCi0vLyBTaG9ydC1oYW5kcyBmb3IgY29udmVu
aWVudCB1c2UgYnkgdGNtYWxsb2MuY2MKLXR5cGVkZWYgVENNYWxsb2NfU3BpbkxvY2sgU3Bpbkxv
Y2s7Ci10eXBlZGVmIFRDTWFsbG9jX1NwaW5Mb2NrSG9sZGVyIFNwaW5Mb2NrSG9sZGVyOwotCi0j
ZW5kaWYgIC8vIFRDTUFMTE9DX0lOVEVSTkFMX1NQSU5MT0NLX0hfXwpJbmRleDogU291cmNlL1dU
Ri93dGYvdGV4dC9BdG9taWNTdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L3RleHQvQXRvbWljU3RyaW5nLmNwcAkocmV2aXNpb24gMTgxNDgxKQorKysgU291cmNlL1dURi93
dGYvdGV4dC9BdG9taWNTdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBA
CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5oPgogCiAjaWYgVVNFKFdFQl9USFJFQUQpCi0j
aW5jbHVkZSAiVENTcGluTG9jay5oIgorI2luY2x1ZGUgIlNwaW5Mb2NrLmgiCiAjZW5kaWYKIAog
bmFtZXNwYWNlIFdURiB7CkBAIC00Nyw3ICs0Nyw3IEBAIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEF0
b21pY1N0cmluZykgPT0gc2kKIGNsYXNzIEF0b21pY1N0cmluZ1RhYmxlTG9ja2VyIDogcHVibGlj
IFNwaW5Mb2NrSG9sZGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdG9taWNTdHJpbmdU
YWJsZUxvY2tlcik7CiAKLSAgICBzdGF0aWMgU3BpbkxvY2sgc19zdHJpbmdUYWJsZUxvY2s7Cisg
ICAgc3RhdGljIFN0YXRpY1NwaW5Mb2NrIHNfc3RyaW5nVGFibGVMb2NrOwogcHVibGljOgogICAg
IEF0b21pY1N0cmluZ1RhYmxlTG9ja2VyKCkKICAgICAgICAgOiBTcGluTG9ja0hvbGRlcigmc19z
dHJpbmdUYWJsZUxvY2spCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICB9CiB9OwogCi1T
cGluTG9jayBBdG9taWNTdHJpbmdUYWJsZUxvY2tlcjo6c19zdHJpbmdUYWJsZUxvY2sgPSBTUElO
TE9DS19JTklUSUFMSVpFUjsKK1N0YXRpY1NwaW5Mb2NrIEF0b21pY1N0cmluZ1RhYmxlTG9ja2Vy
OjpzX3N0cmluZ1RhYmxlTG9jazsKIAogI2Vsc2UKIApJbmRleDogU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24g
MTgxNDgxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTUtMDMtMTMgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgor
CisgICAgICAgIFJlcGxhY2UgVENTcGluTG9jayB3aXRoIGEgbmV3IFdURjo6U3BpbkxvY2sgYmFz
ZWQgb24gV1RGOjpBdG9taWMuCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDI2NzQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIGJlY2F1c2UgdGhlcmUgaXMgbm8gbmV3IGZ1bmN0aW9uYWxpdHkuIFRoaXMgaXMgYSBy
ZWZhY3RvcmluZyBlZmZvcnQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9i
amVjdC5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mvd2FrL1dBS1dpbmRvdy5tbToKKyAgICAg
ICAgKC1bV0FLV2luZG93IGluaXRXaXRoTGF5ZXI6XSk6CisgICAgICAgICgtW1dBS1dpbmRvdyBp
bml0V2l0aEZyYW1lOl0pOgorCiAyMDE1LTAzLTEzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgWE1MSHR0cFJlcXVlc3RzIHNob3VsZCBub3QgcHJldmVudCBhIHBh
Z2UgZnJvbSBlbnRlcmluZyBQYWdlQ2FjaGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCShyZXZpc2lvbiAxODE0ODEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQkod29ya2luZyBjb3B5
KQpAQCAtNDgsNyArNDgsNyBAQAogI2ltcG9ydCA8cnVudGltZS9KU0xvY2suaD4KICNpbXBvcnQg
PHJ1bnRpbWUvQ29tcGxldGlvbi5oPgogI2ltcG9ydCA8cnVudGltZS9Db21wbGV0aW9uLmg+Ci0j
aW1wb3J0IDx3dGYvVENTcGluTG9jay5oPgorI2ltcG9ydCA8d3RmL1NwaW5Mb2NrLmg+CiAjaW1w
b3J0IDx3dGYvVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2NvY29hL05TTWFwVGFibGVT
UEkuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNzIsNyArNzIsNyBAQCB1
c2luZyBKU0M6Om1ha2VTb3VyY2U7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBOU01h
cFRhYmxlKiBKU1dyYXBwZXJDYWNoZTsKLXN0YXRpYyBTcGluTG9jayBzcGluTG9jayA9IFNQSU5M
T0NLX0lOSVRJQUxJWkVSOworc3RhdGljIFN0YXRpY1NwaW5Mb2NrIHNwaW5Mb2NrOwogCiBOU09i
amVjdCogZ2V0SlNXcmFwcGVyKEpTT2JqZWN0KiBpbXBsKQogewpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL3dhay9XQUtXaW5kb3cubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XQUtXaW5kb3cubW0JKHJldmlzaW9uIDE4MTQ4MSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLV2luZG93Lm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiw3ICszNiw3IEBACiAjaW1wb3J0ICJXS0NvbnRlbnRPYnNlcnZhdGlvbi5oIgog
I2ltcG9ydCAiV0tWaWV3UHJpdmF0ZS5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3Jl
Lmg+Ci0jaW1wb3J0IDx3dGYvVENTcGluTG9jay5oPgorI2ltcG9ydCA8d3RmL1NwaW5Mb2NrLmg+
CiAKIFdFQkNPUkVfRVhQT1JUIE5TU3RyaW5nICogY29uc3QgV0FLV2luZG93U2NyZWVuU2NhbGVE
aWRDaGFuZ2VOb3RpZmljYXRpb24gPSBAIldBS1dpbmRvd1NjcmVlblNjYWxlRGlkQ2hhbmdlTm90
aWZpY2F0aW9uIjsKIFdFQkNPUkVfRVhQT1JUIE5TU3RyaW5nICogY29uc3QgV0FLV2luZG93Vmlz
aWJpbGl0eURpZENoYW5nZU5vdGlmaWNhdGlvbiA9IEAiV0FLV2luZG93VmlzaWJpbGl0eURpZENo
YW5nZU5vdGlmaWNhdGlvbiI7CkBAIC03Nyw3ICs3Nyw2IEBAIC0gKGlkKWluaXRXaXRoTGF5ZXI6
KENBTGF5ZXIgKilsYXllcgogCiAgICAgX2Zyb3plblZpc2libGVSZWN0ID0gQ0dSZWN0TnVsbDsK
IAotICAgIF9leHBvc2VkU2Nyb2xsVmlld1JlY3RMb2NrID0gU1BJTkxPQ0tfSU5JVElBTElaRVI7
CiAgICAgX2V4cG9zZWRTY3JvbGxWaWV3UmVjdCA9IENHUmVjdE51bGw7CiAKICAgICByZXR1cm4g
c2VsZjsKQEAgLTkzLDcgKzkyLDYgQEAgLSAoaWQpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1l
CiAgICAgX2ZyYW1lID0gZnJhbWU7CiAgICAgX3NjcmVlblNjYWxlID0gd2tHZXRTY3JlZW5TY2Fs
ZUZhY3RvcigpOwogCi0gICAgX2V4cG9zZWRTY3JvbGxWaWV3UmVjdExvY2sgPSBTUElOTE9DS19J
TklUSUFMSVpFUjsKICAgICBfZXhwb3NlZFNjcm9sbFZpZXdSZWN0ID0gQ0dSZWN0TnVsbDsKIAog
ICAgIHJldHVybiBzZWxmOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTgxNDgxKQorKysgU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTUtMDMtMTMgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxh
Y2UgVENTcGluTG9jayB3aXRoIGEgbmV3IFdURjo6U3BpbkxvY2sgYmFzZWQgb24gV1RGOjpBdG9t
aWMuCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDI2NzQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
RXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjpF
dmVudERpc3BhdGNoZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNo
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6Vmlld1VwZGF0
ZURpc3BhdGNoZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlz
cGF0Y2hlci5oOgorCiAyMDE1LTAzLTEyICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIFVJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgdG8gYWxs
b3cgc2VsZWN0aW9uIG9mIGZpbGVzIGZyb20KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCShyZXZpc2lvbiAxODE0
ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQsOSArNTQsNiBAQCBQYXNzUmVmUHRyPEV2ZW50RGlz
cGF0Y2hlcj4gRXZlbnREaXNwYXRjCiBFdmVudERpc3BhdGNoZXI6OkV2ZW50RGlzcGF0Y2hlcigp
CiAgICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkV2ZW50
RGlzcGF0Y2hlciIsIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXNl
ckludGVyYWN0aXZlKSkKICAgICAsIG1fcmVjZW50V2hlZWxFdmVudERlbHRhVHJhY2tlcihzdGQ6
Om1ha2VfdW5pcXVlPFdoZWVsRXZlbnREZWx0YVRyYWNrZXI+KCkpCi0jaWYgRU5BQkxFKElPU19U
T1VDSF9FVkVOVFMpCi0gICAgLCBtX3RvdWNoRXZlbnRzTG9jayhTUElOTE9DS19JTklUSUFMSVpF
UikKLSNlbmRpZgogewogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRXZlbnREaXNwYXRjaGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCShyZXZpc2lvbiAxODE0ODEpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRl
IDx3dGYvVENTcGluTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9TcGluTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdV
cGRhdGVEaXNwYXRjaGVyLmNwcAkocmV2aXNpb24gMTgxNDgxKQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDIsNyArNDIsNiBAQCBSZWY8Vmlld1VwZGF0ZURpc3BhdGNoZXI+IFZpZXdVcGRhdGVE
aXNwCiAKIFZpZXdVcGRhdGVEaXNwYXRjaGVyOjpWaWV3VXBkYXRlRGlzcGF0Y2hlcigpCiAgICAg
OiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlZpZXdVcGRhdGVE
aXNwYXRjaGVyIikpCi0gICAgLCBtX2RhdGFNdXRleChTUElOTE9DS19JTklUSUFMSVpFUikKIHsK
IH0KIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVE
aXNwYXRjaGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVyLmgJKHJldmlzaW9uIDE4MTQ4MSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiVmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mby5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5o
PgotI2luY2x1ZGUgPHd0Zi9UQ1NwaW5Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL1NwaW5Mb2NrLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248593</attachid>
            <date>2015-03-13 11:38:07 -0700</date>
            <delta_ts>2015-03-13 12:49:02 -0700</delta_ts>
            <desc>patch 2: added some ChangeLog comment.</desc>
            <filename>bug-142674.patch</filename>
            <type>text/plain</type>
            <size>34694</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgxNDgxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBA
CisyMDE1LTAzLTEzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXBsYWNlIFRDU3BpbkxvY2sgd2l0aCBhIG5ldyBXVEY6OlNwaW5Mb2NrIGJhc2VkIG9uIFdURjo6
QXRvbWljLgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQyNjc0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQVBJL0pTVmFsdWUubW06
CisgICAgICAgIChoYW5kZXJGb3JTdHJ1Y3RUYWcpOgorICAgICAgICAqIEFQSS9KU1dyYXBwZXJN
YXAubW06CisgICAgICAgICogZGZnL0RGR0NvbW1vbi5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
c3RhcnRDcmFzaGluZyk6CisgICAgICAgIChKU0M6OkRGRzo6aXNDcmFzaGluZyk6CisgICAgICAg
IC0gQ2hhbmdlZCB0byB1c2UgYSBTdGF0aWNTcGluTG9jayBzaW5jZSB0aGF0J3Mgd2hhdCB0aGlz
IGNvZGUgd2FzIHRyeWluZyB0byBkbworICAgICAgICAgIGFueXdheS4KKyAgICAgICAgKiBoZWFw
L0NvcGllZEJsb2NrLmg6CisgICAgICAgIChKU0M6OkNvcGllZEJsb2NrOjpDb3BpZWRCbG9jayk6
CisgICAgICAgICogaGVhcC9Db3BpZWRTcGFjZS5jcHA6CisgICAgICAgIChKU0M6OkNvcGllZFNw
YWNlOjpDb3BpZWRTcGFjZSk6CisgICAgICAgICogaGVhcC9Db3BpZWRTcGFjZS5oOgorICAgICAg
ICAqIGhlYXAvR0NUaHJlYWRTaGFyZWREYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6R0NUaHJlYWRT
aGFyZWREYXRhOjpHQ1RocmVhZFNoYXJlZERhdGEpOgorICAgICAgICAqIGhlYXAvR0NUaHJlYWRT
aGFyZWREYXRhLmg6CisgICAgICAgICogaGVhcC9MaXN0YWJsZUhhbmRsZXIuaDoKKyAgICAgICAg
KEpTQzo6TGlzdGFibGVIYW5kbGVyOjpMaXN0OjpMaXN0KToKKyAgICAgICAgKiBwYXJzZXIvU291
cmNlUHJvdmlkZXIuY3BwOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuY3Bw
OgorICAgICAgICAoSlNDOjpQcm9maWxlcjo6RGF0YWJhc2U6OmFkZERhdGFiYXNlVG9BdEV4aXQp
OgorICAgICAgICAoSlNDOjpQcm9maWxlcjo6RGF0YWJhc2U6OnJlbW92ZURhdGFiYXNlRnJvbUF0
RXhpdCk6CisgICAgICAgIChKU0M6OlByb2ZpbGVyOjpEYXRhYmFzZTo6cmVtb3ZlRmlyc3RBdEV4
aXREYXRhYmFzZSk6CisKIDIwMTUtMDMtMTMgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIEludHJvZHVjZSBXVEY6OkF0b21pYyB0byB3cmFwIHN0ZDo6YXRvbWljIGZv
ciBhIGZyaWVuZGxpZXIgQ0FTLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Zh
bHVlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5t
bQkocmV2aXNpb24gMTgxNDgxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVl
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MSw4ICs0MSw4IEBACiAjaW1wb3J0IDx3dGYvSGFzaE1h
cC5oPgogI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4
dHJhcy5oPgorI2ltcG9ydCA8d3RmL1NwaW5Mb2NrLmg+CiAjaW1wb3J0IDx3dGYvVmVjdG9yLmg+
Ci0jaW1wb3J0IDx3dGYvVENTcGluTG9jay5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTExMDIsNyArMTEwMiw3
IEBAIHN0YXRpYyBTdHJ1Y3RIYW5kbGVycyogY3JlYXRlU3RydWN0SGFuZGwKIAogc3RhdGljIFN0
cnVjdFRhZ0hhbmRsZXIqIGhhbmRlckZvclN0cnVjdFRhZyhjb25zdCBjaGFyKiBlbmNvZGVkVHlw
ZSkKIHsKLSAgICBzdGF0aWMgU3BpbkxvY2sgaGFuZGVyRm9yU3RydWN0VGFnTG9jayA9IFNQSU5M
T0NLX0lOSVRJQUxJWkVSOworICAgIHN0YXRpYyBTdGF0aWNTcGluTG9jayBoYW5kZXJGb3JTdHJ1
Y3RUYWdMb2NrOwogICAgIFNwaW5Mb2NrSG9sZGVyIGxvY2tIb2xkZXIoJmhhbmRlckZvclN0cnVj
dFRhZ0xvY2spOwogCiAgICAgc3RhdGljIFN0cnVjdEhhbmRsZXJzKiBzdHJ1Y3RIYW5kbGVycyA9
IGNyZWF0ZVN0cnVjdEhhbmRsZXJNYXAoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNXcmFwcGVyTWFwLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNXcmFwcGVyTWFwLm1tCShyZXZpc2lvbiAxODE0ODEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNiBA
QAogI2ltcG9ydCAiV2Vha0dDTWFwLmgiCiAjaW1wb3J0ICJXZWFrR0NNYXBJbmxpbmVzLmgiCiAj
aW1wb3J0IDx3dGYvSGFzaFNldC5oPgotI2ltcG9ydCA8d3RmL1RDU3BpbkxvY2suaD4KICNpbXBv
cnQgPHd0Zi9WZWN0b3IuaD4KICNpbXBvcnQgPHd0Zi9zcGkvY29jb2EvTlNNYXBUYWJsZVNQSS5o
PgogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uY3BwCShyZXZpc2lv
biAxODE0ODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM0LDE3ICszNCwxNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIERGRyB7CiAKLXN0YXRpYyBBdG9taWM8dW5zaWduZWQ+IGNyYXNoTG9jazsKK3N0YXRpYyBT
dGF0aWNTcGluTG9jayBjcmFzaExvY2s7CiAKIHZvaWQgc3RhcnRDcmFzaGluZygpCiB7Ci0gICAg
d2hpbGUgKCFjcmFzaExvY2suY29tcGFyZV9leGNoYW5nZV93ZWFrKDAsIDEsIHN0ZDo6bWVtb3J5
X29yZGVyX2FjcXVpcmUpKQotICAgICAgICBzdGQ6OnRoaXNfdGhyZWFkOjp5aWVsZCgpOworICAg
IGNyYXNoTG9jay5sb2NrKCk7CiB9CiAKIGJvb2wgaXNDcmFzaGluZygpCiB7Ci0gICAgcmV0dXJu
ICEhY3Jhc2hMb2NrLmxvYWQoc3RkOjptZW1vcnlfb3JkZXJfYWNxdWlyZSk7CisgICAgcmV0dXJu
IGNyYXNoTG9jay5pc0xvY2tlZCgpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRCbG9jay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZEJsb2NrLmgJKHJldmlzaW9uIDE4
MTQ4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZEJsb2NrLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVk
ZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvRG91Ymx5TGlua2VkTGlzdC5oPgotI2lu
Y2x1ZGUgPHd0Zi9UQ1NwaW5Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL1NwaW5Mb2NrLmg+CiAKIG5h
bWVzcGFjZSBKU0MgewogCkBAIC0xNTIsNyArMTUyLDYgQEAgaW5saW5lIENvcGllZEJsb2NrOjpD
b3BpZWRCbG9jayhzaXplX3QgYwogICAgICwgbV9saXZlT2JqZWN0cygwKQogI2VuZGlmCiB7Ci0g
ICAgbV93b3JrTGlzdExvY2suSW5pdCgpOwogICAgIEFTU0VSVChpczhCeXRlQWxpZ25lZChyZWlu
dGVycHJldF9jYXN0PHZvaWQqPihtX3JlbWFpbmluZykpKTsKIH0KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAkocmV2aXNpb24gMTgxNDgxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zOSw3ICszOSw2IEBAIENvcGllZFNwYWNlOjpDb3BpZWRTcGFjZShIZWFwKiBoZWFwKQog
ICAgICwgbV9zaG91bGREb0NvcHlQaGFzZShmYWxzZSkKICAgICAsIG1fbnVtYmVyT2ZMb2FuZWRC
bG9ja3MoMCkKIHsKLSAgICBtX3RvU3BhY2VMb2NrLkluaXQoKTsKIH0KIAogQ29waWVkU3BhY2U6
On5Db3BpZWRTcGFjZSgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRT
cGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNw
YWNlLmgJKHJldmlzaW9uIDE4MTQ4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
cGllZFNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDggKzM3LDggQEAKICNpbmNsdWRlIDx3
dGYvT1NBbGxvY2F0b3IuaD4KICNpbmNsdWRlIDx3dGYvUGFnZUFsbG9jYXRpb25BbGlnbmVkLmg+
CiAjaW5jbHVkZSA8d3RmL1BhZ2VCbG9jay5oPgorI2luY2x1ZGUgPHd0Zi9TcGluTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvVENTcGluTG9jay5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAKIG5hbWVzcGFjZSBKU0Mg
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWRTaGFyZWREYXRhLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZFNoYXJl
ZERhdGEuY3BwCShyZXZpc2lvbiAxODE0ODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9HQ1RocmVhZFNoYXJlZERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MSw3ICs4MSw2IEBA
IEdDVGhyZWFkU2hhcmVkRGF0YTo6R0NUaHJlYWRTaGFyZWREYXRhKFYKICAgICAsIG1fZ2NUaHJl
YWRzU2hvdWxkV2FpdChmYWxzZSkKICAgICAsIG1fY3VycmVudFBoYXNlKE5vUGhhc2UpCiB7Ci0g
ICAgbV9jb3B5TG9jay5Jbml0KCk7CiAjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQogICAgIC8vIEdy
YWIgdGhlIGxvY2sgc28gdGhlIG5ldyBHQyB0aHJlYWRzIGNhbiBiZSBwcm9wZXJseSBpbml0aWFs
aXplZCBiZWZvcmUgdGhleSBzdGFydCBydW5uaW5nLgogICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3Rk
OjptdXRleD4gbG9jayhtX3BoYXNlTXV0ZXgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvR0NUaHJlYWRTaGFyZWREYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvR0NUaHJlYWRTaGFyZWREYXRhLmgJKHJldmlzaW9uIDE4MTQ4MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDVGhyZWFkU2hhcmVkRGF0YS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiV2Vha1JlZmVyZW5jZUhhcnZlc3Rlci5o
IgogI2luY2x1ZGUgPGNvbmRpdGlvbl92YXJpYWJsZT4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgotI2luY2x1ZGUgPHd0Zi9UQ1NwaW5Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL1NwaW5Mb2NrLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0xpc3RhYmxlSGFuZGxlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0xpc3RhYmxlSGFuZGxlci5oCShyZXZpc2lvbiAxODE0
ODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9MaXN0YWJsZUhhbmRsZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMjMsOCArMjMsOCBAQAogI2luY2x1ZGUgPHN0ZGludC5oPgogI2luY2x1
ZGUgPHd0Zi9Mb2NrZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRl
IDx3dGYvU3BpbkxvY2suaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgot
I2luY2x1ZGUgPHd0Zi9UQ1NwaW5Mb2NrLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC02MSw3
ICs2MSw2IEBAIHByaXZhdGU6CiAgICAgICAgIExpc3QoKQogICAgICAgICAgICAgOiBtX2ZpcnN0
KDApCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1fbG9jay5Jbml0KCk7CiAgICAgICAgIH0KICAg
ICAgICAgCiAgICAgICAgIHZvaWQgYWRkVGhyZWFkU2FmZShUKiBoYW5kbGVyKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAJKHJldmlz
aW9uIDE4MTQ4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlk
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNyw4IEBACiAjaW5jbHVkZSAiU291cmNl
UHJvdmlkZXIuaCIKIAogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNsdWRlIDx3dGYvU3Bp
bkxvY2suaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL1RD
U3BpbkxvY2suaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTQ0LDcgKzQ0LDcgQEAgU291cmNl
UHJvdmlkZXI6On5Tb3VyY2VQcm92aWRlcigpCiB7CiB9CiAKLXN0YXRpYyBUQ01hbGxvY19TcGlu
TG9jayBwcm92aWRlcklkTG9jayA9IFNQSU5MT0NLX0lOSVRJQUxJWkVSOworc3RhdGljIFN0YXRp
Y1NwaW5Mb2NrIHByb3ZpZGVySWRMb2NrOwogCiB2b2lkIFNvdXJjZVByb3ZpZGVyOjpnZXRJRCgp
CiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFz
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVyRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxODE0ODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcg
KzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKIHN0YXRpYyBz
dGQ6OmF0b21pYzxpbnQ+IGRhdGFiYXNlQ291bnRlcjsKIAotc3RhdGljIFNwaW5Mb2NrIHJlZ2lz
dHJhdGlvbkxvY2sgPSBTUElOTE9DS19JTklUSUFMSVpFUjsKK3N0YXRpYyBTdGF0aWNTcGluTG9j
ayByZWdpc3RyYXRpb25Mb2NrOwogc3RhdGljIHN0ZDo6YXRvbWljPGludD4gZGlkUmVnaXN0ZXJB
dEV4aXQ7CiBzdGF0aWMgRGF0YWJhc2UqIGZpcnN0RGF0YWJhc2U7CiAKQEAgLTEzOCwxNCArMTM4
LDE0IEBAIHZvaWQgRGF0YWJhc2U6OmFkZERhdGFiYXNlVG9BdEV4aXQoKQogICAgIGlmICgrK2Rp
ZFJlZ2lzdGVyQXRFeGl0ID09IDEpCiAgICAgICAgIGF0ZXhpdChhdEV4aXRDYWxsYmFjayk7CiAg
ICAgCi0gICAgVENNYWxsb2NfU3BpbkxvY2tIb2xkZXIgaG9sZGVyKCZyZWdpc3RyYXRpb25Mb2Nr
KTsKKyAgICBTcGluTG9ja0hvbGRlciBob2xkZXIocmVnaXN0cmF0aW9uTG9jayk7CiAgICAgbV9u
ZXh0UmVnaXN0ZXJlZERhdGFiYXNlID0gZmlyc3REYXRhYmFzZTsKICAgICBmaXJzdERhdGFiYXNl
ID0gdGhpczsKIH0KIAogdm9pZCBEYXRhYmFzZTo6cmVtb3ZlRGF0YWJhc2VGcm9tQXRFeGl0KCkK
IHsKLSAgICBUQ01hbGxvY19TcGluTG9ja0hvbGRlciBob2xkZXIoJnJlZ2lzdHJhdGlvbkxvY2sp
OworICAgIFNwaW5Mb2NrSG9sZGVyIGhvbGRlcihyZWdpc3RyYXRpb25Mb2NrKTsKICAgICBmb3Ig
KERhdGFiYXNlKiogY3VycmVudCA9ICZmaXJzdERhdGFiYXNlOyAqY3VycmVudDsgY3VycmVudCA9
ICYoKmN1cnJlbnQpLT5tX25leHRSZWdpc3RlcmVkRGF0YWJhc2UpIHsKICAgICAgICAgaWYgKCpj
dXJyZW50ICE9IHRoaXMpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTE2Myw3ICsxNjMsNyBA
QCB2b2lkIERhdGFiYXNlOjpwZXJmb3JtQXRFeGl0U2F2ZSgpIGNvbnN0CiAKIERhdGFiYXNlKiBE
YXRhYmFzZTo6cmVtb3ZlRmlyc3RBdEV4aXREYXRhYmFzZSgpCiB7Ci0gICAgVENNYWxsb2NfU3Bp
bkxvY2tIb2xkZXIgaG9sZGVyKCZyZWdpc3RyYXRpb25Mb2NrKTsKKyAgICBTcGluTG9ja0hvbGRl
ciBob2xkZXIocmVnaXN0cmF0aW9uTG9jayk7CiAgICAgRGF0YWJhc2UqIHJlc3VsdCA9IGZpcnN0
RGF0YWJhc2U7CiAgICAgaWYgKHJlc3VsdCkgewogICAgICAgICBmaXJzdERhdGFiYXNlID0gcmVz
dWx0LT5tX25leHRSZWdpc3RlcmVkRGF0YWJhc2U7CkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMTgxNDgxKQor
KysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0NSBAQAor
MjAxNS0wMy0xMyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVw
bGFjZSBUQ1NwaW5Mb2NrIHdpdGggYSBuZXcgV1RGOjpTcGluTG9jayBiYXNlZCBvbiBXVEY6OkF0
b21pYy4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE0MjY3ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBubyBsb25nZXIgdXNlIFRD
TWFsbG9jIGluIG91ciBjb2RlLCBhbmQgd2Ugbm93IGhhdmUgQysrMTEuICBUaGlzIHJlcGxhY2Vz
IHRoZQorICAgICAgICBUQ01hbGxvY19TcGluTG9jayB3aXRoIGEgbmV3IFdURjo6U3BpbkxvY2sg
YmFzZWQgb24gV1RGOjpBdG9taWMgKHdoaWNoIGlzIGEKKyAgICAgICAgd3JhcHBlciBhcm91bmQg
c3RkOjphdG9taWMpLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGVyZSBpcyBhIFN0YXRpY1NwaW5M
b2NrIGFuZCBhIFNwaW5Mb2NrOgorCisgICAgICAgIDEuIFN0YXRpY1NwaW5Mb2NrIGlzIGFuIGFs
aWFzIGZvciBTcGluTG9ja0Jhc2UsIGFuZCBpdHMgaW5pdGlhbGl6YXRpb24gcmVsaWVzIG9uCisg
ICAgICAgICAgIHN0YXRpYyAvIGdsb2JhbCBzdGQ6YXRvbWljIGJlaW5nIGF1dG9tYXRpY2FsbHkg
aW5pdGlhbGl6ZWQgdG8gMCBhdCBjb21waWxlIHRpbWUuCisgICAgICAgICAgIEhlbmNlLCBTdGF0
aWNTcGluTG9jayBzaG91bGQgb25seSBiZSB1c2VkIGZvciBzdGF0aWNzIC8gZ2xvYmFscyAoaW5j
bHVkaW5nCisgICAgICAgICAgIHN0YXRpYyBtZW1iZXJzIG9mIGNsYXNzZXMgLyBzdHJ1Y3RzKS4K
KworICAgICAgICAyLiBTcGluTG9jayBpcyBkZXJpdmVkIGZyb20gU3BpbkxvY2tCYXNlLCBhbmQg
YWRkcyBhIGRlZmF1bHQgY29uc3RydWN0b3IgdG8KKyAgICAgICAgICAgaW5pdGlhbGl6ZSBpdHMg
aW50ZXJuYWwgYXRvbWljIHZhbHVlIHRvIDAuICBCZWNhdXNlIFNwaW5Mb2NrIGhhcyBhIGNvbnN0
cnVjdG9yLAorICAgICAgICAgICBpdCBjYW5ub3QgYmUgdXNlZCBmb3Igc3RhdGljcyAvIGdsb2Jh
bHMuICBPYmplY3RzIHRoYXQgd2FudCB0byBlbWJlZCBhIHNwaW4KKyAgICAgICAgICAgbG9jayBh
cyBhbiBpbnN0YW5jZSBmaWVsZCBzaG91bGQgdXNlIFNwaW5Mb2NrIHNvIHRoYXQgaXQgaXMgaW5p
dGlhbGl6ZWQgcHJvcGVybHkuCisgICAgICAgICAgIHN0ZDo6YXRvbWljIHdpbGwgbm90IGF1dG9t
YXRpY2FsbHkgaW5pdGlhbGl6ZSBpbnN0YW5jZSBmaWVsZHMgdG8gMC4gIEhlbmNlLAorICAgICAg
ICAgICBTdGF0aWNTcGluTG9jayB3aWxsIG5vdCB3b3JrIGNvcnJlY3RseSBhcyBpbnN0YW5jZSBm
aWVsZHMgb2YgYSBjbGFzcyAvIHN0cnVjdC4KKworICAgICAgICAqIFdURi52Y3hwcm9qL1dURi52
Y3hwcm9qOgorICAgICAgICAqIFdURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnM6CisgICAg
ICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0NNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9NZXRhQWxsb2NhdG9yLmNwcDoKKyAgICAgICAgKFdU
Rjo6TWV0YUFsbG9jYXRvcjo6fk1ldGFBbGxvY2F0b3IpOgorICAgICAgICAoV1RGOjpNZXRhQWxs
b2NhdG9yOjpNZXRhQWxsb2NhdG9yKToKKyAgICAgICAgKiB3dGYvTWV0YUFsbG9jYXRvci5oOgor
ICAgICAgICAqIHd0Zi9TcGluTG9jay5oOiBBZGRlZC4KKyAgICAgICAgKFdURjo6U3BpbkxvY2tC
YXNlOjpsb2NrKToKKyAgICAgICAgKFdURjo6U3BpbkxvY2tCYXNlOjp1bmxvY2spOgorICAgICAg
ICAoV1RGOjpTcGluTG9ja0Jhc2U6OmlzTG9ja2VkKToKKyAgICAgICAgKFdURjo6U3BpbkxvY2tC
YXNlOjpzbG93TG9jayk6CisgICAgICAgIChXVEY6OlNwaW5Mb2NrOjpTcGluTG9jayk6CisgICAg
ICAgICogd3RmL1RDU3BpbkxvY2suaDogUmVtb3ZlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9BdG9t
aWNTdHJpbmcuY3BwOgorCiAyMDE1LTAzLTEzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KIAogICAgICAgICBJbnRyb2R1Y2UgV1RGOjpBdG9taWMgdG8gd3JhcCBzdGQ6OmF0b21pYyBm
b3IgYSBmcmllbmRsaWVyIENBUy4KSW5kZXg6IFNvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZj
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvagko
cmV2aXNpb24gMTgxNDgxKQorKysgU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtMjcxLDYgKzI3MSw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlx3dGZcU0hBMS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFNpbmds
eUxpbmtlZExpc3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxTaXhDaGFy
YWN0ZXJIYXNoLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcU3BpbkxvY2su
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxTdGFja0JvdW5kcy5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFN0YXRpY0NvbnN0cnVjdG9ycy5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFN0ZExpYkV4dHJhcy5oIiAvPgpAQCAtMjc4
LDcgKzI3OSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcU3RyaW5nRXh0cmFz
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcU3RyaW5nSGFzaGVyLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcU3RyaW5nUHJpbnRTdHJlYW0uaCIgLz4K
LSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxUQ1NwaW5Mb2NrLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcVGVtcG9yYXJ5Q2hhbmdlLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx3dGZcdGV4dFxBU0NJSUZhc3RQYXRoLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx3dGZcdGV4dFxBdG9taWNTdHJpbmcuaCIgLz4KSW5kZXg6IFNvdXJj
ZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE4MTQ4MSkK
KysrIFNvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBj
b3B5KQpAQCAtNjEyLDYgKzYxMiw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZc
U2luZ2x5TGlua2VkTGlzdC5oIj4KICAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAgICAgPC9D
bEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcU3BpbkxvY2suaCI+Cisg
ICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cd3RmXFN0YWNrQm91bmRzLmgiPgogICAgICAgPEZpbHRlcj53dGY8L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTYzMyw5ICs2MzYsNiBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cd3RmXFN0cmluZ1ByaW50U3RyZWFtLmgiPgogICAgICAgPEZpbHRlcj53
dGY8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHd0ZlxUQ1NwaW5Mb2NrLmgiPgotICAgICAgPEZpbHRlcj53dGY8L0ZpbHRlcj4KLSAgICA8L0Ns
SW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxUZW1wb3JhcnlDaGFuZ2Uu
aCI+CiAgICAgICA8RmlsdGVyPnd0ZjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpJbmRleDog
U291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxODE0ODEp
CisrKyBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0yMjEsNyArMjIxLDYgQEAKIAkJQThBNDc0MkExNTFBODI1QjAwNDEyM0ZGIC8qIFN0
ZExpYkV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQThBNDczMTExNTFBODI1QjAwNDEyM0ZGIC8qIFN0ZExpYkV4dHJhcy5oICovOyB9OwogCQlB
OEE0NzQyQzE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzMxMzE1MUE4MjVCMDA0MTIzRkYg
LyogU3RyaW5nRXh0cmFzLmggKi87IH07CiAJCUE4QTQ3NDJEMTUxQTgyNUIwMDQxMjNGRiAvKiBT
dHJpbmdIYXNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QTQ3MzE0MTUxQTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdIYXNoZXIuaCAqLzsgfTsKLQkJ
QThBNDc0MzAxNTFBODI1QjAwNDEyM0ZGIC8qIFRDU3BpbkxvY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MzE3MTUxQTgyNUIwMDQxMjNGRiAv
KiBUQ1NwaW5Mb2NrLmggKi87IH07CiAJCUE4QTQ3NDMzMTUxQTgyNUIwMDQxMjNGRiAvKiBUZW1w
b3JhcnlDaGFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QTQ3MzFBMTUxQTgyNUIwMDQxMjNGRiAvKiBUZW1wb3JhcnlDaGFuZ2UuaCAqLzsgfTsK
IAkJQThBNDc0MzQxNTFBODI1QjAwNDEyM0ZGIC8qIEFTQ0lJRmFzdFBhdGguaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MzFDMTUxQTgyNUIwMDQx
MjNGRiAvKiBBU0NJSUZhc3RQYXRoLmggKi87IH07CiAJCUE4QTQ3NDM1MTUxQTgyNUIwMDQxMjNG
RiAvKiBBdG9taWNTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThBNDczMUQxNTFBODI1QjAwNDEyM0ZGIC8qIEF0b21pY1N0cmluZy5jcHAg
Ki87IH07CkBAIC0yNzksNiArMjc4LDcgQEAKIAkJRTRBMEFEM0ExQTk2MjQ1NTAwNTM2REY2IC8q
IFdvcmtRdWV1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTRBMEFEMzgxQTk2MjQ1NTAwNTM2REY2IC8qIFdvcmtRdWV1ZS5oICovOyB9OwogCQlFNEEw
QUQzRDFBOTYyNTNDMDA1MzZERjYgLyogV29ya1F1ZXVlQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRBMEFEM0MxQTk2MjUzQzAwNTM2REY2
IC8qIFdvcmtRdWV1ZUNvY29hLmNwcCAqLzsgfTsKIAkJRUI5NUUxRjAxNjFBNzI0MTAwODlBMkY1
IC8qIEJ5dGVPcmRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRUI5NUUxRUYxNjFBNzI0MTAwODlBMkY1IC8qIEJ5dGVPcmRlci5oICovOyB9OworCQlG
RTkxRTg4MTFBQjJBMDIwMDA5OTg5NUYgLyogU3BpbkxvY2suaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFOTFFODgwMUFCMkEwMjAwMDk5ODk1RiAvKiBT
cGluTG9jay5oICovOyB9OwogCQlGRURBQ0QzRDE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRURB
Q0QzQjE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5jcHAgKi87IH07CiAJCUZFREFDRDNF
MTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0YXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRURBQ0QzQzE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tT
dGF0cy5oICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCkBAIC01MTMsNyAr
NTEzLDYgQEAKIAkJQThBNDczMTExNTFBODI1QjAwNDEyM0ZGIC8qIFN0ZExpYkV4dHJhcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGRMaWJFeHRyYXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDczMTMxNTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0V4
dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJpbmdFeHRyYXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDczMTQxNTFBODI1QjAwNDEyM0ZGIC8q
IFN0cmluZ0hhc2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJpbmdI
YXNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThBNDczMTcxNTFBODI1QjAw
NDEyM0ZGIC8qIFRDU3BpbkxvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VENTcGluTG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzMxQTE1MUE4
MjVCMDA0MTIzRkYgLyogVGVtcG9yYXJ5Q2hhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFRlbXBvcmFyeUNoYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBOEE0NzMxQzE1MUE4MjVCMDA0MTIzRkYgLyogQVNDSUlGYXN0UGF0aC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBU0NJSUZhc3RQYXRoLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4QTQ3MzFEMTUxQTgyNUIwMDQxMjNGRiAvKiBBdG9taWNTdHJpbmcuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXRvbWljU3RyaW5nLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU3MSw2ICs1NzAsNyBAQAogCQlFNEEwQUQz
ODFBOTYyNDU1MDA1MzZERjYgLyogV29ya1F1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdvcmtRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEEw
QUQzQzFBOTYyNTNDMDA1MzZERjYgLyogV29ya1F1ZXVlQ29jb2EuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV29ya1F1ZXVlQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFQjk1RTFFRjE2MUE3MjQxMDA4OUEyRjUgLyogQnl0ZU9yZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ5dGVPcmRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGRTkxRTg4MDFBQjJBMDIwMDA5OTg5NUYgLyogU3BpbkxvY2su
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BpbkxvY2suaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVEQUNEM0IxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3Rh
dHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RhY2tTdGF0cy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFREFDRDNDMTYzMEY4M0YwMEM2OTYz
NCAvKiBTdGFja1N0YXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0YWNr
U3RhdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJl
bmNlIHNlY3Rpb24gKi8KQEAgLTg1MCw2ICs4NTAsNyBAQAogCQkJCUE3NDg3NDUwMTdBMEJEQUUw
MEZBMDRDQiAvKiBTaXhDaGFyYWN0ZXJIYXNoLmggKi8sCiAJCQkJQThBNDczMEMxNTFBODI1QjAw
NDEyM0ZGIC8qIFNpemVMaW1pdHMuY3BwICovLAogCQkJCUE4QTQ3MzBEMTUxQTgyNUIwMDQxMjNG
RiAvKiBTcGVjdHJ1bS5oICovLAorCQkJCUZFOTFFODgwMUFCMkEwMjAwMDk5ODk1RiAvKiBTcGlu
TG9jay5oICovLAogCQkJCUE4QTQ3MzBFMTUxQTgyNUIwMDQxMjNGRiAvKiBTdGFja0JvdW5kcy5j
cHAgKi8sCiAJCQkJQThBNDczMEYxNTFBODI1QjAwNDEyM0ZGIC8qIFN0YWNrQm91bmRzLmggKi8s
CiAJCQkJRkVEQUNEM0IxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuY3BwICovLApAQCAt
ODYzLDcgKzg2NCw2IEBACiAJCQkJQThBNDczMTQxNTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0hh
c2hlci5oICovLAogCQkJCTBGRERCRkE1MTY2NkRGQTMwMEM1NUZFRiAvKiBTdHJpbmdQcmludFN0
cmVhbS5jcHAgKi8sCiAJCQkJMEZEREJGQTYxNjY2REZBMzAwQzU1RkVGIC8qIFN0cmluZ1ByaW50
U3RyZWFtLmggKi8sCi0JCQkJQThBNDczMTcxNTFBODI1QjAwNDEyM0ZGIC8qIFRDU3BpbkxvY2su
aCAqLywKIAkJCQlBOEE0NzMxQTE1MUE4MjVCMDA0MTIzRkYgLyogVGVtcG9yYXJ5Q2hhbmdlLmgg
Ki8sCiAJCQkJQThBNDczMkYxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZEZ1bmN0aW9uSW52b2Nh
dGlvbi5oICovLAogCQkJCUE4QTQ3MzMwMTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRJZGVudGlm
aWVyRGF0YVB0aHJlYWRzLmNwcCAqLywKQEAgLTExODIsNiArMTE4Miw3IEBACiAJCQkJQThBNDc0
M0IxNTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QThBNDc0M0QxNTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0J1aWxkZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4QTQ3NDNFMTUxQTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdDb25jYXRlbmF0ZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRkU5MUU4ODExQUIyQTAyMDAwOTk4OTVGIC8qIFNwaW5Mb2NrLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQyQzE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nRXh0
cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQzRjE1MUE4MjVCMDA0MTIzRkYgLyogU3Ry
aW5nSGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0ODc0NTQxN0EwQkRBRTAwRkEwNENCIC8q
IFN0cmluZ0hhc2hEdW1wQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTkxLDcgKzExOTIs
NiBAQAogCQkJCTBGRERCRkE4MTY2NkRGQTMwMEM1NUZFRiAvKiBTdHJpbmdQcmludFN0cmVhbS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGREU2NTMxOTUzQjIzRDAwQzQ4RkZBIC8qIE9wdGlvbmFs
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNCODE1MUE4MjVCMDA0MTIzRkYgLyogc3RydG9k
LmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEE0NzQzMDE1MUE4MjVCMDA0MTIzRkYgLyogVENTcGlu
TG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE1NTU2RjYxOEEwQ0MxODAwNkY0OEZCIC8qIENy
eXB0b2dyYXBoaWNVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzRkJBOTMyMTlERjQ1
OTcwMEYzMEFEQiAvKiBUeXBlQ2FzdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNkVCMUUwMTg3
RDBCRDMwMDMwMTI2RiAvKiBTdHJpbmdWaWV3LmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJj
ZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0NN
YWtlTGlzdHMudHh0CShyZXZpc2lvbiAxODE0ODEpCisrKyBTb3VyY2UvV1RGL3d0Zi9DTWFrZUxp
c3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtODcsNiArODcsNyBAQCBzZXQoV1RGX0hFQURFUlMK
ICAgICBTSEExLmgKICAgICBTYXR1cmF0ZWRBcml0aG1ldGljLmgKICAgICBTZWdtZW50ZWRWZWN0
b3IuaAorICAgIFNwaW5Mb2NrLmgKICAgICBTdGFja0JvdW5kcy5oCiAgICAgU3RhY2tTdGF0cy5o
CiAgICAgU3RhdGljQ29uc3RydWN0b3JzLmgKQEAgLTk1LDcgKzk2LDYgQEAgc2V0KFdURl9IRUFE
RVJTCiAgICAgU3RyaW5nRXh0cmFzLmgKICAgICBTdHJpbmdIYXNoZXIuaAogICAgIFN0cmluZ1By
aW50U3RyZWFtLmgKLSAgICBUQ1NwaW5Mb2NrLmgKICAgICBUaHJlYWRJZGVudGlmaWVyRGF0YVB0
aHJlYWRzLmgKICAgICBUaHJlYWRTYWZlUmVmQ291bnRlZC5oCiAgICAgVGhyZWFkU3BlY2lmaWMu
aApJbmRleDogU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5jcHAJKHJldmlzaW9uIDE4MTQ4MSkKKysrIFNv
dXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0
Myw2IEBAIE1ldGFBbGxvY2F0b3I6On5NZXRhQWxsb2NhdG9yKCkKICAgICAgICAgZnJlZUZyZWVT
cGFjZU5vZGUobm9kZSk7CiAgICAgICAgIG5vZGUgPSBuZXh0OwogICAgIH0KLSAgICBtX2xvY2su
RmluYWxpemUoKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgQVNTRVJUKCFtX21hbGxvY0JhbGFuY2Up
OwogI2VuZGlmCkBAIC0xMjksOCArMTI4LDYgQEAgTWV0YUFsbG9jYXRvcjo6TWV0YUFsbG9jYXRv
cihzaXplX3QgYWxsbwogICAgICwgbV9udW1GcmVlcygwKQogI2VuZGlmCiB7Ci0gICAgbV9sb2Nr
LkluaXQoKTsKLSAgICAKICAgICBmb3IgKG1fbG9nUGFnZVNpemUgPSAwOyBtX2xvZ1BhZ2VTaXpl
IDwgMzI7ICsrbV9sb2dQYWdlU2l6ZSkgewogICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8c2l6ZV90
PigxKSA8PCBtX2xvZ1BhZ2VTaXplID09IG1fcGFnZVNpemUpCiAgICAgICAgICAgICBicmVhazsK
SW5kZXg6IFNvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmgJKHJldmlzaW9uIDE4MTQ4MSkKKysrIFNvdXJjZS9X
VEYvd3RmL01ldGFBbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAog
I2luY2x1ZGUgPHd0Zi9SZWRCbGFja1RyZWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVENTcGluTG9jay5oPgor
I2luY2x1ZGUgPHd0Zi9TcGluTG9jay5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApJbmRleDogU291
cmNlL1dURi93dGYvU3BpbkxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TcGlu
TG9jay5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dURi93dGYvU3BpbkxvY2suaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBTcGluTG9ja19oCisjZGVmaW5lIFNwaW5Mb2NrX2gKKwor
I2luY2x1ZGUgPHRocmVhZD4KKyNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgorI2luY2x1ZGUgPHd0
Zi9Mb2NrZXIuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKy8vIFNwaW5Mb2NrQmFzZSBpcyBhIHN0
cnVjdCB3aXRob3V0IGFuIGV4cGxpY2l0bHkgZGVmaW5lZCBjb25zdHJ1Y3RvcnMgc28gdGhhdAor
Ly8gaXQgY2FuIGJlIGluaXRpYWxpemVkIGF0IGNvbXBpbGUgdGltZS4gU2VlIFN0YXRpY1NwaW5M
b2NrIGJlbG93Lgorc3RydWN0IFNwaW5Mb2NrQmFzZSB7CisKKyAgICB2b2lkIGxvY2soKQorICAg
IHsKKyAgICAgICAgd2hpbGUgKCFtX2xvY2suY29tcGFyZV9leGNoYW5nZV93ZWFrKDAsIDEsIHN0
ZDo6bWVtb3J5X29yZGVyX2FjcXVpcmUpKQorICAgICAgICAgICAgc3RkOjp0aGlzX3RocmVhZDo6
eWllbGQoKTsKKyAgICB9CisKKyAgICB2b2lkIHVubG9jaygpCisgICAgeworICAgICAgICBtX2xv
Y2suc3RvcmUoMCwgc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZSk7CisgICAgfQorCisgICAgYm9v
bCBpc0xvY2tlZCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9sb2NrLmxvYWQoc3Rk
OjptZW1vcnlfb3JkZXJfYWNxdWlyZSk7CisgICAgfQorICAgIAorICAgIEF0b21pYzx1bnNpZ25l
ZD4gbV9sb2NrOworfTsKKworLy8gU3BpbkxvY2sgaXMgZm9yIHVzZSBhcyBpbnN0YW5jZSB2YXJp
YWJsZXMgaW4gc3RydWN0cyBhbmQgY2xhc3Nlcywgbm90IGFzCisvLyBzdGF0aWNzIGFuZCBnbG9i
YWxzLgorc3RydWN0IFNwaW5Mb2NrIDogcHVibGljIFNwaW5Mb2NrQmFzZSB7CisgICAgU3Bpbkxv
Y2soKQorICAgIHsKKyAgICAgICAgbV9sb2NrLnN0b3JlKDAsIHN0ZDo6bWVtb3J5X29yZGVyX3Jl
bGF4ZWQpOworICAgIH0KK307CisKKy8vIFN0YXRpY1NwaW5Mb2NrIGlzIGZvciB1c2UgYXMgc3Rh
dGljcyBhbmQgZ2xvYmFscywgbm90IGFzIGluc3RhbmNlIHZhcmlhYmxlcy4KK3R5cGVkZWYgU3Bp
bkxvY2tCYXNlIFN0YXRpY1NwaW5Mb2NrOwordHlwZWRlZiBMb2NrZXI8U3BpbkxvY2tCYXNlPiBT
cGluTG9ja0hvbGRlcjsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6U3RhdGlj
U3BpbkxvY2s7Cit1c2luZyBXVEY6OlNwaW5Mb2NrOwordXNpbmcgV1RGOjpTcGluTG9ja0hvbGRl
cjsKKworI2VuZGlmIC8vIFNwaW5Mb2NrX2gKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1RDU3Bpbkxv
Y2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9UQ1NwaW5Mb2NrLmgJKHJldmlzaW9u
IDE4MTQ4MSkKKysrIFNvdXJjZS9XVEYvd3RmL1RDU3BpbkxvY2suaAkod29ya2luZyBjb3B5KQpA
QCAtMSwxMzMgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChjKSAyMDA1LCAyMDA2LCBHb29nbGUgSW5j
LgotLy8gQ29weXJpZ2h0IChjKSAyMDEwLCBQYXRyaWNrIEdhbnN0ZXJlciA8cGFyb2dhQHBhcm9n
YS5jb20+Ci0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8gCi0vLyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vIAotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8v
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotLy8gCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0v
LyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0vLyAtLS0KLS8vIEF1dGhvcjogU2FuamF5IEdoZW1h
d2F0IDxvcGVuc291cmNlQGdvb2dsZS5jb20+Ci0KLSNpZm5kZWYgVENNQUxMT0NfSU5URVJOQUxf
U1BJTkxPQ0tfSF9fCi0jZGVmaW5lIFRDTUFMTE9DX0lOVEVSTkFMX1NQSU5MT0NLX0hfXwotCi0j
aW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KLSNpZiBPUyhVTklYKQotI2luY2x1ZGUgPHNjaGVkLmg+
Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShDT01QQVJFX0FORF9TV0FQKQotCi1zdGF0aWMgdm9pZCBU
Q01hbGxvY19TbG93TG9jayh1bnNpZ25lZCogbG9ja3dvcmQpOwotCi0vLyBUaGUgZm9sbG93aW5n
IGlzIGEgc3RydWN0IHNvIHRoYXQgaXQgY2FuIGJlIGluaXRpYWxpemVkIGF0IGNvbXBpbGUgdGlt
ZQotc3RydWN0IFRDTWFsbG9jX1NwaW5Mb2NrIHsKLSAgICB2b2lkIExvY2soKSB7Ci0gICAgICBp
ZiAoIVdURjo6d2Vha0NvbXBhcmVBbmRTd2FwKCZsb2Nrd29yZF8sIDAsIDEpKQotICAgICAgICBU
Q01hbGxvY19TbG93TG9jaygmbG9ja3dvcmRfKTsKLSAgICAgIFdURjo6bWVtb3J5QmFycmllckFm
dGVyTG9jaygpOwotICAgIH0KLQotICAgIHZvaWQgVW5sb2NrKCkgewotICAgICAgV1RGOjptZW1v
cnlCYXJyaWVyQmVmb3JlVW5sb2NrKCk7Ci0gICAgICBsb2Nrd29yZF8gPSAwOwotICAgIH0KLQot
ICAgIC8vIFJlcG9ydCBpZiB3ZSB0aGluayB0aGUgbG9jayBjYW4gYmUgaGVsZCBieSB0aGlzIHRo
cmVhZC4KLSAgICAvLyBXaGVuIHRoZSBsb2NrIGlzIHRydWx5IGhlbGQgYnkgdGhlIGludm9raW5n
IHRocmVhZAotICAgIC8vIHdlIHdpbGwgYWx3YXlzIHJldHVybiB0cnVlLgotICAgIC8vIEluZGVu
ZGVkIHRvIGJlIHVzZWQgYXMgQ0hFQ0sobG9jay5Jc0hlbGQoKSk7Ci0gICAgYm9vbCBJc0hlbGQo
KSBjb25zdCB7Ci0gICAgICAgIHJldHVybiBsb2Nrd29yZF8gIT0gMDsKLSAgICB9Ci0KLSAgICB2
b2lkIEluaXQoKSB7IGxvY2t3b3JkXyA9IDA7IH0KLSAgICB2b2lkIEZpbmFsaXplKCkgeyB9Ci0K
LSAgICB1bnNpZ25lZCBsb2Nrd29yZF87Ci19OwotCi0jZGVmaW5lIFNQSU5MT0NLX0lOSVRJQUxJ
WkVSIHsgMCB9Ci0KLXN0YXRpYyB2b2lkIFRDTWFsbG9jX1Nsb3dMb2NrKHVuc2lnbmVkKiBsb2Nr
d29yZCkgewotICBkbyB7Ci0jaWYgT1MoV0lORE9XUykKLSAgICBTbGVlcCgwKTsKLSNlbHNlCi0g
ICAgc2NoZWRfeWllbGQoKTsKLSNlbmRpZgotICB9IHdoaWxlICghV1RGOjp3ZWFrQ29tcGFyZUFu
ZFN3YXAobG9ja3dvcmQsIDAsIDEpKTsKLX0KLQotI2Vsc2UKLQotI2luY2x1ZGUgPHB0aHJlYWQu
aD4KLQotLy8gUG9ydGFibGUgdmVyc2lvbgotc3RydWN0IFRDTWFsbG9jX1NwaW5Mb2NrIHsKLSAg
cHRocmVhZF9tdXRleF90IHByaXZhdGVfbG9ja187Ci0KLSAgaW5saW5lIHZvaWQgSW5pdCgpIHsK
LSAgICBpZiAocHRocmVhZF9tdXRleF9pbml0KCZwcml2YXRlX2xvY2tfLCBOVUxMKSAhPSAwKSBD
UkFTSCgpOwotICB9Ci0gIGlubGluZSB2b2lkIEZpbmFsaXplKCkgewotICAgIGlmIChwdGhyZWFk
X211dGV4X2Rlc3Ryb3koJnByaXZhdGVfbG9ja18pICE9IDApIENSQVNIKCk7Ci0gIH0KLSAgaW5s
aW5lIHZvaWQgTG9jaygpIHsKLSAgICBpZiAocHRocmVhZF9tdXRleF9sb2NrKCZwcml2YXRlX2xv
Y2tfKSAhPSAwKSBDUkFTSCgpOwotICB9Ci0gIGlubGluZSB2b2lkIFVubG9jaygpIHsKLSAgICBp
ZiAocHRocmVhZF9tdXRleF91bmxvY2soJnByaXZhdGVfbG9ja18pICE9IDApIENSQVNIKCk7Ci0g
IH0KLSAgYm9vbCBJc0hlbGQoKSB7Ci0gICAgaWYgKHB0aHJlYWRfbXV0ZXhfdHJ5bG9jaygmcHJp
dmF0ZV9sb2NrXykpCi0gICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIFVubG9jaygpOwotICAgIHJl
dHVybiBmYWxzZTsKLSAgfQotfTsKLQotI2RlZmluZSBTUElOTE9DS19JTklUSUFMSVpFUiB7IFBU
SFJFQURfTVVURVhfSU5JVElBTElaRVIgfQotCi0jZW5kaWYKLQotLy8gQ29ycmVzcG9uZGluZyBs
b2NrZXIgb2JqZWN0IHRoYXQgYXJyYW5nZXMgdG8gYWNxdWlyZSBhIHNwaW5sb2NrIGZvcgotLy8g
dGhlIGR1cmF0aW9uIG9mIGEgQysrIHNjb3BlLgotY2xhc3MgVENNYWxsb2NfU3BpbkxvY2tIb2xk
ZXIgewotIHByaXZhdGU6Ci0gIFRDTWFsbG9jX1NwaW5Mb2NrKiBsb2NrXzsKLSBwdWJsaWM6Ci0g
IGlubGluZSBleHBsaWNpdCBUQ01hbGxvY19TcGluTG9ja0hvbGRlcihUQ01hbGxvY19TcGluTG9j
ayogbCkKLSAgICA6IGxvY2tfKGwpIHsgbC0+TG9jaygpOyB9Ci0gIGlubGluZSB+VENNYWxsb2Nf
U3BpbkxvY2tIb2xkZXIoKSB7IGxvY2tfLT5VbmxvY2soKTsgfQotfTsKLQotLy8gU2hvcnQtaGFu
ZHMgZm9yIGNvbnZlbmllbnQgdXNlIGJ5IHRjbWFsbG9jLmNjCi10eXBlZGVmIFRDTWFsbG9jX1Nw
aW5Mb2NrIFNwaW5Mb2NrOwotdHlwZWRlZiBUQ01hbGxvY19TcGluTG9ja0hvbGRlciBTcGluTG9j
a0hvbGRlcjsKLQotI2VuZGlmICAvLyBUQ01BTExPQ19JTlRFUk5BTF9TUElOTE9DS19IX18KSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5jcHAJKHJldmlzaW9uIDE4MTQ4MSkKKysr
IFNvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VURjguaD4KIAogI2lmIFVTRShX
RUJfVEhSRUFEKQotI2luY2x1ZGUgIlRDU3BpbkxvY2suaCIKKyNpbmNsdWRlICJTcGluTG9jay5o
IgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtNDcsNyArNDcsNyBAQCBzdGF0aWNfYXNz
ZXJ0KHNpemVvZihBdG9taWNTdHJpbmcpID09IHNpCiBjbGFzcyBBdG9taWNTdHJpbmdUYWJsZUxv
Y2tlciA6IHB1YmxpYyBTcGluTG9ja0hvbGRlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
QXRvbWljU3RyaW5nVGFibGVMb2NrZXIpOwogCi0gICAgc3RhdGljIFNwaW5Mb2NrIHNfc3RyaW5n
VGFibGVMb2NrOworICAgIHN0YXRpYyBTdGF0aWNTcGluTG9jayBzX3N0cmluZ1RhYmxlTG9jazsK
IHB1YmxpYzoKICAgICBBdG9taWNTdHJpbmdUYWJsZUxvY2tlcigpCiAgICAgICAgIDogU3Bpbkxv
Y2tIb2xkZXIoJnNfc3RyaW5nVGFibGVMb2NrKQpAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAg
ICAgfQogfTsKIAotU3BpbkxvY2sgQXRvbWljU3RyaW5nVGFibGVMb2NrZXI6OnNfc3RyaW5nVGFi
bGVMb2NrID0gU1BJTkxPQ0tfSU5JVElBTElaRVI7CitTdGF0aWNTcGluTG9jayBBdG9taWNTdHJp
bmdUYWJsZUxvY2tlcjo6c19zdHJpbmdUYWJsZUxvY2s7CiAKICNlbHNlCiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE4MTQ4MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE1LTAzLTEzICBNYXJrIExhbSAgPG1hcmsubGFt
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIFRDU3BpbkxvY2sgd2l0aCBhIG5ldyBXVEY6
OlNwaW5Mb2NrIGJhc2VkIG9uIFdURjo6QXRvbWljLgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQu
b3JnL2IvMTQyNjc0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlzIG5vIG5ldyBmdW5jdGlvbmFsaXR5
LiBUaGlzIGlzIGEgcmVmYWN0b3JpbmcgZWZmb3J0LgorCisgICAgICAgICogYmluZGluZ3Mvb2Jq
Yy9XZWJTY3JpcHRPYmplY3QubW06CisgICAgICAgICogcGxhdGZvcm0vaW9zL3dhay9XQUtXaW5k
b3cubW06CisgICAgICAgICgtW1dBS1dpbmRvdyBpbml0V2l0aExheWVyOl0pOgorICAgICAgICAo
LVtXQUtXaW5kb3cgaW5pdFdpdGhGcmFtZTpdKToKKwogMjAxNS0wMy0xMyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFhNTEh0dHBSZXF1ZXN0cyBzaG91bGQgbm90
IHByZXZlbnQgYSBwYWdlIGZyb20gZW50ZXJpbmcgUGFnZUNhY2hlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQkocmV2aXNpb24gMTgx
NDgxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0J
KHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAKICNpbXBvcnQgPHJ1bnRpbWUvSlNMb2Nr
Lmg+CiAjaW1wb3J0IDxydW50aW1lL0NvbXBsZXRpb24uaD4KICNpbXBvcnQgPHJ1bnRpbWUvQ29t
cGxldGlvbi5oPgotI2ltcG9ydCA8d3RmL1RDU3BpbkxvY2suaD4KKyNpbXBvcnQgPHd0Zi9TcGlu
TG9jay5oPgogI2ltcG9ydCA8d3RmL1RocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL3NwaS9jb2Nv
YS9OU01hcFRhYmxlU1BJLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTcy
LDcgKzcyLDcgQEAgdXNpbmcgSlNDOjptYWtlU291cmNlOwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBzdGF0aWMgTlNNYXBUYWJsZSogSlNXcmFwcGVyQ2FjaGU7Ci1zdGF0aWMgU3BpbkxvY2sgc3Bp
bkxvY2sgPSBTUElOTE9DS19JTklUSUFMSVpFUjsKK3N0YXRpYyBTdGF0aWNTcGluTG9jayBzcGlu
TG9jazsKIAogTlNPYmplY3QqIGdldEpTV3JhcHBlcihKU09iamVjdCogaW1wbCkKIHsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLV2luZG93Lm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0FLV2luZG93Lm1tCShyZXZpc2lv
biAxODE0ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dBS1dpbmRvdy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogI2ltcG9ydCAiV0tDb250ZW50T2Jz
ZXJ2YXRpb24uaCIKICNpbXBvcnQgIldLVmlld1ByaXZhdGUuaCIKICNpbXBvcnQgPFF1YXJ0ekNv
cmUvUXVhcnR6Q29yZS5oPgotI2ltcG9ydCA8d3RmL1RDU3BpbkxvY2suaD4KKyNpbXBvcnQgPHd0
Zi9TcGluTG9jay5oPgogCiBXRUJDT1JFX0VYUE9SVCBOU1N0cmluZyAqIGNvbnN0IFdBS1dpbmRv
d1NjcmVlblNjYWxlRGlkQ2hhbmdlTm90aWZpY2F0aW9uID0gQCJXQUtXaW5kb3dTY3JlZW5TY2Fs
ZURpZENoYW5nZU5vdGlmaWNhdGlvbiI7CiBXRUJDT1JFX0VYUE9SVCBOU1N0cmluZyAqIGNvbnN0
IFdBS1dpbmRvd1Zpc2liaWxpdHlEaWRDaGFuZ2VOb3RpZmljYXRpb24gPSBAIldBS1dpbmRvd1Zp
c2liaWxpdHlEaWRDaGFuZ2VOb3RpZmljYXRpb24iOwpAQCAtNzcsNyArNzcsNiBAQCAtIChpZClp
bml0V2l0aExheWVyOihDQUxheWVyICopbGF5ZXIKIAogICAgIF9mcm96ZW5WaXNpYmxlUmVjdCA9
IENHUmVjdE51bGw7CiAKLSAgICBfZXhwb3NlZFNjcm9sbFZpZXdSZWN0TG9jayA9IFNQSU5MT0NL
X0lOSVRJQUxJWkVSOwogICAgIF9leHBvc2VkU2Nyb2xsVmlld1JlY3QgPSBDR1JlY3ROdWxsOwog
CiAgICAgcmV0dXJuIHNlbGY7CkBAIC05Myw3ICs5Miw2IEBAIC0gKGlkKWluaXRXaXRoRnJhbWU6
KENHUmVjdClmcmFtZQogICAgIF9mcmFtZSA9IGZyYW1lOwogICAgIF9zY3JlZW5TY2FsZSA9IHdr
R2V0U2NyZWVuU2NhbGVGYWN0b3IoKTsKIAotICAgIF9leHBvc2VkU2Nyb2xsVmlld1JlY3RMb2Nr
ID0gU1BJTkxPQ0tfSU5JVElBTElaRVI7CiAgICAgX2V4cG9zZWRTY3JvbGxWaWV3UmVjdCA9IENH
UmVjdE51bGw7CiAKICAgICByZXR1cm4gc2VsZjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4
MTQ4MSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDE1LTAzLTEzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZXBsYWNlIFRDU3BpbkxvY2sgd2l0aCBhIG5ldyBXVEY6OlNwaW5Mb2NrIGJhc2Vk
IG9uIFdURjo6QXRvbWljLgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQyNjc0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50
RGlzcGF0Y2hlcjo6RXZlbnREaXNwYXRjaGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvRXZlbnREaXNwYXRjaGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdV
cGRhdGVEaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Vmlld1VwZGF0ZURpc3BhdGNo
ZXI6OlZpZXdVcGRhdGVEaXNwYXRjaGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
Vmlld1VwZGF0ZURpc3BhdGNoZXIuaDoKKwogMjAxNS0wMy0xMiAgSm9uIEhvbmV5Y3V0dCAgPGpo
b25leWN1dHRAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBVSURvY3VtZW50TWVudVZpZXdDb250
cm9sbGVyIHRvIGFsbG93IHNlbGVjdGlvbiBvZiBmaWxlcyBmcm9tCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAko
cmV2aXNpb24gMTgxNDgxKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2
ZW50RGlzcGF0Y2hlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDkgKzU0LDYgQEAgUGFzc1Jl
ZlB0cjxFdmVudERpc3BhdGNoZXI+IEV2ZW50RGlzcGF0YwogRXZlbnREaXNwYXRjaGVyOjpFdmVu
dERpc3BhdGNoZXIoKQogICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxl
LldlYktpdC5FdmVudERpc3BhdGNoZXIiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1
ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSkpCiAgICAgLCBtX3JlY2VudFdoZWVsRXZlbnREZWx0
YVRyYWNrZXIoc3RkOjptYWtlX3VuaXF1ZTxXaGVlbEV2ZW50RGVsdGFUcmFja2VyPigpKQotI2lm
IEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotICAgICwgbV90b3VjaEV2ZW50c0xvY2soU1BJTkxP
Q0tfSU5JVElBTElaRVIpCi0jZW5kaWYKIHsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAkocmV2aXNpb24gMTgx
NDgxKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL1RDU3BpbkxvY2suaD4KKyNpbmNsdWRlIDx3dGYvU3BpbkxvY2su
aD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0
ZURpc3BhdGNoZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHAJKHJldmlzaW9uIDE4MTQ4MSkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDYgQEAgUmVmPFZpZXdVcGRhdGVEaXNwYXRjaGVy
PiBWaWV3VXBkYXRlRGlzcAogCiBWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6Vmlld1VwZGF0ZURpc3Bh
dGNoZXIoKQogICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktp
dC5WaWV3VXBkYXRlRGlzcGF0Y2hlciIpKQotICAgICwgbV9kYXRhTXV0ZXgoU1BJTkxPQ0tfSU5J
VElBTElaRVIpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5oCShyZXZpc2lvbiAxODE0ODEp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNo
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgIlZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm8uaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KLSNpbmNsdWRlIDx3dGYvVENTcGluTG9jay5oPgorI2luY2x1ZGUgPHd0
Zi9TcGluTG9jay5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAo=
</data>
<flag name="review"
          id="273474"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>