<?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>209457</bug_id>
          
          <creation_ts>2020-03-23 17:38:10 -0700</creation_ts>
          <short_desc>HasIndexedProperty should know about sane chain</short_desc>
          <delta_ts>2020-03-24 15:07:18 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=209507</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1633158</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-03-23 17:38:10 -0700</bug_when>
    <thetext>HasIndexedProperty should know about sane chain</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633163</commentid>
    <comment_count>1</comment_count>
      <attachid>394333</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-03-23 17:42:46 -0700</bug_when>
    <thetext>Created attachment 394333
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633166</commentid>
    <comment_count>2</comment_count>
      <attachid>394334</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-03-23 17:47:52 -0700</bug_when>
    <thetext>Created attachment 394334
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633170</commentid>
    <comment_count>3</comment_count>
      <attachid>394334</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-03-23 18:10:15 -0700</bug_when>
    <thetext>Comment on attachment 394334
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633205</commentid>
    <comment_count>4</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-03-23 19:51:43 -0700</bug_when>
    <thetext>rdar://problem/59821190</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633206</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-23 20:02:35 -0700</bug_when>
    <thetext>Committed r258901: &lt;https://trac.webkit.org/changeset/258901&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394334.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633390</commentid>
    <comment_count>6</comment_count>
      <attachid>394334</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2020-03-24 11:01:54 -0700</bug_when>
    <thetext>Comment on attachment 394334
Patch

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

I&apos;ve found a bug on 32-bits code path and left some additional comments.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:13658
&gt; +            m_jit.isEmpty(scratchGPR, resultGPR);

The name `isEmpty` looks strange to me. `HasIndexedProperty` returns true if index is present and false otherwise. Naming this function as `isEmpty` and placing result on `resultGPR` implies that the semantics of this operation is inverted, where it returns true if index is not present and false otherwise. Maybe it would be better name it as `isNotEmpty`.

&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:964
&gt; +    void isEmpty(GPRReg gpr, GPRReg dst)

This looks a bit strange. The JSVALUE64 version is testing if value is not empty, while 32-bits is checking if value is empty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633413</commentid>
    <comment_count>7</comment_count>
      <attachid>394334</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-03-24 12:14:40 -0700</bug_when>
    <thetext>Comment on attachment 394334
Patch

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

&gt;&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:964
&gt;&gt; +    void isEmpty(GPRReg gpr, GPRReg dst)
&gt; 
&gt; This looks a bit strange. The JSVALUE64 version is testing if value is not empty, while 32-bits is checking if value is empty.

agreed. Also, your 64-bit implementation can just test against itself for zero/nonzero</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633491</commentid>
    <comment_count>8</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-03-24 14:25:08 -0700</bug_when>
    <thetext>(In reply to EWS from comment #5)
&gt; Committed r258901: &lt;https://trac.webkit.org/changeset/258901&gt;
This seems to have broken 186 jsc tests on jsc-armv7 as indicated by ews (https://ews-build.webkit.org/#/builders/26/builds/12356). Can you please have a look?

This is slowing down jsc-armv7 EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633540</commentid>
    <comment_count>9</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-03-24 15:07:10 -0700</bug_when>
    <thetext>Uploaded a patch to address Caio and Saam&apos;s comments:
https://bugs.webkit.org/show_bug.cgi?id=209507</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394333</attachid>
            <date>2020-03-23 17:42:46 -0700</date>
            <delta_ts>2020-03-23 17:47:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209457-20200323174246.patch</filename>
            <type>text/plain</type>
            <size>19645</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
YzEwZWU4YTQ2YmVlOTEzZWIxMTI5ZTVhMzNiY2UwYjk3ZGRiYmQ0Li40YmI2OWUxNGJlZGRhZTUz
NWFhYzNkZWZjYjk3OTJhZjY1YWFlOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAyMC0wMy0yMyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBIYXNJbmRleGVkUHJvcGVydHkgc2hvdWxkIGtub3cgYWJvdXQgc2Fu
ZSBjaGFpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA5NDU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBtYWtlcyBpdCBzbyBIYXNJbmRleGVkUHJvcGVydHkgaXMgYXdhcmUgb2YKKyAg
ICAgICAgc2FuZSBjaGFpbi4gVGhpcyBpcyB1c2VmdWwgYmVjYXVzZSwgbW9zdCBvZiB0aGUgdGlt
ZSB3ZSBkbyBhbgorICAgICAgICBpbmRleGVkIGluIGl0IGlzIG9uIGFuIGFycmF5LiBJZiB0aGUg
YXJyYXkgaGFzIGEgc2FuZSBjaGFpbiAoaS5lLgorICAgICAgICBubyBpbmRleGVkIHByb3BlcnRp
ZXMgb24gaXQncyBwcm90b3R5cGVzIGFuZCBoYXMgdGhlIGRlZmF1bHQKKyAgICAgICAgcHJvdG90
eXBlIGNoYWluKSB0aGVuIHdlIGNhbiBqdXN0IHRlc3QgZm9yIHRoZSBpbmRleCBiZWluZyBhIGhv
bGUuCisKKyAgICAgICAgTm90ZSwgd2UgY291bGQgYWxzbyBqdXN0IGNvbnZlcnQgT09CIGluZGlj
ZXMgaW50byBmYWxzZSBidXQgdGhhdAorICAgICAgICBzaG91bGQgaGFwcGVuIGluIGFub3RoZXIg
cGF0Y2guCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDk0NTYKKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgor
ICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+
OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAg
KEpTQzo6REZHOjpGaXh1cFBoYXNlOjpzZXRTYW5lQ2hhaW5JZlBvc3NpYmxlKToKKyAgICAgICAg
KEpTQzo6REZHOjpGaXh1cFBoYXNlOjpjb252ZXJ0VG9IYXNJbmRleGVkUHJvcGVydHkpOgorICAg
ICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVIYXNJbmRl
eGVkUHJvcGVydHkpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlQW5kSnVt
cCk6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3Nl
bWJseUhlbHBlcnM6OmlzRW1wdHkpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5jcHA6Cisg
ICAgICAgIChKU0M6Ok9wdGlvbnM6OmlzQXZhaWxhYmxlKToKKwogMjAyMC0wMy0xOSAgQ2hhcmxp
ZSBUdXJuZXIgIDxjdHVybmVyQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4IG1hbnkgd2Fybmlu
Z3Mgd2l0aCBDbGFuZyA3LjAgb24gR1RLIHg4Ni02NCBpbiBEZWJ1Zy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aAppbmRleCBlOTU4MDBhZmYyNjc5NWE0MmQ5NDYzOTRjYmRlNTMwOTY4OGNkYzQ2Li4zMjhkZjll
ZTU3NmE4YzkyNGZjZDMwMTUwNjgwNmMyNGVjYzU4NTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBA
IC0zOTE4LDcgKzM5MTgsOSBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICBjYXNl
IEFycmF5OjpEb3VibGU6CiAgICAgICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6CiAgICAgICAg
IGNhc2UgQXJyYXk6OkFycmF5U3RvcmFnZTogewotICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBpZiAobW9kZS5pc0luQm91bmRzKCkgfHwgbW9kZS5pc1NhbmVDaGFpbigpKQorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgICAgIH0KICAg
ICAgICAgZGVmYXVsdDogewogICAgICAgICAgICAgY2xvYmJlcldvcmxkKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDViMzRlYzViZDg1MjRjMDNiMzlh
MWIzM2JhMmIyZjY0YjNmNTYzZTEuLmQxOTUyMmZlZDVlOGU1ZmFmYzVkOTUzZWM4MzIwZWU3ZDY3
ZjUyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0z
MjQsOCArMzI0LDcgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwg
Y29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgICAgICAgICBk
ZWYoSGVhcExvY2F0aW9uKEhhc0luZGV4ZWRQcm9wZXJ0eUxvYywgSW5kZXhlZEludDMyUHJvcGVy
dGllcywgZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCksIGdyYXBoLnZhckFyZ0NoaWxkKG5vZGUs
IDEpKSwgTGF6eU5vZGUobm9kZSkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHJlYWQoSGVhcCk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJy
YXk6OkRvdWJsZTogewpAQCAtMzM1LDggKzMzNCw3IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYg
Z3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1
CiAgICAgICAgICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihIYXNJbmRleGVkUHJvcGVydHlMb2Ms
IEluZGV4ZWREb3VibGVQcm9wZXJ0aWVzLCBncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKSwgZ3Jh
cGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcmVhZChIZWFwKTsKLSAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgICAg
ICAKICAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewpAQCAtMzQ2LDggKzM0NCw3IEBA
IHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5j
dG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgICAgICAgICAgZGVmKEhlYXBMb2NhdGlv
bihIYXNJbmRleGVkUHJvcGVydHlMb2MsIEluZGV4ZWRDb250aWd1b3VzUHJvcGVydGllcywgZ3Jh
cGgudmFyQXJnQ2hpbGQobm9kZSwgMCksIGdyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpKSwgTGF6
eU5vZGUobm9kZSkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHJlYWQoSGVhcCk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogCiAgICAgICAgIGNhc2UgQXJyYXk6OkFycmF5U3RvcmFnZTogewpA
QCAtMzU2LDE3ICszNTMsMTQgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSog
bm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgICAg
ICAgICByZWFkKEluZGV4ZWRBcnJheVN0b3JhZ2VQcm9wZXJ0aWVzKTsKICAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZWFkKEhlYXApOwotICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICBk
ZWZhdWx0OiB7Ci0gICAgICAgICAgICByZWFkKFdvcmxkKTsKLSAgICAgICAgICAgIHdyaXRlKEhl
YXApOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6IAor
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgcmVhZChXb3JsZCk7CisgICAgICAgIHdyaXRlKEhlYXApOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcAppbmRleCBlOTdkZTEwZjZmNGNkYzE1YmFlZmIxMGI3ZWM2MDYyODI3ODM1
OTU1Li43MGI4OWVkNzFkZjJkOTM5MDk3ODA3NDBjMjEwODU5YzU5MGIwZmU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTk1NywxOCArOTU3LDgg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBpZiAo
Y2FuRG9TYW5lQ2hhaW4pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2Vt
YW50aWMpOwotICAgICAgICAgICAgICAgICAgICAgICAgU3RydWN0dXJlKiBhcnJheVByb3RvdHlw
ZVN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+YXJyYXlQcm90b3R5cGUoKS0+c3RydWN0dXJlKHZt
KCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgU3RydWN0dXJlKiBvYmplY3RQcm90b3R5cGVT
dHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpLT5zdHJ1Y3R1cmUodm0o
KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXJyYXlQcm90b3R5cGVTdHJ1Y3R1cmUt
PnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SXNTdGlsbFZhbGlkKCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmJiBvYmplY3RQcm90b3R5cGVTdHJ1Y3R1cmUtPnRyYW5zaXRpb25XYXRjaHBv
aW50U2V0SXNTdGlsbFZhbGlkKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBnbG9i
YWxPYmplY3QtPmFycmF5UHJvdG90eXBlQ2hhaW5Jc1NhbmUoKSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fZ3JhcGgucmVnaXN0ZXJBbmRXYXRjaFN0cnVjdHVyZVRyYW5zaXRpb24o
YXJyYXlQcm90b3R5cGVTdHJ1Y3R1cmUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1f
Z3JhcGgucmVnaXN0ZXJBbmRXYXRjaFN0cnVjdHVyZVRyYW5zaXRpb24ob2JqZWN0UHJvdG90eXBl
U3RydWN0dXJlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5zZXRBcnJheU1v
ZGUoYXJyYXlNb2RlLndpdGhTcGVjdWxhdGlvbihBcnJheTo6U2FuZUNoYWluKSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGNhbkRvU2FuZUNoYWluKQorICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2Fu
ZUNoYWluSWZQb3NzaWJsZShub2RlKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgCkBAIC0yMDI2LDYgKzIwMTYsMTIgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgIGJsZXNzQXJyYXlPcGVyYXRpb24obV9ncmFwaC52YXJBcmdDaGlsZChu
b2RlLCAwKSwgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKSwgbV9ncmFwaC52YXJBcmdDaGls
ZChub2RlLCAyKSk7CiAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG1fZ3JhcGgudmFyQXJn
Q2hpbGQobm9kZSwgMCkpOwogICAgICAgICAgICAgZml4RWRnZTxJbnQzMlVzZT4obV9ncmFwaC52
YXJBcmdDaGlsZChub2RlLCAxKSk7CisKKyAgICAgICAgICAgIEFycmF5TW9kZSBhcnJheU1vZGUg
PSBub2RlLT5hcnJheU1vZGUoKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBPdXRPZkJvdW5kcyBz
aG91bGRuJ3QgcHJlY2x1ZGUgZ29pbmcgc2FuZSBjaGFpbiBiZWNhdXNlIE9PQiBpcyBqdXN0IGZh
bHNlIGFuZCBjYW5ub3QgaGF2ZSBlZmZlY3RzLgorICAgICAgICAgICAgLy8gU2VlOiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NDU2CisgICAgICAgICAgICBpZiAo
YXJyYXlNb2RlLmlzSlNBcnJheVdpdGhPcmlnaW5hbFN0cnVjdHVyZSgpICYmIGFycmF5TW9kZS5z
cGVjdWxhdGlvbigpID09IEFycmF5OjpJbkJvdW5kcykKKyAgICAgICAgICAgICAgICBzZXRTYW5l
Q2hhaW5JZlBvc3NpYmxlKG5vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBHZXREaXJlY3RQbmFtZTogewpAQCAtMzMzOSw2ICszMzM1LDIxIEBAIHByaXZh
dGU6CiAgICAgICAgICAgICBtX2luZGV4SW5CbG9jaywgU3BlY05vbmUsIEdldEluZGV4ZWRQcm9w
ZXJ0eVN0b3JhZ2UsIG9yaWdpbiwKICAgICAgICAgICAgIE9wSW5mbyhhcnJheU1vZGUuYXNXb3Jk
KCkpLCBFZGdlKGFycmF5LCBLbm93bkNlbGxVc2UpKTsKICAgICB9CisKKyAgICB2b2lkIHNldFNh
bmVDaGFpbklmUG9zc2libGUoTm9kZSogbm9kZSkKKyAgICB7CisgICAgICAgIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4u
c2VtYW50aWMpOworICAgICAgICBTdHJ1Y3R1cmUqIGFycmF5UHJvdG90eXBlU3RydWN0dXJlID0g
Z2xvYmFsT2JqZWN0LT5hcnJheVByb3RvdHlwZSgpLT5zdHJ1Y3R1cmUodm0oKSk7CisgICAgICAg
IFN0cnVjdHVyZSogb2JqZWN0UHJvdG90eXBlU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5vYmpl
Y3RQcm90b3R5cGUoKS0+c3RydWN0dXJlKHZtKCkpOworICAgICAgICBpZiAoYXJyYXlQcm90b3R5
cGVTdHJ1Y3R1cmUtPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SXNTdGlsbFZhbGlkKCkKKyAgICAg
ICAgICAgICYmIG9iamVjdFByb3RvdHlwZVN0cnVjdHVyZS0+dHJhbnNpdGlvbldhdGNocG9pbnRT
ZXRJc1N0aWxsVmFsaWQoKQorICAgICAgICAgICAgJiYgZ2xvYmFsT2JqZWN0LT5hcnJheVByb3Rv
dHlwZUNoYWluSXNTYW5lKCkpIHsKKyAgICAgICAgICAgIG1fZ3JhcGgucmVnaXN0ZXJBbmRXYXRj
aFN0cnVjdHVyZVRyYW5zaXRpb24oYXJyYXlQcm90b3R5cGVTdHJ1Y3R1cmUpOworICAgICAgICAg
ICAgbV9ncmFwaC5yZWdpc3RlckFuZFdhdGNoU3RydWN0dXJlVHJhbnNpdGlvbihvYmplY3RQcm90
b3R5cGVTdHJ1Y3R1cmUpOworICAgICAgICAgICAgbm9kZS0+c2V0QXJyYXlNb2RlKG5vZGUtPmFy
cmF5TW9kZSgpLndpdGhTcGVjdWxhdGlvbihBcnJheTo6U2FuZUNoYWluKSk7CisgICAgICAgICAg
ICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOworICAgICAgICB9CisgICAgfQog
ICAgIAogICAgIHZvaWQgYmxlc3NBcnJheU9wZXJhdGlvbihFZGdlIGJhc2UsIEVkZ2UgaW5kZXgs
IEVkZ2UmIHN0b3JhZ2VDaGlsZCkKICAgICB7CkBAIC0zNjkxLDcgKzM3MDIsNiBAQCBwcml2YXRl
OgogICAgIHZvaWQgY29udmVydFRvSGFzSW5kZXhlZFByb3BlcnR5KE5vZGUqIG5vZGUpCiAgICAg
ewogICAgICAgICBub2RlLT5zZXRPcChIYXNJbmRleGVkUHJvcGVydHkpOwotICAgICAgICBub2Rl
LT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOwogCiAgICAgICAgIHsKICAgICAgICAgICAg
IHVuc2lnbmVkIGZpcnN0Q2hpbGQgPSBtX2dyYXBoLm1fdmFyQXJnQ2hpbGRyZW4uc2l6ZSgpOwpA
QCAtMzY5OSw3ICszNzA5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fZ3JhcGgubV92YXJB
cmdDaGlsZHJlbi5hcHBlbmQobm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgbV9ncmFwaC5t
X3ZhckFyZ0NoaWxkcmVuLmFwcGVuZChub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBtX2dy
YXBoLm1fdmFyQXJnQ2hpbGRyZW4uYXBwZW5kKEVkZ2UoKSk7Ci0gICAgICAgICAgICBub2RlLT5t
ZXJnZUZsYWdzKE5vZGVIYXNWYXJBcmdzKTsKKyAgICAgICAgICAgIG5vZGUtPnNldEZsYWdzKGRl
ZmF1bHRGbGFncyhIYXNJbmRleGVkUHJvcGVydHkpKTsKICAgICAgICAgICAgIG5vZGUtPmNoaWxk
cmVuID0gQWRqYWNlbmN5TGlzdChBZGphY2VuY3lMaXN0OjpWYXJpYWJsZSwgZmlyc3RDaGlsZCwg
bnVtQ2hpbGRyZW4pOwogICAgICAgICB9CiAKQEAgLTM3MTIsNiArMzcyMiwxMSBAQCBwcml2YXRl
OgogICAgICAgICBub2RlLT5zZXRJbnRlcm5hbE1ldGhvZFR5cGUoUHJvcGVydHlTbG90OjpJbnRl
cm5hbE1ldGhvZFR5cGU6Okhhc1Byb3BlcnR5KTsKIAogICAgICAgICBibGVzc0FycmF5T3BlcmF0
aW9uKG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCksIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9k
ZSwgMSksIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMikpOworICAgICAgICBhdXRvIGFycmF5
TW9kZSA9IG5vZGUtPmFycmF5TW9kZSgpOworICAgICAgICAvLyBGSVhNRTogT3V0T2ZCb3VuZHMg
c2hvdWxkbid0IHByZWNsdWRlIGdvaW5nIHNhbmUgY2hhaW4gYmVjYXVzZSBPT0IgaXMganVzdCBm
YWxzZSBhbmQgY2Fubm90IGhhdmUgZWZmZWN0cy4KKyAgICAgICAgLy8gU2VlOiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NDU2CisgICAgICAgIGlmIChhcnJheU1v
ZGUuaXNKU0FycmF5V2l0aE9yaWdpbmFsU3RydWN0dXJlKCkgJiYgYXJyYXlNb2RlLnNwZWN1bGF0
aW9uKCkgPT0gQXJyYXk6OkluQm91bmRzKQorICAgICAgICAgICAgc2V0U2FuZUNoYWluSWZQb3Nz
aWJsZShub2RlKTsKIAogICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG1fZ3JhcGgudmFyQXJnQ2hp
bGQobm9kZSwgMCkpOwogICAgICAgICBmaXhFZGdlPEludDMyVXNlPihtX2dyYXBoLnZhckFyZ0No
aWxkKG5vZGUsIDEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRl
eCBlMjExZWE3N2Q4NTQxOTliYjg0NjNmYWVjMzdiZjVjNDFjNWY5N2U3Li4zZmVmNmIzODE4NTNk
ZDVlNzJjOThhNGYyOGI5MGJhZmY2YzZiZTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlVHlwZS5oCkBAIC00ODMsNyArNDgzLDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBERkcgewogICAgIFwKICAgICAvKiBGb3ItaW4gZW51bWVyYXRpb24gb3Bjb2RlcyAqL1wKICAg
ICBtYWNybyhHZXRFbnVtZXJhYmxlTGVuZ3RoLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3Vs
dEpTKSBcCi0gICAgbWFjcm8oSGFzSW5kZXhlZFByb3BlcnR5LCBOb2RlUmVzdWx0Qm9vbGVhbiB8
IE5vZGVIYXNWYXJBcmdzKSBcCisgICAgLyogTXVzdCBnZW5lcmF0ZSBiZWNhdXNlIG9mIFByb3hp
ZXMgb24gdGhlIHByb3RvdHlwZSBjaGFpbiAqLyBcCisgICAgbWFjcm8oSGFzSW5kZXhlZFByb3Bl
cnR5LCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlSGFzVmFyQXJn
cykgXAogICAgIG1hY3JvKEhhc1N0cnVjdHVyZVByb3BlcnR5LCBOb2RlUmVzdWx0Qm9vbGVhbikg
XAogICAgIG1hY3JvKEhhc0dlbmVyaWNQcm9wZXJ0eSwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAg
ICBtYWNybyhHZXREaXJlY3RQbmFtZSwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdz
IHwgTm9kZVJlc3VsdEpTKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCmluZGV4IDdkMDRhZDYxMGI2Y2YzNmJhZGMxYjNlODBlMzVmMWEwMTZk
OGJkODIuLmRkYjg4Njc3MTVjMGRhZGUyNzk4Y2FhNjQzNjk5ZTQ1OThhNzEzNDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0xMzU4
MCwxOCArMTM1ODAsMzEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUhhc0luZGV4ZWRQ
cm9wZXJ0eShOb2RlKiBub2RlKQogICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHNjcmF0Y2gu
Z3ByKCk7CiAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBtX2pp
dC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBpbmRleEdQUiwgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZUdQUiwgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xl
bmd0aCgpKSk7Ci0gICAgICAgIGlmIChtb2RlLmlzSW5Cb3VuZHMoKSkKKworICAgICAgICBpZiAo
bW9kZS5pc1NhbmVDaGFpbigpKSB7CisgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0z
MigwKSwgcmVzdWx0R1BSKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9IGlmIChtb2Rl
LmlzSW5Cb3VuZHMoKSkKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMs
IEpTVmFsdWVSZWdzKCksIG51bGxwdHIsIG91dE9mQm91bmRzKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChvdXRPZkJvdW5kcyk7CiAKICNpZiBVU0UoSlNWQUxV
RTY0KQogICAgICAgICBtX2ppdC5sb2FkNjQoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9y
YWdlR1BSLCBpbmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpLCBzY3JhdGNoR1BS
KTsKLSAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hJZkVtcHR5KHNjcmF0Y2hH
UFIpKTsKICNlbHNlCiAgICAgICAgIG1faml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QmFzZUlu
ZGV4KHN0b3JhZ2VHUFIsIGluZGV4R1BSLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgT0JK
RUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpLCBzY3JhdGNoR1BSKTsKLSAgICAg
ICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hJZkVtcHR5KHNjcmF0Y2hHUFIpKTsKICNl
bmRpZgorCisgICAgICAgIGlmIChtb2RlLmlzU2FuZUNoYWluKCkpIHsKKyAgICAgICAgICAgIG1f
aml0LmlzRW1wdHkoc2NyYXRjaEdQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaXNIb2xlID0gbV9qaXQu
YnJhbmNoSWZFbXB0eShzY3JhdGNoR1BSKTsKKyAgICAgICAgaWYgKCFtb2RlLmlzSW5Cb3VuZHMo
KSkKKyAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoaXNIb2xlKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhMb2FkRnJvbUhvbGUsIEpTVmFsdWVSZWdzKCks
IG51bGxwdHIsIGlzSG9sZSk7CiAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTMyKDEpLCBy
ZXN1bHRHUFIpOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC0xMzYwMywxMyArMTM2MTYsMjQg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0eShOb2RlKiBu
b2RlKQogICAgICAgICBHUFJSZWcgc3RvcmFnZUdQUiA9IHN0b3JhZ2UuZ3ByKCk7CiAKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBtX2ppdC5icmFuY2gzMihNYWNy
b0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBpbmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3Moc3RvcmFnZUdQUiwgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSk7CisKICAg
ICAgICAgaWYgKG1vZGUuaXNJbkJvdW5kcygpKQogICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVj
ayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwgb3V0T2ZCb3VuZHMpOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG91dE9mQm91bmRzKTsKIAog
ICAgICAgICBtX2ppdC5sb2FkRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFn
ZUdQUiwgaW5kZXhHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSwgc2NyYXRjaEZQUik7
Ci0gICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoSWZOYU4oc2NyYXRjaEZQUikp
OworCisgICAgICAgIGlmIChtb2RlLmlzU2FuZUNoYWluKCkpIHsKKyAgICAgICAgICAgIG1faml0
LmNvbXBhcmVEb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUVxdWFsQW5kT3JkZXJlZCwgc2Ny
YXRjaEZQUiwgc2NyYXRjaEZQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaXNIb2xlID0gbV9qaXQuYnJh
bmNoSWZOYU4oc2NyYXRjaEZQUik7CisgICAgICAgIGlmICghbW9kZS5pc0luQm91bmRzKCkpCisg
ICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGlzSG9sZSk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soTG9hZEZyb21Ib2xlLCBKU1ZhbHVlUmVncygpLCBudWxs
cHRyLCBpc0hvbGUpOwogICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMigxKSwgcmVzdWx0
R1BSKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMTM2MjksMTEgKzEzNjUzLDIwIEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHkoTm9kZSogbm9kZSkK
IAogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIG1faml0LmxvYWQ2NChNYWNyb0Fzc2VtYmxl
cjo6QmFzZUluZGV4KHN0b3JhZ2VHUFIsIGluZGV4R1BSLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNF
aWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOwotICAgICAg
ICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaElmRW1wdHkoc2NyYXRjaEdQUikpOwogI2Vs
c2UKICAgICAgICAgbV9qaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFn
ZUdQUiwgaW5kZXhHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6
OnZlY3Rvck9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykp
LCBzY3JhdGNoR1BSKTsKLSAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hJZkVt
cHR5KHNjcmF0Y2hHUFIpKTsKICNlbmRpZgorCisgICAgICAgIGlmIChtb2RlLmlzU2FuZUNoYWlu
KCkpIHsKKyAgICAgICAgICAgIG1faml0LmlzRW1wdHkoc2NyYXRjaEdQUiwgcmVzdWx0R1BSKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
Okp1bXAgaXNIb2xlID0gbV9qaXQuYnJhbmNoSWZFbXB0eShzY3JhdGNoR1BSKTsKKyAgICAgICAg
aWYgKCFtb2RlLmlzSW5Cb3VuZHMoKSB8fCBtb2RlLmlzU2FuZUNoYWluKCkpCisgICAgICAgICAg
ICBzbG93Q2FzZXMuYXBwZW5kKGlzSG9sZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNw
ZWN1bGF0aW9uQ2hlY2soTG9hZEZyb21Ib2xlLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBpc0hv
bGUpOwogICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMigxKSwgcmVzdWx0R1BSKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCmluZGV4IGU3NDdlZGZkYjlkNzhhNGZhOWI4OTZmNDQ4NTJhYzQ5NTU1MTIw
YTQuLjE4ZTQ4MDNiYzM3MDNlMTI2NjExY2EwMGMxZTViNzY4N2MxODhhZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTExNTg4LDYgKzEx
NTg4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9
IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsKICAgICAg
ICAgTFZhbHVlIGJhc2UgPSBsb3dDZWxsKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAwKSk7
CiAgICAgICAgIExWYWx1ZSBpbmRleCA9IGxvd0ludDMyKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9u
b2RlLCAxKSk7CisgICAgICAgIEFycmF5TW9kZSBtb2RlID0gbV9ub2RlLT5hcnJheU1vZGUoKTsK
IAogICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7CiAgICAgICAg
IGNhc2UgQXJyYXk6OkludDMyOgpAQCAtMTE1OTUsMTQgKzExNTk2LDE0IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICBMVmFsdWUgc3RvcmFnZSA9IGxvd1N0b3JhZ2UobV9ncmFwaC52YXJBcmdDaGls
ZChtX25vZGUsIDIpKTsKICAgICAgICAgICAgIExWYWx1ZSBpbnRlcm5hbE1ldGhvZFR5cGUgPSBt
X291dC5jb25zdEludDMyKHN0YXRpY19jYXN0PGludDMyX3Q+KG1fbm9kZS0+aW50ZXJuYWxNZXRo
b2RUeXBlKCkpKTsKIAotICAgICAgICAgICAgSW5kZXhlZEFic3RyYWN0SGVhcCYgaGVhcCA9IG1f
bm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpID09IEFycmF5OjpJbnQzMiA/CisgICAgICAgICAgICBJ
bmRleGVkQWJzdHJhY3RIZWFwJiBoZWFwID0gbW9kZS50eXBlKCkgPT0gQXJyYXk6OkludDMyID8K
ICAgICAgICAgICAgICAgICBtX2hlYXBzLmluZGV4ZWRJbnQzMlByb3BlcnRpZXMgOiBtX2hlYXBz
LmluZGV4ZWRDb250aWd1b3VzUHJvcGVydGllczsKIAogICAgICAgICAgICAgTEJhc2ljQmxvY2sg
c2xvd0Nhc2UgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29u
dGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxh
c3ROZXh0ID0gbnVsbHB0cjsKIAotICAgICAgICAgICAgaWYgKCFtX25vZGUtPmFycmF5TW9kZSgp
LmlzSW5Cb3VuZHMoKSkgeworICAgICAgICAgICAgaWYgKCFtb2RlLmlzSW5Cb3VuZHMoKSkgewog
ICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNoZWNrSG9sZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7
CiAgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgICAgICBtX291
dC5hYm92ZU9yRXF1YWwoCkBAIC0xMTYxNSw3ICsxMTYxNiwxMiBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgTFZhbHVlIGNoZWNrSG9sZVJlc3VsdFZhbHVlID0KICAgICAgICAgICAgICAgICBtX291
dC5ub3RaZXJvNjQobV9vdXQubG9hZDY0KGJhc2VJbmRleChoZWFwLCBzdG9yYWdlLCBpbmRleCwg
bV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDEpKSkpOwogICAgICAgICAgICAgVmFsdWVGcm9t
QmxvY2sgY2hlY2tIb2xlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKGNoZWNrSG9sZVJlc3VsdFZhbHVl
KTsKLSAgICAgICAgICAgIG1fb3V0LmJyYW5jaChjaGVja0hvbGVSZXN1bHRWYWx1ZSwgdXN1YWxs
eShjb250aW51YXRpb24pLCByYXJlbHkoc2xvd0Nhc2UpKTsKKyAgICAgICAgICAgIGlmIChtb2Rl
LmlzU2FuZUNoYWluKCkpCisgICAgICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24p
OworICAgICAgICAgICAgZWxzZSBpZiAoIW1vZGUuaXNJbkJvdW5kcygpKQorICAgICAgICAgICAg
ICAgIG1fb3V0LmJyYW5jaChjaGVja0hvbGVSZXN1bHRWYWx1ZSwgdXN1YWxseShjb250aW51YXRp
b24pLCByYXJlbHkoc2xvd0Nhc2UpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBzcGVjdWxhdGVBbmRKdW1wKGNvbnRpbnVhdGlvbiwgTG9hZEZyb21Ib2xlLCBub1ZhbHVlKCks
IG51bGxwdHIsIGNoZWNrSG9sZVJlc3VsdFZhbHVlKTsKIAogICAgICAgICAgICAgbV9vdXQuYXBw
ZW5kVG8oc2xvd0Nhc2UsIGNvbnRpbnVhdGlvbik7CiAgICAgICAgICAgICBWYWx1ZUZyb21CbG9j
ayBzbG93UmVzdWx0ID0gbV9vdXQuYW5jaG9yKApAQCAtMTE2NDksNyArMTE2NTUsMTIgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIExWYWx1ZSBkb3VibGVWYWx1ZSA9IG1fb3V0LmxvYWREb3VibGUo
YmFzZUluZGV4KGhlYXAsIHN0b3JhZ2UsIGluZGV4LCBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9k
ZSwgMSkpKTsKICAgICAgICAgICAgIExWYWx1ZSBjaGVja0hvbGVSZXN1bHRWYWx1ZSA9IG1fb3V0
LmRvdWJsZUVxdWFsKGRvdWJsZVZhbHVlLCBkb3VibGVWYWx1ZSk7CiAgICAgICAgICAgICBWYWx1
ZUZyb21CbG9jayBjaGVja0hvbGVSZXN1bHQgPSBtX291dC5hbmNob3IoY2hlY2tIb2xlUmVzdWx0
VmFsdWUpOwotICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGNoZWNrSG9sZVJlc3VsdFZhbHVlLCB1
c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJhcmVseShzbG93Q2FzZSkpOworICAgICAgICAgICAgaWYg
KG1vZGUuaXNTYW5lQ2hhaW4oKSkKKyAgICAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVh
dGlvbik7CisgICAgICAgICAgICBlbHNlIGlmICghbW9kZS5pc0luQm91bmRzKCkpCisgICAgICAg
ICAgICAgICAgbV9vdXQuYnJhbmNoKGNoZWNrSG9sZVJlc3VsdFZhbHVlLCB1c3VhbGx5KGNvbnRp
bnVhdGlvbiksIHJhcmVseShzbG93Q2FzZSkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHNwZWN1bGF0ZUFuZEp1bXAoY29udGludWF0aW9uLCBMb2FkRnJvbUhvbGUsIG5vVmFs
dWUoKSwgbnVsbHB0ciwgY2hlY2tIb2xlUmVzdWx0VmFsdWUpOwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93Q2FzZSwgY29udGludWF0aW9uKTsKICAgICAgICAg
ICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3IoCkBAIC0xMTY4Miw3
ICsxMTY5MywxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgTFZhbHVlIGNoZWNrSG9sZVJlc3Vs
dFZhbHVlID0KICAgICAgICAgICAgICAgICBtX291dC5ub3RaZXJvNjQobV9vdXQubG9hZDY0KGJh
c2VJbmRleChtX2hlYXBzLkFycmF5U3RvcmFnZV92ZWN0b3IsIHN0b3JhZ2UsIGluZGV4LCBtX2dy
YXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSkpKSk7CiAgICAgICAgICAgICBWYWx1ZUZyb21CbG9j
ayBjaGVja0hvbGVSZXN1bHQgPSBtX291dC5hbmNob3IoY2hlY2tIb2xlUmVzdWx0VmFsdWUpOwot
ICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGNoZWNrSG9sZVJlc3VsdFZhbHVlLCB1c3VhbGx5KGNv
bnRpbnVhdGlvbiksIHJhcmVseShzbG93Q2FzZSkpOworICAgICAgICAgICAgaWYgKG1vZGUuaXNT
YW5lQ2hhaW4oKSkKKyAgICAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7Cisg
ICAgICAgICAgICBlbHNlIGlmICghbW9kZS5pc0luQm91bmRzKCkpCisgICAgICAgICAgICAgICAg
bV9vdXQuYnJhbmNoKGNoZWNrSG9sZVJlc3VsdFZhbHVlLCB1c3VhbGx5KGNvbnRpbnVhdGlvbiks
IHJhcmVseShzbG93Q2FzZSkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNw
ZWN1bGF0ZUFuZEp1bXAoY29udGludWF0aW9uLCBMb2FkRnJvbUhvbGUsIG5vVmFsdWUoKSwgbnVs
bHB0ciwgY2hlY2tIb2xlUmVzdWx0VmFsdWUpOwogCiAgICAgICAgICAgICBtX291dC5hcHBlbmRU
byhzbG93Q2FzZSwgY29udGludWF0aW9uKTsKICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNs
b3dSZXN1bHQgPSBtX291dC5hbmNob3IoCkBAIC0xNjEyMSw2ICsxNjEzNywxMyBAQCBwcml2YXRl
OgogICAgIHsKICAgICAgICAgYXBwZW5kT1NSRXhpdChraW5kLCBsb3dWYWx1ZSwgcHJvZmlsZSwg
ZmFpbENvbmRpdGlvbiwgbV9vcmlnaW4pOwogICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
Li4uIEFyZ3M+CisgICAgdm9pZCBzcGVjdWxhdGVBbmRKdW1wKEIzOjpCYXNpY0Jsb2NrKiB0YXJn
ZXQsIEFyZ3MuLi4gYXJncykKKyAgICB7CisgICAgICAgIHNwZWN1bGF0ZShhcmdzLi4uKTsKKyAg
ICAgICAgbV9vdXQuanVtcCh0YXJnZXQpOworICAgIH0KICAgICAKICAgICB2b2lkIHRlcm1pbmF0
ZShFeGl0S2luZCBraW5kKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2Vt
Ymx5SGVscGVycy5oCmluZGV4IGUyN2E2ZTkxYjZiYjA5N2E1NzRiMDdhNmQ5OWU4NmE2ZWJiODZm
MTMuLmE5MjYyOTFmNWU3OTNmOTZkZjYzNmMyN2NlM2IxOTM0YTFiMTY4MWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtOTYxLDYgKzk2MSwxNSBA
QCBwdWJsaWM6CiAgICAgSnVtcCBicmFuY2hJZkZ1bmN0aW9uKEdQUlJlZyBjZWxsR1BSKSB7IHJl
dHVybiBicmFuY2hJZlR5cGUoY2VsbEdQUiwgSlNGdW5jdGlvblR5cGUpOyB9CiAgICAgSnVtcCBi
cmFuY2hJZk5vdEZ1bmN0aW9uKEdQUlJlZyBjZWxsR1BSKSB7IHJldHVybiBicmFuY2hJZk5vdFR5
cGUoY2VsbEdQUiwgSlNGdW5jdGlvblR5cGUpOyB9CiAgICAgCisgICAgdm9pZCBpc0VtcHR5KEdQ
UlJlZyBncHIsIEdQUlJlZyBkc3QpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAg
IHRlc3Q2NChOb25aZXJvLCBncHIsIFRydXN0ZWRJbW0zMigtMSksIGRzdCk7CisjZWxzZQorICAg
ICAgICBjb21wYXJlMzIoRXF1YWwsIGdwciwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFs
dWVUYWcpLCBkc3QpOworI2VuZGlmCisgICAgfQorCiAgICAgSnVtcCBicmFuY2hJZkVtcHR5KEdQ
UlJlZyBncHIpCiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394334</attachid>
            <date>2020-03-23 17:47:52 -0700</date>
            <delta_ts>2020-03-23 20:02:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209457-20200323174752.patch</filename>
            <type>text/plain</type>
            <size>19596</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
YzEwZWU4YTQ2YmVlOTEzZWIxMTI5ZTVhMzNiY2UwYjk3ZGRiYmQ0Li5kY2U1ODU5ZDE1NTlhY2Zi
ODJjZmZjMzA0MDBjN2ZhMjRjZWM4MDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAyMC0wMy0yMyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBIYXNJbmRleGVkUHJvcGVydHkgc2hvdWxkIGtub3cgYWJvdXQgc2Fu
ZSBjaGFpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA5NDU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBtYWtlcyBpdCBzbyBIYXNJbmRleGVkUHJvcGVydHkgaXMgYXdhcmUgb2YKKyAg
ICAgICAgc2FuZSBjaGFpbi4gVGhpcyBpcyB1c2VmdWwgYmVjYXVzZSwgbW9zdCBvZiB0aGUgdGlt
ZSB3ZSBkbyBhbgorICAgICAgICBpbmRleGVkIGluIGl0IGlzIG9uIGFuIGFycmF5LiBJZiB0aGUg
YXJyYXkgaGFzIGEgc2FuZSBjaGFpbiAoaS5lLgorICAgICAgICBubyBpbmRleGVkIHByb3BlcnRp
ZXMgb24gaXQncyBwcm90b3R5cGVzIGFuZCBoYXMgdGhlIGRlZmF1bHQKKyAgICAgICAgcHJvdG90
eXBlIGNoYWluKSB0aGVuIHdlIGNhbiBqdXN0IHRlc3QgZm9yIHRoZSBpbmRleCBiZWluZyBhIGhv
bGUuCisKKyAgICAgICAgTm90ZSwgd2UgY291bGQgYWxzbyBqdXN0IGNvbnZlcnQgT09CIGluZGlj
ZXMgaW50byBmYWxzZSBidXQgdGhhdAorICAgICAgICBzaG91bGQgaGFwcGVuIGluIGFub3RoZXIg
cGF0Y2guCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDk0NTYKKworICAgICAgICBJIGRpZG4ndCBhZGQgYW55IHRlc3RzIGJlY2F1c2UgaXQgdHVybnMg
b3V0IHdlIGFscmVhZHkgaGF2ZSBhIHRvbi4KKyAgICAgICAgSSBrbm93IHRoaXMgYmVjYXVzZSBJ
IGJyb2tlIG1vc3Qgb2YgdGhlbSByZXBlYXRlZGx5Li4uID4uPgorCisgICAgICAgICogZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJh
Y3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAg
ICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUp
OgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpG
aXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OnNl
dFNhbmVDaGFpbklmUG9zc2libGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmNv
bnZlcnRUb0hhc0luZGV4ZWRQcm9wZXJ0eSk6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0eSk6CisgICAgICAgICog
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OmNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHkpOgorICAgICAgICAoSlNDOjpGVEw6OkRG
Rzo6TG93ZXJERkdUb0IzOjpzcGVjdWxhdGVBbmRKdW1wKToKKyAgICAgICAgKiBqaXQvQXNzZW1i
bHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6aXNFbXB0eSk6CisK
IDIwMjAtMDMtMTkgIENoYXJsaWUgVHVybmVyICA8Y3R1cm5lckBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIEZpeCBtYW55IHdhcm5pbmdzIHdpdGggQ2xhbmcgNy4wIG9uIEdUSyB4ODYtNjQgaW4gRGVi
dWcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggZTk1ODAwYWZmMjY3OTVhNDJkOTQ2Mzk0Y2JkZTUz
MDk2ODhjZGM0Ni4uZWRjNDgzNDIxMjgxMzBkMGU4M2VmMjMwN2IzYTNlOWUwYWRiNWE2YyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaApAQCAtMzkxOCw3ICszOTE4LDkgQEAgYm9vbCBBYnN0cmFjdEludGVy
cHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJl
ckxpbWkKICAgICAgICAgY2FzZSBBcnJheTo6RG91YmxlOgogICAgICAgICBjYXNlIEFycmF5OjpD
b250aWd1b3VzOgogICAgICAgICBjYXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6IHsKLSAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgaWYgKG1vZGUuaXNJbkJvdW5kcygpKQorICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgICAgIH0KICAgICAg
ICAgZGVmYXVsdDogewogICAgICAgICAgICAgY2xvYmJlcldvcmxkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDViMzRlYzViZDg1MjRjMDNiMzlhMWIz
M2JhMmIyZjY0YjNmNTYzZTEuLmQxOTUyMmZlZDVlOGU1ZmFmYzVkOTUzZWM4MzIwZWU3ZDY3ZjUy
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0zMjQs
OCArMzI0LDcgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29u
c3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgICAgICAgICBkZWYo
SGVhcExvY2F0aW9uKEhhc0luZGV4ZWRQcm9wZXJ0eUxvYywgSW5kZXhlZEludDMyUHJvcGVydGll
cywgZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCksIGdyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEp
KSwgTGF6eU5vZGUobm9kZSkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIHJlYWQoSGVhcCk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJyYXk6
OkRvdWJsZTogewpAQCAtMzM1LDggKzMzNCw3IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3Jh
cGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAg
ICAgICAgICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihIYXNJbmRleGVkUHJvcGVydHlMb2MsIElu
ZGV4ZWREb3VibGVQcm9wZXJ0aWVzLCBncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKSwgZ3JhcGgu
dmFyQXJnQ2hpbGQobm9kZSwgMSkpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcmVhZChIZWFwKTsKLSAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgICAgICAK
ICAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewpAQCAtMzQ2LDggKzM0NCw3IEBAIHZv
aWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9y
JiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihI
YXNJbmRleGVkUHJvcGVydHlMb2MsIEluZGV4ZWRDb250aWd1b3VzUHJvcGVydGllcywgZ3JhcGgu
dmFyQXJnQ2hpbGQobm9kZSwgMCksIGdyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpKSwgTGF6eU5v
ZGUobm9kZSkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHJlYWQoSGVhcCk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogCiAgICAgICAgIGNhc2UgQXJyYXk6OkFycmF5U3RvcmFnZTogewpAQCAt
MzU2LDE3ICszNTMsMTQgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9k
ZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgICAgICAg
ICByZWFkKEluZGV4ZWRBcnJheVN0b3JhZ2VQcm9wZXJ0aWVzKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZWFkKEhlYXApOwotICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICBkZWZh
dWx0OiB7Ci0gICAgICAgICAgICByZWFkKFdvcmxkKTsKLSAgICAgICAgICAgIHdyaXRlKEhlYXAp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6IAorICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgcmVhZChXb3JsZCk7CisgICAgICAgIHdyaXRlKEhlYXApOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcAppbmRleCBlOTdkZTEwZjZmNGNkYzE1YmFlZmIxMGI3ZWM2MDYyODI3ODM1OTU1
Li43MGI4OWVkNzFkZjJkOTM5MDk3ODA3NDBjMjEwODU5YzU5MGIwZmU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTk1NywxOCArOTU3LDggQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBpZiAoY2Fu
RG9TYW5lQ2hhaW4pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50
aWMpOwotICAgICAgICAgICAgICAgICAgICAgICAgU3RydWN0dXJlKiBhcnJheVByb3RvdHlwZVN0
cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+YXJyYXlQcm90b3R5cGUoKS0+c3RydWN0dXJlKHZtKCkp
OwotICAgICAgICAgICAgICAgICAgICAgICAgU3RydWN0dXJlKiBvYmplY3RQcm90b3R5cGVTdHJ1
Y3R1cmUgPSBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpLT5zdHJ1Y3R1cmUodm0oKSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXJyYXlQcm90b3R5cGVTdHJ1Y3R1cmUtPnRy
YW5zaXRpb25XYXRjaHBvaW50U2V0SXNTdGlsbFZhbGlkKCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmJiBvYmplY3RQcm90b3R5cGVTdHJ1Y3R1cmUtPnRyYW5zaXRpb25XYXRjaHBvaW50
U2V0SXNTdGlsbFZhbGlkKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBnbG9iYWxP
YmplY3QtPmFycmF5UHJvdG90eXBlQ2hhaW5Jc1NhbmUoKSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZ3JhcGgucmVnaXN0ZXJBbmRXYXRjaFN0cnVjdHVyZVRyYW5zaXRpb24oYXJy
YXlQcm90b3R5cGVTdHJ1Y3R1cmUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3Jh
cGgucmVnaXN0ZXJBbmRXYXRjaFN0cnVjdHVyZVRyYW5zaXRpb24ob2JqZWN0UHJvdG90eXBlU3Ry
dWN0dXJlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5zZXRBcnJheU1vZGUo
YXJyYXlNb2RlLndpdGhTcGVjdWxhdGlvbihBcnJheTo6U2FuZUNoYWluKSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGNhbkRvU2FuZUNoYWluKQorICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2FuZUNo
YWluSWZQb3NzaWJsZShub2RlKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgCkBAIC0yMDI2LDYgKzIwMTYsMTIgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIGJsZXNzQXJyYXlPcGVyYXRpb24obV9ncmFwaC52YXJBcmdDaGlsZChub2Rl
LCAwKSwgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKSwgbV9ncmFwaC52YXJBcmdDaGlsZChu
b2RlLCAyKSk7CiAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG1fZ3JhcGgudmFyQXJnQ2hp
bGQobm9kZSwgMCkpOwogICAgICAgICAgICAgZml4RWRnZTxJbnQzMlVzZT4obV9ncmFwaC52YXJB
cmdDaGlsZChub2RlLCAxKSk7CisKKyAgICAgICAgICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBu
b2RlLT5hcnJheU1vZGUoKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBPdXRPZkJvdW5kcyBzaG91
bGRuJ3QgcHJlY2x1ZGUgZ29pbmcgc2FuZSBjaGFpbiBiZWNhdXNlIE9PQiBpcyBqdXN0IGZhbHNl
IGFuZCBjYW5ub3QgaGF2ZSBlZmZlY3RzLgorICAgICAgICAgICAgLy8gU2VlOiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NDU2CisgICAgICAgICAgICBpZiAoYXJy
YXlNb2RlLmlzSlNBcnJheVdpdGhPcmlnaW5hbFN0cnVjdHVyZSgpICYmIGFycmF5TW9kZS5zcGVj
dWxhdGlvbigpID09IEFycmF5OjpJbkJvdW5kcykKKyAgICAgICAgICAgICAgICBzZXRTYW5lQ2hh
aW5JZlBvc3NpYmxlKG5vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBHZXREaXJlY3RQbmFtZTogewpAQCAtMzMzOSw2ICszMzM1LDIxIEBAIHByaXZhdGU6
CiAgICAgICAgICAgICBtX2luZGV4SW5CbG9jaywgU3BlY05vbmUsIEdldEluZGV4ZWRQcm9wZXJ0
eVN0b3JhZ2UsIG9yaWdpbiwKICAgICAgICAgICAgIE9wSW5mbyhhcnJheU1vZGUuYXNXb3JkKCkp
LCBFZGdlKGFycmF5LCBLbm93bkNlbGxVc2UpKTsKICAgICB9CisKKyAgICB2b2lkIHNldFNhbmVD
aGFpbklmUG9zc2libGUoTm9kZSogbm9kZSkKKyAgICB7CisgICAgICAgIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2Vt
YW50aWMpOworICAgICAgICBTdHJ1Y3R1cmUqIGFycmF5UHJvdG90eXBlU3RydWN0dXJlID0gZ2xv
YmFsT2JqZWN0LT5hcnJheVByb3RvdHlwZSgpLT5zdHJ1Y3R1cmUodm0oKSk7CisgICAgICAgIFN0
cnVjdHVyZSogb2JqZWN0UHJvdG90eXBlU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5vYmplY3RQ
cm90b3R5cGUoKS0+c3RydWN0dXJlKHZtKCkpOworICAgICAgICBpZiAoYXJyYXlQcm90b3R5cGVT
dHJ1Y3R1cmUtPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SXNTdGlsbFZhbGlkKCkKKyAgICAgICAg
ICAgICYmIG9iamVjdFByb3RvdHlwZVN0cnVjdHVyZS0+dHJhbnNpdGlvbldhdGNocG9pbnRTZXRJ
c1N0aWxsVmFsaWQoKQorICAgICAgICAgICAgJiYgZ2xvYmFsT2JqZWN0LT5hcnJheVByb3RvdHlw
ZUNoYWluSXNTYW5lKCkpIHsKKyAgICAgICAgICAgIG1fZ3JhcGgucmVnaXN0ZXJBbmRXYXRjaFN0
cnVjdHVyZVRyYW5zaXRpb24oYXJyYXlQcm90b3R5cGVTdHJ1Y3R1cmUpOworICAgICAgICAgICAg
bV9ncmFwaC5yZWdpc3RlckFuZFdhdGNoU3RydWN0dXJlVHJhbnNpdGlvbihvYmplY3RQcm90b3R5
cGVTdHJ1Y3R1cmUpOworICAgICAgICAgICAgbm9kZS0+c2V0QXJyYXlNb2RlKG5vZGUtPmFycmF5
TW9kZSgpLndpdGhTcGVjdWxhdGlvbihBcnJheTo6U2FuZUNoYWluKSk7CisgICAgICAgICAgICBu
b2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOworICAgICAgICB9CisgICAgfQogICAg
IAogICAgIHZvaWQgYmxlc3NBcnJheU9wZXJhdGlvbihFZGdlIGJhc2UsIEVkZ2UgaW5kZXgsIEVk
Z2UmIHN0b3JhZ2VDaGlsZCkKICAgICB7CkBAIC0zNjkxLDcgKzM3MDIsNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgY29udmVydFRvSGFzSW5kZXhlZFByb3BlcnR5KE5vZGUqIG5vZGUpCiAgICAgewog
ICAgICAgICBub2RlLT5zZXRPcChIYXNJbmRleGVkUHJvcGVydHkpOwotICAgICAgICBub2RlLT5j
bGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOwogCiAgICAgICAgIHsKICAgICAgICAgICAgIHVu
c2lnbmVkIGZpcnN0Q2hpbGQgPSBtX2dyYXBoLm1fdmFyQXJnQ2hpbGRyZW4uc2l6ZSgpOwpAQCAt
MzY5OSw3ICszNzA5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fZ3JhcGgubV92YXJBcmdD
aGlsZHJlbi5hcHBlbmQobm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgbV9ncmFwaC5tX3Zh
ckFyZ0NoaWxkcmVuLmFwcGVuZChub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBtX2dyYXBo
Lm1fdmFyQXJnQ2hpbGRyZW4uYXBwZW5kKEVkZ2UoKSk7Ci0gICAgICAgICAgICBub2RlLT5tZXJn
ZUZsYWdzKE5vZGVIYXNWYXJBcmdzKTsKKyAgICAgICAgICAgIG5vZGUtPnNldEZsYWdzKGRlZmF1
bHRGbGFncyhIYXNJbmRleGVkUHJvcGVydHkpKTsKICAgICAgICAgICAgIG5vZGUtPmNoaWxkcmVu
ID0gQWRqYWNlbmN5TGlzdChBZGphY2VuY3lMaXN0OjpWYXJpYWJsZSwgZmlyc3RDaGlsZCwgbnVt
Q2hpbGRyZW4pOwogICAgICAgICB9CiAKQEAgLTM3MTIsNiArMzcyMiwxMSBAQCBwcml2YXRlOgog
ICAgICAgICBub2RlLT5zZXRJbnRlcm5hbE1ldGhvZFR5cGUoUHJvcGVydHlTbG90OjpJbnRlcm5h
bE1ldGhvZFR5cGU6Okhhc1Byb3BlcnR5KTsKIAogICAgICAgICBibGVzc0FycmF5T3BlcmF0aW9u
KG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCksIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwg
MSksIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMikpOworICAgICAgICBhdXRvIGFycmF5TW9k
ZSA9IG5vZGUtPmFycmF5TW9kZSgpOworICAgICAgICAvLyBGSVhNRTogT3V0T2ZCb3VuZHMgc2hv
dWxkbid0IHByZWNsdWRlIGdvaW5nIHNhbmUgY2hhaW4gYmVjYXVzZSBPT0IgaXMganVzdCBmYWxz
ZSBhbmQgY2Fubm90IGhhdmUgZWZmZWN0cy4KKyAgICAgICAgLy8gU2VlOiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NDU2CisgICAgICAgIGlmIChhcnJheU1vZGUu
aXNKU0FycmF5V2l0aE9yaWdpbmFsU3RydWN0dXJlKCkgJiYgYXJyYXlNb2RlLnNwZWN1bGF0aW9u
KCkgPT0gQXJyYXk6OkluQm91bmRzKQorICAgICAgICAgICAgc2V0U2FuZUNoYWluSWZQb3NzaWJs
ZShub2RlKTsKIAogICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG1fZ3JhcGgudmFyQXJnQ2hpbGQo
bm9kZSwgMCkpOwogICAgICAgICBmaXhFZGdlPEludDMyVXNlPihtX2dyYXBoLnZhckFyZ0NoaWxk
KG5vZGUsIDEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCBl
MjExZWE3N2Q4NTQxOTliYjg0NjNmYWVjMzdiZjVjNDFjNWY5N2U3Li4zZmVmNmIzODE4NTNkZDVl
NzJjOThhNGYyOGI5MGJhZmY2YzZiZTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlVHlwZS5oCkBAIC00ODMsNyArNDgzLDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBE
RkcgewogICAgIFwKICAgICAvKiBGb3ItaW4gZW51bWVyYXRpb24gb3Bjb2RlcyAqL1wKICAgICBt
YWNybyhHZXRFbnVtZXJhYmxlTGVuZ3RoLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEpT
KSBcCi0gICAgbWFjcm8oSGFzSW5kZXhlZFByb3BlcnR5LCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5v
ZGVIYXNWYXJBcmdzKSBcCisgICAgLyogTXVzdCBnZW5lcmF0ZSBiZWNhdXNlIG9mIFByb3hpZXMg
b24gdGhlIHByb3RvdHlwZSBjaGFpbiAqLyBcCisgICAgbWFjcm8oSGFzSW5kZXhlZFByb3BlcnR5
LCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlSGFzVmFyQXJncykg
XAogICAgIG1hY3JvKEhhc1N0cnVjdHVyZVByb3BlcnR5LCBOb2RlUmVzdWx0Qm9vbGVhbikgXAog
ICAgIG1hY3JvKEhhc0dlbmVyaWNQcm9wZXJ0eSwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBt
YWNybyhHZXREaXJlY3RQbmFtZSwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzIHwg
Tm9kZVJlc3VsdEpTKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCmluZGV4IDdkMDRhZDYxMGI2Y2YzNmJhZGMxYjNlODBlMzVmMWEwMTZkOGJk
ODIuLmMyNTYyNTJhM2MyOGFkMDYyODFkZWMyNjA1ZTFjZWZhY2ZhZWE0YzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0xMzU4MCw2
ICsxMzU4MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVIYXNJbmRleGVkUHJvcGVy
dHkoTm9kZSogbm9kZSkKICAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLmdwcigp
OwogCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG91dE9mQm91bmRzID0gbV9qaXQuYnJh
bmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgaW5kZXhHUFIsIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKHN0b3JhZ2VHUFIsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgo
KSkpOworCiAgICAgICAgIGlmIChtb2RlLmlzSW5Cb3VuZHMoKSkKICAgICAgICAgICAgIHNwZWN1
bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIG51bGxwdHIsIG91dE9mQm91
bmRzKTsKICAgICAgICAgZWxzZQpAQCAtMTM1ODcsMTEgKzEzNTg4LDIwIEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHkoTm9kZSogbm9kZSkKIAogI2lmIFVT
RShKU1ZBTFVFNjQpCiAgICAgICAgIG1faml0LmxvYWQ2NChNYWNyb0Fzc2VtYmxlcjo6QmFzZUlu
ZGV4KHN0b3JhZ2VHUFIsIGluZGV4R1BSLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCksIHNj
cmF0Y2hHUFIpOwotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaElmRW1wdHko
c2NyYXRjaEdQUikpOwogI2Vsc2UKICAgICAgICAgbV9qaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVy
OjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgaW5kZXhHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0Vp
Z2h0LCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSksIHNjcmF0Y2hHUFIp
OwotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaElmRW1wdHkoc2NyYXRjaEdQ
UikpOwogI2VuZGlmCisKKyAgICAgICAgaWYgKG1vZGUuaXNTYW5lQ2hhaW4oKSkgeworICAgICAg
ICAgICAgbV9qaXQuaXNFbXB0eShzY3JhdGNoR1BSLCByZXN1bHRHUFIpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBpc0hvbGUg
PSBtX2ppdC5icmFuY2hJZkVtcHR5KHNjcmF0Y2hHUFIpOworICAgICAgICBpZiAoIW1vZGUuaXNJ
bkJvdW5kcygpKQorICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChpc0hvbGUpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKExvYWRGcm9tSG9sZSwgSlNWYWx1
ZVJlZ3MoKSwgbnVsbHB0ciwgaXNIb2xlKTsKICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1t
MzIoMSksIHJlc3VsdEdQUik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTEzNjAzLDEzICsx
MzYxMywyNCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5
KE5vZGUqIG5vZGUpCiAgICAgICAgIEdQUlJlZyBzdG9yYWdlR1BSID0gc3RvcmFnZS5ncHIoKTsK
IAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBvdXRPZkJvdW5kcyA9IG1faml0LmJyYW5j
aDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIGluZGV4R1BSLCBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhzdG9yYWdlR1BSLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkp
KTsKKwogICAgICAgICBpZiAobW9kZS5pc0luQm91bmRzKCkpCiAgICAgICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBvdXRPZkJvdW5k
cyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQob3V0T2ZCb3Vu
ZHMpOwogCiAgICAgICAgIG1faml0LmxvYWREb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRl
eChzdG9yYWdlR1BSLCBpbmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpLCBzY3Jh
dGNoRlBSKTsKLSAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hJZk5hTihzY3Jh
dGNoRlBSKSk7CisKKyAgICAgICAgaWYgKG1vZGUuaXNTYW5lQ2hhaW4oKSkgeworICAgICAgICAg
ICAgbV9qaXQuY29tcGFyZURvdWJsZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlRXF1YWxBbmRPcmRl
cmVkLCBzY3JhdGNoRlBSLCBzY3JhdGNoRlBSLCByZXN1bHRHUFIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBpc0hvbGUgPSBt
X2ppdC5icmFuY2hJZk5hTihzY3JhdGNoRlBSKTsKKyAgICAgICAgaWYgKCFtb2RlLmlzSW5Cb3Vu
ZHMoKSkKKyAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoaXNIb2xlKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhMb2FkRnJvbUhvbGUsIEpTVmFsdWVSZWdz
KCksIG51bGxwdHIsIGlzSG9sZSk7CiAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTMyKDEp
LCByZXN1bHRHUFIpOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC0xMzYyOSwxMSArMTM2NTAs
MjAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0eShOb2Rl
KiBub2RlKQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgbV9qaXQubG9hZDY0KE1hY3Jv
QXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgaW5kZXhHUFIsIE1hY3JvQXNzZW1ibGVy
OjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSwgc2NyYXRjaEdQUik7
Ci0gICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoSWZFbXB0eShzY3JhdGNoR1BS
KSk7CiAjZWxzZQogICAgICAgICBtX2ppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRl
eChzdG9yYWdlR1BSLCBpbmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5
U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0Jp
dHMudGFnKSksIHNjcmF0Y2hHUFIpOwotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJy
YW5jaElmRW1wdHkoc2NyYXRjaEdQUikpOwogI2VuZGlmCisKKyAgICAgICAgaWYgKG1vZGUuaXNT
YW5lQ2hhaW4oKSkgeworICAgICAgICAgICAgbV9qaXQuaXNFbXB0eShzY3JhdGNoR1BSLCByZXN1
bHRHUFIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBpc0hvbGUgPSBtX2ppdC5icmFuY2hJZkVtcHR5KHNjcmF0Y2hHUFIpOwor
ICAgICAgICBpZiAoIW1vZGUuaXNJbkJvdW5kcygpIHx8IG1vZGUuaXNTYW5lQ2hhaW4oKSkKKyAg
ICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoaXNIb2xlKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgc3BlY3VsYXRpb25DaGVjayhMb2FkRnJvbUhvbGUsIEpTVmFsdWVSZWdzKCksIG51bGxw
dHIsIGlzSG9sZSk7CiAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTMyKDEpLCByZXN1bHRH
UFIpOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggZTc0N2VkZmRiOWQ3OGE0ZmE5Yjg5NmY0NDg1MmFj
NDk1NTUxMjBhNC4uMThlNDgwM2JjMzcwM2UxMjY2MTFjYTAwYzFlNWI3Njg3YzE4OGFmZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTE1
ODgsNiArMTE1ODgsNyBAQCBwcml2YXRlOgogICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9ub2RlLT5vcmlnaW4uc2VtYW50aWMp
OwogICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ncmFwaC52YXJBcmdDaGlsZChtX25v
ZGUsIDApKTsKICAgICAgICAgTFZhbHVlIGluZGV4ID0gbG93SW50MzIobV9ncmFwaC52YXJBcmdD
aGlsZChtX25vZGUsIDEpKTsKKyAgICAgICAgQXJyYXlNb2RlIG1vZGUgPSBtX25vZGUtPmFycmF5
TW9kZSgpOwogCiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5hcnJheU1vZGUoKS50eXBlKCkpIHsK
ICAgICAgICAgY2FzZSBBcnJheTo6SW50MzI6CkBAIC0xMTU5NSwxNCArMTE1OTYsMTQgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIExWYWx1ZSBzdG9yYWdlID0gbG93U3RvcmFnZShtX2dyYXBoLnZh
ckFyZ0NoaWxkKG1fbm9kZSwgMikpOwogICAgICAgICAgICAgTFZhbHVlIGludGVybmFsTWV0aG9k
VHlwZSA9IG1fb3V0LmNvbnN0SW50MzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4obV9ub2RlLT5pbnRl
cm5hbE1ldGhvZFR5cGUoKSkpOwogCi0gICAgICAgICAgICBJbmRleGVkQWJzdHJhY3RIZWFwJiBo
ZWFwID0gbV9ub2RlLT5hcnJheU1vZGUoKS50eXBlKCkgPT0gQXJyYXk6OkludDMyID8KKyAgICAg
ICAgICAgIEluZGV4ZWRBYnN0cmFjdEhlYXAmIGhlYXAgPSBtb2RlLnR5cGUoKSA9PSBBcnJheTo6
SW50MzIgPwogICAgICAgICAgICAgICAgIG1faGVhcHMuaW5kZXhlZEludDMyUHJvcGVydGllcyA6
IG1faGVhcHMuaW5kZXhlZENvbnRpZ3VvdXNQcm9wZXJ0aWVzOwogCiAgICAgICAgICAgICBMQmFz
aWNCbG9jayBzbG93Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNC
bG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgTEJhc2lj
QmxvY2sgbGFzdE5leHQgPSBudWxscHRyOwogCi0gICAgICAgICAgICBpZiAoIW1fbm9kZS0+YXJy
YXlNb2RlKCkuaXNJbkJvdW5kcygpKSB7CisgICAgICAgICAgICBpZiAoIW1vZGUuaXNJbkJvdW5k
cygpKSB7CiAgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgY2hlY2tIb2xlID0gbV9vdXQubmV3
QmxvY2soKTsKICAgICAgICAgICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICAgICAg
ICAgIG1fb3V0LmFib3ZlT3JFcXVhbCgKQEAgLTExNjE1LDcgKzExNjE2LDEyIEBAIHByaXZhdGU6
CiAgICAgICAgICAgICBMVmFsdWUgY2hlY2tIb2xlUmVzdWx0VmFsdWUgPQogICAgICAgICAgICAg
ICAgIG1fb3V0Lm5vdFplcm82NChtX291dC5sb2FkNjQoYmFzZUluZGV4KGhlYXAsIHN0b3JhZ2Us
IGluZGV4LCBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSkpKSk7CiAgICAgICAgICAgICBW
YWx1ZUZyb21CbG9jayBjaGVja0hvbGVSZXN1bHQgPSBtX291dC5hbmNob3IoY2hlY2tIb2xlUmVz
dWx0VmFsdWUpOwotICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGNoZWNrSG9sZVJlc3VsdFZhbHVl
LCB1c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJhcmVseShzbG93Q2FzZSkpOworICAgICAgICAgICAg
aWYgKG1vZGUuaXNTYW5lQ2hhaW4oKSkKKyAgICAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRp
bnVhdGlvbik7CisgICAgICAgICAgICBlbHNlIGlmICghbW9kZS5pc0luQm91bmRzKCkpCisgICAg
ICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGNoZWNrSG9sZVJlc3VsdFZhbHVlLCB1c3VhbGx5KGNv
bnRpbnVhdGlvbiksIHJhcmVseShzbG93Q2FzZSkpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHNwZWN1bGF0ZUFuZEp1bXAoY29udGludWF0aW9uLCBMb2FkRnJvbUhvbGUsIG5v
VmFsdWUoKSwgbnVsbHB0ciwgY2hlY2tIb2xlUmVzdWx0VmFsdWUpOwogCiAgICAgICAgICAgICBt
X291dC5hcHBlbmRUbyhzbG93Q2FzZSwgY29udGludWF0aW9uKTsKICAgICAgICAgICAgIFZhbHVl
RnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3IoCkBAIC0xMTY0OSw3ICsxMTY1NSwx
MiBAQCBwcml2YXRlOgogICAgICAgICAgICAgTFZhbHVlIGRvdWJsZVZhbHVlID0gbV9vdXQubG9h
ZERvdWJsZShiYXNlSW5kZXgoaGVhcCwgc3RvcmFnZSwgaW5kZXgsIG1fZ3JhcGgudmFyQXJnQ2hp
bGQobV9ub2RlLCAxKSkpOwogICAgICAgICAgICAgTFZhbHVlIGNoZWNrSG9sZVJlc3VsdFZhbHVl
ID0gbV9vdXQuZG91YmxlRXF1YWwoZG91YmxlVmFsdWUsIGRvdWJsZVZhbHVlKTsKICAgICAgICAg
ICAgIFZhbHVlRnJvbUJsb2NrIGNoZWNrSG9sZVJlc3VsdCA9IG1fb3V0LmFuY2hvcihjaGVja0hv
bGVSZXN1bHRWYWx1ZSk7Ci0gICAgICAgICAgICBtX291dC5icmFuY2goY2hlY2tIb2xlUmVzdWx0
VmFsdWUsIHVzdWFsbHkoY29udGludWF0aW9uKSwgcmFyZWx5KHNsb3dDYXNlKSk7CisgICAgICAg
ICAgICBpZiAobW9kZS5pc1NhbmVDaGFpbigpKQorICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAo
Y29udGludWF0aW9uKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKCFtb2RlLmlzSW5Cb3VuZHMoKSkK
KyAgICAgICAgICAgICAgICBtX291dC5icmFuY2goY2hlY2tIb2xlUmVzdWx0VmFsdWUsIHVzdWFs
bHkoY29udGludWF0aW9uKSwgcmFyZWx5KHNsb3dDYXNlKSk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgc3BlY3VsYXRlQW5kSnVtcChjb250aW51YXRpb24sIExvYWRGcm9tSG9s
ZSwgbm9WYWx1ZSgpLCBudWxscHRyLCBjaGVja0hvbGVSZXN1bHRWYWx1ZSk7CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNsb3dDYXNlLCBjb250aW51YXRpb24pOwog
ICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFuY2hvcigKQEAg
LTExNjgyLDcgKzExNjkzLDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBMVmFsdWUgY2hlY2tI
b2xlUmVzdWx0VmFsdWUgPQogICAgICAgICAgICAgICAgIG1fb3V0Lm5vdFplcm82NChtX291dC5s
b2FkNjQoYmFzZUluZGV4KG1faGVhcHMuQXJyYXlTdG9yYWdlX3ZlY3Rvciwgc3RvcmFnZSwgaW5k
ZXgsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxKSkpKTsKICAgICAgICAgICAgIFZhbHVl
RnJvbUJsb2NrIGNoZWNrSG9sZVJlc3VsdCA9IG1fb3V0LmFuY2hvcihjaGVja0hvbGVSZXN1bHRW
YWx1ZSk7Ci0gICAgICAgICAgICBtX291dC5icmFuY2goY2hlY2tIb2xlUmVzdWx0VmFsdWUsIHVz
dWFsbHkoY29udGludWF0aW9uKSwgcmFyZWx5KHNsb3dDYXNlKSk7CisgICAgICAgICAgICBpZiAo
bW9kZS5pc1NhbmVDaGFpbigpKQorICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0
aW9uKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKCFtb2RlLmlzSW5Cb3VuZHMoKSkKKyAgICAgICAg
ICAgICAgICBtX291dC5icmFuY2goY2hlY2tIb2xlUmVzdWx0VmFsdWUsIHVzdWFsbHkoY29udGlu
dWF0aW9uKSwgcmFyZWx5KHNsb3dDYXNlKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgc3BlY3VsYXRlQW5kSnVtcChjb250aW51YXRpb24sIExvYWRGcm9tSG9sZSwgbm9WYWx1
ZSgpLCBudWxscHRyLCBjaGVja0hvbGVSZXN1bHRWYWx1ZSk7CiAKICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKHNsb3dDYXNlLCBjb250aW51YXRpb24pOwogICAgICAgICAgICAgVmFsdWVGcm9t
QmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFuY2hvcigKQEAgLTE2MTIxLDYgKzE2MTM3LDEzIEBA
IHByaXZhdGU6CiAgICAgewogICAgICAgICBhcHBlbmRPU1JFeGl0KGtpbmQsIGxvd1ZhbHVlLCBw
cm9maWxlLCBmYWlsQ29uZGl0aW9uLCBtX29yaWdpbik7CiAgICAgfQorCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUuLi4gQXJncz4KKyAgICB2b2lkIHNwZWN1bGF0ZUFuZEp1bXAoQjM6OkJhc2ljQmxv
Y2sqIHRhcmdldCwgQXJncy4uLiBhcmdzKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRlKGFyZ3Mu
Li4pOworICAgICAgICBtX291dC5qdW1wKHRhcmdldCk7CisgICAgfQogICAgIAogICAgIHZvaWQg
dGVybWluYXRlKEV4aXRLaW5kIGtpbmQpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggZTI3YTZlOTFiNmJiMDk3YTU3NGIwN2E2ZDk5ZTg2
YTZlYmI4NmYxMy4uYTkyNjI5MWY1ZTc5M2Y5NmRmNjM2YzI3Y2UzYjE5MzRhMWIxNjgxYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC05NjEsNiAr
OTYxLDE1IEBAIHB1YmxpYzoKICAgICBKdW1wIGJyYW5jaElmRnVuY3Rpb24oR1BSUmVnIGNlbGxH
UFIpIHsgcmV0dXJuIGJyYW5jaElmVHlwZShjZWxsR1BSLCBKU0Z1bmN0aW9uVHlwZSk7IH0KICAg
ICBKdW1wIGJyYW5jaElmTm90RnVuY3Rpb24oR1BSUmVnIGNlbGxHUFIpIHsgcmV0dXJuIGJyYW5j
aElmTm90VHlwZShjZWxsR1BSLCBKU0Z1bmN0aW9uVHlwZSk7IH0KICAgICAKKyAgICB2b2lkIGlz
RW1wdHkoR1BSUmVnIGdwciwgR1BSUmVnIGRzdCkKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkK
KyAgICAgICAgdGVzdDY0KE5vblplcm8sIGdwciwgVHJ1c3RlZEltbTMyKC0xKSwgZHN0KTsKKyNl
bHNlCisgICAgICAgIGNvbXBhcmUzMihFcXVhbCwgZ3ByLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
RW1wdHlWYWx1ZVRhZyksIGRzdCk7CisjZW5kaWYKKyAgICB9CisKICAgICBKdW1wIGJyYW5jaElm
RW1wdHkoR1BSUmVnIGdwcikKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>