<?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>33145</bug_id>
          
          <creation_ts>2010-01-04 03:04:07 -0800</creation_ts>
          <short_desc>Reorganize, document and rename CPU() platform macros.</short_desc>
          <delta_ts>2010-01-04 03:39:18 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>176636</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-01-04 03:04:07 -0800</bug_when>
    <thetext>Reorganize, document and rename CPU() platform macros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176640</commentid>
    <comment_count>1</comment_count>
      <attachid>45791</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-01-04 03:09:48 -0800</bug_when>
    <thetext>Created attachment 45791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176644</commentid>
    <comment_count>2</comment_count>
      <attachid>45791</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-04 03:13:31 -0800</bug_when>
    <thetext>Comment on attachment 45791
Patch

I agree that X86 is a CPU and not a PLATFORM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176646</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-04 03:13:52 -0800</bug_when>
    <thetext>Attachment 45791 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
Last 3072 characters of output:
/indent] [3]
JavaScriptCore/wtf/Platform.h:199:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:200:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:201:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:202:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:203:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:207:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:224:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:225:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:229:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:230:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:231:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:232:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:236:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:237:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:238:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:239:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:264:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:886:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:887:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:888:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:895:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:896:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
JavaScriptCore/wtf/Platform.h:897:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 48</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176660</commentid>
    <comment_count>4</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-01-04 03:39:18 -0800</bug_when>
    <thetext>Committed r52729: &lt;http://trac.webkit.org/changeset/52729&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45791</attachid>
            <date>2010-01-04 03:09:48 -0800</date>
            <delta_ts>2010-01-04 03:13:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33145-20100104030946.patch</filename>
            <type>text/plain</type>
            <size>78687</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDUyNzI2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODMgQEAKKzIwMTAtMDEtMDQgIE1hY2llaiBT
dGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW9yZ2FuaXplLCBkb2N1bWVudCBhbmQgcmVuYW1lIENQVSgp
IHBsYXRmb3JtIG1hY3Jvcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMzMTQ1CisgICAgICAgIEV4ZWN1dGFibGVBbGxvY2F0b3JTeW1iaWFuIGFwcGVh
cnMgdG8gaGF2ZSBidWdneSBBUk0gdmVyc2lvbiBjaGVjaworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzMxMzgKKyAgICAgICAgCisgICAgICAgICogd3Rm
L1BsYXRmb3JtLmg6CisgICAgICAgIFJlbmFtZSBhbGwgbWFjcm9zIHJlbGF0ZWQgdG8gZGV0ZWN0
aW9uIG9mIHBhcnRpY3VsYXIgQ1BVcyBvcgorICAgICAgICBjbGFzc2VzIG9mIENQVXMgdG8gQ1BV
KCksIHJlb3JnYW5pemUgYW5kIGRvY3VtZW50IHRoZW0uCisKKyAgICAgICAgQWxsIHJlbWFpbmlu
ZyBjaGFuZ2VzIGFyZSBhZGFwdGluZyB0byB0aGUgcmVuYW1lcywgcGx1cyBmaXhpbmcgdGhlCisg
ICAgICAgIHNlY29uZCBidWcgY2l0ZWQgYWJvdmUuCisgICAgICAgIAorICAgICAgICAqIGFzc2Vt
Ymxlci9BUk1Bc3NlbWJsZXIuY3BwOgorICAgICAgICAqIGFzc2VtYmxlci9BUk1Bc3NlbWJsZXIu
aDoKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaDoKKyAgICAgICAgKiBhc3Nl
bWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpBYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyOjpJbW0zMjo6SW1tMzIpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlci5oOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5jcHA6Cisg
ICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmg6CisgICAgICAgICogYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckNvZGVQdHI6Ok1hY3JvQXNzZW1ibGVyQ29kZVB0cik6CisgICAgICAgICogYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyWDg2Lmg6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uLmg6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0Lmg6Cisg
ICAgICAgICogYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpYODZSZWdp
c3RlcnM6Oik6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6KToKKyAgICAgICAgKEpTQzo6
WDg2QXNzZW1ibGVyOjptb3ZsX21FQVgpOgorICAgICAgICAoSlNDOjpYODZBc3NlbWJsZXI6Om1v
dmxfRUFYbSk6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6cmVwYXRjaExvYWRQdHJUb0xF
QSk6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6WDg2SW5zdHJ1Y3Rpb25Gb3JtYXR0ZXI6
Om1lbW9yeU1vZFJNKToKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oOgorICAg
ICAgICAqIGppdC9FeGVjdXRhYmxlQWxsb2NhdG9yRml4ZWRWTVBvb2wuY3BwOgorICAgICAgICAq
IGppdC9FeGVjdXRhYmxlQWxsb2NhdG9yUG9zaXguY3BwOgorICAgICAgICAqIGppdC9FeGVjdXRh
YmxlQWxsb2NhdG9yU3ltYmlhbi5jcHA6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVBbGxvY2F0
b3I6OmludGlhbGl6ZVBhZ2VTaXplKToKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAg
KiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVEFyaXRobWV0aWMuY3BwOgorICAgICAgICAq
IGppdC9KSVRJbmxpbmVNZXRob2RzLmg6CisgICAgICAgIChKU0M6OkpJVDo6YmVnaW5VbmludGVy
cnVwdGVkU2VxdWVuY2UpOgorICAgICAgICAoSlNDOjpKSVQ6OnJlc3RvcmVBcmd1bWVudFJlZmVy
ZW5jZUZvclRyYW1wb2xpbmUpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRDb3VudCk6CisgICAg
ICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21w
aWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nl
c3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlJZFByb3RvKToK
KyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUdldEJ5SWRQcm90b0xpc3QpOgorICAg
ICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlJZENoYWluTGlzdCk6CisgICAgICAg
IChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeUlkQ2hhaW4pOgorICAgICAgICAqIGppdC9K
SVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6SklUVGh1bmtzKToKKyAgICAg
ICAgKiBqaXQvSklUU3R1YnMuaDoKKyAgICAgICAgKiBydW50aW1lL0NvbGxlY3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OmN1cnJlbnRUaHJlYWRTdGFja0Jhc2UpOgorICAgICAgICAoSlNDOjpnZXRQ
bGF0Zm9ybVRocmVhZFJlZ2lzdGVycyk6CisgICAgICAgIChKU0M6Om90aGVyVGhyZWFkU3RhY2tQ
b2ludGVyKToKKyAgICAgICAgKiB3cmVjL1dSRUMuaDoKKyAgICAgICAgKiB3cmVjL1dSRUNHZW5l
cmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpXUkVDOjpHZW5lcmF0b3I6OmdlbmVyYXRlRW50ZXIp
OgorICAgICAgICAoSlNDOjpXUkVDOjpHZW5lcmF0b3I6OmdlbmVyYXRlUmV0dXJuU3VjY2Vzcyk6
CisgICAgICAgIChKU0M6OldSRUM6OkdlbmVyYXRvcjo6Z2VuZXJhdGVSZXR1cm5GYWlsdXJlKToK
KyAgICAgICAgKiB3cmVjL1dSRUNHZW5lcmF0b3IuaDoKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxv
Yy5jcHA6CisgICAgICAgICogd3RmL1RDU3BpbkxvY2suaDoKKyAgICAgICAgKFRDTWFsbG9jX1Nw
aW5Mb2NrOjpMb2NrKToKKyAgICAgICAgKFRDTWFsbG9jX1NwaW5Mb2NrOjpVbmxvY2spOgorICAg
ICAgICAoVENNYWxsb2NfU2xvd0xvY2spOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmcuaDoKKyAg
ICAgICAgKiB3dGYvZHRvYS5jcHA6CisgICAgICAgICogeWFyci9SZWdleEpJVC5jcHA6CisgICAg
ICAgIChKU0M6OllhcnI6OlJlZ2V4R2VuZXJhdG9yOjpnZW5lcmF0ZUVudGVyKToKKyAgICAgICAg
KEpTQzo6WWFycjo6UmVnZXhHZW5lcmF0b3I6OmdlbmVyYXRlUmV0dXJuKToKKyAgICAgICAgKiB5
YXJyL1JlZ2V4SklULmg6CisKIDIwMTAtMDEtMDQgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJbmRleDogSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0FSTUFzc2VtYmxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0FSTUFzc2VtYmxlci5jcHAJKHJldmlzaW9uIDUyNzI0KQorKysg
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTUFzc2VtYmxlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDcgKzI2LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgRU5BQkxFKEFT
U0VNQkxFUikgJiYgUExBVEZPUk0oQVJNX1RSQURJVElPTkFMKQorI2lmIEVOQUJMRShBU1NFTUJM
RVIpICYmIENQVShBUk1fVFJBRElUSU9OQUwpCiAKICNpbmNsdWRlICJBUk1Bc3NlbWJsZXIuaCIK
IApAQCAtNDAyLDQgKzQwMiw0IEBAIHZvaWQqIEFSTUFzc2VtYmxlcjo6ZXhlY3V0YWJsZUNvcHko
RXhlY3UKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKLSNlbmRpZiAvLyBFTkFCTEUoQVNTRU1CTEVS
KSAmJiBQTEFURk9STShBUk1fVFJBRElUSU9OQUwpCisjZW5kaWYgLy8gRU5BQkxFKEFTU0VNQkxF
UikgJiYgQ1BVKEFSTV9UUkFESVRJT05BTCkKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9BUk1Bc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
QVJNQXNzZW1ibGVyLmgJKHJldmlzaW9uIDUyNzI0KQorKysgSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0FSTUFzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNp
bmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KIAotI2lmIEVOQUJMRShBU1NFTUJMRVIpICYmIFBMQVRG
T1JNKEFSTV9UUkFESVRJT05BTCkKKyNpZiBFTkFCTEUoQVNTRU1CTEVSKSAmJiBDUFUoQVJNX1RS
QURJVElPTkFMKQogCiAjaW5jbHVkZSAiQXNzZW1ibGVyQnVmZmVyV2l0aENvbnN0YW50UG9vbC5o
IgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CkBAIC04MTIsNiArODEyLDYgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCi0jZW5kaWYgLy8gRU5BQkxFKEFTU0VN
QkxFUikgJiYgUExBVEZPUk0oQVJNX1RSQURJVElPTkFMKQorI2VuZGlmIC8vIEVOQUJMRShBU1NF
TUJMRVIpICYmIENQVShBUk1fVFJBRElUSU9OQUwpCiAKICNlbmRpZiAvLyBBUk1Bc3NlbWJsZXJf
aApJbmRleDogSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgJKHJldmlz
aW9uIDUyNzI0KQorKysgSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9y
bS5oPgogCi0jaWYgRU5BQkxFKEFTU0VNQkxFUikgJiYgUExBVEZPUk0oQVJNX1RIVU1CMikKKyNp
ZiBFTkFCTEUoQVNTRU1CTEVSKSAmJiBDUFUoQVJNX1RIVU1CMikKIAogI2luY2x1ZGUgIkFzc2Vt
YmxlckJ1ZmZlci5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CkBAIC0xODMyLDYgKzE4
MzIsNiBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAotI2VuZGlmIC8vIEVOQUJM
RShBU1NFTUJMRVIpICYmIFBMQVRGT1JNKEFSTV9USFVNQjIpCisjZW5kaWYgLy8gRU5BQkxFKEFT
U0VNQkxFUikgJiYgQ1BVKEFSTV9USFVNQjIpCiAKICNlbmRpZiAvLyBBUk1Bc3NlbWJsZXJfaApJ
bmRleDogSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2Vt
Ymxlci5oCShyZXZpc2lvbiA1MjcyNCkKKysrIEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0
cmFjdE1hY3JvQXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3MywxNiArMTczLDE2IEBA
IHB1YmxpYzoKICAgICBzdHJ1Y3QgSW1tMzIgewogICAgICAgICBleHBsaWNpdCBJbW0zMihpbnQz
Ml90IHZhbHVlKQogICAgICAgICAgICAgOiBtX3ZhbHVlKHZhbHVlKQotI2lmIFBMQVRGT1JNKEFS
TSkKKyNpZiBDUFUoQVJNKQogICAgICAgICAgICAgLCBtX2lzUG9pbnRlcihmYWxzZSkKICNlbmRp
ZgogICAgICAgICB7CiAgICAgICAgIH0KIAotI2lmICFQTEFURk9STShYODZfNjQpCisjaWYgIUNQ
VShYODZfNjQpCiAgICAgICAgIGV4cGxpY2l0IEltbTMyKEltbVB0ciBwdHIpCiAgICAgICAgICAg
ICA6IG1fdmFsdWUocHRyLmFzSW50cHRyKCkpCi0jaWYgUExBVEZPUk0oQVJNKQorI2lmIENQVShB
Uk0pCiAgICAgICAgICAgICAsIG1faXNQb2ludGVyKHRydWUpCiAjZW5kaWYKICAgICAgICAgewpA
QCAtMTkwLDcgKzE5MCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgICAgIGludDMyX3QgbV92
YWx1ZTsKLSNpZiBQTEFURk9STShBUk0pCisjaWYgQ1BVKEFSTSkKICAgICAgICAgLy8gV2UgcmVs
eSBvbiBiZWluZyBhYmxlIHRvIHJlZ2VuZXJhdGUgY29kZSB0byByZWNvdmVyIGV4Y2VwdGlvbiBo
YW5kbGluZwogICAgICAgICAvLyBpbmZvcm1hdGlvbi4gIFNpbmNlIEFSTXY3IHN1cHBvcnRzIDE2
LWJpdCBpbW1lZGlhdGVzIHRoZXJlIGlzIGEgZGFuZ2VyCiAgICAgICAgIC8vIHRoYXQgaWYgcG9p
bnRlciB2YWx1ZXMgY2hhbmdlIHRoZSBsYXlvdXQgb2YgdGhlIGdlbmVyYXRlZCBjb2RlIHdpbGwg
Y2hhbmdlLgpJbmRleDogSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgJ
KHJldmlzaW9uIDUyNzI0KQorKysgSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE5ICszMCwxOSBAQAogCiAjaWYgRU5BQkxFKEFT
U0VNQkxFUikKIAotI2lmIFBMQVRGT1JNKEFSTV9USFVNQjIpCisjaWYgQ1BVKEFSTV9USFVNQjIp
CiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIgogbmFtZXNwYWNlIEpTQyB7IHR5cGVk
ZWYgTWFjcm9Bc3NlbWJsZXJBUk12NyBNYWNyb0Fzc2VtYmxlckJhc2U7IH07CiAKLSNlbGlmIFBM
QVRGT1JNKEFSTV9UUkFESVRJT05BTCkKKyNlbGlmIENQVShBUk1fVFJBRElUSU9OQUwpCiAjaW5j
bHVkZSAiTWFjcm9Bc3NlbWJsZXJBUk0uaCIKIG5hbWVzcGFjZSBKU0MgeyB0eXBlZGVmIE1hY3Jv
QXNzZW1ibGVyQVJNIE1hY3JvQXNzZW1ibGVyQmFzZTsgfTsKIAotI2VsaWYgUExBVEZPUk0oWDg2
KQorI2VsaWYgQ1BVKFg4NikKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlclg4Ni5oIgogbmFtZXNw
YWNlIEpTQyB7IHR5cGVkZWYgTWFjcm9Bc3NlbWJsZXJYODYgTWFjcm9Bc3NlbWJsZXJCYXNlOyB9
OwogCi0jZWxpZiBQTEFURk9STShYODZfNjQpCisjZWxpZiBDUFUoWDg2XzY0KQogI2luY2x1ZGUg
Ik1hY3JvQXNzZW1ibGVyWDg2XzY0LmgiCiBuYW1lc3BhY2UgSlNDIHsgdHlwZWRlZiBNYWNyb0Fz
c2VtYmxlclg4Nl82NCBNYWNyb0Fzc2VtYmxlckJhc2U7IH07CiAKQEAgLTYwLDcgKzYwLDcgQEAg
cHVibGljOgogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6anVtcDsKICAgICB1c2luZyBN
YWNyb0Fzc2VtYmxlckJhc2U6OmJyYW5jaDMyOwogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFz
ZTo6YnJhbmNoMTY7Ci0jaWYgUExBVEZPUk0oWDg2XzY0KQorI2lmIENQVShYODZfNjQpCiAgICAg
dXNpbmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjpicmFuY2hQdHI7CiAgICAgdXNpbmcgTWFjcm9Bc3Nl
bWJsZXJCYXNlOjpicmFuY2hUZXN0UHRyOwogI2VuZGlmCkBAIC0xMzMsNyArMTMzLDggQEAgcHVi
bGljOgogCiAgICAgLy8gUHRyIG1ldGhvZHMKICAgICAvLyBPbiAzMi1iaXQgcGxhdGZvcm1zIChp
LmUuIHg4NiksIHRoZXNlIG1ldGhvZHMgZGlyZWN0bHkgbWFwIG9udG8gdGhlaXIgMzItYml0IGVx
dWl2YWxlbnRzLgotI2lmICFQTEFURk9STShYODZfNjQpCisgICAgLy8gRklYTUU6IHNob3VsZCB0
aGlzIHVzZSBhIHRlc3QgZm9yIDMyLWJpdG5lc3MgaW5zdGVhZCBvZiB0aGlzIHNwZWNpZmljIGV4
Y2VwdGlvbj8KKyNpZiAhQ1BVKFg4Nl82NCkKICAgICB2b2lkIGFkZFB0cihSZWdpc3RlcklEIHNy
YywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgYWRkMzIoc3JjLCBkZXN0KTsKSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmNwcAko
cmV2aXNpb24gNTI3MjQpCisrKyBKYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAKICNpbmNsdWRlICJj
b25maWcuaCIKIAotI2lmIEVOQUJMRShBU1NFTUJMRVIpICYmIFBMQVRGT1JNKEFSTV9UUkFESVRJ
T05BTCkKKyNpZiBFTkFCTEUoQVNTRU1CTEVSKSAmJiBDUFUoQVJNX1RSQURJVElPTkFMKQogCiAj
aW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJBUk0uaCIKIApAQCAtNjIsNyArNjIsOCBAQCBzdGF0aWMg
Ym9vbCBpc1ZGUFByZXNlbnQoKQogCiBjb25zdCBib29sIE1hY3JvQXNzZW1ibGVyQVJNOjpzX2lz
VkZQUHJlc2VudCA9IGlzVkZQUHJlc2VudCgpOwogCi0jaWYgZGVmaW5lZChBUk1fUkVRVUlSRV9O
QVRVUkFMX0FMSUdOTUVOVCkgJiYgQVJNX1JFUVVJUkVfTkFUVVJBTF9BTElHTk1FTlQKKyNpZiBD
UFUoQVJNVjVfT1JfTE9XRVIpCisvKiBPbiBBUk12NSBhbmQgYmVsb3csIG5hdHVyYWwgYWxpZ25t
ZW50IGlzIHJlcXVpcmVkLiAqLwogdm9pZCBNYWNyb0Fzc2VtYmxlckFSTTo6bG9hZDMyV2l0aFVu
YWxpZ25lZEhhbGZXb3JkcyhCYXNlSW5kZXggYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogewog
ICAgIEFSTVdvcmQgb3AyOwpAQCAtOTEsNCArOTIsNCBAQCB2b2lkIE1hY3JvQXNzZW1ibGVyQVJN
Ojpsb2FkMzJXaXRoVW5hbGlnCiAKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShBU1NFTUJMRVIpICYm
IFBMQVRGT1JNKEFSTV9UUkFESVRJT05BTCkKKyNlbmRpZiAvLyBFTkFCTEUoQVNTRU1CTEVSKSAm
JiBDUFUoQVJNX1RSQURJVElPTkFMKQpJbmRleDogSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQVJNLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNLmgJKHJldmlzaW9uIDUyNzI0KQorKysgSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMw
LDcgQEAKIAogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgogCi0jaWYgRU5BQkxFKEFTU0VNQkxF
UikgJiYgUExBVEZPUk0oQVJNX1RSQURJVElPTkFMKQorI2lmIEVOQUJMRShBU1NFTUJMRVIpICYm
IENQVShBUk1fVFJBRElUSU9OQUwpCiAKICNpbmNsdWRlICJBUk1Bc3NlbWJsZXIuaCIKICNpbmNs
dWRlICJBYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgiCkBAIC0yMjQsNyArMjI0LDcgQEAgcHVibGlj
OgogICAgICAgICBtX2Fzc2VtYmxlci5iYXNlSW5kZXhUcmFuc2ZlcjMyKHRydWUsIGRlc3QsIGFk
ZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgc3RhdGljX2Nhc3Q8aW50PihhZGRyZXNzLnNjYWxl
KSwgYWRkcmVzcy5vZmZzZXQpOwogICAgIH0KIAotI2lmIGRlZmluZWQoQVJNX1JFUVVJUkVfTkFU
VVJBTF9BTElHTk1FTlQpICYmIEFSTV9SRVFVSVJFX05BVFVSQUxfQUxJR05NRU5UCisjaWYgQ1BV
KEFSTVY1X09SX0xPV0VSKQogICAgIHZvaWQgbG9hZDMyV2l0aFVuYWxpZ25lZEhhbGZXb3JkcyhC
YXNlSW5kZXggYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KTsKICNlbHNlCiAgICAgdm9pZCBsb2Fk
MzJXaXRoVW5hbGlnbmVkSGFsZldvcmRzKEJhc2VJbmRleCBhZGRyZXNzLCBSZWdpc3RlcklEIGRl
c3QpCkBAIC05MjgsNiArOTI4LDYgQEAgcHJpdmF0ZToKIAogfQogCi0jZW5kaWYgLy8gRU5BQkxF
KEFTU0VNQkxFUikgJiYgUExBVEZPUk0oQVJNX1RSQURJVElPTkFMKQorI2VuZGlmIC8vIEVOQUJM
RShBU1NFTUJMRVIpICYmIENQVShBUk1fVFJBRElUSU9OQUwpCiAKICNlbmRpZiAvLyBNYWNyb0Fz
c2VtYmxlckFSTV9oCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQ29kZVJlZi5oCShyZXZpc2lvbiA1MjcyNCkKKysrIEphdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyAr
MzcsNyBAQAogCiAvLyBBU1NFUlRfVkFMSURfQ09ERV9QT0lOVEVSIGNoZWNrcyB0aGF0IHB0ciBp
cyBhIG5vbi1udWxsIHBvaW50ZXIsIGFuZCB0aGF0IGl0IGlzIGEgdmFsaWQKIC8vIGluc3RydWN0
aW9uIGFkZHJlc3Mgb24gdGhlIHBsYXRmb3JtIChmb3IgZXhhbXBsZSwgY2hlY2sgYW55IGFsaWdu
bWVudCByZXF1aXJlbWVudHMpLgotI2lmIFBMQVRGT1JNKEFSTV9USFVNQjIpCisjaWYgQ1BVKEFS
TV9USFVNQjIpCiAvLyBBUk0vdGh1bWIgaW5zdHJ1Y3Rpb25zIG11c3QgYmUgMTYtYml0IGFsaWdu
ZWQsIGJ1dCBhbGwgY29kZSBwb2ludGVycyB0byBiZSBsb2FkZWQKIC8vIGludG8gdGhlIHByb2Nl
c3NvciBhcmUgZGVjb3JhdGVkIHdpdGggdGhlIGJvdHRvbSBiaXQgc2V0LCBpbmRpY2F0aW5nIHRo
YXQgdGhpcyBpcwogLy8gdGh1bWIgY29kZSAoYXMgb3Bvc2VkIHRvIDMyLWJpdCB0cmFkaXRpb25h
bCBBUk0pLiAgVGhlIGZpcnN0IHRlc3QgY2hlY2tzIGZvciBib3RoCkBAIC0xMzAsNyArMTMwLDcg
QEAgcHVibGljOgogICAgIH0KIAogICAgIGV4cGxpY2l0IE1hY3JvQXNzZW1ibGVyQ29kZVB0cih2
b2lkKiB2YWx1ZSkKLSNpZiBQTEFURk9STShBUk1fVEhVTUIyKQorI2lmIENQVShBUk1fVEhVTUIy
KQogICAgICAgICAvLyBEZWNvcmF0ZSB0aGUgcG9pbnRlciBhcyBhIHRodW1iIGNvZGUgcG9pbnRl
ci4KICAgICAgICAgOiBtX3ZhbHVlKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHZhbHVlKSArIDEp
CiAjZWxzZQpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2b2lkKiBl
eGVjdXRhYmxlQWRkcmVzcygpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KLSNpZiBQTEFURk9S
TShBUk1fVEhVTUIyKQorI2lmIENQVShBUk1fVEhVTUIyKQogICAgIC8vIFRvIHVzZSB0aGlzIHBv
aW50ZXIgYXMgYSBkYXRhIGFkZHJlc3MgcmVtb3ZlIHRoZSBkZWNvcmF0aW9uLgogICAgIHZvaWQq
IGRhdGFMb2NhdGlvbigpIGNvbnN0IHsgQVNTRVJUX1ZBTElEX0NPREVfUE9JTlRFUihtX3ZhbHVl
KTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fdmFsdWUpIC0gMTsgfQogI2Vsc2UK
SW5kZXg6IEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oCShy
ZXZpc2lvbiA1MjcyNCkKKysrIEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4Ni5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlIDx3dGYv
UGxhdGZvcm0uaD4KIAotI2lmIEVOQUJMRShBU1NFTUJMRVIpICYmIFBMQVRGT1JNKFg4NikKKyNp
ZiBFTkFCTEUoQVNTRU1CTEVSKSAmJiBDUFUoWDg2KQogCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJs
ZXJYODZDb21tb24uaCIKIApJbmRleDogSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHJldmlzaW9uIDUyNzI0KQorKysgSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHdvcmtpbmcgY29weSkK
QEAgLTU0Miw3ICs1NDIsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3Zs
X2kzMnIoaW1tLm1fdmFsdWUsIGRlc3QpOwogICAgIH0KIAotI2lmIFBMQVRGT1JNKFg4Nl82NCkK
KyNpZiBDUFUoWDg2XzY0KQogICAgIHZvaWQgbW92ZShSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJ
RCBkZXN0KQogICAgIHsKICAgICAgICAgLy8gTm90ZTogb24gNjQtYml0IHRoaXMgaXMgaXMgYSBm
dWxsIHJlZ2lzdGVyIG1vdmU7IHBlcmhhcHMgaXQgd291bGQgYmUKQEAgLTk0NCw3ICs5NDQsNyBA
QCBwcml2YXRlOgogICAgIC8vIHg4Nl82NCwgYW5kIGNsaWVudHMgJiBzdWJjbGFzc2VzIG9mIE1h
Y3JvQXNzZW1ibGVyIHNob3VsZCBiZSB1c2luZyAnc3VwcG9ydHNGbG9hdGluZ1BvaW50KCknLgog
ICAgIGZyaWVuZCBjbGFzcyBNYWNyb0Fzc2VtYmxlclg4NjsKIAotI2lmIFBMQVRGT1JNKFg4NikK
KyNpZiBDUFUoWDg2KQogI2lmIFBMQVRGT1JNKE1BQykKIAogICAgIC8vIEFsbCBYODYgTWFjcyBh
cmUgZ3VhcmFudGVlZCB0byBzdXBwb3J0IGF0IGxlYXN0IFNTRTIsCkBAIC05OTcsNyArOTk3LDcg
QEAgcHJpdmF0ZToKICAgICBzdGF0aWMgU1NFMkNoZWNrU3RhdGUgc19zc2UyQ2hlY2tTdGF0ZTsK
IAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKLSNlbGlmICFkZWZpbmVkKE5ERUJVRykgLy8gUExB
VEZPUk0oWDg2KQorI2VsaWYgIWRlZmluZWQoTkRFQlVHKSAvLyBDUFUoWDg2KQogCiAgICAgLy8g
T24geDg2LTY0IHdlIHNob3VsZCBuZXZlciBiZSBjaGVja2luZyBmb3IgU1NFMiBpbiBhIG5vbi1k
ZWJ1ZyBidWlsZCwKICAgICAvLyBidXQgbm9uIGRlYnVnIGFkZCB0aGlzIG1ldGhvZCB0byBrZWVw
IHRoZSBhc3NlcnRzIGFib3ZlIGhhcHB5LgpJbmRleDogSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgJKHJldmlzaW9uIDUyNzI0KQorKysgSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgogCi0jaWYgRU5B
QkxFKEFTU0VNQkxFUikgJiYgUExBVEZPUk0oWDg2XzY0KQorI2lmIEVOQUJMRShBU1NFTUJMRVIp
ICYmIENQVShYODZfNjQpCiAKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIgog
CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCShyZXZpc2lvbiA1
MjcyNCkKKysrIEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CiAK
LSNpZiBFTkFCTEUoQVNTRU1CTEVSKSAmJiAoUExBVEZPUk0oWDg2KSB8fCBQTEFURk9STShYODZf
NjQpKQorI2lmIEVOQUJMRShBU1NFTUJMRVIpICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSkK
IAogI2luY2x1ZGUgIkFzc2VtYmxlckJ1ZmZlci5oIgogI2luY2x1ZGUgPHN0ZGludC5oPgpAQCAt
NTAsNyArNTAsNyBAQCBuYW1lc3BhY2UgWDg2UmVnaXN0ZXJzIHsKICAgICAgICAgZXNpLAogICAg
ICAgICBlZGksCiAKLSNpZiBQTEFURk9STShYODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkKICAgICAg
ICAgcjgsCiAgICAgICAgIHI5LAogICAgICAgICByMTAsCkBAIC0xMTgsMTIgKzExOCwxMiBAQCBw
cml2YXRlOgogICAgICAgICBPUF9YT1JfR3ZFdiAgICAgICAgICAgICAgICAgICAgID0gMHgzMywK
ICAgICAgICAgT1BfQ01QX0V2R3YgICAgICAgICAgICAgICAgICAgICA9IDB4MzksCiAgICAgICAg
IE9QX0NNUF9HdkV2ICAgICAgICAgICAgICAgICAgICAgPSAweDNCLAotI2lmIFBMQVRGT1JNKFg4
Nl82NCkKKyNpZiBDUFUoWDg2XzY0KQogICAgICAgICBQUkVfUkVYICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMHg0MCwKICNlbmRpZgogICAgICAgICBPUF9QVVNIX0VBWCAgICAgICAgICAgICAg
ICAgICAgID0gMHg1MCwKICAgICAgICAgT1BfUE9QX0VBWCAgICAgICAgICAgICAgICAgICAgICA9
IDB4NTgsCi0jaWYgUExBVEZPUk0oWDg2XzY0KQorI2lmIENQVShYODZfNjQpCiAgICAgICAgIE9Q
X01PVlNYRF9HdkV2ICAgICAgICAgICAgICAgICAgPSAweDYzLAogI2VuZGlmCiAgICAgICAgIFBS
RV9PUEVSQU5EX1NJWkUgICAgICAgICAgICAgICAgPSAweDY2LApAQCAtMjk2LDcgKzI5Niw3IEBA
IHB1YmxpYzoKIAogICAgIC8vIEFyaXRobWV0aWMgb3BlcmF0aW9uczoKIAotI2lmICFQTEFURk9S
TShYODZfNjQpCisjaWYgIUNQVShYODZfNjQpCiAgICAgdm9pZCBhZGNsX2ltKGludCBpbW0sIHZv
aWQqIGFkZHIpCiAgICAgewogICAgICAgICBpZiAoQ0FOX1NJR05fRVhURU5EXzhfMzIoaW1tKSkg
ewpAQCAtMzQ2LDcgKzM0Niw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotI2lmIFBM
QVRGT1JNKFg4Nl82NCkKKyNpZiBDUFUoWDg2XzY0KQogICAgIHZvaWQgYWRkcV9ycihSZWdpc3Rl
cklEIHNyYywgUmVnaXN0ZXJJRCBkc3QpCiAgICAgewogICAgICAgICBtX2Zvcm1hdHRlci5vbmVC
eXRlT3A2NChPUF9BRERfRXZHdiwgc3JjLCBkc3QpOwpAQCAtNDIzLDcgKzQyMyw3IEBAIHB1Ymxp
YzoKICAgICAgICAgfQogICAgIH0KIAotI2lmIFBMQVRGT1JNKFg4Nl82NCkKKyNpZiBDUFUoWDg2
XzY0KQogICAgIHZvaWQgYW5kcV9ycihSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkc3QpCiAg
ICAgewogICAgICAgICBtX2Zvcm1hdHRlci5vbmVCeXRlT3A2NChPUF9BTkRfRXZHdiwgc3JjLCBk
c3QpOwpAQCAtNTA5LDcgKzUwOSw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotI2lm
IFBMQVRGT1JNKFg4Nl82NCkKKyNpZiBDUFUoWDg2XzY0KQogICAgIHZvaWQgb3JxX3JyKFJlZ2lz
dGVySUQgc3JjLCBSZWdpc3RlcklEIGRzdCkKICAgICB7CiAgICAgICAgIG1fZm9ybWF0dGVyLm9u
ZUJ5dGVPcDY0KE9QX09SX0V2R3YsIHNyYywgZHN0KTsKQEAgLTU3NSw3ICs1NzUsNyBAQCBwdWJs
aWM6CiAgICAgICAgIH0KICAgICB9CiAKLSNpZiBQTEFURk9STShYODZfNjQpCisjaWYgQ1BVKFg4
Nl82NCkKICAgICB2b2lkIHN1YnFfcnIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZHN0KQog
ICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wNjQoT1BfU1VCX0V2R3YsIHNyYywg
ZHN0KTsKQEAgLTY0MSw3ICs2NDEsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKLSNp
ZiBQTEFURk9STShYODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkKICAgICB2b2lkIHhvcnFfcnIoUmVn
aXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIu
b25lQnl0ZU9wNjQoT1BfWE9SX0V2R3YsIHNyYywgZHN0KTsKQEAgLTY4OSw3ICs2ODksNyBAQCBw
dWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9HUk9VUDJfRXZDTCwgR1JP
VVAyX09QX1NITCwgZHN0KTsKICAgICB9CiAKLSNpZiBQTEFURk9STShYODZfNjQpCisjaWYgQ1BV
KFg4Nl82NCkKICAgICB2b2lkIHNhcnFfQ0xyKFJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAg
ICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wNjQoT1BfR1JPVVAyX0V2Q0wsIEdST1VQMl9PUF9TQVIs
IGRzdCk7CkBAIC03ODksNyArNzg5LDcgQEAgcHVibGljOgogICAgICAgICBtX2Zvcm1hdHRlci5p
bW1lZGlhdGUzMihpbW0pOwogICAgIH0KIAotI2lmIFBMQVRGT1JNKFg4Nl82NCkKKyNpZiBDUFUo
WDg2XzY0KQogICAgIHZvaWQgY21wcV9ycihSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkc3Qp
CiAgICAgewogICAgICAgICBtX2Zvcm1hdHRlci5vbmVCeXRlT3A2NChPUF9DTVBfRXZHdiwgc3Jj
LCBkc3QpOwpAQCAtODk3LDcgKzg5Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIu
aW1tZWRpYXRlMzIoaW1tKTsKICAgICB9CiAKLSNpZiBQTEFURk9STShYODZfNjQpCisjaWYgQ1BV
KFg4Nl82NCkKICAgICB2b2lkIHRlc3RxX3JyKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRz
dCkKICAgICB7CiAgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcDY0KE9QX1RFU1RfRXZHdiwg
c3JjLCBkc3QpOwpAQCAtOTcxLDcgKzk3MSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0
ZXIub25lQnl0ZU9wKE9QX1hDSEdfRXZHdiwgc3JjLCBkc3QpOwogICAgIH0KIAotI2lmIFBMQVRG
T1JNKFg4Nl82NCkKKyNpZiBDUFUoWDg2XzY0KQogICAgIHZvaWQgeGNoZ3FfcnIoUmVnaXN0ZXJJ
RCBzcmMsIFJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0
ZU9wNjQoT1BfWENIR19Fdkd2LCBzcmMsIGRzdCk7CkBAIC0xMDAxLDcgKzEwMDEsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBtb3ZsX21FQVgodm9pZCogYWRkcikKICAgICB7CiAgICAgICAgIG1fZm9y
bWF0dGVyLm9uZUJ5dGVPcChPUF9NT1ZfRUFYT3YpOwotI2lmIFBMQVRGT1JNKFg4Nl82NCkKKyNp
ZiBDUFUoWDg2XzY0KQogICAgICAgICBtX2Zvcm1hdHRlci5pbW1lZGlhdGU2NChyZWludGVycHJl
dF9jYXN0PGludDY0X3Q+KGFkZHIpKTsKICNlbHNlCiAgICAgICAgIG1fZm9ybWF0dGVyLmltbWVk
aWF0ZTMyKHJlaW50ZXJwcmV0X2Nhc3Q8aW50PihhZGRyKSk7CkBAIC0xMDM4LDE0ICsxMDM4LDE0
IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmxfRUFYbSh2b2lkKiBhZGRyKQogICAgIHsKICAgICAg
ICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wKE9QX01PVl9PdkVBWCk7Ci0jaWYgUExBVEZPUk0oWDg2
XzY0KQorI2lmIENQVShYODZfNjQpCiAgICAgICAgIG1fZm9ybWF0dGVyLmltbWVkaWF0ZTY0KHJl
aW50ZXJwcmV0X2Nhc3Q8aW50NjRfdD4oYWRkcikpOwogI2Vsc2UKICAgICAgICAgbV9mb3JtYXR0
ZXIuaW1tZWRpYXRlMzIocmVpbnRlcnByZXRfY2FzdDxpbnQ+KGFkZHIpKTsKICNlbmRpZgogICAg
IH0KIAotI2lmIFBMQVRGT1JNKFg4Nl82NCkKKyNpZiBDUFUoWDg2XzY0KQogICAgIHZvaWQgbW92
cV9ycihSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkc3QpCiAgICAgewogICAgICAgICBtX2Zv
cm1hdHRlci5vbmVCeXRlT3A2NChPUF9NT1ZfRXZHdiwgc3JjLCBkc3QpOwpAQCAtMTE1Nyw3ICsx
MTU3LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wKE9Q
X0xFQSwgZHN0LCBiYXNlLCBvZmZzZXQpOwogICAgIH0KLSNpZiBQTEFURk9STShYODZfNjQpCisj
aWYgQ1BVKFg4Nl82NCkKICAgICB2b2lkIGxlYXFfbXIoaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBi
YXNlLCBSZWdpc3RlcklEIGRzdCkKICAgICB7CiAgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVP
cDY0KE9QX0xFQSwgZHN0LCBiYXNlLCBvZmZzZXQpOwpAQCAtMTMyMyw3ICsxMzIzLDcgQEAgcHVi
bGljOgogICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRlT3AoT1AyX0NWVFNJMlNEX1ZzZEVkLCAo
UmVnaXN0ZXJJRClkc3QsIGJhc2UsIG9mZnNldCk7CiAgICAgfQogCi0jaWYgIVBMQVRGT1JNKFg4
Nl82NCkKKyNpZiAhQ1BVKFg4Nl82NCkKICAgICB2b2lkIGN2dHNpMnNkX21yKHZvaWQqIGFkZHJl
c3MsIFhNTVJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4
KFBSRV9TU0VfRjIpOwpAQCAtMTM0Myw3ICsxMzQzLDcgQEAgcHVibGljOgogICAgICAgICBtX2Zv
cm1hdHRlci50d29CeXRlT3AoT1AyX01PVkRfRWRWZCwgKFJlZ2lzdGVySUQpc3JjLCBkc3QpOwog
ICAgIH0KIAotI2lmIFBMQVRGT1JNKFg4Nl82NCkKKyNpZiBDUFUoWDg2XzY0KQogICAgIHZvaWQg
bW92cV9ycihYTU1SZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkc3QpCiAgICAgewogICAgICAg
ICBtX2Zvcm1hdHRlci5wcmVmaXgoUFJFX1NTRV82Nik7CkBAIC0xMzY5LDcgKzEzNjksNyBAQCBw
dWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b0J5dGVPcChPUDJfTU9WU0RfVnNkV3NkLCAo
UmVnaXN0ZXJJRClkc3QsIGJhc2UsIG9mZnNldCk7CiAgICAgfQogCi0jaWYgIVBMQVRGT1JNKFg4
Nl82NCkKKyNpZiAhQ1BVKFg4Nl82NCkKICAgICB2b2lkIG1vdnNkX21yKHZvaWQqIGFkZHJlc3Ms
IFhNTVJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBS
RV9TU0VfRjIpOwpAQCAtMTUzNSw3ICsxNTM1LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZv
aWQgcmVwYXRjaExvYWRQdHJUb0xFQSh2b2lkKiB3aGVyZSkKICAgICB7Ci0jaWYgUExBVEZPUk0o
WDg2XzY0KQorI2lmIENQVShYODZfNjQpCiAgICAgICAgIC8vIE9uIHg4Ni02NCBwb2ludGVyIG1l
bW9yeSBhY2Nlc3NlcyByZXF1aXJlIGEgNjQtYml0IG9wZXJhbmQsIGFuZCBhcyBzdWNoIGEgUkVY
IHByZWZpeC4KICAgICAgICAgLy8gU2tpcCBvdmVyIHRoZSBwcmVmaXggYnl0ZS4KICAgICAgICAg
d2hlcmUgPSByZWludGVycHJldF9jYXN0PGNoYXIqPih3aGVyZSkgKyAxOwpAQCAtMTY3OSw3ICsx
Njc5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1lbW9yeU1vZFJNKHJlZywgYmFzZSwgaW5k
ZXgsIHNjYWxlLCBvZmZzZXQpOwogICAgICAgICB9CiAKLSNpZiAhUExBVEZPUk0oWDg2XzY0KQor
I2lmICFDUFUoWDg2XzY0KQogICAgICAgICB2b2lkIG9uZUJ5dGVPcChPbmVCeXRlT3Bjb2RlSUQg
b3Bjb2RlLCBpbnQgcmVnLCB2b2lkKiBhZGRyZXNzKQogICAgICAgICB7CiAgICAgICAgICAgICBt
X2J1ZmZlci5lbnN1cmVTcGFjZShtYXhJbnN0cnVjdGlvblNpemUpOwpAQCAtMTcyMiw3ICsxNzIy
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1lbW9yeU1vZFJNKHJlZywgYmFzZSwgaW5kZXgs
IHNjYWxlLCBvZmZzZXQpOwogICAgICAgICB9CiAKLSNpZiAhUExBVEZPUk0oWDg2XzY0KQorI2lm
ICFDUFUoWDg2XzY0KQogICAgICAgICB2b2lkIHR3b0J5dGVPcChUd29CeXRlT3Bjb2RlSUQgb3Bj
b2RlLCBpbnQgcmVnLCB2b2lkKiBhZGRyZXNzKQogICAgICAgICB7CiAgICAgICAgICAgICBtX2J1
ZmZlci5lbnN1cmVTcGFjZShtYXhJbnN0cnVjdGlvblNpemUpOwpAQCAtMTczMiw3ICsxNzMyLDcg
QEAgcHJpdmF0ZToKICAgICAgICAgfQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShYODZfNjQpCisj
aWYgQ1BVKFg4Nl82NCkKICAgICAgICAgLy8gUXVhZC13b3JkLXNpemVkIG9wZXJhbmRzOgogICAg
ICAgICAvLwogICAgICAgICAvLyBVc2VkIHRvIGZvcm1hdCA2NC1iaXQgb3BlcmFudGlvbnMsIHBs
YW50aW5nIGEgUkVYLncgcHJlZml4LgpAQCAtMTg5MSw3ICsxODkxLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgbm9CYXNlID0gWDg2UmVnaXN0ZXJzOjplYnA7
CiAgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGhhc1NpYiA9IFg4NlJlZ2lzdGVyczo6
ZXNwOwogICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBub0luZGV4ID0gWDg2UmVnaXN0
ZXJzOjplc3A7Ci0jaWYgUExBVEZPUk0oWDg2XzY0KQorI2lmIENQVShYODZfNjQpCiAgICAgICAg
IHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIG5vQmFzZTIgPSBYODZSZWdpc3RlcnM6OnIxMzsKICAg
ICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaGFzU2liMiA9IFg4NlJlZ2lzdGVyczo6cjEy
OwogCkBAIC0xOTY3LDcgKzE5NjcsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIG1lbW9yeU1v
ZFJNKGludCByZWcsIFJlZ2lzdGVySUQgYmFzZSwgaW50IG9mZnNldCkKICAgICAgICAgewogICAg
ICAgICAgICAgLy8gQSBiYXNlIG9mIGVzcCBvciByMTIgd291bGQgYmUgaW50ZXJwcmV0ZWQgYXMg
YSBzaWIsIHNvIGZvcmNlIGEgc2liIHdpdGggbm8gaW5kZXggJiBwdXQgdGhlIGJhc2UgaW4gdGhl
cmUuCi0jaWYgUExBVEZPUk0oWDg2XzY0KQorI2lmIENQVShYODZfNjQpCiAgICAgICAgICAgICBp
ZiAoKGJhc2UgPT0gaGFzU2liKSB8fCAoYmFzZSA9PSBoYXNTaWIyKSkgewogI2Vsc2UKICAgICAg
ICAgICAgIGlmIChiYXNlID09IGhhc1NpYikgewpAQCAtMTk4Miw3ICsxOTgyLDcgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgICAgICAgICAgbV9idWZmZXIucHV0SW50VW5jaGVja2VkKG9mZnNldCk7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKLSNpZiBQTEFURk9STShY
ODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkKICAgICAgICAgICAgICAgICBpZiAoIW9mZnNldCAmJiAo
YmFzZSAhPSBub0Jhc2UpICYmIChiYXNlICE9IG5vQmFzZTIpKQogI2Vsc2UKICAgICAgICAgICAg
ICAgICBpZiAoIW9mZnNldCAmJiAoYmFzZSAhPSBub0Jhc2UpKQpAQCAtMjAwMSw3ICsyMDAxLDcg
QEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBtZW1vcnlNb2RSTV9kaXNwMzIoaW50IHJlZywgUmVn
aXN0ZXJJRCBiYXNlLCBpbnQgb2Zmc2V0KQogICAgICAgICB7CiAgICAgICAgICAgICAvLyBBIGJh
c2Ugb2YgZXNwIG9yIHIxMiB3b3VsZCBiZSBpbnRlcnByZXRlZCBhcyBhIHNpYiwgc28gZm9yY2Ug
YSBzaWIgd2l0aCBubyBpbmRleCAmIHB1dCB0aGUgYmFzZSBpbiB0aGVyZS4KLSNpZiBQTEFURk9S
TShYODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkKICAgICAgICAgICAgIGlmICgoYmFzZSA9PSBoYXNT
aWIpIHx8IChiYXNlID09IGhhc1NpYjIpKSB7CiAjZWxzZQogICAgICAgICAgICAgaWYgKGJhc2Ug
PT0gaGFzU2liKSB7CkBAIC0yMDE4LDcgKzIwMTgsNyBAQCBwcml2YXRlOgogICAgICAgICB7CiAg
ICAgICAgICAgICBBU1NFUlQoaW5kZXggIT0gbm9JbmRleCk7CiAKLSNpZiBQTEFURk9STShYODZf
NjQpCisjaWYgQ1BVKFg4Nl82NCkKICAgICAgICAgICAgIGlmICghb2Zmc2V0ICYmIChiYXNlICE9
IG5vQmFzZSkgJiYgKGJhc2UgIT0gbm9CYXNlMikpCiAjZWxzZQogICAgICAgICAgICAgaWYgKCFv
ZmZzZXQgJiYgKGJhc2UgIT0gbm9CYXNlKSkKQEAgLTIwMzMsNyArMjAzMyw3IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotI2lmICFQTEFURk9STShYODZfNjQpCisjaWYg
IUNQVShYODZfNjQpCiAgICAgICAgIHZvaWQgbWVtb3J5TW9kUk0oaW50IHJlZywgdm9pZCogYWRk
cmVzcykKICAgICAgICAgewogICAgICAgICAgICAgLy8gbm9CYXNlICsgTW9kUm1NZW1vcnlOb0Rp
c3AgbWVhbnMgbm9CYXNlICsgTW9kUm1NZW1vcnlEaXNwMzIhCkBAIC0yMDQ4LDYgKzIwNDgsNiBA
QCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAotI2VuZGlmIC8vIEVOQUJMRShBU1NF
TUJMRVIpICYmIFBMQVRGT1JNKFg4NikKKyNlbmRpZiAvLyBFTkFCTEUoQVNTRU1CTEVSKSAmJiBD
UFUoWDg2KQogCiAjZW5kaWYgLy8gWDg2QXNzZW1ibGVyX2gKSW5kZXg6IEphdmFTY3JpcHRDb3Jl
L2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
aml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaAkocmV2aXNpb24gNTI3MjQpCisrKyBKYXZhU2NyaXB0
Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsMTcg
KzE4MCwxNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogCi0jaWYgUExBVEZPUk0oWDg2KSB8fCBQTEFU
Rk9STShYODZfNjQpCisjaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKICAgICBzdGF0aWMgdm9p
ZCBjYWNoZUZsdXNoKHZvaWQqLCBzaXplX3QpCiAgICAgewogICAgIH0KLSNlbGlmIFBMQVRGT1JN
KEFSTV9USFVNQjIpICYmIFBMQVRGT1JNKElQSE9ORSkKKyNlbGlmIENQVShBUk1fVEhVTUIyKSAm
JiBQTEFURk9STShJUEhPTkUpCiAgICAgc3RhdGljIHZvaWQgY2FjaGVGbHVzaCh2b2lkKiBjb2Rl
LCBzaXplX3Qgc2l6ZSkKICAgICB7CiAgICAgICAgIHN5c19kY2FjaGVfZmx1c2goY29kZSwgc2l6
ZSk7CiAgICAgICAgIHN5c19pY2FjaGVfaW52YWxpZGF0ZShjb2RlLCBzaXplKTsKICAgICB9Ci0j
ZWxpZiBQTEFURk9STShBUk1fVEhVTUIyKSAmJiBQTEFURk9STShMSU5VWCkKKyNlbGlmIENQVShB
Uk1fVEhVTUIyKSAmJiBQTEFURk9STShMSU5VWCkKICAgICBzdGF0aWMgdm9pZCBjYWNoZUZsdXNo
KHZvaWQqIGNvZGUsIHNpemVfdCBzaXplKQogICAgIHsKICAgICAgICAgYXNtIHZvbGF0aWxlICgK
QEAgLTIxMSw3ICsyMTEsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBVc2VyOjpJTUJfUmFu
Z2UoY29kZSwgc3RhdGljX2Nhc3Q8Y2hhcio+KGNvZGUpICsgc2l6ZSk7CiAgICAgfQotI2VsaWYg
UExBVEZPUk0oQVJNX1RSQURJVElPTkFMKSAmJiBQTEFURk9STShMSU5VWCkKKyNlbGlmIENQVShB
Uk1fVFJBRElUSU9OQUwpICYmIFBMQVRGT1JNKExJTlVYKQogICAgIHN0YXRpYyB2b2lkIGNhY2hl
Rmx1c2godm9pZCogY29kZSwgc2l6ZV90IHNpemUpCiAgICAgewogICAgICAgICBhc20gdm9sYXRp
bGUgKApJbmRleDogSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZN
UG9vbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxv
Y2F0b3JGaXhlZFZNUG9vbC5jcHAJKHJldmlzaW9uIDUyNzI0KQorKysgSmF2YVNjcmlwdENvcmUv
aml0L0V4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZNUG9vbC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgPGVycm5vLmg+CiAKLSNpZiBFTkFCTEUoQVNTRU1C
TEVSKSAmJiBQTEFURk9STShNQUMpICYmIFBMQVRGT1JNKFg4Nl82NCkKKyNpZiBFTkFCTEUoQVNT
RU1CTEVSKSAmJiBQTEFURk9STShNQUMpICYmIENQVShYODZfNjQpCiAKICNpbmNsdWRlICJUQ1Nw
aW5Mb2NrLmgiCiAjaW5jbHVkZSA8bWFjaC9tYWNoX2luaXQuaD4KSW5kZXg6IEphdmFTY3JpcHRD
b3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yUG9zaXguY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yUG9zaXguY3BwCShyZXZpc2lvbiA1Mjcy
NCkKKysrIEphdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yUG9zaXguY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi0jaWYg
IShQTEFURk9STShNQUMpICYmIFBMQVRGT1JNKFg4Nl82NCkpCisjaWYgIShQTEFURk9STShNQUMp
ICYmIENQVShYODZfNjQpKQogCiB2b2lkIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmludGlhbGl6ZVBh
Z2VTaXplKCkKIHsKQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBFeGVjdXRhYmxlUG9vbDo6c3lzdGVt
UmVsZWFzZShjb25zdAogICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCAhcmVzdWx0KTsKIH0KIAot
I2VuZGlmIC8vICEoUExBVEZPUk0oTUFDKSAmJiBQTEFURk9STShYODZfNjQpKQorI2VuZGlmIC8v
ICEoUExBVEZPUk0oTUFDKSAmJiBDUFUoWDg2XzY0KSkKIAogI2lmIEVOQUJMRShBU1NFTUJMRVJf
V1hfRVhDTFVTSVZFKQogdm9pZCBFeGVjdXRhYmxlQWxsb2NhdG9yOjpyZXByb3RlY3RSZWdpb24o
dm9pZCogc3RhcnQsIHNpemVfdCBzaXplLCBQcm90ZWN0aW9uU2V0aW5nIHNldHRpbmcpCkluZGV4
OiBKYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvclN5bWJpYW4uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yU3ltYmlhbi5j
cHAJKHJldmlzaW9uIDUyNzI0KQorKysgSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxv
Y2F0b3JTeW1iaWFuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogdm9pZCBFeGVjdXRhYmxlQWxsb2NhdG9yOjppbnRpYWxpemVQYWdlU2l6ZSgp
CiB7Ci0jaWYgUExBVEZPUk1fQVJNX0FSQ0goNSkKKyNpZiBDUFUoQVJNVjVfT1JfTE9XRVIpCiAg
ICAgLy8gVGhlIG1vdmluZyBtZW1vcnkgbW9kZWwgKGFzIHVzZWQgaW4gQVJNdjUgYW5kIGVhcmxp
ZXIgcGxhdGZvcm1zKQogICAgIC8vIG9uIFN5bWJpYW4gT1MgbGltaXRzIHRoZSBudW1iZXIgb2Yg
Y2h1bmtzIGZvciBlYWNoIHByb2Nlc3MgdG8gMTYuIAogICAgIC8vIFRvIG1pdGlnYXRlIHRoaXMg
bGltaXRhdGlvbiBpbmNyZWFzZSB0aGUgcGFnZXNpemUgdG8gCkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAko
cmV2aXNpb24gNTI3MjQpCisrKyBKYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIkpJVC5oIgogCiAvLyBUaGlzIHByb2Jh
Ymx5IGRvZXMgbm90IGJlbG9uZyBoZXJlOyBhZGRpbmcgaGVyZSBmb3Igbm93IGFzIGEgcXVpY2sg
V2luZG93cyBidWlsZCBmaXguCi0jaWYgRU5BQkxFKEFTU0VNQkxFUikgJiYgUExBVEZPUk0oWDg2
KSAmJiAhUExBVEZPUk0oTUFDKQorI2lmIEVOQUJMRShBU1NFTUJMRVIpICYmIENQVShYODYpICYm
ICFQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKIEpTQzo6TWFjcm9B
c3NlbWJsZXJYODZDb21tb246OlNTRTJDaGVja1N0YXRlIEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZD
b21tb246OnNfc3NlMkNoZWNrU3RhdGUgPSBOb3RDaGVja2VkU1NFMjsKICNlbmRpZgpJbmRleDog
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2pp
dC9KSVQuaAkocmV2aXNpb24gNTI3MjQpCisrKyBKYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHdv
cmtpbmcgY29weSkKQEAgLTE5Miw3ICsxOTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
Ly8gb24geDg2L3g4Ni02NCBpdCBpcyBlY3ggZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHNpbmNl
IHRoZQogICAgICAgICAvLyBNYWNyb0Fzc2VtYmxlciB3aWxsIG5lZWQgdG8gcGxhbnQgcmVnaXN0
ZXIgc3dhcHMgaWYgaXQgaXMgbm90IC0KICAgICAgICAgLy8gaG93ZXZlciB0aGUgY29kZSB3aWxs
IHN0aWxsIGZ1bmN0aW9uIGNvcnJlY3RseS4KLSNpZiBQTEFURk9STShYODZfNjQpCisjaWYgQ1BV
KFg4Nl82NCkKICAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmV0dXJuVmFsdWVSZWdp
c3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4OwogICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJ
RCBjYWNoZWRSZXN1bHRSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4OwogICAgICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBmaXJzdEFyZ3VtZW50UmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6
OmVkaTsKQEAgLTIxMCw3ICsyMTAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGlj
IGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QwID0gWDg2UmVnaXN0ZXJzOjp4bW0wOwogICAgICAg
ICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDEgPSBYODZSZWdpc3RlcnM6OnhtbTE7
CiAgICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMiA9IFg4NlJlZ2lzdGVy
czo6eG1tMjsKLSNlbGlmIFBMQVRGT1JNKFg4NikKKyNlbGlmIENQVShYODYpCiAgICAgICAgIHN0
YXRpYyBjb25zdCBSZWdpc3RlcklEIHJldHVyblZhbHVlUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6
OmVheDsKICAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgY2FjaGVkUmVzdWx0UmVnaXN0
ZXIgPSBYODZSZWdpc3RlcnM6OmVheDsKICAgICAgICAgLy8gT24geDg2IHdlIGFsd2F5cyB1c2Ug
ZmFzdGNhbGwgY29udmVudGlvbnMgPSBidXQgb24KQEAgLTIyOCw3ICsyMjgsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QwID0gWDg2
UmVnaXN0ZXJzOjp4bW0wOwogICAgICAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVn
VDEgPSBYODZSZWdpc3RlcnM6OnhtbTE7CiAgICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVy
SUQgZnBSZWdUMiA9IFg4NlJlZ2lzdGVyczo6eG1tMjsKLSNlbGlmIFBMQVRGT1JNKEFSTV9USFVN
QjIpCisjZWxpZiBDUFUoQVJNX1RIVU1CMikKICAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgcmV0dXJuVmFsdWVSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjA7CiAgICAgICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIGNhY2hlZFJlc3VsdFJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpy
MDsKICAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgZmlyc3RBcmd1bWVudFJlZ2lzdGVy
ID0gQVJNUmVnaXN0ZXJzOjpyMDsKQEAgLTI0NCw3ICsyNDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgc3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QwID0gQVJNUmVnaXN0ZXJz
OjpkMDsKICAgICAgICAgc3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QxID0gQVJNUmVn
aXN0ZXJzOjpkMTsKICAgICAgICAgc3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QyID0g
QVJNUmVnaXN0ZXJzOjpkMjsKLSNlbGlmIFBMQVRGT1JNKEFSTV9UUkFESVRJT05BTCkKKyNlbGlm
IENQVShBUk1fVFJBRElUSU9OQUwpCiAgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJl
dHVyblZhbHVlUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnIwOwogICAgICAgICBzdGF0aWMgY29u
c3QgUmVnaXN0ZXJJRCBjYWNoZWRSZXN1bHRSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjA7CiAg
ICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGZpcnN0QXJndW1lbnRSZWdpc3RlciA9IEFS
TVJlZ2lzdGVyczo6cjA7CkBAIC00MzYsNyArNDM2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHZvaWQgZW1pdFN1YjMyQ29uc3RhbnQodW5zaWduZWQgZHN0LCB1bnNpZ25lZCBvcCwgaW50
MzJfdCBjb25zdGFudCwgUmVzdWx0VHlwZSBvcFR5cGUpOwogICAgICAgICB2b2lkIGVtaXRCaW5h
cnlEb3VibGVPcChPcGNvZGVJRCwgdW5zaWduZWQgZHN0LCB1bnNpZ25lZCBvcDEsIHVuc2lnbmVk
IG9wMiwgT3BlcmFuZFR5cGVzLCBKdW1wTGlzdCYgbm90SW50MzJPcDEsIEp1bXBMaXN0JiBub3RJ
bnQzMk9wMiwgYm9vbCBvcDFJc0luUmVnaXN0ZXJzID0gdHJ1ZSwgYm9vbCBvcDJJc0luUmVnaXN0
ZXJzID0gdHJ1ZSk7CiAKLSNpZiBQTEFURk9STShYODYpCisjaWYgQ1BVKFg4NikKICAgICAgICAg
Ly8gVGhlc2UgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIHZhbHVlIGFyZSB1c2VkIHRvIGVuYWJsZSBw
YXRjaGluZyAtIHNlZSBjb21tZW50IG9uIG9wX3B1dF9ieV9pZC4KICAgICAgICAgc3RhdGljIGNv
bnN0IGludCBwYXRjaE9mZnNldFB1dEJ5SWRTdHJ1Y3R1cmUgPSA3OwogICAgICAgICBzdGF0aWMg
Y29uc3QgaW50IHBhdGNoT2Zmc2V0UHV0QnlJZEV4dGVybmFsTG9hZCA9IDEzOwpAQCAtNDY1LDcg
KzQ2NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgY29uc3QgaW50IHBhdGNo
T2Zmc2V0TWV0aG9kQ2hlY2tQcm90b09iaiA9IDExOwogICAgICAgICBzdGF0aWMgY29uc3QgaW50
IHBhdGNoT2Zmc2V0TWV0aG9kQ2hlY2tQcm90b1N0cnVjdCA9IDE4OwogICAgICAgICBzdGF0aWMg
Y29uc3QgaW50IHBhdGNoT2Zmc2V0TWV0aG9kQ2hlY2tQdXRGdW5jdGlvbiA9IDI5OwotI2VsaWYg
UExBVEZPUk0oQVJNX1RSQURJVElPTkFMKQorI2VsaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkKICAg
ICAgICAgLy8gVGhlc2UgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIHZhbHVlIGFyZSB1c2VkIHRvIGVu
YWJsZSBwYXRjaGluZyAtIHNlZSBjb21tZW50IG9uIG9wX3B1dF9ieV9pZC4KICAgICAgICAgc3Rh
dGljIGNvbnN0IGludCBwYXRjaE9mZnNldFB1dEJ5SWRTdHJ1Y3R1cmUgPSA0OwogICAgICAgICBz
dGF0aWMgY29uc3QgaW50IHBhdGNoT2Zmc2V0UHV0QnlJZEV4dGVybmFsTG9hZCA9IDE2OwpAQCAt
NTc0LDcgKzU3NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGNvbXBpbGVHZXRE
aXJlY3RPZmZzZXQoUmVnaXN0ZXJJRCBiYXNlLCBSZWdpc3RlcklEIHJlc3VsdCwgUmVnaXN0ZXJJ
RCBzdHJ1Y3R1cmUsIFJlZ2lzdGVySUQgb2Zmc2V0LCBSZWdpc3RlcklEIHNjcmF0Y2gpOwogICAg
ICAgICB2b2lkIGNvbXBpbGVQdXREaXJlY3RPZmZzZXQoUmVnaXN0ZXJJRCBiYXNlLCBSZWdpc3Rl
cklEIHZhbHVlLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgc2l6ZV90IGNhY2hlZE9mZnNldCk7CiAK
LSNpZiBQTEFURk9STShYODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkKICAgICAgICAgLy8gVGhlc2Ug
YXJjaGl0ZWN0dXJlIHNwZWNpZmljIHZhbHVlIGFyZSB1c2VkIHRvIGVuYWJsZSBwYXRjaGluZyAt
IHNlZSBjb21tZW50IG9uIG9wX3B1dF9ieV9pZC4KICAgICAgICAgc3RhdGljIGNvbnN0IGludCBw
YXRjaE9mZnNldFB1dEJ5SWRTdHJ1Y3R1cmUgPSAxMDsKICAgICAgICAgc3RhdGljIGNvbnN0IGlu
dCBwYXRjaE9mZnNldFB1dEJ5SWRFeHRlcm5hbExvYWQgPSAyMDsKQEAgLTU5Nyw3ICs1OTcsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldE1l
dGhvZENoZWNrUHJvdG9PYmogPSAyMDsKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9m
ZnNldE1ldGhvZENoZWNrUHJvdG9TdHJ1Y3QgPSAzMDsKICAgICAgICAgc3RhdGljIGNvbnN0IGlu
dCBwYXRjaE9mZnNldE1ldGhvZENoZWNrUHV0RnVuY3Rpb24gPSA1MDsKLSNlbGlmIFBMQVRGT1JN
KFg4NikKKyNlbGlmIENQVShYODYpCiAgICAgICAgIC8vIFRoZXNlIGFyY2hpdGVjdHVyZSBzcGVj
aWZpYyB2YWx1ZSBhcmUgdXNlZCB0byBlbmFibGUgcGF0Y2hpbmcgLSBzZWUgY29tbWVudCBvbiBv
cF9wdXRfYnlfaWQuCiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRQdXRCeUlk
U3RydWN0dXJlID0gNzsKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldFB1dEJ5
SWRFeHRlcm5hbExvYWQgPSAxMzsKQEAgLTYyNCw3ICs2MjQsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldE1ldGhvZENoZWNrUHJvdG9PYmog
PSAxMTsKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldE1ldGhvZENoZWNrUHJv
dG9TdHJ1Y3QgPSAxODsKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldE1ldGhv
ZENoZWNrUHV0RnVuY3Rpb24gPSAyOTsKLSNlbGlmIFBMQVRGT1JNKEFSTV9USFVNQjIpCisjZWxp
ZiBDUFUoQVJNX1RIVU1CMikKICAgICAgICAgLy8gVGhlc2UgYXJjaGl0ZWN0dXJlIHNwZWNpZmlj
IHZhbHVlIGFyZSB1c2VkIHRvIGVuYWJsZSBwYXRjaGluZyAtIHNlZSBjb21tZW50IG9uIG9wX3B1
dF9ieV9pZC4KICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldFB1dEJ5SWRTdHJ1
Y3R1cmUgPSAxMDsKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldFB1dEJ5SWRF
eHRlcm5hbExvYWQgPSAyNjsKQEAgLTY0Nyw3ICs2NDcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldE1ldGhvZENoZWNrUHJvdG9PYmogPSAy
NDsKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldE1ldGhvZENoZWNrUHJvdG9T
dHJ1Y3QgPSAzNDsKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldE1ldGhvZENo
ZWNrUHV0RnVuY3Rpb24gPSA1ODsKLSNlbGlmIFBMQVRGT1JNKEFSTV9UUkFESVRJT05BTCkKKyNl
bGlmIENQVShBUk1fVFJBRElUSU9OQUwpCiAgICAgICAgIC8vIFRoZXNlIGFyY2hpdGVjdHVyZSBz
cGVjaWZpYyB2YWx1ZSBhcmUgdXNlZCB0byBlbmFibGUgcGF0Y2hpbmcgLSBzZWUgY29tbWVudCBv
biBvcF9wdXRfYnlfaWQuCiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgcGF0Y2hPZmZzZXRQdXRC
eUlkU3RydWN0dXJlID0gNDsKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaE9mZnNldFB1
dEJ5SWRFeHRlcm5hbExvYWQgPSAxNjsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0
aG1ldGljLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRp
Yy5jcHAJKHJldmlzaW9uIDUyNzI0KQorKysgSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0
aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTE2LDcgKzExMTYsNyBAQCB2b2lkIEpJVDo6ZW1p
dFNsb3dfb3BfZGl2KEluc3RydWN0aW9uKiBjCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSBCRUdJTjogT1BfTU9EIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwog
Ci0jaWYgUExBVEZPUk0oWDg2KSB8fCBQTEFURk9STShYODZfNjQpCisjaWYgQ1BVKFg4NikgfHwg
Q1BVKFg4Nl82NCkKIAogdm9pZCBKSVQ6OmVtaXRfb3BfbW9kKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiB7CkBAIC0xMTc4LDcgKzExNzgsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3df
b3BfbW9kKEluc3RydWN0aW9uKiBjCiAgICAgc3R1YkNhbGwuY2FsbChkc3QpOwogfQogCi0jZWxz
ZSAvLyBQTEFURk9STShYODYpIHx8IFBMQVRGT1JNKFg4Nl82NCkKKyNlbHNlIC8vIENQVShYODYp
IHx8IENQVShYODZfNjQpCiAKIHZvaWQgSklUOjplbWl0X29wX21vZChJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogewpAQCAtMTE5Niw3ICsxMTk2LDcgQEAgdm9pZCBKSVQ6OmVtaXRT
bG93X29wX21vZChJbnN0cnVjdGlvbiosIAogewogfQogCi0jZW5kaWYgLy8gUExBVEZPUk0oWDg2
KSB8fCBQTEFURk9STShYODZfNjQpCisjZW5kaWYgLy8gQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkK
IAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEVORDogT1BfTU9EIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCkBAIC0yMDgxLDcgKzIwODEsNyBAQCB2b2lkIEpJ
VDo6ZW1pdFNsb3dfb3BfcHJlX2RlYyhJbnN0cnVjdGlvCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSBCRUdJTjogT1BfTU9EIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqLwogCi0jaWYgUExBVEZPUk0oWDg2KSB8fCBQTEFURk9STShYODZfNjQpCisjaWYgQ1BVKFg4
NikgfHwgQ1BVKFg4Nl82NCkKIAogdm9pZCBKSVQ6OmVtaXRfb3BfbW9kKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiB7CkBAIC0yMTMwLDcgKzIxMzAsNyBAQCB2b2lkIEpJVDo6ZW1p
dFNsb3dfb3BfbW9kKEluc3RydWN0aW9uKiBjCiAgICAgc3R1YkNhbGwuY2FsbChyZXN1bHQpOwog
fQogCi0jZWxzZSAvLyBQTEFURk9STShYODYpIHx8IFBMQVRGT1JNKFg4Nl82NCkKKyNlbHNlIC8v
IENQVShYODYpIHx8IENQVShYODZfNjQpCiAKIHZvaWQgSklUOjplbWl0X29wX21vZChJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewpAQCAtMjE0OSw3ICsyMTQ5LDcgQEAgdm9pZCBK
SVQ6OmVtaXRTbG93X29wX21vZChJbnN0cnVjdGlvbiosIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogfQogCi0jZW5kaWYgLy8gUExBVEZPUk0oWDg2KSB8fCBQTEFURk9STShYODZfNjQpCisj
ZW5kaWYgLy8gQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIEVORDogT1BfTU9EIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
LwogCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEphdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgJKHJldmlzaW9uIDUy
NzI0KQorKysgSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAkod29ya2luZyBj
b3B5KQpAQCAtMTE1LDcgKzExNSw3IEBAIEFMV0FZU19JTkxJTkUgSklUOjpDYWxsIEpJVDo6ZW1p
dE5ha2VkQ2EKIAogQUxXQVlTX0lOTElORSB2b2lkIEpJVDo6YmVnaW5VbmludGVycnVwdGVkU2Vx
dWVuY2UoaW50IGluc25TcGFjZSwgaW50IGNvbnN0U3BhY2UpCiB7Ci0jaWYgUExBVEZPUk0oQVJN
X1RSQURJVElPTkFMKQorI2lmIENQVShBUk1fVFJBRElUSU9OQUwpCiAjaWZuZGVmIE5ERUJVRwog
ICAgIC8vIEVuc3VyZSB0aGUgbGFiZWwgYWZ0ZXIgdGhlIHNlcXVlbmNlIGNhbiBhbHNvIGZpdAog
ICAgIGluc25TcGFjZSArPSBzaXplb2YoQVJNV29yZCk7CkBAIC0xNDQsNyArMTQ0LDcgQEAgQUxX
QVlTX0lOTElORSB2b2lkIEpJVDo6ZW5kVW5pbnRlcnJ1cHRlZAogCiAjZW5kaWYKIAotI2lmIFBM
QVRGT1JNKEFSTSkKKyNpZiBDUFUoQVJNKQogCiBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjpwcmVz
ZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoUmVnaXN0ZXJJRCByZWcpCiB7CkBAIC0xNjEsNyAr
MTYxLDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIEpJVDo6cmVzdG9yZVJldHVybkFkZAogICAgIGxv
YWRQdHIoYWRkcmVzcywgbGlua1JlZ2lzdGVyKTsKIH0KIAotI2Vsc2UgLy8gUExBVEZPUk0oWDg2
KSB8fCBQTEFURk9STShYODZfNjQpCisjZWxzZSAvLyBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQog
CiBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjpwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwo
UmVnaXN0ZXJJRCByZWcpCiB7CkBAIC0xOTQsMTAgKzE5NCwxMCBAQCBBTFdBWVNfSU5MSU5FIHZv
aWQgSklUOjpyZXN0b3JlQXJndW1lbnRSCiB9CiBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjpyZXN0
b3JlQXJndW1lbnRSZWZlcmVuY2VGb3JUcmFtcG9saW5lKCkKIHsKLSNpZiBQTEFURk9STShYODYp
CisjaWYgQ1BVKFg4NikKICAgICAvLyBXaXRoaW4gYSB0cmFtcG9saW5lIHRoZSByZXR1cm4gYWRk
cmVzcyB3aWxsIGJlIG9uIHRoZSBzdGFjayBhdCB0aGlzIHBvaW50LgogICAgIGFkZFB0cihJbW0z
MihzaXplb2Yodm9pZCopKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIsIGZpcnN0QXJndW1lbnRSZWdp
c3Rlcik7Ci0jZWxpZiBQTEFURk9STShBUk0pCisjZWxpZiBDUFUoQVJNKQogICAgIG1vdmUoc3Rh
Y2tQb2ludGVyUmVnaXN0ZXIsIGZpcnN0QXJndW1lbnRSZWdpc3Rlcik7CiAjZW5kaWYKICAgICAv
LyBJbiB0aGUgdHJhbXBvbGluZSBvbiB4ODYtNjQsIHRoZSBmaXJzdCBhcmd1bWVudCByZWdpc3Rl
ciBpcyBub3Qgb3ZlcndyaXR0ZW4uCkBAIC0yNjUsOSArMjY1LDkgQEAgQUxXQVlTX0lOTElORSB2
b2lkIEpJVDo6Y2xlYXJTYW1wbGluZ0ZsYQogI2lmIEVOQUJMRShTQU1QTElOR19DT1VOVEVSUykK
IEFMV0FZU19JTkxJTkUgdm9pZCBKSVQ6OmVtaXRDb3VudChBYnN0cmFjdFNhbXBsaW5nQ291bnRl
ciYgY291bnRlciwgdWludDMyX3QgY291bnQpCiB7Ci0jaWYgUExBVEZPUk0oWDg2XzY0KSAvLyBP
ciBhbnkgb3RoZXIgNjQtYml0IHBsYXR0Zm9ybS4KKyNpZiBDUFUoWDg2XzY0KSAvLyBPciBhbnkg
b3RoZXIgNjQtYml0IHBsYXR0Zm9ybS4KICAgICBhZGRQdHIoSW1tMzIoY291bnQpLCBBYnNvbHV0
ZUFkZHJlc3MoJmNvdW50ZXIubV9jb3VudGVyKSk7Ci0jZWxpZiBQTEFURk9STShYODYpIC8vIE9y
IGFueSBvdGhlciBsaXR0bGUtZW5kaWFuIDMyLWJpdCBwbGF0dGZvcm0uCisjZWxpZiBDUFUoWDg2
KSAvLyBPciBhbnkgb3RoZXIgbGl0dGxlLWVuZGlhbiAzMi1iaXQgcGxhdHRmb3JtLgogICAgIGlu
dHB0cl90IGhpV29yZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KCZjb3VudGVyLm1fY291
bnRlcikgKyBzaXplb2YoaW50MzJfdCk7CiAgICAgYWRkMzIoSW1tMzIoY291bnQpLCBBYnNvbHV0
ZUFkZHJlc3MoJmNvdW50ZXIubV9jb3VudGVyKSk7CiAgICAgYWRkV2l0aENhcnJ5MzIoSW1tMzIo
MCksIEFic29sdXRlQWRkcmVzcyhyZWludGVycHJldF9jYXN0PHZvaWQqPihoaVdvcmQpKSk7CkBA
IC0yNzgsNyArMjc4LDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIEpJVDo6ZW1pdENvdW50KEFic3Ry
YQogI2VuZGlmCiAKICNpZiBFTkFCTEUoT1BDT0RFX1NBTVBMSU5HKQotI2lmIFBMQVRGT1JNKFg4
Nl82NCkKKyNpZiBDUFUoWDg2XzY0KQogQUxXQVlTX0lOTElORSB2b2lkIEpJVDo6c2FtcGxlSW5z
dHJ1Y3Rpb24oSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBib29sIGluSG9zdEZ1bmN0aW9uKQog
ewogICAgIG1vdmUoSW1tUHRyKG1faW50ZXJwcmV0ZXItPnNhbXBsZXIoKS0+c2FtcGxlU2xvdCgp
KSwgWDg2UmVnaXN0ZXJzOjplY3gpOwpAQCAtMjkzLDcgKzI5Myw3IEBAIEFMV0FZU19JTkxJTkUg
dm9pZCBKSVQ6OnNhbXBsZUluc3RydWN0aW8KICNlbmRpZgogCiAjaWYgRU5BQkxFKENPREVCTE9D
S19TQU1QTElORykKLSNpZiBQTEFURk9STShYODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkKIEFMV0FZ
U19JTkxJTkUgdm9pZCBKSVQ6OnNhbXBsZUNvZGVCbG9jayhDb2RlQmxvY2sqIGNvZGVCbG9jaykK
IHsKICAgICBtb3ZlKEltbVB0cihtX2ludGVycHJldGVyLT5zYW1wbGVyKCktPmNvZGVCbG9ja1Ns
b3QoKSksIFg4NlJlZ2lzdGVyczo6ZWN4KTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5j
cHAJKHJldmlzaW9uIDUyNzI0KQorKysgSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsNyArMTM3LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21w
aWxlQ1RJTWFjaGluZVRyYW1wbwogICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMiwgT0JKRUNUX09G
RlNFVE9GKEZ1bmN0aW9uRXhlY3V0YWJsZSwgbV9qaXRDb2RlKSksIHJlZ1QwKTsKICAgICBqdW1w
KHJlZ1QwKTsKIAotI2lmIFBMQVRGT1JNKFg4NikgfHwgUExBVEZPUk0oQVJNX1RSQURJVElPTkFM
KQorI2lmIENQVShYODYpIHx8IENQVShBUk1fVFJBRElUSU9OQUwpCiAgICAgTGFiZWwgbmF0aXZl
Q2FsbFRodW5rID0gYWxpZ24oKTsKICAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwo
cmVnVDApOwogICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMCwgUmVnaXN0ZXJGaWxl
OjpSZXR1cm5QQyk7IC8vIFB1c2ggcmV0dXJuIGFkZHJlc3MKQEAgLTE0OCw3ICsxNDgsNyBAQCB2
b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElNYWNoaW5lVHJhbXBvCiAgICAgZW1pdEdldEZyb21D
YWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpTY29wZUNoYWluLCByZWdUMSwgcmVnVDEp
OwogICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgUmVnaXN0ZXJGaWxlOjpTY29w
ZUNoYWluKTsKICAgICAKLSNpZiBQTEFURk9STShYODYpCisjaWYgQ1BVKFg4NikKICAgICBlbWl0
R2V0RnJvbUNhbGxGcmFtZUhlYWRlcjMyKFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRDb3VudCwgcmVn
VDApOwogCiAgICAgLyogV2UgaGF2ZSB0d28gc3RydWN0cyB0aGF0IHdlIHVzZSB0byBkZXNjcmli
ZSB0aGUgc3RhY2tmcmFtZSB3ZSBzZXQgdXAgZm9yIG91cgpAQCAtMjQ4LDcgKzI0OCw3IEBAIHZv
aWQgSklUOjpwcml2YXRlQ29tcGlsZUNUSU1hY2hpbmVUcmFtcG8KICAgICAvLyBzbyBwdWxsIHRo
ZW0gb2ZmIG5vdwogICAgIGFkZFB0cihJbW0zMihOYXRpdmVDYWxsRnJhbWVTaXplIC0gc2l6ZW9m
KE5hdGl2ZUZ1bmN0aW9uQ2FsbGVlU2lnbmF0dXJlKSksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsK
IAotI2VsaWYgUExBVEZPUk0oQVJNX1RSQURJVElPTkFMKQorI2VsaWYgQ1BVKEFSTV9UUkFESVRJ
T05BTCkKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlcjMyKFJlZ2lzdGVyRmlsZTo6QXJn
dW1lbnRDb3VudCwgcmVnVDApOwogCiAgICAgLy8gQWxsb2NhdGUgc3RhY2sgc3BhY2UgZm9yIG91
ciBhcmdsaXN0CkBAIC0xNjAxLDcgKzE2MDEsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVD
VElNYWNoaW5lVHJhbXBvCiAgICAgZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBSZWdp
c3RlckZpbGU6OlNjb3BlQ2hhaW4pOwogICAgIAogCi0jaWYgUExBVEZPUk0oWDg2XzY0KQorI2lm
IENQVShYODZfNjQpCiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXIzMihSZWdpc3RlckZp
bGU6OkFyZ3VtZW50Q291bnQsIFg4NlJlZ2lzdGVyczo6ZWN4KTsKIAogICAgIC8vIEFsbG9jYXRl
IHN0YWNrIHNwYWNlIGZvciBvdXIgYXJnbGlzdApAQCAtMTYzNyw3ICsxNjM3LDcgQEAgdm9pZCBK
SVQ6OnByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wbwogICAgIGNhbGwoQWRkcmVzcyhYODZS
ZWdpc3RlcnM6OmVzaSwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fZGF0YSkpKTsKICAg
ICAKICAgICBhZGRQdHIoSW1tMzIoc2l6ZW9mKEFyZ0xpc3QpKSwgc3RhY2tQb2ludGVyUmVnaXN0
ZXIpOwotI2VsaWYgUExBVEZPUk0oWDg2KQorI2VsaWYgQ1BVKFg4NikKICAgICBlbWl0R2V0RnJv
bUNhbGxGcmFtZUhlYWRlcjMyKFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRDb3VudCwgcmVnVDApOwog
CiAgICAgLyogV2UgaGF2ZSB0d28gc3RydWN0cyB0aGF0IHdlIHVzZSB0byBkZXNjcmliZSB0aGUg
c3RhY2tmcmFtZSB3ZSBzZXQgdXAgZm9yIG91cgpAQCAtMTcyOSw3ICsxNzI5LDcgQEAgdm9pZCBK
SVQ6OnByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wbwogICAgIC8vIHNvIHB1bGwgdGhlbSBv
ZmYgbm93CiAgICAgYWRkUHRyKEltbTMyKE5hdGl2ZUNhbGxGcmFtZVNpemUgLSBzaXplb2YoTmF0
aXZlRnVuY3Rpb25DYWxsZWVTaWduYXR1cmUpKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogCi0j
ZWxpZiBQTEFURk9STShBUk0pCisjZWxpZiBDUFUoQVJNKQogICAgIGVtaXRHZXRGcm9tQ2FsbEZy
YW1lSGVhZGVyMzIoUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENvdW50LCByZWdUMCk7CiAKICAgICAv
LyBBbGxvY2F0ZSBzdGFjayBzcGFjZSBmb3Igb3VyIGFyZ2xpc3QKSW5kZXg6IEphdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENv
cmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAkocmV2aXNpb24gNTI3MjQpCisrKyBKYXZhU2Ny
aXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MzAs
NyArNzMwLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlJZFByb3RvKFN0cgogCiAg
ICAgLy8gQ2hlY2sgdGhlIHByb3RvdHlwZSBvYmplY3QncyBTdHJ1Y3R1cmUgaGFkIG5vdCBjaGFu
Z2VkLgogICAgIFN0cnVjdHVyZSoqIHByb3RvdHlwZVN0cnVjdHVyZUFkZHJlc3MgPSAmKHByb3Rv
T2JqZWN0LT5tX3N0cnVjdHVyZSk7Ci0jaWYgUExBVEZPUk0oWDg2XzY0KQorI2lmIENQVShYODZf
NjQpCiAgICAgbW92ZShJbW1QdHIocHJvdG90eXBlU3RydWN0dXJlKSwgcmVnVDMpOwogICAgIEp1
bXAgZmFpbHVyZUNhc2VzMiA9IGJyYW5jaFB0cihOb3RFcXVhbCwgQWJzb2x1dGVBZGRyZXNzKHBy
b3RvdHlwZVN0cnVjdHVyZUFkZHJlc3MpLCByZWdUMyk7CiAjZWxzZQpAQCAtODEwLDcgKzgxMCw3
IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUdldEJ5SWRQcm90b0xpc3QKIAogICAgIC8vIENo
ZWNrIHRoZSBwcm90b3R5cGUgb2JqZWN0J3MgU3RydWN0dXJlIGhhZCBub3QgY2hhbmdlZC4KICAg
ICBTdHJ1Y3R1cmUqKiBwcm90b3R5cGVTdHJ1Y3R1cmVBZGRyZXNzID0gJihwcm90b09iamVjdC0+
bV9zdHJ1Y3R1cmUpOwotI2lmIFBMQVRGT1JNKFg4Nl82NCkKKyNpZiBDUFUoWDg2XzY0KQogICAg
IG1vdmUoSW1tUHRyKHByb3RvdHlwZVN0cnVjdHVyZSksIHJlZ1QzKTsKICAgICBKdW1wIGZhaWx1
cmVDYXNlczIgPSBicmFuY2hQdHIoTm90RXF1YWwsIEFic29sdXRlQWRkcmVzcyhwcm90b3R5cGVT
dHJ1Y3R1cmVBZGRyZXNzKSwgcmVnVDMpOwogI2Vsc2UKQEAgLTg2Myw3ICs4NjMsNyBAQCB2b2lk
IEpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeUlkQ2hhaW5MaXN0CiAKICAgICAgICAgLy8gQ2hlY2sg
dGhlIHByb3RvdHlwZSBvYmplY3QncyBTdHJ1Y3R1cmUgaGFkIG5vdCBjaGFuZ2VkLgogICAgICAg
ICBTdHJ1Y3R1cmUqKiBwcm90b3R5cGVTdHJ1Y3R1cmVBZGRyZXNzID0gJihwcm90b09iamVjdC0+
bV9zdHJ1Y3R1cmUpOwotI2lmIFBMQVRGT1JNKFg4Nl82NCkKKyNpZiBDUFUoWDg2XzY0KQogICAg
ICAgICBtb3ZlKEltbVB0cihjdXJyU3RydWN0dXJlKSwgcmVnVDMpOwogICAgICAgICBidWNrZXRz
T2ZGYWlsLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIEFic29sdXRlQWRkcmVzcyhwcm90b3R5
cGVTdHJ1Y3R1cmVBZGRyZXNzKSwgcmVnVDMpKTsKICNlbHNlCkBAIC05MTgsNyArOTE4LDcgQEAg
dm9pZCBKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlJZENoYWluKFN0cgogCiAgICAgICAgIC8vIENo
ZWNrIHRoZSBwcm90b3R5cGUgb2JqZWN0J3MgU3RydWN0dXJlIGhhZCBub3QgY2hhbmdlZC4KICAg
ICAgICAgU3RydWN0dXJlKiogcHJvdG90eXBlU3RydWN0dXJlQWRkcmVzcyA9ICYocHJvdG9PYmpl
Y3QtPm1fc3RydWN0dXJlKTsKLSNpZiBQTEFURk9STShYODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkK
ICAgICAgICAgbW92ZShJbW1QdHIoY3VyclN0cnVjdHVyZSksIHJlZ1QzKTsKICAgICAgICAgYnVj
a2V0c09mRmFpbC5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBBYnNvbHV0ZUFkZHJlc3MocHJv
dG90eXBlU3RydWN0dXJlQWRkcmVzcyksIHJlZ1QzKSk7CiAjZWxzZQpAQCAtMTY3Niw3ICsxNjc2
LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlJZFByb3RvKFN0cgogCiAgICAgLy8g
Q2hlY2sgdGhlIHByb3RvdHlwZSBvYmplY3QncyBTdHJ1Y3R1cmUgaGFkIG5vdCBjaGFuZ2VkLgog
ICAgIFN0cnVjdHVyZSoqIHByb3RvdHlwZVN0cnVjdHVyZUFkZHJlc3MgPSAmKHByb3RvT2JqZWN0
LT5tX3N0cnVjdHVyZSk7Ci0jaWYgUExBVEZPUk0oWDg2XzY0KQorI2lmIENQVShYODZfNjQpCiAg
ICAgbW92ZShJbW1QdHIocHJvdG90eXBlU3RydWN0dXJlKSwgcmVnVDMpOwogICAgIEp1bXAgZmFp
bHVyZUNhc2VzMiA9IGJyYW5jaFB0cihOb3RFcXVhbCwgQWJzb2x1dGVBZGRyZXNzKHByb3RvdHlw
ZVN0cnVjdHVyZUFkZHJlc3MpLCByZWdUMyk7CiAjZWxzZQpAQCAtMTc1MSw3ICsxNzUxLDcgQEAg
dm9pZCBKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlJZFByb3RvTGlzdAogCiAgICAgLy8gQ2hlY2sg
dGhlIHByb3RvdHlwZSBvYmplY3QncyBTdHJ1Y3R1cmUgaGFkIG5vdCBjaGFuZ2VkLgogICAgIFN0
cnVjdHVyZSoqIHByb3RvdHlwZVN0cnVjdHVyZUFkZHJlc3MgPSAmKHByb3RvT2JqZWN0LT5tX3N0
cnVjdHVyZSk7Ci0jaWYgUExBVEZPUk0oWDg2XzY0KQorI2lmIENQVShYODZfNjQpCiAgICAgbW92
ZShJbW1QdHIocHJvdG90eXBlU3RydWN0dXJlKSwgcmVnVDMpOwogICAgIEp1bXAgZmFpbHVyZUNh
c2VzMiA9IGJyYW5jaFB0cihOb3RFcXVhbCwgQWJzb2x1dGVBZGRyZXNzKHByb3RvdHlwZVN0cnVj
dHVyZUFkZHJlc3MpLCByZWdUMyk7CiAjZWxzZQpAQCAtMTgwNCw3ICsxODA0LDcgQEAgdm9pZCBK
SVQ6OnByaXZhdGVDb21waWxlR2V0QnlJZENoYWluTGlzdAogCiAgICAgICAgIC8vIENoZWNrIHRo
ZSBwcm90b3R5cGUgb2JqZWN0J3MgU3RydWN0dXJlIGhhZCBub3QgY2hhbmdlZC4KICAgICAgICAg
U3RydWN0dXJlKiogcHJvdG90eXBlU3RydWN0dXJlQWRkcmVzcyA9ICYocHJvdG9PYmplY3QtPm1f
c3RydWN0dXJlKTsKLSNpZiBQTEFURk9STShYODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkKICAgICAg
ICAgbW92ZShJbW1QdHIoY3VyclN0cnVjdHVyZSksIHJlZ1QzKTsKICAgICAgICAgYnVja2V0c09m
RmFpbC5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBBYnNvbHV0ZUFkZHJlc3MocHJvdG90eXBl
U3RydWN0dXJlQWRkcmVzcyksIHJlZ1QzKSk7CiAjZWxzZQpAQCAtMTg1Nyw3ICsxODU3LDcgQEAg
dm9pZCBKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlJZENoYWluKFN0cgogCiAgICAgICAgIC8vIENo
ZWNrIHRoZSBwcm90b3R5cGUgb2JqZWN0J3MgU3RydWN0dXJlIGhhZCBub3QgY2hhbmdlZC4KICAg
ICAgICAgU3RydWN0dXJlKiogcHJvdG90eXBlU3RydWN0dXJlQWRkcmVzcyA9ICYocHJvdG9PYmpl
Y3QtPm1fc3RydWN0dXJlKTsKLSNpZiBQTEFURk9STShYODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkK
ICAgICAgICAgbW92ZShJbW1QdHIoY3VyclN0cnVjdHVyZSksIHJlZ1QzKTsKICAgICAgICAgYnVj
a2V0c09mRmFpbC5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBBYnNvbHV0ZUFkZHJlc3MocHJv
dG90eXBlU3RydWN0dXJlQWRkcmVzcyksIHJlZ1QzKSk7CiAjZWxzZQpJbmRleDogSmF2YVNjcmlw
dENvcmUvaml0L0pJVFN0dWJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YnMuY3BwCShyZXZpc2lvbiA1MjcyNCkKKysrIEphdmFTY3JpcHRDb3JlL2ppdC9KSVRT
dHVicy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2LDcgKzc2LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAjZGVmaW5lIFRIVU1CX0ZVTkNfUEFSQU0obmFtZSkKICNlbmRpZgogCi0jaWYgUExBVEZPUk0o
TElOVVgpICYmIFBMQVRGT1JNKFg4Nl82NCkKKyNpZiBQTEFURk9STShMSU5VWCkgJiYgQ1BVKFg4
Nl82NCkKICNkZWZpbmUgU1lNQk9MX1NUUklOR19SRUxPQ0FUSU9OKG5hbWUpICNuYW1lICJAcGx0
IgogI2Vsc2UKICNkZWZpbmUgU1lNQk9MX1NUUklOR19SRUxPQ0FUSU9OKG5hbWUpIFNZTUJPTF9T
VFJJTkcobmFtZSkKQEAgLTg4LDcgKzg4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZWxpZiBQTEFU
Rk9STShBSVgpCiAgICAgLy8gSUJNJ3Mgb3duIGZpbGUgZm9ybWF0CiAjZGVmaW5lIEhJREVfU1lN
Qk9MKG5hbWUpICIubGdsb2JsICIgI25hbWUKLSNlbGlmIFBMQVRGT1JNKExJTlVYKSB8fCBQTEFU
Rk9STShGUkVFQlNEKSB8fCBQTEFURk9STShPUEVOQlNEKSB8fCBQTEFURk9STShTT0xBUklTKSB8
fCAoUExBVEZPUk0oSFBVWCkgJiYgUExBVEZPUk0oSUE2NCkpIHx8IFBMQVRGT1JNKFNZTUJJQU4p
IHx8IFBMQVRGT1JNKE5FVEJTRCkKKyNlbGlmIFBMQVRGT1JNKExJTlVYKSB8fCBQTEFURk9STShG
UkVFQlNEKSB8fCBQTEFURk9STShPUEVOQlNEKSB8fCBQTEFURk9STShTT0xBUklTKSB8fCAoUExB
VEZPUk0oSFBVWCkgJiYgQ1BVKElBNjQpKSB8fCBQTEFURk9STShTWU1CSUFOKSB8fCBQTEFURk9S
TShORVRCU0QpCiAgICAgLy8gRUxGIHBsYXRmb3JtCiAjZGVmaW5lIEhJREVfU1lNQk9MKG5hbWUp
ICIuaGlkZGVuICIgI25hbWUKICNlbHNlCkBAIC05Nyw3ICs5Nyw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgUExBVEZP
Uk0oWDg2KQorI2lmIENPTVBJTEVSKEdDQykgJiYgQ1BVKFg4NikKIAogLy8gVGhlc2UgQVNTRVJU
cyByZW1pbmQgeW91IHRoYXQsIGlmIHlvdSBjaGFuZ2UgdGhlIGxheW91dCBvZiBKSVRTdGFja0Zy
YW1lLCB5b3UKIC8vIG5lZWQgdG8gY2hhbmdlIHRoZSBhc3NlbWJseSB0cmFtcG9saW5lcyBiZWxv
dyB0byBtYXRjaC4KQEAgLTE1Niw3ICsxNTYsNyBAQCBTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dO
b3RDYXVnaHQpICI6IiAiCiAgICAgInJldCIgIlxuIgogKTsKICAgICAKLSNlbGlmIENPTVBJTEVS
KEdDQykgJiYgUExBVEZPUk0oWDg2XzY0KQorI2VsaWYgQ09NUElMRVIoR0NDKSAmJiBDUFUoWDg2
XzY0KQogCiAjaWYgVVNFKEpJVF9TVFVCX0FSR1VNRU5UX1ZBX0xJU1QpCiAjZXJyb3IgIkpJVF9T
VFVCX0FSR1VNRU5UX1ZBX0xJU1Qgbm90IHN1cHBvcnRlZCBvbiB4ODYtNjQuIgpAQCAtMjI2LDcg
KzIyNiw3IEBAIFNZTUJPTF9TVFJJTkcoY3RpT3BUaHJvd05vdENhdWdodCkgIjoiICIKICAgICAi
cmV0IiAiXG4iCiApOwogCi0jZWxpZiBDT01QSUxFUihHQ0MpICYmIFBMQVRGT1JNKEFSTV9USFVN
QjIpCisjZWxpZiBDT01QSUxFUihHQ0MpICYmIENQVShBUk1fVEhVTUIyKQogCiAjaWYgVVNFKEpJ
VF9TVFVCX0FSR1VNRU5UX1ZBX0xJU1QpCiAjZXJyb3IgIkpJVF9TVFVCX0FSR1VNRU5UX1ZBX0xJ
U1Qgbm90IHN1cHBvcnRlZCBvbiBBUk12Ny4iCkBAIC0yOTIsNyArMjkyLDcgQEAgU1lNQk9MX1NU
UklORyhjdGlPcFRocm93Tm90Q2F1Z2h0KSAiOiIgIgogICAgICJieCBsciIgIlxuIgogKTsKIAot
I2VsaWYgQ09NUElMRVIoR0NDKSAmJiBQTEFURk9STShBUk1fVFJBRElUSU9OQUwpCisjZWxpZiBD
T01QSUxFUihHQ0MpICYmIENQVShBUk1fVFJBRElUSU9OQUwpCiAKIGFzbSB2b2xhdGlsZSAoCiAi
Lmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lKSAiXG4iCkBAIC0zOTAsMTEgKzM5
MCwxMSBAQCBleHRlcm4gIkMiIHsKICAgICB9CiB9CiAKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0Mp
ICYmIFBMQVRGT1JNKFg4NikKKyNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIENQVShYODYpCiAK
ICNlbHNlIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIFBMQVRG
T1JNKFg4NikKKyNpZiBDT01QSUxFUihHQ0MpICYmIENQVShYODYpCiAKIC8vIFRoZXNlIEFTU0VS
VHMgcmVtaW5kIHlvdSB0aGF0LCBpZiB5b3UgY2hhbmdlIHRoZSBsYXlvdXQgb2YgSklUU3RhY2tG
cmFtZSwgeW91CiAvLyBuZWVkIHRvIGNoYW5nZSB0aGUgYXNzZW1ibHkgdHJhbXBvbGluZXMgYmVs
b3cgdG8gbWF0Y2guCkBAIC00NTIsNyArNDUyLDcgQEAgU1lNQk9MX1NUUklORyhjdGlPcFRocm93
Tm90Q2F1Z2h0KSAiOiIgIgogICAgICJyZXQiICJcbiIKICk7CiAgICAgCi0jZWxpZiBDT01QSUxF
UihHQ0MpICYmIFBMQVRGT1JNKFg4Nl82NCkKKyNlbGlmIENPTVBJTEVSKEdDQykgJiYgQ1BVKFg4
Nl82NCkKIAogI2lmIFVTRShKSVRfU1RVQl9BUkdVTUVOVF9WQV9MSVNUKQogI2Vycm9yICJKSVRf
U1RVQl9BUkdVTUVOVF9WQV9MSVNUIG5vdCBzdXBwb3J0ZWQgb24geDg2LTY0LiIKQEAgLTUyOSw3
ICs1MjksNyBAQCBTWU1CT0xfU1RSSU5HKGN0aU9wVGhyb3dOb3RDYXVnaHQpICI6IiAiCiAgICAg
InJldCIgIlxuIgogKTsKIAotI2VsaWYgQ09NUElMRVIoR0NDKSAmJiBQTEFURk9STShBUk1fVEhV
TUIyKQorI2VsaWYgQ09NUElMRVIoR0NDKSAmJiBDUFUoQVJNX1RIVU1CMikKIAogI2lmIFVTRShK
SVRfU1RVQl9BUkdVTUVOVF9WQV9MSVNUKQogI2Vycm9yICJKSVRfU1RVQl9BUkdVTUVOVF9WQV9M
SVNUIG5vdCBzdXBwb3J0ZWQgb24gQVJNdjcuIgpAQCAtNTk2LDcgKzU5Niw3IEBAIFNZTUJPTF9T
VFJJTkcoY3RpT3BUaHJvd05vdENhdWdodCkgIjoiICIKICAgICAiYnggbHIiICJcbiIKICk7CiAK
LSNlbGlmIENPTVBJTEVSKEdDQykgJiYgUExBVEZPUk0oQVJNX1RSQURJVElPTkFMKQorI2VsaWYg
Q09NUElMRVIoR0NDKSAmJiBDUFUoQVJNX1RSQURJVElPTkFMKQogCiBhc20gdm9sYXRpbGUgKAog
Ii50ZXh0XG4iCkBAIC02OTYsNyArNjk2LDcgQEAgZXh0ZXJuICJDIiB7CiAgICAgIH0KIH0KIAot
I2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgUExBVEZPUk0oWDg2KQorI2VuZGlmIC8vIENPTVBJ
TEVSKEdDQykgJiYgQ1BVKFg4NikKIAogI2VuZGlmIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKQEAg
LTcxMCw3ICs3MTAsNyBAQCBKSVRUaHVua3M6OkpJVFRodW5rcyhKU0dsb2JhbERhdGEqIGdsb2Jh
CiB7CiAgICAgSklUOjpjb21waWxlQ1RJTWFjaGluZVRyYW1wb2xpbmVzKGdsb2JhbERhdGEsICZt
X2V4ZWN1dGFibGVQb29sLCAmbV9jdGlTdHJpbmdMZW5ndGhUcmFtcG9saW5lLCAmbV9jdGlWaXJ0
dWFsQ2FsbExpbmssICZtX2N0aVZpcnR1YWxDYWxsLCAmbV9jdGlOYXRpdmVDYWxsVGh1bmspOwog
Ci0jaWYgUExBVEZPUk0oQVJNX1RIVU1CMikKKyNpZiBDUFUoQVJNX1RIVU1CMikKICAgICAvLyBV
bmZvcnR1bmF0ZSB0aGUgYXJtIGNvbXBpbGVyIGRvZXMgbm90IGxpa2UgdGhlIHVzZSBvZiBvZmZz
ZXRvZiBvbiBKSVRTdGFja0ZyYW1lIChzaW5jZSBpdCBjb250YWlucyBub24gUE9EIHR5cGVzKSwK
ICAgICAvLyBhbmQgdGhlIE9CSkVDVF9PRkZTRVRPRiBtYWNybyBkb2VzIG5vdCBhcHBlYXIgY29u
c3RhbnRpc2ggZW5vdWdoIGZvciBpdCB0byBiZSBoYXBweSB3aXRoIGl0cyB1c2UgaW4gQ09NUElM
RV9BU1NFUlQKICAgICAvLyBtYWNyb3MuCkBAIC05NTcsNyArOTU3LDcgQEAgc3RhdGljIE5FVkVS
X0lOTElORSB2b2lkIHRocm93U3RhY2tPdmVyZgogICAgICAgICB9IFwKICAgICB9IHdoaWxlICgw
KQogCi0jaWYgUExBVEZPUk0oQVJNX1RIVU1CMikKKyNpZiBDUFUoQVJNX1RIVU1CMikKIAogI2Rl
ZmluZSBERUZJTkVfU1RVQl9GVU5DVElPTihydHlwZSwgb3ApIFwKICAgICBleHRlcm4gIkMiIHsg
XApAQCAtOTc4LDcgKzk3OCw3IEBAIHN0YXRpYyBORVZFUl9JTkxJTkUgdm9pZCB0aHJvd1N0YWNr
T3ZlcmYKICAgICAgICAgKTsgXAogICAgIHJ0eXBlIEpJVFN0dWJUaHVua2VkXyMjb3AoU1RVQl9B
UkdTX0RFQ0xBUkFUSU9OKSBcCiAKLSNlbGlmIFBMQVRGT1JNKEFSTV9UUkFESVRJT05BTCkgJiYg
Q09NUElMRVIoR0NDKQorI2VsaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkgJiYgQ09NUElMRVIoR0ND
KQogCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICNkZWZpbmUgVEhVTktfUkVUVVJOX0FERFJFU1Nf
T0ZGU0VUIDY0CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAkocmV2aXNpb24gNTI3MjQpCisrKyBK
YXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyArNzUs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRy
ZXNzKCkgeyByZXR1cm4gUmV0dXJuQWRkcmVzc1B0cihhc1BvaW50ZXIpOyB9CiAgICAgfTsKIAot
I2lmIFBMQVRGT1JNKFg4Nl82NCkKKyNpZiBDUFUoWDg2XzY0KQogICAgIHN0cnVjdCBKSVRTdGFj
a0ZyYW1lIHsKICAgICAgICAgdm9pZCogcmVzZXJ2ZWQ7IC8vIFVudXNlZAogICAgICAgICBKSVRT
dHViQXJnIGFyZ3NbNl07CkBAIC05OSw3ICs5OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICAvLyBXaGVuIEpJVCBjb2RlIG1ha2VzIGEgY2FsbCwgaXQgcHVzaGVzIGl0cyByZXR1cm4gYWRk
cmVzcyBqdXN0IGJlbG93IHRoZSByZXN0IG9mIHRoZSBzdGFjay4KICAgICAgICAgUmV0dXJuQWRk
cmVzc1B0ciogcmV0dXJuQWRkcmVzc1Nsb3QoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PFJl
dHVybkFkZHJlc3NQdHIqPih0aGlzKSAtIDE7IH0KICAgICB9OwotI2VsaWYgUExBVEZPUk0oWDg2
KQorI2VsaWYgQ1BVKFg4NikKICNpZiBDT01QSUxFUihNU1ZDKQogI3ByYWdtYSBwYWNrKHB1c2gp
CiAjcHJhZ21hIHBhY2soNCkKQEAgLTEzMCw3ICsxMzAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICNp
ZiBDT01QSUxFUihNU1ZDKQogI3ByYWdtYSBwYWNrKHBvcCkKICNlbmRpZiAvLyBDT01QSUxFUihN
U1ZDKQotI2VsaWYgUExBVEZPUk0oQVJNX1RIVU1CMikKKyNlbGlmIENQVShBUk1fVEhVTUIyKQog
ICAgIHN0cnVjdCBKSVRTdGFja0ZyYW1lIHsKICAgICAgICAgdm9pZCogcmVzZXJ2ZWQ7IC8vIFVu
dXNlZAogICAgICAgICBKSVRTdHViQXJnIGFyZ3NbNl07CkBAIC0xNTgsNyArMTU4LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIAogICAgICAgICBSZXR1cm5BZGRyZXNzUHRyKiByZXR1cm5B
ZGRyZXNzU2xvdCgpIHsgcmV0dXJuICZ0aHVua1JldHVybkFkZHJlc3M7IH0KICAgICB9OwotI2Vs
aWYgUExBVEZPUk0oQVJNX1RSQURJVElPTkFMKQorI2VsaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkK
ICAgICBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7CiAgICAgICAgIEpJVFN0dWJBcmcgcGFkZGluZzsg
Ly8gVW51c2VkCiAgICAgICAgIEpJVFN0dWJBcmcgYXJnc1s3XTsKQEAgLTIwMiwxNiArMjAyLDE2
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICNkZWZpbmUgU1RVQl9BUkdTX0RFQ0xBUkFUSU9OIHZv
aWQqKiBhcmdzCiAgICAgI2RlZmluZSBTVFVCX0FSR1MgKGFyZ3MpCiAKLSAgICAjaWYgUExBVEZP
Uk0oWDg2KSAmJiBDT01QSUxFUihNU1ZDKQorICAgICNpZiBDUFUoWDg2KSAmJiBDT01QSUxFUihN
U1ZDKQogICAgICNkZWZpbmUgSklUX1NUVUIgX19mYXN0Y2FsbAotICAgICNlbGlmIFBMQVRGT1JN
KFg4NikgJiYgQ09NUElMRVIoR0NDKQorICAgICNlbGlmIENQVShYODYpICYmIENPTVBJTEVSKEdD
QykKICAgICAjZGVmaW5lIEpJVF9TVFVCICBfX2F0dHJpYnV0ZV9fICgoZmFzdGNhbGwpKQogICAg
ICNlbHNlCiAgICAgI2RlZmluZSBKSVRfU1RVQgogICAgICNlbmRpZgogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShYODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkKICAgICBzdHJ1Y3QgVm9pZFB0clBhaXIg
ewogICAgICAgICB2b2lkKiBmaXJzdDsKICAgICAgICAgdm9pZCogc2Vjb25kOwpJbmRleDogSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db2xsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29sbGVjdG9yLmNwcAkocmV2aXNpb24gNTI3MjQpCisrKyBKYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbGxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzOSw3ICs1
MzksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQqIGN1cnJlbnRUaHJlYWRTdGFja0JhCiAjaWYgUExB
VEZPUk0oREFSV0lOKQogICAgIHB0aHJlYWRfdCB0aHJlYWQgPSBwdGhyZWFkX3NlbGYoKTsKICAg
ICByZXR1cm4gcHRocmVhZF9nZXRfc3RhY2thZGRyX25wKHRocmVhZCk7Ci0jZWxpZiBQTEFURk9S
TShXSU5fT1MpICYmIFBMQVRGT1JNKFg4NikgJiYgQ09NUElMRVIoTVNWQykKKyNlbGlmIFBMQVRG
T1JNKFdJTl9PUykgJiYgQ1BVKFg4NikgJiYgQ09NUElMRVIoTVNWQykKICAgICAvLyBvZmZzZXQg
MHgxOCBmcm9tIHRoZSBGUyBzZWdtZW50IHJlZ2lzdGVyIGdpdmVzIGEgcG9pbnRlciB0bwogICAg
IC8vIHRoZSB0aHJlYWQgaW5mb3JtYXRpb24gYmxvY2sgZm9yIHRoZSBjdXJyZW50IHRocmVhZAog
ICAgIE5UX1RJQiogcFRpYjsKQEAgLTU0OCwxMCArNTQ4LDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCogY3VycmVudFRocmVhZFN0YWNrQmEKICAgICAgICAgTU9WIHBUaWIsIEVBWAogICAgIH0KICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8dm9pZCo+KHBUaWItPlN0YWNrQmFzZSk7Ci0jZWxpZiBQTEFU
Rk9STShXSU5fT1MpICYmIFBMQVRGT1JNKFg4Nl82NCkgJiYgQ09NUElMRVIoTVNWQykKKyNlbGlm
IFBMQVRGT1JNKFdJTl9PUykgJiYgQ1BVKFg4Nl82NCkgJiYgQ09NUElMRVIoTVNWQykKICAgICBQ
TlRfVElCNjQgcFRpYiA9IHJlaW50ZXJwcmV0X2Nhc3Q8UE5UX1RJQjY0PihOdEN1cnJlbnRUZWIo
KSk7CiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHBUaWItPlN0YWNrQmFzZSk7
Ci0jZWxpZiBQTEFURk9STShXSU5fT1MpICYmIFBMQVRGT1JNKFg4NikgJiYgQ09NUElMRVIoR0ND
KQorI2VsaWYgUExBVEZPUk0oV0lOX09TKSAmJiBDUFUoWDg2KSAmJiBDT01QSUxFUihHQ0MpCiAg
ICAgLy8gb2Zmc2V0IDB4MTggZnJvbSB0aGUgRlMgc2VnbWVudCByZWdpc3RlciBnaXZlcyBhIHBv
aW50ZXIgdG8KICAgICAvLyB0aGUgdGhyZWFkIGluZm9ybWF0aW9uIGJsb2NrIGZvciB0aGUgY3Vy
cmVudCB0aHJlYWQKICAgICBOVF9USUIqIHBUaWI7CkBAIC04MjMsMjEgKzgyMywyMSBAQCB0eXBl
ZGVmIHVuc2lnbmVkIGxvbmcgdXN3b3JkX3Q7IC8vIHdvcmQgCiAKICNpZiBQTEFURk9STShEQVJX
SU4pCiAKLSNpZiBQTEFURk9STShYODYpCisjaWYgQ1BVKFg4NikKIHR5cGVkZWYgaTM4Nl90aHJl
YWRfc3RhdGVfdCBQbGF0Zm9ybVRocmVhZFJlZ2lzdGVyczsKLSNlbGlmIFBMQVRGT1JNKFg4Nl82
NCkKKyNlbGlmIENQVShYODZfNjQpCiB0eXBlZGVmIHg4Nl90aHJlYWRfc3RhdGU2NF90IFBsYXRm
b3JtVGhyZWFkUmVnaXN0ZXJzOwotI2VsaWYgUExBVEZPUk0oUFBDKQorI2VsaWYgQ1BVKFBQQykK
IHR5cGVkZWYgcHBjX3RocmVhZF9zdGF0ZV90IFBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJzOwotI2Vs
aWYgUExBVEZPUk0oUFBDNjQpCisjZWxpZiBDUFUoUFBDNjQpCiB0eXBlZGVmIHBwY190aHJlYWRf
c3RhdGU2NF90IFBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJzOwotI2VsaWYgUExBVEZPUk0oQVJNKQor
I2VsaWYgQ1BVKEFSTSkKIHR5cGVkZWYgYXJtX3RocmVhZF9zdGF0ZV90IFBsYXRmb3JtVGhyZWFk
UmVnaXN0ZXJzOwogI2Vsc2UKICNlcnJvciBVbmtub3duIEFyY2hpdGVjdHVyZQogI2VuZGlmCiAK
LSNlbGlmIFBMQVRGT1JNKFdJTl9PUykmJiBQTEFURk9STShYODYpCisjZWxpZiBQTEFURk9STShX
SU5fT1MpJiYgQ1BVKFg4NikKIHR5cGVkZWYgQ09OVEVYVCBQbGF0Zm9ybVRocmVhZFJlZ2lzdGVy
czsKICNlbHNlCiAjZXJyb3IgTmVlZCBhIHRocmVhZCByZWdpc3RlciBzdHJ1Y3QgZm9yIHRoaXMg
cGxhdGZvcm0KQEAgLTg0NywxOSArODQ3LDE5IEBAIHN0YXRpYyBzaXplX3QgZ2V0UGxhdGZvcm1U
aHJlYWRSZWdpc3RlcnMKIHsKICNpZiBQTEFURk9STShEQVJXSU4pCiAKLSNpZiBQTEFURk9STShY
ODYpCisjaWYgQ1BVKFg4NikKICAgICB1bnNpZ25lZCB1c2VyX2NvdW50ID0gc2l6ZW9mKHJlZ3Mp
L3NpemVvZihpbnQpOwogICAgIHRocmVhZF9zdGF0ZV9mbGF2b3JfdCBmbGF2b3IgPSBpMzg2X1RI
UkVBRF9TVEFURTsKLSNlbGlmIFBMQVRGT1JNKFg4Nl82NCkKKyNlbGlmIENQVShYODZfNjQpCiAg
ICAgdW5zaWduZWQgdXNlcl9jb3VudCA9IHg4Nl9USFJFQURfU1RBVEU2NF9DT1VOVDsKICAgICB0
aHJlYWRfc3RhdGVfZmxhdm9yX3QgZmxhdm9yID0geDg2X1RIUkVBRF9TVEFURTY0OwotI2VsaWYg
UExBVEZPUk0oUFBDKSAKKyNlbGlmIENQVShQUEMpIAogICAgIHVuc2lnbmVkIHVzZXJfY291bnQg
PSBQUENfVEhSRUFEX1NUQVRFX0NPVU5UOwogICAgIHRocmVhZF9zdGF0ZV9mbGF2b3JfdCBmbGF2
b3IgPSBQUENfVEhSRUFEX1NUQVRFOwotI2VsaWYgUExBVEZPUk0oUFBDNjQpCisjZWxpZiBDUFUo
UFBDNjQpCiAgICAgdW5zaWduZWQgdXNlcl9jb3VudCA9IFBQQ19USFJFQURfU1RBVEU2NF9DT1VO
VDsKICAgICB0aHJlYWRfc3RhdGVfZmxhdm9yX3QgZmxhdm9yID0gUFBDX1RIUkVBRF9TVEFURTY0
OwotI2VsaWYgUExBVEZPUk0oQVJNKQorI2VsaWYgQ1BVKEFSTSkKICAgICB1bnNpZ25lZCB1c2Vy
X2NvdW50ID0gQVJNX1RIUkVBRF9TVEFURV9DT1VOVDsKICAgICB0aHJlYWRfc3RhdGVfZmxhdm9y
X3QgZmxhdm9yID0gQVJNX1RIUkVBRF9TVEFURTsKICNlbHNlCkBAIC04NzUsNyArODc1LDcgQEAg
c3RhdGljIHNpemVfdCBnZXRQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycwogICAgIHJldHVybiB1c2Vy
X2NvdW50ICogc2l6ZW9mKHVzd29yZF90KTsKIC8vIGVuZCBQTEFURk9STShEQVJXSU4pCiAKLSNl
bGlmIFBMQVRGT1JNKFdJTl9PUykgJiYgUExBVEZPUk0oWDg2KQorI2VsaWYgUExBVEZPUk0oV0lO
X09TKSAmJiBDUFUoWDg2KQogICAgIHJlZ3MuQ29udGV4dEZsYWdzID0gQ09OVEVYVF9JTlRFR0VS
IHwgQ09OVEVYVF9DT05UUk9MIHwgQ09OVEVYVF9TRUdNRU5UUzsKICAgICBHZXRUaHJlYWRDb250
ZXh0KHBsYXRmb3JtVGhyZWFkLCAmcmVncyk7CiAgICAgcmV0dXJuIHNpemVvZihDT05URVhUKTsK
QEAgLTg5MCwxMyArODkwLDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCogb3RoZXJUaHJlYWRTdGFj
a1BvaW4KIAogI2lmIF9fREFSV0lOX1VOSVgwMwogCi0jaWYgUExBVEZPUk0oWDg2KQorI2lmIENQ
VShYODYpCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHJlZ3MuX19lc3ApOwot
I2VsaWYgUExBVEZPUk0oWDg2XzY0KQorI2VsaWYgQ1BVKFg4Nl82NCkKICAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDx2b2lkKj4ocmVncy5fX3JzcCk7Ci0jZWxpZiBQTEFURk9STShQUEMpIHx8
IFBMQVRGT1JNKFBQQzY0KQorI2VsaWYgQ1BVKFBQQykgfHwgQ1BVKFBQQzY0KQogICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PHZvaWQqPihyZWdzLl9fcjEpOwotI2VsaWYgUExBVEZPUk0oQVJN
KQorI2VsaWYgQ1BVKEFSTSkKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocmVn
cy5fX3NwKTsKICNlbHNlCiAjZXJyb3IgVW5rbm93biBBcmNoaXRlY3R1cmUKQEAgLTkwNCwxMSAr
OTA0LDExIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCogb3RoZXJUaHJlYWRTdGFja1BvaW4KIAogI2Vs
c2UgLy8gIV9fREFSV0lOX1VOSVgwMwogCi0jaWYgUExBVEZPUk0oWDg2KQorI2lmIENQVShYODYp
CiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHJlZ3MuZXNwKTsKLSNlbGlmIFBM
QVRGT1JNKFg4Nl82NCkKKyNlbGlmIENQVShYODZfNjQpCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KHJlZ3MucnNwKTsKLSNlbGlmIChQTEFURk9STShQUEMpIHx8IFBMQVRGT1JN
KFBQQzY0KSkKKyNlbGlmIENQVShQUEMpIHx8IENQVShQUEM2NCkKICAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDx2b2lkKj4ocmVncy5yMSk7CiAjZWxzZQogI2Vycm9yIFVua25vd24gQXJjaGl0
ZWN0dXJlCkBAIC05MTcsNyArOTE3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkKiBvdGhlclRocmVh
ZFN0YWNrUG9pbgogI2VuZGlmIC8vIF9fREFSV0lOX1VOSVgwMwogCiAvLyBlbmQgUExBVEZPUk0o
REFSV0lOKQotI2VsaWYgUExBVEZPUk0oWDg2KSAmJiBQTEFURk9STShXSU5fT1MpCisjZWxpZiBD
UFUoWDg2KSAmJiBQTEFURk9STShXSU5fT1MpCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KCh1aW50cHRyX3QpIHJlZ3MuRXNwKTsKICNlbHNlCiAjZXJyb3IgTmVlZCBhIHdheSB0
byBnZXQgdGhlIHN0YWNrIHBvaW50ZXIgZm9yIGFub3RoZXIgdGhyZWFkIG9uIHRoaXMgcGxhdGZv
cm0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3dyZWMvV1JFQy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL3dyZWMvV1JFQy5oCShyZXZpc2lvbiA1MjcyNCkKKysrIEphdmFTY3JpcHRDb3Jl
L3dyZWMvV1JFQy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiAKICNpbmNsdWRl
IDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIFBMQVRGT1JN
KFg4NikKKyNpZiBDT01QSUxFUihHQ0MpICYmIENQVShYODYpCiAjZGVmaW5lIFdSRUNfQ0FMTCBf
X2F0dHJpYnV0ZV9fICgocmVncGFybSAoMykpKQogI2Vsc2UKICNkZWZpbmUgV1JFQ19DQUxMCklu
ZGV4OiBKYXZhU2NyaXB0Q29yZS93cmVjL1dSRUNHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlL3dyZWMvV1JFQ0dlbmVyYXRvci5jcHAJKHJldmlzaW9uIDUyNzI0KQor
KysgSmF2YVNjcmlwdENvcmUvd3JlYy9XUkVDR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdSRUMgewogCiB2b2lk
IEdlbmVyYXRvcjo6Z2VuZXJhdGVFbnRlcigpCiB7Ci0jaWYgUExBVEZPUk0oWDg2KQorI2lmIENQ
VShYODYpCiAgICAgLy8gT24geDg2IGVkaSAmIGVzaSBhcmUgY2FsbGVlIHByZXNlcnZlZCByZWdp
c3RlcnMuCiAgICAgcHVzaChYODZSZWdpc3RlcnM6OmVkaSk7CiAgICAgcHVzaChYODZSZWdpc3Rl
cnM6OmVzaSk7CkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgR2VuZXJhdG9yOjpnZW5lcmF0ZVJldHVy
blN1Y2Nlc3MoKQogICAgIHN0b3JlMzIoaW5kZXgsIEFkZHJlc3Mob3V0cHV0LCA0KSk7IC8vIG1h
dGNoIGVuZAogICAgIAogICAgIC8vIFJlc3RvcmUgY2FsbGVlIHNhdmUgcmVnaXN0ZXJzLgotI2lm
IFBMQVRGT1JNKFg4NikKKyNpZiBDUFUoWDg2KQogICAgIHBvcChYODZSZWdpc3RlcnM6OmVzaSk7
CiAgICAgcG9wKFg4NlJlZ2lzdGVyczo6ZWRpKTsKICNlbmRpZgpAQCAtMTEwLDcgKzExMCw3IEBA
IHZvaWQgR2VuZXJhdG9yOjpnZW5lcmF0ZVJldHVybkZhaWx1cmUoKQogICAgIHBvcCgpOwogICAg
IG1vdmUoSW1tMzIoLTEpLCByZXR1cm5SZWdpc3Rlcik7CiAKLSNpZiBQTEFURk9STShYODYpCisj
aWYgQ1BVKFg4NikKICAgICBwb3AoWDg2UmVnaXN0ZXJzOjplc2kpOwogICAgIHBvcChYODZSZWdp
c3RlcnM6OmVkaSk7CiAjZW5kaWYKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3dyZWMvV1JFQ0dlbmVy
YXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3dyZWMvV1JFQ0dlbmVyYXRvci5o
CShyZXZpc2lvbiA1MjcyNCkKKysrIEphdmFTY3JpcHRDb3JlL3dyZWMvV1JFQ0dlbmVyYXRvci5o
CSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw3IEBAIG5hbWVzcGFjZSBKU0MgeyAKICAgICAg
ICAgewogICAgICAgICB9CiAKLSNpZiBQTEFURk9STShYODYpCisjaWYgQ1BVKFg4NikKICAgICAg
ICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaW5wdXQgPSBYODZSZWdpc3RlcnM6OmVheDsKICAg
ICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaW5kZXggPSBYODZSZWdpc3RlcnM6OmVkeDsK
ICAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgbGVuZ3RoID0gWDg2UmVnaXN0ZXJzOjpl
Y3g7CkBAIC03Myw3ICs3Myw3IEBAIG5hbWVzcGFjZSBKU0MgeyAKIAogICAgICAgICBzdGF0aWMg
Y29uc3QgUmVnaXN0ZXJJRCByZXR1cm5SZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4OwogI2Vu
ZGlmCi0jaWYgUExBVEZPUk0oWDg2XzY0KQorI2lmIENQVShYODZfNjQpCiAgICAgICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIGlucHV0ID0gWDg2UmVnaXN0ZXJzOjplZGk7CiAgICAgICAgIHN0
YXRpYyBjb25zdCBSZWdpc3RlcklEIGluZGV4ID0gWDg2UmVnaXN0ZXJzOjplc2k7CiAgICAgICAg
IHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGxlbmd0aCA9IFg4NlJlZ2lzdGVyczo6ZWR4OwpJbmRl
eDogSmF2YVNjcmlwdENvcmUvd3RmL0Zhc3RNYWxsb2MuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL3d0Zi9GYXN0TWFsbG9jLmNwcAkocmV2aXNpb24gNTI3MjQpCisrKyBKYXZhU2Ny
aXB0Q29yZS93dGYvRmFzdE1hbGxvYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNzIsNyArMTE3
Miw3IEBAIHRlbXBsYXRlIDxpbnQgQklUUz4gY2xhc3MgTWFwU2VsZWN0b3IgewogfTsKIAogI2lm
IGRlZmluZWQoV1RGX0NIQU5HRVMpCi0jaWYgUExBVEZPUk0oWDg2XzY0KQorI2lmIENQVShYODZf
NjQpCiAvLyBPbiBhbGwga25vd24gWDg2LTY0IHBsYXRmb3JtcywgdGhlIHVwcGVyIDE2IGJpdHMg
YXJlIGFsd2F5cyB1bnVzZWQgYW5kIHRoZXJlZm9yZSAKIC8vIGNhbiBiZSBleGNsdWRlZCBmcm9t
IHRoZSBQYWdlTWFwIGtleS4KIC8vIFNlZSBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1g4
Ni02NCNWaXJ0dWFsX2FkZHJlc3Nfc3BhY2VfZGV0YWlscwpJbmRleDogSmF2YVNjcmlwdENvcmUv
d3RmL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3Jt
LmgJKHJldmlzaW9uIDUyNzI0KQorKysgSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgJKHdv
cmtpbmcgY29weSkKQEAgLTg5LDYgKzg5LDE5NSBAQAogI2VuZGlmCiAKIAorCisvKiA9PT09IENQ
VSgpIC0gdGhlIHRhcmdldCBDUFUgYXJjaGl0ZWN0dXJlID09PT0gKi8KKworLyogVGhpcyBhbHNv
IGRlZmluZXMgQ1BVKEJJR19FTkRJQU4pIG9yIENQVShNSURETEVfRU5ESUFOKSBvciBuZWl0aGVy
LCBhcyBhcHByb3ByaWF0ZS4gKi8KKworCisvKiBDUFUoQUxQSEEpIC0gREVDIEFscGhhICovCisj
aWYgZGVmaW5lZChfX2FscGhhX18pCisjZGVmaW5lIFdURl9DUFVfQUxQSEEgMQorI2VuZGlmCisK
Ky8qIENQVShJQTY0KSAtIEl0YW5pdW0gLyBJQS02NCAqLworI2lmIGRlZmluZWQoX19pYTY0X18p
CisjZGVmaW5lIFdURl9DUFVfSUE2NCAxCisjZW5kaWYKKworLyogQ1BVKFBQQykgLSBQb3dlclBD
IDMyLWJpdCAqLworI2lmICAgZGVmaW5lZChfX3BwY19fKSAgICAgXAorICAgfHwgZGVmaW5lZChf
X1BQQ19fKSAgICAgXAorICAgfHwgZGVmaW5lZChfX3Bvd2VycGNfXykgXAorICAgfHwgZGVmaW5l
ZChfX3Bvd2VycGMpICAgXAorICAgfHwgZGVmaW5lZChfX1BPV0VSUENfXykgXAorICAgfHwgZGVm
aW5lZChfTV9QUEMpICAgICAgXAorICAgfHwgZGVmaW5lZChfX1BQQykKKyNkZWZpbmUgV1RGX0NQ
VV9QUEMgMQorI2RlZmluZSBXVEZfQ1BVX0JJR19FTkRJQU4gMQorI2VuZGlmCisKKy8qIENQVShQ
UEM2NCkgLSBQb3dlclBDIDY0LWJpdCAqLworI2lmICAgZGVmaW5lZChfX3BwYzY0X18pIFwKKyAg
IHx8IGRlZmluZWQoX19QUEM2NF9fKQorI2RlZmluZSBXVEZfQ1BVX1BQQzY0IDEKKyNkZWZpbmUg
V1RGX0NQVV9CSUdfRU5ESUFOIDEKKyNlbmRpZgorCisvKiBDUFUoU0g0KSAtIFN1cGVySCBTSC00
ICovCisjaWYgZGVmaW5lZChfX1NINF9fKQorI2RlZmluZSBXVEZfQ1BVX1NINCAxCisjZW5kaWYK
KworLyogQ1BVKFNQQVJDMzIpIC0gU1BBUkMgMzItYml0ICovCisjaWYgZGVmaW5lZChfX3NwYXJj
KSAmJiAhZGVmaW5lZChfX2FyY2g2NF9fKSB8fCBkZWZpbmVkKF9fc3BhcmN2OCkKKyNkZWZpbmUg
V1RGX0NQVV9TUEFSQzMyIDEKKyNkZWZpbmUgV1RGX0NQVV9CSUdfRU5ESUFOIDEKKyNlbmRpZgor
CisvKiBDUFUoU1BBUkM2NCkgLSBTUEFSQyA2NC1iaXQgKi8KKyNpZiBkZWZpbmVkKF9fc3BhcmNf
XykgJiYgZGVmaW5lZChfX2FyY2g2NF9fKSB8fCBkZWZpbmVkIChfX3NwYXJjdjkpCisjZGVmaW5l
IFdURl9DUFVfU1BBUkM2NCAxCisjZGVmaW5lIFdURl9DUFVfQklHX0VORElBTiAxCisjZW5kaWYK
KworLyogQ1BVKFNQQVJDKSAtIGFueSBTUEFSQywgdHJ1ZSBmb3IgQ1BVKFNQQVJDMzIpIGFuZCBD
UFUoU1BBUkM2NCkgKi8KKyNpZiBDUFUoU1BBUkMzMikgfHwgQ1BVKFNQQVJDNjQpCisjZGVmaW5l
IFdURl9DUFVfU1BBUkMKKyNlbmRpZgorCisvKiBDUFUoWDg2KSAtIGkzODYgLyB4ODYgMzItYml0
ICovCisjaWYgICBkZWZpbmVkKF9faTM4Nl9fKSBcCisgICB8fCBkZWZpbmVkKGkzODYpICAgICBc
CisgICB8fCBkZWZpbmVkKF9NX0lYODYpICBcCisgICB8fCBkZWZpbmVkKF9YODZfKSAgICBcCisg
ICB8fCBkZWZpbmVkKF9fVEhXX0lOVEVMKQorI2RlZmluZSBXVEZfQ1BVX1g4NiAxCisjZW5kaWYK
KworLyogQ1BVKFg4Nl82NCkgLSBBTUQ2NCAvIEludGVsNjQgLyB4ODZfNjQgNjQtYml0ICovCisj
aWYgICBkZWZpbmVkKF9feDg2XzY0X18pIFwKKyAgIHx8IGRlZmluZWQoX01fWDY0KQorI2RlZmlu
ZSBXVEZfQ1BVX1g4Nl82NCAxCisjZW5kaWYKKworLyogQ1BVKEFSTSkgLSBBUk0sIGFueSB2ZXJz
aW9uKi8KKyNpZiAgIGRlZmluZWQoYXJtKSBcCisgICB8fCBkZWZpbmVkKF9fYXJtX18pCisjZGVm
aW5lIFdURl9DUFVfQVJNIDEKKworI2lmIGRlZmluZWQoX19BUk1FQl9fKQorI2RlZmluZSBXVEZf
Q1BVX0JJR19FTkRJQU4gMQorCisjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pIFwKKyAgICYm
ICFkZWZpbmVkKF9fRUFCSV9fKSBcCisgICAmJiAhZGVmaW5lZChfX1ZGUF9GUF9fKSBcCisgICAm
JiAhZGVmaW5lZChBTkRST0lEKQorI2RlZmluZSBXVEZfQ1BVX01JRERMRV9FTkRJQU4gMQorCisj
ZW5kaWYKKworI2RlZmluZSBXVEZfQVJNX0FSQ0hfQVRfTEVBU1QoTikgKENQVShBUk0pICYmIFdU
Rl9BUk1fQVJDSF9WRVJTSU9OID49IE4pCisKKy8qIFNldCBXVEZfQVJNX0FSQ0hfVkVSU0lPTiAq
LworI2lmICAgZGVmaW5lZChfX0FSTV9BUkNIXzRfXykgXAorICAgfHwgZGVmaW5lZChfX0FSTV9B
UkNIXzRUX18pIFwKKyAgIHx8IGRlZmluZWQoX19NQVJNX0FSTVY0X18pIFwKKyAgIHx8IGRlZmlu
ZWQoX0FSTVY0SV8pCisjZGVmaW5lIFdURl9BUk1fQVJDSF9WRVJTSU9OIDQKKworI2VsaWYgZGVm
aW5lZChfX0FSTV9BUkNIXzVfXykgXAorICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzVUX18pIFwK
KyAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF81RV9fKSBcCisgICB8fCBkZWZpbmVkKF9fQVJNX0FS
Q0hfNVRFX18pIFwKKyAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF81VEVKX18pIFwKKyAgIHx8IGRl
ZmluZWQoX19NQVJNX0FSTVY1X18pCisjZGVmaW5lIFdURl9BUk1fQVJDSF9WRVJTSU9OIDUKKwor
I2VsaWYgZGVmaW5lZChfX0FSTV9BUkNIXzZfXykgXAorICAgfHwgZGVmaW5lZChfX0FSTV9BUkNI
XzZKX18pIFwKKyAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF82S19fKSBcCisgICB8fCBkZWZpbmVk
KF9fQVJNX0FSQ0hfNlpfXykgXAorICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzZaS19fKSBcCisg
ICB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNlQyX18pIFwKKyAgIHx8IGRlZmluZWQoX19BUk1WNl9f
KQorI2RlZmluZSBXVEZfQVJNX0FSQ0hfVkVSU0lPTiA2CisKKyNlbGlmIGRlZmluZWQoX19BUk1f
QVJDSF83QV9fKSBcCisgICB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfN1JfXykKKyNkZWZpbmUgV1RG
X0FSTV9BUkNIX1ZFUlNJT04gNworCisvKiBSVkNUIHNldHMgX1RBUkdFVF9BUkNIX0FSTSAqLwor
I2VsaWYgZGVmaW5lZChfX1RBUkdFVF9BUkNIX0FSTSkKKyNkZWZpbmUgV1RGX0FSTV9BUkNIX1ZF
UlNJT04gX19UQVJHRVRfQVJDSF9BUk0KKworI2Vsc2UKKyNkZWZpbmUgV1RGX0FSTV9BUkNIX1ZF
UlNJT04gMAorCisjZW5kaWYKKworLyogU2V0IFdURl9USFVNQl9BUkNIX1ZFUlNJT04gKi8KKyNp
ZiAgIGRlZmluZWQoX19BUk1fQVJDSF80VF9fKQorI2RlZmluZSBXVEZfVEhVTUJfQVJDSF9WRVJT
SU9OIDEKKworI2VsaWYgZGVmaW5lZChfX0FSTV9BUkNIXzVUX18pIFwKKyAgIHx8IGRlZmluZWQo
X19BUk1fQVJDSF81VEVfXykgXAorICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzVURUpfXykKKyNk
ZWZpbmUgV1RGX1RIVU1CX0FSQ0hfVkVSU0lPTiAyCisKKyNlbGlmIGRlZmluZWQoX19BUk1fQVJD
SF82Sl9fKSBcCisgICB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNktfXykgXAorICAgfHwgZGVmaW5l
ZChfX0FSTV9BUkNIXzZaX18pIFwKKyAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF82WktfXykgXAor
ICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzZNX18pCisjZGVmaW5lIFdURl9USFVNQl9BUkNIX1ZF
UlNJT04gMworCisjZWxpZiBkZWZpbmVkKF9fQVJNX0FSQ0hfNlQyX18pIFwKKyAgIHx8IGRlZmlu
ZWQoX19BUk1fQVJDSF83X18pIFwKKyAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF83QV9fKSBcCisg
ICB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfN1JfXykgXAorICAgfHwgZGVmaW5lZChfX0FSTV9BUkNI
XzdNX18pCisjZGVmaW5lIFdURl9USFVNQl9BUkNIX1ZFUlNJT04gNAorCisvKiBSVkNUIHNldHMg
X19UQVJHRVRfQVJDSF9USFVNQiAqLworI2VsaWYgZGVmaW5lZChfX1RBUkdFVF9BUkNIX1RIVU1C
KQorI2RlZmluZSBXVEZfVEhVTUJfQVJDSF9WRVJTSU9OIF9fVEFSR0VUX0FSQ0hfVEhVTUIKKwor
I2Vsc2UKKyNkZWZpbmUgV1RGX1RIVU1CX0FSQ0hfVkVSU0lPTiAwCisjZW5kaWYKKworCisvKiBD
UFUoQVJNVjVfT1JfTE9XRVIpIC0gQVJNIGluc3RydWN0aW9uIHNldCB2NSBvciBlYXJsaWVyICov
CisvKiBPbiBBUk12NSBhbmQgYmVsb3cgdGhlIG5hdHVyYWwgYWxpZ25tZW50IGlzIHJlcXVpcmVk
LiAKKyAgIEFuZCB0aGVyZSBhcmUgc29tZSBvdGhlciBkaWZmZXJlbmNlcyBmb3IgdjUgb3IgZWFy
bGllci4gKi8KKyNpZiAhZGVmaW5lZChBUk1WNV9PUl9MT1dFUikgJiYgIUNQVV9BUk1fQVJDSF9B
VF9MRUFTVCg2KQorI2RlZmluZSBXVEZfQ1BVX0FSTVY1X09SX0xPV0VSIDEKKyNlbmRpZgorCisK
Ky8qIENQVShBUk1fVFJBRElUSU9OQUwpIC0gVGh1bWIyIGlzIG5vdCBhdmFpbGFibGUsIG9ubHkg
dHJhZGl0aW9uYWwgQVJNICh2NCBvciBncmVhdGVyKSAqLworLyogQ1BVKEFSTV9USFVNQjIpIC0g
VGh1bWIyIGluc3RydWN0aW9uIHNldCBpcyBhdmFpbGFibGUgKi8KKy8qIE9ubHkgb25lIG9mIHRo
ZXNlIHdpbGwgYmUgZGVmaW5lZC4gKi8KKyNpZiAhZGVmaW5lZChXVEZfQ1BVX0FSTV9UUkFESVRJ
T05BTCkgJiYgIWRlZmluZWQoV1RGX0NQVV9BUk1fVEhVTUIyKQorIyAgaWYgZGVmaW5lZCh0aHVt
YjIpIHx8IGRlZmluZWQoX190aHVtYjJfXykgXAorICB8fCAoKGRlZmluZWQoX190aHVtYikgfHwg
ZGVmaW5lZChfX3RodW1iX18pKSAmJiBXVEZfVEhVTUJfQVJDSF9WRVJTSU9OID09IDQpCisjICAg
IGRlZmluZSBXVEZfQ1BVX0FSTV9UUkFESVRJT05BTCAwCisjICAgIGRlZmluZSBXVEZfQ1BVX0FS
TV9USFVNQjIgMQorIyAgZWxpZiBXVEZfQVJNX0FSQ0hfQVRfTEVBU1QoNCkKKyMgICAgZGVmaW5l
IFdURl9DUFVfQVJNX1RSQURJVElPTkFMIDEKKyMgICAgZGVmaW5lIFdURl9DUFVfQVJNX1RIVU1C
MiAwCisjICBlbHNlCisjICAgIGVycm9yICJOb3Qgc3VwcG9ydGVkIEFSTSBhcmNoaXRlY3R1cmUi
CisjICBlbmRpZgorI2VsaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkgJiYgQ1BVKEFSTV9USFVNQjIp
IC8qIFNhbml0eSBDaGVjayAqLworIyAgZXJyb3IgIkNhbm5vdCB1c2UgYm90aCBvZiBXVEZfQ1BV
X0FSTV9UUkFESVRJT05BTCBhbmQgV1RGX0NQVV9BUk1fVEhVTUIyIHBsYXRmb3JtcyIKKyNlbmRp
ZiAvLyAhZGVmaW5lZChXVEZfQ1BVX0FSTV9UUkFESVRJT05BTCkgJiYgIWRlZmluZWQoV1RGX0NQ
VV9BUk1fVEhVTUIyKQorCisjZW5kaWYgLyogQVJNICovCisKKworCiAvKiBPcGVyYXRpbmcgc3lz
dGVtcyAtIGxvdy1sZXZlbCBkZXBlbmRlbmNpZXMgKi8KIAogLyogUExBVEZPUk0oREFSV0lOKSAq
LwpAQCAtMjY5LDE4MCArNDU4LDYgQEAKICNkZWZpbmUgV1RGX1BMQVRGT1JNX0NBSVJPIDEKICNl
bmRpZgogCi0vKiBDUFUgKi8KLQotLyogUExBVEZPUk0oUFBDKSAqLwotI2lmICAgZGVmaW5lZChf
X3BwY19fKSAgICAgXAotICAgfHwgZGVmaW5lZChfX1BQQ19fKSAgICAgXAotICAgfHwgZGVmaW5l
ZChfX3Bvd2VycGNfXykgXAotICAgfHwgZGVmaW5lZChfX3Bvd2VycGMpICAgXAotICAgfHwgZGVm
aW5lZChfX1BPV0VSUENfXykgXAotICAgfHwgZGVmaW5lZChfTV9QUEMpICAgICAgXAotICAgfHwg
ZGVmaW5lZChfX1BQQykKLSNkZWZpbmUgV1RGX1BMQVRGT1JNX1BQQyAxCi0jZGVmaW5lIFdURl9Q
TEFURk9STV9CSUdfRU5ESUFOIDEKLSNlbmRpZgotCi0vKiBQTEFURk9STShTUEFSQzMyKSAqLwot
I2lmIGRlZmluZWQoX19zcGFyYykgJiYgIWRlZmluZWQoX19hcmNoNjRfXykgfHwgZGVmaW5lZChf
X3NwYXJjdjgpCi0jZGVmaW5lIFdURl9QTEFURk9STV9TUEFSQzMyIDEKLSNkZWZpbmUgV1RGX1BM
QVRGT1JNX0JJR19FTkRJQU4gMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShTUEFSQzMyKSB8fCBQ
TEFURk9STShTUEFSQzY0KQotI2RlZmluZSBXVEZfUExBVEZPUk1fU1BBUkMKLSNlbmRpZgotCi0v
KiBQTEFURk9STShQUEM2NCkgKi8KLSNpZiAgIGRlZmluZWQoX19wcGM2NF9fKSBcCi0gICB8fCBk
ZWZpbmVkKF9fUFBDNjRfXykKLSNkZWZpbmUgV1RGX1BMQVRGT1JNX1BQQzY0IDEKLSNkZWZpbmUg
V1RGX1BMQVRGT1JNX0JJR19FTkRJQU4gMQotI2VuZGlmCi0KLS8qIFBMQVRGT1JNKEFSTSkgKi8K
LSNkZWZpbmUgUExBVEZPUk1fQVJNX0FSQ0goTikgKFBMQVRGT1JNKEFSTSkgJiYgQVJNX0FSQ0hf
VkVSU0lPTiA+PSBOKQotCi0jaWYgICBkZWZpbmVkKGFybSkgXAotICAgfHwgZGVmaW5lZChfX2Fy
bV9fKQotI2RlZmluZSBXVEZfUExBVEZPUk1fQVJNIDEKLQotI2lmIGRlZmluZWQoX19BUk1FQl9f
KQotI2RlZmluZSBXVEZfUExBVEZPUk1fQklHX0VORElBTiAxCi0KLSNlbGlmICFkZWZpbmVkKF9f
QVJNX0VBQklfXykgXAotICAgJiYgIWRlZmluZWQoX19FQUJJX18pIFwKLSAgICYmICFkZWZpbmVk
KF9fVkZQX0ZQX18pIFwKLSAgICYmICFkZWZpbmVkKEFORFJPSUQpCi0jZGVmaW5lIFdURl9QTEFU
Rk9STV9NSURETEVfRU5ESUFOIDEKLQotI2VuZGlmCi0KLS8qIFNldCBBUk1fQVJDSF9WRVJTSU9O
ICovCi0jaWYgICBkZWZpbmVkKF9fQVJNX0FSQ0hfNF9fKSBcCi0gICB8fCBkZWZpbmVkKF9fQVJN
X0FSQ0hfNFRfXykgXAotICAgfHwgZGVmaW5lZChfX01BUk1fQVJNVjRfXykgXAotICAgfHwgZGVm
aW5lZChfQVJNVjRJXykKLSNkZWZpbmUgQVJNX0FSQ0hfVkVSU0lPTiA0Ci0KLSNlbGlmIGRlZmlu
ZWQoX19BUk1fQVJDSF81X18pIFwKLSAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF81VF9fKSBcCi0g
ICB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNUVfXykgXAotICAgfHwgZGVmaW5lZChfX0FSTV9BUkNI
XzVURV9fKSBcCi0gICB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNVRFSl9fKSBcCi0gICB8fCBkZWZp
bmVkKF9fTUFSTV9BUk1WNV9fKQotI2RlZmluZSBBUk1fQVJDSF9WRVJTSU9OIDUKLQotI2VsaWYg
ZGVmaW5lZChfX0FSTV9BUkNIXzZfXykgXAotICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzZKX18p
IFwKLSAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF82S19fKSBcCi0gICB8fCBkZWZpbmVkKF9fQVJN
X0FSQ0hfNlpfXykgXAotICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzZaS19fKSBcCi0gICB8fCBk
ZWZpbmVkKF9fQVJNX0FSQ0hfNlQyX18pIFwKLSAgIHx8IGRlZmluZWQoX19BUk1WNl9fKQotI2Rl
ZmluZSBBUk1fQVJDSF9WRVJTSU9OIDYKLQotI2VsaWYgZGVmaW5lZChfX0FSTV9BUkNIXzdBX18p
IFwKLSAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF83Ul9fKQotI2RlZmluZSBBUk1fQVJDSF9WRVJT
SU9OIDcKLQotLyogUlZDVCBzZXRzIF9UQVJHRVRfQVJDSF9BUk0gKi8KLSNlbGlmIGRlZmluZWQo
X19UQVJHRVRfQVJDSF9BUk0pCi0jZGVmaW5lIEFSTV9BUkNIX1ZFUlNJT04gX19UQVJHRVRfQVJD
SF9BUk0KLQotI2Vsc2UKLSNkZWZpbmUgQVJNX0FSQ0hfVkVSU0lPTiAwCi0KLSNlbmRpZgotCi0v
KiBTZXQgVEhVTUJfQVJNX1ZFUlNJT04gKi8KLSNpZiAgIGRlZmluZWQoX19BUk1fQVJDSF80VF9f
KQotI2RlZmluZSBUSFVNQl9BUkNIX1ZFUlNJT04gMQotCi0jZWxpZiBkZWZpbmVkKF9fQVJNX0FS
Q0hfNVRfXykgXAotICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzVURV9fKSBcCi0gICB8fCBkZWZp
bmVkKF9fQVJNX0FSQ0hfNVRFSl9fKQotI2RlZmluZSBUSFVNQl9BUkNIX1ZFUlNJT04gMgotCi0j
ZWxpZiBkZWZpbmVkKF9fQVJNX0FSQ0hfNkpfXykgXAotICAgfHwgZGVmaW5lZChfX0FSTV9BUkNI
XzZLX18pIFwKLSAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF82Wl9fKSBcCi0gICB8fCBkZWZpbmVk
KF9fQVJNX0FSQ0hfNlpLX18pIFwKLSAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF82TV9fKQotI2Rl
ZmluZSBUSFVNQl9BUkNIX1ZFUlNJT04gMwotCi0jZWxpZiBkZWZpbmVkKF9fQVJNX0FSQ0hfNlQy
X18pIFwKLSAgIHx8IGRlZmluZWQoX19BUk1fQVJDSF83X18pIFwKLSAgIHx8IGRlZmluZWQoX19B
Uk1fQVJDSF83QV9fKSBcCi0gICB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfN1JfXykgXAotICAgfHwg
ZGVmaW5lZChfX0FSTV9BUkNIXzdNX18pCi0jZGVmaW5lIFRIVU1CX0FSQ0hfVkVSU0lPTiA0Ci0K
LS8qIFJWQ1Qgc2V0cyBfX1RBUkdFVF9BUkNIX1RIVU1CICovCi0jZWxpZiBkZWZpbmVkKF9fVEFS
R0VUX0FSQ0hfVEhVTUIpCi0jZGVmaW5lIFRIVU1CX0FSQ0hfVkVSU0lPTiBfX1RBUkdFVF9BUkNI
X1RIVU1CCi0KLSNlbHNlCi0jZGVmaW5lIFRIVU1CX0FSQ0hfVkVSU0lPTiAwCi0jZW5kaWYKLQot
LyogT24gQVJNdjUgYW5kIGJlbG93IHRoZSBuYXR1cmFsIGFsaWdubWVudCBpcyByZXF1aXJlZC4g
Ki8KLSNpZiAhZGVmaW5lZChBUk1fUkVRVUlSRV9OQVRVUkFMX0FMSUdOTUVOVCkgJiYgQVJNX0FS
Q0hfVkVSU0lPTiA8PSA1Ci0jZGVmaW5lIEFSTV9SRVFVSVJFX05BVFVSQUxfQUxJR05NRU5UIDEK
LSNlbmRpZgotCi0vKiBEZWZpbmVzIHR3byBwc2V1ZG8tcGxhdGZvcm1zIGZvciBBUk0gYW5kIFRo
dW1iLTIgaW5zdHJ1Y3Rpb24gc2V0LiAqLwotI2lmICFkZWZpbmVkKFdURl9QTEFURk9STV9BUk1f
VFJBRElUSU9OQUwpICYmICFkZWZpbmVkKFdURl9QTEFURk9STV9BUk1fVEhVTUIyKQotIyAgaWYg
ZGVmaW5lZCh0aHVtYjIpIHx8IGRlZmluZWQoX190aHVtYjJfXykgXAotICB8fCAoKGRlZmluZWQo
X190aHVtYikgfHwgZGVmaW5lZChfX3RodW1iX18pKSAmJiBUSFVNQl9BUkNIX1ZFUlNJT04gPT0g
NCkKLSMgICAgZGVmaW5lIFdURl9QTEFURk9STV9BUk1fVFJBRElUSU9OQUwgMAotIyAgICBkZWZp
bmUgV1RGX1BMQVRGT1JNX0FSTV9USFVNQjIgMQotIyAgZWxpZiBQTEFURk9STV9BUk1fQVJDSCg0
KQotIyAgICBkZWZpbmUgV1RGX1BMQVRGT1JNX0FSTV9UUkFESVRJT05BTCAxCi0jICAgIGRlZmlu
ZSBXVEZfUExBVEZPUk1fQVJNX1RIVU1CMiAwCi0jICBlbHNlCi0jICAgIGVycm9yICJOb3Qgc3Vw
cG9ydGVkIEFSTSBhcmNoaXRlY3R1cmUiCi0jICBlbmRpZgotI2VsaWYgUExBVEZPUk0oQVJNX1RS
QURJVElPTkFMKSAmJiBQTEFURk9STShBUk1fVEhVTUIyKSAvKiBTYW5pdHkgQ2hlY2sgKi8KLSMg
IGVycm9yICJDYW5ub3QgdXNlIGJvdGggb2YgV1RGX1BMQVRGT1JNX0FSTV9UUkFESVRJT05BTCBh
bmQgV1RGX1BMQVRGT1JNX0FSTV9USFVNQjIgcGxhdGZvcm1zIgotI2VuZGlmIC8vICFkZWZpbmVk
KEFSTV9UUkFESVRJT05BTCkgJiYgIWRlZmluZWQoQVJNX1RIVU1CMikKLSNlbmRpZiAvKiBBUk0g
Ki8KLQotLyogUExBVEZPUk0oWDg2KSAqLwotI2lmICAgZGVmaW5lZChfX2kzODZfXykgXAotICAg
fHwgZGVmaW5lZChpMzg2KSAgICAgXAotICAgfHwgZGVmaW5lZChfTV9JWDg2KSAgXAotICAgfHwg
ZGVmaW5lZChfWDg2XykgICAgXAotICAgfHwgZGVmaW5lZChfX1RIV19JTlRFTCkKLSNkZWZpbmUg
V1RGX1BMQVRGT1JNX1g4NiAxCi0jZW5kaWYKLQotLyogUExBVEZPUk0oWDg2XzY0KSAqLwotI2lm
ICAgZGVmaW5lZChfX3g4Nl82NF9fKSBcCi0gICB8fCBkZWZpbmVkKF9NX1g2NCkKLSNkZWZpbmUg
V1RGX1BMQVRGT1JNX1g4Nl82NCAxCi0jZW5kaWYKLQotLyogUExBVEZPUk0oSUE2NCkgKi8KLSNp
ZiBkZWZpbmVkKF9faWE2NF9fKQotI2RlZmluZSBXVEZfUExBVEZPUk1fSUE2NCAxCi0jZW5kaWYK
LQotLyogUExBVEZPUk0oQUxQSEEpICovCi0jaWYgZGVmaW5lZChfX2FscGhhX18pCi0jZGVmaW5l
IFdURl9QTEFURk9STV9BTFBIQSAxCi0jZW5kaWYKLQotLyogUExBVEZPUk0oU0g0KSAqLwotI2lm
IGRlZmluZWQoX19TSDRfXykKLSNkZWZpbmUgV1RGX1BMQVRGT1JNX1NINCAxCi0jZW5kaWYKLQot
LyogUExBVEZPUk0oU1BBUkM2NCkgKi8KLSNpZiBkZWZpbmVkKF9fc3BhcmNfXykgJiYgZGVmaW5l
ZChfX2FyY2g2NF9fKSB8fCBkZWZpbmVkIChfX3NwYXJjdjkpCi0jZGVmaW5lIFdURl9QTEFURk9S
TV9TUEFSQzY0IDEKLSNkZWZpbmUgV1RGX1BMQVRGT1JNX0JJR19FTkRJQU4gMQotI2VuZGlmCiAK
IC8qIFBMQVRGT1JNKFdJTkNFKSAmJiBQTEFURk9STShRVCkKICAgIFdlIGNhbiBub3QgZGV0ZXJt
aW5lIHRoZSBlbmRpYW5lc3MgYXQgY29tcGlsZSB0aW1lLiBGb3IKQEAgLTUxMCw3ICs1MjUsNyBA
QAogI2RlZmluZSBXVEZfUExBVEZPUk1fQ0YgMQogI2RlZmluZSBXVEZfVVNFX1BUSFJFQURTIDEK
ICNkZWZpbmUgSEFWRV9QVEhSRUFEX1JXTE9DSyAxCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmIGRlZmluZWQoX194ODZf
NjRfXykKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9USUdFUikgJiYgQ1BVKFg4Nl82NCkKICNkZWZpbmUgV1RGX1VTRV9QTFVHSU5fSE9T
VF9QUk9DRVNTIDEKICNlbmRpZgogI2lmICFkZWZpbmVkKEVOQUJMRV9NQUNfSkFWQV9CUklER0Up
CkBAIC03NzUsOSArNzkwLDkgQEAKICNlbmRpZgogCiAjaWYgIWRlZmluZWQoV1RGX1VTRV9KU1ZB
TFVFNjQpICYmICFkZWZpbmVkKFdURl9VU0VfSlNWQUxVRTMyKSAmJiAhZGVmaW5lZChXVEZfVVNF
X0pTVkFMVUUzMl82NCkKLSNpZiAoUExBVEZPUk0oWDg2XzY0KSAmJiAoUExBVEZPUk0oVU5JWCkg
fHwgUExBVEZPUk0oV0lOX09TKSkpIHx8IFBMQVRGT1JNKElBNjQpIHx8IFBMQVRGT1JNKEFMUEhB
KQorI2lmIChDUFUoWDg2XzY0KSAmJiAoUExBVEZPUk0oVU5JWCkgfHwgUExBVEZPUk0oV0lOX09T
KSkpIHx8IENQVShJQTY0KSB8fCBDUFUoQUxQSEEpCiAjZGVmaW5lIFdURl9VU0VfSlNWQUxVRTY0
IDEKLSNlbGlmIFBMQVRGT1JNKEFSTSkgfHwgUExBVEZPUk0oUFBDNjQpCisjZWxpZiBDUFUoQVJN
KSB8fCBDUFUoUFBDNjQpCiAjZGVmaW5lIFdURl9VU0VfSlNWQUxVRTMyIDEKICNlbGlmIFBMQVRG
T1JNKFdJTl9PUykgJiYgQ09NUElMRVIoTUlOR1cpCiAvKiBVc2luZyBKU1ZBTFVFMzJfNjQgY2F1
c2VzIHBhZGRpbmcvYWxpZ25lbWVudCBpc3N1ZXMgZm9yIEpJVFN0dWJBcmcKQEAgLTc5NSwzNSAr
ODEwLDM1IEBAIG9uIE1pbkdXLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2gKICNpZiAh
ZGVmaW5lZChFTkFCTEVfSklUKQogCiAvKiBUaGUgSklUIGlzIHRlc3RlZCAmIHdvcmtpbmcgb24g
eDg2XzY0IE1hYyAqLwotI2lmIFBMQVRGT1JNKFg4Nl82NCkgJiYgUExBVEZPUk0oTUFDKQorI2lm
IENQVShYODZfNjQpICYmIFBMQVRGT1JNKE1BQykKICAgICAjZGVmaW5lIEVOQUJMRV9KSVQgMQog
LyogVGhlIEpJVCBpcyB0ZXN0ZWQgJiB3b3JraW5nIG9uIHg4NiBNYWMgKi8KLSNlbGlmIFBMQVRG
T1JNKFg4NikgJiYgUExBVEZPUk0oTUFDKQorI2VsaWYgQ1BVKFg4NikgJiYgUExBVEZPUk0oTUFD
KQogICAgICNkZWZpbmUgRU5BQkxFX0pJVCAxCiAgICAgI2RlZmluZSBXVEZfVVNFX0pJVF9TVFVC
X0FSR1VNRU5UX1ZBX0xJU1QgMQotI2VsaWYgUExBVEZPUk0oQVJNX1RIVU1CMikgJiYgUExBVEZP
Uk0oSVBIT05FKQorI2VsaWYgQ1BVKEFSTV9USFVNQjIpICYmIFBMQVRGT1JNKElQSE9ORSkKICAg
ICAjZGVmaW5lIEVOQUJMRV9KSVQgMQogLyogVGhlIEpJVCBpcyB0ZXN0ZWQgJiB3b3JraW5nIG9u
IHg4NiBXaW5kb3dzICovCi0jZWxpZiBQTEFURk9STShYODYpICYmIFBMQVRGT1JNKFdJTikKKyNl
bGlmIENQVShYODYpICYmIFBMQVRGT1JNKFdJTikKICAgICAjZGVmaW5lIEVOQUJMRV9KSVQgMQog
I2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKLSNpZiBQTEFURk9STShYODZfNjQpICYmIFBMQVRG
T1JNKERBUldJTikKKyNpZiBDUFUoWDg2XzY0KSAmJiBQTEFURk9STShEQVJXSU4pCiAgICAgI2Rl
ZmluZSBFTkFCTEVfSklUIDEKLSNlbGlmIFBMQVRGT1JNKFg4NikgJiYgUExBVEZPUk0oREFSV0lO
KQorI2VsaWYgQ1BVKFg4NikgJiYgUExBVEZPUk0oREFSV0lOKQogICAgICNkZWZpbmUgRU5BQkxF
X0pJVCAxCiAgICAgI2RlZmluZSBXVEZfVVNFX0pJVF9TVFVCX0FSR1VNRU5UX1ZBX0xJU1QgMQot
I2VsaWYgUExBVEZPUk0oWDg2KSAmJiBQTEFURk9STShXSU5fT1MpICYmIENPTVBJTEVSKE1JTkdX
KSAmJiBHQ0NfVkVSU0lPTiA+PSA0MDEwMAorI2VsaWYgQ1BVKFg4NikgJiYgUExBVEZPUk0oV0lO
X09TKSAmJiBDT01QSUxFUihNSU5HVykgJiYgR0NDX1ZFUlNJT04gPj0gNDAxMDAKICAgICAjZGVm
aW5lIEVOQUJMRV9KSVQgMQogICAgICNkZWZpbmUgV1RGX1VTRV9KSVRfU1RVQl9BUkdVTUVOVF9W
QV9MSVNUIDEKLSNlbGlmIFBMQVRGT1JNKFg4NikgJiYgUExBVEZPUk0oV0lOX09TKSAmJiBDT01Q
SUxFUihNU1ZDKQorI2VsaWYgQ1BVKFg4NikgJiYgUExBVEZPUk0oV0lOX09TKSAmJiBDT01QSUxF
UihNU1ZDKQogICAgICNkZWZpbmUgRU5BQkxFX0pJVCAxCiAgICAgI2RlZmluZSBXVEZfVVNFX0pJ
VF9TVFVCX0FSR1VNRU5UX1JFR0lTVEVSIDEKLSNlbGlmIFBMQVRGT1JNKFg4NikgJiYgUExBVEZP
Uk0oTElOVVgpICYmIEdDQ19WRVJTSU9OID49IDQwMTAwCisjZWxpZiBDUFUoWDg2KSAmJiBQTEFU
Rk9STShMSU5VWCkgJiYgR0NDX1ZFUlNJT04gPj0gNDAxMDAKICAgICAjZGVmaW5lIEVOQUJMRV9K
SVQgMQogICAgICNkZWZpbmUgV1RGX1VTRV9KSVRfU1RVQl9BUkdVTUVOVF9WQV9MSVNUIDEKLSNl
bGlmIFBMQVRGT1JNKEFSTV9UUkFESVRJT05BTCkgJiYgUExBVEZPUk0oTElOVVgpCisjZWxpZiBD
UFUoQVJNX1RSQURJVElPTkFMKSAmJiBQTEFURk9STShMSU5VWCkKICAgICAjZGVmaW5lIEVOQUJM
RV9KSVQgMQogI2VuZGlmCiAjZW5kaWYgLyogUExBVEZPUk0oUVQpICovCkBAIC04NDUsOSArODYw
LDkgQEAgb24gTWluR1cuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaAogI2VuZGlmCiAj
ZW5kaWYKIAotI2lmIFBMQVRGT1JNKFg4NikgJiYgQ09NUElMRVIoTVNWQykKKyNpZiBDUFUoWDg2
KSAmJiBDT01QSUxFUihNU1ZDKQogI2RlZmluZSBKU0NfSE9TVF9DQUxMIF9fZmFzdGNhbGwKLSNl
bGlmIFBMQVRGT1JNKFg4NikgJiYgQ09NUElMRVIoR0NDKQorI2VsaWYgQ1BVKFg4NikgJiYgQ09N
UElMRVIoR0NDKQogI2RlZmluZSBKU0NfSE9TVF9DQUxMIF9fYXR0cmlidXRlX18gKChmYXN0Y2Fs
bCkpCiAjZWxzZQogI2RlZmluZSBKU0NfSE9TVF9DQUxMCkBAIC04NjcsMTkgKzg4MiwxOSBAQCBv
biBNaW5HVy4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3NoCiAjaWYgIWRlZmluZWQoRU5B
QkxFX1lBUlJfSklUKQogCiAvKiBZQVJSIHN1cHBvcnRzIHg4NiAmIHg4Ni02NCwgYW5kIGhhcyBi
ZWVuIHRlc3RlZCBvbiBNYWMgYW5kIFdpbmRvd3MuICovCi0jaWYgKFBMQVRGT1JNKFg4NikgJiYg
UExBVEZPUk0oTUFDKSkgXAotIHx8IChQTEFURk9STShYODZfNjQpICYmIFBMQVRGT1JNKE1BQykp
IFwKLSB8fCAoUExBVEZPUk0oQVJNX1RIVU1CMikgJiYgUExBVEZPUk0oSVBIT05FKSkgXAotIHx8
IChQTEFURk9STShYODYpICYmIFBMQVRGT1JNKFdJTikpCisjaWYgKENQVShYODYpICYmIFBMQVRG
T1JNKE1BQykpIFwKKyB8fCAoQ1BVKFg4Nl82NCkgJiYgUExBVEZPUk0oTUFDKSkgXAorIHx8IChD
UFUoQVJNX1RIVU1CMikgJiYgUExBVEZPUk0oSVBIT05FKSkgXAorIHx8IChDUFUoWDg2KSAmJiBQ
TEFURk9STShXSU4pKQogI2RlZmluZSBFTkFCTEVfWUFSUiAxCiAjZGVmaW5lIEVOQUJMRV9ZQVJS
X0pJVCAxCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFFUKQotI2lmIChQTEFURk9STShYODYpICYm
IFBMQVRGT1JNKFdJTl9PUykgJiYgQ09NUElMRVIoTUlOR1cpICYmIEdDQ19WRVJTSU9OID49IDQw
MTAwKSBcCi0gfHwgKFBMQVRGT1JNKFg4NikgJiYgUExBVEZPUk0oV0lOX09TKSAmJiBDT01QSUxF
UihNU1ZDKSkgXAotIHx8IChQTEFURk9STShYODYpICYmIFBMQVRGT1JNKExJTlVYKSAmJiBHQ0Nf
VkVSU0lPTiA+PSA0MDEwMCkgXAotIHx8IChQTEFURk9STShBUk1fVFJBRElUSU9OQUwpICYmIFBM
QVRGT1JNKExJTlVYKSkKKyNpZiAoQ1BVKFg4NikgJiYgUExBVEZPUk0oV0lOX09TKSAmJiBDT01Q
SUxFUihNSU5HVykgJiYgR0NDX1ZFUlNJT04gPj0gNDAxMDApIFwKKyB8fCAoQ1BVKFg4NikgJiYg
UExBVEZPUk0oV0lOX09TKSAmJiBDT01QSUxFUihNU1ZDKSkgXAorIHx8IChDUFUoWDg2KSAmJiBQ
TEFURk9STShMSU5VWCkgJiYgR0NDX1ZFUlNJT04gPj0gNDAxMDApIFwKKyB8fCAoQ1BVKEFSTV9U
UkFESVRJT05BTCkgJiYgUExBVEZPUk0oTElOVVgpKQogI2RlZmluZSBFTkFCTEVfWUFSUiAxCiAj
ZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVCAxCiAjZW5kaWYKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0
Zi9UQ1NwaW5Mb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL1RDU3Bpbkxv
Y2suaAkocmV2aXNpb24gNTI3MjQpCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvVENTcGluTG9jay5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAjaWZuZGVmIFRDTUFMTE9DX0lOVEVS
TkFMX1NQSU5MT0NLX0hfXwogI2RlZmluZSBUQ01BTExPQ19JTlRFUk5BTF9TUElOTE9DS19IX18K
IAotI2lmIChQTEFURk9STShYODYpIHx8IFBMQVRGT1JNKFBQQykpICYmIChDT01QSUxFUihHQ0Mp
IHx8IENPTVBJTEVSKE1TVkMpKQorI2lmIChDUFUoWDg2KSB8fCBDUFUoUFBDKSkgJiYgKENQVShH
Q0MpIHx8IENQVShNU1ZDKSkKIAogI2luY2x1ZGUgPHRpbWUuaD4gICAgICAgLyogRm9yIG5hbm9z
bGVlcCgpICovCiAKQEAgLTYyLDcgKzYyLDcgQEAgc3RydWN0IFRDTWFsbG9jX1NwaW5Mb2NrIHsK
ICAgaW5saW5lIHZvaWQgTG9jaygpIHsKICAgICBpbnQgcjsKICNpZiBDT01QSUxFUihHQ0MpCi0j
aWYgUExBVEZPUk0oWDg2KQorI2lmIENQVShYODYpCiAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18K
ICAgICAgICgieGNoZ2wgJTAsICUxIgogICAgICAgIDogIj1yIihyKSwgIj1tIihsb2Nrd29yZF8p
CkBAIC05Miw3ICs5Miw3IEBAIHN0cnVjdCBUQ01hbGxvY19TcGluTG9jayB7CiAKICAgaW5saW5l
IHZvaWQgVW5sb2NrKCkgewogI2lmIENPTVBJTEVSKEdDQykKLSNpZiBQTEFURk9STShYODYpCisj
aWYgQ1BVKFg4NikKICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXwogICAgICAgKCJtb3ZsICQwLCAl
MCIKICAgICAgICA6ICI9bSIobG9ja3dvcmRfKQpAQCAtMTAzLDcgKzEwMyw3IEBAIHN0cnVjdCBU
Q01hbGxvY19TcGluTG9jayB7CiAgICAgICAoImlzeW5jXG5cdCIKICAgICAgICAiZWllaW9cblx0
IgogICAgICAgICJzdHcgJTEsICUwIgotI2lmIFBMQVRGT1JNKERBUldJTikgfHwgUExBVEZPUk0o
UFBDKQorI2lmIFBMQVRGT1JNKERBUldJTikgfHwgQ1BVKFBQQykKICAgICAgICA6ICI9byIgKGxv
Y2t3b3JkXykKICNlbHNlCiAgICAgICAgOiAiPW0iIChsb2Nrd29yZF8pIApAQCAtMTM4LDcgKzEz
OCw3IEBAIHN0YXRpYyB2b2lkIFRDTWFsbG9jX1Nsb3dMb2NrKHZvbGF0aWxlIHUKICAgd2hpbGUg
KHRydWUpIHsKICAgICBpbnQgcjsKICNpZiBDT01QSUxFUihHQ0MpCi0jaWYgUExBVEZPUk0oWDg2
KQorI2lmIENQVShYODYpCiAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18KICAgICAgICgieGNoZ2wg
JTAsICUxIgogICAgICAgIDogIj1yIihyKSwgIj1tIigqbG9ja3dvcmQpCkluZGV4OiBKYXZhU2Ny
aXB0Q29yZS93dGYvVGhyZWFkaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3Rm
L1RocmVhZGluZy5oCShyZXZpc2lvbiA1MjcyNCkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9UaHJl
YWRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMjM5LDcgKzIzOSw3IEBAIGlubGluZSBpbnQgYXRv
bWljRGVjcmVtZW50KGludCB2b2xhdGlsZSoKIGlubGluZSBpbnQgYXRvbWljSW5jcmVtZW50KGlu
dCB2b2xhdGlsZSogYWRkZW5kKSB7IHJldHVybiBhbmRyb2lkX2F0b21pY19pbmMoYWRkZW5kKTsg
fQogaW5saW5lIGludCBhdG9taWNEZWNyZW1lbnQoaW50IHZvbGF0aWxlKiBhZGRlbmQpIHsgcmV0
dXJuIGFuZHJvaWRfYXRvbWljX2RlYyhhZGRlbmQpOyB9CiAKLSNlbGlmIENPTVBJTEVSKEdDQykg
JiYgIVBMQVRGT1JNKFNQQVJDNjQpIC8vIHNpemVvZihfQXRvbWljX3dvcmQpICE9IHNpemVvZihp
bnQpIG9uIHNwYXJjNjQgZ2NjCisjZWxpZiBDT01QSUxFUihHQ0MpICYmICFDUFUoU1BBUkM2NCkg
Ly8gc2l6ZW9mKF9BdG9taWNfd29yZCkgIT0gc2l6ZW9mKGludCkgb24gc3BhcmM2NCBnY2MKICNk
ZWZpbmUgV1RGX1VTRV9MT0NLRlJFRV9USFJFQURTQUZFU0hBUkVEIDEKIAogaW5saW5lIGludCBh
dG9taWNJbmNyZW1lbnQoaW50IHZvbGF0aWxlKiBhZGRlbmQpIHsgcmV0dXJuIF9fZ251X2N4eDo6
X19leGNoYW5nZV9hbmRfYWRkKGFkZGVuZCwgMSkgKyAxOyB9CkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS93dGYvZHRvYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL2R0b2EuY3Bw
CShyZXZpc2lvbiA1MjcyNCkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9kdG9hLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTU5LDkgKzE1OSw5IEBACiAjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDU1
NCkKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQklHX0VORElBTikKKyNpZiBDUFUoQklHX0VORElB
TikKICNkZWZpbmUgSUVFRV9NQzY4awotI2VsaWYgUExBVEZPUk0oTUlERExFX0VORElBTikKKyNl
bGlmIENQVShNSURETEVfRU5ESUFOKQogI2RlZmluZSBJRUVFX0FSTQogI2Vsc2UKICNkZWZpbmUg
SUVFRV84MDg3CkBAIC0yNjIsNyArMjYyLDggQEAgdHlwZWRlZiB1bmlvbiB7IGRvdWJsZSBkOyB1
aW50MzJfdCBMWzJdOwogI2RlZmluZSBQYWNrXzMyCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFBQ
QzY0KSB8fCBQTEFURk9STShYODZfNjQpCisjaWYgQ1BVKFBQQzY0KSB8fCBDUFUoWDg2XzY0KQor
Ly8gRklYTUU6IHNob3VsZCB3ZSBlbmFibGUgdGhpcyBvbiBhbGwgNjQtYml0IENQVXM/CiAvLyA2
NC1iaXQgZW11bGF0aW9uIHByb3ZpZGVkIGJ5IHRoZSBjb21waWxlciBpcyBsaWtlbHkgdG8gYmUg
c2xvd2VyIHRoYW4gZHRvYSBvd24gY29kZSBvbiAzMi1iaXQgaGFyZHdhcmUuCiAjZGVmaW5lIFVT
RV9MT05HX0xPTkcKICNlbmRpZgpJbmRleDogSmF2YVNjcmlwdENvcmUveWFyci9SZWdleEpJVC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUveWFyci9SZWdleEpJVC5jcHAJKHJldmlz
aW9uIDUyNzI0KQorKysgSmF2YVNjcmlwdENvcmUveWFyci9SZWdleEpJVC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBZYXJyIHsK
IGNsYXNzIFJlZ2V4R2VuZXJhdG9yIDogcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgZnJp
ZW5kIHZvaWQgaml0Q29tcGlsZVJlZ2V4KEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgUmVnZXhD
b2RlQmxvY2smIGppdE9iamVjdCwgY29uc3QgVVN0cmluZyYgcGF0dGVybiwgdW5zaWduZWQmIG51
bVN1YnBhdHRlcm5zLCBjb25zdCBjaGFyKiYgZXJyb3IsIGJvb2wgaWdub3JlQ2FzZSwgYm9vbCBt
dWx0aWxpbmUpOwogCi0jaWYgUExBVEZPUk0oQVJNKQorI2lmIENQVShBUk0pCiAgICAgc3RhdGlj
IGNvbnN0IFJlZ2lzdGVySUQgaW5wdXQgPSBBUk1SZWdpc3RlcnM6OnIwOwogICAgIHN0YXRpYyBj
b25zdCBSZWdpc3RlcklEIGluZGV4ID0gQVJNUmVnaXN0ZXJzOjpyMTsKICAgICBzdGF0aWMgY29u
c3QgUmVnaXN0ZXJJRCBsZW5ndGggPSBBUk1SZWdpc3RlcnM6OnIyOwpAQCAtNTQsNyArNTQsNyBA
QCBjbGFzcyBSZWdleEdlbmVyYXRvciA6IHByaXZhdGUgTWFjcm9Bc3NlCiAgICAgc3RhdGljIGNv
bnN0IFJlZ2lzdGVySUQgcmVnVDEgPSBBUk1SZWdpc3RlcnM6OnI2OwogCiAgICAgc3RhdGljIGNv
bnN0IFJlZ2lzdGVySUQgcmV0dXJuUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnIwOwotI2VsaWYg
UExBVEZPUk0oWDg2KQorI2VsaWYgQ1BVKFg4NikKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJ
RCBpbnB1dCA9IFg4NlJlZ2lzdGVyczo6ZWF4OwogICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklE
IGluZGV4ID0gWDg2UmVnaXN0ZXJzOjplZHg7CiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQg
bGVuZ3RoID0gWDg2UmVnaXN0ZXJzOjplY3g7CkBAIC02NCw3ICs2NCw3IEBAIGNsYXNzIFJlZ2V4
R2VuZXJhdG9yIDogcHJpdmF0ZSBNYWNyb0Fzc2UKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJ
RCByZWdUMSA9IFg4NlJlZ2lzdGVyczo6ZXNpOwogCiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgcmV0dXJuUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVheDsKLSNlbGlmIFBMQVRGT1JNKFg4
Nl82NCkKKyNlbGlmIENQVShYODZfNjQpCiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaW5w
dXQgPSBYODZSZWdpc3RlcnM6OmVkaTsKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBpbmRl
eCA9IFg4NlJlZ2lzdGVyczo6ZXNpOwogICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGxlbmd0
aCA9IFg4NlJlZ2lzdGVyczo6ZWR4OwpAQCAtMTI4OCwxMSArMTI4OCwxMSBAQCBjbGFzcyBSZWdl
eEdlbmVyYXRvciA6IHByaXZhdGUgTWFjcm9Bc3NlCiAKICAgICB2b2lkIGdlbmVyYXRlRW50ZXIo
KQogICAgIHsKLSNpZiBQTEFURk9STShYODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkKICAgICAgICAg
cHVzaChYODZSZWdpc3RlcnM6OmVicCk7CiAgICAgICAgIG1vdmUoc3RhY2tQb2ludGVyUmVnaXN0
ZXIsIFg4NlJlZ2lzdGVyczo6ZWJwKTsKICAgICAgICAgcHVzaChYODZSZWdpc3RlcnM6OmVieCk7
Ci0jZWxpZiBQTEFURk9STShYODYpCisjZWxpZiBDUFUoWDg2KQogICAgICAgICBwdXNoKFg4NlJl
Z2lzdGVyczo6ZWJwKTsKICAgICAgICAgbW92ZShzdGFja1BvaW50ZXJSZWdpc3RlciwgWDg2UmVn
aXN0ZXJzOjplYnApOwogICAgICAgICAvLyBUT0RPOiBkbyB3ZSBuZWVkIHNwaWxsIHJlZ2lzdGVy
cyB0byBmaWxsIHRoZSBvdXRwdXQgcG9pbnRlciBpZiB0aGVyZSBhcmUgbm8gc3ViIGNhcHR1cmVz
PwpAQCAtMTMwOCw3ICsxMzA4LDcgQEAgY2xhc3MgUmVnZXhHZW5lcmF0b3IgOiBwcml2YXRlIE1h
Y3JvQXNzZQogICAgICNlbHNlCiAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhYODZSZWdpc3RlcnM6
OmVicCwgMiAqIHNpemVvZih2b2lkKikpLCBvdXRwdXQpOwogICAgICNlbmRpZgotI2VsaWYgUExB
VEZPUk0oQVJNKQorI2VsaWYgQ1BVKEFSTSkKICAgICAgICAgcHVzaChBUk1SZWdpc3RlcnM6OnI0
KTsKICAgICAgICAgcHVzaChBUk1SZWdpc3RlcnM6OnI1KTsKICAgICAgICAgcHVzaChBUk1SZWdp
c3RlcnM6OnI2KTsKQEAgLTEzMTgsMTUgKzEzMTgsMTUgQEAgY2xhc3MgUmVnZXhHZW5lcmF0b3Ig
OiBwcml2YXRlIE1hY3JvQXNzZQogCiAgICAgdm9pZCBnZW5lcmF0ZVJldHVybigpCiAgICAgewot
I2lmIFBMQVRGT1JNKFg4Nl82NCkKKyNpZiBDUFUoWDg2XzY0KQogICAgICAgICBwb3AoWDg2UmVn
aXN0ZXJzOjplYngpOwogICAgICAgICBwb3AoWDg2UmVnaXN0ZXJzOjplYnApOwotI2VsaWYgUExB
VEZPUk0oWDg2KQorI2VsaWYgQ1BVKFg4NikKICAgICAgICAgcG9wKFg4NlJlZ2lzdGVyczo6ZXNp
KTsKICAgICAgICAgcG9wKFg4NlJlZ2lzdGVyczo6ZWRpKTsKICAgICAgICAgcG9wKFg4NlJlZ2lz
dGVyczo6ZWJ4KTsKICAgICAgICAgcG9wKFg4NlJlZ2lzdGVyczo6ZWJwKTsKLSNlbGlmIFBMQVRG
T1JNKEFSTSkKKyNlbGlmIENQVShBUk0pCiAgICAgICAgIHBvcChBUk1SZWdpc3RlcnM6OnI2KTsK
ICAgICAgICAgcG9wKEFSTVJlZ2lzdGVyczo6cjUpOwogICAgICAgICBwb3AoQVJNUmVnaXN0ZXJz
OjpyNCk7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS95YXJyL1JlZ2V4SklULmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSmF2YVNjcmlwdENvcmUveWFyci9SZWdleEpJVC5oCShyZXZpc2lvbiA1MjcyNCkKKysrIEph
dmFTY3JpcHRDb3JlL3lhcnIvUmVnZXhKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcs
NyBAQAogI2luY2x1ZGUgPHBjcmUuaD4KIHN0cnVjdCBKU1JlZ0V4cDsgLy8gdGVtcG9yYXJ5LCBy
ZW1vdmUgd2hlbiBmYWxsYmFjayBpcyByZW1vdmVkLgogCi0jaWYgUExBVEZPUk0oWDg2KSAmJiAh
Q09NUElMRVIoTVNWQykKKyNpZiBDUFUoWDg2KSAmJiAhQ09NUElMRVIoTVNWQykKICNkZWZpbmUg
WUFSUl9DQUxMIF9fYXR0cmlidXRlX18gKChyZWdwYXJtICgzKSkpCiAjZWxzZQogI2RlZmluZSBZ
QVJSX0NBTEwKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
Q2hhbmdlTG9nCShyZXZpc2lvbiA1MjcyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDEtMDQgIE1hY2llaiBTdGFjaG93aWFrICA8
bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW9yZ2FuaXplLCBkb2N1bWVudCBhbmQgcmVuYW1lIENQVSgpIHBsYXRmb3JtIG1h
Y3Jvcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMz
MTQ1CisKKyAgICAgICAgKiBwYWdlL05hdmlnYXRvckJhc2UuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvQXRvbWljU3RyaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVxdWFsKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS90ZXh0L1N0cmluZ0hhc2guaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
cmluZ0hhc2g6OmVxdWFsKToKKwogMjAxMC0wMS0wNCAgQWxleCBNaWxvd3NraSAgPGFsZXhAbWls
b3dza2kuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogV2Vi
Q29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAkocmV2aXNpb24gNTI3MDQpCisrKyBXZWJDb3JlL3BhZ2UvTmF2aWdh
dG9yQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDkgKzM1LDkgQEAKICNlbmRpZgogCiAj
aWZuZGVmIFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAo
UExBVEZPUk0oUFBDKSB8fCBQTEFURk9STShQUEM2NCkpCisjaWYgUExBVEZPUk0oTUFDKSAmJiAo
Q1BVKFBQQykgfHwgQ1BVKFBQQzY0KSkKICNkZWZpbmUgV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZP
Uk0gIk1hY1BQQyIKLSNlbGlmIFBMQVRGT1JNKE1BQykgJiYgKFBMQVRGT1JNKFg4NikgfHwgUExB
VEZPUk0oWDg2XzY0KSkKKyNlbGlmIFBMQVRGT1JNKE1BQykgJiYgKENQVShYODYpIHx8IENQVShY
ODZfNjQpKQogI2RlZmluZSBXRUJDT1JFX05BVklHQVRPUl9QTEFURk9STSAiTWFjSW50ZWwiCiAj
ZWxpZiBQTEFURk9STShXSU5fT1MpCiAjZGVmaW5lIFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JN
ICJXaW4zMiIKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmcuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmcuY3BwCShyZXZp
c2lvbiA1MjcwNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDMsNyArMTAzLDkgQEAgc3RhdGljIGlubGluZSBib29sIGVxdWFs
KFN0cmluZ0ltcGwqIHN0cgogICAgIGlmIChzdHJpbmctPmxlbmd0aCgpICE9IGxlbmd0aCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0jaWYgUExBVEZPUk0oQVJNKSB8fCBQTEFURk9STShTSDQp
CisgICAgLy8gRklYTUU6IHBlcmhhcHMgd2Ugc2hvdWxkIGhhdmUgYSBtb3JlIGFic3RyYWN0IG1h
Y3JvIHRoYXQgaW5kaWNhdGVzIHdoZW4KKyAgICAvLyBnb2luZyA0IGJ5dGVzIGF0IGEgdGltZSBp
cyB1bnNhZmUKKyNpZiBDUFUoQVJNKSB8fCBDUFUoU0g0KQogICAgIGNvbnN0IFVDaGFyKiBzdHJp
bmdDaGFyYWN0ZXJzID0gc3RyaW5nLT5jaGFyYWN0ZXJzKCk7CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSAhPSBsZW5ndGg7ICsraSkgewogICAgICAgICBpZiAoKnN0cmluZ0NoYXJhY3RlcnMr
KyAhPSAqY2hhcmFjdGVycysrKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1N0cmluZ0hh
c2guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5nSGFzaC5oCShy
ZXZpc2lvbiA1MjcwNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9TdHJpbmdIYXNoLmgJKHdv
cmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICAgICAgaWYgKGFMZW5ndGggIT0gYkxlbmd0aCkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSNpZiBQTEFURk9STShBUk0pIHx8IFBMQVRGT1JNKFNINCkKKyAgICAgICAgICAgIC8v
IEZJWE1FOiBwZXJoYXBzIHdlIHNob3VsZCBoYXZlIGEgbW9yZSBhYnN0cmFjdCBtYWNybyB0aGF0
IGluZGljYXRlcyB3aGVuCisgICAgICAgICAgICAvLyBnb2luZyA0IGJ5dGVzIGF0IGEgdGltZSBp
cyB1bnNhZmUKKyNpZiBDUFUoQVJNKSB8fCBDUFUoU0g0KQogICAgICAgICAgICAgY29uc3QgVUNo
YXIqIGFDaGFycyA9IGEtPmNoYXJhY3RlcnMoKTsKICAgICAgICAgICAgIGNvbnN0IFVDaGFyKiBi
Q2hhcnMgPSBiLT5jaGFyYWN0ZXJzKCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpICE9IGFMZW5ndGg7ICsraSkgewpJbmRleDogV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHJldmlzaW9uIDUyNzI2KQorKysgV2ViS2l0
L2d0ay9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wMS0w
NCAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlb3JnYW5pemUsIGRvY3VtZW50IGFuZCBy
ZW5hbWUgQ1BVKCkgcGxhdGZvcm0gbWFjcm9zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzMxNDUKKworICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJz
ZXR0aW5ncy5jcHA6CisgICAgICAgICh3ZWJraXRfZ2V0X3VzZXJfYWdlbnQpOgorCiAyMDA5LTEy
LTIwICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNv
LnVrPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KSW5kZXg6IFdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAJKHJldmlzaW9uIDUyNzA0KQorKysgV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsNyAr
MTczLDcgQEAgc3RhdGljIFN0cmluZyB3ZWJraXRfZ2V0X3VzZXJfYWdlbnQoKQogICAgLy8gRklY
TUU6IHBsYXRmb3JtL3ZlcnNpb24gZGV0ZWN0aW9uIGNhbiBiZSBzaGFyZWQuCiAjaWYgUExBVEZP
Uk0oREFSV0lOKQogCi0jaWYgUExBVEZPUk0oWDg2KQorI2lmIENQVShYODYpCiAgICAgb3NWZXJz
aW9uID0gZ19zdHJkdXAoIkludGVsIE1hYyBPUyBYIik7CiAjZWxzZQogICAgIG9zVmVyc2lvbiA9
IGdfc3RyZHVwKCJQUEMgTWFjIE9TIFgiKTsK
</data>
<flag name="review"
          id="27920"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>