<?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>206975</bug_id>
          
          <creation_ts>2020-01-29 17:19:27 -0800</creation_ts>
          <short_desc>Most of B3 and Air does not need to include CCallHelpers.h</short_desc>
          <delta_ts>2020-02-06 19:13:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robin Morisset">rmorisset</reporter>
          <assigned_to name="Robin Morisset">rmorisset</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1612776</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-01-29 17:19:27 -0800</bug_when>
    <thetext>They only do to use CCallHelpers::Jump or CCallHelpers::Label.
But CCallHelpers inherit those from MacroAssembler. And MacroAssembler.h is dramatically cheaper to include (since CCallHelpers includes AssemblyHelpers which includes CodeBlock.h which includes roughly the entire runtime).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612778</commentid>
    <comment_count>1</comment_count>
      <attachid>389204</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-01-29 17:21:32 -0800</bug_when>
    <thetext>Created attachment 389204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612788</commentid>
    <comment_count>2</comment_count>
      <attachid>389204</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-01-29 17:47:54 -0800</bug_when>
    <thetext>Comment on attachment 389204
Patch

My patch visibly does not apply cleanly on ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612794</commentid>
    <comment_count>3</comment_count>
      <attachid>389210</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-01-29 17:59:36 -0800</bug_when>
    <thetext>Created attachment 389210
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612802</commentid>
    <comment_count>4</comment_count>
      <attachid>389213</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-01-29 18:19:45 -0800</bug_when>
    <thetext>Created attachment 389213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612803</commentid>
    <comment_count>5</comment_count>
      <attachid>389214</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-01-29 18:23:14 -0800</bug_when>
    <thetext>Created attachment 389214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614352</commentid>
    <comment_count>6</comment_count>
      <attachid>389616</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-02-03 19:07:12 -0800</bug_when>
    <thetext>Created attachment 389616
Patch

Fix style nits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615885</commentid>
    <comment_count>7</comment_count>
      <attachid>389616</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-02-06 15:35:05 -0800</bug_when>
    <thetext>Comment on attachment 389616
Patch

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

&gt; Source/JavaScriptCore/b3/B3Common.cpp:42
&gt; -    return FTL::verboseCompilationEnabled() || FTL::shouldDumpDisassembly() || shouldDumpIRAtEachPhase(mode);
&gt; +    return DFG::verboseCompilationEnabled(DFG::FTLMode) || DFG::shouldDumpDisassembly(DFG::FTLMode) || shouldDumpIRAtEachPhase(mode);

I don&apos;t think this is a good thing to do.  There&apos;s no guarantee that FTL::verboseCompilationEnabled() will always be a forwarding wrapper to DFG::verboseCompilationEnabled().  Ditto for FTL::shouldDumpDisassembly().  I suggest either:
1. Get rid of FTL::verboseCompilationEnabled() and FTL::shouldDumpDisassembly(), and use DFG versions everywhere.  Or ...
2. Create a separate header file that contains FTL::verboseCompilationEnabled() and FTL::shouldDumpDisassembly() only, and continue to use them here.  Or ...
3. Continue to #include &quot;FTLState.h&quot; here.

I recommend either (2) or (3).

&gt; Source/WTF/wtf/SingleRootGraph.h:32
&gt; +#include &lt;wtf/StringPrintStream.h&gt;

Isn&apos;t this already in the code base?  I see it in my local checkout.  If so, make sure to remove the ChangeLog as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615919</commentid>
    <comment_count>8</comment_count>
      <attachid>390023</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-02-06 16:19:06 -0800</bug_when>
    <thetext>Created attachment 390023
Patch

- I verified that even without unified sources this patch does not break the build
- I reverted the change that removed FTLState.h from B3Common, following Mark&apos;s comment
- I removed the wtf/Changelog since the corresponding change has already landed in the tree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615920</commentid>
    <comment_count>9</comment_count>
      <attachid>390023</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-02-06 16:23:11 -0800</bug_when>
    <thetext>Comment on attachment 390023
Patch

r=me.  If you have a record of the build time difference on a unified build of JSC, it would be nice to include that as well in the ChangeLog for posterity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615923</commentid>
    <comment_count>10</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-02-06 16:29:26 -0800</bug_when>
    <thetext>(In reply to Mark Lam from comment #9)
&gt; Comment on attachment 390023 [details]
&gt; Patch
&gt; 
&gt; r=me.  If you have a record of the build time difference on a unified build
&gt; of JSC, it would be nice to include that as well in the ChangeLog for
&gt; posterity.

Thanks for the review. The compile time of JSC as a whole is a bit too variable to give good results here. But from what I remember, the difference when looking only at B3 files was quite significant (something like 20% in Debug builds).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616008</commentid>
    <comment_count>11</comment_count>
      <attachid>390023</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-06 19:12:38 -0800</bug_when>
    <thetext>Comment on attachment 390023
Patch

Clearing flags on attachment: 390023

Committed r256003: &lt;https://trac.webkit.org/changeset/256003&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616009</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-06 19:12:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616010</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-06 19:13:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/59248505&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389204</attachid>
            <date>2020-01-29 17:21:32 -0800</date>
            <delta_ts>2020-01-29 17:59:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch206975</filename>
            <type>text/plain</type>
            <size>26371</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDE5NzcwZWI3ZmQ4Li45MjUzMmZkYzZhZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMjAtMDEtMjkgIFJvYmlu
IE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KKworICAgICAgICBNb3N0IG9mIEIzIGFu
ZCBBaXIgZG9lcyBub3QgbmVlZCB0byBpbmNsdWRlIENDYWxsSGVscGVycy5oCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY5NzUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGV5IG9ubHkgZG8gdG8gdXNl
IENDYWxsSGVscGVyczo6SnVtcCBvciBDQ2FsbEhlbHBlcnM6OkxhYmVsLgorICAgICAgICBCdXQg
Q0NhbGxIZWxwZXJzIGluaGVyaXQgdGhvc2UgZnJvbSBNYWNyb0Fzc2VtYmxlci4gQW5kIE1hY3Jv
QXNzZW1ibGVyLmggaXMgZHJhbWF0aWNhbGx5IGNoZWFwZXIgdG8gaW5jbHVkZSAoc2luY2UgQ0Nh
bGxIZWxwZXJzIGluY2x1ZGVzIEFzc2VtYmx5SGVscGVycyB3aGljaCBpbmNsdWRlcyBDb2RlQmxv
Y2suaCB3aGljaCBpbmNsdWRlcyByb3VnaGx5IHRoZSBlbnRpcmUgcnVudGltZSkuCisKKyAgICAg
ICAgKiBiMy9CM0NoZWNrU3BlY2lhbC5jcHA6CisgICAgICAgICogYjMvQjNDaGVja1NwZWNpYWwu
aDoKKyAgICAgICAgKiBiMy9CM0xvd2VyTWFjcm9zLmNwcDoKKyAgICAgICAgKiBiMy9CM1BhdGNo
cG9pbnRTcGVjaWFsLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlBhdGNocG9pbnRTcGVjaWFsOjpn
ZW5lcmF0ZSk6CisgICAgICAgICogYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oOgorICAgICAgICAq
IGIzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlN0
YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6c3VjY2Vzc29yTGFiZWxzIGNvbnN0KToKKyAgICAgICAg
KiBiMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oOgorICAgICAgICAqIGIzL2Fpci9BaXJB
bGxvY2F0ZVJlZ2lzdGVyc0FuZFN0YWNrQW5kR2VuZXJhdGVDb2RlLmg6CisgICAgICAgICogYjMv
YWlyL0FpckNDYWxsU3BlY2lhbC5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckNDYWxsU3BlY2lh
bC5oOgorICAgICAgICAqIGIzL2Fpci9BaXJDb2RlLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjplbnRyeXBvaW50TGFiZWwgY29u
c3QpOgorICAgICAgICAqIGIzL2Fpci9BaXJDdXN0b20uY3BwOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpDQ2FsbEN1c3RvbTo6Z2VuZXJhdGUpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpTaHVm
ZmxlQ3VzdG9tOjpnZW5lcmF0ZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Oldhc21Cb3VuZHND
aGVja0N1c3RvbTo6Z2VuZXJhdGUpOgorICAgICAgICAqIGIzL2Fpci9BaXJDdXN0b20uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OkFpcjo6UGF0Y2hDdXN0b206OmdlbmVyYXRlKToKKyAgICAgICAgKEpT
Qzo6QjM6OkFpcjo6RW50cnlTd2l0Y2hDdXN0b206OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9h
aXIvQWlyRGlzYXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6RGlzYXNzZW1i
bGVyOjphZGRJbnN0KToKKyAgICAgICAgKiBiMy9haXIvQWlyRGlzYXNzZW1ibGVyLmg6CisgICAg
ICAgICogYjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ckluc3QuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyUHJpbnRTcGVjaWFsLmNwcDoKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6UHJpbnRTcGVjaWFsOjpnZW5lcmF0ZSk6CisgICAgICAgICogYjMvYWly
L0FpclByaW50U3BlY2lhbC5oOgorICAgICAgICAqIGIzL2Fpci9BaXJTcGVjaWFsLmg6CisgICAg
ICAgICogYjMvYWlyL0FpclZhbGlkYXRlLmNwcDoKKyAgICAgICAgKiBiMy9haXIvb3Bjb2RlX2dl
bmVyYXRvci5yYjoKKwogMjAyMC0wMS0yOSAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBw
bGUuY29tPgogCiAgICAgICAgIERvbid0IGluY2x1ZGUgVk0uaCBpbiBDYWxsRnJhbWUuaApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFsLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5jcHAKaW5kZXggY2U2NDQ2NjI1
ZWEuLjNkMTJjYjFiMWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
aGVja1NwZWNpYWwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3Bl
Y2lhbC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgog
I2luY2x1ZGUgIkIzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgiCiAjaW5jbHVkZSAiQjNWYWx1
ZUlubGluZXMuaCIKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBCMyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0NoZWNrU3BlY2lhbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFs
LmgKaW5kZXggMzVmM2Y3NzQ2MjEuLmIxYWQwNTE0Mjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDaGVja1NwZWNpYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDaGVja1NwZWNpYWwuaApAQCAtMTI4LDcgKzEyOCw3IEBAIHByb3RlY3RlZDoKICAg
ICAvLyBOT1RFOiB0aGUgZ2VuZXJhdGUgbWV0aG9kIHdpbGwgZ2VuZXJhdGUgdGhlIGhpZGRlbiBi
cmFuY2ggYW5kIHRoZW4gcmVnaXN0ZXIgYSBMYXRlUGF0aCB0aGF0CiAgICAgLy8gZ2VuZXJhdGVz
IHRoZSBzdGFja21hcC4gU3VwZXIgY3JhenkgZHVkZSEKIAotICAgIENDYWxsSGVscGVyczo6SnVt
cCBnZW5lcmF0ZShBaXI6Okluc3QmLCBDQ2FsbEhlbHBlcnMmLCBBaXI6OkdlbmVyYXRpb25Db250
ZXh0JikgZmluYWw7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZ2VuZXJhdGUoQWlyOjpJbnN0
JiwgQ0NhbGxIZWxwZXJzJiwgQWlyOjpHZW5lcmF0aW9uQ29udGV4dCYpIGZpbmFsOwogCiAgICAg
dm9pZCBkdW1wSW1wbChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgZGVlcER1
bXBJbXBsKFByaW50U3RyZWFtJikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNMb3dlck1hY3Jvcy5jcHAKaW5kZXggNTQ2MmUxMzJmYTguLjk3MmUxYmJlYzNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCkBAIC00Niw2ICs0Niw3
IEBACiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKICNpbmNsdWRlICJCM1VzZUNvdW50cy5o
IgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgi
CiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgPGNtYXRoPgogI2luY2x1ZGUgPHd0
Zi9CaXRWZWN0b3IuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Bh
dGNocG9pbnRTcGVjaWFsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9p
bnRTcGVjaWFsLmNwcAppbmRleCA5NGZhMGYyOGUwOC4uOTRmNThhMzczZTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5jcHAKQEAgLTE0Niw3
ICsxNDYsNyBAQCBib29sIFBhdGNocG9pbnRTcGVjaWFsOjphZG1pdHNFeHRlbmRlZE9mZnNldEFk
ZHIoSW5zdCYgaW5zdCwgdW5zaWduZWQgYXJnSW5kZXgpCiAgICAgcmV0dXJuIGFkbWl0c1N0YWNr
KGluc3QsIGFyZ0luZGV4KTsKIH0KIAotQ0NhbGxIZWxwZXJzOjpKdW1wIFBhdGNocG9pbnRTcGVj
aWFsOjpnZW5lcmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmIGppdCwgQWlyOjpHZW5lcmF0
aW9uQ29udGV4dCYgY29udGV4dCkKK01hY3JvQXNzZW1ibGVyOjpKdW1wIFBhdGNocG9pbnRTcGVj
aWFsOjpnZW5lcmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmIGppdCwgQWlyOjpHZW5lcmF0
aW9uQ29udGV4dCYgY29udGV4dCkKIHsKICAgICBjb25zdCBQcm9jZWR1cmUmIHByb2NlZHVyZSA9
IGNvZGUoKS5wcm9jKCk7CiAgICAgUGF0Y2hwb2ludFZhbHVlKiB2YWx1ZSA9IGluc3Qub3JpZ2lu
LT5hczxQYXRjaHBvaW50VmFsdWU+KCk7CkBAIC0xNzAsNyArMTcwLDcgQEAgQ0NhbGxIZWxwZXJz
OjpKdW1wIFBhdGNocG9pbnRTcGVjaWFsOjpnZW5lcmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBl
cnMmIGppdCwgQWkKICAgICAKICAgICB2YWx1ZS0+bV9nZW5lcmF0b3ItPnJ1bihqaXQsIHBhcmFt
cyk7CiAKLSAgICByZXR1cm4gQ0NhbGxIZWxwZXJzOjpKdW1wKCk7CisgICAgcmV0dXJuIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wKCk7CiB9CiAKIGJvb2wgUGF0Y2hwb2ludFNwZWNpYWw6OmlzVGVybWlu
YWwoSW5zdCYgaW5zdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Bh
dGNocG9pbnRTcGVjaWFsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50
U3BlY2lhbC5oCmluZGV4IGVlZmU0MDE5NTZiLi43Y2M3NmFiOTM2OSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oCkBAIC01NSw3ICs1NSw3IEBA
IHByb3RlY3RlZDoKICAgICAvLyBOT1RFOiB0aGUgZ2VuZXJhdGUgbWV0aG9kIHdpbGwgZ2VuZXJh
dGUgdGhlIGhpZGRlbiBicmFuY2ggYW5kIHRoZW4gcmVnaXN0ZXIgYSBMYXRlUGF0aCB0aGF0CiAg
ICAgLy8gZ2VuZXJhdGVzIHRoZSBzdGFja21hcC4gU3VwZXIgY3JhenkgZHVkZSEKIAotICAgIEND
YWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShBaXI6Okluc3QmLCBDQ2FsbEhlbHBlcnMmLCBBaXI6
OkdlbmVyYXRpb25Db250ZXh0JikgZmluYWw7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZ2Vu
ZXJhdGUoQWlyOjpJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgQWlyOjpHZW5lcmF0aW9uQ29udGV4dCYp
IGZpbmFsOwogICAgIAogICAgIGJvb2wgaXNUZXJtaW5hbChBaXI6Okluc3QmKSBmaW5hbDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlv
blBhcmFtcy5jcHAKaW5kZXggMzQzNWIwZTYzYTAuLjkyY2Q4MGVkN2MyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5j
cHAKQEAgLTU5LDEyICs1OSwxMiBAQCBSZWdpc3RlclNldCBTdGFja21hcEdlbmVyYXRpb25QYXJh
bXM6OnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1WZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBTdGFja21hcEdlbmVyYXRpb25QYXJh
bXM6OnN1Y2Nlc3NvckxhYmVscygpIGNvbnN0CitWZWN0b3I8Qm94PE1hY3JvQXNzZW1ibGVyOjpM
YWJlbD4+IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6c3VjY2Vzc29yTGFiZWxzKCkgY29uc3QK
IHsKICAgICBSRUxFQVNFX0FTU0VSVChtX2NvbnRleHQuaW5kZXhJbkJsb2NrID09IG1fY29udGV4
dC5jdXJyZW50QmxvY2stPnNpemUoKSAtIDEpOwogICAgIFJFTEVBU0VfQVNTRVJUKG1fdmFsdWUt
PmVmZmVjdHMoKS50ZXJtaW5hbCk7CiAgICAgCi0gICAgVmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6
OkxhYmVsPj4gcmVzdWx0KG1fY29udGV4dC5jdXJyZW50QmxvY2stPm51bVN1Y2Nlc3NvcnMoKSk7
CisgICAgVmVjdG9yPEJveDxNYWNyb0Fzc2VtYmxlcjo6TGFiZWw+PiByZXN1bHQobV9jb250ZXh0
LmN1cnJlbnRCbG9jay0+bnVtU3VjY2Vzc29ycygpKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBt
X2NvbnRleHQuY3VycmVudEJsb2NrLT5udW1TdWNjZXNzb3JzKCk7IGktLTspCiAgICAgICAgIHJl
c3VsdFtpXSA9IG1fY29udGV4dC5ibG9ja0xhYmVsc1ttX2NvbnRleHQuY3VycmVudEJsb2NrLT5z
dWNjZXNzb3JCbG9jayhpKV07CiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgKaW5kZXggMGY3
ZDcyZDliYjAuLmEzNjI1NDg4ZWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuaApAQCAtMjksMTEgKzI5LDE1IEBACiAK
ICNpbmNsdWRlICJBaXJHZW5lcmF0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIkIzVmFsdWVSZXAu
aCIKLSNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5o
IgogI2luY2x1ZGUgIlJlZ2lzdGVyU2V0LmgiCiAjaW5jbHVkZSA8d3RmL0JveC5oPgogCi1uYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBDQ2Fs
bEhlbHBlcnM7CisKK25hbWVzcGFjZSBCMyB7CiAKIGNsYXNzIENoZWNrU3BlY2lhbDsKIGNsYXNz
IFBhdGNocG9pbnRTcGVjaWFsOwpAQCAtODksNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAg
Ly8gVGhpcyBpcyBjb21wdXRlZCBsYXppbHksIHNvIGl0IHdvbid0IHdvcmsgaWYgeW91IGNhcHR1
cmUgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zIGJ5IHZhbHVlLgogICAgIC8vIFRoZXNlIGxhYmVs
cyB3aWxsIGdldCBwb3B1bGF0ZWQgYmVmb3JlIGFueSBsYXRlIHBhdGhzIG9yIGxpbmsgdGFza3Mg
ZXhlY3V0ZS4KLSAgICBKU19FWFBPUlRfUFJJVkFURSBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6
TGFiZWw+PiBzdWNjZXNzb3JMYWJlbHMoKSBjb25zdDsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBW
ZWN0b3I8Qm94PE1hY3JvQXNzZW1ibGVyOjpMYWJlbD4+IHN1Y2Nlc3NvckxhYmVscygpIGNvbnN0
OwogICAgIAogICAgIC8vIFRoaXMgaXMgY29tcHV0ZWQgbGF6aWx5LCBzbyBpdCB3b24ndCB3b3Jr
IGlmIHlvdSBjYXB0dXJlIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyBieSB2YWx1ZS4KICAgICAv
LyBSZXR1cm5zIHRydWUgaWYgdGhlIHN1Y2Nlc3NvciBhdCB0aGUgZ2l2ZW4gaW5kZXggaXMgZ29p
bmcgdG8gYmUgZW1pdHRlZCByaWdodCBhZnRlciB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVSZWdpc3RlcnNBbmRTdGFja0FuZEdlbmVyYXRl
Q29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVJlZ2lzdGVy
c0FuZFN0YWNrQW5kR2VuZXJhdGVDb2RlLmgKaW5kZXggODFiMGFhMGY3YzQuLjY2ZmZjY2M1ODBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlUmVn
aXN0ZXJzQW5kU3RhY2tBbmRHZW5lcmF0ZUNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckFsbG9jYXRlUmVnaXN0ZXJzQW5kU3RhY2tBbmRHZW5lcmF0ZUNvZGUuaApA
QCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQWlyTGl2ZW5lc3MuaCIKICNpbmNsdWRlICJB
aXJUbXBNYXAuaCIKKyNpbmNsdWRlIDx3dGYvTm9ubW92YWJsZS5oPgogCiBuYW1lc3BhY2UgSlND
IHsgCiAKQEAgLTg3LDggKzg4LDggQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VW5p
ZmllZFRtcExpdmVuZXNzPiBtX2xpdmVuZXNzOwogCiAgICAgc3RydWN0IFBhdGNoU3BpbGxEYXRh
IHsKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGp1bXA7Ci0gICAgICAgIENDYWxsSGVscGVy
czo6TGFiZWwgY29udGludWVMYWJlbDsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAganVt
cDsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGNvbnRpbnVlTGFiZWw7CiAgICAgICAg
IEhhc2hNYXA8VG1wLCBBcmcqPiBkZWZkVG1wczsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNDYWxsU3BlY2lhbC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckNDYWxsU3BlY2lhbC5jcHAKaW5kZXggNTBhNTA5NDZiNzku
LjYxOTE5NWJiNzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckNDYWxsU3BlY2lhbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJD
Q2FsbFNwZWNpYWwuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQog
CisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
QjMgeyBuYW1lc3BhY2UgQWlyIHsKIAogQ0NhbGxTcGVjaWFsOjpDQ2FsbFNwZWNpYWwoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFsLmgKaW5kZXggYzUx
YTM3MzkyOTMuLjkxM2YxMDZhOGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckNDYWxsU3BlY2lhbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQ0NhbGxTcGVjaWFsLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHJvdGVjdGVkOgogICAgIGJv
b2wgYWRtaXRzU3RhY2soSW5zdCYsIHVuc2lnbmVkIGFyZ0luZGV4KSBmaW5hbDsKICAgICBib29s
IGFkbWl0c0V4dGVuZGVkT2Zmc2V0QWRkcihJbnN0JiwgdW5zaWduZWQpIGZpbmFsOwogICAgIHZv
aWQgcmVwb3J0VXNlZFJlZ2lzdGVycyhJbnN0JiwgY29uc3QgUmVnaXN0ZXJTZXQmKSBmaW5hbDsK
LSAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZ2VuZXJhdGUoSW5zdCYsIENDYWxsSGVscGVycyYsIEdl
bmVyYXRpb25Db250ZXh0JikgZmluYWw7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZ2VuZXJh
dGUoSW5zdCYsIENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250ZXh0JikgZmluYWw7CiAgICAg
UmVnaXN0ZXJTZXQgZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MoSW5zdCYpIGZpbmFsOwogICAgIFJl
Z2lzdGVyU2V0IGV4dHJhQ2xvYmJlcmVkUmVncyhJbnN0JikgZmluYWw7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCmluZGV4IGQ1ZDY5YzMwYTU5Li5mODI5NTU1MzI0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCkBAIC0zNSw2ICsz
NSw3IEBACiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrVXRpbHMuaCIKICNpbmNsdWRlICJCM1Byb2Nl
ZHVyZS5oIgogI2luY2x1ZGUgIkIzU3RhY2tTbG90LmgiCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJz
LmgiCiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMu
aD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAppbmRleCBhNGU1ZDk0YmNl
Zi4uMjMwMjgyODUzZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyQ29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCkBA
IC0zNCwxNCArMzQsMTkgQEAKICNpbmNsdWRlICJBaXJTdGFja1Nsb3QuaCIKICNpbmNsdWRlICJB
aXJUbXAuaCIKICNpbmNsdWRlICJCM1NwYXJzZUNvbGxlY3Rpb24uaCIKLSNpbmNsdWRlICJDQ2Fs
bEhlbHBlcnMuaCIKICNpbmNsdWRlICJHUFJJbmZvLmgiCisjaW5jbHVkZSAiTWFjcm9Bc3NlbWJs
ZXIuaCIKICNpbmNsdWRlICJSZWdpc3RlckF0T2Zmc2V0TGlzdC5oIgogI2luY2x1ZGUgIlN0YWNr
QWxpZ25tZW50LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvSW5k
ZXhNYXAuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1JhbmRvbS5oPgogCi1uYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIEIzIHsKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBDQ2FsbEhlbHBlcnM7CisK
K25hbWVzcGFjZSBCMyB7CiAKIGNsYXNzIFByb2NlZHVyZTsKIApAQCAtMjA2LDcgKzIxMSw3IEBA
IHB1YmxpYzoKICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9lbnRyeXBvaW50cy5zaXplKCkgPT0g
bV9wcm9sb2d1ZUdlbmVyYXRvcnMuc2l6ZSgpKTsKICAgICB9CiAgICAgCi0gICAgQ0NhbGxIZWxw
ZXJzOjpMYWJlbCBlbnRyeXBvaW50TGFiZWwodW5zaWduZWQgaW5kZXgpIGNvbnN0CisgICAgTWFj
cm9Bc3NlbWJsZXI6OkxhYmVsIGVudHJ5cG9pbnRMYWJlbCh1bnNpZ25lZCBpbmRleCkgY29uc3QK
ICAgICB7CiAgICAgICAgIHJldHVybiBtX2VudHJ5cG9pbnRMYWJlbHNbaW5kZXhdOwogICAgIH0K
QEAgLTM5Myw3ICszOTgsNyBAQCBwcml2YXRlOgogICAgIFJlZ2lzdGVyU2V0IG1fY2FsbGVlU2F2
ZVJlZ2lzdGVyczsKICAgICBTdGFja1Nsb3QqIG1fY2FsbGVlU2F2ZVN0YWNrU2xvdCB7IG51bGxw
dHIgfTsKICAgICBWZWN0b3I8RnJlcXVlbnRlZEJsb2NrPiBtX2VudHJ5cG9pbnRzOyAvLyBUaGlz
IGlzIGVtcHR5IHVudGlsIGFmdGVyIGxvd2VyRW50cnlTd2l0Y2goKS4KLSAgICBWZWN0b3I8Q0Nh
bGxIZWxwZXJzOjpMYWJlbD4gbV9lbnRyeXBvaW50TGFiZWxzOyAvLyBUaGlzIGlzIGVtcHR5IHVu
dGlsIGNvZGUgZ2VuZXJhdGlvbi4KKyAgICBWZWN0b3I8TWFjcm9Bc3NlbWJsZXI6OkxhYmVsPiBt
X2VudHJ5cG9pbnRMYWJlbHM7IC8vIFRoaXMgaXMgZW1wdHkgdW50aWwgY29kZSBnZW5lcmF0aW9u
LgogICAgIFZlY3RvcjxSZWY8UHJvbG9ndWVHZW5lcmF0b3I+LCAxPiBtX3Byb2xvZ3VlR2VuZXJh
dG9yczsKICAgICBSZWZQdHI8V2FzbUJvdW5kc0NoZWNrR2VuZXJhdG9yPiBtX3dhc21Cb3VuZHND
aGVja0dlbmVyYXRvcjsKICAgICBjb25zdCBjaGFyKiBtX2xhc3RQaGFzZU5hbWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1c3RvbS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1c3RvbS5jcHAKaW5kZXggNDljYTU0YzI0ZWUuLjEz
YmNkMjZjMzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1
c3RvbS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0b20uY3Bw
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQWlySW5zdElubGluZXMuaCIKICNpbmNsdWRl
ICJCM0NDYWxsVmFsdWUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUg
IkNDYWxsSGVscGVycy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNw
YWNlIEFpciB7CiAKQEAgLTk2LDExICs5NywxMSBAQCBib29sIENDYWxsQ3VzdG9tOjppc1ZhbGlk
Rm9ybShJbnN0JiBpbnN0KQogICAgIHJldHVybiB0cnVlOwogfQogCi1DQ2FsbEhlbHBlcnM6Okp1
bXAgQ0NhbGxDdXN0b206OmdlbmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVycyYsIEdlbmVy
YXRpb25Db250ZXh0JikKK01hY3JvQXNzZW1ibGVyOjpKdW1wIENDYWxsQ3VzdG9tOjpnZW5lcmF0
ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpCiB7CiAgICAg
ZGF0YUxvZygiRkFUQUw6IFVubG93ZXJlZCBDIGNhbGw6ICIsIGluc3QsICJcbiIpOwogICAgIFVO
UkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpOwotICAgIHJldHVybiBDQ2FsbEhlbHBlcnM6Okp1bXAo
KTsKKyAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6Okp1bXAoKTsKIH0KIAogYm9vbCBTaHVmZmxl
Q3VzdG9tOjppc1ZhbGlkRm9ybShJbnN0JiBpbnN0KQpAQCAtMTcxLDExICsxNzIsMTEgQEAgYm9v
bCBTaHVmZmxlQ3VzdG9tOjppc1ZhbGlkRm9ybShJbnN0JiBpbnN0KQogICAgIHJldHVybiB0cnVl
OwogfQogCi1DQ2FsbEhlbHBlcnM6Okp1bXAgU2h1ZmZsZUN1c3RvbTo6Z2VuZXJhdGUoSW5zdCYg
aW5zdCwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKQorTWFjcm9Bc3NlbWJsZXI6
Okp1bXAgU2h1ZmZsZUN1c3RvbTo6Z2VuZXJhdGUoSW5zdCYgaW5zdCwgQ0NhbGxIZWxwZXJzJiwg
R2VuZXJhdGlvbkNvbnRleHQmKQogewogICAgIGRhdGFMb2coIkZBVEFMOiBVbmxvd2VyZWQgc2h1
ZmZsZTogIiwgaW5zdCwgIlxuIik7CiAgICAgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCk7Ci0g
ICAgcmV0dXJuIENDYWxsSGVscGVyczo6SnVtcCgpOworICAgIHJldHVybiBNYWNyb0Fzc2VtYmxl
cjo6SnVtcCgpOwogfQogCiBib29sIFdhc21Cb3VuZHNDaGVja0N1c3RvbTo6aXNWYWxpZEZvcm0o
SW5zdCYgaW5zdCkKQEAgLTE4OCw2ICsxODksMjggQEAgYm9vbCBXYXNtQm91bmRzQ2hlY2tDdXN0
b206OmlzVmFsaWRGb3JtKEluc3QmIGluc3QpCiAgICAgcmV0dXJuIGluc3QuYXJnc1sxXS5pc1Jl
ZygpIHx8IGluc3QuYXJnc1sxXS5pc1RtcCgpIHx8IGluc3QuYXJnc1sxXS5pc1NvbWVJbW0oKTsK
IH0KIAorTWFjcm9Bc3NlbWJsZXI6Okp1bXAgV2FzbUJvdW5kc0NoZWNrQ3VzdG9tOjpnZW5lcmF0
ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmIGppdCwgR2VuZXJhdGlvbkNvbnRleHQmIGNvbnRl
eHQpCit7CisgICAgV2FzbUJvdW5kc0NoZWNrVmFsdWUqIHZhbHVlID0gaW5zdC5vcmlnaW4tPmFz
PFdhc21Cb3VuZHNDaGVja1ZhbHVlPigpOworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG91dE9m
Qm91bmRzID0gSW5zdChBaXI6OkJyYW5jaDY0LCB2YWx1ZSwgQXJnOjpyZWxDb25kKE1hY3JvQXNz
ZW1ibGVyOjpBYm92ZU9yRXF1YWwpLCBpbnN0LmFyZ3NbMF0sIGluc3QuYXJnc1sxXSkuZ2VuZXJh
dGUoaml0LCBjb250ZXh0KTsKKworICAgIGNvbnRleHQubGF0ZVBhdGhzLmFwcGVuZChjcmVhdGVT
aGFyZWRUYXNrPEdlbmVyYXRpb25Db250ZXh0OjpMYXRlUGF0aEZ1bmN0aW9uPigKKyAgICAgICAg
W291dE9mQm91bmRzLCB2YWx1ZV0gKENDYWxsSGVscGVycyYgaml0LCBBaXI6OkdlbmVyYXRpb25D
b250ZXh0JiBjb250ZXh0KSB7CisgICAgICAgICAgICBvdXRPZkJvdW5kcy5saW5rKCZqaXQpOwor
ICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS0+Ym91bmRzVHlwZSgpKSB7CisgICAgICAgICAgICBj
YXNlIFdhc21Cb3VuZHNDaGVja1ZhbHVlOjpUeXBlOjpQaW5uZWQ6CisgICAgICAgICAgICAgICAg
Y29udGV4dC5jb2RlLT53YXNtQm91bmRzQ2hlY2tHZW5lcmF0b3IoKS0+cnVuKGppdCwgdmFsdWUt
PmJvdW5kcygpLnBpbm5lZFNpemUpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg
ICAgICBjYXNlIFdhc21Cb3VuZHNDaGVja1ZhbHVlOjpUeXBlOjpNYXhpbXVtOgorICAgICAgICAg
ICAgICAgIGNvbnRleHQuY29kZS0+d2FzbUJvdW5kc0NoZWNrR2VuZXJhdG9yKCktPnJ1bihqaXQs
IEludmFsaWRHUFJSZWcpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICB9KSk7CisKKyAgICAvLyBXZSBzYWlkIHdlIHdlcmUgbm90IGEgdGVybWluYWwuCisg
ICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpKdW1wKCk7Cit9CiAKIH0gfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkIzOjpBaXIKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJDdXN0b20uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmgK
aW5kZXggZTk4YWZlYTg2NzYuLmFkNWYwNWZiYmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckN1c3RvbS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQ3VzdG9tLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBaXJTcGVjaWFs
LmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJCM1dhc21Cb3VuZHND
aGVja1ZhbHVlLmgiCisjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKIAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCkBAIC0xMDgsNyArMTA5LDcgQEAg
c3RydWN0IFBhdGNoQ3VzdG9tIHsKICAgICAgICAgcmV0dXJuIGluc3QuYXJnc1swXS5zcGVjaWFs
KCktPmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKGluc3QpOwogICAgIH0KIAotICAgIHN0YXRp
YyBDQ2FsbEhlbHBlcnM6Okp1bXAgZ2VuZXJhdGUoCisgICAgc3RhdGljIE1hY3JvQXNzZW1ibGVy
OjpKdW1wIGdlbmVyYXRlKAogICAgICAgICBJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmIGppdCwg
R2VuZXJhdGlvbkNvbnRleHQmIGNvbnRleHQpCiAgICAgewogICAgICAgICByZXR1cm4gaW5zdC5h
cmdzWzBdLnNwZWNpYWwoKS0+Z2VuZXJhdGUoaW5zdCwgaml0LCBjb250ZXh0KTsKQEAgLTE4MSw3
ICsxODIsNyBAQCBzdHJ1Y3QgQ0NhbGxDdXN0b20gOiBwdWJsaWMgQ29tbW9uQ3VzdG9tQmFzZTxD
Q2FsbEN1c3RvbT4gewogICAgIH0KIAogICAgIC8vIFRoaXMganVzdCBjcmFzaGVzLCBzaW5jZSB3
ZSBleHBlY3QgQyBjYWxscyB0byBiZSBsb3dlcmVkIGJlZm9yZSBnZW5lcmF0aW9uLgotICAgIHN0
YXRpYyBDQ2FsbEhlbHBlcnM6Okp1bXAgZ2VuZXJhdGUoSW5zdCYsIENDYWxsSGVscGVycyYsIEdl
bmVyYXRpb25Db250ZXh0Jik7CisgICAgc3RhdGljIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGdlbmVy
YXRlKEluc3QmLCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpOwogfTsKIAogc3Ry
dWN0IENvbGRDQ2FsbEN1c3RvbSA6IENDYWxsQ3VzdG9tIHsKQEAgLTI0OCw3ICsyNDksNyBAQCBz
dHJ1Y3QgU2h1ZmZsZUN1c3RvbSA6IHB1YmxpYyBDb21tb25DdXN0b21CYXNlPFNodWZmbGVDdXN0
b20+IHsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHN0YXRpYyBDQ2FsbEhl
bHBlcnM6Okp1bXAgZ2VuZXJhdGUoSW5zdCYsIENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250
ZXh0Jik7CisgICAgc3RhdGljIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGdlbmVyYXRlKEluc3QmLCBD
Q2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpOwogfTsKIAogc3RydWN0IEVudHJ5U3dp
dGNoQ3VzdG9tIDogcHVibGljIENvbW1vbkN1c3RvbUJhc2U8RW50cnlTd2l0Y2hDdXN0b20+IHsK
QEAgLTI4OCwxMiArMjg5LDEyIEBAIHN0cnVjdCBFbnRyeVN3aXRjaEN1c3RvbSA6IHB1YmxpYyBD
b21tb25DdXN0b21CYXNlPEVudHJ5U3dpdGNoQ3VzdG9tPiB7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKLSAgICBzdGF0aWMgQ0NhbGxIZWxwZXJzOjpKdW1wIGdlbmVyYXRlKEluc3Qm
LCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpCisgICAgc3RhdGljIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wIGdlbmVyYXRlKEluc3QmLCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29u
dGV4dCYpCiAgICAgewogICAgICAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBiZSByZWFjaGVkIGJl
Y2F1c2Ugd2Ugc2hvdWxkIGhhdmUgbG93ZXJlZCBFbnRyeVN3aXRjaCBiZWZvcmUKICAgICAgICAg
Ly8gZ2VuZXJhdGlvbi4KICAgICAgICAgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCk7Ci0gICAg
ICAgIHJldHVybiBDQ2FsbEhlbHBlcnM6Okp1bXAoKTsKKyAgICAgICAgcmV0dXJuIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wKCk7CiAgICAgfQogfTsKIApAQCAtMzMzLDI4ICszMzQsNyBAQCBzdHJ1Y3Qg
V2FzbUJvdW5kc0NoZWNrQ3VzdG9tIDogcHVibGljIENvbW1vbkN1c3RvbUJhc2U8V2FzbUJvdW5k
c0NoZWNrQ3VzdG9tPiB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHN0YXRp
YyBDQ2FsbEhlbHBlcnM6Okp1bXAgZ2VuZXJhdGUoSW5zdCYgaW5zdCwgQ0NhbGxIZWxwZXJzJiBq
aXQsIEdlbmVyYXRpb25Db250ZXh0JiBjb250ZXh0KQotICAgIHsKLSAgICAgICAgV2FzbUJvdW5k
c0NoZWNrVmFsdWUqIHZhbHVlID0gaW5zdC5vcmlnaW4tPmFzPFdhc21Cb3VuZHNDaGVja1ZhbHVl
PigpOwotICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgb3V0T2ZCb3VuZHMgPSBJbnN0KEFpcjo6
QnJhbmNoNjQsIHZhbHVlLCBBcmc6OnJlbENvbmQoQ0NhbGxIZWxwZXJzOjpBYm92ZU9yRXF1YWwp
LCBpbnN0LmFyZ3NbMF0sIGluc3QuYXJnc1sxXSkuZ2VuZXJhdGUoaml0LCBjb250ZXh0KTsKLQot
ICAgICAgICBjb250ZXh0LmxhdGVQYXRocy5hcHBlbmQoY3JlYXRlU2hhcmVkVGFzazxHZW5lcmF0
aW9uQ29udGV4dDo6TGF0ZVBhdGhGdW5jdGlvbj4oCi0gICAgICAgICAgICBbb3V0T2ZCb3VuZHMs
IHZhbHVlXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIEFpcjo6R2VuZXJhdGlvbkNvbnRleHQmIGNvbnRl
eHQpIHsKLSAgICAgICAgICAgICAgICBvdXRPZkJvdW5kcy5saW5rKCZqaXQpOwotICAgICAgICAg
ICAgICAgIHN3aXRjaCAodmFsdWUtPmJvdW5kc1R5cGUoKSkgewotICAgICAgICAgICAgICAgIGNh
c2UgV2FzbUJvdW5kc0NoZWNrVmFsdWU6OlR5cGU6OlBpbm5lZDoKLSAgICAgICAgICAgICAgICAg
ICAgY29udGV4dC5jb2RlLT53YXNtQm91bmRzQ2hlY2tHZW5lcmF0b3IoKS0+cnVuKGppdCwgdmFs
dWUtPmJvdW5kcygpLnBpbm5lZFNpemUpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLQot
ICAgICAgICAgICAgICAgIGNhc2UgV2FzbUJvdW5kc0NoZWNrVmFsdWU6OlR5cGU6Ok1heGltdW06
Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRleHQuY29kZS0+d2FzbUJvdW5kc0NoZWNrR2VuZXJh
dG9yKCktPnJ1bihqaXQsIEludmFsaWRHUFJSZWcpOwotICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KSk7Ci0KLSAgICAgICAgLy8gV2Ug
c2FpZCB3ZSB3ZXJlIG5vdCBhIHRlcm1pbmFsLgotICAgICAgICByZXR1cm4gQ0NhbGxIZWxwZXJz
OjpKdW1wKCk7Ci0gICAgfQorICAgIHN0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBnZW5lcmF0
ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmIGppdCwgR2VuZXJhdGlvbkNvbnRleHQmIGNvbnRl
eHQpOwogfTsKIAogfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEaXNhc3NlbWJsZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEaXNhc3NlbWJsZXIuY3BwCmluZGV4IGI2NDFkN2Fl
MDRhLi4yNDJmZDk0YWE1YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJEaXNhc3NlbWJsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyRGlzYXNzZW1ibGVyLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFpckNvZGUu
aCIKICNpbmNsdWRlICJBaXJJbnN0LmgiCiAjaW5jbHVkZSAiQjNWYWx1ZS5oIgorI2luY2x1ZGUg
IkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIkxp
bmtCdWZmZXIuaCIKIApAQCAtNjMsNyArNjQsNyBAQCB2b2lkIERpc2Fzc2VtYmxlcjo6c3RhcnRC
bG9jayhCYXNpY0Jsb2NrKiBibG9jaywgQ0NhbGxIZWxwZXJzJiBqaXQpCiAgICAgbV9ibG9ja3Mu
YXBwZW5kKGJsb2NrKTsKIH0KIAotdm9pZCBEaXNhc3NlbWJsZXI6OmFkZEluc3QoSW5zdCogaW5z
dCwgQ0NhbGxIZWxwZXJzOjpMYWJlbCBzdGFydCwgQ0NhbGxIZWxwZXJzOjpMYWJlbCBlbmQpCit2
b2lkIERpc2Fzc2VtYmxlcjo6YWRkSW5zdChJbnN0KiBpbnN0LCBNYWNyb0Fzc2VtYmxlcjo6TGFi
ZWwgc3RhcnQsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBlbmQpCiB7CiAgICAgYXV0byBhZGRSZXN1
bHQgPSBtX2luc3RUb1JhbmdlLmFkZChpbnN0LCBzdGQ6Om1ha2VfcGFpcihzdGFydCwgZW5kKSk7
CiAgICAgUkVMRUFTRV9BU1NFUlQoYWRkUmVzdWx0LmlzTmV3RW50cnkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEaXNhc3NlbWJsZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRGlzYXNzZW1ibGVyLmgKaW5kZXggYTI2NjI2NDJiMzgu
LjAxZDdjNzA3MTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckRpc2Fzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRGlz
YXNzZW1ibGVyLmgKQEAgLTI3LDEwICsyNywxMSBAQAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAot
I2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCiAK
IG5hbWVzcGFjZSBKU0MgeyAKIAorY2xhc3MgQ0NhbGxIZWxwZXJzOwogY2xhc3MgTGlua0J1ZmZl
cjsKIAogbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CkBAIC00OSwxNyArNTAsMTcgQEAg
cHVibGljOgogICAgIHZvaWQgc3RhcnRMYXRlUGF0aChDQ2FsbEhlbHBlcnMmKTsKICAgICB2b2lk
IGVuZExhdGVQYXRoKENDYWxsSGVscGVycyYpOwogICAgIHZvaWQgc3RhcnRCbG9jayhCYXNpY0Js
b2NrKiwgQ0NhbGxIZWxwZXJzJik7Ci0gICAgdm9pZCBhZGRJbnN0KEluc3QqLCBDQ2FsbEhlbHBl
cnM6OkxhYmVsLCBDQ2FsbEhlbHBlcnM6OkxhYmVsKTsKKyAgICB2b2lkIGFkZEluc3QoSW5zdCos
IE1hY3JvQXNzZW1ibGVyOjpMYWJlbCwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsKTsKIAogICAgIHZv
aWQgZHVtcChDb2RlJiwgUHJpbnRTdHJlYW0mLCBMaW5rQnVmZmVyJiwgY29uc3QgY2hhciogYWly
UHJlZml4LCBjb25zdCBjaGFyKiBhc21QcmVmaXgsIGNvbnN0IFNjb3BlZExhbWJkYTx2b2lkKElu
c3QmKT4mIGRvVG9FYWNoSW5zdCk7CiAKIHByaXZhdGU6Ci0gICAgSGFzaE1hcDxJbnN0Kiwgc3Rk
OjpwYWlyPENDYWxsSGVscGVyczo6TGFiZWwsIENDYWxsSGVscGVyczo6TGFiZWw+PiBtX2luc3RU
b1JhbmdlOworICAgIEhhc2hNYXA8SW5zdCosIHN0ZDo6cGFpcjxNYWNyb0Fzc2VtYmxlcjo6TGFi
ZWwsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbD4+IG1faW5zdFRvUmFuZ2U7CiAgICAgVmVjdG9yPEJh
c2ljQmxvY2sqPiBtX2Jsb2NrczsKLSAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIG1fZW50cnlwb2lu
dFN0YXJ0OwotICAgIENDYWxsSGVscGVyczo6TGFiZWwgbV9lbnRyeXBvaW50RW5kOwotICAgIEND
YWxsSGVscGVyczo6TGFiZWwgbV9sYXRlUGF0aFN0YXJ0OwotICAgIENDYWxsSGVscGVyczo6TGFi
ZWwgbV9sYXRlUGF0aEVuZDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbV9lbnRyeXBvaW50
U3RhcnQ7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIG1fZW50cnlwb2ludEVuZDsKKyAgICBN
YWNyb0Fzc2VtYmxlcjo6TGFiZWwgbV9sYXRlUGF0aFN0YXJ0OworICAgIE1hY3JvQXNzZW1ibGVy
OjpMYWJlbCBtX2xhdGVQYXRoRW5kOwogfTsKIAogfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6
OkFpcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0
aW9uQ29udGV4dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0aW9u
Q29udGV4dC5oCmluZGV4IDYyZmVhMDNkNTgzLi5jMzU4YWNhNGM5NCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0aW9uQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGlvbkNvbnRleHQuaApAQCAtMjgs
NyArMjgsNyBAQAogI2lmIEVOQUJMRShCM19KSVQpCiAKICNpbmNsdWRlICJBaXJCYXNpY0Jsb2Nr
LmgiCi0jaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIu
aCIKICNpbmNsdWRlIDx3dGYvQm94Lmg+CiAjaW5jbHVkZSA8d3RmL0luZGV4TWFwLmg+CiAjaW5j
bHVkZSA8d3RmL1NoYXJlZFRhc2suaD4KQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIHR5
cGVkZWYgU2hhcmVkVGFzazxMYXRlUGF0aEZ1bmN0aW9uPiBMYXRlUGF0aDsKIAogICAgIFZlY3Rv
cjxSZWZQdHI8TGF0ZVBhdGg+PiBsYXRlUGF0aHM7Ci0gICAgSW5kZXhNYXA8QmFzaWNCbG9jayos
IEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gYmxvY2tMYWJlbHM7CisgICAgSW5kZXhNYXA8QmFz
aWNCbG9jayosIEJveDxNYWNyb0Fzc2VtYmxlcjo6TGFiZWw+PiBibG9ja0xhYmVsczsKICAgICBC
YXNpY0Jsb2NrKiBjdXJyZW50QmxvY2sgeyBudWxscHRyIH07CiAgICAgdW5zaWduZWQgaW5kZXhJ
bkJsb2NrIHsgVUlOVF9NQVggfTsKICAgICBDb2RlKiBjb2RlIHsgbnVsbHB0ciB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAppbmRleCBiNTcyMzM5ZTgzMC4uZGNjYWVlMmIz
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCkBAIC0yOSw3ICsyOSw4
IEBACiAKICNpbmNsdWRlICJBaXJBcmcuaCIKICNpbmNsdWRlICJBaXJLaW5kLmgiCi0jaW5jbHVk
ZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKKyNpbmNsdWRl
IDx3dGYvU2NvcGVkTGFtYmRhLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC0xOTEsNyArMTky
LDcgQEAgc3RydWN0IEluc3QgewogICAgIC8vIEdlbmVyYXRlIHNvbWUgY29kZSBmb3IgdGhpcyBp
bnN0cnVjdGlvbi4gVGhpcyBpcywgbGlrZSwgbGl0ZXJhbGx5IG91ciBiYWNrZW5kLiBJZiB0aGlz
IGlzIHRoZQogICAgIC8vIHRlcm1pbmFsLCBpdCByZXR1cm5zIHRoZSBqdW1wIHRoYXQgbmVlZHMg
dG8gYmUgbGlua2VkIGZvciB0aGUgInRoZW4iIGNhc2UsIHdpdGggdGhlICJlbHNlIgogICAgIC8v
IGNhc2UgYmVpbmcgZmFsbC10aHJvdWdoLiBUaGlzIGZ1bmN0aW9uIGlzIGF1dG8tZ2VuZXJhdGVk
IGJ5IG9wY29kZV9nZW5lcmF0b3IucmIuCi0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGdlbmVyYXRl
KENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250ZXh0Jik7CisgICAgTWFjcm9Bc3NlbWJsZXI6
Okp1bXAgZ2VuZXJhdGUoQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKTsKIAogICAg
IC8vIElmIHNvdXJjZSBhcmd1bWVudHMgYmVuZWZpdHMgZnJvbSBiZWluZyBhbGlhc2VkIHRvIGEg
ZGVzdGluYXRpb24gYXJndW1lbnQsCiAgICAgLy8gdGhpcyByZXR1cm4gdGhlIGluZGV4IG9mIHRo
ZSBkZXN0aW5hdGlvbiBhcmd1bWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyUHJpbnRTcGVjaWFsLmNwcAppbmRleCAxYzdjNmI2Zjk2Zi4uMThkMTY4Y2VlOWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5jcHAK
QEAgLTMwLDYgKzMwLDcgQEAKICNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKIAogI2luY2x1ZGUgIk1h
Y3JvQXNzZW1ibGVyUHJpbnRlci5oIgorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKQEAgLTY1LDcgKzY2
LDcgQEAgdm9pZCBQcmludFNwZWNpYWw6OnJlcG9ydFVzZWRSZWdpc3RlcnMoSW5zdCYsIGNvbnN0
IFJlZ2lzdGVyU2V0JikKIHsKIH0KIAotQ0NhbGxIZWxwZXJzOjpKdW1wIFByaW50U3BlY2lhbDo6
Z2VuZXJhdGUoSW5zdCYgaW5zdCwgQ0NhbGxIZWxwZXJzJiBqaXQsIEdlbmVyYXRpb25Db250ZXh0
JikKK01hY3JvQXNzZW1ibGVyOjpKdW1wIFByaW50U3BlY2lhbDo6Z2VuZXJhdGUoSW5zdCYgaW5z
dCwgQ0NhbGxIZWxwZXJzJiBqaXQsIEdlbmVyYXRpb25Db250ZXh0JikKIHsKICAgICBzaXplX3Qg
Y3VycmVudEFyZyA9IDE7IC8vIFNraXAgdGhlIFByaW50U3BlY2lhbCBhcmcuCiAgICAgZm9yIChh
dXRvJiB0ZXJtIDogKm1fcHJpbnRSZWNvcmRMaXN0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJQcmludFNwZWNpYWwuaAppbmRleCAxYTk2Mjc4MTJkZi4uZmZkMmQ3YmY2
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVj
aWFsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQcmludFNwZWNpYWwu
aApAQCAtMzMsNiArMzMsOSBAQAogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyUHJpbnRlci5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgQ0NhbGxIZWxwZXJzOworCiBuYW1lc3BhY2UgUHJp
bnRlciB7CiAKIHR5cGVkZWYgVmVjdG9yPEIzOjpBaXI6OkFyZz4gQXJnTGlzdDsKQEAgLTEwNSw3
ICsxMDgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBhZG1pdHNTdGFjayhJbnN0JiwgdW5zaWdu
ZWQgYXJnSW5kZXgpIGZpbmFsOwogICAgIGJvb2wgYWRtaXRzRXh0ZW5kZWRPZmZzZXRBZGRyKElu
c3QmLCB1bnNpZ25lZCkgZmluYWw7CiAgICAgdm9pZCByZXBvcnRVc2VkUmVnaXN0ZXJzKEluc3Qm
LCBjb25zdCBSZWdpc3RlclNldCYpIGZpbmFsOwotICAgIENDYWxsSGVscGVyczo6SnVtcCBnZW5l
cmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKSBmaW5hbDsKKyAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2Vu
ZXJhdGlvbkNvbnRleHQmKSBmaW5hbDsKICAgICBSZWdpc3RlclNldCBleHRyYUVhcmx5Q2xvYmJl
cmVkUmVncyhJbnN0JikgZmluYWw7CiAgICAgUmVnaXN0ZXJTZXQgZXh0cmFDbG9iYmVyZWRSZWdz
KEluc3QmKSBmaW5hbDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyU3BlY2lhbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVj
aWFsLmgKaW5kZXggYTY1OWQwM2Q1YTIuLjA1NmZkNTE4OTdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwZWNpYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpclNwZWNpYWwuaApAQCAtODMsNyArODMsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gQ3VycmVudGx5LCB3ZSBkbyAoMSkgZm9yIEIzIHN0YWNrbWFwcy4KICAgICB2aXJ0dWFsIHZv
aWQgcmVwb3J0VXNlZFJlZ2lzdGVycyhJbnN0JiwgY29uc3QgUmVnaXN0ZXJTZXQmKSA9IDA7CiAg
ICAgCi0gICAgdmlydHVhbCBDQ2FsbEhlbHBlcnM6Okp1bXAgZ2VuZXJhdGUoSW5zdCYsIENDYWxs
SGVscGVycyYsIEdlbmVyYXRpb25Db250ZXh0JikgPSAwOworICAgIHZpcnR1YWwgTWFjcm9Bc3Nl
bWJsZXI6Okp1bXAgZ2VuZXJhdGUoSW5zdCYsIENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250
ZXh0JikgPSAwOwogCiAgICAgdmlydHVhbCBSZWdpc3RlclNldCBleHRyYUVhcmx5Q2xvYmJlcmVk
UmVncyhJbnN0JikgPSAwOwogICAgIHZpcnR1YWwgUmVnaXN0ZXJTZXQgZXh0cmFDbG9iYmVyZWRS
ZWdzKEluc3QmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpclZhbGlkYXRlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVmFsaWRh
dGUuY3BwCmluZGV4IDEwMDk5MjljN2FjLi5lZTc0MDRjYWM4YyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJWYWxpZGF0ZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJWYWxpZGF0ZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJBaXJDb2RlLmgiCiAjaW5jbHVkZSAiQWlySW5zdElubGluZXMuaCIKICNpbmNsdWRlICJC
M1Byb2NlZHVyZS5oIgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYiBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgppbmRleCBkNzBjYTYz
YTkxOC4uMzA2OTgyMGI0MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvb3Bjb2RlX2dlbmVyYXRvci5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L29wY29kZV9nZW5lcmF0b3IucmIKQEAgLTgwNCw2ICs4MDQsNyBAQCB3cml0ZUgoIk9wY29kZVV0
aWxzIikgewogd3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgfCBvdXRwIHwKICAgICBv
dXRwLnB1dHMgIiNpbmNsdWRlIFwiQWlySW5zdElubGluZXMuaFwiIgorICAgIG91dHAucHV0cyAi
I2luY2x1ZGUgXCJDQ2FsbEhlbHBlcnMuaFwiIgogICAgIG91dHAucHV0cyAiI2luY2x1ZGUgXCJ3
dGYvUHJpbnRTdHJlYW0uaFwiIgogICAgIG91dHAucHV0cyAibmFtZXNwYWNlIFdURiB7IgogICAg
IG91dHAucHV0cyAidXNpbmcgbmFtZXNwYWNlIEpTQzo6QjM6OkFpcjsiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDI4MmYxNWE0
NWJkLi43ZDc0MTJiNWQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wMS0yOSAgUm9iaW4g
TW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgorCisgICAgICAgIE1vc3Qgb2YgQjMgYW5k
IEFpciBkb2VzIG5vdCBuZWVkIHRvIGluY2x1ZGUgQ0NhbGxIZWxwZXJzLmgKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjk3NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbXBseSBmaXhlcyBhIG1pc3Np
bmcgaW5jbHVkZSB3aGljaCB3YXMgaGlkZGVuIHNvIGZhciBpbiBib3RoIHBsYWNlcyB0aGF0IFNp
bmdsZVJvb3RHcmFwaC5oIHdhcyBpbmNsdWRlZC4KKworICAgICAgICAqIHd0Zi9TaW5nbGVSb290
R3JhcGguaDoKKwogMjAyMC0wMS0yOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gU2hvdWxkIHVzZSBsaWdodCB0aGVtZSB1bmxlc3Mg
d2Vic2l0ZSBkZWNsYXJlcyBzdXBwb3J0IGZvciBkYXJrIHRoZW1lcyBpbiBjb2xvci1zY2hlbWVz
IHByb3BlcnR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TaW5nbGVSb290R3JhcGguaCBi
L1NvdXJjZS9XVEYvd3RmL1NpbmdsZVJvb3RHcmFwaC5oCmluZGV4IDEzMTEwNzgwOWUwLi40ZDNi
NWViYjUzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU2luZ2xlUm9vdEdyYXBoLmgKKysr
IGIvU291cmNlL1dURi93dGYvU2luZ2xlUm9vdEdyYXBoLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNp
bmNsdWRlIDx3dGYvR3JhcGhOb2RlV29ya2xpc3QuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL1N0cmlu
Z1ByaW50U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCg==
</data>
<flag name="review"
          id="404897"
          type_id="1"
          status="-"
          setter="rmorisset"
    />
    <flag name="commit-queue"
          id="404898"
          type_id="3"
          status="-"
          setter="rmorisset"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389210</attachid>
            <date>2020-01-29 17:59:36 -0800</date>
            <delta_ts>2020-01-29 18:19:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch206975</filename>
            <type>text/plain</type>
            <size>28212</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGQ4ZDkxYzQxZWE0Li44ZTkxNTEwOTA2YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMjAtMDEtMjkgIFJvYmlu
IE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KKworICAgICAgICBNb3N0IG9mIEIzIGFu
ZCBBaXIgZG9lcyBub3QgbmVlZCB0byBpbmNsdWRlIENDYWxsSGVscGVycy5oCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY5NzUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGV5IG9ubHkgZG8gdG8gdXNl
IENDYWxsSGVscGVyczo6SnVtcCBvciBDQ2FsbEhlbHBlcnM6OkxhYmVsLgorICAgICAgICBCdXQg
Q0NhbGxIZWxwZXJzIGluaGVyaXQgdGhvc2UgZnJvbSBNYWNyb0Fzc2VtYmxlci4gQW5kIE1hY3Jv
QXNzZW1ibGVyLmggaXMgZHJhbWF0aWNhbGx5IGNoZWFwZXIgdG8gaW5jbHVkZSAoc2luY2UgQ0Nh
bGxIZWxwZXJzIGluY2x1ZGVzIEFzc2VtYmx5SGVscGVycyB3aGljaCBpbmNsdWRlcyBDb2RlQmxv
Y2suaCB3aGljaCBpbmNsdWRlcyByb3VnaGx5IHRoZSBlbnRpcmUgcnVudGltZSkuCisKKyAgICAg
ICAgKiBiMy9CM0NoZWNrU3BlY2lhbC5jcHA6CisgICAgICAgICogYjMvQjNDaGVja1NwZWNpYWwu
aDoKKyAgICAgICAgKiBiMy9CM0xvd2VyTWFjcm9zLmNwcDoKKyAgICAgICAgKiBiMy9CM1BhdGNo
cG9pbnRTcGVjaWFsLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlBhdGNocG9pbnRTcGVjaWFsOjpn
ZW5lcmF0ZSk6CisgICAgICAgICogYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oOgorICAgICAgICAq
IGIzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlN0
YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6c3VjY2Vzc29yTGFiZWxzIGNvbnN0KToKKyAgICAgICAg
KiBiMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oOgorICAgICAgICAqIGIzL2Fpci9BaXJB
bGxvY2F0ZVJlZ2lzdGVyc0FuZFN0YWNrQW5kR2VuZXJhdGVDb2RlLmg6CisgICAgICAgICogYjMv
YWlyL0FpckNDYWxsU3BlY2lhbC5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckNDYWxsU3BlY2lh
bC5oOgorICAgICAgICAqIGIzL2Fpci9BaXJDb2RlLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjplbnRyeXBvaW50TGFiZWwgY29u
c3QpOgorICAgICAgICAqIGIzL2Fpci9BaXJDdXN0b20uY3BwOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpDQ2FsbEN1c3RvbTo6Z2VuZXJhdGUpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpTaHVm
ZmxlQ3VzdG9tOjpnZW5lcmF0ZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Oldhc21Cb3VuZHND
aGVja0N1c3RvbTo6Z2VuZXJhdGUpOgorICAgICAgICAqIGIzL2Fpci9BaXJDdXN0b20uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OkFpcjo6UGF0Y2hDdXN0b206OmdlbmVyYXRlKToKKyAgICAgICAgKEpT
Qzo6QjM6OkFpcjo6RW50cnlTd2l0Y2hDdXN0b206OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9h
aXIvQWlyRGlzYXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6RGlzYXNzZW1i
bGVyOjphZGRJbnN0KToKKyAgICAgICAgKiBiMy9haXIvQWlyRGlzYXNzZW1ibGVyLmg6CisgICAg
ICAgICogYjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ckluc3QuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyUHJpbnRTcGVjaWFsLmNwcDoKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6UHJpbnRTcGVjaWFsOjpnZW5lcmF0ZSk6CisgICAgICAgICogYjMvYWly
L0FpclByaW50U3BlY2lhbC5oOgorICAgICAgICAqIGIzL2Fpci9BaXJTcGVjaWFsLmg6CisgICAg
ICAgICogYjMvYWlyL0FpclZhbGlkYXRlLmNwcDoKKyAgICAgICAgKiBiMy9haXIvb3Bjb2RlX2dl
bmVyYXRvci5yYjoKKwogMjAyMC0wMS0yOSAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBw
bGUuY29tPgogCiAgICAgICAgIERvbid0IGluY2x1ZGUgVk0uaCBpbiBDYWxsRnJhbWUuaApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFsLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5jcHAKaW5kZXggY2U2NDQ2NjI1
ZWEuLjNkMTJjYjFiMWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
aGVja1NwZWNpYWwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3Bl
Y2lhbC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgog
I2luY2x1ZGUgIkIzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgiCiAjaW5jbHVkZSAiQjNWYWx1
ZUlubGluZXMuaCIKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBCMyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0NoZWNrU3BlY2lhbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFs
LmgKaW5kZXggMzVmM2Y3NzQ2MjEuLmIxYWQwNTE0Mjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDaGVja1NwZWNpYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDaGVja1NwZWNpYWwuaApAQCAtMTI4LDcgKzEyOCw3IEBAIHByb3RlY3RlZDoKICAg
ICAvLyBOT1RFOiB0aGUgZ2VuZXJhdGUgbWV0aG9kIHdpbGwgZ2VuZXJhdGUgdGhlIGhpZGRlbiBi
cmFuY2ggYW5kIHRoZW4gcmVnaXN0ZXIgYSBMYXRlUGF0aCB0aGF0CiAgICAgLy8gZ2VuZXJhdGVz
IHRoZSBzdGFja21hcC4gU3VwZXIgY3JhenkgZHVkZSEKIAotICAgIENDYWxsSGVscGVyczo6SnVt
cCBnZW5lcmF0ZShBaXI6Okluc3QmLCBDQ2FsbEhlbHBlcnMmLCBBaXI6OkdlbmVyYXRpb25Db250
ZXh0JikgZmluYWw7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZ2VuZXJhdGUoQWlyOjpJbnN0
JiwgQ0NhbGxIZWxwZXJzJiwgQWlyOjpHZW5lcmF0aW9uQ29udGV4dCYpIGZpbmFsOwogCiAgICAg
dm9pZCBkdW1wSW1wbChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgZGVlcER1
bXBJbXBsKFByaW50U3RyZWFtJikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDb21tb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q29tbW9uLmNwcAppbmRleCA5ODk2N2FmMzI1OS4uNTczZjFlNjU1NDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ29tbW9uLmNwcApAQCAtMjksNyArMjksNiBAQAogI2lmIEVOQUJMRShCM19K
SVQpCiAKICNpbmNsdWRlICJERkdDb21tb24uaCIKLSNpbmNsdWRlICJGVExTdGF0ZS5oIgogI2lu
Y2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIApAQCAtMzgsNyAr
MzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIGJvb2wgc2hvdWxkRHVtcElS
KEIzQ29tcGlsYXRpb25Nb2RlIG1vZGUpCiB7CiAjaWYgRU5BQkxFKEZUTF9KSVQpCi0gICAgcmV0
dXJuIEZUTDo6dmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpIHx8IEZUTDo6c2hvdWxkRHVtcERp
c2Fzc2VtYmx5KCkgfHwgc2hvdWxkRHVtcElSQXRFYWNoUGhhc2UobW9kZSk7CisgICAgcmV0dXJu
IERGRzo6dmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZChERkc6OkZUTE1vZGUpIHx8IERGRzo6c2hv
dWxkRHVtcERpc2Fzc2VtYmx5KERGRzo6RlRMTW9kZSkgfHwgc2hvdWxkRHVtcElSQXRFYWNoUGhh
c2UobW9kZSk7CiAjZWxzZQogICAgIHJldHVybiBzaG91bGREdW1wSVJBdEVhY2hQaGFzZShtb2Rl
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWxpbWlu
YXRlQ29tbW9uU3ViZXhwcmVzc2lvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
RWxpbWluYXRlQ29tbW9uU3ViZXhwcmVzc2lvbnMuY3BwCmluZGV4IGI2ZmNkY2E2ZGZmLi4yZGU5
OTYwZjVjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWxpbWluYXRl
Q29tbW9uU3ViZXhwcmVzc2lvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmNwcApAQCAtNDMsNyArNDMsNiBAQAogI2lu
Y2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYXJpYWJsZS5oIgogI2luY2x1
ZGUgIkIzVmFyaWFibGVWYWx1ZS5oIgotI2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAjaW5jbHVkZSA8
d3RmL0NvbW1hUHJpbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL0xpc3REdW1wLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNM
b3dlck1hY3Jvcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5j
cHAKaW5kZXggNTQ2MmUxMzJmYTguLjk3MmUxYmJlYzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiQjNV
cHNpbG9uVmFsdWUuaCIKICNpbmNsdWRlICJCM1VzZUNvdW50cy5oIgogI2luY2x1ZGUgIkIzVmFs
dWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiTGlua0J1
ZmZlci5oIgogI2luY2x1ZGUgPGNtYXRoPgogI2luY2x1ZGUgPHd0Zi9CaXRWZWN0b3IuaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmNwcAppbmRl
eCA5NGZhMGYyOGUwOC4uOTRmNThhMzczZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCBib29sIFBh
dGNocG9pbnRTcGVjaWFsOjphZG1pdHNFeHRlbmRlZE9mZnNldEFkZHIoSW5zdCYgaW5zdCwgdW5z
aWduZWQgYXJnSW5kZXgpCiAgICAgcmV0dXJuIGFkbWl0c1N0YWNrKGluc3QsIGFyZ0luZGV4KTsK
IH0KIAotQ0NhbGxIZWxwZXJzOjpKdW1wIFBhdGNocG9pbnRTcGVjaWFsOjpnZW5lcmF0ZShJbnN0
JiBpbnN0LCBDQ2FsbEhlbHBlcnMmIGppdCwgQWlyOjpHZW5lcmF0aW9uQ29udGV4dCYgY29udGV4
dCkKK01hY3JvQXNzZW1ibGVyOjpKdW1wIFBhdGNocG9pbnRTcGVjaWFsOjpnZW5lcmF0ZShJbnN0
JiBpbnN0LCBDQ2FsbEhlbHBlcnMmIGppdCwgQWlyOjpHZW5lcmF0aW9uQ29udGV4dCYgY29udGV4
dCkKIHsKICAgICBjb25zdCBQcm9jZWR1cmUmIHByb2NlZHVyZSA9IGNvZGUoKS5wcm9jKCk7CiAg
ICAgUGF0Y2hwb2ludFZhbHVlKiB2YWx1ZSA9IGluc3Qub3JpZ2luLT5hczxQYXRjaHBvaW50VmFs
dWU+KCk7CkBAIC0xNzAsNyArMTcwLDcgQEAgQ0NhbGxIZWxwZXJzOjpKdW1wIFBhdGNocG9pbnRT
cGVjaWFsOjpnZW5lcmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmIGppdCwgQWkKICAgICAK
ICAgICB2YWx1ZS0+bV9nZW5lcmF0b3ItPnJ1bihqaXQsIHBhcmFtcyk7CiAKLSAgICByZXR1cm4g
Q0NhbGxIZWxwZXJzOjpKdW1wKCk7CisgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpKdW1wKCk7
CiB9CiAKIGJvb2wgUGF0Y2hwb2ludFNwZWNpYWw6OmlzVGVybWluYWwoSW5zdCYgaW5zdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oCmluZGV4IGVl
ZmU0MDE5NTZiLi43Y2M3NmFiOTM2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNQYXRjaHBvaW50U3BlY2lhbC5oCkBAIC01NSw3ICs1NSw3IEBAIHByb3RlY3RlZDoKICAgICAv
LyBOT1RFOiB0aGUgZ2VuZXJhdGUgbWV0aG9kIHdpbGwgZ2VuZXJhdGUgdGhlIGhpZGRlbiBicmFu
Y2ggYW5kIHRoZW4gcmVnaXN0ZXIgYSBMYXRlUGF0aCB0aGF0CiAgICAgLy8gZ2VuZXJhdGVzIHRo
ZSBzdGFja21hcC4gU3VwZXIgY3JhenkgZHVkZSEKIAotICAgIENDYWxsSGVscGVyczo6SnVtcCBn
ZW5lcmF0ZShBaXI6Okluc3QmLCBDQ2FsbEhlbHBlcnMmLCBBaXI6OkdlbmVyYXRpb25Db250ZXh0
JikgZmluYWw7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZ2VuZXJhdGUoQWlyOjpJbnN0Jiwg
Q0NhbGxIZWxwZXJzJiwgQWlyOjpHZW5lcmF0aW9uQ29udGV4dCYpIGZpbmFsOwogICAgIAogICAg
IGJvb2wgaXNUZXJtaW5hbChBaXI6Okluc3QmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHAKaW5kZXgg
MzQzNWIwZTYzYTAuLjkyY2Q4MGVkN2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHAKQEAgLTU5LDEyICs1OSwx
MiBAQCBSZWdpc3RlclNldCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXM6OnVuYXZhaWxhYmxlUmVn
aXN0ZXJzKCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1WZWN0b3I8Qm94PENDYWxs
SGVscGVyczo6TGFiZWw+PiBTdGFja21hcEdlbmVyYXRpb25QYXJhbXM6OnN1Y2Nlc3NvckxhYmVs
cygpIGNvbnN0CitWZWN0b3I8Qm94PE1hY3JvQXNzZW1ibGVyOjpMYWJlbD4+IFN0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtczo6c3VjY2Vzc29yTGFiZWxzKCkgY29uc3QKIHsKICAgICBSRUxFQVNFX0FT
U0VSVChtX2NvbnRleHQuaW5kZXhJbkJsb2NrID09IG1fY29udGV4dC5jdXJyZW50QmxvY2stPnNp
emUoKSAtIDEpOwogICAgIFJFTEVBU0VfQVNTRVJUKG1fdmFsdWUtPmVmZmVjdHMoKS50ZXJtaW5h
bCk7CiAgICAgCi0gICAgVmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gcmVzdWx0KG1f
Y29udGV4dC5jdXJyZW50QmxvY2stPm51bVN1Y2Nlc3NvcnMoKSk7CisgICAgVmVjdG9yPEJveDxN
YWNyb0Fzc2VtYmxlcjo6TGFiZWw+PiByZXN1bHQobV9jb250ZXh0LmN1cnJlbnRCbG9jay0+bnVt
U3VjY2Vzc29ycygpKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2NvbnRleHQuY3VycmVudEJs
b2NrLT5udW1TdWNjZXNzb3JzKCk7IGktLTspCiAgICAgICAgIHJlc3VsdFtpXSA9IG1fY29udGV4
dC5ibG9ja0xhYmVsc1ttX2NvbnRleHQuY3VycmVudEJsb2NrLT5zdWNjZXNzb3JCbG9jayhpKV07
CiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgKaW5kZXggMGY3ZDcyZDliYjAuLmEzNjI1NDg4
ZWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVy
YXRpb25QYXJhbXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdl
bmVyYXRpb25QYXJhbXMuaApAQCAtMjksMTEgKzI5LDE1IEBACiAKICNpbmNsdWRlICJBaXJHZW5l
cmF0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIkIzVmFsdWVSZXAuaCIKLSNpbmNsdWRlICJDQ2Fs
bEhlbHBlcnMuaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIlJlZ2lz
dGVyU2V0LmgiCiAjaW5jbHVkZSA8d3RmL0JveC5oPgogCi1uYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEIzIHsKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBDQ2FsbEhlbHBlcnM7CisKK25hbWVz
cGFjZSBCMyB7CiAKIGNsYXNzIENoZWNrU3BlY2lhbDsKIGNsYXNzIFBhdGNocG9pbnRTcGVjaWFs
OwpAQCAtODksNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gVGhpcyBpcyBjb21wdXRl
ZCBsYXppbHksIHNvIGl0IHdvbid0IHdvcmsgaWYgeW91IGNhcHR1cmUgU3RhY2ttYXBHZW5lcmF0
aW9uUGFyYW1zIGJ5IHZhbHVlLgogICAgIC8vIFRoZXNlIGxhYmVscyB3aWxsIGdldCBwb3B1bGF0
ZWQgYmVmb3JlIGFueSBsYXRlIHBhdGhzIG9yIGxpbmsgdGFza3MgZXhlY3V0ZS4KLSAgICBKU19F
WFBPUlRfUFJJVkFURSBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBzdWNjZXNzb3JM
YWJlbHMoKSBjb25zdDsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBWZWN0b3I8Qm94PE1hY3JvQXNz
ZW1ibGVyOjpMYWJlbD4+IHN1Y2Nlc3NvckxhYmVscygpIGNvbnN0OwogICAgIAogICAgIC8vIFRo
aXMgaXMgY29tcHV0ZWQgbGF6aWx5LCBzbyBpdCB3b24ndCB3b3JrIGlmIHlvdSBjYXB0dXJlIFN0
YWNrbWFwR2VuZXJhdGlvblBhcmFtcyBieSB2YWx1ZS4KICAgICAvLyBSZXR1cm5zIHRydWUgaWYg
dGhlIHN1Y2Nlc3NvciBhdCB0aGUgZ2l2ZW4gaW5kZXggaXMgZ29pbmcgdG8gYmUgZW1pdHRlZCBy
aWdodCBhZnRlciB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0
YWNrbWFwVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwVmFsdWUu
aAppbmRleCA3MGM0OWM4NjEwOS4uZGUwZGM5NjNmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNTdGFja21hcFZhbHVlLmgKQEAgLTMwLDExICszMCwxNCBAQAogI2luY2x1ZGUgIkIz
Q29uc3RyYWluZWRWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWUuaCIKICNpbmNsdWRlICJCM1Zh
bHVlUmVwLmgiCi0jaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJT
ZXQuaCIKICNpbmNsdWRlIDx3dGYvU2hhcmVkVGFzay5oPgogCi1uYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIEIzIHsKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBDQ2FsbEhlbHBlcnM7CisKK25h
bWVzcGFjZSBCMyB7CiAKIGNsYXNzIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVJlZ2lzdGVyc0Fu
ZFN0YWNrQW5kR2VuZXJhdGVDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckFsbG9jYXRlUmVnaXN0ZXJzQW5kU3RhY2tBbmRHZW5lcmF0ZUNvZGUuaAppbmRleCA4MWIwYWEw
ZjdjNC4uNjZmZmNjYzU4MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQWxsb2NhdGVSZWdpc3RlcnNBbmRTdGFja0FuZEdlbmVyYXRlQ29kZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVSZWdpc3RlcnNBbmRTdGFja0Fu
ZEdlbmVyYXRlQ29kZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJBaXJMaXZlbmVz
cy5oIgogI2luY2x1ZGUgIkFpclRtcE1hcC5oIgorI2luY2x1ZGUgPHd0Zi9Ob25tb3ZhYmxlLmg+
CiAKIG5hbWVzcGFjZSBKU0MgeyAKIApAQCAtODcsOCArODgsOCBAQCBwcml2YXRlOgogICAgIHN0
ZDo6dW5pcXVlX3B0cjxVbmlmaWVkVG1wTGl2ZW5lc3M+IG1fbGl2ZW5lc3M7CiAKICAgICBzdHJ1
Y3QgUGF0Y2hTcGlsbERhdGEgewotICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAganVtcDsKLSAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBjb250aW51ZUxhYmVsOworICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBqdW1wOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgY29udGlu
dWVMYWJlbDsKICAgICAgICAgSGFzaE1hcDxUbXAsIEFyZyo+IGRlZmRUbXBzOwogICAgIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFs
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFsLmNwcApp
bmRleCA1MGE1MDk0NmI3OS4uNjE5MTk1YmI3MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpckNDYWxsU3BlY2lhbC5jcHAKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lm
IEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKwogbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCiBDQ2FsbFNwZWNpYWw6OkND
YWxsU3BlY2lhbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckNDYWxsU3BlY2lhbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNw
ZWNpYWwuaAppbmRleCBjNTFhMzczOTI5My4uOTEzZjEwNmE4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFsLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwuaApAQCAtNTcsNyArNTcsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgYm9vbCBhZG1pdHNTdGFjayhJbnN0JiwgdW5zaWduZWQgYXJnSW5kZXgp
IGZpbmFsOwogICAgIGJvb2wgYWRtaXRzRXh0ZW5kZWRPZmZzZXRBZGRyKEluc3QmLCB1bnNpZ25l
ZCkgZmluYWw7CiAgICAgdm9pZCByZXBvcnRVc2VkUmVnaXN0ZXJzKEluc3QmLCBjb25zdCBSZWdp
c3RlclNldCYpIGZpbmFsOwotICAgIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShJbnN0Jiwg
Q0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKSBmaW5hbDsKKyAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRl
eHQmKSBmaW5hbDsKICAgICBSZWdpc3RlclNldCBleHRyYUVhcmx5Q2xvYmJlcmVkUmVncyhJbnN0
JikgZmluYWw7CiAgICAgUmVnaXN0ZXJTZXQgZXh0cmFDbG9iYmVyZWRSZWdzKEluc3QmKSBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAKaW5kZXggZDVkNjlj
MzBhNTkuLmY4Mjk1NTUzMjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckNvZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29k
ZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tVdGlscy5oIgog
I2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNTdGFja1Nsb3QuaCIKKyNpbmNs
dWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KICNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5o
CmluZGV4IGE0ZTVkOTRiY2VmLi4yMzAyODI4NTNlMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJDb2RlLmgKQEAgLTM0LDE0ICszNCwxOSBAQAogI2luY2x1ZGUgIkFpclN0YWNrU2xv
dC5oIgogI2luY2x1ZGUgIkFpclRtcC5oIgogI2luY2x1ZGUgIkIzU3BhcnNlQ29sbGVjdGlvbi5o
IgotI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKKyNpbmNs
dWRlICJNYWNyb0Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyQXRPZmZzZXRMaXN0Lmgi
CiAjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9JbmRleE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUmFuZG9tLmg+CiAK
LW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNz
IENDYWxsSGVscGVyczsKKworbmFtZXNwYWNlIEIzIHsKIAogY2xhc3MgUHJvY2VkdXJlOwogCkBA
IC0yMDYsNyArMjExLDcgQEAgcHVibGljOgogICAgICAgICBSRUxFQVNFX0FTU0VSVChtX2VudHJ5
cG9pbnRzLnNpemUoKSA9PSBtX3Byb2xvZ3VlR2VuZXJhdG9ycy5zaXplKCkpOwogICAgIH0KICAg
ICAKLSAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGVudHJ5cG9pbnRMYWJlbCh1bnNpZ25lZCBpbmRl
eCkgY29uc3QKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZW50cnlwb2ludExhYmVsKHVuc2ln
bmVkIGluZGV4KSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fZW50cnlwb2ludExhYmVs
c1tpbmRleF07CiAgICAgfQpAQCAtMzkzLDcgKzM5OCw3IEBAIHByaXZhdGU6CiAgICAgUmVnaXN0
ZXJTZXQgbV9jYWxsZWVTYXZlUmVnaXN0ZXJzOwogICAgIFN0YWNrU2xvdCogbV9jYWxsZWVTYXZl
U3RhY2tTbG90IHsgbnVsbHB0ciB9OwogICAgIFZlY3RvcjxGcmVxdWVudGVkQmxvY2s+IG1fZW50
cnlwb2ludHM7IC8vIFRoaXMgaXMgZW1wdHkgdW50aWwgYWZ0ZXIgbG93ZXJFbnRyeVN3aXRjaCgp
LgotICAgIFZlY3RvcjxDQ2FsbEhlbHBlcnM6OkxhYmVsPiBtX2VudHJ5cG9pbnRMYWJlbHM7IC8v
IFRoaXMgaXMgZW1wdHkgdW50aWwgY29kZSBnZW5lcmF0aW9uLgorICAgIFZlY3RvcjxNYWNyb0Fz
c2VtYmxlcjo6TGFiZWw+IG1fZW50cnlwb2ludExhYmVsczsgLy8gVGhpcyBpcyBlbXB0eSB1bnRp
bCBjb2RlIGdlbmVyYXRpb24uCiAgICAgVmVjdG9yPFJlZjxQcm9sb2d1ZUdlbmVyYXRvcj4sIDE+
IG1fcHJvbG9ndWVHZW5lcmF0b3JzOwogICAgIFJlZlB0cjxXYXNtQm91bmRzQ2hlY2tHZW5lcmF0
b3I+IG1fd2FzbUJvdW5kc0NoZWNrR2VuZXJhdG9yOwogICAgIGNvbnN0IGNoYXIqIG1fbGFzdFBo
YXNlTmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmNwcAppbmRl
eCA0OWNhNTRjMjRlZS4uMTNiY2QyNmMzNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckN1c3RvbS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJBaXJJbnN0SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkIzQ0NhbGxWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxp
bmVzLmgiCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApAQCAtOTYsMTEgKzk3LDExIEBAIGJvb2wgQ0Nh
bGxDdXN0b206OmlzVmFsaWRGb3JtKEluc3QmIGluc3QpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LUNDYWxsSGVscGVyczo6SnVtcCBDQ2FsbEN1c3RvbTo6Z2VuZXJhdGUoSW5zdCYgaW5zdCwgQ0Nh
bGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKQorTWFjcm9Bc3NlbWJsZXI6Okp1bXAgQ0Nh
bGxDdXN0b206OmdlbmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25D
b250ZXh0JikKIHsKICAgICBkYXRhTG9nKCJGQVRBTDogVW5sb3dlcmVkIEMgY2FsbDogIiwgaW5z
dCwgIlxuIik7CiAgICAgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCk7Ci0gICAgcmV0dXJuIEND
YWxsSGVscGVyczo6SnVtcCgpOworICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6SnVtcCgpOwog
fQogCiBib29sIFNodWZmbGVDdXN0b206OmlzVmFsaWRGb3JtKEluc3QmIGluc3QpCkBAIC0xNzEs
MTEgKzE3MiwxMSBAQCBib29sIFNodWZmbGVDdXN0b206OmlzVmFsaWRGb3JtKEluc3QmIGluc3Qp
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUNDYWxsSGVscGVyczo6SnVtcCBTaHVmZmxlQ3VzdG9t
OjpnZW5lcmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYp
CitNYWNyb0Fzc2VtYmxlcjo6SnVtcCBTaHVmZmxlQ3VzdG9tOjpnZW5lcmF0ZShJbnN0JiBpbnN0
LCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpCiB7CiAgICAgZGF0YUxvZygiRkFU
QUw6IFVubG93ZXJlZCBzaHVmZmxlOiAiLCBpbnN0LCAiXG4iKTsKICAgICBVTlJFQUNIQUJMRV9G
T1JfUExBVEZPUk0oKTsKLSAgICByZXR1cm4gQ0NhbGxIZWxwZXJzOjpKdW1wKCk7CisgICAgcmV0
dXJuIE1hY3JvQXNzZW1ibGVyOjpKdW1wKCk7CiB9CiAKIGJvb2wgV2FzbUJvdW5kc0NoZWNrQ3Vz
dG9tOjppc1ZhbGlkRm9ybShJbnN0JiBpbnN0KQpAQCAtMTg4LDYgKzE4OSwyOCBAQCBib29sIFdh
c21Cb3VuZHNDaGVja0N1c3RvbTo6aXNWYWxpZEZvcm0oSW5zdCYgaW5zdCkKICAgICByZXR1cm4g
aW5zdC5hcmdzWzFdLmlzUmVnKCkgfHwgaW5zdC5hcmdzWzFdLmlzVG1wKCkgfHwgaW5zdC5hcmdz
WzFdLmlzU29tZUltbSgpOwogfQogCitNYWNyb0Fzc2VtYmxlcjo6SnVtcCBXYXNtQm91bmRzQ2hl
Y2tDdXN0b206OmdlbmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVycyYgaml0LCBHZW5lcmF0
aW9uQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICBXYXNtQm91bmRzQ2hlY2tWYWx1ZSogdmFsdWUg
PSBpbnN0Lm9yaWdpbi0+YXM8V2FzbUJvdW5kc0NoZWNrVmFsdWU+KCk7CisgICAgTWFjcm9Bc3Nl
bWJsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBJbnN0KEFpcjo6QnJhbmNoNjQsIHZhbHVlLCBBcmc6
OnJlbENvbmQoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCksIGluc3QuYXJnc1swXSwgaW5z
dC5hcmdzWzFdKS5nZW5lcmF0ZShqaXQsIGNvbnRleHQpOworCisgICAgY29udGV4dC5sYXRlUGF0
aHMuYXBwZW5kKGNyZWF0ZVNoYXJlZFRhc2s8R2VuZXJhdGlvbkNvbnRleHQ6OkxhdGVQYXRoRnVu
Y3Rpb24+KAorICAgICAgICBbb3V0T2ZCb3VuZHMsIHZhbHVlXSAoQ0NhbGxIZWxwZXJzJiBqaXQs
IEFpcjo6R2VuZXJhdGlvbkNvbnRleHQmIGNvbnRleHQpIHsKKyAgICAgICAgICAgIG91dE9mQm91
bmRzLmxpbmsoJmppdCk7CisgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLT5ib3VuZHNUeXBlKCkp
IHsKKyAgICAgICAgICAgIGNhc2UgV2FzbUJvdW5kc0NoZWNrVmFsdWU6OlR5cGU6OlBpbm5lZDoK
KyAgICAgICAgICAgICAgICBjb250ZXh0LmNvZGUtPndhc21Cb3VuZHNDaGVja0dlbmVyYXRvcigp
LT5ydW4oaml0LCB2YWx1ZS0+Ym91bmRzKCkucGlubmVkU2l6ZSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgV2FzbUJvdW5kc0NoZWNrVmFsdWU6OlR5cGU6Ok1h
eGltdW06CisgICAgICAgICAgICAgICAgY29udGV4dC5jb2RlLT53YXNtQm91bmRzQ2hlY2tHZW5l
cmF0b3IoKS0+cnVuKGppdCwgSW52YWxpZEdQUlJlZyk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB9CisgICAgICAgIH0pKTsKKworICAgIC8vIFdlIHNhaWQgd2Ugd2VyZSBu
b3QgYSB0ZXJtaW5hbC4KKyAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6Okp1bXAoKTsKK30KIAog
fSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1c3RvbS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJDdXN0b20uaAppbmRleCBlOThhZmVhODY3Ni4uYWQ1ZjA1ZmJiZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0b20uaApAQCAtMzMsNiArMzMsNyBAQAogI2lu
Y2x1ZGUgIkFpclNwZWNpYWwuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1
ZGUgIkIzV2FzbUJvdW5kc0NoZWNrVmFsdWUuaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5o
IgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKQEAg
LTEwOCw3ICsxMDksNyBAQCBzdHJ1Y3QgUGF0Y2hDdXN0b20gewogICAgICAgICByZXR1cm4gaW5z
dC5hcmdzWzBdLnNwZWNpYWwoKS0+aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoaW5zdCk7CiAg
ICAgfQogCi0gICAgc3RhdGljIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZSgKKyAgICBzdGF0
aWMgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZ2VuZXJhdGUoCiAgICAgICAgIEluc3QmIGluc3QsIEND
YWxsSGVscGVycyYgaml0LCBHZW5lcmF0aW9uQ29udGV4dCYgY29udGV4dCkKICAgICB7CiAgICAg
ICAgIHJldHVybiBpbnN0LmFyZ3NbMF0uc3BlY2lhbCgpLT5nZW5lcmF0ZShpbnN0LCBqaXQsIGNv
bnRleHQpOwpAQCAtMTgxLDcgKzE4Miw3IEBAIHN0cnVjdCBDQ2FsbEN1c3RvbSA6IHB1YmxpYyBD
b21tb25DdXN0b21CYXNlPENDYWxsQ3VzdG9tPiB7CiAgICAgfQogCiAgICAgLy8gVGhpcyBqdXN0
IGNyYXNoZXMsIHNpbmNlIHdlIGV4cGVjdCBDIGNhbGxzIHRvIGJlIGxvd2VyZWQgYmVmb3JlIGdl
bmVyYXRpb24uCi0gICAgc3RhdGljIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShJbnN0Jiwg
Q0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKTsKKyAgICBzdGF0aWMgTWFjcm9Bc3Nl
bWJsZXI6Okp1bXAgZ2VuZXJhdGUoSW5zdCYsIENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250
ZXh0Jik7CiB9OwogCiBzdHJ1Y3QgQ29sZENDYWxsQ3VzdG9tIDogQ0NhbGxDdXN0b20gewpAQCAt
MjQ4LDcgKzI0OSw3IEBAIHN0cnVjdCBTaHVmZmxlQ3VzdG9tIDogcHVibGljIENvbW1vbkN1c3Rv
bUJhc2U8U2h1ZmZsZUN1c3RvbT4gewogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0g
ICAgc3RhdGljIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJz
JiwgR2VuZXJhdGlvbkNvbnRleHQmKTsKKyAgICBzdGF0aWMgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
Z2VuZXJhdGUoSW5zdCYsIENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250ZXh0Jik7CiB9Owog
CiBzdHJ1Y3QgRW50cnlTd2l0Y2hDdXN0b20gOiBwdWJsaWMgQ29tbW9uQ3VzdG9tQmFzZTxFbnRy
eVN3aXRjaEN1c3RvbT4gewpAQCAtMjg4LDEyICsyODksMTIgQEAgc3RydWN0IEVudHJ5U3dpdGNo
Q3VzdG9tIDogcHVibGljIENvbW1vbkN1c3RvbUJhc2U8RW50cnlTd2l0Y2hDdXN0b20+IHsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHN0YXRpYyBDQ2FsbEhlbHBlcnM6Okp1
bXAgZ2VuZXJhdGUoSW5zdCYsIENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250ZXh0JikKKyAg
ICBzdGF0aWMgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZ2VuZXJhdGUoSW5zdCYsIENDYWxsSGVscGVy
cyYsIEdlbmVyYXRpb25Db250ZXh0JikKICAgICB7CiAgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5l
dmVyIGJlIHJlYWNoZWQgYmVjYXVzZSB3ZSBzaG91bGQgaGF2ZSBsb3dlcmVkIEVudHJ5U3dpdGNo
IGJlZm9yZQogICAgICAgICAvLyBnZW5lcmF0aW9uLgogICAgICAgICBVTlJFQUNIQUJMRV9GT1Jf
UExBVEZPUk0oKTsKLSAgICAgICAgcmV0dXJuIENDYWxsSGVscGVyczo6SnVtcCgpOworICAgICAg
ICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6Okp1bXAoKTsKICAgICB9CiB9OwogCkBAIC0zMzMsMjgg
KzMzNCw3IEBAIHN0cnVjdCBXYXNtQm91bmRzQ2hlY2tDdXN0b20gOiBwdWJsaWMgQ29tbW9uQ3Vz
dG9tQmFzZTxXYXNtQm91bmRzQ2hlY2tDdXN0b20+IHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCi0gICAgc3RhdGljIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShJbnN0JiBpbnN0
LCBDQ2FsbEhlbHBlcnMmIGppdCwgR2VuZXJhdGlvbkNvbnRleHQmIGNvbnRleHQpCi0gICAgewot
ICAgICAgICBXYXNtQm91bmRzQ2hlY2tWYWx1ZSogdmFsdWUgPSBpbnN0Lm9yaWdpbi0+YXM8V2Fz
bUJvdW5kc0NoZWNrVmFsdWU+KCk7Ci0gICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBvdXRPZkJv
dW5kcyA9IEluc3QoQWlyOjpCcmFuY2g2NCwgdmFsdWUsIEFyZzo6cmVsQ29uZChDQ2FsbEhlbHBl
cnM6OkFib3ZlT3JFcXVhbCksIGluc3QuYXJnc1swXSwgaW5zdC5hcmdzWzFdKS5nZW5lcmF0ZShq
aXQsIGNvbnRleHQpOwotCi0gICAgICAgIGNvbnRleHQubGF0ZVBhdGhzLmFwcGVuZChjcmVhdGVT
aGFyZWRUYXNrPEdlbmVyYXRpb25Db250ZXh0OjpMYXRlUGF0aEZ1bmN0aW9uPigKLSAgICAgICAg
ICAgIFtvdXRPZkJvdW5kcywgdmFsdWVdIChDQ2FsbEhlbHBlcnMmIGppdCwgQWlyOjpHZW5lcmF0
aW9uQ29udGV4dCYgY29udGV4dCkgewotICAgICAgICAgICAgICAgIG91dE9mQm91bmRzLmxpbmso
JmppdCk7Ci0gICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS0+Ym91bmRzVHlwZSgpKSB7Ci0g
ICAgICAgICAgICAgICAgY2FzZSBXYXNtQm91bmRzQ2hlY2tWYWx1ZTo6VHlwZTo6UGlubmVkOgot
ICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmNvZGUtPndhc21Cb3VuZHNDaGVja0dlbmVyYXRv
cigpLT5ydW4oaml0LCB2YWx1ZS0+Ym91bmRzKCkucGlubmVkU2l6ZSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAgICAgY2FzZSBXYXNtQm91bmRzQ2hlY2tWYWx1
ZTo6VHlwZTo6TWF4aW11bToKLSAgICAgICAgICAgICAgICAgICAgY29udGV4dC5jb2RlLT53YXNt
Qm91bmRzQ2hlY2tHZW5lcmF0b3IoKS0+cnVuKGppdCwgSW52YWxpZEdQUlJlZyk7Ci0gICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0pKTsK
LQotICAgICAgICAvLyBXZSBzYWlkIHdlIHdlcmUgbm90IGEgdGVybWluYWwuCi0gICAgICAgIHJl
dHVybiBDQ2FsbEhlbHBlcnM6Okp1bXAoKTsKLSAgICB9CisgICAgc3RhdGljIE1hY3JvQXNzZW1i
bGVyOjpKdW1wIGdlbmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVycyYgaml0LCBHZW5lcmF0
aW9uQ29udGV4dCYgY29udGV4dCk7CiB9OwogCiB9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6
QWlyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckRpc2Fzc2Vt
Ymxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckRpc2Fzc2VtYmxlci5j
cHAKaW5kZXggYjY0MWQ3YWUwNGEuLjI0MmZkOTRhYTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckRpc2Fzc2VtYmxlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJEaXNhc3NlbWJsZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiQWlyQ29kZS5oIgogI2luY2x1ZGUgIkFpckluc3QuaCIKICNpbmNsdWRlICJCM1Zh
bHVlLmgiCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiRGlzYXNzZW1ibGVy
LmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogCkBAIC02Myw3ICs2NCw3IEBAIHZvaWQgRGlz
YXNzZW1ibGVyOjpzdGFydEJsb2NrKEJhc2ljQmxvY2sqIGJsb2NrLCBDQ2FsbEhlbHBlcnMmIGpp
dCkKICAgICBtX2Jsb2Nrcy5hcHBlbmQoYmxvY2spOwogfQogCi12b2lkIERpc2Fzc2VtYmxlcjo6
YWRkSW5zdChJbnN0KiBpbnN0LCBDQ2FsbEhlbHBlcnM6OkxhYmVsIHN0YXJ0LCBDQ2FsbEhlbHBl
cnM6OkxhYmVsIGVuZCkKK3ZvaWQgRGlzYXNzZW1ibGVyOjphZGRJbnN0KEluc3QqIGluc3QsIE1h
Y3JvQXNzZW1ibGVyOjpMYWJlbCBzdGFydCwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGVuZCkKIHsK
ICAgICBhdXRvIGFkZFJlc3VsdCA9IG1faW5zdFRvUmFuZ2UuYWRkKGluc3QsIHN0ZDo6bWFrZV9w
YWlyKHN0YXJ0LCBlbmQpKTsKICAgICBSRUxFQVNFX0FTU0VSVChhZGRSZXN1bHQuaXNOZXdFbnRy
eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckRpc2Fzc2Vt
Ymxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEaXNhc3NlbWJsZXIuaApp
bmRleCBhMjY2MjY0MmIzOC4uMDFkN2M3MDcxN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyRGlzYXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJEaXNhc3NlbWJsZXIuaApAQCAtMjcsMTAgKzI3LDExIEBACiAKICNpZiBF
TkFCTEUoQjNfSklUKQogCi0jaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiTWFj
cm9Bc3NlbWJsZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IAogCitjbGFzcyBDQ2FsbEhlbHBlcnM7
CiBjbGFzcyBMaW5rQnVmZmVyOwogCiBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKQEAg
LTQ5LDE3ICs1MCwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydExhdGVQYXRoKENDYWxsSGVs
cGVycyYpOwogICAgIHZvaWQgZW5kTGF0ZVBhdGgoQ0NhbGxIZWxwZXJzJik7CiAgICAgdm9pZCBz
dGFydEJsb2NrKEJhc2ljQmxvY2sqLCBDQ2FsbEhlbHBlcnMmKTsKLSAgICB2b2lkIGFkZEluc3Qo
SW5zdCosIENDYWxsSGVscGVyczo6TGFiZWwsIENDYWxsSGVscGVyczo6TGFiZWwpOworICAgIHZv
aWQgYWRkSW5zdChJbnN0KiwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsLCBNYWNyb0Fzc2VtYmxlcjo6
TGFiZWwpOwogCiAgICAgdm9pZCBkdW1wKENvZGUmLCBQcmludFN0cmVhbSYsIExpbmtCdWZmZXIm
LCBjb25zdCBjaGFyKiBhaXJQcmVmaXgsIGNvbnN0IGNoYXIqIGFzbVByZWZpeCwgY29uc3QgU2Nv
cGVkTGFtYmRhPHZvaWQoSW5zdCYpPiYgZG9Ub0VhY2hJbnN0KTsKIAogcHJpdmF0ZToKLSAgICBI
YXNoTWFwPEluc3QqLCBzdGQ6OnBhaXI8Q0NhbGxIZWxwZXJzOjpMYWJlbCwgQ0NhbGxIZWxwZXJz
OjpMYWJlbD4+IG1faW5zdFRvUmFuZ2U7CisgICAgSGFzaE1hcDxJbnN0Kiwgc3RkOjpwYWlyPE1h
Y3JvQXNzZW1ibGVyOjpMYWJlbCwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsPj4gbV9pbnN0VG9SYW5n
ZTsKICAgICBWZWN0b3I8QmFzaWNCbG9jayo+IG1fYmxvY2tzOwotICAgIENDYWxsSGVscGVyczo6
TGFiZWwgbV9lbnRyeXBvaW50U3RhcnQ7Ci0gICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBtX2VudHJ5
cG9pbnRFbmQ7Ci0gICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBtX2xhdGVQYXRoU3RhcnQ7Ci0gICAg
Q0NhbGxIZWxwZXJzOjpMYWJlbCBtX2xhdGVQYXRoRW5kOworICAgIE1hY3JvQXNzZW1ibGVyOjpM
YWJlbCBtX2VudHJ5cG9pbnRTdGFydDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbV9lbnRy
eXBvaW50RW5kOworICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX2xhdGVQYXRoU3RhcnQ7Cisg
ICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIG1fbGF0ZVBhdGhFbmQ7CiB9OwogCiB9IH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpCMzo6QWlyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckdlbmVyYXRpb25Db250ZXh0LmgKaW5kZXggNjJmZWEwM2Q1ODMuLmMzNThhY2E0Yzk0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRpb25D
b250ZXh0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0aW9u
Q29udGV4dC5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1
ZGUgIkFpckJhc2ljQmxvY2suaCIKLSNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRl
ICJNYWNyb0Fzc2VtYmxlci5oIgogI2luY2x1ZGUgPHd0Zi9Cb3guaD4KICNpbmNsdWRlIDx3dGYv
SW5kZXhNYXAuaD4KICNpbmNsdWRlIDx3dGYvU2hhcmVkVGFzay5oPgpAQCAtNDgsNyArNDgsNyBA
QCBwdWJsaWM6CiAgICAgdHlwZWRlZiBTaGFyZWRUYXNrPExhdGVQYXRoRnVuY3Rpb24+IExhdGVQ
YXRoOwogCiAgICAgVmVjdG9yPFJlZlB0cjxMYXRlUGF0aD4+IGxhdGVQYXRoczsKLSAgICBJbmRl
eE1hcDxCYXNpY0Jsb2NrKiwgQm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBibG9ja0xhYmVsczsK
KyAgICBJbmRleE1hcDxCYXNpY0Jsb2NrKiwgQm94PE1hY3JvQXNzZW1ibGVyOjpMYWJlbD4+IGJs
b2NrTGFiZWxzOwogICAgIEJhc2ljQmxvY2sqIGN1cnJlbnRCbG9jayB7IG51bGxwdHIgfTsKICAg
ICB1bnNpZ25lZCBpbmRleEluQmxvY2sgeyBVSU5UX01BWCB9OwogICAgIENvZGUqIGNvZGUgeyBu
dWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpcklu
c3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCmluZGV4IGI1NzIz
MzllODMwLi5kY2NhZWUyYjNjOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJJbnN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0
LmgKQEAgLTI5LDcgKzI5LDggQEAKIAogI2luY2x1ZGUgIkFpckFyZy5oIgogI2luY2x1ZGUgIkFp
cktpbmQuaCIKLSNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2Vt
Ymxlci5oIgorI2luY2x1ZGUgPHd0Zi9TY29wZWRMYW1iZGEuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CiAKQEAgLTE5MSw3ICsxOTIsNyBAQCBzdHJ1Y3QgSW5zdCB7CiAgICAgLy8gR2VuZXJhdGUgc29t
ZSBjb2RlIGZvciB0aGlzIGluc3RydWN0aW9uLiBUaGlzIGlzLCBsaWtlLCBsaXRlcmFsbHkgb3Vy
IGJhY2tlbmQuIElmIHRoaXMgaXMgdGhlCiAgICAgLy8gdGVybWluYWwsIGl0IHJldHVybnMgdGhl
IGp1bXAgdGhhdCBuZWVkcyB0byBiZSBsaW5rZWQgZm9yIHRoZSAidGhlbiIgY2FzZSwgd2l0aCB0
aGUgImVsc2UiCiAgICAgLy8gY2FzZSBiZWluZyBmYWxsLXRocm91Z2guIFRoaXMgZnVuY3Rpb24g
aXMgYXV0by1nZW5lcmF0ZWQgYnkgb3Bjb2RlX2dlbmVyYXRvci5yYi4KLSAgICBDQ2FsbEhlbHBl
cnM6Okp1bXAgZ2VuZXJhdGUoQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKTsKKyAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBnZW5lcmF0ZShDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9u
Q29udGV4dCYpOwogCiAgICAgLy8gSWYgc291cmNlIGFyZ3VtZW50cyBiZW5lZml0cyBmcm9tIGJl
aW5nIGFsaWFzZWQgdG8gYSBkZXN0aW5hdGlvbiBhcmd1bWVudCwKICAgICAvLyB0aGlzIHJldHVy
biB0aGUgaW5kZXggb2YgdGhlIGRlc3RpbmF0aW9uIGFyZ3VtZW50LgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQcmludFNwZWNpYWwuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQcmludFNwZWNpYWwuY3BwCmluZGV4IDFjN2M2YjZmOTZm
Li4xOGQxNjhjZWU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJQcmludFNwZWNpYWwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
UHJpbnRTcGVjaWFsLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2lmIEVOQUJMRShNQVNNX1BST0JF
KQogCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJQcmludGVyLmgiCisjaW5jbHVkZSAiQ0NhbGxI
ZWxwZXJzLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWly
IHsKIApAQCAtNjUsNyArNjYsNyBAQCB2b2lkIFByaW50U3BlY2lhbDo6cmVwb3J0VXNlZFJlZ2lz
dGVycyhJbnN0JiwgY29uc3QgUmVnaXN0ZXJTZXQmKQogewogfQogCi1DQ2FsbEhlbHBlcnM6Okp1
bXAgUHJpbnRTcGVjaWFsOjpnZW5lcmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmIGppdCwg
R2VuZXJhdGlvbkNvbnRleHQmKQorTWFjcm9Bc3NlbWJsZXI6Okp1bXAgUHJpbnRTcGVjaWFsOjpn
ZW5lcmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmIGppdCwgR2VuZXJhdGlvbkNvbnRleHQm
KQogewogICAgIHNpemVfdCBjdXJyZW50QXJnID0gMTsgLy8gU2tpcCB0aGUgUHJpbnRTcGVjaWFs
IGFyZy4KICAgICBmb3IgKGF1dG8mIHRlcm0gOiAqbV9wcmludFJlY29yZExpc3QpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5oCmluZGV4IDFhOTYy
NzgxMmRmLi5mZmQyZDdiZjY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJQcmludFNwZWNpYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpclByaW50U3BlY2lhbC5oCkBAIC0zMyw2ICszMyw5IEBACiAjaW5jbHVkZSAiTWFjcm9Bc3Nl
bWJsZXJQcmludGVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeworCitjbGFzcyBDQ2FsbEhlbHBlcnM7
CisKIG5hbWVzcGFjZSBQcmludGVyIHsKIAogdHlwZWRlZiBWZWN0b3I8QjM6OkFpcjo6QXJnPiBB
cmdMaXN0OwpAQCAtMTA1LDcgKzEwOCw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIGFkbWl0c1N0
YWNrKEluc3QmLCB1bnNpZ25lZCBhcmdJbmRleCkgZmluYWw7CiAgICAgYm9vbCBhZG1pdHNFeHRl
bmRlZE9mZnNldEFkZHIoSW5zdCYsIHVuc2lnbmVkKSBmaW5hbDsKICAgICB2b2lkIHJlcG9ydFVz
ZWRSZWdpc3RlcnMoSW5zdCYsIGNvbnN0IFJlZ2lzdGVyU2V0JikgZmluYWw7Ci0gICAgQ0NhbGxI
ZWxwZXJzOjpKdW1wIGdlbmVyYXRlKEluc3QmLCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29u
dGV4dCYpIGZpbmFsOworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGdlbmVyYXRlKEluc3QmLCBD
Q2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpIGZpbmFsOwogICAgIFJlZ2lzdGVyU2V0
IGV4dHJhRWFybHlDbG9iYmVyZWRSZWdzKEluc3QmKSBmaW5hbDsKICAgICBSZWdpc3RlclNldCBl
eHRyYUNsb2JiZXJlZFJlZ3MoSW5zdCYpIGZpbmFsOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpclNwZWNpYWwuaAppbmRleCBhNjU5ZDAzZDVhMi4uMDU2ZmQ1MTg5N2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BlY2lhbC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BlY2lhbC5oCkBAIC04Myw3ICs4Myw3
IEBAIHB1YmxpYzoKICAgICAvLyBDdXJyZW50bHksIHdlIGRvICgxKSBmb3IgQjMgc3RhY2ttYXBz
LgogICAgIHZpcnR1YWwgdm9pZCByZXBvcnRVc2VkUmVnaXN0ZXJzKEluc3QmLCBjb25zdCBSZWdp
c3RlclNldCYpID0gMDsKICAgICAKLSAgICB2aXJ0dWFsIENDYWxsSGVscGVyczo6SnVtcCBnZW5l
cmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKSA9IDA7CisgICAg
dmlydHVhbCBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJz
JiwgR2VuZXJhdGlvbkNvbnRleHQmKSA9IDA7CiAKICAgICB2aXJ0dWFsIFJlZ2lzdGVyU2V0IGV4
dHJhRWFybHlDbG9iYmVyZWRSZWdzKEluc3QmKSA9IDA7CiAgICAgdmlydHVhbCBSZWdpc3RlclNl
dCBleHRyYUNsb2JiZXJlZFJlZ3MoSW5zdCYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyVmFsaWRhdGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJWYWxpZGF0ZS5jcHAKaW5kZXggMTAwOTkyOWM3YWMuLmVlNzQwNGNhYzhjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIkFpckNvZGUuaCIKICNpbmNsdWRlICJBaXJJbnN0SW5saW5l
cy5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCisjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50
U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWly
IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2Vu
ZXJhdG9yLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9y
LnJiCmluZGV4IGQ3MGNhNjNhOTE4Li4zMDY5ODIwYjQxZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgpAQCAtODA0LDYgKzgwNCw3IEBA
IHdyaXRlSCgiT3Bjb2RlVXRpbHMiKSB7CiB3cml0ZUgoIk9wY29kZUdlbmVyYXRlZCIpIHsKICAg
ICB8IG91dHAgfAogICAgIG91dHAucHV0cyAiI2luY2x1ZGUgXCJBaXJJbnN0SW5saW5lcy5oXCIi
CisgICAgb3V0cC5wdXRzICIjaW5jbHVkZSBcIkNDYWxsSGVscGVycy5oXCIiCiAgICAgb3V0cC5w
dXRzICIjaW5jbHVkZSBcInd0Zi9QcmludFN0cmVhbS5oXCIiCiAgICAgb3V0cC5wdXRzICJuYW1l
c3BhY2UgV1RGIHsiCiAgICAgb3V0cC5wdXRzICJ1c2luZyBuYW1lc3BhY2UgSlNDOjpCMzo6QWly
OyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggMjgyZjE1YTQ1YmQuLjdkNzQxMmI1ZDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDIwLTAxLTI5ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CisKKyAgICAg
ICAgTW9zdCBvZiBCMyBhbmQgQWlyIGRvZXMgbm90IG5lZWQgdG8gaW5jbHVkZSBDQ2FsbEhlbHBl
cnMuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2
OTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2lt
cGx5IGZpeGVzIGEgbWlzc2luZyBpbmNsdWRlIHdoaWNoIHdhcyBoaWRkZW4gc28gZmFyIGluIGJv
dGggcGxhY2VzIHRoYXQgU2luZ2xlUm9vdEdyYXBoLmggd2FzIGluY2x1ZGVkLgorCisgICAgICAg
ICogd3RmL1NpbmdsZVJvb3RHcmFwaC5oOgorCiAyMDIwLTAxLTI4ICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBTaG91bGQgdXNlIGxp
Z2h0IHRoZW1lIHVubGVzcyB3ZWJzaXRlIGRlY2xhcmVzIHN1cHBvcnQgZm9yIGRhcmsgdGhlbWVz
IGluIGNvbG9yLXNjaGVtZXMgcHJvcGVydHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Np
bmdsZVJvb3RHcmFwaC5oIGIvU291cmNlL1dURi93dGYvU2luZ2xlUm9vdEdyYXBoLmgKaW5kZXgg
MTMxMTA3ODA5ZTAuLjRkM2I1ZWJiNTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9TaW5n
bGVSb290R3JhcGguaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TaW5nbGVSb290R3JhcGguaApAQCAt
MjksNiArMjksNyBAQAogI2luY2x1ZGUgPHd0Zi9HcmFwaE5vZGVXb3JrbGlzdC5oPgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNp
bmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdURiB7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389213</attachid>
            <date>2020-01-29 18:19:45 -0800</date>
            <delta_ts>2020-01-29 18:23:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch206975</filename>
            <type>text/plain</type>
            <size>28716</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDU4OTI4YjAwN2VmLi5iZTJjZjBhZGNmOSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMjAtMDEtMjkgIFJvYmlu
IE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KKworICAgICAgICBNb3N0IG9mIEIzIGFu
ZCBBaXIgZG9lcyBub3QgbmVlZCB0byBpbmNsdWRlIENDYWxsSGVscGVycy5oCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY5NzUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGV5IG9ubHkgZG8gdG8gdXNl
IENDYWxsSGVscGVyczo6SnVtcCBvciBDQ2FsbEhlbHBlcnM6OkxhYmVsLgorICAgICAgICBCdXQg
Q0NhbGxIZWxwZXJzIGluaGVyaXQgdGhvc2UgZnJvbSBNYWNyb0Fzc2VtYmxlci4gQW5kIE1hY3Jv
QXNzZW1ibGVyLmggaXMgZHJhbWF0aWNhbGx5IGNoZWFwZXIgdG8gaW5jbHVkZSAoc2luY2UgQ0Nh
bGxIZWxwZXJzIGluY2x1ZGVzIEFzc2VtYmx5SGVscGVycyB3aGljaCBpbmNsdWRlcyBDb2RlQmxv
Y2suaCB3aGljaCBpbmNsdWRlcyByb3VnaGx5IHRoZSBlbnRpcmUgcnVudGltZSkuCisKKyAgICAg
ICAgKiBiMy9CM0NoZWNrU3BlY2lhbC5jcHA6CisgICAgICAgICogYjMvQjNDaGVja1NwZWNpYWwu
aDoKKyAgICAgICAgKiBiMy9CM0xvd2VyTWFjcm9zLmNwcDoKKyAgICAgICAgKiBiMy9CM1BhdGNo
cG9pbnRTcGVjaWFsLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlBhdGNocG9pbnRTcGVjaWFsOjpn
ZW5lcmF0ZSk6CisgICAgICAgICogYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oOgorICAgICAgICAq
IGIzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlN0
YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6c3VjY2Vzc29yTGFiZWxzIGNvbnN0KToKKyAgICAgICAg
KiBiMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oOgorICAgICAgICAqIGIzL2Fpci9BaXJB
bGxvY2F0ZVJlZ2lzdGVyc0FuZFN0YWNrQW5kR2VuZXJhdGVDb2RlLmg6CisgICAgICAgICogYjMv
YWlyL0FpckNDYWxsU3BlY2lhbC5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckNDYWxsU3BlY2lh
bC5oOgorICAgICAgICAqIGIzL2Fpci9BaXJDb2RlLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjplbnRyeXBvaW50TGFiZWwgY29u
c3QpOgorICAgICAgICAqIGIzL2Fpci9BaXJDdXN0b20uY3BwOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpDQ2FsbEN1c3RvbTo6Z2VuZXJhdGUpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpTaHVm
ZmxlQ3VzdG9tOjpnZW5lcmF0ZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Oldhc21Cb3VuZHND
aGVja0N1c3RvbTo6Z2VuZXJhdGUpOgorICAgICAgICAqIGIzL2Fpci9BaXJDdXN0b20uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OkFpcjo6UGF0Y2hDdXN0b206OmdlbmVyYXRlKToKKyAgICAgICAgKEpT
Qzo6QjM6OkFpcjo6RW50cnlTd2l0Y2hDdXN0b206OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9h
aXIvQWlyRGlzYXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6RGlzYXNzZW1i
bGVyOjphZGRJbnN0KToKKyAgICAgICAgKiBiMy9haXIvQWlyRGlzYXNzZW1ibGVyLmg6CisgICAg
ICAgICogYjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ckluc3QuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyUHJpbnRTcGVjaWFsLmNwcDoKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6UHJpbnRTcGVjaWFsOjpnZW5lcmF0ZSk6CisgICAgICAgICogYjMvYWly
L0FpclByaW50U3BlY2lhbC5oOgorICAgICAgICAqIGIzL2Fpci9BaXJTcGVjaWFsLmg6CisgICAg
ICAgICogYjMvYWlyL0FpclZhbGlkYXRlLmNwcDoKKyAgICAgICAgKiBiMy9haXIvb3Bjb2RlX2dl
bmVyYXRvci5yYjoKKwogMjAyMC0wMS0yOSAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBw
bGUuY29tPgogCiAgICAgICAgIERvbid0IGluY2x1ZGUgVk0uaCBpbiBDYWxsRnJhbWUuaApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFsLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5jcHAKaW5kZXggY2U2NDQ2NjI1
ZWEuLjNkMTJjYjFiMWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
aGVja1NwZWNpYWwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3Bl
Y2lhbC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgog
I2luY2x1ZGUgIkIzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgiCiAjaW5jbHVkZSAiQjNWYWx1
ZUlubGluZXMuaCIKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBCMyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0NoZWNrU3BlY2lhbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFs
LmgKaW5kZXggMDY1NmFkNTRiZjEuLmIxYWQwNTE0Mjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDaGVja1NwZWNpYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDaGVja1NwZWNpYWwuaApAQCAtMjcsNyArMjcsNiBAQAogCiAjaWYgRU5BQkxFKEIz
X0pJVCkKIAotI2luY2x1ZGUgIkFpckFyZy5oIgogI2luY2x1ZGUgIkFpcktpbmQuaCIKICNpbmNs
dWRlICJCM1N0YWNrbWFwU3BlY2lhbC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0x
MjksNyArMTI4LDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIE5PVEU6IHRoZSBnZW5lcmF0ZSBtZXRo
b2Qgd2lsbCBnZW5lcmF0ZSB0aGUgaGlkZGVuIGJyYW5jaCBhbmQgdGhlbiByZWdpc3RlciBhIExh
dGVQYXRoIHRoYXQKICAgICAvLyBnZW5lcmF0ZXMgdGhlIHN0YWNrbWFwLiBTdXBlciBjcmF6eSBk
dWRlIQogCi0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGdlbmVyYXRlKEFpcjo6SW5zdCYsIENDYWxs
SGVscGVycyYsIEFpcjo6R2VuZXJhdGlvbkNvbnRleHQmKSBmaW5hbDsKKyAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCBnZW5lcmF0ZShBaXI6Okluc3QmLCBDQ2FsbEhlbHBlcnMmLCBBaXI6OkdlbmVy
YXRpb25Db250ZXh0JikgZmluYWw7CiAKICAgICB2b2lkIGR1bXBJbXBsKFByaW50U3RyZWFtJikg
Y29uc3QgZmluYWw7CiAgICAgdm9pZCBkZWVwRHVtcEltcGwoUHJpbnRTdHJlYW0mKSBjb25zdCBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21tb24uY3BwCmluZGV4IDAwOTZlOWFmYzlm
Li4yZjliNzYyMzg2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29t
bW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21tb24uY3BwCkBAIC0y
OSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkRGR0NvbW1vbi5o
IgotI2luY2x1ZGUgIkZUTFN0YXRlLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgogCkBAIC0zOCw3ICszNyw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgewogYm9vbCBzaG91bGREdW1wSVIoQjNDb21waWxhdGlvbk1vZGUgbW9kZSkKIHsK
ICNpZiBFTkFCTEUoRlRMX0pJVCkKLSAgICByZXR1cm4gRlRMOjp2ZXJib3NlQ29tcGlsYXRpb25F
bmFibGVkKCkgfHwgRlRMOjpzaG91bGREdW1wRGlzYXNzZW1ibHkoKSB8fCBzaG91bGREdW1wSVJB
dEVhY2hQaGFzZShtb2RlKTsKKyAgICByZXR1cm4gREZHOjp2ZXJib3NlQ29tcGlsYXRpb25FbmFi
bGVkKERGRzo6RlRMTW9kZSkgfHwgREZHOjpzaG91bGREdW1wRGlzYXNzZW1ibHkoREZHOjpGVExN
b2RlKSB8fCBzaG91bGREdW1wSVJBdEVhY2hQaGFzZShtb2RlKTsKICNlbHNlCiAgICAgcmV0dXJu
IHNob3VsZER1bXBJUkF0RWFjaFBoYXNlKG1vZGUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNFbGltaW5hdGVDb21tb25TdWJleHByZXNzaW9ucy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNFbGltaW5hdGVDb21tb25TdWJleHByZXNzaW9u
cy5jcHAKaW5kZXggYjZmY2RjYTZkZmYuLjJkZTk5NjBmNWNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNFbGltaW5hdGVDb21tb25TdWJleHByZXNzaW9ucy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWxpbWluYXRlQ29tbW9uU3ViZXhwcmVzc2lv
bnMuY3BwCkBAIC00Myw3ICs0Myw2IEBACiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNp
bmNsdWRlICJCM1ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiQjNWYXJpYWJsZVZhbHVlLmgiCi0jaW5j
bHVkZSAiREZHR3JhcGguaCIKICNpbmNsdWRlIDx3dGYvQ29tbWFQcmludGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAppbmRleCA1NDYyZTEzMmZhOC4uOTcyZTFi
YmVjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9z
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAKQEAg
LTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgogI2luY2x1ZGUgIkIz
VXNlQ291bnRzLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJDQ2Fs
bEhlbHBlcnMuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSA8Y21hdGg+CiAj
aW5jbHVkZSA8d3RmL0JpdFZlY3Rvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzTWVtb3J5VmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01lbW9y
eVZhbHVlLmgKaW5kZXggYjk5OGFlZGM5M2YuLmY2MWRjZmQyNzZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNNZW1vcnlWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM01lbW9yeVZhbHVlLmgKQEAgLTI3LDcgKzI3LDYgQEAKIAogI2lmIEVOQUJM
RShCM19KSVQpCiAKLSNpbmNsdWRlICJBaXJBcmcuaCIKICNpbmNsdWRlICJCM0JhbmsuaCIKICNp
bmNsdWRlICJCM0hlYXBSYW5nZS5oIgogI2luY2x1ZGUgIkIzVmFsdWUuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmNwcAppbmRleCA5NGZhMGYy
OGUwOC4uOTRmNThhMzczZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1BhdGNocG9pbnRTcGVjaWFsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQ
YXRjaHBvaW50U3BlY2lhbC5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCBib29sIFBhdGNocG9pbnRT
cGVjaWFsOjphZG1pdHNFeHRlbmRlZE9mZnNldEFkZHIoSW5zdCYgaW5zdCwgdW5zaWduZWQgYXJn
SW5kZXgpCiAgICAgcmV0dXJuIGFkbWl0c1N0YWNrKGluc3QsIGFyZ0luZGV4KTsKIH0KIAotQ0Nh
bGxIZWxwZXJzOjpKdW1wIFBhdGNocG9pbnRTcGVjaWFsOjpnZW5lcmF0ZShJbnN0JiBpbnN0LCBD
Q2FsbEhlbHBlcnMmIGppdCwgQWlyOjpHZW5lcmF0aW9uQ29udGV4dCYgY29udGV4dCkKK01hY3Jv
QXNzZW1ibGVyOjpKdW1wIFBhdGNocG9pbnRTcGVjaWFsOjpnZW5lcmF0ZShJbnN0JiBpbnN0LCBD
Q2FsbEhlbHBlcnMmIGppdCwgQWlyOjpHZW5lcmF0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKICAg
ICBjb25zdCBQcm9jZWR1cmUmIHByb2NlZHVyZSA9IGNvZGUoKS5wcm9jKCk7CiAgICAgUGF0Y2hw
b2ludFZhbHVlKiB2YWx1ZSA9IGluc3Qub3JpZ2luLT5hczxQYXRjaHBvaW50VmFsdWU+KCk7CkBA
IC0xNzAsNyArMTcwLDcgQEAgQ0NhbGxIZWxwZXJzOjpKdW1wIFBhdGNocG9pbnRTcGVjaWFsOjpn
ZW5lcmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmIGppdCwgQWkKICAgICAKICAgICB2YWx1
ZS0+bV9nZW5lcmF0b3ItPnJ1bihqaXQsIHBhcmFtcyk7CiAKLSAgICByZXR1cm4gQ0NhbGxIZWxw
ZXJzOjpKdW1wKCk7CisgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpKdW1wKCk7CiB9CiAKIGJv
b2wgUGF0Y2hwb2ludFNwZWNpYWw6OmlzVGVybWluYWwoSW5zdCYgaW5zdCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oCmluZGV4IGVlZmU0MDE5NTZi
Li43Y2M3NmFiOTM2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0
Y2hwb2ludFNwZWNpYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBv
aW50U3BlY2lhbC5oCkBAIC01NSw3ICs1NSw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBOT1RFOiB0
aGUgZ2VuZXJhdGUgbWV0aG9kIHdpbGwgZ2VuZXJhdGUgdGhlIGhpZGRlbiBicmFuY2ggYW5kIHRo
ZW4gcmVnaXN0ZXIgYSBMYXRlUGF0aCB0aGF0CiAgICAgLy8gZ2VuZXJhdGVzIHRoZSBzdGFja21h
cC4gU3VwZXIgY3JhenkgZHVkZSEKIAotICAgIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShB
aXI6Okluc3QmLCBDQ2FsbEhlbHBlcnMmLCBBaXI6OkdlbmVyYXRpb25Db250ZXh0JikgZmluYWw7
CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZ2VuZXJhdGUoQWlyOjpJbnN0JiwgQ0NhbGxIZWxw
ZXJzJiwgQWlyOjpHZW5lcmF0aW9uQ29udGV4dCYpIGZpbmFsOwogICAgIAogICAgIGJvb2wgaXNU
ZXJtaW5hbChBaXI6Okluc3QmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHAKaW5kZXggMzQzNWIwZTYz
YTAuLjkyY2Q4MGVkN2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNT
dGFja21hcEdlbmVyYXRpb25QYXJhbXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHAKQEAgLTU5LDEyICs1OSwxMiBAQCBSZWdp
c3RlclNldCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXM6OnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCkg
Y29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1WZWN0b3I8Qm94PENDYWxsSGVscGVyczo6
TGFiZWw+PiBTdGFja21hcEdlbmVyYXRpb25QYXJhbXM6OnN1Y2Nlc3NvckxhYmVscygpIGNvbnN0
CitWZWN0b3I8Qm94PE1hY3JvQXNzZW1ibGVyOjpMYWJlbD4+IFN0YWNrbWFwR2VuZXJhdGlvblBh
cmFtczo6c3VjY2Vzc29yTGFiZWxzKCkgY29uc3QKIHsKICAgICBSRUxFQVNFX0FTU0VSVChtX2Nv
bnRleHQuaW5kZXhJbkJsb2NrID09IG1fY29udGV4dC5jdXJyZW50QmxvY2stPnNpemUoKSAtIDEp
OwogICAgIFJFTEVBU0VfQVNTRVJUKG1fdmFsdWUtPmVmZmVjdHMoKS50ZXJtaW5hbCk7CiAgICAg
Ci0gICAgVmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gcmVzdWx0KG1fY29udGV4dC5j
dXJyZW50QmxvY2stPm51bVN1Y2Nlc3NvcnMoKSk7CisgICAgVmVjdG9yPEJveDxNYWNyb0Fzc2Vt
Ymxlcjo6TGFiZWw+PiByZXN1bHQobV9jb250ZXh0LmN1cnJlbnRCbG9jay0+bnVtU3VjY2Vzc29y
cygpKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2NvbnRleHQuY3VycmVudEJsb2NrLT5udW1T
dWNjZXNzb3JzKCk7IGktLTspCiAgICAgICAgIHJlc3VsdFtpXSA9IG1fY29udGV4dC5ibG9ja0xh
YmVsc1ttX2NvbnRleHQuY3VycmVudEJsb2NrLT5zdWNjZXNzb3JCbG9jayhpKV07CiAgICAgcmV0
dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNr
bWFwR2VuZXJhdGlvblBhcmFtcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zLmgKaW5kZXggMGY3ZDcyZDliYjAuLmEzNjI1NDg4ZWE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJh
bXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25Q
YXJhbXMuaApAQCAtMjksMTEgKzI5LDE1IEBACiAKICNpbmNsdWRlICJBaXJHZW5lcmF0aW9uQ29u
dGV4dC5oIgogI2luY2x1ZGUgIkIzVmFsdWVSZXAuaCIKLSNpbmNsdWRlICJDQ2FsbEhlbHBlcnMu
aCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyU2V0Lmgi
CiAjaW5jbHVkZSA8d3RmL0JveC5oPgogCi1uYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsK
K25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBDQ2FsbEhlbHBlcnM7CisKK25hbWVzcGFjZSBCMyB7
CiAKIGNsYXNzIENoZWNrU3BlY2lhbDsKIGNsYXNzIFBhdGNocG9pbnRTcGVjaWFsOwpAQCAtODks
NyArOTMsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gVGhpcyBpcyBjb21wdXRlZCBsYXppbHks
IHNvIGl0IHdvbid0IHdvcmsgaWYgeW91IGNhcHR1cmUgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
IGJ5IHZhbHVlLgogICAgIC8vIFRoZXNlIGxhYmVscyB3aWxsIGdldCBwb3B1bGF0ZWQgYmVmb3Jl
IGFueSBsYXRlIHBhdGhzIG9yIGxpbmsgdGFza3MgZXhlY3V0ZS4KLSAgICBKU19FWFBPUlRfUFJJ
VkFURSBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBzdWNjZXNzb3JMYWJlbHMoKSBj
b25zdDsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBWZWN0b3I8Qm94PE1hY3JvQXNzZW1ibGVyOjpM
YWJlbD4+IHN1Y2Nlc3NvckxhYmVscygpIGNvbnN0OwogICAgIAogICAgIC8vIFRoaXMgaXMgY29t
cHV0ZWQgbGF6aWx5LCBzbyBpdCB3b24ndCB3b3JrIGlmIHlvdSBjYXB0dXJlIFN0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtcyBieSB2YWx1ZS4KICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHN1Y2Nl
c3NvciBhdCB0aGUgZ2l2ZW4gaW5kZXggaXMgZ29pbmcgdG8gYmUgZW1pdHRlZCByaWdodCBhZnRl
ciB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwVmFs
dWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwVmFsdWUuaAppbmRleCA3
MGM0OWM4NjEwOS4uZGUwZGM5NjNmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1N0YWNrbWFwVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNT
dGFja21hcFZhbHVlLmgKQEAgLTMwLDExICszMCwxNCBAQAogI2luY2x1ZGUgIkIzQ29uc3RyYWlu
ZWRWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWUuaCIKICNpbmNsdWRlICJCM1ZhbHVlUmVwLmgi
Ci0jaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJTZXQuaCIKICNp
bmNsdWRlIDx3dGYvU2hhcmVkVGFzay5oPgogCi1uYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBDQ2FsbEhlbHBlcnM7CisKK25hbWVzcGFjZSBC
MyB7CiAKIGNsYXNzIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVJlZ2lzdGVyc0FuZFN0YWNrQW5k
R2VuZXJhdGVDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRl
UmVnaXN0ZXJzQW5kU3RhY2tBbmRHZW5lcmF0ZUNvZGUuaAppbmRleCA4MWIwYWEwZjdjNC4uNjZm
ZmNjYzU4MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxs
b2NhdGVSZWdpc3RlcnNBbmRTdGFja0FuZEdlbmVyYXRlQ29kZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVSZWdpc3RlcnNBbmRTdGFja0FuZEdlbmVyYXRl
Q29kZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJBaXJMaXZlbmVzcy5oIgogI2lu
Y2x1ZGUgIkFpclRtcE1hcC5oIgorI2luY2x1ZGUgPHd0Zi9Ob25tb3ZhYmxlLmg+CiAKIG5hbWVz
cGFjZSBKU0MgeyAKIApAQCAtODcsOCArODgsOCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxVbmlmaWVkVG1wTGl2ZW5lc3M+IG1fbGl2ZW5lc3M7CiAKICAgICBzdHJ1Y3QgUGF0Y2hT
cGlsbERhdGEgewotICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAganVtcDsKLSAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpMYWJlbCBjb250aW51ZUxhYmVsOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
SnVtcCBqdW1wOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgY29udGludWVMYWJlbDsK
ICAgICAgICAgSGFzaE1hcDxUbXAsIEFyZyo+IGRlZmRUbXBzOwogICAgIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFsLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFsLmNwcAppbmRleCA1MGE1
MDk0NmI3OS4uNjE5MTk1YmI3MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQ0NhbGxTcGVjaWFsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckNDYWxsU3BlY2lhbC5jcHAKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShC
M19KSVQpCiAKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKwogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCiBDQ2FsbFNwZWNpYWw6OkNDYWxsU3BlY2lh
bCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNDYWxsU3Bl
Y2lhbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwuaApp
bmRleCBjNTFhMzczOTI5My4uOTEzZjEwNmE4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwuaApAQCAtNTcsNyArNTcsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgYm9vbCBhZG1pdHNTdGFjayhJbnN0JiwgdW5zaWduZWQgYXJnSW5kZXgpIGZpbmFsOwog
ICAgIGJvb2wgYWRtaXRzRXh0ZW5kZWRPZmZzZXRBZGRyKEluc3QmLCB1bnNpZ25lZCkgZmluYWw7
CiAgICAgdm9pZCByZXBvcnRVc2VkUmVnaXN0ZXJzKEluc3QmLCBjb25zdCBSZWdpc3RlclNldCYp
IGZpbmFsOwotICAgIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxw
ZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKSBmaW5hbDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVt
cCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKSBmaW5h
bDsKICAgICBSZWdpc3RlclNldCBleHRyYUVhcmx5Q2xvYmJlcmVkUmVncyhJbnN0JikgZmluYWw7
CiAgICAgUmVnaXN0ZXJTZXQgZXh0cmFDbG9iYmVyZWRSZWdzKEluc3QmKSBmaW5hbDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAKaW5kZXggYmI3Yjc4ZmQ0NjMuLmIx
ODk3NjQyMDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNv
ZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tVdGlscy5oIgogI2luY2x1ZGUg
IkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNTdGFja1Nsb3QuaCIKKyNpbmNsdWRlICJDQ2Fs
bEhlbHBlcnMuaCIKICNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KICNpbmNsdWRlIDx3dGYvTWF0
aEV4dHJhcy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCmluZGV4IGZi
ZWVhOTk0ODkzLi5jZmIwZTdkMjVkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJDb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJD
b2RlLmgKQEAgLTM0LDEzICszNCwxOSBAQAogI2luY2x1ZGUgIkFpclN0YWNrU2xvdC5oIgogI2lu
Y2x1ZGUgIkFpclRtcC5oIgogI2luY2x1ZGUgIkIzU3BhcnNlQ29sbGVjdGlvbi5oIgotI2luY2x1
ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkdQUkluZm8uaCIKKyNpbmNsdWRlICJNYWNy
b0Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyQXRPZmZzZXRMaXN0LmgiCiAjaW5jbHVk
ZSAiU3RhY2tBbGlnbm1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9JbmRleE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUmFuZG9tLmg+CiAKLW5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIENDYWxsSGVs
cGVyczsKKworbmFtZXNwYWNlIEIzIHsKIAogY2xhc3MgUHJvY2VkdXJlOwogCkBAIC0xOTQsNyAr
MjAwLDcgQEAgcHVibGljOgogICAgICAgICBSRUxFQVNFX0FTU0VSVChtX2VudHJ5cG9pbnRzLnNp
emUoKSA9PSBtX3Byb2xvZ3VlR2VuZXJhdG9ycy5zaXplKCkpOwogICAgIH0KICAgICAKLSAgICBD
Q2FsbEhlbHBlcnM6OkxhYmVsIGVudHJ5cG9pbnRMYWJlbCh1bnNpZ25lZCBpbmRleCkgY29uc3QK
KyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZW50cnlwb2ludExhYmVsKHVuc2lnbmVkIGluZGV4
KSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fZW50cnlwb2ludExhYmVsc1tpbmRleF07
CiAgICAgfQpAQCAtMzgxLDcgKzM4Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVnaXN0ZXJTZXQgbV9j
YWxsZWVTYXZlUmVnaXN0ZXJzOwogICAgIFN0YWNrU2xvdCogbV9jYWxsZWVTYXZlU3RhY2tTbG90
IHsgbnVsbHB0ciB9OwogICAgIFZlY3RvcjxGcmVxdWVudGVkQmxvY2s+IG1fZW50cnlwb2ludHM7
IC8vIFRoaXMgaXMgZW1wdHkgdW50aWwgYWZ0ZXIgbG93ZXJFbnRyeVN3aXRjaCgpLgotICAgIFZl
Y3RvcjxDQ2FsbEhlbHBlcnM6OkxhYmVsPiBtX2VudHJ5cG9pbnRMYWJlbHM7IC8vIFRoaXMgaXMg
ZW1wdHkgdW50aWwgY29kZSBnZW5lcmF0aW9uLgorICAgIFZlY3RvcjxNYWNyb0Fzc2VtYmxlcjo6
TGFiZWw+IG1fZW50cnlwb2ludExhYmVsczsgLy8gVGhpcyBpcyBlbXB0eSB1bnRpbCBjb2RlIGdl
bmVyYXRpb24uCiAgICAgVmVjdG9yPFJlZjxQcm9sb2d1ZUdlbmVyYXRvcj4sIDE+IG1fcHJvbG9n
dWVHZW5lcmF0b3JzOwogICAgIFJlZlB0cjxXYXNtQm91bmRzQ2hlY2tHZW5lcmF0b3I+IG1fd2Fz
bUJvdW5kc0NoZWNrR2VuZXJhdG9yOwogICAgIGNvbnN0IGNoYXIqIG1fbGFzdFBoYXNlTmFtZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmNwcAppbmRleCA0OWNhNTRj
MjRlZS4uMTNiY2QyNmMzNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1
c3RvbS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgog
I2luY2x1ZGUgIkIzQ0NhbGxWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisj
aW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMg
eyBuYW1lc3BhY2UgQWlyIHsKIApAQCAtOTYsMTEgKzk3LDExIEBAIGJvb2wgQ0NhbGxDdXN0b206
OmlzVmFsaWRGb3JtKEluc3QmIGluc3QpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUNDYWxsSGVs
cGVyczo6SnVtcCBDQ2FsbEN1c3RvbTo6Z2VuZXJhdGUoSW5zdCYgaW5zdCwgQ0NhbGxIZWxwZXJz
JiwgR2VuZXJhdGlvbkNvbnRleHQmKQorTWFjcm9Bc3NlbWJsZXI6Okp1bXAgQ0NhbGxDdXN0b206
OmdlbmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250ZXh0JikK
IHsKICAgICBkYXRhTG9nKCJGQVRBTDogVW5sb3dlcmVkIEMgY2FsbDogIiwgaW5zdCwgIlxuIik7
CiAgICAgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCk7Ci0gICAgcmV0dXJuIENDYWxsSGVscGVy
czo6SnVtcCgpOworICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6SnVtcCgpOwogfQogCiBib29s
IFNodWZmbGVDdXN0b206OmlzVmFsaWRGb3JtKEluc3QmIGluc3QpCkBAIC0xNzEsMTEgKzE3Miwx
MSBAQCBib29sIFNodWZmbGVDdXN0b206OmlzVmFsaWRGb3JtKEluc3QmIGluc3QpCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLUNDYWxsSGVscGVyczo6SnVtcCBTaHVmZmxlQ3VzdG9tOjpnZW5lcmF0
ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpCitNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBTaHVmZmxlQ3VzdG9tOjpnZW5lcmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhl
bHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpCiB7CiAgICAgZGF0YUxvZygiRkFUQUw6IFVubG93
ZXJlZCBzaHVmZmxlOiAiLCBpbnN0LCAiXG4iKTsKICAgICBVTlJFQUNIQUJMRV9GT1JfUExBVEZP
Uk0oKTsKLSAgICByZXR1cm4gQ0NhbGxIZWxwZXJzOjpKdW1wKCk7CisgICAgcmV0dXJuIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wKCk7CiB9CiAKIGJvb2wgV2FzbUJvdW5kc0NoZWNrQ3VzdG9tOjppc1Zh
bGlkRm9ybShJbnN0JiBpbnN0KQpAQCAtMTg4LDYgKzE4OSwyOCBAQCBib29sIFdhc21Cb3VuZHND
aGVja0N1c3RvbTo6aXNWYWxpZEZvcm0oSW5zdCYgaW5zdCkKICAgICByZXR1cm4gaW5zdC5hcmdz
WzFdLmlzUmVnKCkgfHwgaW5zdC5hcmdzWzFdLmlzVG1wKCkgfHwgaW5zdC5hcmdzWzFdLmlzU29t
ZUltbSgpOwogfQogCitNYWNyb0Fzc2VtYmxlcjo6SnVtcCBXYXNtQm91bmRzQ2hlY2tDdXN0b206
OmdlbmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVycyYgaml0LCBHZW5lcmF0aW9uQ29udGV4
dCYgY29udGV4dCkKK3sKKyAgICBXYXNtQm91bmRzQ2hlY2tWYWx1ZSogdmFsdWUgPSBpbnN0Lm9y
aWdpbi0+YXM8V2FzbUJvdW5kc0NoZWNrVmFsdWU+KCk7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1
bXAgb3V0T2ZCb3VuZHMgPSBJbnN0KEFpcjo6QnJhbmNoNjQsIHZhbHVlLCBBcmc6OnJlbENvbmQo
TWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCksIGluc3QuYXJnc1swXSwgaW5zdC5hcmdzWzFd
KS5nZW5lcmF0ZShqaXQsIGNvbnRleHQpOworCisgICAgY29udGV4dC5sYXRlUGF0aHMuYXBwZW5k
KGNyZWF0ZVNoYXJlZFRhc2s8R2VuZXJhdGlvbkNvbnRleHQ6OkxhdGVQYXRoRnVuY3Rpb24+KAor
ICAgICAgICBbb3V0T2ZCb3VuZHMsIHZhbHVlXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIEFpcjo6R2Vu
ZXJhdGlvbkNvbnRleHQmIGNvbnRleHQpIHsKKyAgICAgICAgICAgIG91dE9mQm91bmRzLmxpbmso
JmppdCk7CisgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLT5ib3VuZHNUeXBlKCkpIHsKKyAgICAg
ICAgICAgIGNhc2UgV2FzbUJvdW5kc0NoZWNrVmFsdWU6OlR5cGU6OlBpbm5lZDoKKyAgICAgICAg
ICAgICAgICBjb250ZXh0LmNvZGUtPndhc21Cb3VuZHNDaGVja0dlbmVyYXRvcigpLT5ydW4oaml0
LCB2YWx1ZS0+Ym91bmRzKCkucGlubmVkU2l6ZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgICAgIGNhc2UgV2FzbUJvdW5kc0NoZWNrVmFsdWU6OlR5cGU6Ok1heGltdW06Cisg
ICAgICAgICAgICAgICAgY29udGV4dC5jb2RlLT53YXNtQm91bmRzQ2hlY2tHZW5lcmF0b3IoKS0+
cnVuKGppdCwgSW52YWxpZEdQUlJlZyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0pKTsKKworICAgIC8vIFdlIHNhaWQgd2Ugd2VyZSBub3QgYSB0ZXJt
aW5hbC4KKyAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6Okp1bXAoKTsKK30KIAogfSB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6QjM6OkFpcgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckN1c3RvbS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJD
dXN0b20uaAppbmRleCBlOThhZmVhODY3Ni4uYWQ1ZjA1ZmJiZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJDdXN0b20uaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkFp
clNwZWNpYWwuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzV2Fz
bUJvdW5kc0NoZWNrVmFsdWUuaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKQEAgLTEwOCw3ICsx
MDksNyBAQCBzdHJ1Y3QgUGF0Y2hDdXN0b20gewogICAgICAgICByZXR1cm4gaW5zdC5hcmdzWzBd
LnNwZWNpYWwoKS0+aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoaW5zdCk7CiAgICAgfQogCi0g
ICAgc3RhdGljIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZSgKKyAgICBzdGF0aWMgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgZ2VuZXJhdGUoCiAgICAgICAgIEluc3QmIGluc3QsIENDYWxsSGVscGVy
cyYgaml0LCBHZW5lcmF0aW9uQ29udGV4dCYgY29udGV4dCkKICAgICB7CiAgICAgICAgIHJldHVy
biBpbnN0LmFyZ3NbMF0uc3BlY2lhbCgpLT5nZW5lcmF0ZShpbnN0LCBqaXQsIGNvbnRleHQpOwpA
QCAtMTgxLDcgKzE4Miw3IEBAIHN0cnVjdCBDQ2FsbEN1c3RvbSA6IHB1YmxpYyBDb21tb25DdXN0
b21CYXNlPENDYWxsQ3VzdG9tPiB7CiAgICAgfQogCiAgICAgLy8gVGhpcyBqdXN0IGNyYXNoZXMs
IHNpbmNlIHdlIGV4cGVjdCBDIGNhbGxzIHRvIGJlIGxvd2VyZWQgYmVmb3JlIGdlbmVyYXRpb24u
Ci0gICAgc3RhdGljIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxw
ZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKTsKKyAgICBzdGF0aWMgTWFjcm9Bc3NlbWJsZXI6Okp1
bXAgZ2VuZXJhdGUoSW5zdCYsIENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250ZXh0Jik7CiB9
OwogCiBzdHJ1Y3QgQ29sZENDYWxsQ3VzdG9tIDogQ0NhbGxDdXN0b20gewpAQCAtMjQ4LDcgKzI0
OSw3IEBAIHN0cnVjdCBTaHVmZmxlQ3VzdG9tIDogcHVibGljIENvbW1vbkN1c3RvbUJhc2U8U2h1
ZmZsZUN1c3RvbT4gewogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgc3RhdGlj
IENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJh
dGlvbkNvbnRleHQmKTsKKyAgICBzdGF0aWMgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZ2VuZXJhdGUo
SW5zdCYsIENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250ZXh0Jik7CiB9OwogCiBzdHJ1Y3Qg
RW50cnlTd2l0Y2hDdXN0b20gOiBwdWJsaWMgQ29tbW9uQ3VzdG9tQmFzZTxFbnRyeVN3aXRjaEN1
c3RvbT4gewpAQCAtMjg4LDEyICsyODksMTIgQEAgc3RydWN0IEVudHJ5U3dpdGNoQ3VzdG9tIDog
cHVibGljIENvbW1vbkN1c3RvbUJhc2U8RW50cnlTd2l0Y2hDdXN0b20+IHsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHN0YXRpYyBDQ2FsbEhlbHBlcnM6Okp1bXAgZ2VuZXJh
dGUoSW5zdCYsIENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250ZXh0JikKKyAgICBzdGF0aWMg
TWFjcm9Bc3NlbWJsZXI6Okp1bXAgZ2VuZXJhdGUoSW5zdCYsIENDYWxsSGVscGVycyYsIEdlbmVy
YXRpb25Db250ZXh0JikKICAgICB7CiAgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGJlIHJl
YWNoZWQgYmVjYXVzZSB3ZSBzaG91bGQgaGF2ZSBsb3dlcmVkIEVudHJ5U3dpdGNoIGJlZm9yZQog
ICAgICAgICAvLyBnZW5lcmF0aW9uLgogICAgICAgICBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0o
KTsKLSAgICAgICAgcmV0dXJuIENDYWxsSGVscGVyczo6SnVtcCgpOworICAgICAgICByZXR1cm4g
TWFjcm9Bc3NlbWJsZXI6Okp1bXAoKTsKICAgICB9CiB9OwogCkBAIC0zMzMsMjggKzMzNCw3IEBA
IHN0cnVjdCBXYXNtQm91bmRzQ2hlY2tDdXN0b20gOiBwdWJsaWMgQ29tbW9uQ3VzdG9tQmFzZTxX
YXNtQm91bmRzQ2hlY2tDdXN0b20+IHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0g
ICAgc3RhdGljIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhl
bHBlcnMmIGppdCwgR2VuZXJhdGlvbkNvbnRleHQmIGNvbnRleHQpCi0gICAgewotICAgICAgICBX
YXNtQm91bmRzQ2hlY2tWYWx1ZSogdmFsdWUgPSBpbnN0Lm9yaWdpbi0+YXM8V2FzbUJvdW5kc0No
ZWNrVmFsdWU+KCk7Ci0gICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBvdXRPZkJvdW5kcyA9IElu
c3QoQWlyOjpCcmFuY2g2NCwgdmFsdWUsIEFyZzo6cmVsQ29uZChDQ2FsbEhlbHBlcnM6OkFib3Zl
T3JFcXVhbCksIGluc3QuYXJnc1swXSwgaW5zdC5hcmdzWzFdKS5nZW5lcmF0ZShqaXQsIGNvbnRl
eHQpOwotCi0gICAgICAgIGNvbnRleHQubGF0ZVBhdGhzLmFwcGVuZChjcmVhdGVTaGFyZWRUYXNr
PEdlbmVyYXRpb25Db250ZXh0OjpMYXRlUGF0aEZ1bmN0aW9uPigKLSAgICAgICAgICAgIFtvdXRP
ZkJvdW5kcywgdmFsdWVdIChDQ2FsbEhlbHBlcnMmIGppdCwgQWlyOjpHZW5lcmF0aW9uQ29udGV4
dCYgY29udGV4dCkgewotICAgICAgICAgICAgICAgIG91dE9mQm91bmRzLmxpbmsoJmppdCk7Ci0g
ICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS0+Ym91bmRzVHlwZSgpKSB7Ci0gICAgICAgICAg
ICAgICAgY2FzZSBXYXNtQm91bmRzQ2hlY2tWYWx1ZTo6VHlwZTo6UGlubmVkOgotICAgICAgICAg
ICAgICAgICAgICBjb250ZXh0LmNvZGUtPndhc21Cb3VuZHNDaGVja0dlbmVyYXRvcigpLT5ydW4o
aml0LCB2YWx1ZS0+Ym91bmRzKCkucGlubmVkU2l6ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotCi0gICAgICAgICAgICAgICAgY2FzZSBXYXNtQm91bmRzQ2hlY2tWYWx1ZTo6VHlwZTo6
TWF4aW11bToKLSAgICAgICAgICAgICAgICAgICAgY29udGV4dC5jb2RlLT53YXNtQm91bmRzQ2hl
Y2tHZW5lcmF0b3IoKS0+cnVuKGppdCwgSW52YWxpZEdQUlJlZyk7Ci0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0pKTsKLQotICAgICAg
ICAvLyBXZSBzYWlkIHdlIHdlcmUgbm90IGEgdGVybWluYWwuCi0gICAgICAgIHJldHVybiBDQ2Fs
bEhlbHBlcnM6Okp1bXAoKTsKLSAgICB9CisgICAgc3RhdGljIE1hY3JvQXNzZW1ibGVyOjpKdW1w
IGdlbmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVycyYgaml0LCBHZW5lcmF0aW9uQ29udGV4
dCYgY29udGV4dCk7CiB9OwogCiB9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckRpc2Fzc2VtYmxlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckRpc2Fzc2VtYmxlci5jcHAKaW5kZXgg
YjY0MWQ3YWUwNGEuLjI0MmZkOTRhYTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckRpc2Fzc2VtYmxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJEaXNhc3NlbWJsZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
QWlyQ29kZS5oIgogI2luY2x1ZGUgIkFpckluc3QuaCIKICNpbmNsdWRlICJCM1ZhbHVlLmgiCisj
aW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiRGlzYXNzZW1ibGVyLmgiCiAjaW5j
bHVkZSAiTGlua0J1ZmZlci5oIgogCkBAIC02Myw3ICs2NCw3IEBAIHZvaWQgRGlzYXNzZW1ibGVy
OjpzdGFydEJsb2NrKEJhc2ljQmxvY2sqIGJsb2NrLCBDQ2FsbEhlbHBlcnMmIGppdCkKICAgICBt
X2Jsb2Nrcy5hcHBlbmQoYmxvY2spOwogfQogCi12b2lkIERpc2Fzc2VtYmxlcjo6YWRkSW5zdChJ
bnN0KiBpbnN0LCBDQ2FsbEhlbHBlcnM6OkxhYmVsIHN0YXJ0LCBDQ2FsbEhlbHBlcnM6OkxhYmVs
IGVuZCkKK3ZvaWQgRGlzYXNzZW1ibGVyOjphZGRJbnN0KEluc3QqIGluc3QsIE1hY3JvQXNzZW1i
bGVyOjpMYWJlbCBzdGFydCwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGVuZCkKIHsKICAgICBhdXRv
IGFkZFJlc3VsdCA9IG1faW5zdFRvUmFuZ2UuYWRkKGluc3QsIHN0ZDo6bWFrZV9wYWlyKHN0YXJ0
LCBlbmQpKTsKICAgICBSRUxFQVNFX0FTU0VSVChhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckRpc2Fzc2VtYmxlci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEaXNhc3NlbWJsZXIuaAppbmRleCBhMjY2
MjY0MmIzOC4uMDFkN2M3MDcxN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyRGlzYXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJEaXNhc3NlbWJsZXIuaApAQCAtMjcsMTAgKzI3LDExIEBACiAKICNpZiBFTkFCTEUoQjNf
SklUKQogCi0jaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiTWFjcm9Bc3NlbWJs
ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IAogCitjbGFzcyBDQ2FsbEhlbHBlcnM7CiBjbGFzcyBM
aW5rQnVmZmVyOwogCiBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKQEAgLTQ5LDE3ICs1
MCwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydExhdGVQYXRoKENDYWxsSGVscGVycyYpOwog
ICAgIHZvaWQgZW5kTGF0ZVBhdGgoQ0NhbGxIZWxwZXJzJik7CiAgICAgdm9pZCBzdGFydEJsb2Nr
KEJhc2ljQmxvY2sqLCBDQ2FsbEhlbHBlcnMmKTsKLSAgICB2b2lkIGFkZEluc3QoSW5zdCosIEND
YWxsSGVscGVyczo6TGFiZWwsIENDYWxsSGVscGVyczo6TGFiZWwpOworICAgIHZvaWQgYWRkSW5z
dChJbnN0KiwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwpOwog
CiAgICAgdm9pZCBkdW1wKENvZGUmLCBQcmludFN0cmVhbSYsIExpbmtCdWZmZXImLCBjb25zdCBj
aGFyKiBhaXJQcmVmaXgsIGNvbnN0IGNoYXIqIGFzbVByZWZpeCwgY29uc3QgU2NvcGVkTGFtYmRh
PHZvaWQoSW5zdCYpPiYgZG9Ub0VhY2hJbnN0KTsKIAogcHJpdmF0ZToKLSAgICBIYXNoTWFwPElu
c3QqLCBzdGQ6OnBhaXI8Q0NhbGxIZWxwZXJzOjpMYWJlbCwgQ0NhbGxIZWxwZXJzOjpMYWJlbD4+
IG1faW5zdFRvUmFuZ2U7CisgICAgSGFzaE1hcDxJbnN0Kiwgc3RkOjpwYWlyPE1hY3JvQXNzZW1i
bGVyOjpMYWJlbCwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsPj4gbV9pbnN0VG9SYW5nZTsKICAgICBW
ZWN0b3I8QmFzaWNCbG9jayo+IG1fYmxvY2tzOwotICAgIENDYWxsSGVscGVyczo6TGFiZWwgbV9l
bnRyeXBvaW50U3RhcnQ7Ci0gICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBtX2VudHJ5cG9pbnRFbmQ7
Ci0gICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBtX2xhdGVQYXRoU3RhcnQ7Ci0gICAgQ0NhbGxIZWxw
ZXJzOjpMYWJlbCBtX2xhdGVQYXRoRW5kOworICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX2Vu
dHJ5cG9pbnRTdGFydDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbV9lbnRyeXBvaW50RW5k
OworICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX2xhdGVQYXRoU3RhcnQ7CisgICAgTWFjcm9B
c3NlbWJsZXI6OkxhYmVsIG1fbGF0ZVBhdGhFbmQ7CiB9OwogCiB9IH0gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpCMzo6QWlyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckdlbmVyYXRpb25Db250ZXh0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckdl
bmVyYXRpb25Db250ZXh0LmgKaW5kZXggNjJmZWEwM2Q1ODMuLmMzNThhY2E0Yzk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0aW9uQ29udGV4dC5o
CkBAIC0yOCw3ICsyOCw3IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkFpckJh
c2ljQmxvY2suaCIKLSNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJNYWNyb0Fz
c2VtYmxlci5oIgogI2luY2x1ZGUgPHd0Zi9Cb3guaD4KICNpbmNsdWRlIDx3dGYvSW5kZXhNYXAu
aD4KICNpbmNsdWRlIDx3dGYvU2hhcmVkVGFzay5oPgpAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6
CiAgICAgdHlwZWRlZiBTaGFyZWRUYXNrPExhdGVQYXRoRnVuY3Rpb24+IExhdGVQYXRoOwogCiAg
ICAgVmVjdG9yPFJlZlB0cjxMYXRlUGF0aD4+IGxhdGVQYXRoczsKLSAgICBJbmRleE1hcDxCYXNp
Y0Jsb2NrKiwgQm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBibG9ja0xhYmVsczsKKyAgICBJbmRl
eE1hcDxCYXNpY0Jsb2NrKiwgQm94PE1hY3JvQXNzZW1ibGVyOjpMYWJlbD4+IGJsb2NrTGFiZWxz
OwogICAgIEJhc2ljQmxvY2sqIGN1cnJlbnRCbG9jayB7IG51bGxwdHIgfTsKICAgICB1bnNpZ25l
ZCBpbmRleEluQmxvY2sgeyBVSU5UX01BWCB9OwogICAgIENvZGUqIGNvZGUgeyBudWxscHRyIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCmluZGV4IGI1NzIzMzllODMwLi5k
Y2NhZWUyYjNjOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJ
bnN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgKQEAgLTI5
LDcgKzI5LDggQEAKIAogI2luY2x1ZGUgIkFpckFyZy5oIgogI2luY2x1ZGUgIkFpcktpbmQuaCIK
LSNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgor
I2luY2x1ZGUgPHd0Zi9TY29wZWRMYW1iZGEuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTE5
MSw3ICsxOTIsNyBAQCBzdHJ1Y3QgSW5zdCB7CiAgICAgLy8gR2VuZXJhdGUgc29tZSBjb2RlIGZv
ciB0aGlzIGluc3RydWN0aW9uLiBUaGlzIGlzLCBsaWtlLCBsaXRlcmFsbHkgb3VyIGJhY2tlbmQu
IElmIHRoaXMgaXMgdGhlCiAgICAgLy8gdGVybWluYWwsIGl0IHJldHVybnMgdGhlIGp1bXAgdGhh
dCBuZWVkcyB0byBiZSBsaW5rZWQgZm9yIHRoZSAidGhlbiIgY2FzZSwgd2l0aCB0aGUgImVsc2Ui
CiAgICAgLy8gY2FzZSBiZWluZyBmYWxsLXRocm91Z2guIFRoaXMgZnVuY3Rpb24gaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgb3Bjb2RlX2dlbmVyYXRvci5yYi4KLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXAg
Z2VuZXJhdGUoQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKTsKKyAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBnZW5lcmF0ZShDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYp
OwogCiAgICAgLy8gSWYgc291cmNlIGFyZ3VtZW50cyBiZW5lZml0cyBmcm9tIGJlaW5nIGFsaWFz
ZWQgdG8gYSBkZXN0aW5hdGlvbiBhcmd1bWVudCwKICAgICAvLyB0aGlzIHJldHVybiB0aGUgaW5k
ZXggb2YgdGhlIGRlc3RpbmF0aW9uIGFyZ3VtZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJQcmludFNwZWNpYWwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJQcmludFNwZWNpYWwuY3BwCmluZGV4IDFjN2M2YjZmOTZmLi4xOGQxNjhj
ZWU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQcmludFNw
ZWNpYWwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVj
aWFsLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2lmIEVOQUJMRShNQVNNX1BST0JFKQogCiAjaW5j
bHVkZSAiTWFjcm9Bc3NlbWJsZXJQcmludGVyLmgiCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgi
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApAQCAt
NjUsNyArNjYsNyBAQCB2b2lkIFByaW50U3BlY2lhbDo6cmVwb3J0VXNlZFJlZ2lzdGVycyhJbnN0
JiwgY29uc3QgUmVnaXN0ZXJTZXQmKQogewogfQogCi1DQ2FsbEhlbHBlcnM6Okp1bXAgUHJpbnRT
cGVjaWFsOjpnZW5lcmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmIGppdCwgR2VuZXJhdGlv
bkNvbnRleHQmKQorTWFjcm9Bc3NlbWJsZXI6Okp1bXAgUHJpbnRTcGVjaWFsOjpnZW5lcmF0ZShJ
bnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmIGppdCwgR2VuZXJhdGlvbkNvbnRleHQmKQogewogICAg
IHNpemVfdCBjdXJyZW50QXJnID0gMTsgLy8gU2tpcCB0aGUgUHJpbnRTcGVjaWFsIGFyZy4KICAg
ICBmb3IgKGF1dG8mIHRlcm0gOiAqbV9wcmludFJlY29yZExpc3QpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5oCmluZGV4IDFhOTYyNzgxMmRmLi5m
ZmQyZDdiZjY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQ
cmludFNwZWNpYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50
U3BlY2lhbC5oCkBAIC0zMyw2ICszMyw5IEBACiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJQcmlu
dGVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeworCitjbGFzcyBDQ2FsbEhlbHBlcnM7CisKIG5hbWVz
cGFjZSBQcmludGVyIHsKIAogdHlwZWRlZiBWZWN0b3I8QjM6OkFpcjo6QXJnPiBBcmdMaXN0OwpA
QCAtMTA1LDcgKzEwOCw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIGFkbWl0c1N0YWNrKEluc3Qm
LCB1bnNpZ25lZCBhcmdJbmRleCkgZmluYWw7CiAgICAgYm9vbCBhZG1pdHNFeHRlbmRlZE9mZnNl
dEFkZHIoSW5zdCYsIHVuc2lnbmVkKSBmaW5hbDsKICAgICB2b2lkIHJlcG9ydFVzZWRSZWdpc3Rl
cnMoSW5zdCYsIGNvbnN0IFJlZ2lzdGVyU2V0JikgZmluYWw7Ci0gICAgQ0NhbGxIZWxwZXJzOjpK
dW1wIGdlbmVyYXRlKEluc3QmLCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpIGZp
bmFsOworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGdlbmVyYXRlKEluc3QmLCBDQ2FsbEhlbHBl
cnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpIGZpbmFsOwogICAgIFJlZ2lzdGVyU2V0IGV4dHJhRWFy
bHlDbG9iYmVyZWRSZWdzKEluc3QmKSBmaW5hbDsKICAgICBSZWdpc3RlclNldCBleHRyYUNsb2Ji
ZXJlZFJlZ3MoSW5zdCYpIGZpbmFsOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpclNwZWNpYWwuaAppbmRleCBhNjU5ZDAzZDVhMi4uMDU2ZmQ1MTg5N2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BlY2lhbC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BlY2lhbC5oCkBAIC04Myw3ICs4Myw3IEBAIHB1Ymxp
YzoKICAgICAvLyBDdXJyZW50bHksIHdlIGRvICgxKSBmb3IgQjMgc3RhY2ttYXBzLgogICAgIHZp
cnR1YWwgdm9pZCByZXBvcnRVc2VkUmVnaXN0ZXJzKEluc3QmLCBjb25zdCBSZWdpc3RlclNldCYp
ID0gMDsKICAgICAKLSAgICB2aXJ0dWFsIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShJbnN0
JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKSA9IDA7CisgICAgdmlydHVhbCBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJh
dGlvbkNvbnRleHQmKSA9IDA7CiAKICAgICB2aXJ0dWFsIFJlZ2lzdGVyU2V0IGV4dHJhRWFybHlD
bG9iYmVyZWRSZWdzKEluc3QmKSA9IDA7CiAgICAgdmlydHVhbCBSZWdpc3RlclNldCBleHRyYUNs
b2JiZXJlZFJlZ3MoSW5zdCYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyVmFsaWRhdGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJWYWxpZGF0ZS5jcHAKaW5kZXggMTAwOTkyOWM3YWMuLmVlNzQwNGNhYzhjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkFpckNvZGUuaCIKICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkIzUHJvY2VkdXJlLmgiCisjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJi
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCmluZGV4
IGQ3MGNhNjNhOTE4Li4zMDY5ODIwYjQxZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgpAQCAtODA0LDYgKzgwNCw3IEBAIHdyaXRlSCgi
T3Bjb2RlVXRpbHMiKSB7CiB3cml0ZUgoIk9wY29kZUdlbmVyYXRlZCIpIHsKICAgICB8IG91dHAg
fAogICAgIG91dHAucHV0cyAiI2luY2x1ZGUgXCJBaXJJbnN0SW5saW5lcy5oXCIiCisgICAgb3V0
cC5wdXRzICIjaW5jbHVkZSBcIkNDYWxsSGVscGVycy5oXCIiCiAgICAgb3V0cC5wdXRzICIjaW5j
bHVkZSBcInd0Zi9QcmludFN0cmVhbS5oXCIiCiAgICAgb3V0cC5wdXRzICJuYW1lc3BhY2UgV1RG
IHsiCiAgICAgb3V0cC5wdXRzICJ1c2luZyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyOyIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXgg
MjgyZjE1YTQ1YmQuLjdkNzQxMmI1ZDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAxLTI5
ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CisKKyAgICAgICAgTW9zdCBv
ZiBCMyBhbmQgQWlyIGRvZXMgbm90IG5lZWQgdG8gaW5jbHVkZSBDQ2FsbEhlbHBlcnMuaAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2OTc1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2ltcGx5IGZpeGVz
IGEgbWlzc2luZyBpbmNsdWRlIHdoaWNoIHdhcyBoaWRkZW4gc28gZmFyIGluIGJvdGggcGxhY2Vz
IHRoYXQgU2luZ2xlUm9vdEdyYXBoLmggd2FzIGluY2x1ZGVkLgorCisgICAgICAgICogd3RmL1Np
bmdsZVJvb3RHcmFwaC5oOgorCiAyMDIwLTAxLTI4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBTaG91bGQgdXNlIGxpZ2h0IHRoZW1l
IHVubGVzcyB3ZWJzaXRlIGRlY2xhcmVzIHN1cHBvcnQgZm9yIGRhcmsgdGhlbWVzIGluIGNvbG9y
LXNjaGVtZXMgcHJvcGVydHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1NpbmdsZVJvb3RH
cmFwaC5oIGIvU291cmNlL1dURi93dGYvU2luZ2xlUm9vdEdyYXBoLmgKaW5kZXggMTMxMTA3ODA5
ZTAuLjRkM2I1ZWJiNTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9TaW5nbGVSb290R3Jh
cGguaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TaW5nbGVSb290R3JhcGguaApAQCAtMjksNiArMjks
NyBAQAogI2luY2x1ZGUgPHd0Zi9HcmFwaE5vZGVXb3JrbGlzdC5oPgogI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdURiB7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389214</attachid>
            <date>2020-01-29 18:23:14 -0800</date>
            <delta_ts>2020-02-03 19:07:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch206975</filename>
            <type>text/plain</type>
            <size>28286</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDE4OTExYTg4YzgyLi45MWM2NjZlOTE0MyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMjAtMDEtMjkgIFJvYmlu
IE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KKworICAgICAgICBNb3N0IG9mIEIzIGFu
ZCBBaXIgZG9lcyBub3QgbmVlZCB0byBpbmNsdWRlIENDYWxsSGVscGVycy5oCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY5NzUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGV5IG9ubHkgZG8gdG8gdXNl
IENDYWxsSGVscGVyczo6SnVtcCBvciBDQ2FsbEhlbHBlcnM6OkxhYmVsLgorICAgICAgICBCdXQg
Q0NhbGxIZWxwZXJzIGluaGVyaXQgdGhvc2UgZnJvbSBNYWNyb0Fzc2VtYmxlci4gQW5kIE1hY3Jv
QXNzZW1ibGVyLmggaXMgZHJhbWF0aWNhbGx5IGNoZWFwZXIgdG8gaW5jbHVkZSAoc2luY2UgQ0Nh
bGxIZWxwZXJzIGluY2x1ZGVzIEFzc2VtYmx5SGVscGVycyB3aGljaCBpbmNsdWRlcyBDb2RlQmxv
Y2suaCB3aGljaCBpbmNsdWRlcyByb3VnaGx5IHRoZSBlbnRpcmUgcnVudGltZSkuCisKKyAgICAg
ICAgKiBiMy9CM0NoZWNrU3BlY2lhbC5jcHA6CisgICAgICAgICogYjMvQjNDaGVja1NwZWNpYWwu
aDoKKyAgICAgICAgKiBiMy9CM0xvd2VyTWFjcm9zLmNwcDoKKyAgICAgICAgKiBiMy9CM1BhdGNo
cG9pbnRTcGVjaWFsLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlBhdGNocG9pbnRTcGVjaWFsOjpn
ZW5lcmF0ZSk6CisgICAgICAgICogYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oOgorICAgICAgICAq
IGIzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlN0
YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6c3VjY2Vzc29yTGFiZWxzIGNvbnN0KToKKyAgICAgICAg
KiBiMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oOgorICAgICAgICAqIGIzL2Fpci9BaXJB
bGxvY2F0ZVJlZ2lzdGVyc0FuZFN0YWNrQW5kR2VuZXJhdGVDb2RlLmg6CisgICAgICAgICogYjMv
YWlyL0FpckNDYWxsU3BlY2lhbC5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckNDYWxsU3BlY2lh
bC5oOgorICAgICAgICAqIGIzL2Fpci9BaXJDb2RlLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjplbnRyeXBvaW50TGFiZWwgY29u
c3QpOgorICAgICAgICAqIGIzL2Fpci9BaXJDdXN0b20uY3BwOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpDQ2FsbEN1c3RvbTo6Z2VuZXJhdGUpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpTaHVm
ZmxlQ3VzdG9tOjpnZW5lcmF0ZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Oldhc21Cb3VuZHND
aGVja0N1c3RvbTo6Z2VuZXJhdGUpOgorICAgICAgICAqIGIzL2Fpci9BaXJDdXN0b20uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OkFpcjo6UGF0Y2hDdXN0b206OmdlbmVyYXRlKToKKyAgICAgICAgKEpT
Qzo6QjM6OkFpcjo6RW50cnlTd2l0Y2hDdXN0b206OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9h
aXIvQWlyRGlzYXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6RGlzYXNzZW1i
bGVyOjphZGRJbnN0KToKKyAgICAgICAgKiBiMy9haXIvQWlyRGlzYXNzZW1ibGVyLmg6CisgICAg
ICAgICogYjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ckluc3QuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyUHJpbnRTcGVjaWFsLmNwcDoKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6UHJpbnRTcGVjaWFsOjpnZW5lcmF0ZSk6CisgICAgICAgICogYjMvYWly
L0FpclByaW50U3BlY2lhbC5oOgorICAgICAgICAqIGIzL2Fpci9BaXJTcGVjaWFsLmg6CisgICAg
ICAgICogYjMvYWlyL0FpclZhbGlkYXRlLmNwcDoKKyAgICAgICAgKiBiMy9haXIvb3Bjb2RlX2dl
bmVyYXRvci5yYjoKKwogMjAyMC0wMS0yOSAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBPcHRpb25zOjplbmFibGVTcGVjdHJlTWl0aWdhdGlv
bnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDaGVja1NwZWNpYWwuY3BwCmluZGV4IGNl
NjQ0NjYyNWVhLi4zZDEyY2IxYjFmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzQ2hlY2tTcGVjaWFsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
aGVja1NwZWNpYWwuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQWlySW5zdElubGlu
ZXMuaCIKICNpbmNsdWRlICJCM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oIgogI2luY2x1ZGUg
IkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDaGVja1NwZWNpYWwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNr
U3BlY2lhbC5oCmluZGV4IDA2NTZhZDU0YmYxLi5iMWFkMDUxNDI3NyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFsLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFsLmgKQEAgLTI3LDcgKzI3LDYgQEAKIAogI2lmIEVO
QUJMRShCM19KSVQpCiAKLSNpbmNsdWRlICJBaXJBcmcuaCIKICNpbmNsdWRlICJBaXJLaW5kLmgi
CiAjaW5jbHVkZSAiQjNTdGFja21hcFNwZWNpYWwuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgpAQCAtMTI5LDcgKzEyOCw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBOT1RFOiB0aGUgZ2VuZXJh
dGUgbWV0aG9kIHdpbGwgZ2VuZXJhdGUgdGhlIGhpZGRlbiBicmFuY2ggYW5kIHRoZW4gcmVnaXN0
ZXIgYSBMYXRlUGF0aCB0aGF0CiAgICAgLy8gZ2VuZXJhdGVzIHRoZSBzdGFja21hcC4gU3VwZXIg
Y3JhenkgZHVkZSEKIAotICAgIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShBaXI6Okluc3Qm
LCBDQ2FsbEhlbHBlcnMmLCBBaXI6OkdlbmVyYXRpb25Db250ZXh0JikgZmluYWw7CisgICAgTWFj
cm9Bc3NlbWJsZXI6Okp1bXAgZ2VuZXJhdGUoQWlyOjpJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgQWly
OjpHZW5lcmF0aW9uQ29udGV4dCYpIGZpbmFsOwogCiAgICAgdm9pZCBkdW1wSW1wbChQcmludFN0
cmVhbSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgZGVlcER1bXBJbXBsKFByaW50U3RyZWFtJikg
Y29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21t
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9uLmNwcAppbmRleCAwMDk2
ZTlhZmM5Zi4uMmY5Yjc2MjM4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0NvbW1vbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9uLmNw
cApAQCAtMjksNyArMjksNiBAQAogI2lmIEVOQUJMRShCM19KSVQpCiAKICNpbmNsdWRlICJERkdD
b21tb24uaCIKLSNpbmNsdWRlICJGVExTdGF0ZS5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNp
bmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIApAQCAtMzgsNyArMzcsNyBAQCBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIEIzIHsKIGJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGlsYXRpb25Nb2RlIG1v
ZGUpCiB7CiAjaWYgRU5BQkxFKEZUTF9KSVQpCi0gICAgcmV0dXJuIEZUTDo6dmVyYm9zZUNvbXBp
bGF0aW9uRW5hYmxlZCgpIHx8IEZUTDo6c2hvdWxkRHVtcERpc2Fzc2VtYmx5KCkgfHwgc2hvdWxk
RHVtcElSQXRFYWNoUGhhc2UobW9kZSk7CisgICAgcmV0dXJuIERGRzo6dmVyYm9zZUNvbXBpbGF0
aW9uRW5hYmxlZChERkc6OkZUTE1vZGUpIHx8IERGRzo6c2hvdWxkRHVtcERpc2Fzc2VtYmx5KERG
Rzo6RlRMTW9kZSkgfHwgc2hvdWxkRHVtcElSQXRFYWNoUGhhc2UobW9kZSk7CiAjZWxzZQogICAg
IHJldHVybiBzaG91bGREdW1wSVJBdEVhY2hQaGFzZShtb2RlKTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWxpbWluYXRlQ29tbW9uU3ViZXhwcmVzc2lv
bnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWxpbWluYXRlQ29tbW9uU3ViZXhw
cmVzc2lvbnMuY3BwCmluZGV4IGI2ZmNkY2E2ZGZmLi4yZGU5OTYwZjVjYSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWxpbWluYXRlQ29tbW9uU3ViZXhwcmVzc2lvbnMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4
cHJlc3Npb25zLmNwcApAQCAtNDMsNyArNDMsNiBAQAogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiQjNWYXJpYWJsZS5oIgogI2luY2x1ZGUgIkIzVmFyaWFibGVWYWx1ZS5o
IgotI2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNNZW1vcnlWYWx1ZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzTWVtb3J5VmFsdWUuaAppbmRleCBiOTk4YWVkYzkzZi4uZjYx
ZGNmZDI3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01lbW9yeVZh
bHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWVtb3J5VmFsdWUuaApAQCAt
MjcsNyArMjcsNiBAQAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAotI2luY2x1ZGUgIkFpckFyZy5o
IgogI2luY2x1ZGUgIkIzQmFuay5oIgogI2luY2x1ZGUgIkIzSGVhcFJhbmdlLmgiCiAjaW5jbHVk
ZSAiQjNWYWx1ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0
Y2hwb2ludFNwZWNpYWwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2lu
dFNwZWNpYWwuY3BwCmluZGV4IDk0ZmEwZjI4ZTA4Li45NGY1OGEzNzNlOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmNwcApAQCAtMTQ2LDcg
KzE0Niw3IEBAIGJvb2wgUGF0Y2hwb2ludFNwZWNpYWw6OmFkbWl0c0V4dGVuZGVkT2Zmc2V0QWRk
cihJbnN0JiBpbnN0LCB1bnNpZ25lZCBhcmdJbmRleCkKICAgICByZXR1cm4gYWRtaXRzU3RhY2so
aW5zdCwgYXJnSW5kZXgpOwogfQogCi1DQ2FsbEhlbHBlcnM6Okp1bXAgUGF0Y2hwb2ludFNwZWNp
YWw6OmdlbmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVycyYgaml0LCBBaXI6OkdlbmVyYXRp
b25Db250ZXh0JiBjb250ZXh0KQorTWFjcm9Bc3NlbWJsZXI6Okp1bXAgUGF0Y2hwb2ludFNwZWNp
YWw6OmdlbmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVycyYgaml0LCBBaXI6OkdlbmVyYXRp
b25Db250ZXh0JiBjb250ZXh0KQogewogICAgIGNvbnN0IFByb2NlZHVyZSYgcHJvY2VkdXJlID0g
Y29kZSgpLnByb2MoKTsKICAgICBQYXRjaHBvaW50VmFsdWUqIHZhbHVlID0gaW5zdC5vcmlnaW4t
PmFzPFBhdGNocG9pbnRWYWx1ZT4oKTsKQEAgLTE3MCw3ICsxNzAsNyBAQCBDQ2FsbEhlbHBlcnM6
Okp1bXAgUGF0Y2hwb2ludFNwZWNpYWw6OmdlbmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVy
cyYgaml0LCBBaQogICAgIAogICAgIHZhbHVlLT5tX2dlbmVyYXRvci0+cnVuKGppdCwgcGFyYW1z
KTsKIAotICAgIHJldHVybiBDQ2FsbEhlbHBlcnM6Okp1bXAoKTsKKyAgICByZXR1cm4gTWFjcm9B
c3NlbWJsZXI6Okp1bXAoKTsKIH0KIAogYm9vbCBQYXRjaHBvaW50U3BlY2lhbDo6aXNUZXJtaW5h
bChJbnN0JiBpbnN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0
Y2hwb2ludFNwZWNpYWwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRT
cGVjaWFsLmgKaW5kZXggZWVmZTQwMTk1NmIuLjdjYzc2YWI5MzY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmgKQEAgLTU1LDcgKzU1LDcgQEAg
cHJvdGVjdGVkOgogICAgIC8vIE5PVEU6IHRoZSBnZW5lcmF0ZSBtZXRob2Qgd2lsbCBnZW5lcmF0
ZSB0aGUgaGlkZGVuIGJyYW5jaCBhbmQgdGhlbiByZWdpc3RlciBhIExhdGVQYXRoIHRoYXQKICAg
ICAvLyBnZW5lcmF0ZXMgdGhlIHN0YWNrbWFwLiBTdXBlciBjcmF6eSBkdWRlIQogCi0gICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wIGdlbmVyYXRlKEFpcjo6SW5zdCYsIENDYWxsSGVscGVycyYsIEFpcjo6
R2VuZXJhdGlvbkNvbnRleHQmKSBmaW5hbDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBnZW5l
cmF0ZShBaXI6Okluc3QmLCBDQ2FsbEhlbHBlcnMmLCBBaXI6OkdlbmVyYXRpb25Db250ZXh0Jikg
ZmluYWw7CiAgICAgCiAgICAgYm9vbCBpc1Rlcm1pbmFsKEFpcjo6SW5zdCYpIGZpbmFsOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25Q
YXJhbXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zLmNwcAppbmRleCAzNDM1YjBlNjNhMC4uOTJjZDgwZWQ3YzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNw
cApAQCAtNTksMTIgKzU5LDEyIEBAIFJlZ2lzdGVyU2V0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFt
czo6dW5hdmFpbGFibGVSZWdpc3RlcnMoKSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LVZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFt
czo6c3VjY2Vzc29yTGFiZWxzKCkgY29uc3QKK1ZlY3RvcjxCb3g8TWFjcm9Bc3NlbWJsZXI6Okxh
YmVsPj4gU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjpzdWNjZXNzb3JMYWJlbHMoKSBjb25zdAog
ewogICAgIFJFTEVBU0VfQVNTRVJUKG1fY29udGV4dC5pbmRleEluQmxvY2sgPT0gbV9jb250ZXh0
LmN1cnJlbnRCbG9jay0+c2l6ZSgpIC0gMSk7CiAgICAgUkVMRUFTRV9BU1NFUlQobV92YWx1ZS0+
ZWZmZWN0cygpLnRlcm1pbmFsKTsKICAgICAKLSAgICBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6
TGFiZWw+PiByZXN1bHQobV9jb250ZXh0LmN1cnJlbnRCbG9jay0+bnVtU3VjY2Vzc29ycygpKTsK
KyAgICBWZWN0b3I8Qm94PE1hY3JvQXNzZW1ibGVyOjpMYWJlbD4+IHJlc3VsdChtX2NvbnRleHQu
Y3VycmVudEJsb2NrLT5udW1TdWNjZXNzb3JzKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IG1f
Y29udGV4dC5jdXJyZW50QmxvY2stPm51bVN1Y2Nlc3NvcnMoKTsgaS0tOykKICAgICAgICAgcmVz
dWx0W2ldID0gbV9jb250ZXh0LmJsb2NrTGFiZWxzW21fY29udGV4dC5jdXJyZW50QmxvY2stPnN1
Y2Nlc3NvckJsb2NrKGkpXTsKICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuaAppbmRleCAwZjdk
NzJkOWJiMC4uYTM2MjU0ODhlYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oCkBAIC0yOSwxMSArMjksMTUgQEAKIAog
I2luY2x1ZGUgIkFpckdlbmVyYXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiQjNWYWx1ZVJlcC5o
IgotI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgi
CiAjaW5jbHVkZSAiUmVnaXN0ZXJTZXQuaCIKICNpbmNsdWRlIDx3dGYvQm94Lmg+CiAKLW5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIENDYWxs
SGVscGVyczsKKworbmFtZXNwYWNlIEIzIHsKIAogY2xhc3MgQ2hlY2tTcGVjaWFsOwogY2xhc3Mg
UGF0Y2hwb2ludFNwZWNpYWw7CkBAIC04OSw3ICs5Myw3IEBAIHB1YmxpYzoKICAgICAKICAgICAv
LyBUaGlzIGlzIGNvbXB1dGVkIGxhemlseSwgc28gaXQgd29uJ3Qgd29yayBpZiB5b3UgY2FwdHVy
ZSBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMgYnkgdmFsdWUuCiAgICAgLy8gVGhlc2UgbGFiZWxz
IHdpbGwgZ2V0IHBvcHVsYXRlZCBiZWZvcmUgYW55IGxhdGUgcGF0aHMgb3IgbGluayB0YXNrcyBl
eGVjdXRlLgotICAgIEpTX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpM
YWJlbD4+IHN1Y2Nlc3NvckxhYmVscygpIGNvbnN0OworICAgIEpTX0VYUE9SVF9QUklWQVRFIFZl
Y3RvcjxCb3g8TWFjcm9Bc3NlbWJsZXI6OkxhYmVsPj4gc3VjY2Vzc29yTGFiZWxzKCkgY29uc3Q7
CiAgICAgCiAgICAgLy8gVGhpcyBpcyBjb21wdXRlZCBsYXppbHksIHNvIGl0IHdvbid0IHdvcmsg
aWYgeW91IGNhcHR1cmUgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zIGJ5IHZhbHVlLgogICAgIC8v
IFJldHVybnMgdHJ1ZSBpZiB0aGUgc3VjY2Vzc29yIGF0IHRoZSBnaXZlbiBpbmRleCBpcyBnb2lu
ZyB0byBiZSBlbWl0dGVkIHJpZ2h0IGFmdGVyIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzU3RhY2ttYXBWYWx1ZS5oCmluZGV4IDcwYzQ5Yzg2MTA5Li5kZTBkYzk2M2ZlOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBWYWx1ZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwVmFsdWUuaApAQCAtMzAsMTEgKzMwLDE0
IEBACiAjaW5jbHVkZSAiQjNDb25zdHJhaW5lZFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZS5o
IgogI2luY2x1ZGUgIkIzVmFsdWVSZXAuaCIKLSNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNp
bmNsdWRlICJSZWdpc3RlclNldC5oIgogI2luY2x1ZGUgPHd0Zi9TaGFyZWRUYXNrLmg+CiAKLW5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEND
YWxsSGVscGVyczsKKworbmFtZXNwYWNlIEIzIHsKIAogY2xhc3MgU3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFs
bG9jYXRlUmVnaXN0ZXJzQW5kU3RhY2tBbmRHZW5lcmF0ZUNvZGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVSZWdpc3RlcnNBbmRTdGFja0FuZEdlbmVyYXRlQ29k
ZS5oCmluZGV4IDgxYjBhYTBmN2M0Li42NmZmY2NjNTgwYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVJlZ2lzdGVyc0FuZFN0YWNrQW5kR2VuZXJh
dGVDb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVJl
Z2lzdGVyc0FuZFN0YWNrQW5kR2VuZXJhdGVDb2RlLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2lu
Y2x1ZGUgIkFpckxpdmVuZXNzLmgiCiAjaW5jbHVkZSAiQWlyVG1wTWFwLmgiCisjaW5jbHVkZSA8
d3RmL05vbm1vdmFibGUuaD4KIAogbmFtZXNwYWNlIEpTQyB7IAogCkBAIC04Nyw4ICs4OCw4IEBA
IHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFVuaWZpZWRUbXBMaXZlbmVzcz4gbV9saXZl
bmVzczsKIAogICAgIHN0cnVjdCBQYXRjaFNwaWxsRGF0YSB7Ci0gICAgICAgIENDYWxsSGVscGVy
czo6SnVtcCBqdW1wOwotICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGNvbnRpbnVlTGFiZWw7
CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGp1bXA7CisgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpMYWJlbCBjb250aW51ZUxhYmVsOwogICAgICAgICBIYXNoTWFwPFRtcCwgQXJnKj4gZGVm
ZFRtcHM7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJDQ2FsbFNwZWNpYWwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJD
Q2FsbFNwZWNpYWwuY3BwCmluZGV4IDUwYTUwOTQ2Yjc5Li42MTkxOTViYjcwZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFsLmNwcApAQCAtMjgs
NiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVy
cy5oIgorCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAK
IENDYWxsU3BlY2lhbDo6Q0NhbGxTcGVjaWFsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckNDYWxsU3BlY2lhbC5oCmluZGV4IGM1MWEzNzM5MjkzLi45MTNmMTA2YThhMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNDYWxsU3BlY2lhbC5oCkBA
IC01Nyw3ICs1Nyw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIGFkbWl0c1N0YWNrKEluc3QmLCB1
bnNpZ25lZCBhcmdJbmRleCkgZmluYWw7CiAgICAgYm9vbCBhZG1pdHNFeHRlbmRlZE9mZnNldEFk
ZHIoSW5zdCYsIHVuc2lnbmVkKSBmaW5hbDsKICAgICB2b2lkIHJlcG9ydFVzZWRSZWdpc3RlcnMo
SW5zdCYsIGNvbnN0IFJlZ2lzdGVyU2V0JikgZmluYWw7Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1w
IGdlbmVyYXRlKEluc3QmLCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpIGZpbmFs
OworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGdlbmVyYXRlKEluc3QmLCBDQ2FsbEhlbHBlcnMm
LCBHZW5lcmF0aW9uQ29udGV4dCYpIGZpbmFsOwogICAgIFJlZ2lzdGVyU2V0IGV4dHJhRWFybHlD
bG9iYmVyZWRSZWdzKEluc3QmKSBmaW5hbDsKICAgICBSZWdpc3RlclNldCBleHRyYUNsb2JiZXJl
ZFJlZ3MoSW5zdCYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckNvZGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2Rl
LmNwcAppbmRleCBiYjdiNzhmZDQ2My4uYjE4OTc2NDIwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJDb2RlLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkIzQmFz
aWNCbG9ja1V0aWxzLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1N0
YWNrU2xvdC5oIgorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgPHd0Zi9MaXN0
RHVtcC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJDb2RlLmgKaW5kZXggZmJlZWE5OTQ4OTMuLmNmYjBlN2QyNWQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaApAQCAtMzQsMTMgKzM0LDE5IEBACiAjaW5j
bHVkZSAiQWlyU3RhY2tTbG90LmgiCiAjaW5jbHVkZSAiQWlyVG1wLmgiCiAjaW5jbHVkZSAiQjNT
cGFyc2VDb2xsZWN0aW9uLmgiCi0jaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAi
R1BSSW5mby5oIgorI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiUmVnaXN0
ZXJBdE9mZnNldExpc3QuaCIKICNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgorI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0luZGV4TWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L1dlYWtSYW5kb20uaD4KIAotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CituYW1lc3Bh
Y2UgSlNDIHsKKworY2xhc3MgQ0NhbGxIZWxwZXJzOworCituYW1lc3BhY2UgQjMgewogCiBjbGFz
cyBQcm9jZWR1cmU7CiAKQEAgLTE5NCw3ICsyMDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKG1fZW50cnlwb2ludHMuc2l6ZSgpID09IG1fcHJvbG9ndWVHZW5lcmF0b3JzLnNp
emUoKSk7CiAgICAgfQogICAgIAotICAgIENDYWxsSGVscGVyczo6TGFiZWwgZW50cnlwb2ludExh
YmVsKHVuc2lnbmVkIGluZGV4KSBjb25zdAorICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBlbnRy
eXBvaW50TGFiZWwodW5zaWduZWQgaW5kZXgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4g
bV9lbnRyeXBvaW50TGFiZWxzW2luZGV4XTsKICAgICB9CkBAIC0zODEsNyArMzg3LDcgQEAgcHJp
dmF0ZToKICAgICBSZWdpc3RlclNldCBtX2NhbGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgU3RhY2tT
bG90KiBtX2NhbGxlZVNhdmVTdGFja1Nsb3QgeyBudWxscHRyIH07CiAgICAgVmVjdG9yPEZyZXF1
ZW50ZWRCbG9jaz4gbV9lbnRyeXBvaW50czsgLy8gVGhpcyBpcyBlbXB0eSB1bnRpbCBhZnRlciBs
b3dlckVudHJ5U3dpdGNoKCkuCi0gICAgVmVjdG9yPENDYWxsSGVscGVyczo6TGFiZWw+IG1fZW50
cnlwb2ludExhYmVsczsgLy8gVGhpcyBpcyBlbXB0eSB1bnRpbCBjb2RlIGdlbmVyYXRpb24uCisg
ICAgVmVjdG9yPE1hY3JvQXNzZW1ibGVyOjpMYWJlbD4gbV9lbnRyeXBvaW50TGFiZWxzOyAvLyBU
aGlzIGlzIGVtcHR5IHVudGlsIGNvZGUgZ2VuZXJhdGlvbi4KICAgICBWZWN0b3I8UmVmPFByb2xv
Z3VlR2VuZXJhdG9yPiwgMT4gbV9wcm9sb2d1ZUdlbmVyYXRvcnM7CiAgICAgUmVmUHRyPFdhc21C
b3VuZHNDaGVja0dlbmVyYXRvcj4gbV93YXNtQm91bmRzQ2hlY2tHZW5lcmF0b3I7CiAgICAgY29u
c3QgY2hhciogbV9sYXN0UGhhc2VOYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJDdXN0b20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJDdXN0b20uY3BwCmluZGV4IDQ5Y2E1NGMyNGVlLi4xM2JjZDI2YzM2YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIkFpckluc3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNDQ2FsbFZhbHVlLmgiCiAjaW5j
bHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCkBAIC05NiwxMSAr
OTcsMTEgQEAgYm9vbCBDQ2FsbEN1c3RvbTo6aXNWYWxpZEZvcm0oSW5zdCYgaW5zdCkKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotQ0NhbGxIZWxwZXJzOjpKdW1wIENDYWxsQ3VzdG9tOjpnZW5lcmF0
ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpCitNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBDQ2FsbEN1c3RvbTo6Z2VuZXJhdGUoSW5zdCYgaW5zdCwgQ0NhbGxIZWxw
ZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKQogewogICAgIGRhdGFMb2coIkZBVEFMOiBVbmxvd2Vy
ZWQgQyBjYWxsOiAiLCBpbnN0LCAiXG4iKTsKICAgICBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0o
KTsKLSAgICByZXR1cm4gQ0NhbGxIZWxwZXJzOjpKdW1wKCk7CisgICAgcmV0dXJuIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wKCk7CiB9CiAKIGJvb2wgU2h1ZmZsZUN1c3RvbTo6aXNWYWxpZEZvcm0oSW5z
dCYgaW5zdCkKQEAgLTE3MSwxMSArMTcyLDExIEBAIGJvb2wgU2h1ZmZsZUN1c3RvbTo6aXNWYWxp
ZEZvcm0oSW5zdCYgaW5zdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotQ0NhbGxIZWxwZXJzOjpK
dW1wIFNodWZmbGVDdXN0b206OmdlbmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVycyYsIEdl
bmVyYXRpb25Db250ZXh0JikKK01hY3JvQXNzZW1ibGVyOjpKdW1wIFNodWZmbGVDdXN0b206Omdl
bmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250ZXh0JikKIHsK
ICAgICBkYXRhTG9nKCJGQVRBTDogVW5sb3dlcmVkIHNodWZmbGU6ICIsIGluc3QsICJcbiIpOwog
ICAgIFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpOwotICAgIHJldHVybiBDQ2FsbEhlbHBlcnM6
Okp1bXAoKTsKKyAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6Okp1bXAoKTsKIH0KIAogYm9vbCBX
YXNtQm91bmRzQ2hlY2tDdXN0b206OmlzVmFsaWRGb3JtKEluc3QmIGluc3QpCkBAIC0xODgsNiAr
MTg5LDI4IEBAIGJvb2wgV2FzbUJvdW5kc0NoZWNrQ3VzdG9tOjppc1ZhbGlkRm9ybShJbnN0JiBp
bnN0KQogICAgIHJldHVybiBpbnN0LmFyZ3NbMV0uaXNSZWcoKSB8fCBpbnN0LmFyZ3NbMV0uaXNU
bXAoKSB8fCBpbnN0LmFyZ3NbMV0uaXNTb21lSW1tKCk7CiB9CiAKK01hY3JvQXNzZW1ibGVyOjpK
dW1wIFdhc21Cb3VuZHNDaGVja0N1c3RvbTo6Z2VuZXJhdGUoSW5zdCYgaW5zdCwgQ0NhbGxIZWxw
ZXJzJiBqaXQsIEdlbmVyYXRpb25Db250ZXh0JiBjb250ZXh0KQoreworICAgIFdhc21Cb3VuZHND
aGVja1ZhbHVlKiB2YWx1ZSA9IGluc3Qub3JpZ2luLT5hczxXYXNtQm91bmRzQ2hlY2tWYWx1ZT4o
KTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBvdXRPZkJvdW5kcyA9IEluc3QoQWlyOjpCcmFu
Y2g2NCwgdmFsdWUsIEFyZzo6cmVsQ29uZChNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsKSwg
aW5zdC5hcmdzWzBdLCBpbnN0LmFyZ3NbMV0pLmdlbmVyYXRlKGppdCwgY29udGV4dCk7CisKKyAg
ICBjb250ZXh0LmxhdGVQYXRocy5hcHBlbmQoY3JlYXRlU2hhcmVkVGFzazxHZW5lcmF0aW9uQ29u
dGV4dDo6TGF0ZVBhdGhGdW5jdGlvbj4oCisgICAgICAgIFtvdXRPZkJvdW5kcywgdmFsdWVdIChD
Q2FsbEhlbHBlcnMmIGppdCwgQWlyOjpHZW5lcmF0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAg
ICAgICAgICAgb3V0T2ZCb3VuZHMubGluaygmaml0KTsKKyAgICAgICAgICAgIHN3aXRjaCAodmFs
dWUtPmJvdW5kc1R5cGUoKSkgeworICAgICAgICAgICAgY2FzZSBXYXNtQm91bmRzQ2hlY2tWYWx1
ZTo6VHlwZTo6UGlubmVkOgorICAgICAgICAgICAgICAgIGNvbnRleHQuY29kZS0+d2FzbUJvdW5k
c0NoZWNrR2VuZXJhdG9yKCktPnJ1bihqaXQsIHZhbHVlLT5ib3VuZHMoKS5waW5uZWRTaXplKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBXYXNtQm91bmRzQ2hl
Y2tWYWx1ZTo6VHlwZTo6TWF4aW11bToKKyAgICAgICAgICAgICAgICBjb250ZXh0LmNvZGUtPndh
c21Cb3VuZHNDaGVja0dlbmVyYXRvcigpLT5ydW4oaml0LCBJbnZhbGlkR1BSUmVnKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSkpOworCisgICAgLy8g
V2Ugc2FpZCB3ZSB3ZXJlIG5vdCBhIHRlcm1pbmFsLgorICAgIHJldHVybiBNYWNyb0Fzc2VtYmxl
cjo6SnVtcCgpOworfQogCiB9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1c3RvbS5oCmluZGV4IGU5OGFmZWE4Njc2Li5hZDVm
MDVmYmJlYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0
b20uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1c3RvbS5oCkBAIC0z
Myw2ICszMyw3IEBACiAjaW5jbHVkZSAiQWlyU3BlY2lhbC5oIgogI2luY2x1ZGUgIkIzVmFsdWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5oIgorI2luY2x1ZGUg
Ik1hY3JvQXNzZW1ibGVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1l
c3BhY2UgQWlyIHsKIApAQCAtMTA4LDcgKzEwOSw3IEBAIHN0cnVjdCBQYXRjaEN1c3RvbSB7CiAg
ICAgICAgIHJldHVybiBpbnN0LmFyZ3NbMF0uc3BlY2lhbCgpLT5oYXNOb25BcmdOb25Db250cm9s
RWZmZWN0cyhpbnN0KTsKICAgICB9CiAKLSAgICBzdGF0aWMgQ0NhbGxIZWxwZXJzOjpKdW1wIGdl
bmVyYXRlKAorICAgIHN0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBnZW5lcmF0ZSgKICAgICAg
ICAgSW5zdCYgaW5zdCwgQ0NhbGxIZWxwZXJzJiBqaXQsIEdlbmVyYXRpb25Db250ZXh0JiBjb250
ZXh0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGluc3QuYXJnc1swXS5zcGVjaWFsKCktPmdlbmVy
YXRlKGluc3QsIGppdCwgY29udGV4dCk7CkBAIC0xODEsNyArMTgyLDcgQEAgc3RydWN0IENDYWxs
Q3VzdG9tIDogcHVibGljIENvbW1vbkN1c3RvbUJhc2U8Q0NhbGxDdXN0b20+IHsKICAgICB9CiAK
ICAgICAvLyBUaGlzIGp1c3QgY3Jhc2hlcywgc2luY2Ugd2UgZXhwZWN0IEMgY2FsbHMgdG8gYmUg
bG93ZXJlZCBiZWZvcmUgZ2VuZXJhdGlvbi4KLSAgICBzdGF0aWMgQ0NhbGxIZWxwZXJzOjpKdW1w
IGdlbmVyYXRlKEluc3QmLCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpOworICAg
IHN0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJz
JiwgR2VuZXJhdGlvbkNvbnRleHQmKTsKIH07CiAKIHN0cnVjdCBDb2xkQ0NhbGxDdXN0b20gOiBD
Q2FsbEN1c3RvbSB7CkBAIC0yNDgsNyArMjQ5LDcgQEAgc3RydWN0IFNodWZmbGVDdXN0b20gOiBw
dWJsaWMgQ29tbW9uQ3VzdG9tQmFzZTxTaHVmZmxlQ3VzdG9tPiB7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKLSAgICBzdGF0aWMgQ0NhbGxIZWxwZXJzOjpKdW1wIGdlbmVyYXRlKElu
c3QmLCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpOworICAgIHN0YXRpYyBNYWNy
b0Fzc2VtYmxlcjo6SnVtcCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlv
bkNvbnRleHQmKTsKIH07CiAKIHN0cnVjdCBFbnRyeVN3aXRjaEN1c3RvbSA6IHB1YmxpYyBDb21t
b25DdXN0b21CYXNlPEVudHJ5U3dpdGNoQ3VzdG9tPiB7CkBAIC0yODgsMTIgKzI4OSwxMiBAQCBz
dHJ1Y3QgRW50cnlTd2l0Y2hDdXN0b20gOiBwdWJsaWMgQ29tbW9uQ3VzdG9tQmFzZTxFbnRyeVN3
aXRjaEN1c3RvbT4gewogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgc3RhdGlj
IENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJh
dGlvbkNvbnRleHQmKQorICAgIHN0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBnZW5lcmF0ZShJ
bnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKQogICAgIHsKICAgICAgICAg
Ly8gVGhpcyBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCBiZWNhdXNlIHdlIHNob3VsZCBoYXZlIGxv
d2VyZWQgRW50cnlTd2l0Y2ggYmVmb3JlCiAgICAgICAgIC8vIGdlbmVyYXRpb24uCiAgICAgICAg
IFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpOwotICAgICAgICByZXR1cm4gQ0NhbGxIZWxwZXJz
OjpKdW1wKCk7CisgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6SnVtcCgpOwogICAgIH0K
IH07CiAKQEAgLTMzMywyOCArMzM0LDcgQEAgc3RydWN0IFdhc21Cb3VuZHNDaGVja0N1c3RvbSA6
IHB1YmxpYyBDb21tb25DdXN0b21CYXNlPFdhc21Cb3VuZHNDaGVja0N1c3RvbT4gewogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBzdGF0aWMgQ0NhbGxIZWxwZXJzOjpKdW1wIGdl
bmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVycyYgaml0LCBHZW5lcmF0aW9uQ29udGV4dCYg
Y29udGV4dCkKLSAgICB7Ci0gICAgICAgIFdhc21Cb3VuZHNDaGVja1ZhbHVlKiB2YWx1ZSA9IGlu
c3Qub3JpZ2luLT5hczxXYXNtQm91bmRzQ2hlY2tWYWx1ZT4oKTsKLSAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpKdW1wIG91dE9mQm91bmRzID0gSW5zdChBaXI6OkJyYW5jaDY0LCB2YWx1ZSwgQXJnOjpy
ZWxDb25kKENDYWxsSGVscGVyczo6QWJvdmVPckVxdWFsKSwgaW5zdC5hcmdzWzBdLCBpbnN0LmFy
Z3NbMV0pLmdlbmVyYXRlKGppdCwgY29udGV4dCk7Ci0KLSAgICAgICAgY29udGV4dC5sYXRlUGF0
aHMuYXBwZW5kKGNyZWF0ZVNoYXJlZFRhc2s8R2VuZXJhdGlvbkNvbnRleHQ6OkxhdGVQYXRoRnVu
Y3Rpb24+KAotICAgICAgICAgICAgW291dE9mQm91bmRzLCB2YWx1ZV0gKENDYWxsSGVscGVycyYg
aml0LCBBaXI6OkdlbmVyYXRpb25Db250ZXh0JiBjb250ZXh0KSB7Ci0gICAgICAgICAgICAgICAg
b3V0T2ZCb3VuZHMubGluaygmaml0KTsKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLT5i
b3VuZHNUeXBlKCkpIHsKLSAgICAgICAgICAgICAgICBjYXNlIFdhc21Cb3VuZHNDaGVja1ZhbHVl
OjpUeXBlOjpQaW5uZWQ6Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRleHQuY29kZS0+d2FzbUJv
dW5kc0NoZWNrR2VuZXJhdG9yKCktPnJ1bihqaXQsIHZhbHVlLT5ib3VuZHMoKS5waW5uZWRTaXpl
KTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICBjYXNlIFdh
c21Cb3VuZHNDaGVja1ZhbHVlOjpUeXBlOjpNYXhpbXVtOgotICAgICAgICAgICAgICAgICAgICBj
b250ZXh0LmNvZGUtPndhc21Cb3VuZHNDaGVja0dlbmVyYXRvcigpLT5ydW4oaml0LCBJbnZhbGlk
R1BSUmVnKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfSkpOwotCi0gICAgICAgIC8vIFdlIHNhaWQgd2Ugd2VyZSBub3QgYSB0ZXJt
aW5hbC4KLSAgICAgICAgcmV0dXJuIENDYWxsSGVscGVyczo6SnVtcCgpOwotICAgIH0KKyAgICBz
dGF0aWMgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZ2VuZXJhdGUoSW5zdCYgaW5zdCwgQ0NhbGxIZWxw
ZXJzJiBqaXQsIEdlbmVyYXRpb25Db250ZXh0JiBjb250ZXh0KTsKIH07CiAKIH0gfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkIzOjpBaXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyRGlzYXNzZW1ibGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyRGlzYXNzZW1ibGVyLmNwcAppbmRleCBiNjQxZDdhZTA0YS4uMjQyZmQ5NGFhNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRGlzYXNzZW1ibGVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckRpc2Fzc2VtYmxlci5jcHAKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBaXJDb2RlLmgiCiAjaW5jbHVkZSAiQWlySW5zdC5o
IgogI2luY2x1ZGUgIkIzVmFsdWUuaCIKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNs
dWRlICJEaXNhc3NlbWJsZXIuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKQEAgLTYzLDcg
KzY0LDcgQEAgdm9pZCBEaXNhc3NlbWJsZXI6OnN0YXJ0QmxvY2soQmFzaWNCbG9jayogYmxvY2ss
IENDYWxsSGVscGVycyYgaml0KQogICAgIG1fYmxvY2tzLmFwcGVuZChibG9jayk7CiB9CiAKLXZv
aWQgRGlzYXNzZW1ibGVyOjphZGRJbnN0KEluc3QqIGluc3QsIENDYWxsSGVscGVyczo6TGFiZWwg
c3RhcnQsIENDYWxsSGVscGVyczo6TGFiZWwgZW5kKQordm9pZCBEaXNhc3NlbWJsZXI6OmFkZElu
c3QoSW5zdCogaW5zdCwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHN0YXJ0LCBNYWNyb0Fzc2VtYmxl
cjo6TGFiZWwgZW5kKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9pbnN0VG9SYW5nZS5hZGQo
aW5zdCwgc3RkOjptYWtlX3BhaXIoc3RhcnQsIGVuZCkpOwogICAgIFJFTEVBU0VfQVNTRVJUKGFk
ZFJlc3VsdC5pc05ld0VudHJ5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyRGlzYXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckRpc2Fzc2VtYmxlci5oCmluZGV4IGEyNjYyNjQyYjM4Li4wMWQ3YzcwNzE3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEaXNhc3NlbWJsZXIuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckRpc2Fzc2VtYmxlci5oCkBAIC0yNywxMCAr
MjcsMTEgQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKLSNpbmNsdWRlICJDQ2FsbEhlbHBlcnMu
aCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgCiAKK2Ns
YXNzIENDYWxsSGVscGVyczsKIGNsYXNzIExpbmtCdWZmZXI7CiAKIG5hbWVzcGFjZSBCMyB7IG5h
bWVzcGFjZSBBaXIgewpAQCAtNDksMTcgKzUwLDE3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0
TGF0ZVBhdGgoQ0NhbGxIZWxwZXJzJik7CiAgICAgdm9pZCBlbmRMYXRlUGF0aChDQ2FsbEhlbHBl
cnMmKTsKICAgICB2b2lkIHN0YXJ0QmxvY2soQmFzaWNCbG9jayosIENDYWxsSGVscGVycyYpOwot
ICAgIHZvaWQgYWRkSW5zdChJbnN0KiwgQ0NhbGxIZWxwZXJzOjpMYWJlbCwgQ0NhbGxIZWxwZXJz
OjpMYWJlbCk7CisgICAgdm9pZCBhZGRJbnN0KEluc3QqLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWws
IE1hY3JvQXNzZW1ibGVyOjpMYWJlbCk7CiAKICAgICB2b2lkIGR1bXAoQ29kZSYsIFByaW50U3Ry
ZWFtJiwgTGlua0J1ZmZlciYsIGNvbnN0IGNoYXIqIGFpclByZWZpeCwgY29uc3QgY2hhciogYXNt
UHJlZml4LCBjb25zdCBTY29wZWRMYW1iZGE8dm9pZChJbnN0Jik+JiBkb1RvRWFjaEluc3QpOwog
CiBwcml2YXRlOgotICAgIEhhc2hNYXA8SW5zdCosIHN0ZDo6cGFpcjxDQ2FsbEhlbHBlcnM6Okxh
YmVsLCBDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gbV9pbnN0VG9SYW5nZTsKKyAgICBIYXNoTWFwPElu
c3QqLCBzdGQ6OnBhaXI8TWFjcm9Bc3NlbWJsZXI6OkxhYmVsLCBNYWNyb0Fzc2VtYmxlcjo6TGFi
ZWw+PiBtX2luc3RUb1JhbmdlOwogICAgIFZlY3RvcjxCYXNpY0Jsb2NrKj4gbV9ibG9ja3M7Ci0g
ICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBtX2VudHJ5cG9pbnRTdGFydDsKLSAgICBDQ2FsbEhlbHBl
cnM6OkxhYmVsIG1fZW50cnlwb2ludEVuZDsKLSAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIG1fbGF0
ZVBhdGhTdGFydDsKLSAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIG1fbGF0ZVBhdGhFbmQ7CisgICAg
TWFjcm9Bc3NlbWJsZXI6OkxhYmVsIG1fZW50cnlwb2ludFN0YXJ0OworICAgIE1hY3JvQXNzZW1i
bGVyOjpMYWJlbCBtX2VudHJ5cG9pbnRFbmQ7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIG1f
bGF0ZVBhdGhTdGFydDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbV9sYXRlUGF0aEVuZDsK
IH07CiAKIH0gfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGlvbkNvbnRleHQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGlvbkNvbnRleHQuaAppbmRleCA2MmZlYTAz
ZDU4My4uYzM1OGFjYTRjOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyR2VuZXJhdGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckdlbmVyYXRpb25Db250ZXh0LmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpZiBFTkFCTEUo
QjNfSklUKQogCiAjaW5jbHVkZSAiQWlyQmFzaWNCbG9jay5oIgotI2luY2x1ZGUgIkNDYWxsSGVs
cGVycy5oIgorI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCiAjaW5jbHVkZSA8d3RmL0JveC5o
PgogI2luY2x1ZGUgPHd0Zi9JbmRleE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9TaGFyZWRUYXNrLmg+
CkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIFNoYXJlZFRhc2s8TGF0ZVBh
dGhGdW5jdGlvbj4gTGF0ZVBhdGg7CiAKICAgICBWZWN0b3I8UmVmUHRyPExhdGVQYXRoPj4gbGF0
ZVBhdGhzOwotICAgIEluZGV4TWFwPEJhc2ljQmxvY2sqLCBCb3g8Q0NhbGxIZWxwZXJzOjpMYWJl
bD4+IGJsb2NrTGFiZWxzOworICAgIEluZGV4TWFwPEJhc2ljQmxvY2sqLCBCb3g8TWFjcm9Bc3Nl
bWJsZXI6OkxhYmVsPj4gYmxvY2tMYWJlbHM7CiAgICAgQmFzaWNCbG9jayogY3VycmVudEJsb2Nr
IHsgbnVsbHB0ciB9OwogICAgIHVuc2lnbmVkIGluZGV4SW5CbG9jayB7IFVJTlRfTUFYIH07CiAg
ICAgQ29kZSogY29kZSB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlySW5zdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJ
bnN0LmgKaW5kZXggYjU3MjMzOWU4MzAuLmRjY2FlZTJiM2M4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0Fpckluc3QuaApAQCAtMjksNyArMjksOCBAQAogCiAjaW5jbHVkZSAiQWlyQXJn
LmgiCiAjaW5jbHVkZSAiQWlyS2luZC5oIgotI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2lu
Y2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCisjaW5jbHVkZSA8d3RmL1Njb3BlZExhbWJkYS5oPgog
CiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtMTkxLDcgKzE5Miw3IEBAIHN0cnVjdCBJbnN0IHsKICAg
ICAvLyBHZW5lcmF0ZSBzb21lIGNvZGUgZm9yIHRoaXMgaW5zdHJ1Y3Rpb24uIFRoaXMgaXMsIGxp
a2UsIGxpdGVyYWxseSBvdXIgYmFja2VuZC4gSWYgdGhpcyBpcyB0aGUKICAgICAvLyB0ZXJtaW5h
bCwgaXQgcmV0dXJucyB0aGUganVtcCB0aGF0IG5lZWRzIHRvIGJlIGxpbmtlZCBmb3IgdGhlICJ0
aGVuIiBjYXNlLCB3aXRoIHRoZSAiZWxzZSIKICAgICAvLyBjYXNlIGJlaW5nIGZhbGwtdGhyb3Vn
aC4gVGhpcyBmdW5jdGlvbiBpcyBhdXRvLWdlbmVyYXRlZCBieSBvcGNvZGVfZ2VuZXJhdG9yLnJi
LgotICAgIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0
aW9uQ29udGV4dCYpOworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGdlbmVyYXRlKENDYWxsSGVs
cGVycyYsIEdlbmVyYXRpb25Db250ZXh0Jik7CiAKICAgICAvLyBJZiBzb3VyY2UgYXJndW1lbnRz
IGJlbmVmaXRzIGZyb20gYmVpbmcgYWxpYXNlZCB0byBhIGRlc3RpbmF0aW9uIGFyZ3VtZW50LAog
ICAgIC8vIHRoaXMgcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZGVzdGluYXRpb24gYXJndW1lbnQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lh
bC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5jcHAK
aW5kZXggMWM3YzZiNmY5NmYuLjE4ZDE2OGNlZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJQcmludFNwZWNpYWwuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaWYg
RU5BQkxFKE1BU01fUFJPQkUpCiAKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlclByaW50ZXIuaCIK
KyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBC
MyB7IG5hbWVzcGFjZSBBaXIgewogCkBAIC02NSw3ICs2Niw3IEBAIHZvaWQgUHJpbnRTcGVjaWFs
OjpyZXBvcnRVc2VkUmVnaXN0ZXJzKEluc3QmLCBjb25zdCBSZWdpc3RlclNldCYpCiB7CiB9CiAK
LUNDYWxsSGVscGVyczo6SnVtcCBQcmludFNwZWNpYWw6OmdlbmVyYXRlKEluc3QmIGluc3QsIEND
YWxsSGVscGVycyYgaml0LCBHZW5lcmF0aW9uQ29udGV4dCYpCitNYWNyb0Fzc2VtYmxlcjo6SnVt
cCBQcmludFNwZWNpYWw6OmdlbmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVycyYgaml0LCBH
ZW5lcmF0aW9uQ29udGV4dCYpCiB7CiAgICAgc2l6ZV90IGN1cnJlbnRBcmcgPSAxOyAvLyBTa2lw
IHRoZSBQcmludFNwZWNpYWwgYXJnLgogICAgIGZvciAoYXV0byYgdGVybSA6ICptX3ByaW50UmVj
b3JkTGlzdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQ
cmludFNwZWNpYWwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVj
aWFsLmgKaW5kZXggMWE5NjI3ODEyZGYuLmZmZDJkN2JmNjRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmgKQEAgLTMzLDYgKzMzLDkgQEAKICNp
bmNsdWRlICJNYWNyb0Fzc2VtYmxlclByaW50ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CisKK2Ns
YXNzIENDYWxsSGVscGVyczsKKwogbmFtZXNwYWNlIFByaW50ZXIgewogCiB0eXBlZGVmIFZlY3Rv
cjxCMzo6QWlyOjpBcmc+IEFyZ0xpc3Q7CkBAIC0xMDUsNyArMTA4LDcgQEAgcHJvdGVjdGVkOgog
ICAgIGJvb2wgYWRtaXRzU3RhY2soSW5zdCYsIHVuc2lnbmVkIGFyZ0luZGV4KSBmaW5hbDsKICAg
ICBib29sIGFkbWl0c0V4dGVuZGVkT2Zmc2V0QWRkcihJbnN0JiwgdW5zaWduZWQpIGZpbmFsOwog
ICAgIHZvaWQgcmVwb3J0VXNlZFJlZ2lzdGVycyhJbnN0JiwgY29uc3QgUmVnaXN0ZXJTZXQmKSBm
aW5hbDsKLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZ2VuZXJhdGUoSW5zdCYsIENDYWxsSGVscGVy
cyYsIEdlbmVyYXRpb25Db250ZXh0JikgZmluYWw7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
Z2VuZXJhdGUoSW5zdCYsIENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250ZXh0JikgZmluYWw7
CiAgICAgUmVnaXN0ZXJTZXQgZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MoSW5zdCYpIGZpbmFsOwog
ICAgIFJlZ2lzdGVyU2V0IGV4dHJhQ2xvYmJlcmVkUmVncyhJbnN0JikgZmluYWw7CiAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwZWNpYWwuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BlY2lhbC5oCmluZGV4IGE2NTlkMDNkNWEy
Li4wNTZmZDUxODk3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJTcGVjaWFsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFs
LmgKQEAgLTgzLDcgKzgzLDcgQEAgcHVibGljOgogICAgIC8vIEN1cnJlbnRseSwgd2UgZG8gKDEp
IGZvciBCMyBzdGFja21hcHMuCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydFVzZWRSZWdpc3RlcnMo
SW5zdCYsIGNvbnN0IFJlZ2lzdGVyU2V0JikgPSAwOwogICAgIAotICAgIHZpcnR1YWwgQ0NhbGxI
ZWxwZXJzOjpKdW1wIGdlbmVyYXRlKEluc3QmLCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29u
dGV4dCYpID0gMDsKKyAgICB2aXJ0dWFsIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGdlbmVyYXRlKElu
c3QmLCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpID0gMDsKIAogICAgIHZpcnR1
YWwgUmVnaXN0ZXJTZXQgZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MoSW5zdCYpID0gMDsKICAgICB2
aXJ0dWFsIFJlZ2lzdGVyU2V0IGV4dHJhQ2xvYmJlcmVkUmVncyhJbnN0JikgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJWYWxpZGF0ZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcAppbmRleCAxMDA5OTI5Yzdh
Yy4uZWU3NDA0Y2FjOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyVmFsaWRhdGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVmFs
aWRhdGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQWlyQ29kZS5oIgogI2luY2x1
ZGUgIkFpckluc3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKKyNpbmNsdWRl
IDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBC
MyB7IG5hbWVzcGFjZSBBaXIgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L29wY29kZV9nZW5lcmF0b3IucmIKaW5kZXggZDcwY2E2M2E5MTguLjMwNjk4MjBiNDFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCkBA
IC04MDQsNiArODA0LDcgQEAgd3JpdGVIKCJPcGNvZGVVdGlscyIpIHsKIHdyaXRlSCgiT3Bjb2Rl
R2VuZXJhdGVkIikgewogICAgIHwgb3V0cCB8CiAgICAgb3V0cC5wdXRzICIjaW5jbHVkZSBcIkFp
ckluc3RJbmxpbmVzLmhcIiIKKyAgICBvdXRwLnB1dHMgIiNpbmNsdWRlIFwiQ0NhbGxIZWxwZXJz
LmhcIiIKICAgICBvdXRwLnB1dHMgIiNpbmNsdWRlIFwid3RmL1ByaW50U3RyZWFtLmhcIiIKICAg
ICBvdXRwLnB1dHMgIm5hbWVzcGFjZSBXVEYgeyIKICAgICBvdXRwLnB1dHMgInVzaW5nIG5hbWVz
cGFjZSBKU0M6OkIzOjpBaXI7IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAyODJmMTVhNDViZC4uN2Q3NDEyYjVkODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMjAtMDEtMjkgIFJvYmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFw
cGxlLmNvbT4KKworICAgICAgICBNb3N0IG9mIEIzIGFuZCBBaXIgZG9lcyBub3QgbmVlZCB0byBp
bmNsdWRlIENDYWxsSGVscGVycy5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDY5NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTaW1wbHkgZml4ZXMgYSBtaXNzaW5nIGluY2x1ZGUgd2hpY2ggd2FzIGhp
ZGRlbiBzbyBmYXIgaW4gYm90aCBwbGFjZXMgdGhhdCBTaW5nbGVSb290R3JhcGguaCB3YXMgaW5j
bHVkZWQuCisKKyAgICAgICAgKiB3dGYvU2luZ2xlUm9vdEdyYXBoLmg6CisKIDIwMjAtMDEtMjgg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdIFNob3VsZCB1c2UgbGlnaHQgdGhlbWUgdW5sZXNzIHdlYnNpdGUgZGVjbGFyZXMgc3VwcG9y
dCBmb3IgZGFyayB0aGVtZXMgaW4gY29sb3Itc2NoZW1lcyBwcm9wZXJ0eQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvU2luZ2xlUm9vdEdyYXBoLmggYi9Tb3VyY2UvV1RGL3d0Zi9TaW5nbGVS
b290R3JhcGguaAppbmRleCAxMzExMDc4MDllMC4uNGQzYjVlYmI1M2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1NpbmdsZVJvb3RHcmFwaC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Npbmds
ZVJvb3RHcmFwaC5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8d3RmL0dyYXBoTm9kZVdv
cmtsaXN0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1N0
ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiBuYW1l
c3BhY2UgV1RGIHsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389616</attachid>
            <date>2020-02-03 19:07:12 -0800</date>
            <delta_ts>2020-02-06 16:19:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch206975</filename>
            <type>text/plain</type>
            <size>28300</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE2NmU4OWZkZTc0Li45OTIzYmUxODQzNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMjAtMDEtMjkgIFJvYmlu
IE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KKworICAgICAgICBNb3N0IG9mIEIzIGFu
ZCBBaXIgZG9lcyBub3QgbmVlZCB0byBpbmNsdWRlIENDYWxsSGVscGVycy5oCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY5NzUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGV5IG9ubHkgZG8gdG8gdXNl
IENDYWxsSGVscGVyczo6SnVtcCBvciBDQ2FsbEhlbHBlcnM6OkxhYmVsLgorICAgICAgICBCdXQg
Q0NhbGxIZWxwZXJzIGluaGVyaXQgdGhvc2UgZnJvbSBNYWNyb0Fzc2VtYmxlci4gQW5kIE1hY3Jv
QXNzZW1ibGVyLmggaXMgZHJhbWF0aWNhbGx5IGNoZWFwZXIgdG8gaW5jbHVkZSAoc2luY2UgQ0Nh
bGxIZWxwZXJzIGluY2x1ZGVzIEFzc2VtYmx5SGVscGVycyB3aGljaCBpbmNsdWRlcyBDb2RlQmxv
Y2suaCB3aGljaCBpbmNsdWRlcyByb3VnaGx5IHRoZSBlbnRpcmUgcnVudGltZSkuCisKKyAgICAg
ICAgKiBiMy9CM0NoZWNrU3BlY2lhbC5jcHA6CisgICAgICAgICogYjMvQjNDaGVja1NwZWNpYWwu
aDoKKyAgICAgICAgKiBiMy9CM0xvd2VyTWFjcm9zLmNwcDoKKyAgICAgICAgKiBiMy9CM1BhdGNo
cG9pbnRTcGVjaWFsLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlBhdGNocG9pbnRTcGVjaWFsOjpn
ZW5lcmF0ZSk6CisgICAgICAgICogYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oOgorICAgICAgICAq
IGIzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlN0
YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6c3VjY2Vzc29yTGFiZWxzIGNvbnN0KToKKyAgICAgICAg
KiBiMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oOgorICAgICAgICAqIGIzL2Fpci9BaXJB
bGxvY2F0ZVJlZ2lzdGVyc0FuZFN0YWNrQW5kR2VuZXJhdGVDb2RlLmg6CisgICAgICAgICogYjMv
YWlyL0FpckNDYWxsU3BlY2lhbC5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckNDYWxsU3BlY2lh
bC5oOgorICAgICAgICAqIGIzL2Fpci9BaXJDb2RlLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjplbnRyeXBvaW50TGFiZWwgY29u
c3QpOgorICAgICAgICAqIGIzL2Fpci9BaXJDdXN0b20uY3BwOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpDQ2FsbEN1c3RvbTo6Z2VuZXJhdGUpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpTaHVm
ZmxlQ3VzdG9tOjpnZW5lcmF0ZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Oldhc21Cb3VuZHND
aGVja0N1c3RvbTo6Z2VuZXJhdGUpOgorICAgICAgICAqIGIzL2Fpci9BaXJDdXN0b20uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OkFpcjo6UGF0Y2hDdXN0b206OmdlbmVyYXRlKToKKyAgICAgICAgKEpT
Qzo6QjM6OkFpcjo6RW50cnlTd2l0Y2hDdXN0b206OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9h
aXIvQWlyRGlzYXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6RGlzYXNzZW1i
bGVyOjphZGRJbnN0KToKKyAgICAgICAgKiBiMy9haXIvQWlyRGlzYXNzZW1ibGVyLmg6CisgICAg
ICAgICogYjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ckluc3QuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyUHJpbnRTcGVjaWFsLmNwcDoKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6UHJpbnRTcGVjaWFsOjpnZW5lcmF0ZSk6CisgICAgICAgICogYjMvYWly
L0FpclByaW50U3BlY2lhbC5oOgorICAgICAgICAqIGIzL2Fpci9BaXJTcGVjaWFsLmg6CisgICAg
ICAgICogYjMvYWlyL0FpclZhbGlkYXRlLmNwcDoKKyAgICAgICAgKiBiMy9haXIvb3Bjb2RlX2dl
bmVyYXRvci5yYjoKKwogMjAyMC0wMi0wMyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBn
bWFpbC5jb20+CiAKICAgICAgICAgXDAgaWRlbnRpdHkgZXNjYXBlcyBzaG91bGQgYmUgc3ludGF4
IGVycm9ycyBpbiBVbmljb2RlIHBhdHRlcm5zIG9ubHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDaGVja1NwZWNpYWwuY3BwCmluZGV4IGNlNjQ0NjYyNWVhLi4zZDEyY2IxYjFmNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFsLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDaGVja1NwZWNpYWwuY3BwCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW5jbHVkZSAiQWlySW5zdElubGluZXMuaCIKICNpbmNsdWRlICJCM1N0YWNrbWFw
R2VuZXJhdGlvblBhcmFtcy5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVk
ZSAiQ0NhbGxIZWxwZXJzLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDaGVja1NwZWNpYWwuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5oCmluZGV4IDA2NTZhZDU0YmYx
Li5iMWFkMDUxNDI3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hl
Y2tTcGVjaWFsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFs
LmgKQEAgLTI3LDcgKzI3LDYgQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKLSNpbmNsdWRlICJB
aXJBcmcuaCIKICNpbmNsdWRlICJBaXJLaW5kLmgiCiAjaW5jbHVkZSAiQjNTdGFja21hcFNwZWNp
YWwuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtMTI5LDcgKzEyOCw3IEBAIHByb3Rl
Y3RlZDoKICAgICAvLyBOT1RFOiB0aGUgZ2VuZXJhdGUgbWV0aG9kIHdpbGwgZ2VuZXJhdGUgdGhl
IGhpZGRlbiBicmFuY2ggYW5kIHRoZW4gcmVnaXN0ZXIgYSBMYXRlUGF0aCB0aGF0CiAgICAgLy8g
Z2VuZXJhdGVzIHRoZSBzdGFja21hcC4gU3VwZXIgY3JhenkgZHVkZSEKIAotICAgIENDYWxsSGVs
cGVyczo6SnVtcCBnZW5lcmF0ZShBaXI6Okluc3QmLCBDQ2FsbEhlbHBlcnMmLCBBaXI6OkdlbmVy
YXRpb25Db250ZXh0JikgZmluYWw7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZ2VuZXJhdGUo
QWlyOjpJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgQWlyOjpHZW5lcmF0aW9uQ29udGV4dCYpIGZpbmFs
OwogCiAgICAgdm9pZCBkdW1wSW1wbChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogICAgIHZv
aWQgZGVlcER1bXBJbXBsKFByaW50U3RyZWFtJikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21tb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQ29tbW9uLmNwcAppbmRleCBlODUzYTIwMmMyNC4uZTNlYWEwMjdkNzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9uLmNwcApAQCAtMjksNyArMjksNiBAQAogI2lmIEVO
QUJMRShCM19KSVQpCiAKICNpbmNsdWRlICJERkdDb21tb24uaCIKLSNpbmNsdWRlICJGVExTdGF0
ZS5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIApA
QCAtNDAsNyArMzksNyBAQCBjb25zdCBjaGFyKiBjb25zdCB0aWVyTmFtZSA9ICJiMyAgIjsKIGJv
b2wgc2hvdWxkRHVtcElSKEIzQ29tcGlsYXRpb25Nb2RlIG1vZGUpCiB7CiAjaWYgRU5BQkxFKEZU
TF9KSVQpCi0gICAgcmV0dXJuIEZUTDo6dmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpIHx8IEZU
TDo6c2hvdWxkRHVtcERpc2Fzc2VtYmx5KCkgfHwgc2hvdWxkRHVtcElSQXRFYWNoUGhhc2UobW9k
ZSk7CisgICAgcmV0dXJuIERGRzo6dmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZChERkc6OkZUTE1v
ZGUpIHx8IERGRzo6c2hvdWxkRHVtcERpc2Fzc2VtYmx5KERGRzo6RlRMTW9kZSkgfHwgc2hvdWxk
RHVtcElSQXRFYWNoUGhhc2UobW9kZSk7CiAjZWxzZQogICAgIHJldHVybiBzaG91bGREdW1wSVJB
dEVhY2hQaGFzZShtb2RlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzRWxpbWluYXRlQ29tbW9uU3ViZXhwcmVzc2lvbnMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzRWxpbWluYXRlQ29tbW9uU3ViZXhwcmVzc2lvbnMuY3BwCmluZGV4IGI2
ZmNkY2E2ZGZmLi4yZGU5OTYwZjVjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzRWxpbWluYXRlQ29tbW9uU3ViZXhwcmVzc2lvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmNwcApAQCAtNDMs
NyArNDMsNiBAQAogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYXJp
YWJsZS5oIgogI2luY2x1ZGUgIkIzVmFyaWFibGVWYWx1ZS5oIgotI2luY2x1ZGUgIkRGR0dyYXBo
LmgiCiAjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNNZW1vcnlWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
TWVtb3J5VmFsdWUuaAppbmRleCBiOTk4YWVkYzkzZi4uZjYxZGNmZDI3NmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01lbW9yeVZhbHVlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzTWVtb3J5VmFsdWUuaApAQCAtMjcsNyArMjcsNiBAQAogCiAjaWYg
RU5BQkxFKEIzX0pJVCkKIAotI2luY2x1ZGUgIkFpckFyZy5oIgogI2luY2x1ZGUgIkIzQmFuay5o
IgogI2luY2x1ZGUgIkIzSGVhcFJhbmdlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZS5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuY3BwCmluZGV4IDk0
ZmEwZjI4ZTA4Li45NGY1OGEzNzNlOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1BhdGNocG9pbnRTcGVjaWFsLmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIGJvb2wgUGF0Y2hw
b2ludFNwZWNpYWw6OmFkbWl0c0V4dGVuZGVkT2Zmc2V0QWRkcihJbnN0JiBpbnN0LCB1bnNpZ25l
ZCBhcmdJbmRleCkKICAgICByZXR1cm4gYWRtaXRzU3RhY2soaW5zdCwgYXJnSW5kZXgpOwogfQog
Ci1DQ2FsbEhlbHBlcnM6Okp1bXAgUGF0Y2hwb2ludFNwZWNpYWw6OmdlbmVyYXRlKEluc3QmIGlu
c3QsIENDYWxsSGVscGVycyYgaml0LCBBaXI6OkdlbmVyYXRpb25Db250ZXh0JiBjb250ZXh0KQor
TWFjcm9Bc3NlbWJsZXI6Okp1bXAgUGF0Y2hwb2ludFNwZWNpYWw6OmdlbmVyYXRlKEluc3QmIGlu
c3QsIENDYWxsSGVscGVycyYgaml0LCBBaXI6OkdlbmVyYXRpb25Db250ZXh0JiBjb250ZXh0KQog
ewogICAgIGNvbnN0IFByb2NlZHVyZSYgcHJvY2VkdXJlID0gY29kZSgpLnByb2MoKTsKICAgICBQ
YXRjaHBvaW50VmFsdWUqIHZhbHVlID0gaW5zdC5vcmlnaW4tPmFzPFBhdGNocG9pbnRWYWx1ZT4o
KTsKQEAgLTE3MCw3ICsxNzAsNyBAQCBDQ2FsbEhlbHBlcnM6Okp1bXAgUGF0Y2hwb2ludFNwZWNp
YWw6OmdlbmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVycyYgaml0LCBBaQogICAgIAogICAg
IHZhbHVlLT5tX2dlbmVyYXRvci0+cnVuKGppdCwgcGFyYW1zKTsKIAotICAgIHJldHVybiBDQ2Fs
bEhlbHBlcnM6Okp1bXAoKTsKKyAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6Okp1bXAoKTsKIH0K
IAogYm9vbCBQYXRjaHBvaW50U3BlY2lhbDo6aXNUZXJtaW5hbChJbnN0JiBpbnN0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmgKaW5kZXggZWVmZTQw
MTk1NmIuLjdjYzc2YWI5MzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNQYXRjaHBvaW50U3BlY2lhbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Bh
dGNocG9pbnRTcGVjaWFsLmgKQEAgLTU1LDcgKzU1LDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIE5P
VEU6IHRoZSBnZW5lcmF0ZSBtZXRob2Qgd2lsbCBnZW5lcmF0ZSB0aGUgaGlkZGVuIGJyYW5jaCBh
bmQgdGhlbiByZWdpc3RlciBhIExhdGVQYXRoIHRoYXQKICAgICAvLyBnZW5lcmF0ZXMgdGhlIHN0
YWNrbWFwLiBTdXBlciBjcmF6eSBkdWRlIQogCi0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGdlbmVy
YXRlKEFpcjo6SW5zdCYsIENDYWxsSGVscGVycyYsIEFpcjo6R2VuZXJhdGlvbkNvbnRleHQmKSBm
aW5hbDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBnZW5lcmF0ZShBaXI6Okluc3QmLCBDQ2Fs
bEhlbHBlcnMmLCBBaXI6OkdlbmVyYXRpb25Db250ZXh0JikgZmluYWw7CiAgICAgCiAgICAgYm9v
bCBpc1Rlcm1pbmFsKEFpcjo6SW5zdCYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcAppbmRleCAzNDM1
YjBlNjNhMC4uOTJjZDgwZWQ3YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcApAQCAtNTksMTIgKzU5LDEyIEBA
IFJlZ2lzdGVyU2V0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6dW5hdmFpbGFibGVSZWdpc3Rl
cnMoKSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVZlY3RvcjxCb3g8Q0NhbGxIZWxw
ZXJzOjpMYWJlbD4+IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6c3VjY2Vzc29yTGFiZWxzKCkg
Y29uc3QKK1ZlY3RvcjxCb3g8TWFjcm9Bc3NlbWJsZXI6OkxhYmVsPj4gU3RhY2ttYXBHZW5lcmF0
aW9uUGFyYW1zOjpzdWNjZXNzb3JMYWJlbHMoKSBjb25zdAogewogICAgIFJFTEVBU0VfQVNTRVJU
KG1fY29udGV4dC5pbmRleEluQmxvY2sgPT0gbV9jb250ZXh0LmN1cnJlbnRCbG9jay0+c2l6ZSgp
IC0gMSk7CiAgICAgUkVMRUFTRV9BU1NFUlQobV92YWx1ZS0+ZWZmZWN0cygpLnRlcm1pbmFsKTsK
ICAgICAKLSAgICBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiByZXN1bHQobV9jb250
ZXh0LmN1cnJlbnRCbG9jay0+bnVtU3VjY2Vzc29ycygpKTsKKyAgICBWZWN0b3I8Qm94PE1hY3Jv
QXNzZW1ibGVyOjpMYWJlbD4+IHJlc3VsdChtX2NvbnRleHQuY3VycmVudEJsb2NrLT5udW1TdWNj
ZXNzb3JzKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IG1fY29udGV4dC5jdXJyZW50QmxvY2st
Pm51bVN1Y2Nlc3NvcnMoKTsgaS0tOykKICAgICAgICAgcmVzdWx0W2ldID0gbV9jb250ZXh0LmJs
b2NrTGFiZWxzW21fY29udGV4dC5jdXJyZW50QmxvY2stPnN1Y2Nlc3NvckJsb2NrKGkpXTsKICAg
ICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNT
dGFja21hcEdlbmVyYXRpb25QYXJhbXMuaAppbmRleCAwZjdkNzJkOWJiMC4uYTM2MjU0ODhlYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlv
blBhcmFtcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJh
dGlvblBhcmFtcy5oCkBAIC0yOSwxMSArMjksMTUgQEAKIAogI2luY2x1ZGUgIkFpckdlbmVyYXRp
b25Db250ZXh0LmgiCiAjaW5jbHVkZSAiQjNWYWx1ZVJlcC5oIgotI2luY2x1ZGUgIkNDYWxsSGVs
cGVycy5oIgorI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJT
ZXQuaCIKICNpbmNsdWRlIDx3dGYvQm94Lmg+CiAKLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
QjMgeworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIENDYWxsSGVscGVyczsKKworbmFtZXNwYWNl
IEIzIHsKIAogY2xhc3MgQ2hlY2tTcGVjaWFsOwogY2xhc3MgUGF0Y2hwb2ludFNwZWNpYWw7CkBA
IC04OSw3ICs5Myw3IEBAIHB1YmxpYzoKICAgICAKICAgICAvLyBUaGlzIGlzIGNvbXB1dGVkIGxh
emlseSwgc28gaXQgd29uJ3Qgd29yayBpZiB5b3UgY2FwdHVyZSBTdGFja21hcEdlbmVyYXRpb25Q
YXJhbXMgYnkgdmFsdWUuCiAgICAgLy8gVGhlc2UgbGFiZWxzIHdpbGwgZ2V0IHBvcHVsYXRlZCBi
ZWZvcmUgYW55IGxhdGUgcGF0aHMgb3IgbGluayB0YXNrcyBleGVjdXRlLgotICAgIEpTX0VYUE9S
VF9QUklWQVRFIFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IHN1Y2Nlc3NvckxhYmVs
cygpIGNvbnN0OworICAgIEpTX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxCb3g8TWFjcm9Bc3NlbWJs
ZXI6OkxhYmVsPj4gc3VjY2Vzc29yTGFiZWxzKCkgY29uc3Q7CiAgICAgCiAgICAgLy8gVGhpcyBp
cyBjb21wdXRlZCBsYXppbHksIHNvIGl0IHdvbid0IHdvcmsgaWYgeW91IGNhcHR1cmUgU3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zIGJ5IHZhbHVlLgogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUg
c3VjY2Vzc29yIGF0IHRoZSBnaXZlbiBpbmRleCBpcyBnb2luZyB0byBiZSBlbWl0dGVkIHJpZ2h0
IGFmdGVyIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2tt
YXBWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBWYWx1ZS5oCmlu
ZGV4IDcwYzQ5Yzg2MTA5Li5kZTBkYzk2M2ZlOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzU3RhY2ttYXBWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1N0YWNrbWFwVmFsdWUuaApAQCAtMzAsMTEgKzMwLDE0IEBACiAjaW5jbHVkZSAiQjNDb25z
dHJhaW5lZFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVS
ZXAuaCIKLSNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJSZWdpc3RlclNldC5o
IgogI2luY2x1ZGUgPHd0Zi9TaGFyZWRUYXNrLmg+CiAKLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgQjMgeworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIENDYWxsSGVscGVyczsKKworbmFtZXNw
YWNlIEIzIHsKIAogY2xhc3MgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlUmVnaXN0ZXJzQW5kU3Rh
Y2tBbmRHZW5lcmF0ZUNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxs
b2NhdGVSZWdpc3RlcnNBbmRTdGFja0FuZEdlbmVyYXRlQ29kZS5oCmluZGV4IDgxYjBhYTBmN2M0
Li42NmZmY2NjNTgwYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJBbGxvY2F0ZVJlZ2lzdGVyc0FuZFN0YWNrQW5kR2VuZXJhdGVDb2RlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVJlZ2lzdGVyc0FuZFN0YWNrQW5kR2Vu
ZXJhdGVDb2RlLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkFpckxpdmVuZXNzLmgi
CiAjaW5jbHVkZSAiQWlyVG1wTWFwLmgiCisjaW5jbHVkZSA8d3RmL05vbm1vdmFibGUuaD4KIAog
bmFtZXNwYWNlIEpTQyB7IAogCkBAIC04Nyw4ICs4OCw4IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFVuaWZpZWRUbXBMaXZlbmVzcz4gbV9saXZlbmVzczsKIAogICAgIHN0cnVjdCBQ
YXRjaFNwaWxsRGF0YSB7Ci0gICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBqdW1wOwotICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGNvbnRpbnVlTGFiZWw7CisgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpKdW1wIGp1bXA7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBjb250aW51ZUxh
YmVsOwogICAgICAgICBIYXNoTWFwPFRtcCwgQXJnKj4gZGVmZFRtcHM7CiAgICAgfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwuY3BwCmluZGV4
IDUwYTUwOTQ2Yjc5Li42MTkxOTViYjcwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFsLmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5B
QkxFKEIzX0pJVCkKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorCiBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKIENDYWxsU3BlY2lhbDo6Q0NhbGxT
cGVjaWFsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ0Nh
bGxTcGVjaWFsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNDYWxsU3BlY2lh
bC5oCmluZGV4IGM1MWEzNzM5MjkzLi45MTNmMTA2YThhMyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckNDYWxsU3BlY2lhbC5oCkBAIC01Nyw3ICs1Nyw3IEBAIHByb3Rl
Y3RlZDoKICAgICBib29sIGFkbWl0c1N0YWNrKEluc3QmLCB1bnNpZ25lZCBhcmdJbmRleCkgZmlu
YWw7CiAgICAgYm9vbCBhZG1pdHNFeHRlbmRlZE9mZnNldEFkZHIoSW5zdCYsIHVuc2lnbmVkKSBm
aW5hbDsKICAgICB2b2lkIHJlcG9ydFVzZWRSZWdpc3RlcnMoSW5zdCYsIGNvbnN0IFJlZ2lzdGVy
U2V0JikgZmluYWw7Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGdlbmVyYXRlKEluc3QmLCBDQ2Fs
bEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpIGZpbmFsOworICAgIE1hY3JvQXNzZW1ibGVy
OjpKdW1wIGdlbmVyYXRlKEluc3QmLCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYp
IGZpbmFsOwogICAgIFJlZ2lzdGVyU2V0IGV4dHJhRWFybHlDbG9iYmVyZWRSZWdzKEluc3QmKSBm
aW5hbDsKICAgICBSZWdpc3RlclNldCBleHRyYUNsb2JiZXJlZFJlZ3MoSW5zdCYpIGZpbmFsOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNwcAppbmRleCA2NjNhMjJmMGZl
YS4uMDY3MGU5OGU2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyQ29kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNw
cApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja1V0aWxzLmgiCiAjaW5j
bHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1N0YWNrU2xvdC5oIgorI2luY2x1ZGUg
IkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgogI2luY2x1ZGUgPHd0
Zi9NYXRoRXh0cmFzLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQ29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKaW5k
ZXggNjY0MmE0YmFmZmQuLjFkNzc3OWFiNWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpckNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckNvZGUuaApAQCAtMzQsMTMgKzM0LDE5IEBACiAjaW5jbHVkZSAiQWlyU3RhY2tTbG90Lmgi
CiAjaW5jbHVkZSAiQWlyVG1wLmgiCiAjaW5jbHVkZSAiQjNTcGFyc2VDb2xsZWN0aW9uLmgiCi0j
aW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiR1BSSW5mby5oIgorI2luY2x1ZGUg
Ik1hY3JvQXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJBdE9mZnNldExpc3QuaCIKICNp
bmNsdWRlICJTdGFja0FsaWdubWVudC5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL0luZGV4TWFwLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtSYW5kb20uaD4KIAotbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgQ0Nh
bGxIZWxwZXJzOworCituYW1lc3BhY2UgQjMgewogCiBjbGFzcyBQcm9jZWR1cmU7CiAKQEAgLTE5
Niw3ICsyMDIsNyBAQCBwdWJsaWM6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fZW50cnlwb2lu
dHMuc2l6ZSgpID09IG1fcHJvbG9ndWVHZW5lcmF0b3JzLnNpemUoKSk7CiAgICAgfQogICAgIAot
ICAgIENDYWxsSGVscGVyczo6TGFiZWwgZW50cnlwb2ludExhYmVsKHVuc2lnbmVkIGluZGV4KSBj
b25zdAorICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBlbnRyeXBvaW50TGFiZWwodW5zaWduZWQg
aW5kZXgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9lbnRyeXBvaW50TGFiZWxzW2lu
ZGV4XTsKICAgICB9CkBAIC0zODMsNyArMzg5LDcgQEAgcHJpdmF0ZToKICAgICBSZWdpc3RlclNl
dCBtX2NhbGxlZVNhdmVSZWdpc3RlcnM7CiAgICAgU3RhY2tTbG90KiBtX2NhbGxlZVNhdmVTdGFj
a1Nsb3QgeyBudWxscHRyIH07CiAgICAgVmVjdG9yPEZyZXF1ZW50ZWRCbG9jaz4gbV9lbnRyeXBv
aW50czsgLy8gVGhpcyBpcyBlbXB0eSB1bnRpbCBhZnRlciBsb3dlckVudHJ5U3dpdGNoKCkuCi0g
ICAgVmVjdG9yPENDYWxsSGVscGVyczo6TGFiZWw+IG1fZW50cnlwb2ludExhYmVsczsgLy8gVGhp
cyBpcyBlbXB0eSB1bnRpbCBjb2RlIGdlbmVyYXRpb24uCisgICAgVmVjdG9yPE1hY3JvQXNzZW1i
bGVyOjpMYWJlbD4gbV9lbnRyeXBvaW50TGFiZWxzOyAvLyBUaGlzIGlzIGVtcHR5IHVudGlsIGNv
ZGUgZ2VuZXJhdGlvbi4KICAgICBWZWN0b3I8UmVmPFByb2xvZ3VlR2VuZXJhdG9yPiwgMT4gbV9w
cm9sb2d1ZUdlbmVyYXRvcnM7CiAgICAgUmVmUHRyPFdhc21Cb3VuZHNDaGVja0dlbmVyYXRvcj4g
bV93YXNtQm91bmRzQ2hlY2tHZW5lcmF0b3I7CiAgICAgY29uc3QgY2hhciogbV9sYXN0UGhhc2VO
YW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0b20u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0b20uY3BwCmluZGV4IDQ5
Y2E1NGMyNGVlLi4xM2JjZDI2YzM2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyQ3VzdG9tLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkFpckluc3RJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiQjNDQ2FsbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMu
aCIKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCkBAIC05NiwxMSArOTcsMTEgQEAgYm9vbCBDQ2FsbEN1
c3RvbTo6aXNWYWxpZEZvcm0oSW5zdCYgaW5zdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotQ0Nh
bGxIZWxwZXJzOjpKdW1wIENDYWxsQ3VzdG9tOjpnZW5lcmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhl
bHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpCitNYWNyb0Fzc2VtYmxlcjo6SnVtcCBDQ2FsbEN1
c3RvbTo6Z2VuZXJhdGUoSW5zdCYgaW5zdCwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRl
eHQmKQogewogICAgIGRhdGFMb2coIkZBVEFMOiBVbmxvd2VyZWQgQyBjYWxsOiAiLCBpbnN0LCAi
XG4iKTsKICAgICBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKTsKLSAgICByZXR1cm4gQ0NhbGxI
ZWxwZXJzOjpKdW1wKCk7CisgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpKdW1wKCk7CiB9CiAK
IGJvb2wgU2h1ZmZsZUN1c3RvbTo6aXNWYWxpZEZvcm0oSW5zdCYgaW5zdCkKQEAgLTE3MSwxMSAr
MTcyLDExIEBAIGJvb2wgU2h1ZmZsZUN1c3RvbTo6aXNWYWxpZEZvcm0oSW5zdCYgaW5zdCkKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotQ0NhbGxIZWxwZXJzOjpKdW1wIFNodWZmbGVDdXN0b206Omdl
bmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250ZXh0JikKK01h
Y3JvQXNzZW1ibGVyOjpKdW1wIFNodWZmbGVDdXN0b206OmdlbmVyYXRlKEluc3QmIGluc3QsIEND
YWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250ZXh0JikKIHsKICAgICBkYXRhTG9nKCJGQVRBTDog
VW5sb3dlcmVkIHNodWZmbGU6ICIsIGluc3QsICJcbiIpOwogICAgIFVOUkVBQ0hBQkxFX0ZPUl9Q
TEFURk9STSgpOwotICAgIHJldHVybiBDQ2FsbEhlbHBlcnM6Okp1bXAoKTsKKyAgICByZXR1cm4g
TWFjcm9Bc3NlbWJsZXI6Okp1bXAoKTsKIH0KIAogYm9vbCBXYXNtQm91bmRzQ2hlY2tDdXN0b206
OmlzVmFsaWRGb3JtKEluc3QmIGluc3QpCkBAIC0xODgsNiArMTg5LDI4IEBAIGJvb2wgV2FzbUJv
dW5kc0NoZWNrQ3VzdG9tOjppc1ZhbGlkRm9ybShJbnN0JiBpbnN0KQogICAgIHJldHVybiBpbnN0
LmFyZ3NbMV0uaXNSZWcoKSB8fCBpbnN0LmFyZ3NbMV0uaXNUbXAoKSB8fCBpbnN0LmFyZ3NbMV0u
aXNTb21lSW1tKCk7CiB9CiAKK01hY3JvQXNzZW1ibGVyOjpKdW1wIFdhc21Cb3VuZHNDaGVja0N1
c3RvbTo6Z2VuZXJhdGUoSW5zdCYgaW5zdCwgQ0NhbGxIZWxwZXJzJiBqaXQsIEdlbmVyYXRpb25D
b250ZXh0JiBjb250ZXh0KQoreworICAgIFdhc21Cb3VuZHNDaGVja1ZhbHVlKiB2YWx1ZSA9IGlu
c3Qub3JpZ2luLT5hczxXYXNtQm91bmRzQ2hlY2tWYWx1ZT4oKTsKKyAgICBNYWNyb0Fzc2VtYmxl
cjo6SnVtcCBvdXRPZkJvdW5kcyA9IEluc3QoQWlyOjpCcmFuY2g2NCwgdmFsdWUsIEFyZzo6cmVs
Q29uZChNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsKSwgaW5zdC5hcmdzWzBdLCBpbnN0LmFy
Z3NbMV0pLmdlbmVyYXRlKGppdCwgY29udGV4dCk7CisKKyAgICBjb250ZXh0LmxhdGVQYXRocy5h
cHBlbmQoY3JlYXRlU2hhcmVkVGFzazxHZW5lcmF0aW9uQ29udGV4dDo6TGF0ZVBhdGhGdW5jdGlv
bj4oCisgICAgICAgIFtvdXRPZkJvdW5kcywgdmFsdWVdIChDQ2FsbEhlbHBlcnMmIGppdCwgQWly
OjpHZW5lcmF0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAgICAgICAgICAgb3V0T2ZCb3VuZHMu
bGluaygmaml0KTsKKyAgICAgICAgICAgIHN3aXRjaCAodmFsdWUtPmJvdW5kc1R5cGUoKSkgewor
ICAgICAgICAgICAgY2FzZSBXYXNtQm91bmRzQ2hlY2tWYWx1ZTo6VHlwZTo6UGlubmVkOgorICAg
ICAgICAgICAgICAgIGNvbnRleHQuY29kZS0+d2FzbUJvdW5kc0NoZWNrR2VuZXJhdG9yKCktPnJ1
bihqaXQsIHZhbHVlLT5ib3VuZHMoKS5waW5uZWRTaXplKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKworICAgICAgICAgICAgY2FzZSBXYXNtQm91bmRzQ2hlY2tWYWx1ZTo6VHlwZTo6TWF4aW11
bToKKyAgICAgICAgICAgICAgICBjb250ZXh0LmNvZGUtPndhc21Cb3VuZHNDaGVja0dlbmVyYXRv
cigpLT5ydW4oaml0LCBJbnZhbGlkR1BSUmVnKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSkpOworCisgICAgLy8gV2Ugc2FpZCB3ZSB3ZXJlIG5vdCBh
IHRlcm1pbmFsLgorICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6SnVtcCgpOworfQogCiB9IH0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckN1c3RvbS5oCmluZGV4IGU5OGFmZWE4Njc2Li41MmJlYWRhYmQ0MCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0b20uaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1c3RvbS5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVk
ZSAiQWlyU3BlY2lhbC5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
QjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5oIgorI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCiAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApAQCAtMTA4
LDcgKzEwOSw3IEBAIHN0cnVjdCBQYXRjaEN1c3RvbSB7CiAgICAgICAgIHJldHVybiBpbnN0LmFy
Z3NbMF0uc3BlY2lhbCgpLT5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhpbnN0KTsKICAgICB9
CiAKLSAgICBzdGF0aWMgQ0NhbGxIZWxwZXJzOjpKdW1wIGdlbmVyYXRlKAorICAgIHN0YXRpYyBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBnZW5lcmF0ZSgKICAgICAgICAgSW5zdCYgaW5zdCwgQ0NhbGxI
ZWxwZXJzJiBqaXQsIEdlbmVyYXRpb25Db250ZXh0JiBjb250ZXh0KQogICAgIHsKICAgICAgICAg
cmV0dXJuIGluc3QuYXJnc1swXS5zcGVjaWFsKCktPmdlbmVyYXRlKGluc3QsIGppdCwgY29udGV4
dCk7CkBAIC0xODEsNyArMTgyLDcgQEAgc3RydWN0IENDYWxsQ3VzdG9tIDogcHVibGljIENvbW1v
bkN1c3RvbUJhc2U8Q0NhbGxDdXN0b20+IHsKICAgICB9CiAKICAgICAvLyBUaGlzIGp1c3QgY3Jh
c2hlcywgc2luY2Ugd2UgZXhwZWN0IEMgY2FsbHMgdG8gYmUgbG93ZXJlZCBiZWZvcmUgZ2VuZXJh
dGlvbi4KLSAgICBzdGF0aWMgQ0NhbGxIZWxwZXJzOjpKdW1wIGdlbmVyYXRlKEluc3QmLCBDQ2Fs
bEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpOworICAgIHN0YXRpYyBNYWNyb0Fzc2VtYmxl
cjo6SnVtcCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQm
KTsKIH07CiAKIHN0cnVjdCBDb2xkQ0NhbGxDdXN0b20gOiBDQ2FsbEN1c3RvbSB7CkBAIC0yNDgs
NyArMjQ5LDcgQEAgc3RydWN0IFNodWZmbGVDdXN0b20gOiBwdWJsaWMgQ29tbW9uQ3VzdG9tQmFz
ZTxTaHVmZmxlQ3VzdG9tPiB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBz
dGF0aWMgQ0NhbGxIZWxwZXJzOjpKdW1wIGdlbmVyYXRlKEluc3QmLCBDQ2FsbEhlbHBlcnMmLCBH
ZW5lcmF0aW9uQ29udGV4dCYpOworICAgIHN0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBnZW5l
cmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKTsKIH07CiAKIHN0
cnVjdCBFbnRyeVN3aXRjaEN1c3RvbSA6IHB1YmxpYyBDb21tb25DdXN0b21CYXNlPEVudHJ5U3dp
dGNoQ3VzdG9tPiB7CkBAIC0yODgsMTIgKzI4OSwxMiBAQCBzdHJ1Y3QgRW50cnlTd2l0Y2hDdXN0
b20gOiBwdWJsaWMgQ29tbW9uQ3VzdG9tQmFzZTxFbnRyeVN3aXRjaEN1c3RvbT4gewogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgc3RhdGljIENDYWxsSGVscGVyczo6SnVtcCBn
ZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKQorICAgIHN0
YXRpYyBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwg
R2VuZXJhdGlvbkNvbnRleHQmKQogICAgIHsKICAgICAgICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIg
YmUgcmVhY2hlZCBiZWNhdXNlIHdlIHNob3VsZCBoYXZlIGxvd2VyZWQgRW50cnlTd2l0Y2ggYmVm
b3JlCiAgICAgICAgIC8vIGdlbmVyYXRpb24uCiAgICAgICAgIFVOUkVBQ0hBQkxFX0ZPUl9QTEFU
Rk9STSgpOwotICAgICAgICByZXR1cm4gQ0NhbGxIZWxwZXJzOjpKdW1wKCk7CisgICAgICAgIHJl
dHVybiBNYWNyb0Fzc2VtYmxlcjo6SnVtcCgpOwogICAgIH0KIH07CiAKQEAgLTMzMywyOCArMzM0
LDcgQEAgc3RydWN0IFdhc21Cb3VuZHNDaGVja0N1c3RvbSA6IHB1YmxpYyBDb21tb25DdXN0b21C
YXNlPFdhc21Cb3VuZHNDaGVja0N1c3RvbT4gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAKLSAgICBzdGF0aWMgQ0NhbGxIZWxwZXJzOjpKdW1wIGdlbmVyYXRlKEluc3QmIGluc3QsIEND
YWxsSGVscGVycyYgaml0LCBHZW5lcmF0aW9uQ29udGV4dCYgY29udGV4dCkKLSAgICB7Ci0gICAg
ICAgIFdhc21Cb3VuZHNDaGVja1ZhbHVlKiB2YWx1ZSA9IGluc3Qub3JpZ2luLT5hczxXYXNtQm91
bmRzQ2hlY2tWYWx1ZT4oKTsKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG91dE9mQm91bmRz
ID0gSW5zdChBaXI6OkJyYW5jaDY0LCB2YWx1ZSwgQXJnOjpyZWxDb25kKENDYWxsSGVscGVyczo6
QWJvdmVPckVxdWFsKSwgaW5zdC5hcmdzWzBdLCBpbnN0LmFyZ3NbMV0pLmdlbmVyYXRlKGppdCwg
Y29udGV4dCk7Ci0KLSAgICAgICAgY29udGV4dC5sYXRlUGF0aHMuYXBwZW5kKGNyZWF0ZVNoYXJl
ZFRhc2s8R2VuZXJhdGlvbkNvbnRleHQ6OkxhdGVQYXRoRnVuY3Rpb24+KAotICAgICAgICAgICAg
W291dE9mQm91bmRzLCB2YWx1ZV0gKENDYWxsSGVscGVycyYgaml0LCBBaXI6OkdlbmVyYXRpb25D
b250ZXh0JiBjb250ZXh0KSB7Ci0gICAgICAgICAgICAgICAgb3V0T2ZCb3VuZHMubGluaygmaml0
KTsKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLT5ib3VuZHNUeXBlKCkpIHsKLSAgICAg
ICAgICAgICAgICBjYXNlIFdhc21Cb3VuZHNDaGVja1ZhbHVlOjpUeXBlOjpQaW5uZWQ6Ci0gICAg
ICAgICAgICAgICAgICAgIGNvbnRleHQuY29kZS0+d2FzbUJvdW5kc0NoZWNrR2VuZXJhdG9yKCkt
PnJ1bihqaXQsIHZhbHVlLT5ib3VuZHMoKS5waW5uZWRTaXplKTsKLSAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICBjYXNlIFdhc21Cb3VuZHNDaGVja1ZhbHVlOjpU
eXBlOjpNYXhpbXVtOgotICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmNvZGUtPndhc21Cb3Vu
ZHNDaGVja0dlbmVyYXRvcigpLT5ydW4oaml0LCBJbnZhbGlkR1BSUmVnKTsKLSAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSkpOwotCi0g
ICAgICAgIC8vIFdlIHNhaWQgd2Ugd2VyZSBub3QgYSB0ZXJtaW5hbC4KLSAgICAgICAgcmV0dXJu
IENDYWxsSGVscGVyczo6SnVtcCgpOwotICAgIH0KKyAgICBzdGF0aWMgTWFjcm9Bc3NlbWJsZXI6
Okp1bXAgZ2VuZXJhdGUoSW5zdCYsIENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250ZXh0Jik7
CiB9OwogCiB9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckRpc2Fzc2VtYmxlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckRpc2Fzc2VtYmxlci5jcHAKaW5kZXggZmZlNzEzZWY1MmEu
LjUyNDhkMWJkYzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckRpc2Fzc2VtYmxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJE
aXNhc3NlbWJsZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQWlyQ29kZS5oIgog
I2luY2x1ZGUgIkFpckluc3QuaCIKICNpbmNsdWRlICJCM1ZhbHVlLmgiCisjaW5jbHVkZSAiQ0Nh
bGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiRGlzYXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiTGlua0J1
ZmZlci5oIgogCkBAIC02Myw3ICs2NCw3IEBAIHZvaWQgRGlzYXNzZW1ibGVyOjpzdGFydEJsb2Nr
KEJhc2ljQmxvY2sqIGJsb2NrLCBDQ2FsbEhlbHBlcnMmIGppdCkKICAgICBtX2Jsb2Nrcy5hcHBl
bmQoYmxvY2spOwogfQogCi12b2lkIERpc2Fzc2VtYmxlcjo6YWRkSW5zdChJbnN0KiBpbnN0LCBD
Q2FsbEhlbHBlcnM6OkxhYmVsIHN0YXJ0LCBDQ2FsbEhlbHBlcnM6OkxhYmVsIGVuZCkKK3ZvaWQg
RGlzYXNzZW1ibGVyOjphZGRJbnN0KEluc3QqIGluc3QsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBz
dGFydCwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGVuZCkKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9
IG1faW5zdFRvUmFuZ2UuYWRkKGluc3QsIHN0ZDo6bWFrZV9wYWlyKHN0YXJ0LCBlbmQpKTsKICAg
ICBSRUxFQVNFX0FTU0VSVChhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckRpc2Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJEaXNhc3NlbWJsZXIuaAppbmRleCBhMjY2MjY0MmIzOC4uMDFk
N2M3MDcxN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRGlz
YXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEaXNhc3Nl
bWJsZXIuaApAQCAtMjcsMTAgKzI3LDExIEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCi0jaW5j
bHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7IAogCitjbGFzcyBDQ2FsbEhlbHBlcnM7CiBjbGFzcyBMaW5rQnVmZmVyOwog
CiBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKQEAgLTQ5LDE3ICs1MCwxNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzdGFydExhdGVQYXRoKENDYWxsSGVscGVycyYpOwogICAgIHZvaWQgZW5k
TGF0ZVBhdGgoQ0NhbGxIZWxwZXJzJik7CiAgICAgdm9pZCBzdGFydEJsb2NrKEJhc2ljQmxvY2sq
LCBDQ2FsbEhlbHBlcnMmKTsKLSAgICB2b2lkIGFkZEluc3QoSW5zdCosIENDYWxsSGVscGVyczo6
TGFiZWwsIENDYWxsSGVscGVyczo6TGFiZWwpOworICAgIHZvaWQgYWRkSW5zdChJbnN0KiwgTWFj
cm9Bc3NlbWJsZXI6OkxhYmVsLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwpOwogCiAgICAgdm9pZCBk
dW1wKENvZGUmLCBQcmludFN0cmVhbSYsIExpbmtCdWZmZXImLCBjb25zdCBjaGFyKiBhaXJQcmVm
aXgsIGNvbnN0IGNoYXIqIGFzbVByZWZpeCwgY29uc3QgU2NvcGVkTGFtYmRhPHZvaWQoSW5zdCYp
PiYgZG9Ub0VhY2hJbnN0KTsKIAogcHJpdmF0ZToKLSAgICBIYXNoTWFwPEluc3QqLCBzdGQ6OnBh
aXI8Q0NhbGxIZWxwZXJzOjpMYWJlbCwgQ0NhbGxIZWxwZXJzOjpMYWJlbD4+IG1faW5zdFRvUmFu
Z2U7CisgICAgSGFzaE1hcDxJbnN0Kiwgc3RkOjpwYWlyPE1hY3JvQXNzZW1ibGVyOjpMYWJlbCwg
TWFjcm9Bc3NlbWJsZXI6OkxhYmVsPj4gbV9pbnN0VG9SYW5nZTsKICAgICBWZWN0b3I8QmFzaWNC
bG9jayo+IG1fYmxvY2tzOwotICAgIENDYWxsSGVscGVyczo6TGFiZWwgbV9lbnRyeXBvaW50U3Rh
cnQ7Ci0gICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBtX2VudHJ5cG9pbnRFbmQ7Ci0gICAgQ0NhbGxI
ZWxwZXJzOjpMYWJlbCBtX2xhdGVQYXRoU3RhcnQ7Ci0gICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBt
X2xhdGVQYXRoRW5kOworICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX2VudHJ5cG9pbnRTdGFy
dDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbV9lbnRyeXBvaW50RW5kOworICAgIE1hY3Jv
QXNzZW1ibGVyOjpMYWJlbCBtX2xhdGVQYXRoU3RhcnQ7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okxh
YmVsIG1fbGF0ZVBhdGhFbmQ7CiB9OwogCiB9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWly
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRpb25D
b250ZXh0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRpb25Db250
ZXh0LmgKaW5kZXggNjJmZWEwM2Q1ODMuLmMzNThhY2E0Yzk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0aW9uQ29udGV4dC5oCkBAIC0yOCw3ICsy
OCw3IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkFpckJhc2ljQmxvY2suaCIK
LSNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgog
I2luY2x1ZGUgPHd0Zi9Cb3guaD4KICNpbmNsdWRlIDx3dGYvSW5kZXhNYXAuaD4KICNpbmNsdWRl
IDx3dGYvU2hhcmVkVGFzay5oPgpAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBTaGFyZWRUYXNrPExhdGVQYXRoRnVuY3Rpb24+IExhdGVQYXRoOwogCiAgICAgVmVjdG9yPFJl
ZlB0cjxMYXRlUGF0aD4+IGxhdGVQYXRoczsKLSAgICBJbmRleE1hcDxCYXNpY0Jsb2NrKiwgQm94
PENDYWxsSGVscGVyczo6TGFiZWw+PiBibG9ja0xhYmVsczsKKyAgICBJbmRleE1hcDxCYXNpY0Js
b2NrKiwgQm94PE1hY3JvQXNzZW1ibGVyOjpMYWJlbD4+IGJsb2NrTGFiZWxzOwogICAgIEJhc2lj
QmxvY2sqIGN1cnJlbnRCbG9jayB7IG51bGxwdHIgfTsKICAgICB1bnNpZ25lZCBpbmRleEluQmxv
Y2sgeyBVSU5UX01BWCB9OwogICAgIENvZGUqIGNvZGUgeyBudWxscHRyIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCmluZGV4IGI1NzIzMzllODMwLi5kY2NhZWUyYjNjOCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgKQEAgLTI5LDcgKzI5LDggQEAK
IAogI2luY2x1ZGUgIkFpckFyZy5oIgogI2luY2x1ZGUgIkFpcktpbmQuaCIKLSNpbmNsdWRlICJD
Q2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgorI2luY2x1ZGUgPHd0
Zi9TY29wZWRMYW1iZGEuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTE5MSw3ICsxOTIsNyBA
QCBzdHJ1Y3QgSW5zdCB7CiAgICAgLy8gR2VuZXJhdGUgc29tZSBjb2RlIGZvciB0aGlzIGluc3Ry
dWN0aW9uLiBUaGlzIGlzLCBsaWtlLCBsaXRlcmFsbHkgb3VyIGJhY2tlbmQuIElmIHRoaXMgaXMg
dGhlCiAgICAgLy8gdGVybWluYWwsIGl0IHJldHVybnMgdGhlIGp1bXAgdGhhdCBuZWVkcyB0byBi
ZSBsaW5rZWQgZm9yIHRoZSAidGhlbiIgY2FzZSwgd2l0aCB0aGUgImVsc2UiCiAgICAgLy8gY2Fz
ZSBiZWluZyBmYWxsLXRocm91Z2guIFRoaXMgZnVuY3Rpb24gaXMgYXV0by1nZW5lcmF0ZWQgYnkg
b3Bjb2RlX2dlbmVyYXRvci5yYi4KLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZ2VuZXJhdGUoQ0Nh
bGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVt
cCBnZW5lcmF0ZShDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpOwogCiAgICAgLy8g
SWYgc291cmNlIGFyZ3VtZW50cyBiZW5lZml0cyBmcm9tIGJlaW5nIGFsaWFzZWQgdG8gYSBkZXN0
aW5hdGlvbiBhcmd1bWVudCwKICAgICAvLyB0aGlzIHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGRl
c3RpbmF0aW9uIGFyZ3VtZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJQcmludFNwZWNpYWwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJQcmludFNwZWNpYWwuY3BwCmluZGV4IDFjN2M2YjZmOTZmLi41NTk4NTcwNDFlZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQcmludFNwZWNpYWwuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmNwcApAQCAt
MjksNiArMjksNyBAQAogI2lmIEVOQUJMRShCM19KSVQpCiAjaWYgRU5BQkxFKE1BU01fUFJPQkUp
CiAKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlclBy
aW50ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIg
ewpAQCAtNjUsNyArNjYsNyBAQCB2b2lkIFByaW50U3BlY2lhbDo6cmVwb3J0VXNlZFJlZ2lzdGVy
cyhJbnN0JiwgY29uc3QgUmVnaXN0ZXJTZXQmKQogewogfQogCi1DQ2FsbEhlbHBlcnM6Okp1bXAg
UHJpbnRTcGVjaWFsOjpnZW5lcmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmIGppdCwgR2Vu
ZXJhdGlvbkNvbnRleHQmKQorTWFjcm9Bc3NlbWJsZXI6Okp1bXAgUHJpbnRTcGVjaWFsOjpnZW5l
cmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmIGppdCwgR2VuZXJhdGlvbkNvbnRleHQmKQog
ewogICAgIHNpemVfdCBjdXJyZW50QXJnID0gMTsgLy8gU2tpcCB0aGUgUHJpbnRTcGVjaWFsIGFy
Zy4KICAgICBmb3IgKGF1dG8mIHRlcm0gOiAqbV9wcmludFJlY29yZExpc3QpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5oCmluZGV4IDFhOTYyNzgx
MmRmLi5mZmQyZDdiZjY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJQcmludFNwZWNpYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
clByaW50U3BlY2lhbC5oCkBAIC0zMyw2ICszMyw5IEBACiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJs
ZXJQcmludGVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeworCitjbGFzcyBDQ2FsbEhlbHBlcnM7CisK
IG5hbWVzcGFjZSBQcmludGVyIHsKIAogdHlwZWRlZiBWZWN0b3I8QjM6OkFpcjo6QXJnPiBBcmdM
aXN0OwpAQCAtMTA1LDcgKzEwOCw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIGFkbWl0c1N0YWNr
KEluc3QmLCB1bnNpZ25lZCBhcmdJbmRleCkgZmluYWw7CiAgICAgYm9vbCBhZG1pdHNFeHRlbmRl
ZE9mZnNldEFkZHIoSW5zdCYsIHVuc2lnbmVkKSBmaW5hbDsKICAgICB2b2lkIHJlcG9ydFVzZWRS
ZWdpc3RlcnMoSW5zdCYsIGNvbnN0IFJlZ2lzdGVyU2V0JikgZmluYWw7Ci0gICAgQ0NhbGxIZWxw
ZXJzOjpKdW1wIGdlbmVyYXRlKEluc3QmLCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4
dCYpIGZpbmFsOworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGdlbmVyYXRlKEluc3QmLCBDQ2Fs
bEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpIGZpbmFsOwogICAgIFJlZ2lzdGVyU2V0IGV4
dHJhRWFybHlDbG9iYmVyZWRSZWdzKEluc3QmKSBmaW5hbDsKICAgICBSZWdpc3RlclNldCBleHRy
YUNsb2JiZXJlZFJlZ3MoSW5zdCYpIGZpbmFsOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpclNwZWNpYWwuaAppbmRleCBhNjU5ZDAzZDVhMi4uMDU2ZmQ1MTg5N2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BlY2lhbC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BlY2lhbC5oCkBAIC04Myw3ICs4Myw3IEBA
IHB1YmxpYzoKICAgICAvLyBDdXJyZW50bHksIHdlIGRvICgxKSBmb3IgQjMgc3RhY2ttYXBzLgog
ICAgIHZpcnR1YWwgdm9pZCByZXBvcnRVc2VkUmVnaXN0ZXJzKEluc3QmLCBjb25zdCBSZWdpc3Rl
clNldCYpID0gMDsKICAgICAKLSAgICB2aXJ0dWFsIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0
ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKSA9IDA7CisgICAgdmly
dHVhbCBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwg
R2VuZXJhdGlvbkNvbnRleHQmKSA9IDA7CiAKICAgICB2aXJ0dWFsIFJlZ2lzdGVyU2V0IGV4dHJh
RWFybHlDbG9iYmVyZWRSZWdzKEluc3QmKSA9IDA7CiAgICAgdmlydHVhbCBSZWdpc3RlclNldCBl
eHRyYUNsb2JiZXJlZFJlZ3MoSW5zdCYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyVmFsaWRhdGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJWYWxpZGF0ZS5jcHAKaW5kZXggMTAwOTkyOWM3YWMuLmVlNzQwNGNhYzhjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcApAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIkFpckNvZGUuaCIKICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5o
IgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCisjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3Ry
ZWFtLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJh
dG9yLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJi
CmluZGV4IGQ3MGNhNjNhOTE4Li4zMDY5ODIwYjQxZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgpAQCAtODA0LDYgKzgwNCw3IEBAIHdy
aXRlSCgiT3Bjb2RlVXRpbHMiKSB7CiB3cml0ZUgoIk9wY29kZUdlbmVyYXRlZCIpIHsKICAgICB8
IG91dHAgfAogICAgIG91dHAucHV0cyAiI2luY2x1ZGUgXCJBaXJJbnN0SW5saW5lcy5oXCIiCisg
ICAgb3V0cC5wdXRzICIjaW5jbHVkZSBcIkNDYWxsSGVscGVycy5oXCIiCiAgICAgb3V0cC5wdXRz
ICIjaW5jbHVkZSBcInd0Zi9QcmludFN0cmVhbS5oXCIiCiAgICAgb3V0cC5wdXRzICJuYW1lc3Bh
Y2UgV1RGIHsiCiAgICAgb3V0cC5wdXRzICJ1c2luZyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyOyIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggMDk2YzExMTFiYTUuLmM2ODQzOWE4NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIw
LTAxLTI5ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CisKKyAgICAgICAg
TW9zdCBvZiBCMyBhbmQgQWlyIGRvZXMgbm90IG5lZWQgdG8gaW5jbHVkZSBDQ2FsbEhlbHBlcnMu
aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2OTc1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2ltcGx5
IGZpeGVzIGEgbWlzc2luZyBpbmNsdWRlIHdoaWNoIHdhcyBoaWRkZW4gc28gZmFyIGluIGJvdGgg
cGxhY2VzIHRoYXQgU2luZ2xlUm9vdEdyYXBoLmggd2FzIGluY2x1ZGVkLgorCisgICAgICAgICog
d3RmL1NpbmdsZVJvb3RHcmFwaC5oOgorCiAyMDIwLTAyLTAzICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KIAogICAgICAgICBTdGFydCBzcGxpdHRpbmcgcGxhdGZvcm0gc3BlY2lmaWMg
b3ZlcnJpZGVzIG9mIGRlZmF1bHQgZW5hYmxlIGJlaGF2aW9yIGludG8gdGhlaXIgb3duIGZpbGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TaW5nbGVSb290R3JhcGguaCBiL1NvdXJjZS9X
VEYvd3RmL1NpbmdsZVJvb3RHcmFwaC5oCmluZGV4IDEzMTEwNzgwOWUwLi40ZDNiNWViYjUzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU2luZ2xlUm9vdEdyYXBoLmgKKysrIGIvU291cmNl
L1dURi93dGYvU2luZ2xlUm9vdEdyYXBoLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDx3
dGYvR3JhcGhOb2RlV29ya2xpc3QuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3Ry
ZWFtLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390023</attachid>
            <date>2020-02-06 16:19:06 -0800</date>
            <delta_ts>2020-02-06 19:12:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch206975</filename>
            <type>text/plain</type>
            <size>27159</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDdjMjMzMDNiZGU4Li5kM2RmNWUzMDA5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMjAtMDEtMjkgIFJvYmlu
IE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KKworICAgICAgICBNb3N0IG9mIEIzIGFu
ZCBBaXIgZG9lcyBub3QgbmVlZCB0byBpbmNsdWRlIENDYWxsSGVscGVycy5oCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY5NzUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGV5IG9ubHkgZG8gdG8gdXNl
IENDYWxsSGVscGVyczo6SnVtcCBvciBDQ2FsbEhlbHBlcnM6OkxhYmVsLgorICAgICAgICBCdXQg
Q0NhbGxIZWxwZXJzIGluaGVyaXQgdGhvc2UgZnJvbSBNYWNyb0Fzc2VtYmxlci4gQW5kIE1hY3Jv
QXNzZW1ibGVyLmggaXMgZHJhbWF0aWNhbGx5IGNoZWFwZXIgdG8gaW5jbHVkZSAoc2luY2UgQ0Nh
bGxIZWxwZXJzIGluY2x1ZGVzIEFzc2VtYmx5SGVscGVycyB3aGljaCBpbmNsdWRlcyBDb2RlQmxv
Y2suaCB3aGljaCBpbmNsdWRlcyByb3VnaGx5IHRoZSBlbnRpcmUgcnVudGltZSkuCisKKyAgICAg
ICAgKiBiMy9CM0NoZWNrU3BlY2lhbC5jcHA6CisgICAgICAgICogYjMvQjNDaGVja1NwZWNpYWwu
aDoKKyAgICAgICAgKiBiMy9CM0xvd2VyTWFjcm9zLmNwcDoKKyAgICAgICAgKiBiMy9CM1BhdGNo
cG9pbnRTcGVjaWFsLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlBhdGNocG9pbnRTcGVjaWFsOjpn
ZW5lcmF0ZSk6CisgICAgICAgICogYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oOgorICAgICAgICAq
IGIzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlN0
YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6c3VjY2Vzc29yTGFiZWxzIGNvbnN0KToKKyAgICAgICAg
KiBiMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oOgorICAgICAgICAqIGIzL2Fpci9BaXJB
bGxvY2F0ZVJlZ2lzdGVyc0FuZFN0YWNrQW5kR2VuZXJhdGVDb2RlLmg6CisgICAgICAgICogYjMv
YWlyL0FpckNDYWxsU3BlY2lhbC5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckNDYWxsU3BlY2lh
bC5oOgorICAgICAgICAqIGIzL2Fpci9BaXJDb2RlLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjplbnRyeXBvaW50TGFiZWwgY29u
c3QpOgorICAgICAgICAqIGIzL2Fpci9BaXJDdXN0b20uY3BwOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpDQ2FsbEN1c3RvbTo6Z2VuZXJhdGUpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpTaHVm
ZmxlQ3VzdG9tOjpnZW5lcmF0ZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Oldhc21Cb3VuZHND
aGVja0N1c3RvbTo6Z2VuZXJhdGUpOgorICAgICAgICAqIGIzL2Fpci9BaXJDdXN0b20uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OkFpcjo6UGF0Y2hDdXN0b206OmdlbmVyYXRlKToKKyAgICAgICAgKEpT
Qzo6QjM6OkFpcjo6RW50cnlTd2l0Y2hDdXN0b206OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9h
aXIvQWlyRGlzYXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6RGlzYXNzZW1i
bGVyOjphZGRJbnN0KToKKyAgICAgICAgKiBiMy9haXIvQWlyRGlzYXNzZW1ibGVyLmg6CisgICAg
ICAgICogYjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ckluc3QuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyUHJpbnRTcGVjaWFsLmNwcDoKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6UHJpbnRTcGVjaWFsOjpnZW5lcmF0ZSk6CisgICAgICAgICogYjMvYWly
L0FpclByaW50U3BlY2lhbC5oOgorICAgICAgICAqIGIzL2Fpci9BaXJTcGVjaWFsLmg6CisgICAg
ICAgICogYjMvYWlyL0FpclZhbGlkYXRlLmNwcDoKKyAgICAgICAgKiBiMy9haXIvb3Bjb2RlX2dl
bmVyYXRvci5yYjoKKwogMjAyMC0wMi0wNSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNv
bnkuY29tPgogCiAgICAgICAgIFtQbGF5U3RhdGlvbl0gQnVpbGQgYSBzaGFyZWQgSmF2YVNjcmlw
dENvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lh
bC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDaGVja1NwZWNpYWwuY3BwCmluZGV4
IGNlNjQ0NjYyNWVhLi4zZDEyY2IxYjFmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQ2hlY2tTcGVjaWFsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNDaGVja1NwZWNpYWwuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQWlySW5zdElu
bGluZXMuaCIKICNpbmNsdWRlICJCM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oIgogI2luY2x1
ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNDaGVja1NwZWNpYWwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0No
ZWNrU3BlY2lhbC5oCmluZGV4IDA2NTZhZDU0YmYxLi5iMWFkMDUxNDI3NyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFsLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFsLmgKQEAgLTI3LDcgKzI3LDYgQEAKIAogI2lm
IEVOQUJMRShCM19KSVQpCiAKLSNpbmNsdWRlICJBaXJBcmcuaCIKICNpbmNsdWRlICJBaXJLaW5k
LmgiCiAjaW5jbHVkZSAiQjNTdGFja21hcFNwZWNpYWwuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgpAQCAtMTI5LDcgKzEyOCw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBOT1RFOiB0aGUgZ2Vu
ZXJhdGUgbWV0aG9kIHdpbGwgZ2VuZXJhdGUgdGhlIGhpZGRlbiBicmFuY2ggYW5kIHRoZW4gcmVn
aXN0ZXIgYSBMYXRlUGF0aCB0aGF0CiAgICAgLy8gZ2VuZXJhdGVzIHRoZSBzdGFja21hcC4gU3Vw
ZXIgY3JhenkgZHVkZSEKIAotICAgIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShBaXI6Oklu
c3QmLCBDQ2FsbEhlbHBlcnMmLCBBaXI6OkdlbmVyYXRpb25Db250ZXh0JikgZmluYWw7CisgICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXAgZ2VuZXJhdGUoQWlyOjpJbnN0JiwgQ0NhbGxIZWxwZXJzJiwg
QWlyOjpHZW5lcmF0aW9uQ29udGV4dCYpIGZpbmFsOwogCiAgICAgdm9pZCBkdW1wSW1wbChQcmlu
dFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgZGVlcER1bXBJbXBsKFByaW50U3RyZWFt
JikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNF
bGltaW5hdGVDb21tb25TdWJleHByZXNzaW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNFbGltaW5hdGVDb21tb25TdWJleHByZXNzaW9ucy5jcHAKaW5kZXggYjZmY2RjYTZkZmYu
LjJkZTk5NjBmNWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNFbGlt
aW5hdGVDb21tb25TdWJleHByZXNzaW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzRWxpbWluYXRlQ29tbW9uU3ViZXhwcmVzc2lvbnMuY3BwCkBAIC00Myw3ICs0Myw2IEBA
CiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJCM1ZhcmlhYmxlLmgiCiAj
aW5jbHVkZSAiQjNWYXJpYWJsZVZhbHVlLmgiCi0jaW5jbHVkZSAiREZHR3JhcGguaCIKICNpbmNs
dWRlIDx3dGYvQ29tbWFQcmludGVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvTGlzdER1bXAuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM01lbW9yeVZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNNZW1vcnlWYWx1
ZS5oCmluZGV4IGI5OThhZWRjOTNmLi5mNjFkY2ZkMjc2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzTWVtb3J5VmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNNZW1vcnlWYWx1ZS5oCkBAIC0yNyw3ICsyNyw2IEBACiAKICNpZiBFTkFCTEUoQjNf
SklUKQogCi0jaW5jbHVkZSAiQWlyQXJnLmgiCiAjaW5jbHVkZSAiQjNCYW5rLmgiCiAjaW5jbHVk
ZSAiQjNIZWFwUmFuZ2UuaCIKICNpbmNsdWRlICJCM1ZhbHVlLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5jcHAKaW5kZXggOTRmYTBmMjhlMDgu
Ljk0ZjU4YTM3M2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRj
aHBvaW50U3BlY2lhbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hw
b2ludFNwZWNpYWwuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgYm9vbCBQYXRjaHBvaW50U3BlY2lh
bDo6YWRtaXRzRXh0ZW5kZWRPZmZzZXRBZGRyKEluc3QmIGluc3QsIHVuc2lnbmVkIGFyZ0luZGV4
KQogICAgIHJldHVybiBhZG1pdHNTdGFjayhpbnN0LCBhcmdJbmRleCk7CiB9CiAKLUNDYWxsSGVs
cGVyczo6SnVtcCBQYXRjaHBvaW50U3BlY2lhbDo6Z2VuZXJhdGUoSW5zdCYgaW5zdCwgQ0NhbGxI
ZWxwZXJzJiBqaXQsIEFpcjo6R2VuZXJhdGlvbkNvbnRleHQmIGNvbnRleHQpCitNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCBQYXRjaHBvaW50U3BlY2lhbDo6Z2VuZXJhdGUoSW5zdCYgaW5zdCwgQ0NhbGxI
ZWxwZXJzJiBqaXQsIEFpcjo6R2VuZXJhdGlvbkNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgY29u
c3QgUHJvY2VkdXJlJiBwcm9jZWR1cmUgPSBjb2RlKCkucHJvYygpOwogICAgIFBhdGNocG9pbnRW
YWx1ZSogdmFsdWUgPSBpbnN0Lm9yaWdpbi0+YXM8UGF0Y2hwb2ludFZhbHVlPigpOwpAQCAtMTcw
LDcgKzE3MCw3IEBAIENDYWxsSGVscGVyczo6SnVtcCBQYXRjaHBvaW50U3BlY2lhbDo6Z2VuZXJh
dGUoSW5zdCYgaW5zdCwgQ0NhbGxIZWxwZXJzJiBqaXQsIEFpCiAgICAgCiAgICAgdmFsdWUtPm1f
Z2VuZXJhdG9yLT5ydW4oaml0LCBwYXJhbXMpOwogCi0gICAgcmV0dXJuIENDYWxsSGVscGVyczo6
SnVtcCgpOworICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlcjo6SnVtcCgpOwogfQogCiBib29sIFBh
dGNocG9pbnRTcGVjaWFsOjppc1Rlcm1pbmFsKEluc3QmIGluc3QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuaAppbmRleCBlZWZlNDAxOTU2Yi4uN2Nj
NzZhYjkzNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9p
bnRTcGVjaWFsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNw
ZWNpYWwuaApAQCAtNTUsNyArNTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gTk9URTogdGhlIGdl
bmVyYXRlIG1ldGhvZCB3aWxsIGdlbmVyYXRlIHRoZSBoaWRkZW4gYnJhbmNoIGFuZCB0aGVuIHJl
Z2lzdGVyIGEgTGF0ZVBhdGggdGhhdAogICAgIC8vIGdlbmVyYXRlcyB0aGUgc3RhY2ttYXAuIFN1
cGVyIGNyYXp5IGR1ZGUhCiAKLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZ2VuZXJhdGUoQWlyOjpJ
bnN0JiwgQ0NhbGxIZWxwZXJzJiwgQWlyOjpHZW5lcmF0aW9uQ29udGV4dCYpIGZpbmFsOworICAg
IE1hY3JvQXNzZW1ibGVyOjpKdW1wIGdlbmVyYXRlKEFpcjo6SW5zdCYsIENDYWxsSGVscGVycyYs
IEFpcjo6R2VuZXJhdGlvbkNvbnRleHQmKSBmaW5hbDsKICAgICAKICAgICBib29sIGlzVGVybWlu
YWwoQWlyOjpJbnN0JikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuY3BwCmluZGV4IDM0MzViMGU2M2EwLi45
MmNkODBlZDdjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNT
dGFja21hcEdlbmVyYXRpb25QYXJhbXMuY3BwCkBAIC01OSwxMiArNTksMTIgQEAgUmVnaXN0ZXJT
ZXQgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjp1bmF2YWlsYWJsZVJlZ2lzdGVycygpIGNvbnN0
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotVmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVs
Pj4gU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjpzdWNjZXNzb3JMYWJlbHMoKSBjb25zdAorVmVj
dG9yPEJveDxNYWNyb0Fzc2VtYmxlcjo6TGFiZWw+PiBTdGFja21hcEdlbmVyYXRpb25QYXJhbXM6
OnN1Y2Nlc3NvckxhYmVscygpIGNvbnN0CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9jb250ZXh0
LmluZGV4SW5CbG9jayA9PSBtX2NvbnRleHQuY3VycmVudEJsb2NrLT5zaXplKCkgLSAxKTsKICAg
ICBSRUxFQVNFX0FTU0VSVChtX3ZhbHVlLT5lZmZlY3RzKCkudGVybWluYWwpOwogICAgIAotICAg
IFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IHJlc3VsdChtX2NvbnRleHQuY3VycmVu
dEJsb2NrLT5udW1TdWNjZXNzb3JzKCkpOworICAgIFZlY3RvcjxCb3g8TWFjcm9Bc3NlbWJsZXI6
OkxhYmVsPj4gcmVzdWx0KG1fY29udGV4dC5jdXJyZW50QmxvY2stPm51bVN1Y2Nlc3NvcnMoKSk7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9jb250ZXh0LmN1cnJlbnRCbG9jay0+bnVtU3VjY2Vz
c29ycygpOyBpLS07KQogICAgICAgICByZXN1bHRbaV0gPSBtX2NvbnRleHQuYmxvY2tMYWJlbHNb
bV9jb250ZXh0LmN1cnJlbnRCbG9jay0+c3VjY2Vzc29yQmxvY2soaSldOwogICAgIHJldHVybiBy
ZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdl
bmVyYXRpb25QYXJhbXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtcy5oCmluZGV4IDBmN2Q3MmQ5YmIwLi5hMzYyNTQ4OGVhNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
LmgKQEAgLTI5LDExICsyOSwxNSBAQAogCiAjaW5jbHVkZSAiQWlyR2VuZXJhdGlvbkNvbnRleHQu
aCIKICNpbmNsdWRlICJCM1ZhbHVlUmVwLmgiCi0jaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisj
aW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKICNpbmNsdWRlICJSZWdpc3RlclNldC5oIgogI2lu
Y2x1ZGUgPHd0Zi9Cb3guaD4KIAotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CituYW1l
c3BhY2UgSlNDIHsKKworY2xhc3MgQ0NhbGxIZWxwZXJzOworCituYW1lc3BhY2UgQjMgewogCiBj
bGFzcyBDaGVja1NwZWNpYWw7CiBjbGFzcyBQYXRjaHBvaW50U3BlY2lhbDsKQEAgLTg5LDcgKzkz
LDcgQEAgcHVibGljOgogICAgIAogICAgIC8vIFRoaXMgaXMgY29tcHV0ZWQgbGF6aWx5LCBzbyBp
dCB3b24ndCB3b3JrIGlmIHlvdSBjYXB0dXJlIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyBieSB2
YWx1ZS4KICAgICAvLyBUaGVzZSBsYWJlbHMgd2lsbCBnZXQgcG9wdWxhdGVkIGJlZm9yZSBhbnkg
bGF0ZSBwYXRocyBvciBsaW5rIHRhc2tzIGV4ZWN1dGUuCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUg
VmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gc3VjY2Vzc29yTGFiZWxzKCkgY29uc3Q7
CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmVjdG9yPEJveDxNYWNyb0Fzc2VtYmxlcjo6TGFiZWw+
PiBzdWNjZXNzb3JMYWJlbHMoKSBjb25zdDsKICAgICAKICAgICAvLyBUaGlzIGlzIGNvbXB1dGVk
IGxhemlseSwgc28gaXQgd29uJ3Qgd29yayBpZiB5b3UgY2FwdHVyZSBTdGFja21hcEdlbmVyYXRp
b25QYXJhbXMgYnkgdmFsdWUuCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBzdWNjZXNzb3Ig
YXQgdGhlIGdpdmVuIGluZGV4IGlzIGdvaW5nIHRvIGJlIGVtaXR0ZWQgcmlnaHQgYWZ0ZXIgdGhl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFZhbHVlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFZhbHVlLmgKaW5kZXggNzBjNDlj
ODYxMDkuLmRlMGRjOTYzZmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNTdGFja21hcFZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2tt
YXBWYWx1ZS5oCkBAIC0zMCwxMSArMzAsMTQgQEAKICNpbmNsdWRlICJCM0NvbnN0cmFpbmVkVmFs
dWUuaCIKICNpbmNsdWRlICJCM1ZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZVJlcC5oIgotI2lu
Y2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyU2V0LmgiCiAjaW5jbHVk
ZSA8d3RmL1NoYXJlZFRhc2suaD4KIAotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7Citu
YW1lc3BhY2UgSlNDIHsKKworY2xhc3MgQ0NhbGxIZWxwZXJzOworCituYW1lc3BhY2UgQjMgewog
CiBjbGFzcyBTdGFja21hcEdlbmVyYXRpb25QYXJhbXM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVSZWdpc3RlcnNBbmRTdGFja0FuZEdlbmVy
YXRlQ29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVJlZ2lz
dGVyc0FuZFN0YWNrQW5kR2VuZXJhdGVDb2RlLmgKaW5kZXggODFiMGFhMGY3YzQuLjY2ZmZjY2M1
ODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRl
UmVnaXN0ZXJzQW5kU3RhY2tBbmRHZW5lcmF0ZUNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpckFsbG9jYXRlUmVnaXN0ZXJzQW5kU3RhY2tBbmRHZW5lcmF0ZUNvZGUu
aApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQWlyTGl2ZW5lc3MuaCIKICNpbmNsdWRl
ICJBaXJUbXBNYXAuaCIKKyNpbmNsdWRlIDx3dGYvTm9ubW92YWJsZS5oPgogCiBuYW1lc3BhY2Ug
SlNDIHsgCiAKQEAgLTg3LDggKzg4LDggQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
VW5pZmllZFRtcExpdmVuZXNzPiBtX2xpdmVuZXNzOwogCiAgICAgc3RydWN0IFBhdGNoU3BpbGxE
YXRhIHsKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGp1bXA7Ci0gICAgICAgIENDYWxsSGVs
cGVyczo6TGFiZWwgY29udGludWVMYWJlbDsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
anVtcDsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGNvbnRpbnVlTGFiZWw7CiAgICAg
ICAgIEhhc2hNYXA8VG1wLCBBcmcqPiBkZWZkVG1wczsKICAgICB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNDYWxsU3BlY2lhbC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNDYWxsU3BlY2lhbC5jcHAKaW5kZXggNTBhNTA5NDZi
NzkuLjYxOTE5NWJiNzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckNDYWxsU3BlY2lhbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJDQ2FsbFNwZWNpYWwuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoQjNfSklU
KQogCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIAogQ0NhbGxTcGVjaWFsOjpDQ2FsbFNwZWNpYWwoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFsLmgKaW5kZXgg
YzUxYTM3MzkyOTMuLmJjYWQwMGFlYWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckNDYWxsU3BlY2lhbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQ0NhbGxTcGVjaWFsLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoQjNf
SklUKQogCiAjaW5jbHVkZSAiQWlyU3BlY2lhbC5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyU2V0Lmgi
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApAQCAt
NTcsNyArNTgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBhZG1pdHNTdGFjayhJbnN0JiwgdW5z
aWduZWQgYXJnSW5kZXgpIGZpbmFsOwogICAgIGJvb2wgYWRtaXRzRXh0ZW5kZWRPZmZzZXRBZGRy
KEluc3QmLCB1bnNpZ25lZCkgZmluYWw7CiAgICAgdm9pZCByZXBvcnRVc2VkUmVnaXN0ZXJzKElu
c3QmLCBjb25zdCBSZWdpc3RlclNldCYpIGZpbmFsOwotICAgIENDYWxsSGVscGVyczo6SnVtcCBn
ZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKSBmaW5hbDsK
KyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwg
R2VuZXJhdGlvbkNvbnRleHQmKSBmaW5hbDsKICAgICBSZWdpc3RlclNldCBleHRyYUVhcmx5Q2xv
YmJlcmVkUmVncyhJbnN0JikgZmluYWw7CiAgICAgUmVnaXN0ZXJTZXQgZXh0cmFDbG9iYmVyZWRS
ZWdzKEluc3QmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJDb2RlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5j
cHAKaW5kZXggNjYzYTIyZjBmZWEuLjA2NzBlOThlNjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyQ29kZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJCM0Jhc2lj
QmxvY2tVdGlscy5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNTdGFj
a1Nsb3QuaCIKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlIDx3dGYvTGlzdER1
bXAuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQ29kZS5oCmluZGV4IDY2NDJhNGJhZmZkLi4xZDc3NzlhYjVhMSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKQEAgLTM0LDEzICszNCwxOSBAQAogI2luY2x1
ZGUgIkFpclN0YWNrU2xvdC5oIgogI2luY2x1ZGUgIkFpclRtcC5oIgogI2luY2x1ZGUgIkIzU3Bh
cnNlQ29sbGVjdGlvbi5oIgotI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkdQ
UkluZm8uaCIKKyNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIlJlZ2lzdGVy
QXRPZmZzZXRMaXN0LmgiCiAjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKKyNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9JbmRleE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9X
ZWFrUmFuZG9tLmg+CiAKLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworbmFtZXNwYWNl
IEpTQyB7CisKK2NsYXNzIENDYWxsSGVscGVyczsKKworbmFtZXNwYWNlIEIzIHsKIAogY2xhc3Mg
UHJvY2VkdXJlOwogCkBAIC0xOTYsNyArMjAyLDcgQEAgcHVibGljOgogICAgICAgICBSRUxFQVNF
X0FTU0VSVChtX2VudHJ5cG9pbnRzLnNpemUoKSA9PSBtX3Byb2xvZ3VlR2VuZXJhdG9ycy5zaXpl
KCkpOwogICAgIH0KICAgICAKLSAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGVudHJ5cG9pbnRMYWJl
bCh1bnNpZ25lZCBpbmRleCkgY29uc3QKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZW50cnlw
b2ludExhYmVsKHVuc2lnbmVkIGluZGV4KSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1f
ZW50cnlwb2ludExhYmVsc1tpbmRleF07CiAgICAgfQpAQCAtMzgzLDcgKzM4OSw3IEBAIHByaXZh
dGU6CiAgICAgUmVnaXN0ZXJTZXQgbV9jYWxsZWVTYXZlUmVnaXN0ZXJzOwogICAgIFN0YWNrU2xv
dCogbV9jYWxsZWVTYXZlU3RhY2tTbG90IHsgbnVsbHB0ciB9OwogICAgIFZlY3RvcjxGcmVxdWVu
dGVkQmxvY2s+IG1fZW50cnlwb2ludHM7IC8vIFRoaXMgaXMgZW1wdHkgdW50aWwgYWZ0ZXIgbG93
ZXJFbnRyeVN3aXRjaCgpLgotICAgIFZlY3RvcjxDQ2FsbEhlbHBlcnM6OkxhYmVsPiBtX2VudHJ5
cG9pbnRMYWJlbHM7IC8vIFRoaXMgaXMgZW1wdHkgdW50aWwgY29kZSBnZW5lcmF0aW9uLgorICAg
IFZlY3RvcjxNYWNyb0Fzc2VtYmxlcjo6TGFiZWw+IG1fZW50cnlwb2ludExhYmVsczsgLy8gVGhp
cyBpcyBlbXB0eSB1bnRpbCBjb2RlIGdlbmVyYXRpb24uCiAgICAgVmVjdG9yPFJlZjxQcm9sb2d1
ZUdlbmVyYXRvcj4sIDE+IG1fcHJvbG9ndWVHZW5lcmF0b3JzOwogICAgIFJlZlB0cjxXYXNtQm91
bmRzQ2hlY2tHZW5lcmF0b3I+IG1fd2FzbUJvdW5kc0NoZWNrR2VuZXJhdG9yOwogICAgIGNvbnN0
IGNoYXIqIG1fbGFzdFBoYXNlTmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyQ3VzdG9tLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
Q3VzdG9tLmNwcAppbmRleCA0OWNhNTRjMjRlZS4uMTNiY2QyNmMzNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1c3RvbS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJBaXJJbnN0SW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQ0NhbGxWYWx1ZS5oIgogI2luY2x1
ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApAQCAtOTYsMTEgKzk3
LDExIEBAIGJvb2wgQ0NhbGxDdXN0b206OmlzVmFsaWRGb3JtKEluc3QmIGluc3QpCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLUNDYWxsSGVscGVyczo6SnVtcCBDQ2FsbEN1c3RvbTo6Z2VuZXJhdGUo
SW5zdCYgaW5zdCwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKQorTWFjcm9Bc3Nl
bWJsZXI6Okp1bXAgQ0NhbGxDdXN0b206OmdlbmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVy
cyYsIEdlbmVyYXRpb25Db250ZXh0JikKIHsKICAgICBkYXRhTG9nKCJGQVRBTDogVW5sb3dlcmVk
IEMgY2FsbDogIiwgaW5zdCwgIlxuIik7CiAgICAgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCk7
Ci0gICAgcmV0dXJuIENDYWxsSGVscGVyczo6SnVtcCgpOworICAgIHJldHVybiBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCgpOwogfQogCiBib29sIFNodWZmbGVDdXN0b206OmlzVmFsaWRGb3JtKEluc3Qm
IGluc3QpCkBAIC0xNzEsMTEgKzE3MiwxMSBAQCBib29sIFNodWZmbGVDdXN0b206OmlzVmFsaWRG
b3JtKEluc3QmIGluc3QpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUNDYWxsSGVscGVyczo6SnVt
cCBTaHVmZmxlQ3VzdG9tOjpnZW5lcmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmLCBHZW5l
cmF0aW9uQ29udGV4dCYpCitNYWNyb0Fzc2VtYmxlcjo6SnVtcCBTaHVmZmxlQ3VzdG9tOjpnZW5l
cmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpCiB7CiAg
ICAgZGF0YUxvZygiRkFUQUw6IFVubG93ZXJlZCBzaHVmZmxlOiAiLCBpbnN0LCAiXG4iKTsKICAg
ICBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKTsKLSAgICByZXR1cm4gQ0NhbGxIZWxwZXJzOjpK
dW1wKCk7CisgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpKdW1wKCk7CiB9CiAKIGJvb2wgV2Fz
bUJvdW5kc0NoZWNrQ3VzdG9tOjppc1ZhbGlkRm9ybShJbnN0JiBpbnN0KQpAQCAtMTg4LDYgKzE4
OSwyOCBAQCBib29sIFdhc21Cb3VuZHNDaGVja0N1c3RvbTo6aXNWYWxpZEZvcm0oSW5zdCYgaW5z
dCkKICAgICByZXR1cm4gaW5zdC5hcmdzWzFdLmlzUmVnKCkgfHwgaW5zdC5hcmdzWzFdLmlzVG1w
KCkgfHwgaW5zdC5hcmdzWzFdLmlzU29tZUltbSgpOwogfQogCitNYWNyb0Fzc2VtYmxlcjo6SnVt
cCBXYXNtQm91bmRzQ2hlY2tDdXN0b206OmdlbmVyYXRlKEluc3QmIGluc3QsIENDYWxsSGVscGVy
cyYgaml0LCBHZW5lcmF0aW9uQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICBXYXNtQm91bmRzQ2hl
Y2tWYWx1ZSogdmFsdWUgPSBpbnN0Lm9yaWdpbi0+YXM8V2FzbUJvdW5kc0NoZWNrVmFsdWU+KCk7
CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBJbnN0KEFpcjo6QnJhbmNo
NjQsIHZhbHVlLCBBcmc6OnJlbENvbmQoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCksIGlu
c3QuYXJnc1swXSwgaW5zdC5hcmdzWzFdKS5nZW5lcmF0ZShqaXQsIGNvbnRleHQpOworCisgICAg
Y29udGV4dC5sYXRlUGF0aHMuYXBwZW5kKGNyZWF0ZVNoYXJlZFRhc2s8R2VuZXJhdGlvbkNvbnRl
eHQ6OkxhdGVQYXRoRnVuY3Rpb24+KAorICAgICAgICBbb3V0T2ZCb3VuZHMsIHZhbHVlXSAoQ0Nh
bGxIZWxwZXJzJiBqaXQsIEFpcjo6R2VuZXJhdGlvbkNvbnRleHQmIGNvbnRleHQpIHsKKyAgICAg
ICAgICAgIG91dE9mQm91bmRzLmxpbmsoJmppdCk7CisgICAgICAgICAgICBzd2l0Y2ggKHZhbHVl
LT5ib3VuZHNUeXBlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgV2FzbUJvdW5kc0NoZWNrVmFsdWU6
OlR5cGU6OlBpbm5lZDoKKyAgICAgICAgICAgICAgICBjb250ZXh0LmNvZGUtPndhc21Cb3VuZHND
aGVja0dlbmVyYXRvcigpLT5ydW4oaml0LCB2YWx1ZS0+Ym91bmRzKCkucGlubmVkU2l6ZSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgV2FzbUJvdW5kc0NoZWNr
VmFsdWU6OlR5cGU6Ok1heGltdW06CisgICAgICAgICAgICAgICAgY29udGV4dC5jb2RlLT53YXNt
Qm91bmRzQ2hlY2tHZW5lcmF0b3IoKS0+cnVuKGppdCwgSW52YWxpZEdQUlJlZyk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0pKTsKKworICAgIC8vIFdl
IHNhaWQgd2Ugd2VyZSBub3QgYSB0ZXJtaW5hbC4KKyAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6
Okp1bXAoKTsKK30KIAogfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1c3RvbS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0b20uaAppbmRleCBlOThhZmVhODY3Ni4uNTJiZWFk
YWJkNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9t
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0b20uaApAQCAtMzMs
NiArMzMsNyBAQAogI2luY2x1ZGUgIkFpclNwZWNpYWwuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5s
aW5lcy5oIgogI2luY2x1ZGUgIkIzV2FzbUJvdW5kc0NoZWNrVmFsdWUuaCIKKyNpbmNsdWRlICJN
YWNyb0Fzc2VtYmxlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNw
YWNlIEFpciB7CiAKQEAgLTEwOCw3ICsxMDksNyBAQCBzdHJ1Y3QgUGF0Y2hDdXN0b20gewogICAg
ICAgICByZXR1cm4gaW5zdC5hcmdzWzBdLnNwZWNpYWwoKS0+aGFzTm9uQXJnTm9uQ29udHJvbEVm
ZmVjdHMoaW5zdCk7CiAgICAgfQogCi0gICAgc3RhdGljIENDYWxsSGVscGVyczo6SnVtcCBnZW5l
cmF0ZSgKKyAgICBzdGF0aWMgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZ2VuZXJhdGUoCiAgICAgICAg
IEluc3QmIGluc3QsIENDYWxsSGVscGVycyYgaml0LCBHZW5lcmF0aW9uQ29udGV4dCYgY29udGV4
dCkKICAgICB7CiAgICAgICAgIHJldHVybiBpbnN0LmFyZ3NbMF0uc3BlY2lhbCgpLT5nZW5lcmF0
ZShpbnN0LCBqaXQsIGNvbnRleHQpOwpAQCAtMTgxLDcgKzE4Miw3IEBAIHN0cnVjdCBDQ2FsbEN1
c3RvbSA6IHB1YmxpYyBDb21tb25DdXN0b21CYXNlPENDYWxsQ3VzdG9tPiB7CiAgICAgfQogCiAg
ICAgLy8gVGhpcyBqdXN0IGNyYXNoZXMsIHNpbmNlIHdlIGV4cGVjdCBDIGNhbGxzIHRvIGJlIGxv
d2VyZWQgYmVmb3JlIGdlbmVyYXRpb24uCi0gICAgc3RhdGljIENDYWxsSGVscGVyczo6SnVtcCBn
ZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKTsKKyAgICBz
dGF0aWMgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZ2VuZXJhdGUoSW5zdCYsIENDYWxsSGVscGVycyYs
IEdlbmVyYXRpb25Db250ZXh0Jik7CiB9OwogCiBzdHJ1Y3QgQ29sZENDYWxsQ3VzdG9tIDogQ0Nh
bGxDdXN0b20gewpAQCAtMjQ4LDcgKzI0OSw3IEBAIHN0cnVjdCBTaHVmZmxlQ3VzdG9tIDogcHVi
bGljIENvbW1vbkN1c3RvbUJhc2U8U2h1ZmZsZUN1c3RvbT4gewogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogCi0gICAgc3RhdGljIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShJbnN0
JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKTsKKyAgICBzdGF0aWMgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgZ2VuZXJhdGUoSW5zdCYsIENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25D
b250ZXh0Jik7CiB9OwogCiBzdHJ1Y3QgRW50cnlTd2l0Y2hDdXN0b20gOiBwdWJsaWMgQ29tbW9u
Q3VzdG9tQmFzZTxFbnRyeVN3aXRjaEN1c3RvbT4gewpAQCAtMjg4LDEyICsyODksMTIgQEAgc3Ry
dWN0IEVudHJ5U3dpdGNoQ3VzdG9tIDogcHVibGljIENvbW1vbkN1c3RvbUJhc2U8RW50cnlTd2l0
Y2hDdXN0b20+IHsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHN0YXRpYyBD
Q2FsbEhlbHBlcnM6Okp1bXAgZ2VuZXJhdGUoSW5zdCYsIENDYWxsSGVscGVycyYsIEdlbmVyYXRp
b25Db250ZXh0JikKKyAgICBzdGF0aWMgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZ2VuZXJhdGUoSW5z
dCYsIENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250ZXh0JikKICAgICB7CiAgICAgICAgIC8v
IFRoaXMgc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQgYmVjYXVzZSB3ZSBzaG91bGQgaGF2ZSBsb3dl
cmVkIEVudHJ5U3dpdGNoIGJlZm9yZQogICAgICAgICAvLyBnZW5lcmF0aW9uLgogICAgICAgICBV
TlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKTsKLSAgICAgICAgcmV0dXJuIENDYWxsSGVscGVyczo6
SnVtcCgpOworICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6Okp1bXAoKTsKICAgICB9CiB9
OwogCkBAIC0zMzMsMjggKzMzNCw3IEBAIHN0cnVjdCBXYXNtQm91bmRzQ2hlY2tDdXN0b20gOiBw
dWJsaWMgQ29tbW9uQ3VzdG9tQmFzZTxXYXNtQm91bmRzQ2hlY2tDdXN0b20+IHsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgc3RhdGljIENDYWxsSGVscGVyczo6SnVtcCBnZW5l
cmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMmIGppdCwgR2VuZXJhdGlvbkNvbnRleHQmIGNv
bnRleHQpCi0gICAgewotICAgICAgICBXYXNtQm91bmRzQ2hlY2tWYWx1ZSogdmFsdWUgPSBpbnN0
Lm9yaWdpbi0+YXM8V2FzbUJvdW5kc0NoZWNrVmFsdWU+KCk7Ci0gICAgICAgIENDYWxsSGVscGVy
czo6SnVtcCBvdXRPZkJvdW5kcyA9IEluc3QoQWlyOjpCcmFuY2g2NCwgdmFsdWUsIEFyZzo6cmVs
Q29uZChDQ2FsbEhlbHBlcnM6OkFib3ZlT3JFcXVhbCksIGluc3QuYXJnc1swXSwgaW5zdC5hcmdz
WzFdKS5nZW5lcmF0ZShqaXQsIGNvbnRleHQpOwotCi0gICAgICAgIGNvbnRleHQubGF0ZVBhdGhz
LmFwcGVuZChjcmVhdGVTaGFyZWRUYXNrPEdlbmVyYXRpb25Db250ZXh0OjpMYXRlUGF0aEZ1bmN0
aW9uPigKLSAgICAgICAgICAgIFtvdXRPZkJvdW5kcywgdmFsdWVdIChDQ2FsbEhlbHBlcnMmIGpp
dCwgQWlyOjpHZW5lcmF0aW9uQ29udGV4dCYgY29udGV4dCkgewotICAgICAgICAgICAgICAgIG91
dE9mQm91bmRzLmxpbmsoJmppdCk7Ci0gICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS0+Ym91
bmRzVHlwZSgpKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBXYXNtQm91bmRzQ2hlY2tWYWx1ZTo6
VHlwZTo6UGlubmVkOgotICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmNvZGUtPndhc21Cb3Vu
ZHNDaGVja0dlbmVyYXRvcigpLT5ydW4oaml0LCB2YWx1ZS0+Ym91bmRzKCkucGlubmVkU2l6ZSk7
Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAgICAgY2FzZSBXYXNt
Qm91bmRzQ2hlY2tWYWx1ZTo6VHlwZTo6TWF4aW11bToKLSAgICAgICAgICAgICAgICAgICAgY29u
dGV4dC5jb2RlLT53YXNtQm91bmRzQ2hlY2tHZW5lcmF0b3IoKS0+cnVuKGppdCwgSW52YWxpZEdQ
UlJlZyk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIH0pKTsKLQotICAgICAgICAvLyBXZSBzYWlkIHdlIHdlcmUgbm90IGEgdGVybWlu
YWwuCi0gICAgICAgIHJldHVybiBDQ2FsbEhlbHBlcnM6Okp1bXAoKTsKLSAgICB9CisgICAgc3Rh
dGljIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGdlbmVyYXRlKEluc3QmLCBDQ2FsbEhlbHBlcnMmLCBH
ZW5lcmF0aW9uQ29udGV4dCYpOwogfTsKIAogfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFp
cgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEaXNhc3NlbWJs
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEaXNhc3NlbWJsZXIuY3Bw
CmluZGV4IGZmZTcxM2VmNTJhLi41MjQ4ZDFiZGM0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJEaXNhc3NlbWJsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyRGlzYXNzZW1ibGVyLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIkFpckNvZGUuaCIKICNpbmNsdWRlICJBaXJJbnN0LmgiCiAjaW5jbHVkZSAiQjNWYWx1
ZS5oIgorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5o
IgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKIApAQCAtNjMsNyArNjQsNyBAQCB2b2lkIERpc2Fz
c2VtYmxlcjo6c3RhcnRCbG9jayhCYXNpY0Jsb2NrKiBibG9jaywgQ0NhbGxIZWxwZXJzJiBqaXQp
CiAgICAgbV9ibG9ja3MuYXBwZW5kKGJsb2NrKTsKIH0KIAotdm9pZCBEaXNhc3NlbWJsZXI6OmFk
ZEluc3QoSW5zdCogaW5zdCwgQ0NhbGxIZWxwZXJzOjpMYWJlbCBzdGFydCwgQ0NhbGxIZWxwZXJz
OjpMYWJlbCBlbmQpCit2b2lkIERpc2Fzc2VtYmxlcjo6YWRkSW5zdChJbnN0KiBpbnN0LCBNYWNy
b0Fzc2VtYmxlcjo6TGFiZWwgc3RhcnQsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBlbmQpCiB7CiAg
ICAgYXV0byBhZGRSZXN1bHQgPSBtX2luc3RUb1JhbmdlLmFkZChpbnN0LCBzdGQ6Om1ha2VfcGFp
cihzdGFydCwgZW5kKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQoYWRkUmVzdWx0LmlzTmV3RW50cnkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEaXNhc3NlbWJs
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRGlzYXNzZW1ibGVyLmgKaW5k
ZXggYTI2NjI2NDJiMzguLjJlMWJkNTNlMTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpckRpc2Fzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyRGlzYXNzZW1ibGVyLmgKQEAgLTI3LDEwICsyNywxMSBAQAogCiAjaWYgRU5B
QkxFKEIzX0pJVCkKIAotI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIk1hY3Jv
QXNzZW1ibGVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyAKIAorY2xhc3MgQ0NhbGxIZWxwZXJzOwog
Y2xhc3MgTGlua0J1ZmZlcjsKIAogbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CkBAIC00
OSwxNyArNTAsMTcgQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnRMYXRlUGF0aChDQ2FsbEhlbHBl
cnMmKTsKICAgICB2b2lkIGVuZExhdGVQYXRoKENDYWxsSGVscGVycyYpOwogICAgIHZvaWQgc3Rh
cnRCbG9jayhCYXNpY0Jsb2NrKiwgQ0NhbGxIZWxwZXJzJik7Ci0gICAgdm9pZCBhZGRJbnN0KElu
c3QqLCBDQ2FsbEhlbHBlcnM6OkxhYmVsLCBDQ2FsbEhlbHBlcnM6OkxhYmVsKTsKKyAgICB2b2lk
IGFkZEluc3QoSW5zdCosIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCwgTWFjcm9Bc3NlbWJsZXI6Okxh
YmVsKTsKIAotICAgIHZvaWQgZHVtcChDb2RlJiwgUHJpbnRTdHJlYW0mLCBMaW5rQnVmZmVyJiwg
Y29uc3QgY2hhciogYWlyUHJlZml4LCBjb25zdCBjaGFyKiBhc21QcmVmaXgsIGNvbnN0IFNjb3Bl
ZExhbWJkYTx2b2lkKEluc3QmKT4mIGRvVG9FYWNoSW5zdCk7CisgICAgdm9pZCBkdW1wKENvZGUm
LCBQcmludFN0cmVhbSYsIExpbmtCdWZmZXImLCBjb25zdCBjaGFyKiBhaXJQcmVmaXgsIGNvbnN0
IGNoYXIqIGFzbVByZWZpeCwgY29uc3QgV1RGOjpTY29wZWRMYW1iZGE8dm9pZChJbnN0Jik+JiBk
b1RvRWFjaEluc3QpOwogCiBwcml2YXRlOgotICAgIEhhc2hNYXA8SW5zdCosIHN0ZDo6cGFpcjxD
Q2FsbEhlbHBlcnM6OkxhYmVsLCBDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gbV9pbnN0VG9SYW5nZTsK
KyAgICBIYXNoTWFwPEluc3QqLCBzdGQ6OnBhaXI8TWFjcm9Bc3NlbWJsZXI6OkxhYmVsLCBNYWNy
b0Fzc2VtYmxlcjo6TGFiZWw+PiBtX2luc3RUb1JhbmdlOwogICAgIFZlY3RvcjxCYXNpY0Jsb2Nr
Kj4gbV9ibG9ja3M7Ci0gICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBtX2VudHJ5cG9pbnRTdGFydDsK
LSAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIG1fZW50cnlwb2ludEVuZDsKLSAgICBDQ2FsbEhlbHBl
cnM6OkxhYmVsIG1fbGF0ZVBhdGhTdGFydDsKLSAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIG1fbGF0
ZVBhdGhFbmQ7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIG1fZW50cnlwb2ludFN0YXJ0Owor
ICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX2VudHJ5cG9pbnRFbmQ7CisgICAgTWFjcm9Bc3Nl
bWJsZXI6OkxhYmVsIG1fbGF0ZVBhdGhTdGFydDsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwg
bV9sYXRlUGF0aEVuZDsKIH07CiAKIH0gfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGlvbkNvbnRl
eHQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGlvbkNvbnRleHQu
aAppbmRleCA2MmZlYTAzZDU4My4uYzM1OGFjYTRjOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0LmgKQEAgLTI4LDcgKzI4LDcg
QEAKICNpZiBFTkFCTEUoQjNfSklUKQogCiAjaW5jbHVkZSAiQWlyQmFzaWNCbG9jay5oIgotI2lu
Y2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCiAjaW5j
bHVkZSA8d3RmL0JveC5oPgogI2luY2x1ZGUgPHd0Zi9JbmRleE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9TaGFyZWRUYXNrLmg+CkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIFNo
YXJlZFRhc2s8TGF0ZVBhdGhGdW5jdGlvbj4gTGF0ZVBhdGg7CiAKICAgICBWZWN0b3I8UmVmUHRy
PExhdGVQYXRoPj4gbGF0ZVBhdGhzOwotICAgIEluZGV4TWFwPEJhc2ljQmxvY2sqLCBCb3g8Q0Nh
bGxIZWxwZXJzOjpMYWJlbD4+IGJsb2NrTGFiZWxzOworICAgIEluZGV4TWFwPEJhc2ljQmxvY2sq
LCBCb3g8TWFjcm9Bc3NlbWJsZXI6OkxhYmVsPj4gYmxvY2tMYWJlbHM7CiAgICAgQmFzaWNCbG9j
ayogY3VycmVudEJsb2NrIHsgbnVsbHB0ciB9OwogICAgIHVuc2lnbmVkIGluZGV4SW5CbG9jayB7
IFVJTlRfTUFYIH07CiAgICAgQ29kZSogY29kZSB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJJbnN0LmgKaW5kZXggYjU3MjMzOWU4MzAuLmRjY2FlZTJiM2M4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaApAQCAtMjksNyArMjksOCBAQAogCiAj
aW5jbHVkZSAiQWlyQXJnLmgiCiAjaW5jbHVkZSAiQWlyS2luZC5oIgotI2luY2x1ZGUgIkNDYWxs
SGVscGVycy5oIgorI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCisjaW5jbHVkZSA8d3RmL1Nj
b3BlZExhbWJkYS5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtMTkxLDcgKzE5Miw3IEBAIHN0
cnVjdCBJbnN0IHsKICAgICAvLyBHZW5lcmF0ZSBzb21lIGNvZGUgZm9yIHRoaXMgaW5zdHJ1Y3Rp
b24uIFRoaXMgaXMsIGxpa2UsIGxpdGVyYWxseSBvdXIgYmFja2VuZC4gSWYgdGhpcyBpcyB0aGUK
ICAgICAvLyB0ZXJtaW5hbCwgaXQgcmV0dXJucyB0aGUganVtcCB0aGF0IG5lZWRzIHRvIGJlIGxp
bmtlZCBmb3IgdGhlICJ0aGVuIiBjYXNlLCB3aXRoIHRoZSAiZWxzZSIKICAgICAvLyBjYXNlIGJl
aW5nIGZhbGwtdGhyb3VnaC4gVGhpcyBmdW5jdGlvbiBpcyBhdXRvLWdlbmVyYXRlZCBieSBvcGNv
ZGVfZ2VuZXJhdG9yLnJiLgotICAgIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShDQ2FsbEhl
bHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpOworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGdl
bmVyYXRlKENDYWxsSGVscGVycyYsIEdlbmVyYXRpb25Db250ZXh0Jik7CiAKICAgICAvLyBJZiBz
b3VyY2UgYXJndW1lbnRzIGJlbmVmaXRzIGZyb20gYmVpbmcgYWxpYXNlZCB0byBhIGRlc3RpbmF0
aW9uIGFyZ3VtZW50LAogICAgIC8vIHRoaXMgcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZGVzdGlu
YXRpb24gYXJndW1lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpclBoYXNlU2NvcGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQaGFz
ZVNjb3BlLmNwcAppbmRleCAwNjJlYTI0ODNhMi4uMmU2MmU2YmY1ZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUGhhc2VTY29wZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQaGFzZVNjb3BlLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkFpckNvZGUuaCIKICNpbmNsdWRlICJBaXJWYWxpZGF0ZS5oIgogI2luY2x1
ZGUgIkIzQ29tbW9uLmgiCisjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQcmludFNwZWNpYWwuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQcmludFNwZWNpYWwuY3BwCmluZGV4IDFjN2M2
YjZmOTZmLi41NTk4NTcwNDFlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJQcmludFNwZWNpYWwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyUHJpbnRTcGVjaWFsLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShCM19K
SVQpCiAjaWYgRU5BQkxFKE1BU01fUFJPQkUpCiAKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIK
ICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlclByaW50ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewpAQCAtNjUsNyArNjYsNyBAQCB2b2lkIFByaW50
U3BlY2lhbDo6cmVwb3J0VXNlZFJlZ2lzdGVycyhJbnN0JiwgY29uc3QgUmVnaXN0ZXJTZXQmKQog
ewogfQogCi1DQ2FsbEhlbHBlcnM6Okp1bXAgUHJpbnRTcGVjaWFsOjpnZW5lcmF0ZShJbnN0JiBp
bnN0LCBDQ2FsbEhlbHBlcnMmIGppdCwgR2VuZXJhdGlvbkNvbnRleHQmKQorTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAgUHJpbnRTcGVjaWFsOjpnZW5lcmF0ZShJbnN0JiBpbnN0LCBDQ2FsbEhlbHBlcnMm
IGppdCwgR2VuZXJhdGlvbkNvbnRleHQmKQogewogICAgIHNpemVfdCBjdXJyZW50QXJnID0gMTsg
Ly8gU2tpcCB0aGUgUHJpbnRTcGVjaWFsIGFyZy4KICAgICBmb3IgKGF1dG8mIHRlcm0gOiAqbV9w
cmludFJlY29yZExpc3QpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyUHJpbnRTcGVjaWFsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclBy
aW50U3BlY2lhbC5oCmluZGV4IDFhOTYyNzgxMmRmLi5mZmQyZDdiZjY0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQcmludFNwZWNpYWwuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5oCkBAIC0zMyw2ICszMyw5
IEBACiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJQcmludGVyLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
eworCitjbGFzcyBDQ2FsbEhlbHBlcnM7CisKIG5hbWVzcGFjZSBQcmludGVyIHsKIAogdHlwZWRl
ZiBWZWN0b3I8QjM6OkFpcjo6QXJnPiBBcmdMaXN0OwpAQCAtMTA1LDcgKzEwOCw3IEBAIHByb3Rl
Y3RlZDoKICAgICBib29sIGFkbWl0c1N0YWNrKEluc3QmLCB1bnNpZ25lZCBhcmdJbmRleCkgZmlu
YWw7CiAgICAgYm9vbCBhZG1pdHNFeHRlbmRlZE9mZnNldEFkZHIoSW5zdCYsIHVuc2lnbmVkKSBm
aW5hbDsKICAgICB2b2lkIHJlcG9ydFVzZWRSZWdpc3RlcnMoSW5zdCYsIGNvbnN0IFJlZ2lzdGVy
U2V0JikgZmluYWw7Ci0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGdlbmVyYXRlKEluc3QmLCBDQ2Fs
bEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYpIGZpbmFsOworICAgIE1hY3JvQXNzZW1ibGVy
OjpKdW1wIGdlbmVyYXRlKEluc3QmLCBDQ2FsbEhlbHBlcnMmLCBHZW5lcmF0aW9uQ29udGV4dCYp
IGZpbmFsOwogICAgIFJlZ2lzdGVyU2V0IGV4dHJhRWFybHlDbG9iYmVyZWRSZWdzKEluc3QmKSBm
aW5hbDsKICAgICBSZWdpc3RlclNldCBleHRyYUNsb2JiZXJlZFJlZ3MoSW5zdCYpIGZpbmFsOwog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFs
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwZWNpYWwuaAppbmRleCBhNjU5
ZDAzZDVhMi4uMDU2ZmQ1MTg5N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyU3BlY2lhbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
U3BlY2lhbC5oCkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKICAgICAvLyBDdXJyZW50bHksIHdl
IGRvICgxKSBmb3IgQjMgc3RhY2ttYXBzLgogICAgIHZpcnR1YWwgdm9pZCByZXBvcnRVc2VkUmVn
aXN0ZXJzKEluc3QmLCBjb25zdCBSZWdpc3RlclNldCYpID0gMDsKICAgICAKLSAgICB2aXJ0dWFs
IENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJh
dGlvbkNvbnRleHQmKSA9IDA7CisgICAgdmlydHVhbCBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBnZW5l
cmF0ZShJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgR2VuZXJhdGlvbkNvbnRleHQmKSA9IDA7CiAKICAg
ICB2aXJ0dWFsIFJlZ2lzdGVyU2V0IGV4dHJhRWFybHlDbG9iYmVyZWRSZWdzKEluc3QmKSA9IDA7
CiAgICAgdmlydHVhbCBSZWdpc3RlclNldCBleHRyYUNsb2JiZXJlZFJlZ3MoSW5zdCYpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVmFsaWRhdGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJWYWxpZGF0ZS5jcHAKaW5kZXggMTAw
OTkyOWM3YWMuLmVlNzQwNGNhYzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpclZhbGlkYXRlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpclZhbGlkYXRlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkFpckNvZGUuaCIK
ICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCisj
aW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCmluZGV4IGQ3MGNhNjNhOTE4Li4zMDY5ODIwYjQx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJh
dG9yLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRv
ci5yYgpAQCAtODA0LDYgKzgwNCw3IEBAIHdyaXRlSCgiT3Bjb2RlVXRpbHMiKSB7CiB3cml0ZUgo
Ik9wY29kZUdlbmVyYXRlZCIpIHsKICAgICB8IG91dHAgfAogICAgIG91dHAucHV0cyAiI2luY2x1
ZGUgXCJBaXJJbnN0SW5saW5lcy5oXCIiCisgICAgb3V0cC5wdXRzICIjaW5jbHVkZSBcIkNDYWxs
SGVscGVycy5oXCIiCiAgICAgb3V0cC5wdXRzICIjaW5jbHVkZSBcInd0Zi9QcmludFN0cmVhbS5o
XCIiCiAgICAgb3V0cC5wdXRzICJuYW1lc3BhY2UgV1RGIHsiCiAgICAgb3V0cC5wdXRzICJ1c2lu
ZyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyOyIK
</data>

          </attachment>
      

    </bug>

</bugzilla>