<?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>119086</bug_id>
          
          <creation_ts>2013-07-25 06:47:46 -0700</creation_ts>
          <short_desc>Grammar checking code is unnecessarily built for non-Mac ports</short_desc>
          <delta_ts>2013-07-29 20:00:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>117585</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Grzegorz Czajkowski">g.czajkowski</reporter>
          <assigned_to name="Grzegorz Czajkowski">g.czajkowski</assigned_to>
          <cc>enrica</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>911599</commentid>
    <comment_count>0</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-07-25 06:47:46 -0700</bug_when>
    <thetext>r151632 has shown that some parts of grammar checking code is built even if GRAMMAR_CHECKING macro is off.
r151640 partially fixed it but still there is code that is not guarded by GRAMMAR_CHECKING macro.

In consistency with other code, guard the feature where it&apos;s needed.
Those changes have to be landed to commit https://bugs.webkit.org/show_bug.cgi?id=117585.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911602</commentid>
    <comment_count>1</comment_count>
      <attachid>207455</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-07-25 06:54:59 -0700</bug_when>
    <thetext>Created attachment 207455
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911717</commentid>
    <comment_count>2</comment_count>
      <attachid>207455</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-07-25 11:51:41 -0700</bug_when>
    <thetext>Comment on attachment 207455
proposed patch

I&apos;m not sure if I like adding if-def everywhere like this.
I&apos;d prefer extracting various pieces into functions and stubbing them out in platforms where grammar checking is disabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911725</commentid>
    <comment_count>3</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-07-25 12:09:03 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 207455 [details])
&gt; I&apos;d prefer extracting various pieces into functions and stubbing them out in platforms where grammar checking is disabled.

Sounds reasonable to me. I&apos;ll follow it.
Thanks for your opinion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>912649</commentid>
    <comment_count>4</comment_count>
      <attachid>207455</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-07-29 20:00:08 -0700</bug_when>
    <thetext>Comment on attachment 207455
proposed patch

Attachment 207455 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/1288231</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207455</attachid>
            <date>2013-07-25 06:54:59 -0700</date>
            <delta_ts>2013-07-29 20:00:08 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>grammar_do_not_compile_2.patch</filename>
            <type>text/plain</type>
            <size>34894</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggOTI2YWFlMC4uY2UyOGZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0wNy0yNCAg
R3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5nLmNvbT4KKworICAgICAg
ICBHcmFtbWFyIGNoZWNraW5nIGNvZGUgaXMgdW5uZWNlc3NhcmlseSBidWlsdCBmb3Igbm9uLU1h
YyBwb3J0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTE5MDg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlcmUgaXMgbm8gbmVlZCB0byBkZWZpbmUgR1JBTU1BUl9DSEVDS0lORyBmb3IgYWxsIHBsYXRm
b3Jtcy4KKyAgICAgICAgT25seSBNYWMgcG9ydCBpbXBsZW1lbnRzIGdyYW1tYXIgY2hlY2tpbmcg
ZmVhdHVyZS4KKworICAgICAgICBUaGlzIGNoYW5nZSBpcyBuZWVkZWQgdG8gbGFuZCBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3NTg1LgorCisgICAgICAgICogd3Rm
L1BsYXRmb3JtLmg6CisgICAgICAgIEVuYWJsZSBHUkFNTUFSX0NIRUNLSU5HIG1hY3JvIGZvciBN
YWMgb25seS4KKwogMjAxMy0wNy0yNSAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4IG9uIHRoZSBFRkwgcG9ydC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybS5oCmluZGV4IDk4NzAzMTguLmQwZmJiNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtMTAzOCw3ICsx
MDM4LDkgQEAKICNlbmRpZgogCiAKKyNpZiBQTEFURk9STShNQUMpCiAjZGVmaW5lIFdURl9VU0Vf
R1JBTU1BUl9DSEVDS0lORyAxCisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZP
Uk0oQkxBQ0tCRVJSWSkgfHwgUExBVEZPUk0oRUZMKQogI2RlZmluZSBXVEZfVVNFX1VOSUZJRURf
VEVYVF9DSEVDS0lORyAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc2NDI2ZS4uODFlNDVmZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDQ1IEBACisyMDEzLTA3LTI0ICBHcnplZ29yeiBDemFqa293c2tpICA8Zy5j
emFqa293c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAgIEdyYW1tYXIgY2hlY2tpbmcgY29kZSBp
cyB1bm5lY2Vzc2FyaWx5IGJ1aWx0IGZvciBub24tTWFjIHBvcnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTkwODYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICByMTUxNjMyIGhhcyBzaG93biB0aGF0IHNv
bWUgcGFydHMgb2YgZ3JhbW1hciBjaGVja2luZyBjb2RlIGlzIGJ1aWx0CisgICAgICAgIGV2ZW4g
aWYgR1JBTU1BUl9DSEVDS0lORyBtYWNybyBpcyBvZmYuCisgICAgICAgIHIxNTE2NDAgcGFydGlh
bGx5IGZpeGVkIGl0IGJ1dCBzdGlsbCB0aGVyZSBpcyBjb2RlIHRoYXQgaXMgbm90IGd1YXJkZWQg
YnkKKyAgICAgICAgR1JBTU1BUl9DSEVDS0lORyBtYWNyby4KKworICAgICAgICBJbiBjb25zaXN0
ZW5jeSB3aXRoIG90aGVyIGNvZGUgZ3VhcmQgdGhlIGZlYXR1cmUgd2hlcmUgaXQncyBuZWVkZWQu
CisgICAgICAgIFRob3NlIGNoYW5nZXMgaGF2ZSB0byBiZSBsYW5kZWQgdG8gY29tbWl0IGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc1ODUuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnk6CisgICAgICAgIGVkaXRpbmcvc3BlbGxpbmcv
Z3JhbW1hci5odG1sCisgICAgICAgIGVkaXRpbmcvc3BlbGxpbmcvZ3JhbW1hci1lZGl0LXdvcmQu
aHRtbAorICAgICAgICBlZGl0aW5nL3NwZWxsaW5nL2dyYW1tYXItbWFya2Vycy5odG1sCisgICAg
ICAgIGVkaXRpbmcvc3BlbGxpbmcvZ3JhbW1hci1tYXJrZXJzLWhpZHBpLmh0bWwKKyAgICAgICAg
ZWRpdGluZy9zcGVsbGluZy9ncmFtbWFyLXBhc3RlLmh0bWwKKyAgICAgICAgZWRpdGluZy9zcGVs
bGluZy9tYXJrZXJzLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvcjo6YWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6dG9nZ2xlR3JhbW1hckNoZWNraW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6aXNTZWxlY3Rpb25VbmdyYW1tYXRpY2FsKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6Z3Vlc3Nlc0ZvclVuZ3JhbW1hdGljYWxTZWxlY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpndWVzc2VzRm9yTWlzc3BlbGxlZE9yVW5ncmFtbWF0aWNhbCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvV29yZCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Om1hcmtCYWRHcmFtbWFyKToKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvcjo6bWFya01pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXIpOgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNraW5nSGVscGVyOjpmaW5kRmlyc3RNaXNz
cGVsbGluZ09yQmFkR3JhbW1hcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdIZWxw
ZXI6Omd1ZXNzZXNGb3JNaXNzcGVsbGVkT3JVbmdyYW1tYXRpY2FsUmFuZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNs
aWVudHMuaDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVj
dGVkKToKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOgorCiAyMDEzLTA3LTI0ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgSW50cm9kdWNl
IHRvU1ZHUGF0dGVybkVsZW1lbnQoKSwgdXNlIGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
aW5kZXggZDBlMmJmNy4uZjk4YmM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAt
MTE3MywxMiArMTE3Myw2IEBAIGJvb2wgRWRpdG9yOjppc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQo
KQogICAgIHJldHVybiBjbGllbnQoKSAmJiBjbGllbnQoKS0+aXNHcmFtbWFyQ2hlY2tpbmdFbmFi
bGVkKCk7CiB9CiAKLXZvaWQgRWRpdG9yOjp0b2dnbGVHcmFtbWFyQ2hlY2tpbmcoKQotewotICAg
IGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50KCktPnRvZ2dsZUdyYW1tYXJDaGVja2luZygp
OwotfQotCiBpbnQgRWRpdG9yOjpzcGVsbENoZWNrZXJEb2N1bWVudFRhZygpCiB7CiAgICAgcmV0
dXJuIGNsaWVudCgpID8gY2xpZW50KCktPnNwZWxsQ2hlY2tlckRvY3VtZW50VGFnKCkgOiAwOwpA
QCAtMTY5NCwxMCArMTY4OCwxMiBAQCB2b2lkIEVkaXRvcjo6YWR2YW5jZVRvTmV4dE1pc3NwZWxs
aW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pCiAgICAgCiAgICAgaW50IG1pc3NwZWxsaW5n
T2Zmc2V0ID0gMDsKICAgICBHcmFtbWFyRGV0YWlsIGdyYW1tYXJEZXRhaWw7Ci0gICAgaW50IGdy
YW1tYXJQaHJhc2VPZmZzZXQgPSAwOwogICAgIFJlZlB0cjxSYW5nZT4gZ3JhbW1hclNlYXJjaFJh
bmdlOwogICAgIFN0cmluZyBiYWRHcmFtbWFyUGhyYXNlOwogICAgIFN0cmluZyBtaXNzcGVsbGVk
V29yZDsKKyNpZiBVU0UoR1JBTU1BUl9DSEVDS0lORykKKyAgICBpbnQgZ3JhbW1hclBocmFzZU9m
ZnNldCA9IDA7CisjZW5kaWYKIAogICAgIGJvb2wgaXNTcGVsbGluZyA9IHRydWU7CiAgICAgaW50
IGZvdW5kT2Zmc2V0ID0gMDsKQEAgLTE3MDksMTAgKzE3MDUsMTMgQEAgdm9pZCBFZGl0b3I6OmFk
dmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKQogICAgICAg
ICBpZiAoaXNTcGVsbGluZykgewogICAgICAgICAgICAgbWlzc3BlbGxlZFdvcmQgPSBmb3VuZEl0
ZW07CiAgICAgICAgICAgICBtaXNzcGVsbGluZ09mZnNldCA9IGZvdW5kT2Zmc2V0OwotICAgICAg
ICB9IGVsc2UgeworICAgICAgICB9CisjaWYgVVNFKEdSQU1NQVJfQ0hFQ0tJTkcpCisgICAgICAg
IGVsc2UgewogICAgICAgICAgICAgYmFkR3JhbW1hclBocmFzZSA9IGZvdW5kSXRlbTsKICAgICAg
ICAgICAgIGdyYW1tYXJQaHJhc2VPZmZzZXQgPSBmb3VuZE9mZnNldDsKICAgICAgICAgfQorI2Vu
ZGlmCiAgICAgfSBlbHNlIHsKICAgICAgICAgbWlzc3BlbGxlZFdvcmQgPSBUZXh0Q2hlY2tpbmdI
ZWxwZXIoY2xpZW50KCksIHNwZWxsaW5nU2VhcmNoUmFuZ2UpLmZpbmRGaXJzdE1pc3NwZWxsaW5n
KG1pc3NwZWxsaW5nT2Zmc2V0LCBmYWxzZSwgZmlyc3RNaXNzcGVsbGluZ1JhbmdlKTsKIApAQCAt
MTc0MywxMCArMTc0MiwxMyBAQCB2b2lkIEVkaXRvcjo6YWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5n
KGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pCiAgICAgICAgICAgICBpZiAoaXNTcGVsbGluZykg
ewogICAgICAgICAgICAgICAgIG1pc3NwZWxsZWRXb3JkID0gZm91bmRJdGVtOwogICAgICAgICAg
ICAgICAgIG1pc3NwZWxsaW5nT2Zmc2V0ID0gZm91bmRPZmZzZXQ7Ci0gICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgfQorI2lmIFVTRShHUkFNTUFSX0NIRUNLSU5HKQorICAgICAgICAg
ICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgYmFkR3JhbW1hclBocmFzZSA9IGZvdW5kSXRlbTsK
ICAgICAgICAgICAgICAgICBncmFtbWFyUGhyYXNlT2Zmc2V0ID0gZm91bmRPZmZzZXQ7CiAgICAg
ICAgICAgICB9CisjZW5kaWYKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1pc3NwZWxs
ZWRXb3JkID0gVGV4dENoZWNraW5nSGVscGVyKGNsaWVudCgpLCBzcGVsbGluZ1NlYXJjaFJhbmdl
KS5maW5kRmlyc3RNaXNzcGVsbGluZyhtaXNzcGVsbGluZ09mZnNldCwgZmFsc2UsIGZpcnN0TWlz
c3BlbGxpbmdSYW5nZSk7CiAKQEAgLTE3NjUsMTAgKzE3NjcsNyBAQCB2b2lkIEVkaXRvcjo6YWR2
YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pCiAgICAgICAg
IH0KICAgICB9CiAgICAgCi0jaWYgIVVTRShHUkFNTUFSX0NIRUNLSU5HKQotICAgIEFTU0VSVChi
YWRHcmFtbWFyUGhyYXNlLmlzRW1wdHkoKSk7Ci0gICAgVU5VU0VEX1BBUkFNKGdyYW1tYXJQaHJh
c2VPZmZzZXQpOwotI2Vsc2UKKyNpZiBVU0UoR1JBTU1BUl9DSEVDS0lORykKICAgICBpZiAoIWJh
ZEdyYW1tYXJQaHJhc2UuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIFdlIGZvdW5kIGJhZCBncmFt
bWFyLiBTaW5jZSB3ZSBvbmx5IHNlYXJjaGVkIGZvciBiYWQgZ3JhbW1hciB1cCB0byB0aGUgZmly
c3QgbWlzc3BlbGxlZCB3b3JkLCB0aGUgYmFkIGdyYW1tYXIKICAgICAgICAgLy8gdGFrZXMgcHJl
Y2VkZW5jZSBhbmQgd2UgaWdub3JlIGFueSBwb3RlbnRpYWwgbWlzc3BlbGxlZCB3b3JkLiBTZWxl
Y3QgdGhlIGdyYW1tYXIgZGV0YWlsLCB1cGRhdGUgdGhlIHNwZWxsaW5nCkBAIC0xNzg1LDcgKzE3
ODQsNyBAQCB2b2lkIEVkaXRvcjo6YWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRC
ZWZvcmVTZWxlY3Rpb24pCiAgICAgICAgIGNsaWVudCgpLT51cGRhdGVTcGVsbGluZ1VJV2l0aEdy
YW1tYXJTdHJpbmcoYmFkR3JhbW1hclBocmFzZSwgZ3JhbW1hckRldGFpbCk7CiAgICAgICAgIGZy
YW1lKCktPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKGJhZEdyYW1tYXJSYW5nZS5n
ZXQoKSwgRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIsIGdyYW1tYXJEZXRhaWwudXNlckRlc2NyaXB0
aW9uKTsKICAgICB9IGVsc2UKLSNlbmRpZgorI2VuZGlmIC8vICNpZiBVU0UoR1JBTU1BUl9DSEVD
S0lORykKICAgICBpZiAoIW1pc3NwZWxsZWRXb3JkLmlzRW1wdHkoKSkgewogICAgICAgICAvLyBX
ZSBmb3VuZCBhIG1pc3NwZWxsaW5nLCBidXQgbm90IGFueSBlYXJsaWVyIGJhZCBncmFtbWFyLiBT
ZWxlY3QgdGhlIG1pc3NwZWxsaW5nLCB1cGRhdGUgdGhlIHNwZWxsaW5nIHBhbmVsLCBhbmQgc3Rv
cmUKICAgICAgICAgLy8gYSBtYXJrZXIgc28gd2UgZHJhdyB0aGUgcmVkIHNxdWlnZ2xlIGxhdGVy
LgpAQCAtMTg1MywyMiArMTg1MiwyNCBAQCBTdHJpbmcgRWRpdG9yOjptaXNzcGVsbGVkU2VsZWN0
aW9uU3RyaW5nKCkgY29uc3QKICAgICByZXR1cm4gc2VsZWN0ZWRTdHJpbmc7CiB9CiAKKyNpZiBV
U0UoR1JBTU1BUl9DSEVDS0lORykKK3ZvaWQgRWRpdG9yOjp0b2dnbGVHcmFtbWFyQ2hlY2tpbmco
KQoreworICAgIGlmIChjbGllbnQoKSkKKyAgICAgICAgY2xpZW50KCktPnRvZ2dsZUdyYW1tYXJD
aGVja2luZygpOworfQorCiBib29sIEVkaXRvcjo6aXNTZWxlY3Rpb25VbmdyYW1tYXRpY2FsKCkK
IHsKLSNpZiBVU0UoR1JBTU1BUl9DSEVDS0lORykKICAgICBWZWN0b3I8U3RyaW5nPiBpZ25vcmVk
R3Vlc3NlczsKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gZnJhbWUoKS0+c2VsZWN0aW9uKCkt
PnRvTm9ybWFsaXplZFJhbmdlKCk7CiAgICAgaWYgKCFyYW5nZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIHJldHVybiBUZXh0Q2hlY2tpbmdIZWxwZXIoY2xpZW50KCksIHJhbmdlKS5pc1Vu
Z3JhbW1hdGljYWwoaWdub3JlZEd1ZXNzZXMpOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0j
ZW5kaWYKIH0KIAogVmVjdG9yPFN0cmluZz4gRWRpdG9yOjpndWVzc2VzRm9yVW5ncmFtbWF0aWNh
bFNlbGVjdGlvbigpCiB7Ci0jaWYgVVNFKEdSQU1NQVJfQ0hFQ0tJTkcpCiAgICAgVmVjdG9yPFN0
cmluZz4gZ3Vlc3NlczsKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gZnJhbWUoKS0+c2VsZWN0
aW9uKCktPnRvTm9ybWFsaXplZFJhbmdlKCk7CiAgICAgaWYgKCFyYW5nZSkKQEAgLTE4NzYsMTAg
KzE4NzcsOCBAQCBWZWN0b3I8U3RyaW5nPiBFZGl0b3I6Omd1ZXNzZXNGb3JVbmdyYW1tYXRpY2Fs
U2VsZWN0aW9uKCkKICAgICAvLyBJZ25vcmUgdGhlIHJlc3VsdCBvZiBpc1VuZ3JhbW1hdGljYWw7
IHdlIGp1c3Qgd2FudCB0aGUgZ3Vlc3Nlcywgd2hldGhlciBvciBub3QgdGhlcmUgYXJlIGFueQog
ICAgIFRleHRDaGVja2luZ0hlbHBlcihjbGllbnQoKSwgcmFuZ2UpLmlzVW5ncmFtbWF0aWNhbChn
dWVzc2VzKTsKICAgICByZXR1cm4gZ3Vlc3NlczsKLSNlbHNlCi0gICAgcmV0dXJuIFZlY3RvcjxT
dHJpbmc+KCk7Ci0jZW5kaWYKIH0KKyNlbmRpZiAvLyAjaWYgVVNFKEdSQU1NQVJfQ0hFQ0tJTkcp
CiAKIFZlY3RvcjxTdHJpbmc+IEVkaXRvcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRXb3JkKGNvbnN0
IFN0cmluZyYgd29yZCkgY29uc3QKIHsKQEAgLTE5MTQsMTAgKzE5MTMsMTIgQEAgVmVjdG9yPFN0
cmluZz4gRWRpdG9yOjpndWVzc2VzRm9yTWlzc3BlbGxlZE9yVW5ncmFtbWF0aWNhbChib29sJiBt
aXNzcGVsbGVkLCBib28KICAgICAgICAgdW5ncmFtbWF0aWNhbCA9IGZhbHNlOwogICAgICAgICBy
ZXR1cm4gZ3Vlc3Nlc0Zvck1pc3NwZWxsZWRXb3JkKG1pc3NwZWxsZWRXb3JkKTsKICAgICB9Cisj
aWYgVVNFKEdSQU1NQVJfQ0hFQ0tJTkcpCiAgICAgaWYgKGlzR3JhbW1hckNoZWNraW5nRW5hYmxl
ZCgpICYmIGlzU2VsZWN0aW9uVW5ncmFtbWF0aWNhbCgpKSB7CiAgICAgICAgIHVuZ3JhbW1hdGlj
YWwgPSB0cnVlOwogICAgICAgICByZXR1cm4gZ3Vlc3Nlc0ZvclVuZ3JhbW1hdGljYWxTZWxlY3Rp
b24oKTsKICAgICB9CisjZW5kaWYKICAgICB1bmdyYW1tYXRpY2FsID0gZmFsc2U7CiAgICAgcmV0
dXJuIFZlY3RvcjxTdHJpbmc+KCk7CiB9CkBAIC0yMDMwLDExICsyMDMxLDEyIEBAIHZvaWQgRWRp
dG9yOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1dvcmQoY29uc3QgVmlzaWJsZVBvc2l0
aW9uICZ3b3JkU3RhcnQsCiAgICAgICAgIGZyYW1lKCktPnNlbGVjdGlvbigpLT5tb2RpZnkoRnJh
bWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlLCBEaXJlY3Rpb25Gb3J3YXJkLCBDaGFyYWN0ZXJH
cmFudWxhcml0eSk7CiAgICAgfQogCi0gICAgaWYgKCFpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQo
KSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIC8vIENoZWNrIGdyYW1tYXIgb2YgZW50aXJl
IHNlbnRlbmNlCi0gICAgbWFya0JhZEdyYW1tYXIoVmlzaWJsZVNlbGVjdGlvbihzdGFydE9mU2Vu
dGVuY2Uod29yZFN0YXJ0KSwgZW5kT2ZTZW50ZW5jZSh3b3JkU3RhcnQpKSk7CisjaWYgVVNFKEdS
QU1NQVJfQ0hFQ0tJTkcpCisgICAgaWYgKGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCgpKSB7Cisg
ICAgICAgIC8vIENoZWNrIGdyYW1tYXIgb2YgZW50aXJlIHNlbnRlbmNlCisgICAgICAgIG1hcmtC
YWRHcmFtbWFyKFZpc2libGVTZWxlY3Rpb24oc3RhcnRPZlNlbnRlbmNlKHdvcmRTdGFydCksIGVu
ZE9mU2VudGVuY2Uod29yZFN0YXJ0KSkpOworICAgIH0KKyNlbmRpZgogfQogICAgIAogdm9pZCBF
ZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NPckJhZEdyYW1tYXIoY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgc2VsZWN0aW9uLCBib29sIGNoZWNrU3BlbGxpbmcsIFJlZlB0cjxSYW5nZT4mIGZpcnN0TWlz
c3BlbGxpbmdSYW5nZSkKQEAgLTIwOTYsMTUgKzIwOTgsMTMgQEAgdm9pZCBFZGl0b3I6Om1hcmtN
aXNzcGVsbGluZ3MoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBSZWZQdHI8UmFu
Z2U+JgogICAgIG1hcmtNaXNzcGVsbGluZ3NPckJhZEdyYW1tYXIoc2VsZWN0aW9uLCB0cnVlLCBm
aXJzdE1pc3NwZWxsaW5nUmFuZ2UpOwogfQogICAgIAorI2lmIFVTRShHUkFNTUFSX0NIRUNLSU5H
KQogdm9pZCBFZGl0b3I6Om1hcmtCYWRHcmFtbWFyKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNl
bGVjdGlvbikKIHsKLSNpZiBVU0UoR1JBTU1BUl9DSEVDS0lORykKICAgICBSZWZQdHI8UmFuZ2U+
IGZpcnN0TWlzc3BlbGxpbmdSYW5nZTsKICAgICBtYXJrTWlzc3BlbGxpbmdzT3JCYWRHcmFtbWFy
KHNlbGVjdGlvbiwgZmFsc2UsIGZpcnN0TWlzc3BlbGxpbmdSYW5nZSk7Ci0jZWxzZQotICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotI2VuZGlmCiB9CisjZW5kaWYKIAogdm9pZCBFZGl0b3I6Om1h
cmtBbGxNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXMoVGV4dENoZWNraW5nVHlwZU1h
c2sgdGV4dENoZWNraW5nT3B0aW9ucywgUmFuZ2UqIHNwZWxsaW5nUmFuZ2UsIFJhbmdlKiBncmFt
bWFyUmFuZ2UpCiB7CkBAIC0yMzg0LDEwICsyMzg0LDEyIEBAIHZvaWQgRWRpdG9yOjptYXJrTWlz
c3BlbGxpbmdzQW5kQmFkR3JhbW1hcihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzcGVsbGluZ1Nl
bGVjCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyNpZiBVU0UoR1JBTU1BUl9DSEVDS0lORykK
ICAgICBSZWZQdHI8UmFuZ2U+IGZpcnN0TWlzc3BlbGxpbmdSYW5nZTsKICAgICBtYXJrTWlzc3Bl
bGxpbmdzKHNwZWxsaW5nU2VsZWN0aW9uLCBmaXJzdE1pc3NwZWxsaW5nUmFuZ2UpOwogICAgIGlm
IChtYXJrR3JhbW1hcikKICAgICAgICAgbWFya0JhZEdyYW1tYXIoZ3JhbW1hclNlbGVjdGlvbik7
CisjZW5kaWYKIH0KIAogdm9pZCBFZGl0b3I6OnVuYXBwbGllZFNwZWxsQ29ycmVjdGlvbihjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb25PZkNvcnJlY3RlZCwgY29uc3QgU3RyaW5nJiBj
b3JyZWN0ZWQsIGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5o
CmluZGV4IDM1MDhmYzAuLjA1MjdkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMjI3
LDIzICsyMjcsMjUgQEAgcHVibGljOgogICAgIGJvb2wgaXNDb250aW51b3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQoKSBjb25zdDsKICAgICB2b2lkIHRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5n
KCk7CiAgICAgYm9vbCBpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQoKTsKLSAgICB2b2lkIHRvZ2ds
ZUdyYW1tYXJDaGVja2luZygpOwogICAgIHZvaWQgaWdub3JlU3BlbGxpbmcoKTsKICAgICB2b2lk
IGxlYXJuU3BlbGxpbmcoKTsKICAgICBpbnQgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKTsKLSAg
ICBib29sIGlzU2VsZWN0aW9uVW5ncmFtbWF0aWNhbCgpOwogICAgIFN0cmluZyBtaXNzcGVsbGVk
U2VsZWN0aW9uU3RyaW5nKCkgY29uc3Q7CiAgICAgU3RyaW5nIG1pc3NwZWxsZWRXb3JkQXRDYXJl
dE9yUmFuZ2UoTm9kZSogY2xpY2tlZE5vZGUpIGNvbnN0OwogICAgIFZlY3RvcjxTdHJpbmc+IGd1
ZXNzZXNGb3JNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmKSBjb25zdDsKLSAgICBWZWN0b3I8
U3RyaW5nPiBndWVzc2VzRm9yVW5ncmFtbWF0aWNhbFNlbGVjdGlvbigpOwogICAgIFZlY3RvcjxT
dHJpbmc+IGd1ZXNzZXNGb3JNaXNzcGVsbGVkT3JVbmdyYW1tYXRpY2FsKGJvb2wmIG1pc3NwZWxs
ZWQsIGJvb2wmIHVuZ3JhbW1hdGljYWwpOwogICAgIGJvb2wgaXNTcGVsbENoZWNraW5nRW5hYmxl
ZEluRm9jdXNlZE5vZGUoKSBjb25zdDsKICAgICBib29sIGlzU3BlbGxDaGVja2luZ0VuYWJsZWRG
b3IoTm9kZSopIGNvbnN0OwogICAgIHZvaWQgbWFya01pc3NwZWxsaW5nc0FmdGVyVHlwaW5nVG9X
b3JkKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmd29yZFN0YXJ0LCBjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBzZWxlY3Rpb25BZnRlclR5cGluZywgYm9vbCBkb1JlcGxhY2VtZW50KTsKICAgICB2b2lk
IG1hcmtNaXNzcGVsbGluZ3MoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFJlZlB0cjxSYW5nZT4m
IGZpcnN0TWlzc3BlbGxpbmdSYW5nZSk7Ci0gICAgdm9pZCBtYXJrQmFkR3JhbW1hcihjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJik7CiAgICAgdm9pZCBtYXJrTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1h
cihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzcGVsbGluZ1NlbGVjdGlvbiwgYm9vbCBtYXJrR3Jh
bW1hciwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgZ3JhbW1hclNlbGVjdGlvbik7CiAgICAgdm9p
ZCBtYXJrQW5kUmVwbGFjZUZvcihQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiwgY29uc3Qg
VmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4mKTsKKyNpZiBVU0UoR1JBTU1BUl9DSEVDS0lORykK
KyAgICB2b2lkIHRvZ2dsZUdyYW1tYXJDaGVja2luZygpOworICAgIGJvb2wgaXNTZWxlY3Rpb25V
bmdyYW1tYXRpY2FsKCk7CisgICAgVmVjdG9yPFN0cmluZz4gZ3Vlc3Nlc0ZvclVuZ3JhbW1hdGlj
YWxTZWxlY3Rpb24oKTsKKyAgICB2b2lkIG1hcmtCYWRHcmFtbWFyKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mKTsKKyNlbmRpZgogCiAgICAgYm9vbCBpc092ZXJ3cml0ZU1vZGVFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9vdmVyd3JpdGVNb2RlRW5hYmxlZDsgfQogICAgIHZvaWQgdG9nZ2xlT3Zl
cndyaXRlTW9kZUVuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VGV4dENoZWNraW5nSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNr
aW5nSGVscGVyLmNwcAppbmRleCAyN2M0NDJjLi5jZDhmNmNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCkBAIC02OCw3ICs2OCw3IEBAIHN0YXRp
YyB2b2lkIGZpbmRCYWRHcmFtbWFycyhUZXh0Q2hlY2tlckNsaWVudCogY2xpZW50LCBjb25zdCBV
Q2hhciogdGV4dCwgaW50IHN0CiAgICAgICAgIGNoZWNrTGVuZ3RoIC09IChiYWRHcmFtbWFyTG9j
YXRpb24gKyBiYWRHcmFtbWFyTGVuZ3RoKTsKICAgICB9CiB9Ci0jZW5kaWYKKyNlbmRpZiAvLyAj
aWYgVVNFKEdSQU1NQVJfQ0hFQ0tJTkcpCiAKIHN0YXRpYyB2b2lkIGZpbmRNaXNzcGVsbGluZ3Mo
VGV4dENoZWNrZXJDbGllbnQqIGNsaWVudCwgY29uc3QgVUNoYXIqIHRleHQsIGludCBzdGFydCwg
aW50IGxlbmd0aCwgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4mIHJlc3VsdHMpCiB7CkBAIC05
OCw3ICs5OCw3IEBAIHN0YXRpYyB2b2lkIGZpbmRNaXNzcGVsbGluZ3MoVGV4dENoZWNrZXJDbGll
bnQqIGNsaWVudCwgY29uc3QgVUNoYXIqIHRleHQsIGludCBzCiAgICAgICAgIHdvcmRTdGFydCA9
IHdvcmRFbmQ7CiAgICAgfQogfQotI2VuZGlmCisjZW5kaWYgLy8gI2lmICFVU0UoVU5JRklFRF9U
RVhUX0NIRUNLSU5HKQogCiBzdGF0aWMgUGFzc1JlZlB0cjxSYW5nZT4gZXhwYW5kVG9QYXJhZ3Jh
cGhCb3VuZGFyeShQYXNzUmVmUHRyPFJhbmdlPiByYW5nZSkKIHsKQEAgLTMzNiwxMSArMzM2LDEz
IEBAIFN0cmluZyBUZXh0Q2hlY2tpbmdIZWxwZXI6OmZpbmRGaXJzdE1pc3NwZWxsaW5nT3JCYWRH
cmFtbWFyKGJvb2wgY2hlY2tHcmFtbWFyLCBiCiAgICAgICAgIGlmIChjdXJyZW50U3RhcnRPZmZz
ZXQgPCBjdXJyZW50RW5kT2Zmc2V0KSB7CiAgICAgICAgICAgICBTdHJpbmcgcGFyYWdyYXBoU3Ry
aW5nID0gcGxhaW5UZXh0KHBhcmFncmFwaFJhbmdlLmdldCgpKTsKICAgICAgICAgICAgIGlmIChw
YXJhZ3JhcGhTdHJpbmcubGVuZ3RoKCkgPiAwKSB7Ci0gICAgICAgICAgICAgICAgYm9vbCBmb3Vu
ZEdyYW1tYXIgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBpbnQgc3BlbGxpbmdMb2NhdGlvbiA9
IDA7Ci0gICAgICAgICAgICAgICAgaW50IGdyYW1tYXJQaHJhc2VMb2NhdGlvbiA9IDA7CiAgICAg
ICAgICAgICAgICAgaW50IGdyYW1tYXJEZXRhaWxMb2NhdGlvbiA9IDA7CisjaWYgVVNFKEdSQU1N
QVJfQ0hFQ0tJTkcpCisgICAgICAgICAgICAgICAgYm9vbCBmb3VuZEdyYW1tYXIgPSBmYWxzZTsK
KyAgICAgICAgICAgICAgICBpbnQgZ3JhbW1hclBocmFzZUxvY2F0aW9uID0gMDsKICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBncmFtbWFyRGV0YWlsSW5kZXggPSAwOworI2VuZGlmCiAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4gcmVz
dWx0czsKICAgICAgICAgICAgICAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVja2luZ1R5cGVz
ID0gY2hlY2tHcmFtbWFyID8gKFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVja2lu
Z1R5cGVHcmFtbWFyKSA6IFRleHRDaGVja2luZ1R5cGVTcGVsbGluZzsKQEAgLTM1NSw2ICszNTcs
NyBAQCBTdHJpbmcgVGV4dENoZWNraW5nSGVscGVyOjpmaW5kRmlyc3RNaXNzcGVsbGluZ09yQmFk
R3JhbW1hcihib29sIGNoZWNrR3JhbW1hciwgYgogICAgICAgICAgICAgICAgICAgICAgICAgQVNT
RVJUKG1pc3NwZWxsZWRXb3JkLmxlbmd0aCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgICAgICB9CisjaWYgVVNFKEdSQU1NQVJfQ0hFQ0tJTkcpCiAg
ICAgICAgICAgICAgICAgICAgIGlmIChjaGVja0dyYW1tYXIgJiYgcmVzdWx0LT50eXBlID09IFRl
eHRDaGVja2luZ1R5cGVHcmFtbWFyICYmIHJlc3VsdC0+bG9jYXRpb24gPCBjdXJyZW50RW5kT2Zm
c2V0ICYmIHJlc3VsdC0+bG9jYXRpb24gKyByZXN1bHQtPmxlbmd0aCA+IGN1cnJlbnRTdGFydE9m
ZnNldCkgewogICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlc3VsdC0+bGVuZ3RoID4g
MCAmJiByZXN1bHQtPmxvY2F0aW9uID49IDApOwogICAgICAgICAgICAgICAgICAgICAgICAgLy8g
V2UgY2FuJ3Qgc3RvcCBhZnRlciB0aGUgZmlyc3QgZ3JhbW1hciByZXN1bHQsIHNpbmNlIHRoZXJl
IG1pZ2h0IHN0aWxsIGJlIGEgc3BlbGxpbmcgcmVzdWx0IGFmdGVyCkBAIC0zNzcsNiArMzgwLDcg
QEAgU3RyaW5nIFRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0TWlzc3BlbGxpbmdPckJhZEdy
YW1tYXIoYm9vbCBjaGVja0dyYW1tYXIsIGIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
U1NFUlQoYmFkR3JhbW1hclBocmFzZS5sZW5ndGgoKSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgIH0KKyNlbmRpZiAvLyAjaWYgVVNFKEdSQU1NQVJfQ0hF
Q0tJTkcpCiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYgKCFtaXNzcGVs
bGVkV29yZC5pc0VtcHR5KCkgJiYgKCFjaGVja0dyYW1tYXIgfHwgYmFkR3JhbW1hclBocmFzZS5p
c0VtcHR5KCkgfHwgc3BlbGxpbmdMb2NhdGlvbiA8PSBncmFtbWFyRGV0YWlsTG9jYXRpb24pKSB7
CkBAIC0zOTAsNiArMzk0LDcgQEAgU3RyaW5nIFRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0
TWlzc3BlbGxpbmdPckJhZEdyYW1tYXIoYm9vbCBjaGVja0dyYW1tYXIsIGIKICAgICAgICAgICAg
ICAgICAgICAgZmlyc3RGb3VuZEl0ZW0gPSBtaXNzcGVsbGVkV29yZDsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQorI2lmIFVTRShHUkFNTUFSX0NIRUNLSU5H
KQogICAgICAgICAgICAgICAgIGlmIChjaGVja0dyYW1tYXIgJiYgIWJhZEdyYW1tYXJQaHJhc2Uu
aXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGludCBncmFtbWFyUGhyYXNlT2Zmc2V0
ID0gZ3JhbW1hclBocmFzZUxvY2F0aW9uIC0gY3VycmVudFN0YXJ0T2Zmc2V0OwogICAgICAgICAg
ICAgICAgICAgICBpZiAoIWZpcnN0SXRlcmF0aW9uKSB7CkBAIC00MDEsNiArNDA2LDcgQEAgU3Ry
aW5nIFRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0TWlzc3BlbGxpbmdPckJhZEdyYW1tYXIo
Ym9vbCBjaGVja0dyYW1tYXIsIGIKICAgICAgICAgICAgICAgICAgICAgZmlyc3RGb3VuZEl0ZW0g
PSBiYWRHcmFtbWFyUGhyYXNlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICB9CisjZW5kaWYgLy8gI2lmIFVTRShHUkFNTUFSX0NIRUNLSU5HKQogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgICAgIGlmIChsYXN0SXRlcmF0aW9uIHx8IHRvdGFsTGVuZ3Ro
UHJvY2Vzc2VkICsgY3VycmVudExlbmd0aCA+PSB0b3RhbFJhbmdlTGVuZ3RoKQpAQCAtNTUzLDcg
KzU1OSw3IEBAIGJvb2wgVGV4dENoZWNraW5nSGVscGVyOjppc1VuZ3JhbW1hdGljYWwoVmVjdG9y
PFN0cmluZz4mIGd1ZXNzZXNWZWN0b3IpIGNvbnN0CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9
Ci0jZW5kaWYKKyNlbmRpZiAvLyAjaWYgVVNFKEdSQU1NQVJfQ0hFQ0tJTkcpCiAKIFZlY3RvcjxT
dHJpbmc+IFRleHRDaGVja2luZ0hlbHBlcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRPclVuZ3JhbW1h
dGljYWxSYW5nZShib29sIGNoZWNrR3JhbW1hciwgYm9vbCYgbWlzc3BlbGxlZCwgYm9vbCYgdW5n
cmFtbWF0aWNhbCkgY29uc3QKIHsKQEAgLTU4OCw2ICs1OTQsNyBAQCBWZWN0b3I8U3RyaW5nPiBU
ZXh0Q2hlY2tpbmdIZWxwZXI6Omd1ZXNzZXNGb3JNaXNzcGVsbGVkT3JVbmdyYW1tYXRpY2FsUmFu
Z2UoYm9vbAogICAgICAgICB9CiAgICAgfQogICAgIAorI2lmIFVTRShHUkFNTUFSX0NIRUNLSU5H
KQogICAgIGlmICghY2hlY2tHcmFtbWFyKQogICAgICAgICByZXR1cm4gZ3Vlc3NlczsKICAgICAg
ICAgCkBAIC02MDksNiArNjE2LDcgQEAgVmVjdG9yPFN0cmluZz4gVGV4dENoZWNraW5nSGVscGVy
OjpndWVzc2VzRm9yTWlzc3BlbGxlZE9yVW5ncmFtbWF0aWNhbFJhbmdlKGJvb2wKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0KKyNlbmRpZiAvLyAjaWYgVVNFKEdSQU1NQVJfQ0hFQ0tJ
TkcpCiAgICAgcmV0dXJuIGd1ZXNzZXM7CiB9CiAKQEAgLTY2OSw3ICs2NzcsNyBAQCB2b2lkIGNo
ZWNrVGV4dE9mUGFyYWdyYXBoKFRleHRDaGVja2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFVDaGFy
KiB0ZXh0LCBpbnQgbGVuZwogCiAgICAgaWYgKGdyYW1tYXJSZXN1bHQuc2l6ZSgpKQogICAgICAg
ICByZXN1bHRzLnN3YXAoZ3JhbW1hclJlc3VsdCk7Ci0jZW5kaWYKKyNlbmRpZiAvLyAjaWYgVVNF
KEdSQU1NQVJfQ0hFQ0tJTkcpCiAKICAgICBpZiAoc3BlbGxpbmdSZXN1bHQuc2l6ZSgpKSB7CiAg
ICAgICAgIGlmIChyZXN1bHRzLmlzRW1wdHkoKSkKQEAgLTY3Nyw3ICs2ODUsNyBAQCB2b2lkIGNo
ZWNrVGV4dE9mUGFyYWdyYXBoKFRleHRDaGVja2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFVDaGFy
KiB0ZXh0LCBpbnQgbGVuZwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXN1bHRzLmFwcGVu
ZFZlY3RvcihzcGVsbGluZ1Jlc3VsdCk7CiAgICAgfQotI2VuZGlmCisjZW5kaWYgLy8gI2lmIFVT
RShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCiB9CiAKIGJvb2wgdW5pZmllZFRleHRDaGVja2VyRW5h
YmxlZChjb25zdCBGcmFtZSogZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
aW5kZXggNjRhMjRiMy4uMTM4Y2VkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aApAQCAtNDA1LDcgKzQwNSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNDb250aW51
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
dm9pZCB0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpIHsgfQogICAgIHZpcnR1YWwgYm9v
bCBpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorI2lmIFVTRShH
UkFNTUFSX0NIRUNLSU5HKQogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVHcmFtbWFyQ2hlY2tpbmco
KSB7IH0KKyNlbmRpZgogICAgIHZpcnR1YWwgaW50IHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnKCkg
eyByZXR1cm4gLTE7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RXb3JkQmVmb3JlTWVudUV2
ZW50KCkgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1l
bnVDb250cm9sbGVyLmNwcAppbmRleCBhNzE1MjI1Li5iNGM1ODE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC00NTIsOSArNDUyLDExIEBA
IHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250
ZXh0TWVudUl0ZW0qIGl0ZW0pCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxs
aW5nV2hpbGVUeXBpbmc6CiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS50b2dnbGVDb250aW51b3Vz
U3BlbGxDaGVja2luZygpOwogICAgICAgICBicmVhazsKKyNpZiBVU0UoR1JBTU1BUl9DSEVDS0lO
RykKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZzoK
ICAgICAgICAgZnJhbWUtPmVkaXRvcigpLnRvZ2dsZUdyYW1tYXJDaGVja2luZygpOwogICAgICAg
ICBicmVhazsKKyNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBjYXNlIENvbnRleHRNZW51
SXRlbVRhZ1Nob3dGb250czoKICAgICAgICAgZnJhbWUtPmVkaXRvcigpLnNob3dGb250UGFuZWwo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCmluZGV4IGM4YmIzZTQuLjA3MTBiYzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaApAQCAtNzMsNyArNzMsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIGlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCkgPSAwOworI2lmIFVTRShH
UkFNTUFSX0NIRUNLSU5HKQogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVHcmFtbWFyQ2hlY2tpbmco
KSA9IDA7CisjZW5kaWYKICAgICB2aXJ0dWFsIGludCBzcGVsbENoZWNrZXJEb2N1bWVudFRhZygp
ID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRCZWdpbkVkaXRpbmcoUmFuZ2UqKSA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCA2NGQyMzZmLi45OWY0MzA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wNy0yNCAg
R3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5nLmNvbT4KKworICAgICAg
ICBHcmFtbWFyIGNoZWNraW5nIGNvZGUgaXMgdW5uZWNlc3NhcmlseSBidWlsdCBmb3Igbm9uLU1h
YyBwb3J0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTE5MDg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXNlIEdSQU1NQVJfQ0hFQ0tJTkcgbWFjcm8gdG8gZ3VhcmQgdGhlIGNvZGUuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5Lmg6CisKIDIwMTMtMDctMTcgIEth
bmdpbCBIYW4gIDxrYW5naWwuaGFuQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVzZSB0b0hUTUxN
ZWRpYUVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCAzYmI3
MWRmLi41NzI2NTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0x
NDMsMTAgKzE0MywxMiBAQCBib29sIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OmlzR3JhbW1hckNo
ZWNraW5nRW5hYmxlZCgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgVVNFKEdSQU1NQVJf
Q0hFQ0tJTkcpCiB2b2lkIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnRvZ2dsZUdyYW1tYXJDaGVj
a2luZygpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KKyNlbmRpZgogCiBpbnQgRWRpdG9y
Q2xpZW50QmxhY2tCZXJyeTo6c3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJs
YWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggOTgxOTE1My4uZjJhOTBmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNr
QmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50QmxhY2tCZXJyeS5oCkBAIC00NCw3ICs0NCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKICAgICB2aXJ0dWFs
IHZvaWQgdG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKTsKICAgICB2aXJ0dWFsIGJvb2wg
aXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCk7CisjaWYgVVNFKEdSQU1NQVJfQ0hFQ0tJTkcpCiAg
ICAgdmlydHVhbCB2b2lkIHRvZ2dsZUdyYW1tYXJDaGVja2luZygpOworI2VuZGlmCiAgICAgdmly
dHVhbCBpbnQgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkQmVnaW5FZGl0aW5nKFJhbmdlKik7CiAgICAgdmlydHVhbCBib29sIHNob3VsZEVuZEVkaXRp
bmcoUmFuZ2UqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCAyNDg4MTgwLi4zZGNhZWI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDctMjQgIEdyemVnb3J6IEN6YWprb3dz
a2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgR3JhbW1hciBjaGVja2lu
ZyBjb2RlIGlzIHVubmVjZXNzYXJpbHkgYnVpbHQgZm9yIG5vbi1NYWMgcG9ydHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTA4NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBHUkFNTUFSX0NIRUNL
SU5HIG1hY3JvIHRvIGd1YXJkIHRoZSBjb2RlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRFZmwuaDoKKwogMjAxMy0wNy0xNSAgS3dhbmcgWXVsIFNlbyAgPHNreXVsQGNvbXBhbnkxMDAu
bmV0PgogCiAgICAgICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y3JlYXRlRGVmYXVsdFNlc3Np
b24gaXMgb25seSBpbXBsZW1lbnRlZCBieSBTb3VwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcAppbmRleCAyNGRhNTFkLi5kZGM3
ZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEVmbC5jcHAKQEAgLTI2NSwxMCArMjY1LDEyIEBAIHZvaWQgRWRpdG9yQ2xpZW50RWZs
Ojp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAorI2lmIFVTRShHUkFNTUFSX0NIRUNLSU5HKQogdm9pZCBFZGl0b3JDbGllbnRFZmw6OnRv
Z2dsZUdyYW1tYXJDaGVja2luZygpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KKyNlbmRp
ZgogCiBjb25zdCBjaGFyKiBFZGl0b3JDbGllbnRFZmw6OmludGVycHJldEtleUV2ZW50KGNvbnN0
IEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAppbmRleCBkMGQ1ZDMwLi40NmFkNGIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwu
aApAQCAtODgsNyArODgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQ29udGludW91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUNvbnRpbnVv
dXNTcGVsbENoZWNraW5nKCk7CiAgICAgdmlydHVhbCBib29sIGlzR3JhbW1hckNoZWNraW5nRW5h
YmxlZCgpOworI2lmIFVTRShHUkFNTUFSX0NIRUNLSU5HKQogICAgIHZpcnR1YWwgdm9pZCB0b2dn
bGVHcmFtbWFyQ2hlY2tpbmcoKTsKKyNlbmRpZgogICAgIHZpcnR1YWwgaW50IHNwZWxsQ2hlY2tl
ckRvY3VtZW50VGFnKCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQmVnaW5FZGl0aW5nKFJh
bmdlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZDk5MTUyNS4uMDAzNTg3MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTA3LTI0ICBHcnplZ29yeiBDemFqa293c2tpICA8
Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAgIEdyYW1tYXIgY2hlY2tpbmcgY29k
ZSBpcyB1bm5lY2Vzc2FyaWx5IGJ1aWx0IGZvciBub24tTWFjIHBvcnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTkwODYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgR1JBTU1BUl9DSEVDS0lORyBt
YWNybyB0byBndWFyZCB0aGUgY29kZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
Lmg6CisKIDIwMTMtMDctMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHVEtdIEd0a0FkanVzdG1lbnRXYXRjaGVyIGlkbGUgc291cmNlIG5v
dCBjb3JyZWN0bHkgaGFuZGxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKaW5kZXggNTA5MDkwNC4uMmU1ZmUyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsu
Y3BwCkBAIC0zODYsOSArMzg2LDExIEBAIHZvaWQgRWRpdG9yQ2xpZW50Ojp0b2dnbGVDb250aW51
b3VzU3BlbGxDaGVja2luZygpCiAgICAgZ19vYmplY3Rfc2V0KHNldHRpbmdzLCAiZW5hYmxlLXNw
ZWxsLWNoZWNraW5nIiwgIWVuYWJsZWQsIE5VTEwpOwogfQogCisjaWYgVVNFKEdSQU1NQVJfQ0hF
Q0tJTkcpCiB2b2lkIEVkaXRvckNsaWVudDo6dG9nZ2xlR3JhbW1hckNoZWNraW5nKCkKIHsKIH0K
KyNlbmRpZgogCiBib29sIEVkaXRvckNsaWVudDo6ZXhlY3V0ZVBlbmRpbmdFZGl0b3JDb21tYW5k
cyhGcmFtZSogZnJhbWUsIGJvb2wgYWxsb3dUZXh0SW5zZXJ0aW9uKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAppbmRleCBjOTlm
NzFlLi4wNGJiMzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRHdGsuaApAQCAtNzksNyArNzksOSBAQCBjbGFzcyBFZGl0b3JDbGllbnQg
OiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKICAgICAgICAgdmlydHVhbCBib29sIGlz
Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0
b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNH
cmFtbWFyQ2hlY2tpbmdFbmFibGVkKCk7CisjaWYgVVNFKEdSQU1NQVJfQ0hFQ0tJTkcpCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVHcmFtbWFyQ2hlY2tpbmcoKTsKKyNlbmRpZgogICAgICAg
ICB2aXJ0dWFsIGludCBzcGVsbENoZWNrZXJEb2N1bWVudFRhZygpOwogCiAgICAgICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRCZWdpbkVkaXRpbmcoV2ViQ29yZTo6UmFuZ2UqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cK
aW5kZXggY2ZiNmFkMy4uOWFmNjk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxMy0wNy0yNCAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5nLmNv
bT4KKworICAgICAgICBHcmFtbWFyIGNoZWNraW5nIGNvZGUgaXMgdW5uZWNlc3NhcmlseSBidWls
dCBmb3Igbm9uLU1hYyBwb3J0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTE5MDg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVXNlIEdSQU1NQVJfQ0hFQ0tJTkcgbWFjcm8gdG8gZ3VhcmQgdGhlIGNvZGUu
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHA6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9UZXh0Q2hlY2tlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9U
ZXh0Q2hlY2tlckNsaWVudFF0Lmg6CisKIDIwMTMtMDctMjMgIEFsbGFuIFNhbmRmZWxkIEplbnNl
biAgPGFsbGFuLmplbnNlbkBkaWdpYS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGRlcHJlY2F0ZWQg
YW5kIHVudXNlZCBjb21wb3NpdGluZyBzZXR0aW5ncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAppbmRleCAwYjY0ZTYxLi5lMzhiNzdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFF0LmNwcApAQCAtMzYxLDEwICszNjEsMTIgQEAgdm9pZCBFZGl0b3JDbGllbnRRdDo6dG9nZ2xl
Q29udGludW91c1NwZWxsQ2hlY2tpbmcoKQogICAgIG1fdGV4dENoZWNrZXJDbGllbnQudG9nZ2xl
Q29udGlub3VzU3BlbGxDaGVja2luZygpOwogfQogCisjaWYgVVNFKEdSQU1NQVJfQ0hFQ0tJTkcp
CiB2b2lkIEVkaXRvckNsaWVudFF0Ojp0b2dnbGVHcmFtbWFyQ2hlY2tpbmcoKQogewogICAgIHJl
dHVybiBtX3RleHRDaGVja2VyQ2xpZW50LnRvZ2dsZUdyYW1tYXJDaGVja2luZygpOwogfQorI2Vu
ZGlmCiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBDdHJsS2V5ID0gMSA8PCAwOwogc3RhdGljIGNv
bnN0IHVuc2lnbmVkIEFsdEtleSA9IDEgPDwgMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAppbmRleCA3ODJjZGUzLi5jM2Q2MTZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgK
KysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCkBA
IC01NCw3ICs1NCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNDb250aW51b3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ29udGludW91c1Nw
ZWxsQ2hlY2tpbmcoKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVk
KCk7CisjaWYgVVNFKEdSQU1NQVJfQ0hFQ0tJTkcpCiAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUdy
YW1tYXJDaGVja2luZygpOworI2VuZGlmCiAgICAgdmlydHVhbCBpbnQgc3BlbGxDaGVja2VyRG9j
dW1lbnRUYWcoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0V29yZEJlZm9yZU1lbnVFdmVudCgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVj
a2VyQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hl
Y2tlckNsaWVudFF0LmNwcAppbmRleCBjMDA2MjNjLi4zMDhiZTVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRRdC5jcHAK
QEAgLTE0NCw2ICsxNDQsNyBAQCBib29sIFRleHRDaGVja2VyQ2xpZW50UXQ6OmlzR3JhbW1hckNo
ZWNraW5nRW5hYmxlZCgpCiAgICAgcmV0dXJuIG1fc3BlbGxDaGVja2VyLT5pc0dyYW1tYXJDaGVj
a2luZ0VuYWJsZWQoKTsKIH0KIAorI2lmIFVTRShHUkFNTUFSX0NIRUNLSU5HKQogdm9pZCBUZXh0
Q2hlY2tlckNsaWVudFF0Ojp0b2dnbGVHcmFtbWFyQ2hlY2tpbmcoKQogewogICAgIGlmICghbG9h
ZFNwZWxsQ2hlY2tlcigpKQpAQCAtMTUxLDYgKzE1Miw3IEBAIHZvaWQgVGV4dENoZWNrZXJDbGll
bnRRdDo6dG9nZ2xlR3JhbW1hckNoZWNraW5nKCkKIAogICAgIG1fc3BlbGxDaGVja2VyLT50b2dn
bGVHcmFtbWFyQ2hlY2tpbmcoKTsKIH0KKyNlbmRpZgogCiBib29sIFRleHRDaGVja2VyQ2xpZW50
UXQ6OmxvYWRTcGVsbENoZWNrZXIoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50UXQuaAppbmRleCBiZjlkZWQ0Li41YzkwN2Ni
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2Vy
Q2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1RleHRDaGVj
a2VyQ2xpZW50UXQuaApAQCAtNTQsNyArNTQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHRvZ2dsZUNvbnRpbm91c1NwZWxsQ2hlY2tpbmcoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0dy
YW1tYXJDaGVja2luZ0VuYWJsZWQoKTsKKyNpZiBVU0UoR1JBTU1BUl9DSEVDS0lORykKICAgICB2
aXJ0dWFsIHZvaWQgdG9nZ2xlR3JhbW1hckNoZWNraW5nKCk7CisjZW5kaWYKIAogcHJpdmF0ZToK
ICAgICBib29sIGxvYWRTcGVsbENoZWNrZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBkNDZhMDRi
Li43NWI0NGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDctMjQg
IEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5jb20+CisKKyAgICAg
ICAgR3JhbW1hciBjaGVja2luZyBjb2RlIGlzIHVubmVjZXNzYXJpbHkgYnVpbHQgZm9yIG5vbi1N
YWMgcG9ydHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExOTA4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBHUkFNTUFSX0NIRUNLSU5HIG1hY3JvIHRvIGd1YXJkIHRoZSBjb2RlLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKiBXZWJWaWV3Lmg6CisKIDIwMTMtMDctMjMgIHBlYXZvQG91dGxvb2suY29tICA8cGVhdm9A
b3V0bG9vay5jb20+CiAKICAgICAgICAgW1dpbl0gV2ViVmlldyBkaWRSZWNlaXZlSWNvbiBkZWxl
Z2F0ZSBjYWxsIGRvZXNuJ3QgaGF2ZSB0aGUgaWNvbiBpbiBpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggZWI5YjQ1
MS4uZGFjOThkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0xNjcsMTAgKzE2NywxMiBAQCBib29sIFdlYkVkaXRv
ckNsaWVudDo6aXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCkKICAgICByZXR1cm4gISFlbmFibGVk
OwogfQogCisjaWYgVVNFKEdSQU1NQVJfQ0hFQ0tJTkcpCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6
dG9nZ2xlR3JhbW1hckNoZWNraW5nKCkKIHsKICAgICBtX3dlYlZpZXctPnRvZ2dsZUdyYW1tYXJD
aGVja2luZygwKTsKIH0KKyNlbmRpZgogCiBzdGF0aWMgdm9pZCBpbml0Vmlld1NwZWNpZmljU3Bl
bGxpbmcoSVdlYlZpZXdFZGl0aW5nKiB2aWV3RWRpdGluZykKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggMjdmMjY3Ny4u
YTlkMmRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgKQEAgLTQ0LDcgKzQ0LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBmcmFtZVdpbGxEZXRhY2hQYWdlKFdlYkNvcmU6OkZyYW1lKikgeyB9CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKKyNpZiBVU0UoR1JBTU1B
Ul9DSEVDS0lORykKICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlR3JhbW1hckNoZWNraW5nKCk7Cisj
ZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCk7CiAgICAg
dmlydHVhbCB2b2lkIHRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCk7CiAgICAgdmlydHVh
bCBpbnQgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXgg
YjI4MDExYi4uNmIyODU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTQwNTMsNiArNDA1Myw3
IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6dG9nZ2xlU21hcnRJbnNlcnRE
ZWxldGUoCiAgICAgcmV0dXJuIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChlbmFibGVkID8g
RkFMU0UgOiBUUlVFKTsKIH0KIAorI2lmIFVTRShHUkFNTUFSX0NIRUNLSU5HKQogSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3Ojp0b2dnbGVHcmFtbWFyQ2hlY2tpbmcoIAogICAgIC8q
IFtpbl0gKi8gSVVua25vd24qIC8qc2VuZGVyKi8pCiB7CkBAIC00MDYzLDYgKzQwNjQsNyBAQCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnRvZ2dsZUdyYW1tYXJDaGVja2luZygK
IAogICAgIHJldHVybiBzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGVuYWJsZWQgPyBGQUxTRSA6
IFRSVUUpOwogfQorI2VuZGlmCiAKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6
cmVsb2FkRnJvbU9yaWdpbiggCiAgICAgICAgIC8qIFtpbl0gKi8gSVVua25vd24qIC8qc2VuZGVy
Ki8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmggYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJWaWV3LmgKaW5kZXggYzBjZmRmMC4uNmE0MTJhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcu
aApAQCAtMzk0LDggKzM5NCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKCAKICAgICAgICAgLyogW2luXSAq
LyBJVW5rbm93biAqc2VuZGVyKTsKIAorI2lmIFVTRShHUkFNTUFSX0NIRUNLSU5HKQogICAgIHZp
cnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB0b2dnbGVHcmFtbWFyQ2hlY2tpbmcoIAog
ICAgICAgICAvKiBbaW5dICovIElVbmtub3duICpzZW5kZXIpOworI2VuZGlmCiAKICAgICB2aXJ0
dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVsb2FkRnJvbU9yaWdpbiggCiAgICAgICAg
IC8qIFtpbl0gKi8gSVVua25vd24gKnNlbmRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IGEy
ZTkzMmIuLjVmMGIzOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTMtMDctMjQgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5jb20+
CisKKyAgICAgICAgR3JhbW1hciBjaGVja2luZyBjb2RlIGlzIHVubmVjZXNzYXJpbHkgYnVpbHQg
Zm9yIG5vbi1NYWMgcG9ydHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExOTA4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVzZSBHUkFNTUFSX0NIRUNLSU5HIG1hY3JvIHRvIGd1YXJkIHRoZSBjb2RlLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmg6CisKIDIwMTMtMDYtMjYgIFBh
dHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBXaW5DRSBidWlsZCBmaXggYWZ0ZXIgcjE1MjA2NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwIGIvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKaW5kZXggNjQ1
OGRmNi4uYjgzYTVjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKQEAgLTIzMiwxMCArMjMyLDEyIEBAIHZv
aWQgRWRpdG9yQ2xpZW50V2luQ0U6OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCkKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCisjaWYgVVNFKEdSQU1NQVJfQ0hFQ0tJTkcpCiB2b2lk
IEVkaXRvckNsaWVudFdpbkNFOjp0b2dnbGVHcmFtbWFyQ2hlY2tpbmcoKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CisjZW5kaWYKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIEN0cmxLZXkg
PSAxIDw8IDA7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgQWx0S2V5ID0gMSA8PCAxOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5D
RS5oIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5D
RS5oCmluZGV4IDk3NGFlZjIuLmJiNjNiZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKQEAgLTQ2LDcgKzQ2LDkg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5h
YmxlZCgpOwogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygp
OwogICAgIHZpcnR1YWwgYm9vbCBpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQoKTsKKyNpZiBVU0Uo
R1JBTU1BUl9DSEVDS0lORykKICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlR3JhbW1hckNoZWNraW5n
KCk7CisjZW5kaWYKICAgICB2aXJ0dWFsIGludCBzcGVsbENoZWNrZXJEb2N1bWVudFRhZygpOwog
CiAgICAgdmlydHVhbCBib29sIHNob3VsZEJlZ2luRWRpdGluZyhXZWJDb3JlOjpSYW5nZSopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCmluZGV4IDk2OWZlNmIuLmNiN2VjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAxMy0wNy0yNCAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBHcmFtbWFyIGNoZWNraW5nIGNvZGUgaXMgdW5uZWNlc3NhcmlseSBi
dWlsdCBmb3Igbm9uLU1hYyBwb3J0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTE5MDg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXNlIEdSQU1NQVJfQ0hFQ0tJTkcgbWFjcm8gdG8gZ3VhcmQgdGhlIGNv
ZGUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaDoKKwogMjAxMy0wNS0wNSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJvbGxlZCBiYWNrIGluIHIxNDk1Mjcgd2l0aCBjcmFzaCBmaXhlZC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcAppbmRleCBiMWIwNTQzLi44NmNjNzc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuY3BwCkBAIC0xMTMsMTAgKzExMywxMiBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6aXNH
cmFtbWFyQ2hlY2tpbmdFbmFibGVkKCkKICAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2hhcmVkKCku
dGV4dENoZWNrZXJTdGF0ZSgpLmlzR3JhbW1hckNoZWNraW5nRW5hYmxlZDsKIH0KIAorI2lmIFVT
RShHUkFNTUFSX0NIRUNLSU5HKQogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnRvZ2dsZUdyYW1tYXJD
aGVja2luZygpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KKyNlbmRpZgogCiBpbnQgV2Vi
RWRpdG9yQ2xpZW50OjpzcGVsbENoZWNrZXJEb2N1bWVudFRhZygpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaAppbmRleCA5OWJkOGJkLi44Y2M0NjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTUw
LDcgKzUwLDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNDb250aW51b3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ29udGlu
dW91c1NwZWxsQ2hlY2tpbmcoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNHcmFtbWFy
Q2hlY2tpbmdFbmFibGVkKCkgT1ZFUlJJREU7CisjaWYgVVNFKEdSQU1NQVJfQ0hFQ0tJTkcpCiAg
ICAgdmlydHVhbCB2b2lkIHRvZ2dsZUdyYW1tYXJDaGVja2luZygpIE9WRVJSSURFOworI2VuZGlm
CiAgICAgdmlydHVhbCBpbnQgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKSBPVkVSUklERTsKICAg
ICAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQmVnaW5FZGl0aW5nKFdlYkNvcmU6OlJhbmdlKikg
T1ZFUlJJREU7Cg==
</data>
<flag name="commit-queue"
          id="229483"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>