<?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>210870</bug_id>
          
          <creation_ts>2020-04-22 12:12:03 -0700</creation_ts>
          <short_desc>[JSC] branchIfBigInt32 can use BigInt32Mask and remove branchIfNumber filter</short_desc>
          <delta_ts>2020-04-22 20:12:20 -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>
          
          
          <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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1644422</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-22 12:12:03 -0700</bug_when>
    <thetext>[JSC] branchIfBigInt32 can use BigInt32Mask and remove branchIfNumber filter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644424</commentid>
    <comment_count>1</comment_count>
      <attachid>397232</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-22 12:15:01 -0700</bug_when>
    <thetext>Created attachment 397232
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644434</commentid>
    <comment_count>2</comment_count>
      <attachid>397232</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-04-22 12:36:20 -0700</bug_when>
    <thetext>Comment on attachment 397232
Patch

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

&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:938
&gt; +        and64(TrustedImm32(JSValue::BigInt32Mask), tempGPR);

It cannot be TrustedImm32, since it is a 64 bit mask. It has to be materialized one way or another.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644437</commentid>
    <comment_count>3</comment_count>
      <attachid>397238</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-22 12:38:33 -0700</bug_when>
    <thetext>Created attachment 397238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644440</commentid>
    <comment_count>4</comment_count>
      <attachid>397232</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-22 12:40:06 -0700</bug_when>
    <thetext>Comment on attachment 397232
Patch

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

&gt;&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:938
&gt;&gt; +        and64(TrustedImm32(JSValue::BigInt32Mask), tempGPR);
&gt; 
&gt; It cannot be TrustedImm32, since it is a 64 bit mask. It has to be materialized one way or another.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644456</commentid>
    <comment_count>5</comment_count>
      <attachid>397244</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-22 13:13:52 -0700</bug_when>
    <thetext>Created attachment 397244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644460</commentid>
    <comment_count>6</comment_count>
      <attachid>397244</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-22 13:23:07 -0700</bug_when>
    <thetext>Comment on attachment 397244
Patch

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

&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:934
&gt; +    Jump branchIfBigInt32(GPRReg gpr, GPRReg tempGPR)

I would extend it further by using number-tag-register later.

if (mode == HaveTagRegisters) {
move(GPRInfo::numberTagRegister, tempGPR);
add64(TrustedImm32(JSValue::BigInt32Tag), tempGPR);
and64(gpr, tempGPR);
return branch64(Equal, tempGPR, TrustedImm32(JSValue::BigInt32Tag));
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644463</commentid>
    <comment_count>7</comment_count>
      <attachid>397244</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-22 13:26:38 -0700</bug_when>
    <thetext>Comment on attachment 397244
Patch

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

&gt;&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:934
&gt;&gt; +    Jump branchIfBigInt32(GPRReg gpr, GPRReg tempGPR)
&gt; 
&gt; I would extend it further by using number-tag-register later.
&gt; 
&gt; if (mode == HaveTagRegisters) {
&gt; move(GPRInfo::numberTagRegister, tempGPR);
&gt; add64(TrustedImm32(JSValue::BigInt32Tag), tempGPR);
&gt; and64(gpr, tempGPR);
&gt; return branch64(Equal, tempGPR, TrustedImm32(JSValue::BigInt32Tag));
&gt; }

Or further,

if (mode == HaveTagRegisters) {
    add64(TrustedImm32(JSValue::BigInt32Tag), GPRInfo::numberTagRegister, tempGPR);
    and64(gpr, tempGPR);
    return branch64(Equal, tempGPR, TrustedImm32(JSValue::BigInt32Tag));
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644465</commentid>
    <comment_count>8</comment_count>
      <attachid>397244</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-22 13:27:35 -0700</bug_when>
    <thetext>Comment on attachment 397244
Patch

I&apos;ll do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644471</commentid>
    <comment_count>9</comment_count>
      <attachid>397244</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-04-22 13:31:29 -0700</bug_when>
    <thetext>Comment on attachment 397244
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:934
&gt;&gt;&gt; +    Jump branchIfBigInt32(GPRReg gpr, GPRReg tempGPR)
&gt;&gt; 
&gt;&gt; I would extend it further by using number-tag-register later.
&gt;&gt; 
&gt;&gt; if (mode == HaveTagRegisters) {
&gt;&gt; move(GPRInfo::numberTagRegister, tempGPR);
&gt;&gt; add64(TrustedImm32(JSValue::BigInt32Tag), tempGPR);
&gt;&gt; and64(gpr, tempGPR);
&gt;&gt; return branch64(Equal, tempGPR, TrustedImm32(JSValue::BigInt32Tag));
&gt;&gt; }
&gt; 
&gt; Or further,
&gt; 
&gt; if (mode == HaveTagRegisters) {
&gt;     add64(TrustedImm32(JSValue::BigInt32Tag), GPRInfo::numberTagRegister, tempGPR);
&gt;     and64(gpr, tempGPR);
&gt;     return branch64(Equal, tempGPR, TrustedImm32(JSValue::BigInt32Tag));
&gt; }

Let&apos;s also static assert that this produce the same value in C++</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644480</commentid>
    <comment_count>10</comment_count>
      <attachid>397255</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-22 13:56:56 -0700</bug_when>
    <thetext>Created attachment 397255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644492</commentid>
    <comment_count>11</comment_count>
      <attachid>397259</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-22 14:09:32 -0700</bug_when>
    <thetext>Created attachment 397259
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644525</commentid>
    <comment_count>12</comment_count>
      <attachid>397271</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-22 15:07:24 -0700</bug_when>
    <thetext>Created attachment 397271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644642</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-22 20:11:08 -0700</bug_when>
    <thetext>Committed r260551: &lt;https://trac.webkit.org/changeset/260551&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644644</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-22 20:12:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/62228618&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397232</attachid>
            <date>2020-04-22 12:15:01 -0700</date>
            <delta_ts>2020-04-22 12:38:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210870-20200422121500.patch</filename>
            <type>text/plain</type>
            <size>18006</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NWM1NWMzNjdiMzE5MjU2YzhmNzJhYTUxMTE5ZmM2Y2FmOGFhYzA2Li5mMzAyZWRjZjc5MTIyZmNi
N2Q5YWRhMTBlNDllYWVlNWM5YjJjOGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAyMC0wNC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIGJyYW5jaElmQmlnSW50MzIgY2FuIHVzZSBCaWdJbnQzMk1hc2sg
YW5kIHJlbW92ZSBicmFuY2hJZk51bWJlciBmaWx0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ5IHVzaW5nIEJpZ0ludDMyTWFzaywgd2UgY2FuIGRl
dGVjdCBCaWdJbnQzMiB3aXRob3V0IGZpbHRlcmluZyBOdW1iZXJzLiBJbiB0aGlzIHBhdGNoLAor
CisgICAgICAgIDEuIFJlbW92ZSBicmFuY2hJZkJpZ0ludDMyS25vd25Ob3ROdW1iZXIgYW5kIGJy
YW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlci4gQW5kIGFsd2F5cyB1c2UgYnJhbmNoQmln
SW50MzIgYW5kIGJyYW5jaE5vdEJpZ0ludDMyIGluc3RlYWQuCisgICAgICAgIDIuIFJlbW92ZSBi
cmFuY2hJZk51bWJlciB0eXBlIGZpbHRlcmluZyBpbiBERkcuCisgICAgICAgIDMuIFVzZSBCaWdJ
bnQzMk1hc2sgYmFzZWQgc2NoZW1lIGluIEZUTC4KKworICAgICAgICAqIGJ5dGVjb2RlL0FyaXRo
UHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTxCaXRmaWVsZFR5cGU+Ojpl
bWl0T2JzZXJ2ZVJlc3VsdCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQmlnSW50
MzIpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpG
VEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlVG9OdW1lcmljKToKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNvbXBhcmVTdHJpY3RFcSk6CisgICAgICAg
IChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVJc0JpZ0ludCk6CisgICAgICAg
IChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmJvb2xpZnkpOgorICAgICAgICAoSlNDOjpG
VEw6OkRGRzo6TG93ZXJERkdUb0IzOjpidWlsZFR5cGVPZik6CisgICAgICAgIChKU0M6OkZUTDo6
REZHOjpMb3dlckRGR1RvQjM6Omxvd0JpZ0ludDMyKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9CMzo6aXNCaWdJbnQzMik6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmlzTm90QmlnSW50MzIpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0IzOjppc05vdEFueUJpZ0ludCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OnNwZWN1bGF0ZUJpZ0ludDMyKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6c3BlY3VsYXRlQW55QmlnSW50KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6aXNCaWdJbnQzMktub3duTm90Q2VsbCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmlzQmlnSW50MzJLbm93bk5vdE51bWJlcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmlzTm90QmlnSW50
MzJLbm93bk5vdE51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmlzTm90QW55QmlnSW50S25vd25Ob3ROdW1iZXIpOiBEZWxldGVkLgorICAgICAg
ICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBl
cnM6OmVtaXRDb252ZXJ0VmFsdWVUb0Jvb2xlYW4pOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhl
bHBlcnM6OmJyYW5jaElmVmFsdWUpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoK
KyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZkJpZ0ludDMyKToKKyAgICAg
ICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZk5vdEJpZ0ludDMyKToKKyAgICAgICAg
KEpTQzo6QXNzZW1ibHlIZWxwZXJzOjplbWl0VHlwZU9mKToKKyAgICAgICAgKEpTQzo6QXNzZW1i
bHlIZWxwZXJzOjpicmFuY2hJZkJpZ0ludDMyS25vd25Ob3ROdW1iZXIpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51
bWJlcik6IERlbGV0ZWQuCisKIDIwMjAtMDQtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBKU0JpZ0ludCBpbmMgb3BlcmF0aW9uIGRvZXMgbm90
IHByb2R1Y2UgcmlnaHQgSGVhcEJpZ0ludCB6ZXJvCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwCmluZGV4IDg1ZWM3MjgzMmYzMmMyNjNkN2M1Nzg2
NWVjMmIxOWU5OTIzMGYxOTIuLjEzYTBjZWExOTAxMWQzOWFlODkzYzY5MjU1YTVlNWFlODg4MmU4
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2Zp
bGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUu
Y3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgQXJpdGhQcm9maWxlPEJpdGZpZWxkVHlwZT46OmVt
aXRPYnNlcnZlUmVzdWx0KENDYWxsSGVscGVycyYgaml0LCBKU1ZhbHVlUmVnCiAgICAgbm90RG91
YmxlLmxpbmsoJmppdCk7CiAKICNpZiBVU0UoQklHSU5UMzIpCi0gICAgQ0NhbGxIZWxwZXJzOjpK
dW1wIG5vdEJpZ0ludDMyID0gaml0LmJyYW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlcihy
ZWdzLCB0ZW1wR1BSKTsKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm90QmlnSW50MzIgPSBqaXQu
YnJhbmNoSWZOb3RCaWdJbnQzMihyZWdzLCB0ZW1wR1BSKTsKICAgICBlbWl0U2V0QmlnSW50MzIo
aml0KTsKICAgICBkb25lLmFwcGVuZChqaXQuanVtcCgpKTsKICAgICBub3RCaWdJbnQzMi5saW5r
KCZqaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAKaW5kZXggNGNhNzg3N2M3OWFjNGMwZTQ1MTNkZTBlODBiOTZiNjBhZTI3NWVmZS4u
Mzc4ODNkMzhhNmJjMGM5ZWUxMzdjZGY5MTgyNDA0NmZlOTk5MTM3YSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0xNDY5LDgg
KzE0NjksNyBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVCaWdJbnQzMihF
ZGdlIGVkZ2UpCiAgICAgICAgIGlmICh0eXBlICYgflNwZWNCaWdJbnQzMikgewogICAgICAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBmYWlsdXJlQ2FzZXM7CiAgICAgICAgICAgICBHUFJS
ZWcgdGVtcEdQUiA9IGFsbG9jYXRlKCk7Ci0gICAgICAgICAgICBmYWlsdXJlQ2FzZXMuYXBwZW5k
KG1faml0LmJyYW5jaElmTnVtYmVyKGdwcikpOwotICAgICAgICAgICAgZmFpbHVyZUNhc2VzLmFw
cGVuZChtX2ppdC5icmFuY2hJZk5vdEJpZ0ludDMyS25vd25Ob3ROdW1iZXIoZ3ByLCB0ZW1wR1BS
KSk7CisgICAgICAgICAgICBmYWlsdXJlQ2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaElmTm90Qmln
SW50MzIoZ3ByLCB0ZW1wR1BSKSk7CiAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5
cGUsIEpTVmFsdWVSZWdzKGdwciksIGVkZ2UsIGZhaWx1cmVDYXNlcyk7CiAgICAgICAgICAgICB1
bmxvY2sodGVtcEdQUik7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCAzMjA1MTFhZTAyNzE0Mjg1N2Q0NGEyNTA3YjQyNjNk
Yjg5ZjU3YTI2Li5lYWI1ZjZmMmM0MzM5MTBiMmVkZTlkZDgzOGU0OGM1M2I4MmE4ZGNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC03NTU0
LDcgKzc1NTQsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAgLy8gbm90TnVt
YmVyIGNhc2UuCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVu
ZFRvKG5vdE51bWJlciwgY29udGludWF0aW9uKTsKICNpZiBVU0UoQklHSU5UMzIpCi0gICAgICAg
ICAgICBtX291dC5icmFuY2goaXNCaWdJbnQzMktub3duTm90TnVtYmVyKHZhbHVlLCBwcm92ZW5U
eXBlKG1fbm9kZS0+Y2hpbGQxKCkpKSwgdW5zdXJlKGNvbnRpbnVhdGlvbiksIHVuc3VyZShub3RC
aWdJbnQzMikpOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlzQmlnSW50MzIodmFsdWUsIHBy
b3ZlblR5cGUobV9ub2RlLT5jaGlsZDEoKSkpLCB1bnN1cmUoY29udGludWF0aW9uKSwgdW5zdXJl
KG5vdEJpZ0ludDMyKSk7CiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhub3RCaWdJbnQzMik7
CiAjZW5kaWYKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0NlbGwodmFsdWUsIHByb3ZlblR5
cGUobV9ub2RlLT5jaGlsZDEoKSkpLCB1bnN1cmUoaXNDZWxsUGF0aCksIHVuc3VyZShzbG93UGF0
aCkpOwpAQCAtODcxOSw5ICs4NzE5LDYgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIHJpZ2h0SXNOb3RCaWdJbnQzMiA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAg
ICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwog
Ci0gICAgICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUobGVmdCksIG1fbm9kZS0+
Y2hpbGQxKCksIH5TcGVjRnVsbE51bWJlciwgaXNOdW1iZXIobGVmdCkpOwotICAgICAgICAgICAg
RlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKHJpZ2h0KSwgbV9ub2RlLT5jaGlsZDIoKSwgflNw
ZWNGdWxsTnVtYmVyLCBpc051bWJlcihyaWdodCkpOwotCiAgICAgICAgICAgICAvLyBJbnNlcnRz
IGEgY2hlY2sgdGhhdCBhIHZhbHVlIGlzIGEgSGVhcEJpZ0ludCwgYXNzdW1pbmcgb25seSB0aGF0
IHdlIGtub3cgaXQgaXMgbm90IGEgQmlnSW50MzIKICAgICAgICAgICAgIGF1dG8gY2hlY2tJc0hl
YXBCaWdJbnQgPSBbJl0oTFZhbHVlIGxvd1ZhbHVlLCBFZGdlIGhpZ2hWYWx1ZSkgewogICAgICAg
ICAgICAgICAgIGlmIChtX2ludGVycHJldGVyLm5lZWRzVHlwZUNoZWNrKGhpZ2hWYWx1ZSwgU3Bl
Y0hlYXBCaWdJbnQpKSB7CkBAIC04NzMxLDEwICs4NzI4LDEwIEBAIGNsYXNzIExvd2VyREZHVG9C
MyB7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfTsKIAotICAgICAgICAgICAgbV9v
dXQuYnJhbmNoKGlzQmlnSW50MzJLbm93bk5vdE51bWJlcihsZWZ0LCBwcm92ZW5UeXBlKG1fbm9k
ZS0+Y2hpbGQxKCkpKSwgdW5zdXJlKGxlZnRJc0JpZ0ludDMyKSwgdW5zdXJlKGxlZnRJc05vdEJp
Z0ludDMyKSk7CisgICAgICAgICAgICBtX291dC5icmFuY2goaXNCaWdJbnQzMihsZWZ0LCBwcm92
ZW5UeXBlKG1fbm9kZS0+Y2hpbGQxKCkpKSwgdW5zdXJlKGxlZnRJc0JpZ0ludDMyKSwgdW5zdXJl
KGxlZnRJc05vdEJpZ0ludDMyKSk7CiAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0
ID0gbV9vdXQuYXBwZW5kVG8obGVmdElzQmlnSW50MzIsIGJvdGhBcmVCaWdJbnQzMik7Ci0gICAg
ICAgICAgICBtX291dC5icmFuY2goaXNCaWdJbnQzMktub3duTm90TnVtYmVyKHJpZ2h0LCBwcm92
ZW5UeXBlKG1fbm9kZS0+Y2hpbGQyKCkpKSwgdW5zdXJlKGJvdGhBcmVCaWdJbnQzMiksIHVuc3Vy
ZShvbmx5TGVmdElzQmlnSW50MzIpKTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0JpZ0lu
dDMyKHJpZ2h0LCBwcm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQyKCkpKSwgdW5zdXJlKGJvdGhBcmVC
aWdJbnQzMiksIHVuc3VyZShvbmx5TGVmdElzQmlnSW50MzIpKTsKIAogICAgICAgICAgICAgbV9v
dXQuYXBwZW5kVG8oYm90aEFyZUJpZ0ludDMyLCBvbmx5TGVmdElzQmlnSW50MzIpOwogICAgICAg
ICAgICAgVmFsdWVGcm9tQmxvY2sgcmVzdWx0Qm90aEFyZUJpZ0ludDMyID0gbV9vdXQuYW5jaG9y
KG1fb3V0LmVxdWFsKGxlZnQsIHJpZ2h0KSk7CkBAIC04NzU1LDcgKzg3NTIsNyBAQCBjbGFzcyBM
b3dlckRGR1RvQjMgewogICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwogCiAg
ICAgICAgICAgICBtX291dC5hcHBlbmRUbyhsZWZ0SXNIZWFwQmlnSW50LCByaWdodElzQmlnSW50
MzIpOwotICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlzQmlnSW50MzJLbm93bk5vdE51bWJlcihy
aWdodCwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMigpKSksIHVuc3VyZShyaWdodElzQmlnSW50
MzIpLCB1bnN1cmUocmlnaHRJc05vdEJpZ0ludDMyKSk7CisgICAgICAgICAgICBtX291dC5icmFu
Y2goaXNCaWdJbnQzMihyaWdodCwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMigpKSksIHVuc3Vy
ZShyaWdodElzQmlnSW50MzIpLCB1bnN1cmUocmlnaHRJc05vdEJpZ0ludDMyKSk7CiAKICAgICAg
ICAgICAgIG1fb3V0LmFwcGVuZFRvKHJpZ2h0SXNCaWdJbnQzMiwgcmlnaHRJc05vdEJpZ0ludDMy
KTsKICAgICAgICAgICAgIExWYWx1ZSB1bmJveGVkUmlnaHQgPSB1bmJveEJpZ0ludDMyKHJpZ2h0
KTsKQEAgLTEwOTI4LDcgKzEwOTI1LDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKIAogICAgICAg
ICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGlzTm90Q2VsbENhc2UsIGlz
Q2VsbENhc2UpOwogICAgICAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIGZpbHRlciB0aGUgcHJvdmVu
VHlwZSB0byBpbmNsdWRlIHRoZSBmYWN0IHRoYXQgd2Uga25vdyB3ZSBhcmUgbm90IGRlYWxpbmcg
d2l0aCBhIGNlbGwKLSAgICAgICAgVmFsdWVGcm9tQmxvY2sgbm90Q2VsbFJlc3VsdCA9IG1fb3V0
LmFuY2hvcihpc0JpZ0ludDMyS25vd25Ob3RDZWxsKHZhbHVlLCBwcm92ZW5UeXBlKG1fbm9kZS0+
Y2hpbGQxKCkpKSk7CisgICAgICAgIFZhbHVlRnJvbUJsb2NrIG5vdENlbGxSZXN1bHQgPSBtX291
dC5hbmNob3IoaXNCaWdJbnQzMih2YWx1ZSwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMSgpKSkp
OwogICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CiAKICAgICAgICAgbV9vdXQuYXBw
ZW5kVG8oaXNDZWxsQ2FzZSwgY29udGludWF0aW9uKTsKQEAgLTE1NDcxLDcgKzE1NDY4LDcgQEAg
Y2xhc3MgTG93ZXJERkdUb0IzIHsKICNpZiBVU0UoQklHSU5UMzIpCiAgICAgICAgICAgICBtX291
dC5hcHBlbmRUbyhub3REb3VibGVDYXNlLCBiaWdJbnQzMkNhc2UpOwogICAgICAgICAgICAgbV9v
dXQuYnJhbmNoKAotICAgICAgICAgICAgICAgIGlzQmlnSW50MzJLbm93bk5vdE51bWJlcih2YWx1
ZSwgcHJvdmVuVHlwZShlZGdlKSAmIH5TcGVjQ2VsbCksCisgICAgICAgICAgICAgICAgaXNCaWdJ
bnQzMih2YWx1ZSwgcHJvdmVuVHlwZShlZGdlKSAmIH5TcGVjQ2VsbCksCiAgICAgICAgICAgICAg
ICAgdW5zdXJlKGJpZ0ludDMyQ2FzZSksIHVuc3VyZShub3RCaWdJbnQzMkNhc2UpKTsKIAogICAg
ICAgICAgICAgbV9vdXQuYXBwZW5kVG8oYmlnSW50MzJDYXNlLCBub3RCaWdJbnQzMkNhc2UpOwpA
QCAtMTYxOTcsNyArMTYxOTQsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogCiAjaWYgVVNFKEJJ
R0lOVDMyKQogICAgICAgICBtX291dC5hcHBlbmRUbyhub3ROdW1iZXJDYXNlLCBub3RCaWdJbnQz
MkNhc2UpOwotICAgICAgICBtX291dC5icmFuY2goaXNCaWdJbnQzMktub3duTm90TnVtYmVyKHZh
bHVlLCBwcm92ZW5UeXBlKGNoaWxkKSAmIH5TcGVjQ2VsbCksIHVuc3VyZShiaWdJbnRDYXNlKSwg
dW5zdXJlKG5vdEJpZ0ludDMyQ2FzZSkpOworICAgICAgICBtX291dC5icmFuY2goaXNCaWdJbnQz
Mih2YWx1ZSwgcHJvdmVuVHlwZShjaGlsZCkgJiB+U3BlY0NlbGwpLCB1bnN1cmUoYmlnSW50Q2Fz
ZSksIHVuc3VyZShub3RCaWdJbnQzMkNhc2UpKTsKIAogICAgICAgICBtX291dC5hcHBlbmRUbyhu
b3RCaWdJbnQzMkNhc2UsIG5vdE51bGxDYXNlKTsKICNlbHNlCkBAIC0xNjkxNyw4ICsxNjkxNCw3
IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIExvd2VyZWROb2RlVmFsdWUgdmFsdWUg
PSBtX2pzVmFsdWVWYWx1ZXMuZ2V0KGVkZ2Uubm9kZSgpKTsKICAgICAgICAgaWYgKGlzVmFsaWQo
dmFsdWUpKSB7CiAgICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gdmFsdWUudmFsdWUoKTsKLSAg
ICAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShyZXN1bHQpLCBlZGdlLCB+U3Bl
Y0Z1bGxOdW1iZXIsIGlzTnVtYmVyKHJlc3VsdCkpOwotICAgICAgICAgICAgRlRMX1RZUEVfQ0hF
Q0soanNWYWx1ZVZhbHVlKHJlc3VsdCksIGVkZ2UsIFNwZWNCaWdJbnQzMiwgaXNOb3RCaWdJbnQz
Mktub3duTm90TnVtYmVyKHJlc3VsdCkpOworICAgICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNW
YWx1ZVZhbHVlKHJlc3VsdCksIGVkZ2UsIFNwZWNCaWdJbnQzMiwgaXNOb3RCaWdJbnQzMihyZXN1
bHQpKTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KIApAQCAtMTcxMTUs
MjMgKzE3MTExLDE3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgfQogCiAjaWYgVVNFKEJJ
R0lOVDMyKQotICAgIExWYWx1ZSBpc0JpZ0ludDMyS25vd25Ob3RDZWxsKExWYWx1ZSBqc1ZhbHVl
LCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCisgICAgTFZhbHVlIGlzQmlnSW50
MzIoTFZhbHVlIGpzVmFsdWUsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKICAg
ICB7CiAgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlLCBTcGVj
QmlnSW50MzIpKQogICAgICAgICAgICAgcmV0dXJuIHByb3ZlbjsKICAgICAgICAgcmV0dXJuIG1f
b3V0LmVxdWFsKG1fb3V0LmJpdEFuZChqc1ZhbHVlLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6
OkJpZ0ludDMyTWFzaykpLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSk7
CiAgICAgfQotICAgIExWYWx1ZSBpc0JpZ0ludDMyS25vd25Ob3ROdW1iZXIoTFZhbHVlIGpzVmFs
dWUsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKLSAgICB7Ci0gICAgICAgIGlm
IChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlLCBTcGVjQmlnSW50MzIpKQotICAg
ICAgICAgICAgcmV0dXJuIHByb3ZlbjsKLSAgICAgICAgcmV0dXJuIG1fb3V0LmVxdWFsKG1fb3V0
LmJpdEFuZChqc1ZhbHVlLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSks
IG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6QmlnSW50MzJUYWcpKTsKLSAgICB9Ci0gICAgTFZh
bHVlIGlzTm90QmlnSW50MzJLbm93bk5vdE51bWJlcihMVmFsdWUganNWYWx1ZSwgU3BlY3VsYXRl
ZFR5cGUgdHlwZSA9IFNwZWNGdWxsVG9wKQorICAgIExWYWx1ZSBpc05vdEJpZ0ludDMyKExWYWx1
ZSBqc1ZhbHVlLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCiAgICAgewogICAg
ICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSwgflNwZWNCaWdJbnQz
MikpCiAgICAgICAgICAgICByZXR1cm4gcHJvdmVuOwotICAgICAgICByZXR1cm4gbV9vdXQubm90
RXF1YWwobV9vdXQuYml0QW5kKGpzVmFsdWUsIG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6Qmln
SW50MzJUYWcpKSwgbV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjpCaWdJbnQzMlRhZykpOworICAg
ICAgICByZXR1cm4gbV9vdXQubm90RXF1YWwobV9vdXQuYml0QW5kKGpzVmFsdWUsIG1fb3V0LmNv
bnN0SW50NjQoSlNWYWx1ZTo6QmlnSW50MzJNYXNrKSksIG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1
ZTo6QmlnSW50MzJUYWcpKTsKICAgICB9CiAgICAgTFZhbHVlIHVuYm94QmlnSW50MzIoTFZhbHVl
IGpzVmFsdWUpCiAgICAgewpAQCAtMTcxNDMsNyArMTcxMzMsNyBAQCBjbGFzcyBMb3dlckRGR1Rv
QjMgewogICAgICAgICAgICAgbV9vdXQuc2hsKG1fb3V0Lnplcm9FeHQoaW50MzJWYWx1ZSwgQjM6
OkludDY0KSwgbV9vdXQuY29uc3RJbnQ2NCgxNikpLAogICAgICAgICAgICAgbV9vdXQuY29uc3RJ
bnQ2NChKU1ZhbHVlOjpCaWdJbnQzMlRhZykpOwogICAgIH0KLSAgICBMVmFsdWUgaXNOb3RBbnlC
aWdJbnRLbm93bk5vdE51bWJlcihMVmFsdWUganNWYWx1ZSwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9
IFNwZWNGdWxsVG9wKQorICAgIExWYWx1ZSBpc05vdEFueUJpZ0ludChMVmFsdWUganNWYWx1ZSwg
U3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNwZWNGdWxsVG9wKQogICAgIHsKICAgICAgICAgaWYgKExW
YWx1ZSBwcm92ZW4gPSBpc1Byb3ZlblZhbHVlKHR5cGUsIH5TcGVjQmlnSW50KSkKICAgICAgICAg
ICAgIHJldHVybiBwcm92ZW47CkBAIC0xNzE1OSw3ICsxNzE0OSw3IEBAIGNsYXNzIExvd2VyREZH
VG9CMyB7CiAgICAgICAgIExCYXNpY0Jsb2NrIGlzQ2VsbENhc2UgPSBtX291dC5uZXdCbG9jaygp
OwogICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwog
Ci0gICAgICAgIG1fb3V0LmJyYW5jaChpc0JpZ0ludDMyS25vd25Ob3ROdW1iZXIoanNWYWx1ZSwg
dHlwZSksIHVuc3VyZShpc0JpZ0ludDMyQ2FzZSksIHVuc3VyZShpc05vdEJpZ0ludDMyQ2FzZSkp
OworICAgICAgICBtX291dC5icmFuY2goaXNCaWdJbnQzMihqc1ZhbHVlLCB0eXBlKSwgdW5zdXJl
KGlzQmlnSW50MzJDYXNlKSwgdW5zdXJlKGlzTm90QmlnSW50MzJDYXNlKSk7CiAKICAgICAgICAg
TEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhpc0JpZ0ludDMyQ2FzZSwgaXNO
b3RCaWdJbnQzMkNhc2UpOwogICAgICAgICBWYWx1ZUZyb21CbG9jayByZXR1cm5GYWxzZSA9IG1f
b3V0LmFuY2hvcihtX291dC5ib29sZWFuRmFsc2UpOwpAQCAtMTgxOTAsMTUgKzE4MTgwLDEzIEBA
IGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgdm9pZCBzcGVjdWxhdGVCaWdJbnQzMihFZGdlIGVk
Z2UpCiAgICAgewogICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dKU1ZhbHVlKGVkZ2UsIE1hbnVh
bE9wZXJhbmRTcGVjdWxhdGlvbik7Ci0gICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1
ZSh2YWx1ZSksIGVkZ2UsIH5TcGVjRnVsbE51bWJlciwgaXNOdW1iZXIodmFsdWUpKTsKLSAgICAg
ICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKHZhbHVlKSwgZWRnZSwgU3BlY0JpZ0ludDMy
LCBpc05vdEJpZ0ludDMyS25vd25Ob3ROdW1iZXIodmFsdWUpKTsKKyAgICAgICAgRlRMX1RZUEVf
Q0hFQ0soanNWYWx1ZVZhbHVlKHZhbHVlKSwgZWRnZSwgU3BlY0JpZ0ludDMyLCBpc05vdEJpZ0lu
dDMyKHZhbHVlKSk7CiAgICAgfQogCiAgICAgdm9pZCBzcGVjdWxhdGVBbnlCaWdJbnQoRWRnZSBl
ZGdlKQogICAgIHsKICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZShlZGdlLCBNYW51
YWxPcGVyYW5kU3BlY3VsYXRpb24pOwotICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFs
dWUodmFsdWUpLCBlZGdlLCB+U3BlY0Z1bGxOdW1iZXIsIGlzTnVtYmVyKHZhbHVlKSk7Ci0gICAg
ICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZSh2YWx1ZSksIGVkZ2UsIFNwZWNCaWdJbnQs
IGlzTm90QW55QmlnSW50S25vd25Ob3ROdW1iZXIodmFsdWUpKTsKKyAgICAgICAgRlRMX1RZUEVf
Q0hFQ0soanNWYWx1ZVZhbHVlKHZhbHVlKSwgZWRnZSwgU3BlY0JpZ0ludCwgaXNOb3RBbnlCaWdJ
bnQodmFsdWUpKTsKICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9Bc3NlbWJseUhlbHBlcnMuY3BwCmluZGV4IGM4OWY2ODVmZjdjOGE4MDA3MDI2ZTE1NjhlZWE5
OTZhM2U2YmJmOGQuLjM5ZGViZWUzNmRlMWY2NmI5YmM0ODkzYTFmNDhiZTU4NWMzZWZhMTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKQEAgLTc1
NSw3ICs3NTUsNyBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6ZW1pdENvbnZlcnRWYWx1ZVRvQm9v
bGVhbihWTSYgdm0sIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZQogCiAgICAgbm90RG91YmxlLmxp
bmsodGhpcyk7CiAjaWYgVVNFKEJJR0lOVDMyKQotICAgIGF1dG8gaXNOb3RCaWdJbnQzMiA9IGJy
YW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlcih2YWx1ZS5ncHIoKSwgcmVzdWx0KTsKKyAg
ICBhdXRvIGlzTm90QmlnSW50MzIgPSBicmFuY2hJZk5vdEJpZ0ludDMyKHZhbHVlLmdwcigpLCBy
ZXN1bHQpOwogICAgIG1vdmUodmFsdWUuZ3ByKCksIHJlc3VsdCk7CiAgICAgdXJzaGlmdDY0KFRy
dXN0ZWRJbW0zMigxNiksIHJlc3VsdCk7CiAgICAgY29tcGFyZTMyKGludmVydCA/IEVxdWFsIDog
Tm90RXF1YWwsIHJlc3VsdCwgVHJ1c3RlZEltbTMyKDApLCByZXN1bHQpOwpAQCAtODU2LDcgKzg1
Niw3IEBAIEFzc2VtYmx5SGVscGVyczo6SnVtcExpc3QgQXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJ
ZlZhbHVlKFZNJiB2bSwgSlNWYWx1ZVJlZ3MgdmFsCiAKICAgICBub3REb3VibGUubGluayh0aGlz
KTsKICNpZiBVU0UoQklHSU5UMzIpCi0gICAgYXV0byBpc05vdEJpZ0ludDMyID0gYnJhbmNoSWZO
b3RCaWdJbnQzMktub3duTm90TnVtYmVyKHZhbHVlLmdwcigpLCBzY3JhdGNoKTsKKyAgICBhdXRv
IGlzTm90QmlnSW50MzIgPSBicmFuY2hJZk5vdEJpZ0ludDMyKHZhbHVlLmdwcigpLCBzY3JhdGNo
KTsKICAgICBtb3ZlKHZhbHVlLmdwcigpLCBzY3JhdGNoKTsKICAgICB1cnNoaWZ0NjQoVHJ1c3Rl
ZEltbTMyKDE2KSwgc2NyYXRjaCk7CiAgICAgdHJ1dGh5LmFwcGVuZChicmFuY2hUZXN0MzIoaW52
ZXJ0ID8gWmVybyA6IE5vblplcm8sIHNjcmF0Y2gpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IGVkMDczZTc2ZGU0OTgyZWFhMGE2ZThlYzkwMTAx
MzVkOTlkY2FlYWYuLjE2NWM2NzY0Y2E5YWNlNjE0ZWI5M2NkNjc0MWUyOWE3MjlhZjAxNDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtOTMxLDQx
ICs5MzEsMjggQEAgY2xhc3MgQXNzZW1ibHlIZWxwZXJzIDogcHVibGljIE1hY3JvQXNzZW1ibGVy
IHsKICAgICB9CiAKICNpZiBVU0UoQklHSU5UMzIpCi0gICAgSnVtcCBicmFuY2hJZkJpZ0ludDMy
KEdQUlJlZyBncHIsIEdQUlJlZyB0ZW1wR1BSLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZl
VGFnUmVnaXN0ZXJzKQotICAgIHsKLSAgICAgICAgSnVtcCBudW1iZXIgPSBicmFuY2hJZk51bWJl
cihncHIsIG1vZGUpOwotICAgICAgICBKdW1wIGJpZ0ludDMyID0gYnJhbmNoSWZCaWdJbnQzMktu
b3duTm90TnVtYmVyKGdwciwgdGVtcEdQUik7Ci0gICAgICAgIG51bWJlci5saW5rKHRoaXMpOwot
ICAgICAgICByZXR1cm4gYmlnSW50MzI7Ci0gICAgfQotICAgIEp1bXBMaXN0IGJyYW5jaElmTm90
QmlnSW50MzIoR1BSUmVnIGdwciwgR1BSUmVnIHRlbXBHUFIsIFRhZ1JlZ2lzdGVyc01vZGUgbW9k
ZSA9IEhhdmVUYWdSZWdpc3RlcnMpCi0gICAgewotICAgICAgICBKdW1wTGlzdCByZXN1bHQ7Ci0g
ICAgICAgIHJlc3VsdC5hcHBlbmQoYnJhbmNoSWZOdW1iZXIoZ3ByLCBtb2RlKSk7Ci0gICAgICAg
IEp1bXAgYmlnSW50MzIgPSBicmFuY2hJZkJpZ0ludDMyS25vd25Ob3ROdW1iZXIoZ3ByLCB0ZW1w
R1BSKTsKLSAgICAgICAgcmVzdWx0LmFwcGVuZChqdW1wKCkpOwotICAgICAgICBiaWdJbnQzMi5s
aW5rKHRoaXMpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIEp1bXAgYnJh
bmNoSWZCaWdJbnQzMktub3duTm90TnVtYmVyKEdQUlJlZyBncHIsIEdQUlJlZyB0ZW1wR1BSKQor
ICAgIEp1bXAgYnJhbmNoSWZCaWdJbnQzMihHUFJSZWcgZ3ByLCBHUFJSZWcgdGVtcEdQUikKICAg
ICB7CiAgICAgICAgIEFTU0VSVCh0ZW1wR1BSICE9IEludmFsaWRHUFJSZWcpOwogICAgICAgICBt
b3ZlKGdwciwgdGVtcEdQUik7Ci0gICAgICAgIGFuZDY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpC
aWdJbnQzMlRhZyksIHRlbXBHUFIpOworICAgICAgICBhbmQ2NChUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6QmlnSW50MzJNYXNrKSwgdGVtcEdQUik7CiAgICAgICAgIHJldHVybiBicmFuY2g2NChFcXVh
bCwgdGVtcEdQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkJpZ0ludDMyVGFnKSk7CiAgICAgfQot
ICAgIEp1bXAgYnJhbmNoSWZOb3RCaWdJbnQzMktub3duTm90TnVtYmVyKEpTVmFsdWVSZWdzIHJl
Z3MsIEdQUlJlZyB0ZW1wR1BSKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGJyYW5jaElmTm90Qmln
SW50MzJLbm93bk5vdE51bWJlcihyZWdzLmdwcigpLCB0ZW1wR1BSKTsKLSAgICB9Ci0gICAgSnVt
cCBicmFuY2hJZk5vdEJpZ0ludDMyS25vd25Ob3ROdW1iZXIoR1BSUmVnIGdwciwgR1BSUmVnIHRl
bXBHUFIpCisgICAgSnVtcExpc3QgYnJhbmNoSWZOb3RCaWdJbnQzMihHUFJSZWcgZ3ByLCBHUFJS
ZWcgdGVtcEdQUikKICAgICB7CiAgICAgICAgIEFTU0VSVCh0ZW1wR1BSICE9IEludmFsaWRHUFJS
ZWcpOwogICAgICAgICBtb3ZlKGdwciwgdGVtcEdQUik7Ci0gICAgICAgIGFuZDY0KFRydXN0ZWRJ
bW0zMihKU1ZhbHVlOjpCaWdJbnQzMlRhZyksIHRlbXBHUFIpOworICAgICAgICBhbmQ2NChUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6QmlnSW50MzJNYXNrKSwgdGVtcEdQUik7CiAgICAgICAgIHJldHVy
biBicmFuY2g2NChOb3RFcXVhbCwgdGVtcEdQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkJpZ0lu
dDMyVGFnKSk7CiAgICAgfQorICAgIEp1bXBMaXN0IGJyYW5jaElmQmlnSW50MzIoSlNWYWx1ZVJl
Z3MgcmVncywgR1BSUmVnIHRlbXBHUFIpCisgICAgeworICAgICAgICByZXR1cm4gYnJhbmNoSWZC
aWdJbnQzMihyZWdzLmdwcigpLCB0ZW1wR1BSKTsKKyAgICB9CisgICAgSnVtcExpc3QgYnJhbmNo
SWZOb3RCaWdJbnQzMihKU1ZhbHVlUmVncyByZWdzLCBHUFJSZWcgdGVtcEdQUikKKyAgICB7Cisg
ICAgICAgIHJldHVybiBicmFuY2hJZk5vdEJpZ0ludDMyKHJlZ3MuZ3ByKCksIHRlbXBHUFIpOwor
ICAgIH0KICNlbmRpZiAvLyBVU0UoQklHSU5UMzIpCiAKICAgICAvLyBGSVhNRTogcmVuYW1lIHRo
ZXNlIHRvIG1ha2UgaXQgY2xlYXIgdGhhdCB0aGV5IHJlcXVpcmUgdGhlaXIgaW5wdXQgdG8gYmUg
YSBjZWxsLgpAQCAtMTgzMyw3ICsxODIwLDcgQEAgY2xhc3MgQXNzZW1ibHlIZWxwZXJzIDogcHVi
bGljIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAgbm90Qm9vbGVhbi5saW5rKHRoaXMpOwogCiAj
aWYgVVNFKEJJR0lOVDMyKQotICAgICAgICBKdW1wIG5vdEJpZ0ludDMyID0gYnJhbmNoSWZOb3RC
aWdJbnQzMktub3duTm90TnVtYmVyKHJlZ3MsIHRlbXBHUFIpOworICAgICAgICBKdW1wIG5vdEJp
Z0ludDMyID0gYnJhbmNoSWZOb3RCaWdJbnQzMihyZWdzLCB0ZW1wR1BSKTsKICAgICAgICAgZnVu
Y3RvcihUeXBlb2ZUeXBlOjpCaWdJbnQsIGZhbHNlKTsKICAgICAgICAgbm90QmlnSW50MzIubGlu
ayh0aGlzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3Rz
L0NoYW5nZUxvZwppbmRleCAyYjczZTUzOGM3ZjA3M2FmMTcwNDVlODE3MjI3MDRiOTBiOTkxNGI5
Li42NGFjZGZjOTY5ZWRjMDFjNjI3MzZjODIzZGU5ZDEwYWIyYTNkMzBkIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIwLTA0LTIyICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0pTQ10gYnJhbmNoSWZCaWdJbnQzMiBjYW4gdXNlIEJpZ0ludDMyTWFzayBhbmQgcmVtb3Zl
IGJyYW5jaElmTnVtYmVyIGZpbHRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjEwODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBzdHJlc3MvYW55YmlnaW50dXNlLXNob3VsZC1maWx0ZXItbnVtYmVy
LWNvcnJlY3RseS5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0
KToKKwogMjAyMC0wNC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtKU0NdIEpTQmlnSW50IGluYyBvcGVyYXRpb24gZG9lcyBub3QgcHJvZHVjZSByaWdo
dCBIZWFwQmlnSW50IHplcm8KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2FueWJpZ2ludHVz
ZS1zaG91bGQtZmlsdGVyLW51bWJlci1jb3JyZWN0bHkuanMgYi9KU1Rlc3RzL3N0cmVzcy9hbnli
aWdpbnR1c2Utc2hvdWxkLWZpbHRlci1udW1iZXItY29ycmVjdGx5LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5
NjAzOGJhZjIxOWI0OTE2MjIwMjdjODdjNDIyZDA1YmI0NWY5NGQKLS0tIC9kZXYvbnVsbAorKysg
Yi9KU1Rlc3RzL3N0cmVzcy9hbnliaWdpbnR1c2Utc2hvdWxkLWZpbHRlci1udW1iZXItY29ycmVj
dGx5LmpzCkBAIC0wLDAgKzEsMjUgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0
ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGEsIGIpCit7
CisgICAgcmV0dXJuIGEgPT09IGI7Cit9Citub0lubGluZSh0ZXN0KTsKKworZm9yICh2YXIgaSA9
IDA7IGkgPCAxZTY7ICsraSkgeworICAgIGlmIChpICYgMSkgeworICAgICAgICB0ZXN0KDBuLCAw
bik7CisgICAgICAgIHRlc3QoMG4sIDEwbik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdCgx
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuLCAyMDBuKTsKKyAgICAg
ICAgdGVzdCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuLCAxMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKTsKKyAgICB9Cit9CitzaG91
bGRCZSh0ZXN0KDIwLCAyMCksIHRydWUpOworc2hvdWxkQmUodGVzdCgyMCwgNDApLCBmYWxzZSk7
CitzaG91bGRCZSh0ZXN0KDAuNSwgMC41KSwgdHJ1ZSk7CitzaG91bGRCZSh0ZXN0KDAuNSwgMC4y
NCksIGZhbHNlKTsKK3Nob3VsZEJlKHRlc3QoMjAuMSAtIDAuMSwgMjApLCB0cnVlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397238</attachid>
            <date>2020-04-22 12:38:33 -0700</date>
            <delta_ts>2020-04-22 13:13:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210870-20200422123831.patch</filename>
            <type>text/plain</type>
            <size>18006</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NWM1NWMzNjdiMzE5MjU2YzhmNzJhYTUxMTE5ZmM2Y2FmOGFhYzA2Li5mMzAyZWRjZjc5MTIyZmNi
N2Q5YWRhMTBlNDllYWVlNWM5YjJjOGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAyMC0wNC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIGJyYW5jaElmQmlnSW50MzIgY2FuIHVzZSBCaWdJbnQzMk1hc2sg
YW5kIHJlbW92ZSBicmFuY2hJZk51bWJlciBmaWx0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ5IHVzaW5nIEJpZ0ludDMyTWFzaywgd2UgY2FuIGRl
dGVjdCBCaWdJbnQzMiB3aXRob3V0IGZpbHRlcmluZyBOdW1iZXJzLiBJbiB0aGlzIHBhdGNoLAor
CisgICAgICAgIDEuIFJlbW92ZSBicmFuY2hJZkJpZ0ludDMyS25vd25Ob3ROdW1iZXIgYW5kIGJy
YW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlci4gQW5kIGFsd2F5cyB1c2UgYnJhbmNoQmln
SW50MzIgYW5kIGJyYW5jaE5vdEJpZ0ludDMyIGluc3RlYWQuCisgICAgICAgIDIuIFJlbW92ZSBi
cmFuY2hJZk51bWJlciB0eXBlIGZpbHRlcmluZyBpbiBERkcuCisgICAgICAgIDMuIFVzZSBCaWdJ
bnQzMk1hc2sgYmFzZWQgc2NoZW1lIGluIEZUTC4KKworICAgICAgICAqIGJ5dGVjb2RlL0FyaXRo
UHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6OkFyaXRoUHJvZmlsZTxCaXRmaWVsZFR5cGU+Ojpl
bWl0T2JzZXJ2ZVJlc3VsdCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQmlnSW50
MzIpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpG
VEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlVG9OdW1lcmljKToKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNvbXBhcmVTdHJpY3RFcSk6CisgICAgICAg
IChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVJc0JpZ0ludCk6CisgICAgICAg
IChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmJvb2xpZnkpOgorICAgICAgICAoSlNDOjpG
VEw6OkRGRzo6TG93ZXJERkdUb0IzOjpidWlsZFR5cGVPZik6CisgICAgICAgIChKU0M6OkZUTDo6
REZHOjpMb3dlckRGR1RvQjM6Omxvd0JpZ0ludDMyKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9CMzo6aXNCaWdJbnQzMik6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmlzTm90QmlnSW50MzIpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0IzOjppc05vdEFueUJpZ0ludCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OnNwZWN1bGF0ZUJpZ0ludDMyKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6c3BlY3VsYXRlQW55QmlnSW50KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6aXNCaWdJbnQzMktub3duTm90Q2VsbCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmlzQmlnSW50MzJLbm93bk5vdE51bWJlcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmlzTm90QmlnSW50
MzJLbm93bk5vdE51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmlzTm90QW55QmlnSW50S25vd25Ob3ROdW1iZXIpOiBEZWxldGVkLgorICAgICAg
ICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBl
cnM6OmVtaXRDb252ZXJ0VmFsdWVUb0Jvb2xlYW4pOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhl
bHBlcnM6OmJyYW5jaElmVmFsdWUpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoK
KyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZkJpZ0ludDMyKToKKyAgICAg
ICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZk5vdEJpZ0ludDMyKToKKyAgICAgICAg
KEpTQzo6QXNzZW1ibHlIZWxwZXJzOjplbWl0VHlwZU9mKToKKyAgICAgICAgKEpTQzo6QXNzZW1i
bHlIZWxwZXJzOjpicmFuY2hJZkJpZ0ludDMyS25vd25Ob3ROdW1iZXIpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51
bWJlcik6IERlbGV0ZWQuCisKIDIwMjAtMDQtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBKU0JpZ0ludCBpbmMgb3BlcmF0aW9uIGRvZXMgbm90
IHByb2R1Y2UgcmlnaHQgSGVhcEJpZ0ludCB6ZXJvCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwCmluZGV4IDg1ZWM3MjgzMmYzMmMyNjNkN2M1Nzg2
NWVjMmIxOWU5OTIzMGYxOTIuLjEzYTBjZWExOTAxMWQzOWFlODkzYzY5MjU1YTVlNWFlODg4MmU4
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2Zp
bGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUu
Y3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgQXJpdGhQcm9maWxlPEJpdGZpZWxkVHlwZT46OmVt
aXRPYnNlcnZlUmVzdWx0KENDYWxsSGVscGVycyYgaml0LCBKU1ZhbHVlUmVnCiAgICAgbm90RG91
YmxlLmxpbmsoJmppdCk7CiAKICNpZiBVU0UoQklHSU5UMzIpCi0gICAgQ0NhbGxIZWxwZXJzOjpK
dW1wIG5vdEJpZ0ludDMyID0gaml0LmJyYW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlcihy
ZWdzLCB0ZW1wR1BSKTsKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm90QmlnSW50MzIgPSBqaXQu
YnJhbmNoSWZOb3RCaWdJbnQzMihyZWdzLCB0ZW1wR1BSKTsKICAgICBlbWl0U2V0QmlnSW50MzIo
aml0KTsKICAgICBkb25lLmFwcGVuZChqaXQuanVtcCgpKTsKICAgICBub3RCaWdJbnQzMi5saW5r
KCZqaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAKaW5kZXggNGNhNzg3N2M3OWFjNGMwZTQ1MTNkZTBlODBiOTZiNjBhZTI3NWVmZS4u
Mzc4ODNkMzhhNmJjMGM5ZWUxMzdjZGY5MTgyNDA0NmZlOTk5MTM3YSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0xNDY5LDgg
KzE0NjksNyBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVCaWdJbnQzMihF
ZGdlIGVkZ2UpCiAgICAgICAgIGlmICh0eXBlICYgflNwZWNCaWdJbnQzMikgewogICAgICAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBmYWlsdXJlQ2FzZXM7CiAgICAgICAgICAgICBHUFJS
ZWcgdGVtcEdQUiA9IGFsbG9jYXRlKCk7Ci0gICAgICAgICAgICBmYWlsdXJlQ2FzZXMuYXBwZW5k
KG1faml0LmJyYW5jaElmTnVtYmVyKGdwcikpOwotICAgICAgICAgICAgZmFpbHVyZUNhc2VzLmFw
cGVuZChtX2ppdC5icmFuY2hJZk5vdEJpZ0ludDMyS25vd25Ob3ROdW1iZXIoZ3ByLCB0ZW1wR1BS
KSk7CisgICAgICAgICAgICBmYWlsdXJlQ2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaElmTm90Qmln
SW50MzIoZ3ByLCB0ZW1wR1BSKSk7CiAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5
cGUsIEpTVmFsdWVSZWdzKGdwciksIGVkZ2UsIGZhaWx1cmVDYXNlcyk7CiAgICAgICAgICAgICB1
bmxvY2sodGVtcEdQUik7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCAzMjA1MTFhZTAyNzE0Mjg1N2Q0NGEyNTA3YjQyNjNk
Yjg5ZjU3YTI2Li5lYWI1ZjZmMmM0MzM5MTBiMmVkZTlkZDgzOGU0OGM1M2I4MmE4ZGNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC03NTU0
LDcgKzc1NTQsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAgLy8gbm90TnVt
YmVyIGNhc2UuCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVu
ZFRvKG5vdE51bWJlciwgY29udGludWF0aW9uKTsKICNpZiBVU0UoQklHSU5UMzIpCi0gICAgICAg
ICAgICBtX291dC5icmFuY2goaXNCaWdJbnQzMktub3duTm90TnVtYmVyKHZhbHVlLCBwcm92ZW5U
eXBlKG1fbm9kZS0+Y2hpbGQxKCkpKSwgdW5zdXJlKGNvbnRpbnVhdGlvbiksIHVuc3VyZShub3RC
aWdJbnQzMikpOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlzQmlnSW50MzIodmFsdWUsIHBy
b3ZlblR5cGUobV9ub2RlLT5jaGlsZDEoKSkpLCB1bnN1cmUoY29udGludWF0aW9uKSwgdW5zdXJl
KG5vdEJpZ0ludDMyKSk7CiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhub3RCaWdJbnQzMik7
CiAjZW5kaWYKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0NlbGwodmFsdWUsIHByb3ZlblR5
cGUobV9ub2RlLT5jaGlsZDEoKSkpLCB1bnN1cmUoaXNDZWxsUGF0aCksIHVuc3VyZShzbG93UGF0
aCkpOwpAQCAtODcxOSw5ICs4NzE5LDYgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIHJpZ2h0SXNOb3RCaWdJbnQzMiA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAg
ICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwog
Ci0gICAgICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUobGVmdCksIG1fbm9kZS0+
Y2hpbGQxKCksIH5TcGVjRnVsbE51bWJlciwgaXNOdW1iZXIobGVmdCkpOwotICAgICAgICAgICAg
RlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKHJpZ2h0KSwgbV9ub2RlLT5jaGlsZDIoKSwgflNw
ZWNGdWxsTnVtYmVyLCBpc051bWJlcihyaWdodCkpOwotCiAgICAgICAgICAgICAvLyBJbnNlcnRz
IGEgY2hlY2sgdGhhdCBhIHZhbHVlIGlzIGEgSGVhcEJpZ0ludCwgYXNzdW1pbmcgb25seSB0aGF0
IHdlIGtub3cgaXQgaXMgbm90IGEgQmlnSW50MzIKICAgICAgICAgICAgIGF1dG8gY2hlY2tJc0hl
YXBCaWdJbnQgPSBbJl0oTFZhbHVlIGxvd1ZhbHVlLCBFZGdlIGhpZ2hWYWx1ZSkgewogICAgICAg
ICAgICAgICAgIGlmIChtX2ludGVycHJldGVyLm5lZWRzVHlwZUNoZWNrKGhpZ2hWYWx1ZSwgU3Bl
Y0hlYXBCaWdJbnQpKSB7CkBAIC04NzMxLDEwICs4NzI4LDEwIEBAIGNsYXNzIExvd2VyREZHVG9C
MyB7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfTsKIAotICAgICAgICAgICAgbV9v
dXQuYnJhbmNoKGlzQmlnSW50MzJLbm93bk5vdE51bWJlcihsZWZ0LCBwcm92ZW5UeXBlKG1fbm9k
ZS0+Y2hpbGQxKCkpKSwgdW5zdXJlKGxlZnRJc0JpZ0ludDMyKSwgdW5zdXJlKGxlZnRJc05vdEJp
Z0ludDMyKSk7CisgICAgICAgICAgICBtX291dC5icmFuY2goaXNCaWdJbnQzMihsZWZ0LCBwcm92
ZW5UeXBlKG1fbm9kZS0+Y2hpbGQxKCkpKSwgdW5zdXJlKGxlZnRJc0JpZ0ludDMyKSwgdW5zdXJl
KGxlZnRJc05vdEJpZ0ludDMyKSk7CiAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0
ID0gbV9vdXQuYXBwZW5kVG8obGVmdElzQmlnSW50MzIsIGJvdGhBcmVCaWdJbnQzMik7Ci0gICAg
ICAgICAgICBtX291dC5icmFuY2goaXNCaWdJbnQzMktub3duTm90TnVtYmVyKHJpZ2h0LCBwcm92
ZW5UeXBlKG1fbm9kZS0+Y2hpbGQyKCkpKSwgdW5zdXJlKGJvdGhBcmVCaWdJbnQzMiksIHVuc3Vy
ZShvbmx5TGVmdElzQmlnSW50MzIpKTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0JpZ0lu
dDMyKHJpZ2h0LCBwcm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQyKCkpKSwgdW5zdXJlKGJvdGhBcmVC
aWdJbnQzMiksIHVuc3VyZShvbmx5TGVmdElzQmlnSW50MzIpKTsKIAogICAgICAgICAgICAgbV9v
dXQuYXBwZW5kVG8oYm90aEFyZUJpZ0ludDMyLCBvbmx5TGVmdElzQmlnSW50MzIpOwogICAgICAg
ICAgICAgVmFsdWVGcm9tQmxvY2sgcmVzdWx0Qm90aEFyZUJpZ0ludDMyID0gbV9vdXQuYW5jaG9y
KG1fb3V0LmVxdWFsKGxlZnQsIHJpZ2h0KSk7CkBAIC04NzU1LDcgKzg3NTIsNyBAQCBjbGFzcyBM
b3dlckRGR1RvQjMgewogICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwogCiAg
ICAgICAgICAgICBtX291dC5hcHBlbmRUbyhsZWZ0SXNIZWFwQmlnSW50LCByaWdodElzQmlnSW50
MzIpOwotICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlzQmlnSW50MzJLbm93bk5vdE51bWJlcihy
aWdodCwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMigpKSksIHVuc3VyZShyaWdodElzQmlnSW50
MzIpLCB1bnN1cmUocmlnaHRJc05vdEJpZ0ludDMyKSk7CisgICAgICAgICAgICBtX291dC5icmFu
Y2goaXNCaWdJbnQzMihyaWdodCwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMigpKSksIHVuc3Vy
ZShyaWdodElzQmlnSW50MzIpLCB1bnN1cmUocmlnaHRJc05vdEJpZ0ludDMyKSk7CiAKICAgICAg
ICAgICAgIG1fb3V0LmFwcGVuZFRvKHJpZ2h0SXNCaWdJbnQzMiwgcmlnaHRJc05vdEJpZ0ludDMy
KTsKICAgICAgICAgICAgIExWYWx1ZSB1bmJveGVkUmlnaHQgPSB1bmJveEJpZ0ludDMyKHJpZ2h0
KTsKQEAgLTEwOTI4LDcgKzEwOTI1LDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKIAogICAgICAg
ICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGlzTm90Q2VsbENhc2UsIGlz
Q2VsbENhc2UpOwogICAgICAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIGZpbHRlciB0aGUgcHJvdmVu
VHlwZSB0byBpbmNsdWRlIHRoZSBmYWN0IHRoYXQgd2Uga25vdyB3ZSBhcmUgbm90IGRlYWxpbmcg
d2l0aCBhIGNlbGwKLSAgICAgICAgVmFsdWVGcm9tQmxvY2sgbm90Q2VsbFJlc3VsdCA9IG1fb3V0
LmFuY2hvcihpc0JpZ0ludDMyS25vd25Ob3RDZWxsKHZhbHVlLCBwcm92ZW5UeXBlKG1fbm9kZS0+
Y2hpbGQxKCkpKSk7CisgICAgICAgIFZhbHVlRnJvbUJsb2NrIG5vdENlbGxSZXN1bHQgPSBtX291
dC5hbmNob3IoaXNCaWdJbnQzMih2YWx1ZSwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMSgpKSkp
OwogICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CiAKICAgICAgICAgbV9vdXQuYXBw
ZW5kVG8oaXNDZWxsQ2FzZSwgY29udGludWF0aW9uKTsKQEAgLTE1NDcxLDcgKzE1NDY4LDcgQEAg
Y2xhc3MgTG93ZXJERkdUb0IzIHsKICNpZiBVU0UoQklHSU5UMzIpCiAgICAgICAgICAgICBtX291
dC5hcHBlbmRUbyhub3REb3VibGVDYXNlLCBiaWdJbnQzMkNhc2UpOwogICAgICAgICAgICAgbV9v
dXQuYnJhbmNoKAotICAgICAgICAgICAgICAgIGlzQmlnSW50MzJLbm93bk5vdE51bWJlcih2YWx1
ZSwgcHJvdmVuVHlwZShlZGdlKSAmIH5TcGVjQ2VsbCksCisgICAgICAgICAgICAgICAgaXNCaWdJ
bnQzMih2YWx1ZSwgcHJvdmVuVHlwZShlZGdlKSAmIH5TcGVjQ2VsbCksCiAgICAgICAgICAgICAg
ICAgdW5zdXJlKGJpZ0ludDMyQ2FzZSksIHVuc3VyZShub3RCaWdJbnQzMkNhc2UpKTsKIAogICAg
ICAgICAgICAgbV9vdXQuYXBwZW5kVG8oYmlnSW50MzJDYXNlLCBub3RCaWdJbnQzMkNhc2UpOwpA
QCAtMTYxOTcsNyArMTYxOTQsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogCiAjaWYgVVNFKEJJ
R0lOVDMyKQogICAgICAgICBtX291dC5hcHBlbmRUbyhub3ROdW1iZXJDYXNlLCBub3RCaWdJbnQz
MkNhc2UpOwotICAgICAgICBtX291dC5icmFuY2goaXNCaWdJbnQzMktub3duTm90TnVtYmVyKHZh
bHVlLCBwcm92ZW5UeXBlKGNoaWxkKSAmIH5TcGVjQ2VsbCksIHVuc3VyZShiaWdJbnRDYXNlKSwg
dW5zdXJlKG5vdEJpZ0ludDMyQ2FzZSkpOworICAgICAgICBtX291dC5icmFuY2goaXNCaWdJbnQz
Mih2YWx1ZSwgcHJvdmVuVHlwZShjaGlsZCkgJiB+U3BlY0NlbGwpLCB1bnN1cmUoYmlnSW50Q2Fz
ZSksIHVuc3VyZShub3RCaWdJbnQzMkNhc2UpKTsKIAogICAgICAgICBtX291dC5hcHBlbmRUbyhu
b3RCaWdJbnQzMkNhc2UsIG5vdE51bGxDYXNlKTsKICNlbHNlCkBAIC0xNjkxNyw4ICsxNjkxNCw3
IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIExvd2VyZWROb2RlVmFsdWUgdmFsdWUg
PSBtX2pzVmFsdWVWYWx1ZXMuZ2V0KGVkZ2Uubm9kZSgpKTsKICAgICAgICAgaWYgKGlzVmFsaWQo
dmFsdWUpKSB7CiAgICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gdmFsdWUudmFsdWUoKTsKLSAg
ICAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShyZXN1bHQpLCBlZGdlLCB+U3Bl
Y0Z1bGxOdW1iZXIsIGlzTnVtYmVyKHJlc3VsdCkpOwotICAgICAgICAgICAgRlRMX1RZUEVfQ0hF
Q0soanNWYWx1ZVZhbHVlKHJlc3VsdCksIGVkZ2UsIFNwZWNCaWdJbnQzMiwgaXNOb3RCaWdJbnQz
Mktub3duTm90TnVtYmVyKHJlc3VsdCkpOworICAgICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNW
YWx1ZVZhbHVlKHJlc3VsdCksIGVkZ2UsIFNwZWNCaWdJbnQzMiwgaXNOb3RCaWdJbnQzMihyZXN1
bHQpKTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KIApAQCAtMTcxMTUs
MjMgKzE3MTExLDE3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgfQogCiAjaWYgVVNFKEJJ
R0lOVDMyKQotICAgIExWYWx1ZSBpc0JpZ0ludDMyS25vd25Ob3RDZWxsKExWYWx1ZSBqc1ZhbHVl
LCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCisgICAgTFZhbHVlIGlzQmlnSW50
MzIoTFZhbHVlIGpzVmFsdWUsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKICAg
ICB7CiAgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlLCBTcGVj
QmlnSW50MzIpKQogICAgICAgICAgICAgcmV0dXJuIHByb3ZlbjsKICAgICAgICAgcmV0dXJuIG1f
b3V0LmVxdWFsKG1fb3V0LmJpdEFuZChqc1ZhbHVlLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6
OkJpZ0ludDMyTWFzaykpLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSk7
CiAgICAgfQotICAgIExWYWx1ZSBpc0JpZ0ludDMyS25vd25Ob3ROdW1iZXIoTFZhbHVlIGpzVmFs
dWUsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKLSAgICB7Ci0gICAgICAgIGlm
IChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlLCBTcGVjQmlnSW50MzIpKQotICAg
ICAgICAgICAgcmV0dXJuIHByb3ZlbjsKLSAgICAgICAgcmV0dXJuIG1fb3V0LmVxdWFsKG1fb3V0
LmJpdEFuZChqc1ZhbHVlLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSks
IG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6QmlnSW50MzJUYWcpKTsKLSAgICB9Ci0gICAgTFZh
bHVlIGlzTm90QmlnSW50MzJLbm93bk5vdE51bWJlcihMVmFsdWUganNWYWx1ZSwgU3BlY3VsYXRl
ZFR5cGUgdHlwZSA9IFNwZWNGdWxsVG9wKQorICAgIExWYWx1ZSBpc05vdEJpZ0ludDMyKExWYWx1
ZSBqc1ZhbHVlLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCiAgICAgewogICAg
ICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSwgflNwZWNCaWdJbnQz
MikpCiAgICAgICAgICAgICByZXR1cm4gcHJvdmVuOwotICAgICAgICByZXR1cm4gbV9vdXQubm90
RXF1YWwobV9vdXQuYml0QW5kKGpzVmFsdWUsIG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6Qmln
SW50MzJUYWcpKSwgbV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjpCaWdJbnQzMlRhZykpOworICAg
ICAgICByZXR1cm4gbV9vdXQubm90RXF1YWwobV9vdXQuYml0QW5kKGpzVmFsdWUsIG1fb3V0LmNv
bnN0SW50NjQoSlNWYWx1ZTo6QmlnSW50MzJNYXNrKSksIG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1
ZTo6QmlnSW50MzJUYWcpKTsKICAgICB9CiAgICAgTFZhbHVlIHVuYm94QmlnSW50MzIoTFZhbHVl
IGpzVmFsdWUpCiAgICAgewpAQCAtMTcxNDMsNyArMTcxMzMsNyBAQCBjbGFzcyBMb3dlckRGR1Rv
QjMgewogICAgICAgICAgICAgbV9vdXQuc2hsKG1fb3V0Lnplcm9FeHQoaW50MzJWYWx1ZSwgQjM6
OkludDY0KSwgbV9vdXQuY29uc3RJbnQ2NCgxNikpLAogICAgICAgICAgICAgbV9vdXQuY29uc3RJ
bnQ2NChKU1ZhbHVlOjpCaWdJbnQzMlRhZykpOwogICAgIH0KLSAgICBMVmFsdWUgaXNOb3RBbnlC
aWdJbnRLbm93bk5vdE51bWJlcihMVmFsdWUganNWYWx1ZSwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9
IFNwZWNGdWxsVG9wKQorICAgIExWYWx1ZSBpc05vdEFueUJpZ0ludChMVmFsdWUganNWYWx1ZSwg
U3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNwZWNGdWxsVG9wKQogICAgIHsKICAgICAgICAgaWYgKExW
YWx1ZSBwcm92ZW4gPSBpc1Byb3ZlblZhbHVlKHR5cGUsIH5TcGVjQmlnSW50KSkKICAgICAgICAg
ICAgIHJldHVybiBwcm92ZW47CkBAIC0xNzE1OSw3ICsxNzE0OSw3IEBAIGNsYXNzIExvd2VyREZH
VG9CMyB7CiAgICAgICAgIExCYXNpY0Jsb2NrIGlzQ2VsbENhc2UgPSBtX291dC5uZXdCbG9jaygp
OwogICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwog
Ci0gICAgICAgIG1fb3V0LmJyYW5jaChpc0JpZ0ludDMyS25vd25Ob3ROdW1iZXIoanNWYWx1ZSwg
dHlwZSksIHVuc3VyZShpc0JpZ0ludDMyQ2FzZSksIHVuc3VyZShpc05vdEJpZ0ludDMyQ2FzZSkp
OworICAgICAgICBtX291dC5icmFuY2goaXNCaWdJbnQzMihqc1ZhbHVlLCB0eXBlKSwgdW5zdXJl
KGlzQmlnSW50MzJDYXNlKSwgdW5zdXJlKGlzTm90QmlnSW50MzJDYXNlKSk7CiAKICAgICAgICAg
TEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhpc0JpZ0ludDMyQ2FzZSwgaXNO
b3RCaWdJbnQzMkNhc2UpOwogICAgICAgICBWYWx1ZUZyb21CbG9jayByZXR1cm5GYWxzZSA9IG1f
b3V0LmFuY2hvcihtX291dC5ib29sZWFuRmFsc2UpOwpAQCAtMTgxOTAsMTUgKzE4MTgwLDEzIEBA
IGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgdm9pZCBzcGVjdWxhdGVCaWdJbnQzMihFZGdlIGVk
Z2UpCiAgICAgewogICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dKU1ZhbHVlKGVkZ2UsIE1hbnVh
bE9wZXJhbmRTcGVjdWxhdGlvbik7Ci0gICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1
ZSh2YWx1ZSksIGVkZ2UsIH5TcGVjRnVsbE51bWJlciwgaXNOdW1iZXIodmFsdWUpKTsKLSAgICAg
ICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKHZhbHVlKSwgZWRnZSwgU3BlY0JpZ0ludDMy
LCBpc05vdEJpZ0ludDMyS25vd25Ob3ROdW1iZXIodmFsdWUpKTsKKyAgICAgICAgRlRMX1RZUEVf
Q0hFQ0soanNWYWx1ZVZhbHVlKHZhbHVlKSwgZWRnZSwgU3BlY0JpZ0ludDMyLCBpc05vdEJpZ0lu
dDMyKHZhbHVlKSk7CiAgICAgfQogCiAgICAgdm9pZCBzcGVjdWxhdGVBbnlCaWdJbnQoRWRnZSBl
ZGdlKQogICAgIHsKICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZShlZGdlLCBNYW51
YWxPcGVyYW5kU3BlY3VsYXRpb24pOwotICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFs
dWUodmFsdWUpLCBlZGdlLCB+U3BlY0Z1bGxOdW1iZXIsIGlzTnVtYmVyKHZhbHVlKSk7Ci0gICAg
ICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZSh2YWx1ZSksIGVkZ2UsIFNwZWNCaWdJbnQs
IGlzTm90QW55QmlnSW50S25vd25Ob3ROdW1iZXIodmFsdWUpKTsKKyAgICAgICAgRlRMX1RZUEVf
Q0hFQ0soanNWYWx1ZVZhbHVlKHZhbHVlKSwgZWRnZSwgU3BlY0JpZ0ludCwgaXNOb3RBbnlCaWdJ
bnQodmFsdWUpKTsKICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9Bc3NlbWJseUhlbHBlcnMuY3BwCmluZGV4IGM4OWY2ODVmZjdjOGE4MDA3MDI2ZTE1NjhlZWE5
OTZhM2U2YmJmOGQuLjM5ZGViZWUzNmRlMWY2NmI5YmM0ODkzYTFmNDhiZTU4NWMzZWZhMTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKQEAgLTc1
NSw3ICs3NTUsNyBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6ZW1pdENvbnZlcnRWYWx1ZVRvQm9v
bGVhbihWTSYgdm0sIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZQogCiAgICAgbm90RG91YmxlLmxp
bmsodGhpcyk7CiAjaWYgVVNFKEJJR0lOVDMyKQotICAgIGF1dG8gaXNOb3RCaWdJbnQzMiA9IGJy
YW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlcih2YWx1ZS5ncHIoKSwgcmVzdWx0KTsKKyAg
ICBhdXRvIGlzTm90QmlnSW50MzIgPSBicmFuY2hJZk5vdEJpZ0ludDMyKHZhbHVlLmdwcigpLCBy
ZXN1bHQpOwogICAgIG1vdmUodmFsdWUuZ3ByKCksIHJlc3VsdCk7CiAgICAgdXJzaGlmdDY0KFRy
dXN0ZWRJbW0zMigxNiksIHJlc3VsdCk7CiAgICAgY29tcGFyZTMyKGludmVydCA/IEVxdWFsIDog
Tm90RXF1YWwsIHJlc3VsdCwgVHJ1c3RlZEltbTMyKDApLCByZXN1bHQpOwpAQCAtODU2LDcgKzg1
Niw3IEBAIEFzc2VtYmx5SGVscGVyczo6SnVtcExpc3QgQXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJ
ZlZhbHVlKFZNJiB2bSwgSlNWYWx1ZVJlZ3MgdmFsCiAKICAgICBub3REb3VibGUubGluayh0aGlz
KTsKICNpZiBVU0UoQklHSU5UMzIpCi0gICAgYXV0byBpc05vdEJpZ0ludDMyID0gYnJhbmNoSWZO
b3RCaWdJbnQzMktub3duTm90TnVtYmVyKHZhbHVlLmdwcigpLCBzY3JhdGNoKTsKKyAgICBhdXRv
IGlzTm90QmlnSW50MzIgPSBicmFuY2hJZk5vdEJpZ0ludDMyKHZhbHVlLmdwcigpLCBzY3JhdGNo
KTsKICAgICBtb3ZlKHZhbHVlLmdwcigpLCBzY3JhdGNoKTsKICAgICB1cnNoaWZ0NjQoVHJ1c3Rl
ZEltbTMyKDE2KSwgc2NyYXRjaCk7CiAgICAgdHJ1dGh5LmFwcGVuZChicmFuY2hUZXN0MzIoaW52
ZXJ0ID8gWmVybyA6IE5vblplcm8sIHNjcmF0Y2gpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IGVkMDczZTc2ZGU0OTgyZWFhMGE2ZThlYzkwMTAx
MzVkOTlkY2FlYWYuLmM2ODAzOWRhN2NmNWM3MjcwYWMyMDgyOWVlYWFmNjI4NDI0ODNkMjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtOTMxLDQx
ICs5MzEsMjggQEAgY2xhc3MgQXNzZW1ibHlIZWxwZXJzIDogcHVibGljIE1hY3JvQXNzZW1ibGVy
IHsKICAgICB9CiAKICNpZiBVU0UoQklHSU5UMzIpCi0gICAgSnVtcCBicmFuY2hJZkJpZ0ludDMy
KEdQUlJlZyBncHIsIEdQUlJlZyB0ZW1wR1BSLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZl
VGFnUmVnaXN0ZXJzKQotICAgIHsKLSAgICAgICAgSnVtcCBudW1iZXIgPSBicmFuY2hJZk51bWJl
cihncHIsIG1vZGUpOwotICAgICAgICBKdW1wIGJpZ0ludDMyID0gYnJhbmNoSWZCaWdJbnQzMktu
b3duTm90TnVtYmVyKGdwciwgdGVtcEdQUik7Ci0gICAgICAgIG51bWJlci5saW5rKHRoaXMpOwot
ICAgICAgICByZXR1cm4gYmlnSW50MzI7Ci0gICAgfQotICAgIEp1bXBMaXN0IGJyYW5jaElmTm90
QmlnSW50MzIoR1BSUmVnIGdwciwgR1BSUmVnIHRlbXBHUFIsIFRhZ1JlZ2lzdGVyc01vZGUgbW9k
ZSA9IEhhdmVUYWdSZWdpc3RlcnMpCi0gICAgewotICAgICAgICBKdW1wTGlzdCByZXN1bHQ7Ci0g
ICAgICAgIHJlc3VsdC5hcHBlbmQoYnJhbmNoSWZOdW1iZXIoZ3ByLCBtb2RlKSk7Ci0gICAgICAg
IEp1bXAgYmlnSW50MzIgPSBicmFuY2hJZkJpZ0ludDMyS25vd25Ob3ROdW1iZXIoZ3ByLCB0ZW1w
R1BSKTsKLSAgICAgICAgcmVzdWx0LmFwcGVuZChqdW1wKCkpOwotICAgICAgICBiaWdJbnQzMi5s
aW5rKHRoaXMpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIEp1bXAgYnJh
bmNoSWZCaWdJbnQzMktub3duTm90TnVtYmVyKEdQUlJlZyBncHIsIEdQUlJlZyB0ZW1wR1BSKQor
ICAgIEp1bXAgYnJhbmNoSWZCaWdJbnQzMihHUFJSZWcgZ3ByLCBHUFJSZWcgdGVtcEdQUikKICAg
ICB7CiAgICAgICAgIEFTU0VSVCh0ZW1wR1BSICE9IEludmFsaWRHUFJSZWcpOwogICAgICAgICBt
b3ZlKGdwciwgdGVtcEdQUik7Ci0gICAgICAgIGFuZDY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpC
aWdJbnQzMlRhZyksIHRlbXBHUFIpOworICAgICAgICBhbmQ2NChUcnVzdGVkSW1tNjQoSlNWYWx1
ZTo6QmlnSW50MzJNYXNrKSwgdGVtcEdQUik7CiAgICAgICAgIHJldHVybiBicmFuY2g2NChFcXVh
bCwgdGVtcEdQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkJpZ0ludDMyVGFnKSk7CiAgICAgfQot
ICAgIEp1bXAgYnJhbmNoSWZOb3RCaWdJbnQzMktub3duTm90TnVtYmVyKEpTVmFsdWVSZWdzIHJl
Z3MsIEdQUlJlZyB0ZW1wR1BSKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGJyYW5jaElmTm90Qmln
SW50MzJLbm93bk5vdE51bWJlcihyZWdzLmdwcigpLCB0ZW1wR1BSKTsKLSAgICB9Ci0gICAgSnVt
cCBicmFuY2hJZk5vdEJpZ0ludDMyS25vd25Ob3ROdW1iZXIoR1BSUmVnIGdwciwgR1BSUmVnIHRl
bXBHUFIpCisgICAgSnVtcExpc3QgYnJhbmNoSWZOb3RCaWdJbnQzMihHUFJSZWcgZ3ByLCBHUFJS
ZWcgdGVtcEdQUikKICAgICB7CiAgICAgICAgIEFTU0VSVCh0ZW1wR1BSICE9IEludmFsaWRHUFJS
ZWcpOwogICAgICAgICBtb3ZlKGdwciwgdGVtcEdQUik7Ci0gICAgICAgIGFuZDY0KFRydXN0ZWRJ
bW0zMihKU1ZhbHVlOjpCaWdJbnQzMlRhZyksIHRlbXBHUFIpOworICAgICAgICBhbmQ2NChUcnVz
dGVkSW1tNjQoSlNWYWx1ZTo6QmlnSW50MzJNYXNrKSwgdGVtcEdQUik7CiAgICAgICAgIHJldHVy
biBicmFuY2g2NChOb3RFcXVhbCwgdGVtcEdQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkJpZ0lu
dDMyVGFnKSk7CiAgICAgfQorICAgIEp1bXBMaXN0IGJyYW5jaElmQmlnSW50MzIoSlNWYWx1ZVJl
Z3MgcmVncywgR1BSUmVnIHRlbXBHUFIpCisgICAgeworICAgICAgICByZXR1cm4gYnJhbmNoSWZC
aWdJbnQzMihyZWdzLmdwcigpLCB0ZW1wR1BSKTsKKyAgICB9CisgICAgSnVtcExpc3QgYnJhbmNo
SWZOb3RCaWdJbnQzMihKU1ZhbHVlUmVncyByZWdzLCBHUFJSZWcgdGVtcEdQUikKKyAgICB7Cisg
ICAgICAgIHJldHVybiBicmFuY2hJZk5vdEJpZ0ludDMyKHJlZ3MuZ3ByKCksIHRlbXBHUFIpOwor
ICAgIH0KICNlbmRpZiAvLyBVU0UoQklHSU5UMzIpCiAKICAgICAvLyBGSVhNRTogcmVuYW1lIHRo
ZXNlIHRvIG1ha2UgaXQgY2xlYXIgdGhhdCB0aGV5IHJlcXVpcmUgdGhlaXIgaW5wdXQgdG8gYmUg
YSBjZWxsLgpAQCAtMTgzMyw3ICsxODIwLDcgQEAgY2xhc3MgQXNzZW1ibHlIZWxwZXJzIDogcHVi
bGljIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAgbm90Qm9vbGVhbi5saW5rKHRoaXMpOwogCiAj
aWYgVVNFKEJJR0lOVDMyKQotICAgICAgICBKdW1wIG5vdEJpZ0ludDMyID0gYnJhbmNoSWZOb3RC
aWdJbnQzMktub3duTm90TnVtYmVyKHJlZ3MsIHRlbXBHUFIpOworICAgICAgICBKdW1wIG5vdEJp
Z0ludDMyID0gYnJhbmNoSWZOb3RCaWdJbnQzMihyZWdzLCB0ZW1wR1BSKTsKICAgICAgICAgZnVu
Y3RvcihUeXBlb2ZUeXBlOjpCaWdJbnQsIGZhbHNlKTsKICAgICAgICAgbm90QmlnSW50MzIubGlu
ayh0aGlzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3Rz
L0NoYW5nZUxvZwppbmRleCAyYjczZTUzOGM3ZjA3M2FmMTcwNDVlODE3MjI3MDRiOTBiOTkxNGI5
Li42NGFjZGZjOTY5ZWRjMDFjNjI3MzZjODIzZGU5ZDEwYWIyYTNkMzBkIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIwLTA0LTIyICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0pTQ10gYnJhbmNoSWZCaWdJbnQzMiBjYW4gdXNlIEJpZ0ludDMyTWFzayBhbmQgcmVtb3Zl
IGJyYW5jaElmTnVtYmVyIGZpbHRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjEwODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBzdHJlc3MvYW55YmlnaW50dXNlLXNob3VsZC1maWx0ZXItbnVtYmVy
LWNvcnJlY3RseS5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0
KToKKwogMjAyMC0wNC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtKU0NdIEpTQmlnSW50IGluYyBvcGVyYXRpb24gZG9lcyBub3QgcHJvZHVjZSByaWdo
dCBIZWFwQmlnSW50IHplcm8KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2FueWJpZ2ludHVz
ZS1zaG91bGQtZmlsdGVyLW51bWJlci1jb3JyZWN0bHkuanMgYi9KU1Rlc3RzL3N0cmVzcy9hbnli
aWdpbnR1c2Utc2hvdWxkLWZpbHRlci1udW1iZXItY29ycmVjdGx5LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5
NjAzOGJhZjIxOWI0OTE2MjIwMjdjODdjNDIyZDA1YmI0NWY5NGQKLS0tIC9kZXYvbnVsbAorKysg
Yi9KU1Rlc3RzL3N0cmVzcy9hbnliaWdpbnR1c2Utc2hvdWxkLWZpbHRlci1udW1iZXItY29ycmVj
dGx5LmpzCkBAIC0wLDAgKzEsMjUgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0
ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGEsIGIpCit7
CisgICAgcmV0dXJuIGEgPT09IGI7Cit9Citub0lubGluZSh0ZXN0KTsKKworZm9yICh2YXIgaSA9
IDA7IGkgPCAxZTY7ICsraSkgeworICAgIGlmIChpICYgMSkgeworICAgICAgICB0ZXN0KDBuLCAw
bik7CisgICAgICAgIHRlc3QoMG4sIDEwbik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdCgx
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuLCAyMDBuKTsKKyAgICAg
ICAgdGVzdCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuLCAxMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKTsKKyAgICB9Cit9CitzaG91
bGRCZSh0ZXN0KDIwLCAyMCksIHRydWUpOworc2hvdWxkQmUodGVzdCgyMCwgNDApLCBmYWxzZSk7
CitzaG91bGRCZSh0ZXN0KDAuNSwgMC41KSwgdHJ1ZSk7CitzaG91bGRCZSh0ZXN0KDAuNSwgMC4y
NCksIGZhbHNlKTsKK3Nob3VsZEJlKHRlc3QoMjAuMSAtIDAuMSwgMjApLCB0cnVlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397244</attachid>
            <date>2020-04-22 13:13:52 -0700</date>
            <delta_ts>2020-04-22 13:56:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210870-20200422131351.patch</filename>
            <type>text/plain</type>
            <size>20143</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NWM1NWMzNjdiMzE5MjU2YzhmNzJhYTUxMTE5ZmM2Y2FmOGFhYzA2Li43M2NiZjg1MDkxNjdiMGRm
MmVhYmIzMWM0MjA0YWRlZWVlYTYwMGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MSBAQAorMjAyMC0wNC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIGJyYW5jaElmQmlnSW50MzIgY2FuIHVzZSBCaWdJbnQzMk1hc2sg
YW5kIHJlbW92ZSBicmFuY2hJZk51bWJlciBmaWx0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ5IHVzaW5nIEJpZ0ludDMyTWFzaywgd2UgY2FuIGRl
dGVjdCBCaWdJbnQzMiB3aXRob3V0IGZpbHRlcmluZyBOdW1iZXJzLiBJbiB0aGlzIHBhdGNoLAor
CisgICAgICAgIDEuIFJlbW92ZSBicmFuY2hJZkJpZ0ludDMyS25vd25Ob3ROdW1iZXIgYW5kIGJy
YW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlci4gQW5kIGFsd2F5cyB1c2UgYnJhbmNoQmln
SW50MzIgYW5kIGJyYW5jaE5vdEJpZ0ludDMyIGluc3RlYWQuCisgICAgICAgIDIuIFJlbW92ZSBi
cmFuY2hJZk51bWJlciB0eXBlIGZpbHRlcmluZyBpbiBERkcuCisgICAgICAgIDMuIFVzZSBCaWdJ
bnQzMk1hc2sgYmFzZWQgc2NoZW1lIGluIEZUTC4KKyAgICAgICAgNC4gQWRkIGFuZDY0KFRydXN0
ZWRJbW02NCwgUmVnaXN0ZXJJRCkgaW1wbGVtZW50YXRpb25zIGluIE1hY3JvQXNzZW1ibGVyLgor
CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6YW5kNjQpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlclg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6
YW5kNjQpOgorICAgICAgICAqIGJ5dGVjb2RlL0FyaXRoUHJvZmlsZS5jcHA6CisgICAgICAgIChK
U0M6OkFyaXRoUHJvZmlsZTxCaXRmaWVsZFR5cGU+OjplbWl0T2JzZXJ2ZVJlc3VsdCk6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQmlnSW50MzIpOgorICAgICAgICAqIGZ0bC9GVExM
b3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpj
b21waWxlVG9OdW1lcmljKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6
Y29tcGlsZUNvbXBhcmVTdHJpY3RFcSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OmNvbXBpbGVJc0JpZ0ludCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OmJvb2xpZnkpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpi
dWlsZFR5cGVPZik6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omxvd0Jp
Z0ludDMyKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNCaWdJbnQz
Mik6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmlzTm90QmlnSW50MzIp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjppc05vdEFueUJpZ0ludCk6
CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZUJpZ0ludDMy
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlQW55Qmln
SW50KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNCaWdJbnQzMktu
b3duTm90Q2VsbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1Rv
QjM6OmlzQmlnSW50MzJLbm93bk5vdE51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvQjM6OmlzTm90QmlnSW50MzJLbm93bk5vdE51bWJlcik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmlzTm90QW55QmlnSW50
S25vd25Ob3ROdW1iZXIpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMu
Y3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRDb252ZXJ0VmFsdWVUb0Jv
b2xlYW4pOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmVmFsdWUpOgor
ICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlI
ZWxwZXJzOjpicmFuY2hJZkJpZ0ludDMyKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJz
OjpicmFuY2hJZk5vdEJpZ0ludDMyKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpl
bWl0VHlwZU9mKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZkJpZ0lu
dDMyS25vd25Ob3ROdW1iZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBl
cnM6OmJyYW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlcik6IERlbGV0ZWQuCisKIDIwMjAt
MDQtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlND
XSBKU0JpZ0ludCBpbmMgb3BlcmF0aW9uIGRvZXMgbm90IHByb2R1Y2UgcmlnaHQgSGVhcEJpZ0lu
dCB6ZXJvCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQVJNNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk02NC5oCmluZGV4IDE1Mzk3ZThiN2Y0OGE4NGZiMjdmMTFkMmYxMzcxZTBlMmEz
MDFjYjYuLmE4ZWZmZWJiZjgxMzU1MWYwMTAxMDAwMzJjODEyMDc0MzI5OWM3YWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02
NC5oCkBAIC00MTYsNiArNDE2LDE1IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNNjQgOiBwdWJs
aWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3NlbWJsZXI+IHsKICAgICB9CiAKICAgICB2b2lk
IGFuZDY0KFRydXN0ZWRJbW1QdHIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAg
ICBpbnRwdHJfdCB2YWx1ZSA9IGltbS5hc0ludFB0cigpOworICAgICAgICBpZiBjb25zdGV4cHIg
KHNpemVvZih2b2lkKikgPT0gc2l6ZW9mKHVpbnQ2NF90KSkKKyAgICAgICAgICAgIGFuZDY0KFRy
dXN0ZWRJbW02NCh2YWx1ZSksIGRlc3QpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBhbmQ2
NChUcnVzdGVkSW1tMzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgZGVzdCk7CisgICAg
fQorCisgICAgdm9pZCBhbmQ2NChUcnVzdGVkSW1tNjQgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAg
ICAgewogICAgICAgICBMb2dpY2FsSW1tZWRpYXRlIGxvZ2ljYWxJbW0gPSBMb2dpY2FsSW1tZWRp
YXRlOjpjcmVhdGU2NChyZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihpbW0ubV92YWx1ZSkpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyWDg2XzY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyWDg2XzY0LmgKaW5kZXggMmExZGRlZGVlMzZkYmUzY2RlNTcyZjQ4NjA1YTQ2NGM4MGI2ZTc4
Ny4uMGI2NWMyYWUxZjVmNDQxNzM0ZTliN2YxZWQzNjNhZmE1YzNmMGNhNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQu
aApAQCAtNDQxLDcgKzQ0MSwxMyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlclg4Nl82NCA6IHB1Ymxp
YyBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbiB7CiAKICAgICB2b2lkIGFuZDY0KFRydXN0ZWRJbW1Q
dHIgaW1tLCBSZWdpc3RlcklEIHNyY0Rlc3QpCiAgICAgewotICAgICAgICBpbnRwdHJfdCBpbnRW
YWx1ZSA9IGltbS5hc0ludHB0cigpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZih2b2lk
KikgPT0gc2l6ZW9mKGludDY0X3QpKTsKKyAgICAgICAgYW5kNjQoVHJ1c3RlZEltbTY0KGJpdHdp
c2VfY2FzdDxpbnQ2NF90PihpbW0ubV92YWx1ZSkpLCBzcmNEZXN0KTsKKyAgICB9CisKKyAgICB2
b2lkIGFuZDY0KFRydXN0ZWRJbW02NCBpbW0sIFJlZ2lzdGVySUQgc3JjRGVzdCkKKyAgICB7Cisg
ICAgICAgIGludDY0X3QgaW50VmFsdWUgPSBpbW0ubV92YWx1ZTsKICAgICAgICAgaWYgKGludFZh
bHVlIDw9IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpCiAgICAgICAgICAgICAm
JiBpbnRWYWx1ZSA+PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSkgewogICAg
ICAgICAgICAgYW5kNjQoVHJ1c3RlZEltbTMyKHN0YXRpY19jYXN0PGludDMyX3Q+KGludFZhbHVl
KSksIHNyY0Rlc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0FyaXRoUHJvZmlsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQ
cm9maWxlLmNwcAppbmRleCA4NWVjNzI4MzJmMzJjMjYzZDdjNTc4NjVlYzJiMTllOTkyMzBmMTky
Li4xM2EwY2VhMTkwMTFkMzlhZTg5M2M2OTI1NWE1ZTVhZTg4ODJlODNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmNwcApAQCAtNDksNyArNDks
NyBAQCB2b2lkIEFyaXRoUHJvZmlsZTxCaXRmaWVsZFR5cGU+OjplbWl0T2JzZXJ2ZVJlc3VsdChD
Q2FsbEhlbHBlcnMmIGppdCwgSlNWYWx1ZVJlZwogICAgIG5vdERvdWJsZS5saW5rKCZqaXQpOwog
CiAjaWYgVVNFKEJJR0lOVDMyKQotICAgIENDYWxsSGVscGVyczo6SnVtcCBub3RCaWdJbnQzMiA9
IGppdC5icmFuY2hJZk5vdEJpZ0ludDMyS25vd25Ob3ROdW1iZXIocmVncywgdGVtcEdQUik7Cisg
ICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5vdEJpZ0ludDMyID0gaml0LmJyYW5jaElmTm90QmlnSW50
MzIocmVncywgdGVtcEdQUik7CiAgICAgZW1pdFNldEJpZ0ludDMyKGppdCk7CiAgICAgZG9uZS5h
cHBlbmQoaml0Lmp1bXAoKSk7CiAgICAgbm90QmlnSW50MzIubGluaygmaml0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDRj
YTc4NzdjNzlhYzRjMGU0NTEzZGUwZTgwYjk2YjYwYWUyNzVlZmUuLjM3ODgzZDM4YTZiYzBjOWVl
MTM3Y2RmOTE4MjQwNDZmZTk5OTEzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMTQ2OSw4ICsxNDY5LDcgQEAgR1BSUmVn
IFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQmlnSW50MzIoRWRnZSBlZGdlKQogICAgICAg
ICBpZiAodHlwZSAmIH5TcGVjQmlnSW50MzIpIHsKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6
SnVtcExpc3QgZmFpbHVyZUNhc2VzOwogICAgICAgICAgICAgR1BSUmVnIHRlbXBHUFIgPSBhbGxv
Y2F0ZSgpOwotICAgICAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hJZk51
bWJlcihncHIpKTsKLSAgICAgICAgICAgIGZhaWx1cmVDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNo
SWZOb3RCaWdJbnQzMktub3duTm90TnVtYmVyKGdwciwgdGVtcEdQUikpOworICAgICAgICAgICAg
ZmFpbHVyZUNhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hJZk5vdEJpZ0ludDMyKGdwciwgdGVtcEdQ
UikpOwogICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlUmVncyhn
cHIpLCBlZGdlLCBmYWlsdXJlQ2FzZXMpOwogICAgICAgICAgICAgdW5sb2NrKHRlbXBHUFIpOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAKaW5kZXggMzIwNTExYWUwMjcxNDI4NTdkNDRhMjUwN2I0MjYzZGI4OWY1N2EyNi4uZWFiNWY2
ZjJjNDMzOTEwYjJlZGU5ZGQ4MzhlNDhjNTNiODJhOGRjZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtNzU1NCw3ICs3NTU0LDcgQEAgY2xh
c3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAgIC8vIG5vdE51bWJlciBjYXNlLgogICAgICAg
ICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3ROdW1iZXIsIGNv
bnRpbnVhdGlvbik7CiAjaWYgVVNFKEJJR0lOVDMyKQotICAgICAgICAgICAgbV9vdXQuYnJhbmNo
KGlzQmlnSW50MzJLbm93bk5vdE51bWJlcih2YWx1ZSwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxk
MSgpKSksIHVuc3VyZShjb250aW51YXRpb24pLCB1bnN1cmUobm90QmlnSW50MzIpKTsKKyAgICAg
ICAgICAgIG1fb3V0LmJyYW5jaChpc0JpZ0ludDMyKHZhbHVlLCBwcm92ZW5UeXBlKG1fbm9kZS0+
Y2hpbGQxKCkpKSwgdW5zdXJlKGNvbnRpbnVhdGlvbiksIHVuc3VyZShub3RCaWdJbnQzMikpOwog
ICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90QmlnSW50MzIpOwogI2VuZGlmCiAgICAgICAg
ICAgICBtX291dC5icmFuY2goaXNDZWxsKHZhbHVlLCBwcm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQx
KCkpKSwgdW5zdXJlKGlzQ2VsbFBhdGgpLCB1bnN1cmUoc2xvd1BhdGgpKTsKQEAgLTg3MTksOSAr
ODcxOSw2IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBy
aWdodElzTm90QmlnSW50MzIgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgTEJhc2lj
QmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKIAotICAgICAgICAgICAgRlRM
X1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGxlZnQpLCBtX25vZGUtPmNoaWxkMSgpLCB+U3BlY0Z1
bGxOdW1iZXIsIGlzTnVtYmVyKGxlZnQpKTsKLSAgICAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpz
VmFsdWVWYWx1ZShyaWdodCksIG1fbm9kZS0+Y2hpbGQyKCksIH5TcGVjRnVsbE51bWJlciwgaXNO
dW1iZXIocmlnaHQpKTsKLQogICAgICAgICAgICAgLy8gSW5zZXJ0cyBhIGNoZWNrIHRoYXQgYSB2
YWx1ZSBpcyBhIEhlYXBCaWdJbnQsIGFzc3VtaW5nIG9ubHkgdGhhdCB3ZSBrbm93IGl0IGlzIG5v
dCBhIEJpZ0ludDMyCiAgICAgICAgICAgICBhdXRvIGNoZWNrSXNIZWFwQmlnSW50ID0gWyZdKExW
YWx1ZSBsb3dWYWx1ZSwgRWRnZSBoaWdoVmFsdWUpIHsKICAgICAgICAgICAgICAgICBpZiAobV9p
bnRlcnByZXRlci5uZWVkc1R5cGVDaGVjayhoaWdoVmFsdWUsIFNwZWNIZWFwQmlnSW50KSkgewpA
QCAtODczMSwxMCArODcyOCwxMCBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH07CiAKLSAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0JpZ0lu
dDMyS25vd25Ob3ROdW1iZXIobGVmdCwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMSgpKSksIHVu
c3VyZShsZWZ0SXNCaWdJbnQzMiksIHVuc3VyZShsZWZ0SXNOb3RCaWdJbnQzMikpOworICAgICAg
ICAgICAgbV9vdXQuYnJhbmNoKGlzQmlnSW50MzIobGVmdCwgcHJvdmVuVHlwZShtX25vZGUtPmNo
aWxkMSgpKSksIHVuc3VyZShsZWZ0SXNCaWdJbnQzMiksIHVuc3VyZShsZWZ0SXNOb3RCaWdJbnQz
MikpOwogCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRv
KGxlZnRJc0JpZ0ludDMyLCBib3RoQXJlQmlnSW50MzIpOwotICAgICAgICAgICAgbV9vdXQuYnJh
bmNoKGlzQmlnSW50MzJLbm93bk5vdE51bWJlcihyaWdodCwgcHJvdmVuVHlwZShtX25vZGUtPmNo
aWxkMigpKSksIHVuc3VyZShib3RoQXJlQmlnSW50MzIpLCB1bnN1cmUob25seUxlZnRJc0JpZ0lu
dDMyKSk7CisgICAgICAgICAgICBtX291dC5icmFuY2goaXNCaWdJbnQzMihyaWdodCwgcHJvdmVu
VHlwZShtX25vZGUtPmNoaWxkMigpKSksIHVuc3VyZShib3RoQXJlQmlnSW50MzIpLCB1bnN1cmUo
b25seUxlZnRJc0JpZ0ludDMyKSk7CiAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGJvdGhB
cmVCaWdJbnQzMiwgb25seUxlZnRJc0JpZ0ludDMyKTsKICAgICAgICAgICAgIFZhbHVlRnJvbUJs
b2NrIHJlc3VsdEJvdGhBcmVCaWdJbnQzMiA9IG1fb3V0LmFuY2hvcihtX291dC5lcXVhbChsZWZ0
LCByaWdodCkpOwpAQCAtODc1NSw3ICs4NzUyLDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAg
ICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKIAogICAgICAgICAgICAgbV9vdXQu
YXBwZW5kVG8obGVmdElzSGVhcEJpZ0ludCwgcmlnaHRJc0JpZ0ludDMyKTsKLSAgICAgICAgICAg
IG1fb3V0LmJyYW5jaChpc0JpZ0ludDMyS25vd25Ob3ROdW1iZXIocmlnaHQsIHByb3ZlblR5cGUo
bV9ub2RlLT5jaGlsZDIoKSkpLCB1bnN1cmUocmlnaHRJc0JpZ0ludDMyKSwgdW5zdXJlKHJpZ2h0
SXNOb3RCaWdJbnQzMikpOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlzQmlnSW50MzIocmln
aHQsIHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDIoKSkpLCB1bnN1cmUocmlnaHRJc0JpZ0ludDMy
KSwgdW5zdXJlKHJpZ2h0SXNOb3RCaWdJbnQzMikpOwogCiAgICAgICAgICAgICBtX291dC5hcHBl
bmRUbyhyaWdodElzQmlnSW50MzIsIHJpZ2h0SXNOb3RCaWdJbnQzMik7CiAgICAgICAgICAgICBM
VmFsdWUgdW5ib3hlZFJpZ2h0ID0gdW5ib3hCaWdJbnQzMihyaWdodCk7CkBAIC0xMDkyOCw3ICsx
MDkyNSw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAKICAgICAgICAgTEJhc2ljQmxvY2sgbGFz
dE5leHQgPSBtX291dC5hcHBlbmRUbyhpc05vdENlbGxDYXNlLCBpc0NlbGxDYXNlKTsKICAgICAg
ICAgLy8gRklYTUU6IHdlIHNob3VsZCBmaWx0ZXIgdGhlIHByb3ZlblR5cGUgdG8gaW5jbHVkZSB0
aGUgZmFjdCB0aGF0IHdlIGtub3cgd2UgYXJlIG5vdCBkZWFsaW5nIHdpdGggYSBjZWxsCi0gICAg
ICAgIFZhbHVlRnJvbUJsb2NrIG5vdENlbGxSZXN1bHQgPSBtX291dC5hbmNob3IoaXNCaWdJbnQz
Mktub3duTm90Q2VsbCh2YWx1ZSwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMSgpKSkpOworICAg
ICAgICBWYWx1ZUZyb21CbG9jayBub3RDZWxsUmVzdWx0ID0gbV9vdXQuYW5jaG9yKGlzQmlnSW50
MzIodmFsdWUsIHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDEoKSkpKTsKICAgICAgICAgbV9vdXQu
anVtcChjb250aW51YXRpb24pOwogCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGlzQ2VsbENhc2Us
IGNvbnRpbnVhdGlvbik7CkBAIC0xNTQ3MSw3ICsxNTQ2OCw3IEBAIGNsYXNzIExvd2VyREZHVG9C
MyB7CiAjaWYgVVNFKEJJR0lOVDMyKQogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90RG91
YmxlQ2FzZSwgYmlnSW50MzJDYXNlKTsKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKLSAgICAg
ICAgICAgICAgICBpc0JpZ0ludDMyS25vd25Ob3ROdW1iZXIodmFsdWUsIHByb3ZlblR5cGUoZWRn
ZSkgJiB+U3BlY0NlbGwpLAorICAgICAgICAgICAgICAgIGlzQmlnSW50MzIodmFsdWUsIHByb3Zl
blR5cGUoZWRnZSkgJiB+U3BlY0NlbGwpLAogICAgICAgICAgICAgICAgIHVuc3VyZShiaWdJbnQz
MkNhc2UpLCB1bnN1cmUobm90QmlnSW50MzJDYXNlKSk7CiAKICAgICAgICAgICAgIG1fb3V0LmFw
cGVuZFRvKGJpZ0ludDMyQ2FzZSwgbm90QmlnSW50MzJDYXNlKTsKQEAgLTE2MTk3LDcgKzE2MTk0
LDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKIAogI2lmIFVTRShCSUdJTlQzMikKICAgICAgICAg
bV9vdXQuYXBwZW5kVG8obm90TnVtYmVyQ2FzZSwgbm90QmlnSW50MzJDYXNlKTsKLSAgICAgICAg
bV9vdXQuYnJhbmNoKGlzQmlnSW50MzJLbm93bk5vdE51bWJlcih2YWx1ZSwgcHJvdmVuVHlwZShj
aGlsZCkgJiB+U3BlY0NlbGwpLCB1bnN1cmUoYmlnSW50Q2FzZSksIHVuc3VyZShub3RCaWdJbnQz
MkNhc2UpKTsKKyAgICAgICAgbV9vdXQuYnJhbmNoKGlzQmlnSW50MzIodmFsdWUsIHByb3ZlblR5
cGUoY2hpbGQpICYgflNwZWNDZWxsKSwgdW5zdXJlKGJpZ0ludENhc2UpLCB1bnN1cmUobm90Qmln
SW50MzJDYXNlKSk7CiAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90QmlnSW50MzJDYXNlLCBu
b3ROdWxsQ2FzZSk7CiAjZWxzZQpAQCAtMTY5MTcsOCArMTY5MTQsNyBAQCBjbGFzcyBMb3dlckRG
R1RvQjMgewogICAgICAgICBMb3dlcmVkTm9kZVZhbHVlIHZhbHVlID0gbV9qc1ZhbHVlVmFsdWVz
LmdldChlZGdlLm5vZGUoKSk7CiAgICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkgewogICAgICAg
ICAgICAgTFZhbHVlIHJlc3VsdCA9IHZhbHVlLnZhbHVlKCk7Ci0gICAgICAgICAgICBGVExfVFlQ
RV9DSEVDSyhqc1ZhbHVlVmFsdWUocmVzdWx0KSwgZWRnZSwgflNwZWNGdWxsTnVtYmVyLCBpc051
bWJlcihyZXN1bHQpKTsKLSAgICAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShy
ZXN1bHQpLCBlZGdlLCBTcGVjQmlnSW50MzIsIGlzTm90QmlnSW50MzJLbm93bk5vdE51bWJlcihy
ZXN1bHQpKTsKKyAgICAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShyZXN1bHQp
LCBlZGdlLCBTcGVjQmlnSW50MzIsIGlzTm90QmlnSW50MzIocmVzdWx0KSk7CiAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAKQEAgLTE3MTE1LDIzICsxNzExMSwxNyBAQCBj
bGFzcyBMb3dlckRGR1RvQjMgewogICAgIH0KIAogI2lmIFVTRShCSUdJTlQzMikKLSAgICBMVmFs
dWUgaXNCaWdJbnQzMktub3duTm90Q2VsbChMVmFsdWUganNWYWx1ZSwgU3BlY3VsYXRlZFR5cGUg
dHlwZSA9IFNwZWNGdWxsVG9wKQorICAgIExWYWx1ZSBpc0JpZ0ludDMyKExWYWx1ZSBqc1ZhbHVl
LCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCiAgICAgewogICAgICAgICBpZiAo
TFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSwgU3BlY0JpZ0ludDMyKSkKICAgICAg
ICAgICAgIHJldHVybiBwcm92ZW47CiAgICAgICAgIHJldHVybiBtX291dC5lcXVhbChtX291dC5i
aXRBbmQoanNWYWx1ZSwgbV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjpCaWdJbnQzMk1hc2spKSwg
bV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjpCaWdJbnQzMlRhZykpOwogICAgIH0KLSAgICBMVmFs
dWUgaXNCaWdJbnQzMktub3duTm90TnVtYmVyKExWYWx1ZSBqc1ZhbHVlLCBTcGVjdWxhdGVkVHlw
ZSB0eXBlID0gU3BlY0Z1bGxUb3ApCi0gICAgewotICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9
IGlzUHJvdmVuVmFsdWUodHlwZSwgU3BlY0JpZ0ludDMyKSkKLSAgICAgICAgICAgIHJldHVybiBw
cm92ZW47Ci0gICAgICAgIHJldHVybiBtX291dC5lcXVhbChtX291dC5iaXRBbmQoanNWYWx1ZSwg
bV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjpCaWdJbnQzMlRhZykpLCBtX291dC5jb25zdEludDY0
KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSk7Ci0gICAgfQotICAgIExWYWx1ZSBpc05vdEJpZ0ludDMy
S25vd25Ob3ROdW1iZXIoTFZhbHVlIGpzVmFsdWUsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVj
RnVsbFRvcCkKKyAgICBMVmFsdWUgaXNOb3RCaWdJbnQzMihMVmFsdWUganNWYWx1ZSwgU3BlY3Vs
YXRlZFR5cGUgdHlwZSA9IFNwZWNGdWxsVG9wKQogICAgIHsKICAgICAgICAgaWYgKExWYWx1ZSBw
cm92ZW4gPSBpc1Byb3ZlblZhbHVlKHR5cGUsIH5TcGVjQmlnSW50MzIpKQogICAgICAgICAgICAg
cmV0dXJuIHByb3ZlbjsKLSAgICAgICAgcmV0dXJuIG1fb3V0Lm5vdEVxdWFsKG1fb3V0LmJpdEFu
ZChqc1ZhbHVlLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSksIG1fb3V0
LmNvbnN0SW50NjQoSlNWYWx1ZTo6QmlnSW50MzJUYWcpKTsKKyAgICAgICAgcmV0dXJuIG1fb3V0
Lm5vdEVxdWFsKG1fb3V0LmJpdEFuZChqc1ZhbHVlLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6
OkJpZ0ludDMyTWFzaykpLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSk7
CiAgICAgfQogICAgIExWYWx1ZSB1bmJveEJpZ0ludDMyKExWYWx1ZSBqc1ZhbHVlKQogICAgIHsK
QEAgLTE3MTQzLDcgKzE3MTMzLDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAg
IG1fb3V0LnNobChtX291dC56ZXJvRXh0KGludDMyVmFsdWUsIEIzOjpJbnQ2NCksIG1fb3V0LmNv
bnN0SW50NjQoMTYpKSwKICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6Qmln
SW50MzJUYWcpKTsKICAgICB9Ci0gICAgTFZhbHVlIGlzTm90QW55QmlnSW50S25vd25Ob3ROdW1i
ZXIoTFZhbHVlIGpzVmFsdWUsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKKyAg
ICBMVmFsdWUgaXNOb3RBbnlCaWdJbnQoTFZhbHVlIGpzVmFsdWUsIFNwZWN1bGF0ZWRUeXBlIHR5
cGUgPSBTcGVjRnVsbFRvcCkKICAgICB7CiAgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQ
cm92ZW5WYWx1ZSh0eXBlLCB+U3BlY0JpZ0ludCkpCiAgICAgICAgICAgICByZXR1cm4gcHJvdmVu
OwpAQCAtMTcxNTksNyArMTcxNDksNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBM
QmFzaWNCbG9jayBpc0NlbGxDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2lj
QmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKIAotICAgICAgICBtX291dC5i
cmFuY2goaXNCaWdJbnQzMktub3duTm90TnVtYmVyKGpzVmFsdWUsIHR5cGUpLCB1bnN1cmUoaXNC
aWdJbnQzMkNhc2UpLCB1bnN1cmUoaXNOb3RCaWdJbnQzMkNhc2UpKTsKKyAgICAgICAgbV9vdXQu
YnJhbmNoKGlzQmlnSW50MzIoanNWYWx1ZSwgdHlwZSksIHVuc3VyZShpc0JpZ0ludDMyQ2FzZSks
IHVuc3VyZShpc05vdEJpZ0ludDMyQ2FzZSkpOwogCiAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3RO
ZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXNCaWdJbnQzMkNhc2UsIGlzTm90QmlnSW50MzJDYXNlKTsK
ICAgICAgICAgVmFsdWVGcm9tQmxvY2sgcmV0dXJuRmFsc2UgPSBtX291dC5hbmNob3IobV9vdXQu
Ym9vbGVhbkZhbHNlKTsKQEAgLTE4MTkwLDE1ICsxODE4MCwxMyBAQCBjbGFzcyBMb3dlckRGR1Rv
QjMgewogICAgIHZvaWQgc3BlY3VsYXRlQmlnSW50MzIoRWRnZSBlZGdlKQogICAgIHsKICAgICAg
ICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZShlZGdlLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRp
b24pOwotICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUodmFsdWUpLCBlZGdlLCB+
U3BlY0Z1bGxOdW1iZXIsIGlzTnVtYmVyKHZhbHVlKSk7Ci0gICAgICAgIEZUTF9UWVBFX0NIRUNL
KGpzVmFsdWVWYWx1ZSh2YWx1ZSksIGVkZ2UsIFNwZWNCaWdJbnQzMiwgaXNOb3RCaWdJbnQzMktu
b3duTm90TnVtYmVyKHZhbHVlKSk7CisgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1
ZSh2YWx1ZSksIGVkZ2UsIFNwZWNCaWdJbnQzMiwgaXNOb3RCaWdJbnQzMih2YWx1ZSkpOwogICAg
IH0KIAogICAgIHZvaWQgc3BlY3VsYXRlQW55QmlnSW50KEVkZ2UgZWRnZSkKICAgICB7CiAgICAg
ICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0pTVmFsdWUoZWRnZSwgTWFudWFsT3BlcmFuZFNwZWN1bGF0
aW9uKTsKLSAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKHZhbHVlKSwgZWRnZSwg
flNwZWNGdWxsTnVtYmVyLCBpc051bWJlcih2YWx1ZSkpOwotICAgICAgICBGVExfVFlQRV9DSEVD
Syhqc1ZhbHVlVmFsdWUodmFsdWUpLCBlZGdlLCBTcGVjQmlnSW50LCBpc05vdEFueUJpZ0ludEtu
b3duTm90TnVtYmVyKHZhbHVlKSk7CisgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1
ZSh2YWx1ZSksIGVkZ2UsIFNwZWNCaWdJbnQsIGlzTm90QW55QmlnSW50KHZhbHVlKSk7CiAgICAg
fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1i
bHlIZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmNwcAppbmRleCBjODlmNjg1ZmY3YzhhODAwNzAyNmUxNTY4ZWVhOTk2YTNlNmJiZjhkLi4zOWRl
YmVlMzZkZTFmNjZiOWJjNDg5M2ExZjQ4YmU1ODVjM2VmYTEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCkBAIC03NTUsNyArNzU1LDcgQEAgdm9p
ZCBBc3NlbWJseUhlbHBlcnM6OmVtaXRDb252ZXJ0VmFsdWVUb0Jvb2xlYW4oVk0mIHZtLCBKU1Zh
bHVlUmVncyB2YWx1ZSwgR1BSUmUKIAogICAgIG5vdERvdWJsZS5saW5rKHRoaXMpOwogI2lmIFVT
RShCSUdJTlQzMikKLSAgICBhdXRvIGlzTm90QmlnSW50MzIgPSBicmFuY2hJZk5vdEJpZ0ludDMy
S25vd25Ob3ROdW1iZXIodmFsdWUuZ3ByKCksIHJlc3VsdCk7CisgICAgYXV0byBpc05vdEJpZ0lu
dDMyID0gYnJhbmNoSWZOb3RCaWdJbnQzMih2YWx1ZS5ncHIoKSwgcmVzdWx0KTsKICAgICBtb3Zl
KHZhbHVlLmdwcigpLCByZXN1bHQpOwogICAgIHVyc2hpZnQ2NChUcnVzdGVkSW1tMzIoMTYpLCBy
ZXN1bHQpOwogICAgIGNvbXBhcmUzMihpbnZlcnQgPyBFcXVhbCA6IE5vdEVxdWFsLCByZXN1bHQs
IFRydXN0ZWRJbW0zMigwKSwgcmVzdWx0KTsKQEAgLTg1Niw3ICs4NTYsNyBAQCBBc3NlbWJseUhl
bHBlcnM6Okp1bXBMaXN0IEFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZWYWx1ZShWTSYgdm0sIEpT
VmFsdWVSZWdzIHZhbAogCiAgICAgbm90RG91YmxlLmxpbmsodGhpcyk7CiAjaWYgVVNFKEJJR0lO
VDMyKQotICAgIGF1dG8gaXNOb3RCaWdJbnQzMiA9IGJyYW5jaElmTm90QmlnSW50MzJLbm93bk5v
dE51bWJlcih2YWx1ZS5ncHIoKSwgc2NyYXRjaCk7CisgICAgYXV0byBpc05vdEJpZ0ludDMyID0g
YnJhbmNoSWZOb3RCaWdJbnQzMih2YWx1ZS5ncHIoKSwgc2NyYXRjaCk7CiAgICAgbW92ZSh2YWx1
ZS5ncHIoKSwgc2NyYXRjaCk7CiAgICAgdXJzaGlmdDY0KFRydXN0ZWRJbW0zMigxNiksIHNjcmF0
Y2gpOwogICAgIHRydXRoeS5hcHBlbmQoYnJhbmNoVGVzdDMyKGludmVydCA/IFplcm8gOiBOb25a
ZXJvLCBzY3JhdGNoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fz
c2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBl
cnMuaAppbmRleCBlZDA3M2U3NmRlNDk4MmVhYTBhNmU4ZWM5MDEwMTM1ZDk5ZGNhZWFmLi42NGJm
ODZmOWVkYTIwYjE5Mjc3Nzk2MjVlYjQ3MTIzNjY1ZTJjN2VjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTkzMSw0MSArOTMxLDI4IEBAIGNsYXNz
IEFzc2VtYmx5SGVscGVycyA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlciB7CiAgICAgfQogCiAjaWYg
VVNFKEJJR0lOVDMyKQotICAgIEp1bXAgYnJhbmNoSWZCaWdJbnQzMihHUFJSZWcgZ3ByLCBHUFJS
ZWcgdGVtcEdQUiwgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycykKLSAg
ICB7Ci0gICAgICAgIEp1bXAgbnVtYmVyID0gYnJhbmNoSWZOdW1iZXIoZ3ByLCBtb2RlKTsKLSAg
ICAgICAgSnVtcCBiaWdJbnQzMiA9IGJyYW5jaElmQmlnSW50MzJLbm93bk5vdE51bWJlcihncHIs
IHRlbXBHUFIpOwotICAgICAgICBudW1iZXIubGluayh0aGlzKTsKLSAgICAgICAgcmV0dXJuIGJp
Z0ludDMyOwotICAgIH0KLSAgICBKdW1wTGlzdCBicmFuY2hJZk5vdEJpZ0ludDMyKEdQUlJlZyBn
cHIsIEdQUlJlZyB0ZW1wR1BSLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0
ZXJzKQotICAgIHsKLSAgICAgICAgSnVtcExpc3QgcmVzdWx0OwotICAgICAgICByZXN1bHQuYXBw
ZW5kKGJyYW5jaElmTnVtYmVyKGdwciwgbW9kZSkpOwotICAgICAgICBKdW1wIGJpZ0ludDMyID0g
YnJhbmNoSWZCaWdJbnQzMktub3duTm90TnVtYmVyKGdwciwgdGVtcEdQUik7Ci0gICAgICAgIHJl
c3VsdC5hcHBlbmQoanVtcCgpKTsKLSAgICAgICAgYmlnSW50MzIubGluayh0aGlzKTsKLSAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICBKdW1wIGJyYW5jaElmQmlnSW50MzJLbm93
bk5vdE51bWJlcihHUFJSZWcgZ3ByLCBHUFJSZWcgdGVtcEdQUikKKyAgICBKdW1wIGJyYW5jaElm
QmlnSW50MzIoR1BSUmVnIGdwciwgR1BSUmVnIHRlbXBHUFIpCiAgICAgewogICAgICAgICBBU1NF
UlQodGVtcEdQUiAhPSBJbnZhbGlkR1BSUmVnKTsKICAgICAgICAgbW92ZShncHIsIHRlbXBHUFIp
OwotICAgICAgICBhbmQ2NChUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6QmlnSW50MzJUYWcpLCB0ZW1w
R1BSKTsKKyAgICAgICAgYW5kNjQoVHJ1c3RlZEltbTY0KEpTVmFsdWU6OkJpZ0ludDMyTWFzayks
IHRlbXBHUFIpOwogICAgICAgICByZXR1cm4gYnJhbmNoNjQoRXF1YWwsIHRlbXBHUFIsIFRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpCaWdJbnQzMlRhZykpOwogICAgIH0KLSAgICBKdW1wIGJyYW5jaElm
Tm90QmlnSW50MzJLbm93bk5vdE51bWJlcihKU1ZhbHVlUmVncyByZWdzLCBHUFJSZWcgdGVtcEdQ
UikKLSAgICB7Ci0gICAgICAgIHJldHVybiBicmFuY2hJZk5vdEJpZ0ludDMyS25vd25Ob3ROdW1i
ZXIocmVncy5ncHIoKSwgdGVtcEdQUik7Ci0gICAgfQotICAgIEp1bXAgYnJhbmNoSWZOb3RCaWdJ
bnQzMktub3duTm90TnVtYmVyKEdQUlJlZyBncHIsIEdQUlJlZyB0ZW1wR1BSKQorICAgIEp1bXAg
YnJhbmNoSWZOb3RCaWdJbnQzMihHUFJSZWcgZ3ByLCBHUFJSZWcgdGVtcEdQUikKICAgICB7CiAg
ICAgICAgIEFTU0VSVCh0ZW1wR1BSICE9IEludmFsaWRHUFJSZWcpOwogICAgICAgICBtb3ZlKGdw
ciwgdGVtcEdQUik7Ci0gICAgICAgIGFuZDY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCaWdJbnQz
MlRhZyksIHRlbXBHUFIpOworICAgICAgICBhbmQ2NChUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6Qmln
SW50MzJNYXNrKSwgdGVtcEdQUik7CiAgICAgICAgIHJldHVybiBicmFuY2g2NChOb3RFcXVhbCwg
dGVtcEdQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkJpZ0ludDMyVGFnKSk7CiAgICAgfQorICAg
IEp1bXAgYnJhbmNoSWZCaWdJbnQzMihKU1ZhbHVlUmVncyByZWdzLCBHUFJSZWcgdGVtcEdQUikK
KyAgICB7CisgICAgICAgIHJldHVybiBicmFuY2hJZkJpZ0ludDMyKHJlZ3MuZ3ByKCksIHRlbXBH
UFIpOworICAgIH0KKyAgICBKdW1wIGJyYW5jaElmTm90QmlnSW50MzIoSlNWYWx1ZVJlZ3MgcmVn
cywgR1BSUmVnIHRlbXBHUFIpCisgICAgeworICAgICAgICByZXR1cm4gYnJhbmNoSWZOb3RCaWdJ
bnQzMihyZWdzLmdwcigpLCB0ZW1wR1BSKTsKKyAgICB9CiAjZW5kaWYgLy8gVVNFKEJJR0lOVDMy
KQogCiAgICAgLy8gRklYTUU6IHJlbmFtZSB0aGVzZSB0byBtYWtlIGl0IGNsZWFyIHRoYXQgdGhl
eSByZXF1aXJlIHRoZWlyIGlucHV0IHRvIGJlIGEgY2VsbC4KQEAgLTE4MzMsNyArMTgyMCw3IEBA
IGNsYXNzIEFzc2VtYmx5SGVscGVycyA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAg
IG5vdEJvb2xlYW4ubGluayh0aGlzKTsKIAogI2lmIFVTRShCSUdJTlQzMikKLSAgICAgICAgSnVt
cCBub3RCaWdJbnQzMiA9IGJyYW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlcihyZWdzLCB0
ZW1wR1BSKTsKKyAgICAgICAgSnVtcCBub3RCaWdJbnQzMiA9IGJyYW5jaElmTm90QmlnSW50MzIo
cmVncywgdGVtcEdQUik7CiAgICAgICAgIGZ1bmN0b3IoVHlwZW9mVHlwZTo6QmlnSW50LCBmYWxz
ZSk7CiAgICAgICAgIG5vdEJpZ0ludDMyLmxpbmsodGhpcyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmI3M2U1MzhjN2Yw
NzNhZjE3MDQ1ZTgxNzIyNzA0YjkwYjk5MTRiOS4uNjRhY2RmYzk2OWVkYzAxYzYyNzM2YzgyM2Rl
OWQxMGFiMmEzZDMwZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wNC0yMiAgWXVzdWtlIFN1enVraSAg
PHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIGJyYW5jaElmQmlnSW50MzIgY2Fu
IHVzZSBCaWdJbnQzMk1hc2sgYW5kIHJlbW92ZSBicmFuY2hJZk51bWJlciBmaWx0ZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDg3MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2FueWJp
Z2ludHVzZS1zaG91bGQtZmlsdGVyLW51bWJlci1jb3JyZWN0bHkuanM6IEFkZGVkLgorICAgICAg
ICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisKIDIwMjAtMDQtMjIgIFl1c3VrZSBTdXp1
a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBKU0JpZ0ludCBpbmMgb3Bl
cmF0aW9uIGRvZXMgbm90IHByb2R1Y2UgcmlnaHQgSGVhcEJpZ0ludCB6ZXJvCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9hbnliaWdpbnR1c2Utc2hvdWxkLWZpbHRlci1udW1iZXItY29ycmVj
dGx5LmpzIGIvSlNUZXN0cy9zdHJlc3MvYW55YmlnaW50dXNlLXNob3VsZC1maWx0ZXItbnVtYmVy
LWNvcnJlY3RseS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOTYwMzhiYWYyMTliNDkxNjIyMDI3Yzg3YzQyMmQw
NWJiNDVmOTRkCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvYW55YmlnaW50dXNl
LXNob3VsZC1maWx0ZXItbnVtYmVyLWNvcnJlY3RseS5qcwpAQCAtMCwwICsxLDI1IEBACitmdW5j
dGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhw
ZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsK
K30KKworZnVuY3Rpb24gdGVzdChhLCBiKQoreworICAgIHJldHVybiBhID09PSBiOworfQorbm9J
bmxpbmUodGVzdCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBpZiAo
aSAmIDEpIHsKKyAgICAgICAgdGVzdCgwbiwgMG4pOworICAgICAgICB0ZXN0KDBuLCAxMG4pOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3QoMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwbiwgMjAwbik7CisgICAgICAgIHRlc3QoMTAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwbiwgMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwbik7CisgICAgfQorfQorc2hvdWxkQmUodGVzdCgyMCwgMjApLCB0cnVlKTsKK3No
b3VsZEJlKHRlc3QoMjAsIDQwKSwgZmFsc2UpOworc2hvdWxkQmUodGVzdCgwLjUsIDAuNSksIHRy
dWUpOworc2hvdWxkQmUodGVzdCgwLjUsIDAuMjQpLCBmYWxzZSk7CitzaG91bGRCZSh0ZXN0KDIw
LjEgLSAwLjEsIDIwKSwgdHJ1ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397255</attachid>
            <date>2020-04-22 13:56:56 -0700</date>
            <delta_ts>2020-04-22 14:09:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210870-20200422135650.patch</filename>
            <type>text/plain</type>
            <size>21428</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NWM1NWMzNjdiMzE5MjU2YzhmNzJhYTUxMTE5ZmM2Y2FmOGFhYzA2Li4wOTMyYWUxOWFlNGZhYjg3
ZWJhN2Y3MTQ1OGE4NTI3ODk2NTkyY2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAyMC0wNC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIGJyYW5jaElmQmlnSW50MzIgY2FuIHVzZSBCaWdJbnQzMk1hc2sg
YW5kIHJlbW92ZSBicmFuY2hJZk51bWJlciBmaWx0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ5IHVzaW5nIEJpZ0ludDMyTWFzaywgd2UgY2FuIGRl
dGVjdCBCaWdJbnQzMiB3aXRob3V0IGZpbHRlcmluZyBOdW1iZXJzLiBJbiB0aGlzIHBhdGNoLAor
CisgICAgICAgIDEuIFJlbW92ZSBicmFuY2hJZkJpZ0ludDMyS25vd25Ob3ROdW1iZXIgYW5kIGJy
YW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlci4gQW5kIGFsd2F5cyB1c2UgYnJhbmNoQmln
SW50MzIgYW5kIGJyYW5jaE5vdEJpZ0ludDMyIGluc3RlYWQuCisgICAgICAgIDIuIFJlbW92ZSBi
cmFuY2hJZk51bWJlciB0eXBlIGZpbHRlcmluZyBpbiBERkcuCisgICAgICAgIDMuIFVzZSBCaWdJ
bnQzMk1hc2sgYmFzZWQgc2NoZW1lIGluIEZUTC4KKyAgICAgICAgNC4gQWRkIGFuZDY0KFRydXN0
ZWRJbW02NCwgUmVnaXN0ZXJJRCkgaW1wbGVtZW50YXRpb25zIGluIE1hY3JvQXNzZW1ibGVyLgor
ICAgICAgICA1LiBBZGQgVGFnUmVnaXN0ZXJzTW9kZSB2ZXJzaW9uIGluIGJyYW5jaElmQmlnSW50
LiBXZSB1c2UgbnVtYmVyVGFnUmVnaXN0ZXIgdG8gcHJvZHVjZSByZWFsbHkgZWZmaWNpZW50IGNv
ZGVbMV0gYnkgYXZvaWRpbmcgbGFyZ2UgY29uc3RhbnQgbWF0ZXJpYWxpemF0aW9uLgorCisgICAg
ICAgIFsxXTogRnJvbQorICAgICAgICAgICAgICAgIG1vdiAlcmF4LCAlcmR4CisgICAgICAgICAg
ICAgICAgbW92ICQweGZmZmUwMDAwMDAwMDAwMTIsICVyMTEKKyAgICAgICAgICAgICAgICBhbmQg
JXIxMSwgJXJkeAorICAgICAgICAgICAgICAgIGNtcCAkMHgxMiwgJXJkeAorICAgICAgICAgICAg
IFRvCisgICAgICAgICAgICAgICAgbGVhIDB4MTIoJXIxNCksICVyZHgKKyAgICAgICAgICAgICAg
ICBhbmQgJXJheCwgJXJkeAorICAgICAgICAgICAgICAgIGNtcCAkMHgxMiwgJXJkeAorCisgICAg
ICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NDo6YW5kNjQpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlclg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6YW5kNjQp
OgorICAgICAgICAqIGJ5dGVjb2RlL0FyaXRoUHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6OkFy
aXRoUHJvZmlsZTxCaXRmaWVsZFR5cGU+OjplbWl0T2JzZXJ2ZVJlc3VsdCk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpmaWxsU3BlY3VsYXRlQmlnSW50MzIpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRG
R1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxl
VG9OdW1lcmljKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGls
ZUNvbXBhcmVTdHJpY3RFcSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OmNvbXBpbGVJc0JpZ0ludCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OmJvb2xpZnkpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpidWlsZFR5
cGVPZik6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omxvd0JpZ0ludDMy
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNCaWdJbnQzMik6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmlzTm90QmlnSW50MzIpOgorICAg
ICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjppc05vdEFueUJpZ0ludCk6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZUJpZ0ludDMyKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlQW55QmlnSW50KToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNCaWdJbnQzMktub3duTm90
Q2VsbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omlz
QmlnSW50MzJLbm93bk5vdE51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvQjM6OmlzTm90QmlnSW50MzJLbm93bk5vdE51bWJlcik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmlzTm90QW55QmlnSW50S25vd25O
b3ROdW1iZXIpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuY3BwOgor
ICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRDb252ZXJ0VmFsdWVUb0Jvb2xlYW4p
OgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmVmFsdWUpOgorICAgICAg
ICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJz
OjpicmFuY2hJZkJpZ0ludDMyKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFu
Y2hJZk5vdEJpZ0ludDMyKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjplbWl0VHlw
ZU9mKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZkJpZ0ludDMyS25v
d25Ob3ROdW1iZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJy
YW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlcik6IERlbGV0ZWQuCisKIDIwMjAtMDQtMjIg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBKU0Jp
Z0ludCBpbmMgb3BlcmF0aW9uIGRvZXMgbm90IHByb2R1Y2UgcmlnaHQgSGVhcEJpZ0ludCB6ZXJv
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk02NC5oCmluZGV4IDE1Mzk3ZThiN2Y0OGE4NGZiMjdmMTFkMmYxMzcxZTBlMmEzMDFjYjYu
LmE4ZWZmZWJiZjgxMzU1MWYwMTAxMDAwMzJjODEyMDc0MzI5OWM3YWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCkBA
IC00MTYsNiArNDE2LDE1IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNNjQgOiBwdWJsaWMgQWJz
dHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3NlbWJsZXI+IHsKICAgICB9CiAKICAgICB2b2lkIGFuZDY0
KFRydXN0ZWRJbW1QdHIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBpbnRw
dHJfdCB2YWx1ZSA9IGltbS5hc0ludFB0cigpOworICAgICAgICBpZiBjb25zdGV4cHIgKHNpemVv
Zih2b2lkKikgPT0gc2l6ZW9mKHVpbnQ2NF90KSkKKyAgICAgICAgICAgIGFuZDY0KFRydXN0ZWRJ
bW02NCh2YWx1ZSksIGRlc3QpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBhbmQ2NChUcnVz
dGVkSW1tMzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgZGVzdCk7CisgICAgfQorCisg
ICAgdm9pZCBhbmQ2NChUcnVzdGVkSW1tNjQgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewog
ICAgICAgICBMb2dpY2FsSW1tZWRpYXRlIGxvZ2ljYWxJbW0gPSBMb2dpY2FsSW1tZWRpYXRlOjpj
cmVhdGU2NChyZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihpbW0ubV92YWx1ZSkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
XzY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
XzY0LmgKaW5kZXggMmExZGRlZGVlMzZkYmUzY2RlNTcyZjQ4NjA1YTQ2NGM4MGI2ZTc4Ny4uMGI2
NWMyYWUxZjVmNDQxNzM0ZTliN2YxZWQzNjNhZmE1YzNmMGNhNyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaApAQCAt
NDQxLDcgKzQ0MSwxMyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlclg4Nl82NCA6IHB1YmxpYyBNYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbiB7CiAKICAgICB2b2lkIGFuZDY0KFRydXN0ZWRJbW1QdHIgaW1t
LCBSZWdpc3RlcklEIHNyY0Rlc3QpCiAgICAgewotICAgICAgICBpbnRwdHJfdCBpbnRWYWx1ZSA9
IGltbS5hc0ludHB0cigpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZih2b2lkKikgPT0g
c2l6ZW9mKGludDY0X3QpKTsKKyAgICAgICAgYW5kNjQoVHJ1c3RlZEltbTY0KGJpdHdpc2VfY2Fz
dDxpbnQ2NF90PihpbW0ubV92YWx1ZSkpLCBzcmNEZXN0KTsKKyAgICB9CisKKyAgICB2b2lkIGFu
ZDY0KFRydXN0ZWRJbW02NCBpbW0sIFJlZ2lzdGVySUQgc3JjRGVzdCkKKyAgICB7CisgICAgICAg
IGludDY0X3QgaW50VmFsdWUgPSBpbW0ubV92YWx1ZTsKICAgICAgICAgaWYgKGludFZhbHVlIDw9
IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpCiAgICAgICAgICAgICAmJiBpbnRW
YWx1ZSA+PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSkgewogICAgICAgICAg
ICAgYW5kNjQoVHJ1c3RlZEltbTMyKHN0YXRpY19jYXN0PGludDMyX3Q+KGludFZhbHVlKSksIHNy
Y0Rlc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FyaXRo
UHJvZmlsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxl
LmNwcAppbmRleCA4NWVjNzI4MzJmMzJjMjYzZDdjNTc4NjVlYzJiMTllOTkyMzBmMTkyLi41NzMx
OTY0Y2U1OTM1ZWQ3Y2NmY2E5M2I1MjFjMzI5YzdhYzkwZTM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmNwcApAQCAtNDksNyArNDksNyBAQCB2
b2lkIEFyaXRoUHJvZmlsZTxCaXRmaWVsZFR5cGU+OjplbWl0T2JzZXJ2ZVJlc3VsdChDQ2FsbEhl
bHBlcnMmIGppdCwgSlNWYWx1ZVJlZwogICAgIG5vdERvdWJsZS5saW5rKCZqaXQpOwogCiAjaWYg
VVNFKEJJR0lOVDMyKQotICAgIENDYWxsSGVscGVyczo6SnVtcCBub3RCaWdJbnQzMiA9IGppdC5i
cmFuY2hJZk5vdEJpZ0ludDMyS25vd25Ob3ROdW1iZXIocmVncywgdGVtcEdQUik7CisgICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wIG5vdEJpZ0ludDMyID0gaml0LmJyYW5jaElmTm90QmlnSW50MzIocmVn
cywgdGVtcEdQUiwgbW9kZSk7CiAgICAgZW1pdFNldEJpZ0ludDMyKGppdCk7CiAgICAgZG9uZS5h
cHBlbmQoaml0Lmp1bXAoKSk7CiAgICAgbm90QmlnSW50MzIubGluaygmaml0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDRj
YTc4NzdjNzlhYzRjMGU0NTEzZGUwZTgwYjk2YjYwYWUyNzVlZmUuLjM3ODgzZDM4YTZiYzBjOWVl
MTM3Y2RmOTE4MjQwNDZmZTk5OTEzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMTQ2OSw4ICsxNDY5LDcgQEAgR1BSUmVn
IFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQmlnSW50MzIoRWRnZSBlZGdlKQogICAgICAg
ICBpZiAodHlwZSAmIH5TcGVjQmlnSW50MzIpIHsKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6
SnVtcExpc3QgZmFpbHVyZUNhc2VzOwogICAgICAgICAgICAgR1BSUmVnIHRlbXBHUFIgPSBhbGxv
Y2F0ZSgpOwotICAgICAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hJZk51
bWJlcihncHIpKTsKLSAgICAgICAgICAgIGZhaWx1cmVDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNo
SWZOb3RCaWdJbnQzMktub3duTm90TnVtYmVyKGdwciwgdGVtcEdQUikpOworICAgICAgICAgICAg
ZmFpbHVyZUNhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hJZk5vdEJpZ0ludDMyKGdwciwgdGVtcEdQ
UikpOwogICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlUmVncyhn
cHIpLCBlZGdlLCBmYWlsdXJlQ2FzZXMpOwogICAgICAgICAgICAgdW5sb2NrKHRlbXBHUFIpOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAKaW5kZXggMzIwNTExYWUwMjcxNDI4NTdkNDRhMjUwN2I0MjYzZGI4OWY1N2EyNi4uZWFiNWY2
ZjJjNDMzOTEwYjJlZGU5ZGQ4MzhlNDhjNTNiODJhOGRjZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtNzU1NCw3ICs3NTU0LDcgQEAgY2xh
c3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAgIC8vIG5vdE51bWJlciBjYXNlLgogICAgICAg
ICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3ROdW1iZXIsIGNv
bnRpbnVhdGlvbik7CiAjaWYgVVNFKEJJR0lOVDMyKQotICAgICAgICAgICAgbV9vdXQuYnJhbmNo
KGlzQmlnSW50MzJLbm93bk5vdE51bWJlcih2YWx1ZSwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxk
MSgpKSksIHVuc3VyZShjb250aW51YXRpb24pLCB1bnN1cmUobm90QmlnSW50MzIpKTsKKyAgICAg
ICAgICAgIG1fb3V0LmJyYW5jaChpc0JpZ0ludDMyKHZhbHVlLCBwcm92ZW5UeXBlKG1fbm9kZS0+
Y2hpbGQxKCkpKSwgdW5zdXJlKGNvbnRpbnVhdGlvbiksIHVuc3VyZShub3RCaWdJbnQzMikpOwog
ICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90QmlnSW50MzIpOwogI2VuZGlmCiAgICAgICAg
ICAgICBtX291dC5icmFuY2goaXNDZWxsKHZhbHVlLCBwcm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQx
KCkpKSwgdW5zdXJlKGlzQ2VsbFBhdGgpLCB1bnN1cmUoc2xvd1BhdGgpKTsKQEAgLTg3MTksOSAr
ODcxOSw2IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBy
aWdodElzTm90QmlnSW50MzIgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgTEJhc2lj
QmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKIAotICAgICAgICAgICAgRlRM
X1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGxlZnQpLCBtX25vZGUtPmNoaWxkMSgpLCB+U3BlY0Z1
bGxOdW1iZXIsIGlzTnVtYmVyKGxlZnQpKTsKLSAgICAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpz
VmFsdWVWYWx1ZShyaWdodCksIG1fbm9kZS0+Y2hpbGQyKCksIH5TcGVjRnVsbE51bWJlciwgaXNO
dW1iZXIocmlnaHQpKTsKLQogICAgICAgICAgICAgLy8gSW5zZXJ0cyBhIGNoZWNrIHRoYXQgYSB2
YWx1ZSBpcyBhIEhlYXBCaWdJbnQsIGFzc3VtaW5nIG9ubHkgdGhhdCB3ZSBrbm93IGl0IGlzIG5v
dCBhIEJpZ0ludDMyCiAgICAgICAgICAgICBhdXRvIGNoZWNrSXNIZWFwQmlnSW50ID0gWyZdKExW
YWx1ZSBsb3dWYWx1ZSwgRWRnZSBoaWdoVmFsdWUpIHsKICAgICAgICAgICAgICAgICBpZiAobV9p
bnRlcnByZXRlci5uZWVkc1R5cGVDaGVjayhoaWdoVmFsdWUsIFNwZWNIZWFwQmlnSW50KSkgewpA
QCAtODczMSwxMCArODcyOCwxMCBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH07CiAKLSAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0JpZ0lu
dDMyS25vd25Ob3ROdW1iZXIobGVmdCwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMSgpKSksIHVu
c3VyZShsZWZ0SXNCaWdJbnQzMiksIHVuc3VyZShsZWZ0SXNOb3RCaWdJbnQzMikpOworICAgICAg
ICAgICAgbV9vdXQuYnJhbmNoKGlzQmlnSW50MzIobGVmdCwgcHJvdmVuVHlwZShtX25vZGUtPmNo
aWxkMSgpKSksIHVuc3VyZShsZWZ0SXNCaWdJbnQzMiksIHVuc3VyZShsZWZ0SXNOb3RCaWdJbnQz
MikpOwogCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRv
KGxlZnRJc0JpZ0ludDMyLCBib3RoQXJlQmlnSW50MzIpOwotICAgICAgICAgICAgbV9vdXQuYnJh
bmNoKGlzQmlnSW50MzJLbm93bk5vdE51bWJlcihyaWdodCwgcHJvdmVuVHlwZShtX25vZGUtPmNo
aWxkMigpKSksIHVuc3VyZShib3RoQXJlQmlnSW50MzIpLCB1bnN1cmUob25seUxlZnRJc0JpZ0lu
dDMyKSk7CisgICAgICAgICAgICBtX291dC5icmFuY2goaXNCaWdJbnQzMihyaWdodCwgcHJvdmVu
VHlwZShtX25vZGUtPmNoaWxkMigpKSksIHVuc3VyZShib3RoQXJlQmlnSW50MzIpLCB1bnN1cmUo
b25seUxlZnRJc0JpZ0ludDMyKSk7CiAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGJvdGhB
cmVCaWdJbnQzMiwgb25seUxlZnRJc0JpZ0ludDMyKTsKICAgICAgICAgICAgIFZhbHVlRnJvbUJs
b2NrIHJlc3VsdEJvdGhBcmVCaWdJbnQzMiA9IG1fb3V0LmFuY2hvcihtX291dC5lcXVhbChsZWZ0
LCByaWdodCkpOwpAQCAtODc1NSw3ICs4NzUyLDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAg
ICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKIAogICAgICAgICAgICAgbV9vdXQu
YXBwZW5kVG8obGVmdElzSGVhcEJpZ0ludCwgcmlnaHRJc0JpZ0ludDMyKTsKLSAgICAgICAgICAg
IG1fb3V0LmJyYW5jaChpc0JpZ0ludDMyS25vd25Ob3ROdW1iZXIocmlnaHQsIHByb3ZlblR5cGUo
bV9ub2RlLT5jaGlsZDIoKSkpLCB1bnN1cmUocmlnaHRJc0JpZ0ludDMyKSwgdW5zdXJlKHJpZ2h0
SXNOb3RCaWdJbnQzMikpOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlzQmlnSW50MzIocmln
aHQsIHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDIoKSkpLCB1bnN1cmUocmlnaHRJc0JpZ0ludDMy
KSwgdW5zdXJlKHJpZ2h0SXNOb3RCaWdJbnQzMikpOwogCiAgICAgICAgICAgICBtX291dC5hcHBl
bmRUbyhyaWdodElzQmlnSW50MzIsIHJpZ2h0SXNOb3RCaWdJbnQzMik7CiAgICAgICAgICAgICBM
VmFsdWUgdW5ib3hlZFJpZ2h0ID0gdW5ib3hCaWdJbnQzMihyaWdodCk7CkBAIC0xMDkyOCw3ICsx
MDkyNSw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAKICAgICAgICAgTEJhc2ljQmxvY2sgbGFz
dE5leHQgPSBtX291dC5hcHBlbmRUbyhpc05vdENlbGxDYXNlLCBpc0NlbGxDYXNlKTsKICAgICAg
ICAgLy8gRklYTUU6IHdlIHNob3VsZCBmaWx0ZXIgdGhlIHByb3ZlblR5cGUgdG8gaW5jbHVkZSB0
aGUgZmFjdCB0aGF0IHdlIGtub3cgd2UgYXJlIG5vdCBkZWFsaW5nIHdpdGggYSBjZWxsCi0gICAg
ICAgIFZhbHVlRnJvbUJsb2NrIG5vdENlbGxSZXN1bHQgPSBtX291dC5hbmNob3IoaXNCaWdJbnQz
Mktub3duTm90Q2VsbCh2YWx1ZSwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMSgpKSkpOworICAg
ICAgICBWYWx1ZUZyb21CbG9jayBub3RDZWxsUmVzdWx0ID0gbV9vdXQuYW5jaG9yKGlzQmlnSW50
MzIodmFsdWUsIHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDEoKSkpKTsKICAgICAgICAgbV9vdXQu
anVtcChjb250aW51YXRpb24pOwogCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGlzQ2VsbENhc2Us
IGNvbnRpbnVhdGlvbik7CkBAIC0xNTQ3MSw3ICsxNTQ2OCw3IEBAIGNsYXNzIExvd2VyREZHVG9C
MyB7CiAjaWYgVVNFKEJJR0lOVDMyKQogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90RG91
YmxlQ2FzZSwgYmlnSW50MzJDYXNlKTsKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKLSAgICAg
ICAgICAgICAgICBpc0JpZ0ludDMyS25vd25Ob3ROdW1iZXIodmFsdWUsIHByb3ZlblR5cGUoZWRn
ZSkgJiB+U3BlY0NlbGwpLAorICAgICAgICAgICAgICAgIGlzQmlnSW50MzIodmFsdWUsIHByb3Zl
blR5cGUoZWRnZSkgJiB+U3BlY0NlbGwpLAogICAgICAgICAgICAgICAgIHVuc3VyZShiaWdJbnQz
MkNhc2UpLCB1bnN1cmUobm90QmlnSW50MzJDYXNlKSk7CiAKICAgICAgICAgICAgIG1fb3V0LmFw
cGVuZFRvKGJpZ0ludDMyQ2FzZSwgbm90QmlnSW50MzJDYXNlKTsKQEAgLTE2MTk3LDcgKzE2MTk0
LDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKIAogI2lmIFVTRShCSUdJTlQzMikKICAgICAgICAg
bV9vdXQuYXBwZW5kVG8obm90TnVtYmVyQ2FzZSwgbm90QmlnSW50MzJDYXNlKTsKLSAgICAgICAg
bV9vdXQuYnJhbmNoKGlzQmlnSW50MzJLbm93bk5vdE51bWJlcih2YWx1ZSwgcHJvdmVuVHlwZShj
aGlsZCkgJiB+U3BlY0NlbGwpLCB1bnN1cmUoYmlnSW50Q2FzZSksIHVuc3VyZShub3RCaWdJbnQz
MkNhc2UpKTsKKyAgICAgICAgbV9vdXQuYnJhbmNoKGlzQmlnSW50MzIodmFsdWUsIHByb3ZlblR5
cGUoY2hpbGQpICYgflNwZWNDZWxsKSwgdW5zdXJlKGJpZ0ludENhc2UpLCB1bnN1cmUobm90Qmln
SW50MzJDYXNlKSk7CiAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90QmlnSW50MzJDYXNlLCBu
b3ROdWxsQ2FzZSk7CiAjZWxzZQpAQCAtMTY5MTcsOCArMTY5MTQsNyBAQCBjbGFzcyBMb3dlckRG
R1RvQjMgewogICAgICAgICBMb3dlcmVkTm9kZVZhbHVlIHZhbHVlID0gbV9qc1ZhbHVlVmFsdWVz
LmdldChlZGdlLm5vZGUoKSk7CiAgICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkgewogICAgICAg
ICAgICAgTFZhbHVlIHJlc3VsdCA9IHZhbHVlLnZhbHVlKCk7Ci0gICAgICAgICAgICBGVExfVFlQ
RV9DSEVDSyhqc1ZhbHVlVmFsdWUocmVzdWx0KSwgZWRnZSwgflNwZWNGdWxsTnVtYmVyLCBpc051
bWJlcihyZXN1bHQpKTsKLSAgICAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShy
ZXN1bHQpLCBlZGdlLCBTcGVjQmlnSW50MzIsIGlzTm90QmlnSW50MzJLbm93bk5vdE51bWJlcihy
ZXN1bHQpKTsKKyAgICAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShyZXN1bHQp
LCBlZGdlLCBTcGVjQmlnSW50MzIsIGlzTm90QmlnSW50MzIocmVzdWx0KSk7CiAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAKQEAgLTE3MTE1LDIzICsxNzExMSwxNyBAQCBj
bGFzcyBMb3dlckRGR1RvQjMgewogICAgIH0KIAogI2lmIFVTRShCSUdJTlQzMikKLSAgICBMVmFs
dWUgaXNCaWdJbnQzMktub3duTm90Q2VsbChMVmFsdWUganNWYWx1ZSwgU3BlY3VsYXRlZFR5cGUg
dHlwZSA9IFNwZWNGdWxsVG9wKQorICAgIExWYWx1ZSBpc0JpZ0ludDMyKExWYWx1ZSBqc1ZhbHVl
LCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCiAgICAgewogICAgICAgICBpZiAo
TFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSwgU3BlY0JpZ0ludDMyKSkKICAgICAg
ICAgICAgIHJldHVybiBwcm92ZW47CiAgICAgICAgIHJldHVybiBtX291dC5lcXVhbChtX291dC5i
aXRBbmQoanNWYWx1ZSwgbV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjpCaWdJbnQzMk1hc2spKSwg
bV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjpCaWdJbnQzMlRhZykpOwogICAgIH0KLSAgICBMVmFs
dWUgaXNCaWdJbnQzMktub3duTm90TnVtYmVyKExWYWx1ZSBqc1ZhbHVlLCBTcGVjdWxhdGVkVHlw
ZSB0eXBlID0gU3BlY0Z1bGxUb3ApCi0gICAgewotICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9
IGlzUHJvdmVuVmFsdWUodHlwZSwgU3BlY0JpZ0ludDMyKSkKLSAgICAgICAgICAgIHJldHVybiBw
cm92ZW47Ci0gICAgICAgIHJldHVybiBtX291dC5lcXVhbChtX291dC5iaXRBbmQoanNWYWx1ZSwg
bV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjpCaWdJbnQzMlRhZykpLCBtX291dC5jb25zdEludDY0
KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSk7Ci0gICAgfQotICAgIExWYWx1ZSBpc05vdEJpZ0ludDMy
S25vd25Ob3ROdW1iZXIoTFZhbHVlIGpzVmFsdWUsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVj
RnVsbFRvcCkKKyAgICBMVmFsdWUgaXNOb3RCaWdJbnQzMihMVmFsdWUganNWYWx1ZSwgU3BlY3Vs
YXRlZFR5cGUgdHlwZSA9IFNwZWNGdWxsVG9wKQogICAgIHsKICAgICAgICAgaWYgKExWYWx1ZSBw
cm92ZW4gPSBpc1Byb3ZlblZhbHVlKHR5cGUsIH5TcGVjQmlnSW50MzIpKQogICAgICAgICAgICAg
cmV0dXJuIHByb3ZlbjsKLSAgICAgICAgcmV0dXJuIG1fb3V0Lm5vdEVxdWFsKG1fb3V0LmJpdEFu
ZChqc1ZhbHVlLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSksIG1fb3V0
LmNvbnN0SW50NjQoSlNWYWx1ZTo6QmlnSW50MzJUYWcpKTsKKyAgICAgICAgcmV0dXJuIG1fb3V0
Lm5vdEVxdWFsKG1fb3V0LmJpdEFuZChqc1ZhbHVlLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6
OkJpZ0ludDMyTWFzaykpLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSk7
CiAgICAgfQogICAgIExWYWx1ZSB1bmJveEJpZ0ludDMyKExWYWx1ZSBqc1ZhbHVlKQogICAgIHsK
QEAgLTE3MTQzLDcgKzE3MTMzLDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAg
IG1fb3V0LnNobChtX291dC56ZXJvRXh0KGludDMyVmFsdWUsIEIzOjpJbnQ2NCksIG1fb3V0LmNv
bnN0SW50NjQoMTYpKSwKICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6Qmln
SW50MzJUYWcpKTsKICAgICB9Ci0gICAgTFZhbHVlIGlzTm90QW55QmlnSW50S25vd25Ob3ROdW1i
ZXIoTFZhbHVlIGpzVmFsdWUsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKKyAg
ICBMVmFsdWUgaXNOb3RBbnlCaWdJbnQoTFZhbHVlIGpzVmFsdWUsIFNwZWN1bGF0ZWRUeXBlIHR5
cGUgPSBTcGVjRnVsbFRvcCkKICAgICB7CiAgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQ
cm92ZW5WYWx1ZSh0eXBlLCB+U3BlY0JpZ0ludCkpCiAgICAgICAgICAgICByZXR1cm4gcHJvdmVu
OwpAQCAtMTcxNTksNyArMTcxNDksNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBM
QmFzaWNCbG9jayBpc0NlbGxDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2lj
QmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKIAotICAgICAgICBtX291dC5i
cmFuY2goaXNCaWdJbnQzMktub3duTm90TnVtYmVyKGpzVmFsdWUsIHR5cGUpLCB1bnN1cmUoaXNC
aWdJbnQzMkNhc2UpLCB1bnN1cmUoaXNOb3RCaWdJbnQzMkNhc2UpKTsKKyAgICAgICAgbV9vdXQu
YnJhbmNoKGlzQmlnSW50MzIoanNWYWx1ZSwgdHlwZSksIHVuc3VyZShpc0JpZ0ludDMyQ2FzZSks
IHVuc3VyZShpc05vdEJpZ0ludDMyQ2FzZSkpOwogCiAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3RO
ZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXNCaWdJbnQzMkNhc2UsIGlzTm90QmlnSW50MzJDYXNlKTsK
ICAgICAgICAgVmFsdWVGcm9tQmxvY2sgcmV0dXJuRmFsc2UgPSBtX291dC5hbmNob3IobV9vdXQu
Ym9vbGVhbkZhbHNlKTsKQEAgLTE4MTkwLDE1ICsxODE4MCwxMyBAQCBjbGFzcyBMb3dlckRGR1Rv
QjMgewogICAgIHZvaWQgc3BlY3VsYXRlQmlnSW50MzIoRWRnZSBlZGdlKQogICAgIHsKICAgICAg
ICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZShlZGdlLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRp
b24pOwotICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUodmFsdWUpLCBlZGdlLCB+
U3BlY0Z1bGxOdW1iZXIsIGlzTnVtYmVyKHZhbHVlKSk7Ci0gICAgICAgIEZUTF9UWVBFX0NIRUNL
KGpzVmFsdWVWYWx1ZSh2YWx1ZSksIGVkZ2UsIFNwZWNCaWdJbnQzMiwgaXNOb3RCaWdJbnQzMktu
b3duTm90TnVtYmVyKHZhbHVlKSk7CisgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1
ZSh2YWx1ZSksIGVkZ2UsIFNwZWNCaWdJbnQzMiwgaXNOb3RCaWdJbnQzMih2YWx1ZSkpOwogICAg
IH0KIAogICAgIHZvaWQgc3BlY3VsYXRlQW55QmlnSW50KEVkZ2UgZWRnZSkKICAgICB7CiAgICAg
ICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0pTVmFsdWUoZWRnZSwgTWFudWFsT3BlcmFuZFNwZWN1bGF0
aW9uKTsKLSAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKHZhbHVlKSwgZWRnZSwg
flNwZWNGdWxsTnVtYmVyLCBpc051bWJlcih2YWx1ZSkpOwotICAgICAgICBGVExfVFlQRV9DSEVD
Syhqc1ZhbHVlVmFsdWUodmFsdWUpLCBlZGdlLCBTcGVjQmlnSW50LCBpc05vdEFueUJpZ0ludEtu
b3duTm90TnVtYmVyKHZhbHVlKSk7CisgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1
ZSh2YWx1ZSksIGVkZ2UsIFNwZWNCaWdJbnQsIGlzTm90QW55QmlnSW50KHZhbHVlKSk7CiAgICAg
fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1i
bHlIZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmNwcAppbmRleCBjODlmNjg1ZmY3YzhhODAwNzAyNmUxNTY4ZWVhOTk2YTNlNmJiZjhkLi4zOWRl
YmVlMzZkZTFmNjZiOWJjNDg5M2ExZjQ4YmU1ODVjM2VmYTEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCkBAIC03NTUsNyArNzU1LDcgQEAgdm9p
ZCBBc3NlbWJseUhlbHBlcnM6OmVtaXRDb252ZXJ0VmFsdWVUb0Jvb2xlYW4oVk0mIHZtLCBKU1Zh
bHVlUmVncyB2YWx1ZSwgR1BSUmUKIAogICAgIG5vdERvdWJsZS5saW5rKHRoaXMpOwogI2lmIFVT
RShCSUdJTlQzMikKLSAgICBhdXRvIGlzTm90QmlnSW50MzIgPSBicmFuY2hJZk5vdEJpZ0ludDMy
S25vd25Ob3ROdW1iZXIodmFsdWUuZ3ByKCksIHJlc3VsdCk7CisgICAgYXV0byBpc05vdEJpZ0lu
dDMyID0gYnJhbmNoSWZOb3RCaWdJbnQzMih2YWx1ZS5ncHIoKSwgcmVzdWx0KTsKICAgICBtb3Zl
KHZhbHVlLmdwcigpLCByZXN1bHQpOwogICAgIHVyc2hpZnQ2NChUcnVzdGVkSW1tMzIoMTYpLCBy
ZXN1bHQpOwogICAgIGNvbXBhcmUzMihpbnZlcnQgPyBFcXVhbCA6IE5vdEVxdWFsLCByZXN1bHQs
IFRydXN0ZWRJbW0zMigwKSwgcmVzdWx0KTsKQEAgLTg1Niw3ICs4NTYsNyBAQCBBc3NlbWJseUhl
bHBlcnM6Okp1bXBMaXN0IEFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZWYWx1ZShWTSYgdm0sIEpT
VmFsdWVSZWdzIHZhbAogCiAgICAgbm90RG91YmxlLmxpbmsodGhpcyk7CiAjaWYgVVNFKEJJR0lO
VDMyKQotICAgIGF1dG8gaXNOb3RCaWdJbnQzMiA9IGJyYW5jaElmTm90QmlnSW50MzJLbm93bk5v
dE51bWJlcih2YWx1ZS5ncHIoKSwgc2NyYXRjaCk7CisgICAgYXV0byBpc05vdEJpZ0ludDMyID0g
YnJhbmNoSWZOb3RCaWdJbnQzMih2YWx1ZS5ncHIoKSwgc2NyYXRjaCk7CiAgICAgbW92ZSh2YWx1
ZS5ncHIoKSwgc2NyYXRjaCk7CiAgICAgdXJzaGlmdDY0KFRydXN0ZWRJbW0zMigxNiksIHNjcmF0
Y2gpOwogICAgIHRydXRoeS5hcHBlbmQoYnJhbmNoVGVzdDMyKGludmVydCA/IFplcm8gOiBOb25a
ZXJvLCBzY3JhdGNoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fz
c2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBl
cnMuaAppbmRleCBlZDA3M2U3NmRlNDk4MmVhYTBhNmU4ZWM5MDEwMTM1ZDk5ZGNhZWFmLi40OTVm
MzBkMjNiMzkyYTIxOTNmOWE2N2I0NjZjYTc4ZThjZjg3NzA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTkzMiw0MCArOTMyLDM5IEBAIGNsYXNz
IEFzc2VtYmx5SGVscGVycyA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlciB7CiAKICNpZiBVU0UoQklH
SU5UMzIpCiAgICAgSnVtcCBicmFuY2hJZkJpZ0ludDMyKEdQUlJlZyBncHIsIEdQUlJlZyB0ZW1w
R1BSLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQotICAgIHsKLSAg
ICAgICAgSnVtcCBudW1iZXIgPSBicmFuY2hJZk51bWJlcihncHIsIG1vZGUpOwotICAgICAgICBK
dW1wIGJpZ0ludDMyID0gYnJhbmNoSWZCaWdJbnQzMktub3duTm90TnVtYmVyKGdwciwgdGVtcEdQ
Uik7Ci0gICAgICAgIG51bWJlci5saW5rKHRoaXMpOwotICAgICAgICByZXR1cm4gYmlnSW50MzI7
Ci0gICAgfQotICAgIEp1bXBMaXN0IGJyYW5jaElmTm90QmlnSW50MzIoR1BSUmVnIGdwciwgR1BS
UmVnIHRlbXBHUFIsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCi0g
ICAgewotICAgICAgICBKdW1wTGlzdCByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoYnJh
bmNoSWZOdW1iZXIoZ3ByLCBtb2RlKSk7Ci0gICAgICAgIEp1bXAgYmlnSW50MzIgPSBicmFuY2hJ
ZkJpZ0ludDMyS25vd25Ob3ROdW1iZXIoZ3ByLCB0ZW1wR1BSKTsKLSAgICAgICAgcmVzdWx0LmFw
cGVuZChqdW1wKCkpOwotICAgICAgICBiaWdJbnQzMi5saW5rKHRoaXMpOwotICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgIH0KLQotICAgIEp1bXAgYnJhbmNoSWZCaWdJbnQzMktub3duTm90TnVt
YmVyKEdQUlJlZyBncHIsIEdQUlJlZyB0ZW1wR1BSKQogICAgIHsKICAgICAgICAgQVNTRVJUKHRl
bXBHUFIgIT0gSW52YWxpZEdQUlJlZyk7CisgICAgICAgIGlmIChtb2RlID09IEhhdmVUYWdSZWdp
c3RlcnMgJiYgZ3ByICE9IHRlbXBHUFIpIHsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoSlNW
YWx1ZTo6QmlnSW50MzJNYXNrID09IEpTVmFsdWU6Ok51bWJlclRhZyArIEpTVmFsdWU6OkJpZ0lu
dDMyVGFnKTsKKyAgICAgICAgICAgIGFkZDY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCaWdJbnQz
MlRhZyksIEdQUkluZm86Om51bWJlclRhZ1JlZ2lzdGVyLCB0ZW1wR1BSKTsKKyAgICAgICAgICAg
IGFuZDY0KGdwciwgdGVtcEdQUik7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoNjQoRXF1YWws
IHRlbXBHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCaWdJbnQzMlRhZykpOworICAgICAgICB9
CiAgICAgICAgIG1vdmUoZ3ByLCB0ZW1wR1BSKTsKLSAgICAgICAgYW5kNjQoVHJ1c3RlZEltbTMy
KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSwgdGVtcEdQUik7CisgICAgICAgIGFuZDY0KFRydXN0ZWRJ
bW02NChKU1ZhbHVlOjpCaWdJbnQzMk1hc2spLCB0ZW1wR1BSKTsKICAgICAgICAgcmV0dXJuIGJy
YW5jaDY0KEVxdWFsLCB0ZW1wR1BSLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6QmlnSW50MzJUYWcp
KTsKICAgICB9Ci0gICAgSnVtcCBicmFuY2hJZk5vdEJpZ0ludDMyS25vd25Ob3ROdW1iZXIoSlNW
YWx1ZVJlZ3MgcmVncywgR1BSUmVnIHRlbXBHUFIpCi0gICAgewotICAgICAgICByZXR1cm4gYnJh
bmNoSWZOb3RCaWdJbnQzMktub3duTm90TnVtYmVyKHJlZ3MuZ3ByKCksIHRlbXBHUFIpOwotICAg
IH0KLSAgICBKdW1wIGJyYW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlcihHUFJSZWcgZ3By
LCBHUFJSZWcgdGVtcEdQUikKKyAgICBKdW1wIGJyYW5jaElmTm90QmlnSW50MzIoR1BSUmVnIGdw
ciwgR1BSUmVnIHRlbXBHUFIsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3Rl
cnMpCiAgICAgewogICAgICAgICBBU1NFUlQodGVtcEdQUiAhPSBJbnZhbGlkR1BSUmVnKTsKKyAg
ICAgICAgaWYgKG1vZGUgPT0gSGF2ZVRhZ1JlZ2lzdGVycyAmJiBncHIgIT0gdGVtcEdQUikgewor
ICAgICAgICAgICAgc3RhdGljX2Fzc2VydChKU1ZhbHVlOjpCaWdJbnQzMk1hc2sgPT0gSlNWYWx1
ZTo6TnVtYmVyVGFnICsgSlNWYWx1ZTo6QmlnSW50MzJUYWcpOworICAgICAgICAgICAgYWRkNjQo
VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkJpZ0ludDMyVGFnKSwgR1BSSW5mbzo6bnVtYmVyVGFnUmVn
aXN0ZXIsIHRlbXBHUFIpOworICAgICAgICAgICAgYW5kNjQoZ3ByLCB0ZW1wR1BSKTsKKyAgICAg
ICAgICAgIHJldHVybiBicmFuY2g2NChOb3RFcXVhbCwgdGVtcEdQUiwgVHJ1c3RlZEltbTMyKEpT
VmFsdWU6OkJpZ0ludDMyVGFnKSk7CisgICAgICAgIH0KICAgICAgICAgbW92ZShncHIsIHRlbXBH
UFIpOwotICAgICAgICBhbmQ2NChUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6QmlnSW50MzJUYWcpLCB0
ZW1wR1BSKTsKKyAgICAgICAgYW5kNjQoVHJ1c3RlZEltbTY0KEpTVmFsdWU6OkJpZ0ludDMyTWFz
ayksIHRlbXBHUFIpOwogICAgICAgICByZXR1cm4gYnJhbmNoNjQoTm90RXF1YWwsIHRlbXBHUFIs
IFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCaWdJbnQzMlRhZykpOwogICAgIH0KKyAgICBKdW1wIGJy
YW5jaElmQmlnSW50MzIoSlNWYWx1ZVJlZ3MgcmVncywgR1BSUmVnIHRlbXBHUFIsIFRhZ1JlZ2lz
dGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCisgICAgeworICAgICAgICByZXR1cm4g
YnJhbmNoSWZCaWdJbnQzMihyZWdzLmdwcigpLCB0ZW1wR1BSLCBtb2RlKTsKKyAgICB9CisgICAg
SnVtcCBicmFuY2hJZk5vdEJpZ0ludDMyKEpTVmFsdWVSZWdzIHJlZ3MsIEdQUlJlZyB0ZW1wR1BS
LCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGJyYW5jaElmTm90QmlnSW50MzIocmVncy5ncHIoKSwgdGVtcEdQUiwgbW9kZSk7
CisgICAgfQogI2VuZGlmIC8vIFVTRShCSUdJTlQzMikKIAogICAgIC8vIEZJWE1FOiByZW5hbWUg
dGhlc2UgdG8gbWFrZSBpdCBjbGVhciB0aGF0IHRoZXkgcmVxdWlyZSB0aGVpciBpbnB1dCB0byBi
ZSBhIGNlbGwuCkBAIC0xODMzLDcgKzE4MzIsNyBAQCBjbGFzcyBBc3NlbWJseUhlbHBlcnMgOiBw
dWJsaWMgTWFjcm9Bc3NlbWJsZXIgewogICAgICAgICBub3RCb29sZWFuLmxpbmsodGhpcyk7CiAK
ICNpZiBVU0UoQklHSU5UMzIpCi0gICAgICAgIEp1bXAgbm90QmlnSW50MzIgPSBicmFuY2hJZk5v
dEJpZ0ludDMyS25vd25Ob3ROdW1iZXIocmVncywgdGVtcEdQUik7CisgICAgICAgIEp1bXAgbm90
QmlnSW50MzIgPSBicmFuY2hJZk5vdEJpZ0ludDMyKHJlZ3MsIHRlbXBHUFIpOwogICAgICAgICBm
dW5jdG9yKFR5cGVvZlR5cGU6OkJpZ0ludCwgZmFsc2UpOwogICAgICAgICBub3RCaWdJbnQzMi5s
aW5rKHRoaXMpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDJiNzNlNTM4YzdmMDczYWYxNzA0NWU4MTcyMjcwNGI5MGI5OTE0
YjkuLjY0YWNkZmM5NjllZGMwMWM2MjczNmM4MjNkZTlkMTBhYjJhM2QzMGQgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMjAtMDQtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAg
ICAgICBbSlNDXSBicmFuY2hJZkJpZ0ludDMyIGNhbiB1c2UgQmlnSW50MzJNYXNrIGFuZCByZW1v
dmUgYnJhbmNoSWZOdW1iZXIgZmlsdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTA4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHN0cmVzcy9hbnliaWdpbnR1c2Utc2hvdWxkLWZpbHRlci1udW1i
ZXItY29ycmVjdGx5LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRl
c3QpOgorCiAyMDIwLTA0LTIyICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0pTQ10gSlNCaWdJbnQgaW5jIG9wZXJhdGlvbiBkb2VzIG5vdCBwcm9kdWNlIHJp
Z2h0IEhlYXBCaWdJbnQgemVybwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYW55YmlnaW50
dXNlLXNob3VsZC1maWx0ZXItbnVtYmVyLWNvcnJlY3RseS5qcyBiL0pTVGVzdHMvc3RyZXNzL2Fu
eWJpZ2ludHVzZS1zaG91bGQtZmlsdGVyLW51bWJlci1jb3JyZWN0bHkuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Yjk2MDM4YmFmMjE5YjQ5MTYyMjAyN2M4N2M0MjJkMDViYjQ1Zjk0ZAotLS0gL2Rldi9udWxsCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2FueWJpZ2ludHVzZS1zaG91bGQtZmlsdGVyLW51bWJlci1jb3Jy
ZWN0bHkuanMKQEAgLTAsMCArMSwyNSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBl
Y3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoYSwgYikK
K3sKKyAgICByZXR1cm4gYSA9PT0gYjsKK30KK25vSW5saW5lKHRlc3QpOworCitmb3IgKHZhciBp
ID0gMDsgaSA8IDFlNjsgKytpKSB7CisgICAgaWYgKGkgJiAxKSB7CisgICAgICAgIHRlc3QoMG4s
IDBuKTsKKyAgICAgICAgdGVzdCgwbiwgMTBuKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0
KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4sIDIwMG4pOworICAg
ICAgICB0ZXN0KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4sIDEw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pOworICAgIH0KK30KK3No
b3VsZEJlKHRlc3QoMjAsIDIwKSwgdHJ1ZSk7CitzaG91bGRCZSh0ZXN0KDIwLCA0MCksIGZhbHNl
KTsKK3Nob3VsZEJlKHRlc3QoMC41LCAwLjUpLCB0cnVlKTsKK3Nob3VsZEJlKHRlc3QoMC41LCAw
LjI0KSwgZmFsc2UpOworc2hvdWxkQmUodGVzdCgyMC4xIC0gMC4xLCAyMCksIHRydWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397259</attachid>
            <date>2020-04-22 14:09:32 -0700</date>
            <delta_ts>2020-04-22 15:07:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210870-20200422140930.patch</filename>
            <type>text/plain</type>
            <size>21428</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NWM1NWMzNjdiMzE5MjU2YzhmNzJhYTUxMTE5ZmM2Y2FmOGFhYzA2Li4wOTMyYWUxOWFlNGZhYjg3
ZWJhN2Y3MTQ1OGE4NTI3ODk2NTkyY2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAyMC0wNC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIGJyYW5jaElmQmlnSW50MzIgY2FuIHVzZSBCaWdJbnQzMk1hc2sg
YW5kIHJlbW92ZSBicmFuY2hJZk51bWJlciBmaWx0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ5IHVzaW5nIEJpZ0ludDMyTWFzaywgd2UgY2FuIGRl
dGVjdCBCaWdJbnQzMiB3aXRob3V0IGZpbHRlcmluZyBOdW1iZXJzLiBJbiB0aGlzIHBhdGNoLAor
CisgICAgICAgIDEuIFJlbW92ZSBicmFuY2hJZkJpZ0ludDMyS25vd25Ob3ROdW1iZXIgYW5kIGJy
YW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlci4gQW5kIGFsd2F5cyB1c2UgYnJhbmNoQmln
SW50MzIgYW5kIGJyYW5jaE5vdEJpZ0ludDMyIGluc3RlYWQuCisgICAgICAgIDIuIFJlbW92ZSBi
cmFuY2hJZk51bWJlciB0eXBlIGZpbHRlcmluZyBpbiBERkcuCisgICAgICAgIDMuIFVzZSBCaWdJ
bnQzMk1hc2sgYmFzZWQgc2NoZW1lIGluIEZUTC4KKyAgICAgICAgNC4gQWRkIGFuZDY0KFRydXN0
ZWRJbW02NCwgUmVnaXN0ZXJJRCkgaW1wbGVtZW50YXRpb25zIGluIE1hY3JvQXNzZW1ibGVyLgor
ICAgICAgICA1LiBBZGQgVGFnUmVnaXN0ZXJzTW9kZSB2ZXJzaW9uIGluIGJyYW5jaElmQmlnSW50
LiBXZSB1c2UgbnVtYmVyVGFnUmVnaXN0ZXIgdG8gcHJvZHVjZSByZWFsbHkgZWZmaWNpZW50IGNv
ZGVbMV0gYnkgYXZvaWRpbmcgbGFyZ2UgY29uc3RhbnQgbWF0ZXJpYWxpemF0aW9uLgorCisgICAg
ICAgIFsxXTogRnJvbQorICAgICAgICAgICAgICAgIG1vdiAlcmF4LCAlcmR4CisgICAgICAgICAg
ICAgICAgbW92ICQweGZmZmUwMDAwMDAwMDAwMTIsICVyMTEKKyAgICAgICAgICAgICAgICBhbmQg
JXIxMSwgJXJkeAorICAgICAgICAgICAgICAgIGNtcCAkMHgxMiwgJXJkeAorICAgICAgICAgICAg
IFRvCisgICAgICAgICAgICAgICAgbGVhIDB4MTIoJXIxNCksICVyZHgKKyAgICAgICAgICAgICAg
ICBhbmQgJXJheCwgJXJkeAorICAgICAgICAgICAgICAgIGNtcCAkMHgxMiwgJXJkeAorCisgICAg
ICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NDo6YW5kNjQpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlclg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6YW5kNjQp
OgorICAgICAgICAqIGJ5dGVjb2RlL0FyaXRoUHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6OkFy
aXRoUHJvZmlsZTxCaXRmaWVsZFR5cGU+OjplbWl0T2JzZXJ2ZVJlc3VsdCk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpmaWxsU3BlY3VsYXRlQmlnSW50MzIpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRG
R1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxl
VG9OdW1lcmljKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGls
ZUNvbXBhcmVTdHJpY3RFcSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OmNvbXBpbGVJc0JpZ0ludCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OmJvb2xpZnkpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpidWlsZFR5
cGVPZik6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omxvd0JpZ0ludDMy
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNCaWdJbnQzMik6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmlzTm90QmlnSW50MzIpOgorICAg
ICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjppc05vdEFueUJpZ0ludCk6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZUJpZ0ludDMyKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlQW55QmlnSW50KToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNCaWdJbnQzMktub3duTm90
Q2VsbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omlz
QmlnSW50MzJLbm93bk5vdE51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvQjM6OmlzTm90QmlnSW50MzJLbm93bk5vdE51bWJlcik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmlzTm90QW55QmlnSW50S25vd25O
b3ROdW1iZXIpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuY3BwOgor
ICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRDb252ZXJ0VmFsdWVUb0Jvb2xlYW4p
OgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmVmFsdWUpOgorICAgICAg
ICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJz
OjpicmFuY2hJZkJpZ0ludDMyKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFu
Y2hJZk5vdEJpZ0ludDMyKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjplbWl0VHlw
ZU9mKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZkJpZ0ludDMyS25v
d25Ob3ROdW1iZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJy
YW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlcik6IERlbGV0ZWQuCisKIDIwMjAtMDQtMjIg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBKU0Jp
Z0ludCBpbmMgb3BlcmF0aW9uIGRvZXMgbm90IHByb2R1Y2UgcmlnaHQgSGVhcEJpZ0ludCB6ZXJv
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk02NC5oCmluZGV4IDE1Mzk3ZThiN2Y0OGE4NGZiMjdmMTFkMmYxMzcxZTBlMmEzMDFjYjYu
LmRlMGMxODA1ZWUxZDA3Njg1NDVmZGQ2ZjdhNmY1ODQ2Zjk4YTlmOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCkBA
IC00MTYsNiArNDE2LDE1IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNNjQgOiBwdWJsaWMgQWJz
dHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3NlbWJsZXI+IHsKICAgICB9CiAKICAgICB2b2lkIGFuZDY0
KFRydXN0ZWRJbW1QdHIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBpbnRw
dHJfdCB2YWx1ZSA9IGltbS5hc0ludHB0cigpOworICAgICAgICBpZiBjb25zdGV4cHIgKHNpemVv
Zih2b2lkKikgPT0gc2l6ZW9mKHVpbnQ2NF90KSkKKyAgICAgICAgICAgIGFuZDY0KFRydXN0ZWRJ
bW02NCh2YWx1ZSksIGRlc3QpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBhbmQ2NChUcnVz
dGVkSW1tMzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgZGVzdCk7CisgICAgfQorCisg
ICAgdm9pZCBhbmQ2NChUcnVzdGVkSW1tNjQgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewog
ICAgICAgICBMb2dpY2FsSW1tZWRpYXRlIGxvZ2ljYWxJbW0gPSBMb2dpY2FsSW1tZWRpYXRlOjpj
cmVhdGU2NChyZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihpbW0ubV92YWx1ZSkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
XzY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
XzY0LmgKaW5kZXggMmExZGRlZGVlMzZkYmUzY2RlNTcyZjQ4NjA1YTQ2NGM4MGI2ZTc4Ny4uMGI2
NWMyYWUxZjVmNDQxNzM0ZTliN2YxZWQzNjNhZmE1YzNmMGNhNyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaApAQCAt
NDQxLDcgKzQ0MSwxMyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlclg4Nl82NCA6IHB1YmxpYyBNYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbiB7CiAKICAgICB2b2lkIGFuZDY0KFRydXN0ZWRJbW1QdHIgaW1t
LCBSZWdpc3RlcklEIHNyY0Rlc3QpCiAgICAgewotICAgICAgICBpbnRwdHJfdCBpbnRWYWx1ZSA9
IGltbS5hc0ludHB0cigpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZih2b2lkKikgPT0g
c2l6ZW9mKGludDY0X3QpKTsKKyAgICAgICAgYW5kNjQoVHJ1c3RlZEltbTY0KGJpdHdpc2VfY2Fz
dDxpbnQ2NF90PihpbW0ubV92YWx1ZSkpLCBzcmNEZXN0KTsKKyAgICB9CisKKyAgICB2b2lkIGFu
ZDY0KFRydXN0ZWRJbW02NCBpbW0sIFJlZ2lzdGVySUQgc3JjRGVzdCkKKyAgICB7CisgICAgICAg
IGludDY0X3QgaW50VmFsdWUgPSBpbW0ubV92YWx1ZTsKICAgICAgICAgaWYgKGludFZhbHVlIDw9
IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpCiAgICAgICAgICAgICAmJiBpbnRW
YWx1ZSA+PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSkgewogICAgICAgICAg
ICAgYW5kNjQoVHJ1c3RlZEltbTMyKHN0YXRpY19jYXN0PGludDMyX3Q+KGludFZhbHVlKSksIHNy
Y0Rlc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FyaXRo
UHJvZmlsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxl
LmNwcAppbmRleCA4NWVjNzI4MzJmMzJjMjYzZDdjNTc4NjVlYzJiMTllOTkyMzBmMTkyLi41NzMx
OTY0Y2U1OTM1ZWQ3Y2NmY2E5M2I1MjFjMzI5YzdhYzkwZTM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmNwcApAQCAtNDksNyArNDksNyBAQCB2
b2lkIEFyaXRoUHJvZmlsZTxCaXRmaWVsZFR5cGU+OjplbWl0T2JzZXJ2ZVJlc3VsdChDQ2FsbEhl
bHBlcnMmIGppdCwgSlNWYWx1ZVJlZwogICAgIG5vdERvdWJsZS5saW5rKCZqaXQpOwogCiAjaWYg
VVNFKEJJR0lOVDMyKQotICAgIENDYWxsSGVscGVyczo6SnVtcCBub3RCaWdJbnQzMiA9IGppdC5i
cmFuY2hJZk5vdEJpZ0ludDMyS25vd25Ob3ROdW1iZXIocmVncywgdGVtcEdQUik7CisgICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wIG5vdEJpZ0ludDMyID0gaml0LmJyYW5jaElmTm90QmlnSW50MzIocmVn
cywgdGVtcEdQUiwgbW9kZSk7CiAgICAgZW1pdFNldEJpZ0ludDMyKGppdCk7CiAgICAgZG9uZS5h
cHBlbmQoaml0Lmp1bXAoKSk7CiAgICAgbm90QmlnSW50MzIubGluaygmaml0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDRj
YTc4NzdjNzlhYzRjMGU0NTEzZGUwZTgwYjk2YjYwYWUyNzVlZmUuLjM3ODgzZDM4YTZiYzBjOWVl
MTM3Y2RmOTE4MjQwNDZmZTk5OTEzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMTQ2OSw4ICsxNDY5LDcgQEAgR1BSUmVn
IFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQmlnSW50MzIoRWRnZSBlZGdlKQogICAgICAg
ICBpZiAodHlwZSAmIH5TcGVjQmlnSW50MzIpIHsKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6
SnVtcExpc3QgZmFpbHVyZUNhc2VzOwogICAgICAgICAgICAgR1BSUmVnIHRlbXBHUFIgPSBhbGxv
Y2F0ZSgpOwotICAgICAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hJZk51
bWJlcihncHIpKTsKLSAgICAgICAgICAgIGZhaWx1cmVDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNo
SWZOb3RCaWdJbnQzMktub3duTm90TnVtYmVyKGdwciwgdGVtcEdQUikpOworICAgICAgICAgICAg
ZmFpbHVyZUNhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hJZk5vdEJpZ0ludDMyKGdwciwgdGVtcEdQ
UikpOwogICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlUmVncyhn
cHIpLCBlZGdlLCBmYWlsdXJlQ2FzZXMpOwogICAgICAgICAgICAgdW5sb2NrKHRlbXBHUFIpOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAKaW5kZXggMzIwNTExYWUwMjcxNDI4NTdkNDRhMjUwN2I0MjYzZGI4OWY1N2EyNi4uZWFiNWY2
ZjJjNDMzOTEwYjJlZGU5ZGQ4MzhlNDhjNTNiODJhOGRjZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtNzU1NCw3ICs3NTU0LDcgQEAgY2xh
c3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAgIC8vIG5vdE51bWJlciBjYXNlLgogICAgICAg
ICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3ROdW1iZXIsIGNv
bnRpbnVhdGlvbik7CiAjaWYgVVNFKEJJR0lOVDMyKQotICAgICAgICAgICAgbV9vdXQuYnJhbmNo
KGlzQmlnSW50MzJLbm93bk5vdE51bWJlcih2YWx1ZSwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxk
MSgpKSksIHVuc3VyZShjb250aW51YXRpb24pLCB1bnN1cmUobm90QmlnSW50MzIpKTsKKyAgICAg
ICAgICAgIG1fb3V0LmJyYW5jaChpc0JpZ0ludDMyKHZhbHVlLCBwcm92ZW5UeXBlKG1fbm9kZS0+
Y2hpbGQxKCkpKSwgdW5zdXJlKGNvbnRpbnVhdGlvbiksIHVuc3VyZShub3RCaWdJbnQzMikpOwog
ICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90QmlnSW50MzIpOwogI2VuZGlmCiAgICAgICAg
ICAgICBtX291dC5icmFuY2goaXNDZWxsKHZhbHVlLCBwcm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQx
KCkpKSwgdW5zdXJlKGlzQ2VsbFBhdGgpLCB1bnN1cmUoc2xvd1BhdGgpKTsKQEAgLTg3MTksOSAr
ODcxOSw2IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBy
aWdodElzTm90QmlnSW50MzIgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgTEJhc2lj
QmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKIAotICAgICAgICAgICAgRlRM
X1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGxlZnQpLCBtX25vZGUtPmNoaWxkMSgpLCB+U3BlY0Z1
bGxOdW1iZXIsIGlzTnVtYmVyKGxlZnQpKTsKLSAgICAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpz
VmFsdWVWYWx1ZShyaWdodCksIG1fbm9kZS0+Y2hpbGQyKCksIH5TcGVjRnVsbE51bWJlciwgaXNO
dW1iZXIocmlnaHQpKTsKLQogICAgICAgICAgICAgLy8gSW5zZXJ0cyBhIGNoZWNrIHRoYXQgYSB2
YWx1ZSBpcyBhIEhlYXBCaWdJbnQsIGFzc3VtaW5nIG9ubHkgdGhhdCB3ZSBrbm93IGl0IGlzIG5v
dCBhIEJpZ0ludDMyCiAgICAgICAgICAgICBhdXRvIGNoZWNrSXNIZWFwQmlnSW50ID0gWyZdKExW
YWx1ZSBsb3dWYWx1ZSwgRWRnZSBoaWdoVmFsdWUpIHsKICAgICAgICAgICAgICAgICBpZiAobV9p
bnRlcnByZXRlci5uZWVkc1R5cGVDaGVjayhoaWdoVmFsdWUsIFNwZWNIZWFwQmlnSW50KSkgewpA
QCAtODczMSwxMCArODcyOCwxMCBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH07CiAKLSAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0JpZ0lu
dDMyS25vd25Ob3ROdW1iZXIobGVmdCwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMSgpKSksIHVu
c3VyZShsZWZ0SXNCaWdJbnQzMiksIHVuc3VyZShsZWZ0SXNOb3RCaWdJbnQzMikpOworICAgICAg
ICAgICAgbV9vdXQuYnJhbmNoKGlzQmlnSW50MzIobGVmdCwgcHJvdmVuVHlwZShtX25vZGUtPmNo
aWxkMSgpKSksIHVuc3VyZShsZWZ0SXNCaWdJbnQzMiksIHVuc3VyZShsZWZ0SXNOb3RCaWdJbnQz
MikpOwogCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRv
KGxlZnRJc0JpZ0ludDMyLCBib3RoQXJlQmlnSW50MzIpOwotICAgICAgICAgICAgbV9vdXQuYnJh
bmNoKGlzQmlnSW50MzJLbm93bk5vdE51bWJlcihyaWdodCwgcHJvdmVuVHlwZShtX25vZGUtPmNo
aWxkMigpKSksIHVuc3VyZShib3RoQXJlQmlnSW50MzIpLCB1bnN1cmUob25seUxlZnRJc0JpZ0lu
dDMyKSk7CisgICAgICAgICAgICBtX291dC5icmFuY2goaXNCaWdJbnQzMihyaWdodCwgcHJvdmVu
VHlwZShtX25vZGUtPmNoaWxkMigpKSksIHVuc3VyZShib3RoQXJlQmlnSW50MzIpLCB1bnN1cmUo
b25seUxlZnRJc0JpZ0ludDMyKSk7CiAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGJvdGhB
cmVCaWdJbnQzMiwgb25seUxlZnRJc0JpZ0ludDMyKTsKICAgICAgICAgICAgIFZhbHVlRnJvbUJs
b2NrIHJlc3VsdEJvdGhBcmVCaWdJbnQzMiA9IG1fb3V0LmFuY2hvcihtX291dC5lcXVhbChsZWZ0
LCByaWdodCkpOwpAQCAtODc1NSw3ICs4NzUyLDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAg
ICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKIAogICAgICAgICAgICAgbV9vdXQu
YXBwZW5kVG8obGVmdElzSGVhcEJpZ0ludCwgcmlnaHRJc0JpZ0ludDMyKTsKLSAgICAgICAgICAg
IG1fb3V0LmJyYW5jaChpc0JpZ0ludDMyS25vd25Ob3ROdW1iZXIocmlnaHQsIHByb3ZlblR5cGUo
bV9ub2RlLT5jaGlsZDIoKSkpLCB1bnN1cmUocmlnaHRJc0JpZ0ludDMyKSwgdW5zdXJlKHJpZ2h0
SXNOb3RCaWdJbnQzMikpOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlzQmlnSW50MzIocmln
aHQsIHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDIoKSkpLCB1bnN1cmUocmlnaHRJc0JpZ0ludDMy
KSwgdW5zdXJlKHJpZ2h0SXNOb3RCaWdJbnQzMikpOwogCiAgICAgICAgICAgICBtX291dC5hcHBl
bmRUbyhyaWdodElzQmlnSW50MzIsIHJpZ2h0SXNOb3RCaWdJbnQzMik7CiAgICAgICAgICAgICBM
VmFsdWUgdW5ib3hlZFJpZ2h0ID0gdW5ib3hCaWdJbnQzMihyaWdodCk7CkBAIC0xMDkyOCw3ICsx
MDkyNSw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAKICAgICAgICAgTEJhc2ljQmxvY2sgbGFz
dE5leHQgPSBtX291dC5hcHBlbmRUbyhpc05vdENlbGxDYXNlLCBpc0NlbGxDYXNlKTsKICAgICAg
ICAgLy8gRklYTUU6IHdlIHNob3VsZCBmaWx0ZXIgdGhlIHByb3ZlblR5cGUgdG8gaW5jbHVkZSB0
aGUgZmFjdCB0aGF0IHdlIGtub3cgd2UgYXJlIG5vdCBkZWFsaW5nIHdpdGggYSBjZWxsCi0gICAg
ICAgIFZhbHVlRnJvbUJsb2NrIG5vdENlbGxSZXN1bHQgPSBtX291dC5hbmNob3IoaXNCaWdJbnQz
Mktub3duTm90Q2VsbCh2YWx1ZSwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMSgpKSkpOworICAg
ICAgICBWYWx1ZUZyb21CbG9jayBub3RDZWxsUmVzdWx0ID0gbV9vdXQuYW5jaG9yKGlzQmlnSW50
MzIodmFsdWUsIHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDEoKSkpKTsKICAgICAgICAgbV9vdXQu
anVtcChjb250aW51YXRpb24pOwogCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGlzQ2VsbENhc2Us
IGNvbnRpbnVhdGlvbik7CkBAIC0xNTQ3MSw3ICsxNTQ2OCw3IEBAIGNsYXNzIExvd2VyREZHVG9C
MyB7CiAjaWYgVVNFKEJJR0lOVDMyKQogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90RG91
YmxlQ2FzZSwgYmlnSW50MzJDYXNlKTsKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKLSAgICAg
ICAgICAgICAgICBpc0JpZ0ludDMyS25vd25Ob3ROdW1iZXIodmFsdWUsIHByb3ZlblR5cGUoZWRn
ZSkgJiB+U3BlY0NlbGwpLAorICAgICAgICAgICAgICAgIGlzQmlnSW50MzIodmFsdWUsIHByb3Zl
blR5cGUoZWRnZSkgJiB+U3BlY0NlbGwpLAogICAgICAgICAgICAgICAgIHVuc3VyZShiaWdJbnQz
MkNhc2UpLCB1bnN1cmUobm90QmlnSW50MzJDYXNlKSk7CiAKICAgICAgICAgICAgIG1fb3V0LmFw
cGVuZFRvKGJpZ0ludDMyQ2FzZSwgbm90QmlnSW50MzJDYXNlKTsKQEAgLTE2MTk3LDcgKzE2MTk0
LDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKIAogI2lmIFVTRShCSUdJTlQzMikKICAgICAgICAg
bV9vdXQuYXBwZW5kVG8obm90TnVtYmVyQ2FzZSwgbm90QmlnSW50MzJDYXNlKTsKLSAgICAgICAg
bV9vdXQuYnJhbmNoKGlzQmlnSW50MzJLbm93bk5vdE51bWJlcih2YWx1ZSwgcHJvdmVuVHlwZShj
aGlsZCkgJiB+U3BlY0NlbGwpLCB1bnN1cmUoYmlnSW50Q2FzZSksIHVuc3VyZShub3RCaWdJbnQz
MkNhc2UpKTsKKyAgICAgICAgbV9vdXQuYnJhbmNoKGlzQmlnSW50MzIodmFsdWUsIHByb3ZlblR5
cGUoY2hpbGQpICYgflNwZWNDZWxsKSwgdW5zdXJlKGJpZ0ludENhc2UpLCB1bnN1cmUobm90Qmln
SW50MzJDYXNlKSk7CiAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90QmlnSW50MzJDYXNlLCBu
b3ROdWxsQ2FzZSk7CiAjZWxzZQpAQCAtMTY5MTcsOCArMTY5MTQsNyBAQCBjbGFzcyBMb3dlckRG
R1RvQjMgewogICAgICAgICBMb3dlcmVkTm9kZVZhbHVlIHZhbHVlID0gbV9qc1ZhbHVlVmFsdWVz
LmdldChlZGdlLm5vZGUoKSk7CiAgICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkgewogICAgICAg
ICAgICAgTFZhbHVlIHJlc3VsdCA9IHZhbHVlLnZhbHVlKCk7Ci0gICAgICAgICAgICBGVExfVFlQ
RV9DSEVDSyhqc1ZhbHVlVmFsdWUocmVzdWx0KSwgZWRnZSwgflNwZWNGdWxsTnVtYmVyLCBpc051
bWJlcihyZXN1bHQpKTsKLSAgICAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShy
ZXN1bHQpLCBlZGdlLCBTcGVjQmlnSW50MzIsIGlzTm90QmlnSW50MzJLbm93bk5vdE51bWJlcihy
ZXN1bHQpKTsKKyAgICAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShyZXN1bHQp
LCBlZGdlLCBTcGVjQmlnSW50MzIsIGlzTm90QmlnSW50MzIocmVzdWx0KSk7CiAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAKQEAgLTE3MTE1LDIzICsxNzExMSwxNyBAQCBj
bGFzcyBMb3dlckRGR1RvQjMgewogICAgIH0KIAogI2lmIFVTRShCSUdJTlQzMikKLSAgICBMVmFs
dWUgaXNCaWdJbnQzMktub3duTm90Q2VsbChMVmFsdWUganNWYWx1ZSwgU3BlY3VsYXRlZFR5cGUg
dHlwZSA9IFNwZWNGdWxsVG9wKQorICAgIExWYWx1ZSBpc0JpZ0ludDMyKExWYWx1ZSBqc1ZhbHVl
LCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCiAgICAgewogICAgICAgICBpZiAo
TFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSwgU3BlY0JpZ0ludDMyKSkKICAgICAg
ICAgICAgIHJldHVybiBwcm92ZW47CiAgICAgICAgIHJldHVybiBtX291dC5lcXVhbChtX291dC5i
aXRBbmQoanNWYWx1ZSwgbV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjpCaWdJbnQzMk1hc2spKSwg
bV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjpCaWdJbnQzMlRhZykpOwogICAgIH0KLSAgICBMVmFs
dWUgaXNCaWdJbnQzMktub3duTm90TnVtYmVyKExWYWx1ZSBqc1ZhbHVlLCBTcGVjdWxhdGVkVHlw
ZSB0eXBlID0gU3BlY0Z1bGxUb3ApCi0gICAgewotICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9
IGlzUHJvdmVuVmFsdWUodHlwZSwgU3BlY0JpZ0ludDMyKSkKLSAgICAgICAgICAgIHJldHVybiBw
cm92ZW47Ci0gICAgICAgIHJldHVybiBtX291dC5lcXVhbChtX291dC5iaXRBbmQoanNWYWx1ZSwg
bV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjpCaWdJbnQzMlRhZykpLCBtX291dC5jb25zdEludDY0
KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSk7Ci0gICAgfQotICAgIExWYWx1ZSBpc05vdEJpZ0ludDMy
S25vd25Ob3ROdW1iZXIoTFZhbHVlIGpzVmFsdWUsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVj
RnVsbFRvcCkKKyAgICBMVmFsdWUgaXNOb3RCaWdJbnQzMihMVmFsdWUganNWYWx1ZSwgU3BlY3Vs
YXRlZFR5cGUgdHlwZSA9IFNwZWNGdWxsVG9wKQogICAgIHsKICAgICAgICAgaWYgKExWYWx1ZSBw
cm92ZW4gPSBpc1Byb3ZlblZhbHVlKHR5cGUsIH5TcGVjQmlnSW50MzIpKQogICAgICAgICAgICAg
cmV0dXJuIHByb3ZlbjsKLSAgICAgICAgcmV0dXJuIG1fb3V0Lm5vdEVxdWFsKG1fb3V0LmJpdEFu
ZChqc1ZhbHVlLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSksIG1fb3V0
LmNvbnN0SW50NjQoSlNWYWx1ZTo6QmlnSW50MzJUYWcpKTsKKyAgICAgICAgcmV0dXJuIG1fb3V0
Lm5vdEVxdWFsKG1fb3V0LmJpdEFuZChqc1ZhbHVlLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6
OkJpZ0ludDMyTWFzaykpLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSk7
CiAgICAgfQogICAgIExWYWx1ZSB1bmJveEJpZ0ludDMyKExWYWx1ZSBqc1ZhbHVlKQogICAgIHsK
QEAgLTE3MTQzLDcgKzE3MTMzLDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAg
IG1fb3V0LnNobChtX291dC56ZXJvRXh0KGludDMyVmFsdWUsIEIzOjpJbnQ2NCksIG1fb3V0LmNv
bnN0SW50NjQoMTYpKSwKICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6Qmln
SW50MzJUYWcpKTsKICAgICB9Ci0gICAgTFZhbHVlIGlzTm90QW55QmlnSW50S25vd25Ob3ROdW1i
ZXIoTFZhbHVlIGpzVmFsdWUsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKKyAg
ICBMVmFsdWUgaXNOb3RBbnlCaWdJbnQoTFZhbHVlIGpzVmFsdWUsIFNwZWN1bGF0ZWRUeXBlIHR5
cGUgPSBTcGVjRnVsbFRvcCkKICAgICB7CiAgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQ
cm92ZW5WYWx1ZSh0eXBlLCB+U3BlY0JpZ0ludCkpCiAgICAgICAgICAgICByZXR1cm4gcHJvdmVu
OwpAQCAtMTcxNTksNyArMTcxNDksNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBM
QmFzaWNCbG9jayBpc0NlbGxDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2lj
QmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKIAotICAgICAgICBtX291dC5i
cmFuY2goaXNCaWdJbnQzMktub3duTm90TnVtYmVyKGpzVmFsdWUsIHR5cGUpLCB1bnN1cmUoaXNC
aWdJbnQzMkNhc2UpLCB1bnN1cmUoaXNOb3RCaWdJbnQzMkNhc2UpKTsKKyAgICAgICAgbV9vdXQu
YnJhbmNoKGlzQmlnSW50MzIoanNWYWx1ZSwgdHlwZSksIHVuc3VyZShpc0JpZ0ludDMyQ2FzZSks
IHVuc3VyZShpc05vdEJpZ0ludDMyQ2FzZSkpOwogCiAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3RO
ZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXNCaWdJbnQzMkNhc2UsIGlzTm90QmlnSW50MzJDYXNlKTsK
ICAgICAgICAgVmFsdWVGcm9tQmxvY2sgcmV0dXJuRmFsc2UgPSBtX291dC5hbmNob3IobV9vdXQu
Ym9vbGVhbkZhbHNlKTsKQEAgLTE4MTkwLDE1ICsxODE4MCwxMyBAQCBjbGFzcyBMb3dlckRGR1Rv
QjMgewogICAgIHZvaWQgc3BlY3VsYXRlQmlnSW50MzIoRWRnZSBlZGdlKQogICAgIHsKICAgICAg
ICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZShlZGdlLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRp
b24pOwotICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUodmFsdWUpLCBlZGdlLCB+
U3BlY0Z1bGxOdW1iZXIsIGlzTnVtYmVyKHZhbHVlKSk7Ci0gICAgICAgIEZUTF9UWVBFX0NIRUNL
KGpzVmFsdWVWYWx1ZSh2YWx1ZSksIGVkZ2UsIFNwZWNCaWdJbnQzMiwgaXNOb3RCaWdJbnQzMktu
b3duTm90TnVtYmVyKHZhbHVlKSk7CisgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1
ZSh2YWx1ZSksIGVkZ2UsIFNwZWNCaWdJbnQzMiwgaXNOb3RCaWdJbnQzMih2YWx1ZSkpOwogICAg
IH0KIAogICAgIHZvaWQgc3BlY3VsYXRlQW55QmlnSW50KEVkZ2UgZWRnZSkKICAgICB7CiAgICAg
ICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0pTVmFsdWUoZWRnZSwgTWFudWFsT3BlcmFuZFNwZWN1bGF0
aW9uKTsKLSAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKHZhbHVlKSwgZWRnZSwg
flNwZWNGdWxsTnVtYmVyLCBpc051bWJlcih2YWx1ZSkpOwotICAgICAgICBGVExfVFlQRV9DSEVD
Syhqc1ZhbHVlVmFsdWUodmFsdWUpLCBlZGdlLCBTcGVjQmlnSW50LCBpc05vdEFueUJpZ0ludEtu
b3duTm90TnVtYmVyKHZhbHVlKSk7CisgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1
ZSh2YWx1ZSksIGVkZ2UsIFNwZWNCaWdJbnQsIGlzTm90QW55QmlnSW50KHZhbHVlKSk7CiAgICAg
fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1i
bHlIZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmNwcAppbmRleCBjODlmNjg1ZmY3YzhhODAwNzAyNmUxNTY4ZWVhOTk2YTNlNmJiZjhkLi4zOWRl
YmVlMzZkZTFmNjZiOWJjNDg5M2ExZjQ4YmU1ODVjM2VmYTEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCkBAIC03NTUsNyArNzU1LDcgQEAgdm9p
ZCBBc3NlbWJseUhlbHBlcnM6OmVtaXRDb252ZXJ0VmFsdWVUb0Jvb2xlYW4oVk0mIHZtLCBKU1Zh
bHVlUmVncyB2YWx1ZSwgR1BSUmUKIAogICAgIG5vdERvdWJsZS5saW5rKHRoaXMpOwogI2lmIFVT
RShCSUdJTlQzMikKLSAgICBhdXRvIGlzTm90QmlnSW50MzIgPSBicmFuY2hJZk5vdEJpZ0ludDMy
S25vd25Ob3ROdW1iZXIodmFsdWUuZ3ByKCksIHJlc3VsdCk7CisgICAgYXV0byBpc05vdEJpZ0lu
dDMyID0gYnJhbmNoSWZOb3RCaWdJbnQzMih2YWx1ZS5ncHIoKSwgcmVzdWx0KTsKICAgICBtb3Zl
KHZhbHVlLmdwcigpLCByZXN1bHQpOwogICAgIHVyc2hpZnQ2NChUcnVzdGVkSW1tMzIoMTYpLCBy
ZXN1bHQpOwogICAgIGNvbXBhcmUzMihpbnZlcnQgPyBFcXVhbCA6IE5vdEVxdWFsLCByZXN1bHQs
IFRydXN0ZWRJbW0zMigwKSwgcmVzdWx0KTsKQEAgLTg1Niw3ICs4NTYsNyBAQCBBc3NlbWJseUhl
bHBlcnM6Okp1bXBMaXN0IEFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZWYWx1ZShWTSYgdm0sIEpT
VmFsdWVSZWdzIHZhbAogCiAgICAgbm90RG91YmxlLmxpbmsodGhpcyk7CiAjaWYgVVNFKEJJR0lO
VDMyKQotICAgIGF1dG8gaXNOb3RCaWdJbnQzMiA9IGJyYW5jaElmTm90QmlnSW50MzJLbm93bk5v
dE51bWJlcih2YWx1ZS5ncHIoKSwgc2NyYXRjaCk7CisgICAgYXV0byBpc05vdEJpZ0ludDMyID0g
YnJhbmNoSWZOb3RCaWdJbnQzMih2YWx1ZS5ncHIoKSwgc2NyYXRjaCk7CiAgICAgbW92ZSh2YWx1
ZS5ncHIoKSwgc2NyYXRjaCk7CiAgICAgdXJzaGlmdDY0KFRydXN0ZWRJbW0zMigxNiksIHNjcmF0
Y2gpOwogICAgIHRydXRoeS5hcHBlbmQoYnJhbmNoVGVzdDMyKGludmVydCA/IFplcm8gOiBOb25a
ZXJvLCBzY3JhdGNoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fz
c2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBl
cnMuaAppbmRleCBlZDA3M2U3NmRlNDk4MmVhYTBhNmU4ZWM5MDEwMTM1ZDk5ZGNhZWFmLi40OTVm
MzBkMjNiMzkyYTIxOTNmOWE2N2I0NjZjYTc4ZThjZjg3NzA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTkzMiw0MCArOTMyLDM5IEBAIGNsYXNz
IEFzc2VtYmx5SGVscGVycyA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlciB7CiAKICNpZiBVU0UoQklH
SU5UMzIpCiAgICAgSnVtcCBicmFuY2hJZkJpZ0ludDMyKEdQUlJlZyBncHIsIEdQUlJlZyB0ZW1w
R1BSLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQotICAgIHsKLSAg
ICAgICAgSnVtcCBudW1iZXIgPSBicmFuY2hJZk51bWJlcihncHIsIG1vZGUpOwotICAgICAgICBK
dW1wIGJpZ0ludDMyID0gYnJhbmNoSWZCaWdJbnQzMktub3duTm90TnVtYmVyKGdwciwgdGVtcEdQ
Uik7Ci0gICAgICAgIG51bWJlci5saW5rKHRoaXMpOwotICAgICAgICByZXR1cm4gYmlnSW50MzI7
Ci0gICAgfQotICAgIEp1bXBMaXN0IGJyYW5jaElmTm90QmlnSW50MzIoR1BSUmVnIGdwciwgR1BS
UmVnIHRlbXBHUFIsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCi0g
ICAgewotICAgICAgICBKdW1wTGlzdCByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoYnJh
bmNoSWZOdW1iZXIoZ3ByLCBtb2RlKSk7Ci0gICAgICAgIEp1bXAgYmlnSW50MzIgPSBicmFuY2hJ
ZkJpZ0ludDMyS25vd25Ob3ROdW1iZXIoZ3ByLCB0ZW1wR1BSKTsKLSAgICAgICAgcmVzdWx0LmFw
cGVuZChqdW1wKCkpOwotICAgICAgICBiaWdJbnQzMi5saW5rKHRoaXMpOwotICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgIH0KLQotICAgIEp1bXAgYnJhbmNoSWZCaWdJbnQzMktub3duTm90TnVt
YmVyKEdQUlJlZyBncHIsIEdQUlJlZyB0ZW1wR1BSKQogICAgIHsKICAgICAgICAgQVNTRVJUKHRl
bXBHUFIgIT0gSW52YWxpZEdQUlJlZyk7CisgICAgICAgIGlmIChtb2RlID09IEhhdmVUYWdSZWdp
c3RlcnMgJiYgZ3ByICE9IHRlbXBHUFIpIHsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoSlNW
YWx1ZTo6QmlnSW50MzJNYXNrID09IEpTVmFsdWU6Ok51bWJlclRhZyArIEpTVmFsdWU6OkJpZ0lu
dDMyVGFnKTsKKyAgICAgICAgICAgIGFkZDY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCaWdJbnQz
MlRhZyksIEdQUkluZm86Om51bWJlclRhZ1JlZ2lzdGVyLCB0ZW1wR1BSKTsKKyAgICAgICAgICAg
IGFuZDY0KGdwciwgdGVtcEdQUik7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoNjQoRXF1YWws
IHRlbXBHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCaWdJbnQzMlRhZykpOworICAgICAgICB9
CiAgICAgICAgIG1vdmUoZ3ByLCB0ZW1wR1BSKTsKLSAgICAgICAgYW5kNjQoVHJ1c3RlZEltbTMy
KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSwgdGVtcEdQUik7CisgICAgICAgIGFuZDY0KFRydXN0ZWRJ
bW02NChKU1ZhbHVlOjpCaWdJbnQzMk1hc2spLCB0ZW1wR1BSKTsKICAgICAgICAgcmV0dXJuIGJy
YW5jaDY0KEVxdWFsLCB0ZW1wR1BSLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6QmlnSW50MzJUYWcp
KTsKICAgICB9Ci0gICAgSnVtcCBicmFuY2hJZk5vdEJpZ0ludDMyS25vd25Ob3ROdW1iZXIoSlNW
YWx1ZVJlZ3MgcmVncywgR1BSUmVnIHRlbXBHUFIpCi0gICAgewotICAgICAgICByZXR1cm4gYnJh
bmNoSWZOb3RCaWdJbnQzMktub3duTm90TnVtYmVyKHJlZ3MuZ3ByKCksIHRlbXBHUFIpOwotICAg
IH0KLSAgICBKdW1wIGJyYW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlcihHUFJSZWcgZ3By
LCBHUFJSZWcgdGVtcEdQUikKKyAgICBKdW1wIGJyYW5jaElmTm90QmlnSW50MzIoR1BSUmVnIGdw
ciwgR1BSUmVnIHRlbXBHUFIsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3Rl
cnMpCiAgICAgewogICAgICAgICBBU1NFUlQodGVtcEdQUiAhPSBJbnZhbGlkR1BSUmVnKTsKKyAg
ICAgICAgaWYgKG1vZGUgPT0gSGF2ZVRhZ1JlZ2lzdGVycyAmJiBncHIgIT0gdGVtcEdQUikgewor
ICAgICAgICAgICAgc3RhdGljX2Fzc2VydChKU1ZhbHVlOjpCaWdJbnQzMk1hc2sgPT0gSlNWYWx1
ZTo6TnVtYmVyVGFnICsgSlNWYWx1ZTo6QmlnSW50MzJUYWcpOworICAgICAgICAgICAgYWRkNjQo
VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkJpZ0ludDMyVGFnKSwgR1BSSW5mbzo6bnVtYmVyVGFnUmVn
aXN0ZXIsIHRlbXBHUFIpOworICAgICAgICAgICAgYW5kNjQoZ3ByLCB0ZW1wR1BSKTsKKyAgICAg
ICAgICAgIHJldHVybiBicmFuY2g2NChOb3RFcXVhbCwgdGVtcEdQUiwgVHJ1c3RlZEltbTMyKEpT
VmFsdWU6OkJpZ0ludDMyVGFnKSk7CisgICAgICAgIH0KICAgICAgICAgbW92ZShncHIsIHRlbXBH
UFIpOwotICAgICAgICBhbmQ2NChUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6QmlnSW50MzJUYWcpLCB0
ZW1wR1BSKTsKKyAgICAgICAgYW5kNjQoVHJ1c3RlZEltbTY0KEpTVmFsdWU6OkJpZ0ludDMyTWFz
ayksIHRlbXBHUFIpOwogICAgICAgICByZXR1cm4gYnJhbmNoNjQoTm90RXF1YWwsIHRlbXBHUFIs
IFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCaWdJbnQzMlRhZykpOwogICAgIH0KKyAgICBKdW1wIGJy
YW5jaElmQmlnSW50MzIoSlNWYWx1ZVJlZ3MgcmVncywgR1BSUmVnIHRlbXBHUFIsIFRhZ1JlZ2lz
dGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCisgICAgeworICAgICAgICByZXR1cm4g
YnJhbmNoSWZCaWdJbnQzMihyZWdzLmdwcigpLCB0ZW1wR1BSLCBtb2RlKTsKKyAgICB9CisgICAg
SnVtcCBicmFuY2hJZk5vdEJpZ0ludDMyKEpTVmFsdWVSZWdzIHJlZ3MsIEdQUlJlZyB0ZW1wR1BS
LCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGJyYW5jaElmTm90QmlnSW50MzIocmVncy5ncHIoKSwgdGVtcEdQUiwgbW9kZSk7
CisgICAgfQogI2VuZGlmIC8vIFVTRShCSUdJTlQzMikKIAogICAgIC8vIEZJWE1FOiByZW5hbWUg
dGhlc2UgdG8gbWFrZSBpdCBjbGVhciB0aGF0IHRoZXkgcmVxdWlyZSB0aGVpciBpbnB1dCB0byBi
ZSBhIGNlbGwuCkBAIC0xODMzLDcgKzE4MzIsNyBAQCBjbGFzcyBBc3NlbWJseUhlbHBlcnMgOiBw
dWJsaWMgTWFjcm9Bc3NlbWJsZXIgewogICAgICAgICBub3RCb29sZWFuLmxpbmsodGhpcyk7CiAK
ICNpZiBVU0UoQklHSU5UMzIpCi0gICAgICAgIEp1bXAgbm90QmlnSW50MzIgPSBicmFuY2hJZk5v
dEJpZ0ludDMyS25vd25Ob3ROdW1iZXIocmVncywgdGVtcEdQUik7CisgICAgICAgIEp1bXAgbm90
QmlnSW50MzIgPSBicmFuY2hJZk5vdEJpZ0ludDMyKHJlZ3MsIHRlbXBHUFIpOwogICAgICAgICBm
dW5jdG9yKFR5cGVvZlR5cGU6OkJpZ0ludCwgZmFsc2UpOwogICAgICAgICBub3RCaWdJbnQzMi5s
aW5rKHRoaXMpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDJiNzNlNTM4YzdmMDczYWYxNzA0NWU4MTcyMjcwNGI5MGI5OTE0
YjkuLjY0YWNkZmM5NjllZGMwMWM2MjczNmM4MjNkZTlkMTBhYjJhM2QzMGQgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMjAtMDQtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAg
ICAgICBbSlNDXSBicmFuY2hJZkJpZ0ludDMyIGNhbiB1c2UgQmlnSW50MzJNYXNrIGFuZCByZW1v
dmUgYnJhbmNoSWZOdW1iZXIgZmlsdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTA4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHN0cmVzcy9hbnliaWdpbnR1c2Utc2hvdWxkLWZpbHRlci1udW1i
ZXItY29ycmVjdGx5LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRl
c3QpOgorCiAyMDIwLTA0LTIyICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0pTQ10gSlNCaWdJbnQgaW5jIG9wZXJhdGlvbiBkb2VzIG5vdCBwcm9kdWNlIHJp
Z2h0IEhlYXBCaWdJbnQgemVybwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYW55YmlnaW50
dXNlLXNob3VsZC1maWx0ZXItbnVtYmVyLWNvcnJlY3RseS5qcyBiL0pTVGVzdHMvc3RyZXNzL2Fu
eWJpZ2ludHVzZS1zaG91bGQtZmlsdGVyLW51bWJlci1jb3JyZWN0bHkuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Yjk2MDM4YmFmMjE5YjQ5MTYyMjAyN2M4N2M0MjJkMDViYjQ1Zjk0ZAotLS0gL2Rldi9udWxsCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2FueWJpZ2ludHVzZS1zaG91bGQtZmlsdGVyLW51bWJlci1jb3Jy
ZWN0bHkuanMKQEAgLTAsMCArMSwyNSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBl
Y3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoYSwgYikK
K3sKKyAgICByZXR1cm4gYSA9PT0gYjsKK30KK25vSW5saW5lKHRlc3QpOworCitmb3IgKHZhciBp
ID0gMDsgaSA8IDFlNjsgKytpKSB7CisgICAgaWYgKGkgJiAxKSB7CisgICAgICAgIHRlc3QoMG4s
IDBuKTsKKyAgICAgICAgdGVzdCgwbiwgMTBuKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0
KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4sIDIwMG4pOworICAg
ICAgICB0ZXN0KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4sIDEw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pOworICAgIH0KK30KK3No
b3VsZEJlKHRlc3QoMjAsIDIwKSwgdHJ1ZSk7CitzaG91bGRCZSh0ZXN0KDIwLCA0MCksIGZhbHNl
KTsKK3Nob3VsZEJlKHRlc3QoMC41LCAwLjUpLCB0cnVlKTsKK3Nob3VsZEJlKHRlc3QoMC41LCAw
LjI0KSwgZmFsc2UpOworc2hvdWxkQmUodGVzdCgyMC4xIC0gMC4xLCAyMCksIHRydWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397271</attachid>
            <date>2020-04-22 15:07:24 -0700</date>
            <delta_ts>2020-04-22 15:13:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210870-20200422150723.patch</filename>
            <type>text/plain</type>
            <size>21621</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NWM1NWMzNjdiMzE5MjU2YzhmNzJhYTUxMTE5ZmM2Y2FmOGFhYzA2Li4wOTMyYWUxOWFlNGZhYjg3
ZWJhN2Y3MTQ1OGE4NTI3ODk2NTkyY2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAyMC0wNC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIGJyYW5jaElmQmlnSW50MzIgY2FuIHVzZSBCaWdJbnQzMk1hc2sg
YW5kIHJlbW92ZSBicmFuY2hJZk51bWJlciBmaWx0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ5IHVzaW5nIEJpZ0ludDMyTWFzaywgd2UgY2FuIGRl
dGVjdCBCaWdJbnQzMiB3aXRob3V0IGZpbHRlcmluZyBOdW1iZXJzLiBJbiB0aGlzIHBhdGNoLAor
CisgICAgICAgIDEuIFJlbW92ZSBicmFuY2hJZkJpZ0ludDMyS25vd25Ob3ROdW1iZXIgYW5kIGJy
YW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlci4gQW5kIGFsd2F5cyB1c2UgYnJhbmNoQmln
SW50MzIgYW5kIGJyYW5jaE5vdEJpZ0ludDMyIGluc3RlYWQuCisgICAgICAgIDIuIFJlbW92ZSBi
cmFuY2hJZk51bWJlciB0eXBlIGZpbHRlcmluZyBpbiBERkcuCisgICAgICAgIDMuIFVzZSBCaWdJ
bnQzMk1hc2sgYmFzZWQgc2NoZW1lIGluIEZUTC4KKyAgICAgICAgNC4gQWRkIGFuZDY0KFRydXN0
ZWRJbW02NCwgUmVnaXN0ZXJJRCkgaW1wbGVtZW50YXRpb25zIGluIE1hY3JvQXNzZW1ibGVyLgor
ICAgICAgICA1LiBBZGQgVGFnUmVnaXN0ZXJzTW9kZSB2ZXJzaW9uIGluIGJyYW5jaElmQmlnSW50
LiBXZSB1c2UgbnVtYmVyVGFnUmVnaXN0ZXIgdG8gcHJvZHVjZSByZWFsbHkgZWZmaWNpZW50IGNv
ZGVbMV0gYnkgYXZvaWRpbmcgbGFyZ2UgY29uc3RhbnQgbWF0ZXJpYWxpemF0aW9uLgorCisgICAg
ICAgIFsxXTogRnJvbQorICAgICAgICAgICAgICAgIG1vdiAlcmF4LCAlcmR4CisgICAgICAgICAg
ICAgICAgbW92ICQweGZmZmUwMDAwMDAwMDAwMTIsICVyMTEKKyAgICAgICAgICAgICAgICBhbmQg
JXIxMSwgJXJkeAorICAgICAgICAgICAgICAgIGNtcCAkMHgxMiwgJXJkeAorICAgICAgICAgICAg
IFRvCisgICAgICAgICAgICAgICAgbGVhIDB4MTIoJXIxNCksICVyZHgKKyAgICAgICAgICAgICAg
ICBhbmQgJXJheCwgJXJkeAorICAgICAgICAgICAgICAgIGNtcCAkMHgxMiwgJXJkeAorCisgICAg
ICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NDo6YW5kNjQpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlclg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6YW5kNjQp
OgorICAgICAgICAqIGJ5dGVjb2RlL0FyaXRoUHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6OkFy
aXRoUHJvZmlsZTxCaXRmaWVsZFR5cGU+OjplbWl0T2JzZXJ2ZVJlc3VsdCk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpmaWxsU3BlY3VsYXRlQmlnSW50MzIpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRG
R1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxl
VG9OdW1lcmljKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGls
ZUNvbXBhcmVTdHJpY3RFcSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OmNvbXBpbGVJc0JpZ0ludCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OmJvb2xpZnkpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpidWlsZFR5
cGVPZik6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omxvd0JpZ0ludDMy
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNCaWdJbnQzMik6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmlzTm90QmlnSW50MzIpOgorICAg
ICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjppc05vdEFueUJpZ0ludCk6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZUJpZ0ludDMyKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlQW55QmlnSW50KToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNCaWdJbnQzMktub3duTm90
Q2VsbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omlz
QmlnSW50MzJLbm93bk5vdE51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvQjM6OmlzTm90QmlnSW50MzJLbm93bk5vdE51bWJlcik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmlzTm90QW55QmlnSW50S25vd25O
b3ROdW1iZXIpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuY3BwOgor
ICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRDb252ZXJ0VmFsdWVUb0Jvb2xlYW4p
OgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmVmFsdWUpOgorICAgICAg
ICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJz
OjpicmFuY2hJZkJpZ0ludDMyKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFu
Y2hJZk5vdEJpZ0ludDMyKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjplbWl0VHlw
ZU9mKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZkJpZ0ludDMyS25v
d25Ob3ROdW1iZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJy
YW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlcik6IERlbGV0ZWQuCisKIDIwMjAtMDQtMjIg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBKU0Jp
Z0ludCBpbmMgb3BlcmF0aW9uIGRvZXMgbm90IHByb2R1Y2UgcmlnaHQgSGVhcEJpZ0ludCB6ZXJv
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk02NC5oCmluZGV4IDE1Mzk3ZThiN2Y0OGE4NGZiMjdmMTFkMmYxMzcxZTBlMmEzMDFjYjYu
LjAyYTg2N2ExYzEwNDQyYWI0ZDFiMjNmNjA5ZDA4NjRiNTM2MmUxMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCkBA
IC00MTcsNyArNDE3LDE2IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNNjQgOiBwdWJsaWMgQWJz
dHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3NlbWJsZXI+IHsKIAogICAgIHZvaWQgYW5kNjQoVHJ1c3Rl
ZEltbVB0ciBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIExvZ2ljYWxJbW1l
ZGlhdGUgbG9naWNhbEltbSA9IExvZ2ljYWxJbW1lZGlhdGU6OmNyZWF0ZTY0KHJlaW50ZXJwcmV0
X2Nhc3Q8dWludDY0X3Q+KGltbS5tX3ZhbHVlKSk7CisgICAgICAgIGludHB0cl90IHZhbHVlID0g
aW1tLmFzSW50cHRyKCk7CisgICAgICAgIGlmIGNvbnN0ZXhwciAoc2l6ZW9mKHZvaWQqKSA9PSBz
aXplb2YodWludDY0X3QpKQorICAgICAgICAgICAgYW5kNjQoVHJ1c3RlZEltbTY0KHZhbHVlKSwg
ZGVzdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFuZDY0KFRydXN0ZWRJbW0zMihzdGF0
aWNfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCBkZXN0KTsKKyAgICB9CisKKyAgICB2b2lkIGFuZDY0
KFRydXN0ZWRJbW02NCBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIExvZ2lj
YWxJbW1lZGlhdGUgbG9naWNhbEltbSA9IExvZ2ljYWxJbW1lZGlhdGU6OmNyZWF0ZTY0KGJpdHdp
c2VfY2FzdDx1aW50NjRfdD4oaW1tLm1fdmFsdWUpKTsKIAogICAgICAgICBpZiAobG9naWNhbElt
bS5pc1ZhbGlkKCkpIHsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFuZF88NjQ+KGRlc3QsIGRl
c3QsIGxvZ2ljYWxJbW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCmluZGV4IDJhMWRkZWRlZTM2ZGJlM2NkZTU3MmY0
ODYwNWE0NjRjODBiNmU3ODcuLjBiNjVjMmFlMWY1ZjQ0MTczNGU5YjdmMWVkMzYzYWZhNWMzZjBj
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZfNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyWDg2XzY0LmgKQEAgLTQ0MSw3ICs0NDEsMTMgQEAgY2xhc3MgTWFjcm9Bc3NlbWJs
ZXJYODZfNjQgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJYODZDb21tb24gewogCiAgICAgdm9pZCBh
bmQ2NChUcnVzdGVkSW1tUHRyIGltbSwgUmVnaXN0ZXJJRCBzcmNEZXN0KQogICAgIHsKLSAgICAg
ICAgaW50cHRyX3QgaW50VmFsdWUgPSBpbW0uYXNJbnRwdHIoKTsKKyAgICAgICAgc3RhdGljX2Fz
c2VydChzaXplb2Yodm9pZCopID09IHNpemVvZihpbnQ2NF90KSk7CisgICAgICAgIGFuZDY0KFRy
dXN0ZWRJbW02NChiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oaW1tLm1fdmFsdWUpKSwgc3JjRGVzdCk7
CisgICAgfQorCisgICAgdm9pZCBhbmQ2NChUcnVzdGVkSW1tNjQgaW1tLCBSZWdpc3RlcklEIHNy
Y0Rlc3QpCisgICAgeworICAgICAgICBpbnQ2NF90IGludFZhbHVlID0gaW1tLm1fdmFsdWU7CiAg
ICAgICAgIGlmIChpbnRWYWx1ZSA8PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgo
KQogICAgICAgICAgICAgJiYgaW50VmFsdWUgPj0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90
Pjo6bWluKCkpIHsKICAgICAgICAgICAgIGFuZDY0KFRydXN0ZWRJbW0zMihzdGF0aWNfY2FzdDxp
bnQzMl90PihpbnRWYWx1ZSkpLCBzcmNEZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5jcHAKaW5kZXggODVlYzcyODMyZjMyYzI2M2Q3YzU3ODY1
ZWMyYjE5ZTk5MjMwZjE5Mi4uNTczMTk2NGNlNTkzNWVkN2NjZmNhOTNiNTIxYzMyOWM3YWM5MGUz
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FyaXRoUHJvZmls
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FyaXRoUHJvZmlsZS5j
cHAKQEAgLTQ5LDcgKzQ5LDcgQEAgdm9pZCBBcml0aFByb2ZpbGU8Qml0ZmllbGRUeXBlPjo6ZW1p
dE9ic2VydmVSZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIEpTVmFsdWVSZWcKICAgICBub3REb3Vi
bGUubGluaygmaml0KTsKIAogI2lmIFVTRShCSUdJTlQzMikKLSAgICBDQ2FsbEhlbHBlcnM6Okp1
bXAgbm90QmlnSW50MzIgPSBqaXQuYnJhbmNoSWZOb3RCaWdJbnQzMktub3duTm90TnVtYmVyKHJl
Z3MsIHRlbXBHUFIpOworICAgIENDYWxsSGVscGVyczo6SnVtcCBub3RCaWdJbnQzMiA9IGppdC5i
cmFuY2hJZk5vdEJpZ0ludDMyKHJlZ3MsIHRlbXBHUFIsIG1vZGUpOwogICAgIGVtaXRTZXRCaWdJ
bnQzMihqaXQpOwogICAgIGRvbmUuYXBwZW5kKGppdC5qdW1wKCkpOwogICAgIG5vdEJpZ0ludDMy
LmxpbmsoJmppdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAppbmRleCA0Y2E3ODc3Yzc5YWM0YzBlNDUxM2RlMGU4MGI5NmI2MGFlMjc1
ZWZlLi4zNzg4M2QzOGE2YmMwYzllZTEzN2NkZjkxODI0MDQ2ZmU5OTkxMzdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTE0
NjksOCArMTQ2OSw3IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUJpZ0lu
dDMyKEVkZ2UgZWRnZSkKICAgICAgICAgaWYgKHR5cGUgJiB+U3BlY0JpZ0ludDMyKSB7CiAgICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGZhaWx1cmVDYXNlczsKICAgICAgICAgICAg
IEdQUlJlZyB0ZW1wR1BSID0gYWxsb2NhdGUoKTsKLSAgICAgICAgICAgIGZhaWx1cmVDYXNlcy5h
cHBlbmQobV9qaXQuYnJhbmNoSWZOdW1iZXIoZ3ByKSk7Ci0gICAgICAgICAgICBmYWlsdXJlQ2Fz
ZXMuYXBwZW5kKG1faml0LmJyYW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlcihncHIsIHRl
bXBHUFIpKTsKKyAgICAgICAgICAgIGZhaWx1cmVDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoSWZO
b3RCaWdJbnQzMihncHIsIHRlbXBHUFIpKTsKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
QmFkVHlwZSwgSlNWYWx1ZVJlZ3MoZ3ByKSwgZWRnZSwgZmFpbHVyZUNhc2VzKTsKICAgICAgICAg
ICAgIHVubG9jayh0ZW1wR1BSKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDMyMDUxMWFlMDI3MTQyODU3ZDQ0YTI1MDdi
NDI2M2RiODlmNTdhMjYuLmVhYjVmNmYyYzQzMzkxMGIyZWRlOWRkODM4ZTQ4YzUzYjgyYThkY2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAg
LTc1NTQsNyArNzU1NCw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICAvLyBu
b3ROdW1iZXIgY2FzZS4KICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQu
YXBwZW5kVG8obm90TnVtYmVyLCBjb250aW51YXRpb24pOwogI2lmIFVTRShCSUdJTlQzMikKLSAg
ICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0JpZ0ludDMyS25vd25Ob3ROdW1iZXIodmFsdWUsIHBy
b3ZlblR5cGUobV9ub2RlLT5jaGlsZDEoKSkpLCB1bnN1cmUoY29udGludWF0aW9uKSwgdW5zdXJl
KG5vdEJpZ0ludDMyKSk7CisgICAgICAgICAgICBtX291dC5icmFuY2goaXNCaWdJbnQzMih2YWx1
ZSwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMSgpKSksIHVuc3VyZShjb250aW51YXRpb24pLCB1
bnN1cmUobm90QmlnSW50MzIpKTsKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5vdEJpZ0lu
dDMyKTsKICNlbmRpZgogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlzQ2VsbCh2YWx1ZSwgcHJv
dmVuVHlwZShtX25vZGUtPmNoaWxkMSgpKSksIHVuc3VyZShpc0NlbGxQYXRoKSwgdW5zdXJlKHNs
b3dQYXRoKSk7CkBAIC04NzE5LDkgKzg3MTksNiBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgcmlnaHRJc05vdEJpZ0ludDMyID0gbV9vdXQubmV3QmxvY2so
KTsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2Nr
KCk7CiAKLSAgICAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShsZWZ0KSwgbV9u
b2RlLT5jaGlsZDEoKSwgflNwZWNGdWxsTnVtYmVyLCBpc051bWJlcihsZWZ0KSk7Ci0gICAgICAg
ICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUocmlnaHQpLCBtX25vZGUtPmNoaWxkMigp
LCB+U3BlY0Z1bGxOdW1iZXIsIGlzTnVtYmVyKHJpZ2h0KSk7Ci0KICAgICAgICAgICAgIC8vIElu
c2VydHMgYSBjaGVjayB0aGF0IGEgdmFsdWUgaXMgYSBIZWFwQmlnSW50LCBhc3N1bWluZyBvbmx5
IHRoYXQgd2Uga25vdyBpdCBpcyBub3QgYSBCaWdJbnQzMgogICAgICAgICAgICAgYXV0byBjaGVj
a0lzSGVhcEJpZ0ludCA9IFsmXShMVmFsdWUgbG93VmFsdWUsIEVkZ2UgaGlnaFZhbHVlKSB7CiAg
ICAgICAgICAgICAgICAgaWYgKG1faW50ZXJwcmV0ZXIubmVlZHNUeXBlQ2hlY2soaGlnaFZhbHVl
LCBTcGVjSGVhcEJpZ0ludCkpIHsKQEAgLTg3MzEsMTAgKzg3MjgsMTAgQEAgY2xhc3MgTG93ZXJE
RkdUb0IzIHsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9OwogCi0gICAgICAgICAg
ICBtX291dC5icmFuY2goaXNCaWdJbnQzMktub3duTm90TnVtYmVyKGxlZnQsIHByb3ZlblR5cGUo
bV9ub2RlLT5jaGlsZDEoKSkpLCB1bnN1cmUobGVmdElzQmlnSW50MzIpLCB1bnN1cmUobGVmdElz
Tm90QmlnSW50MzIpKTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0JpZ0ludDMyKGxlZnQs
IHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDEoKSkpLCB1bnN1cmUobGVmdElzQmlnSW50MzIpLCB1
bnN1cmUobGVmdElzTm90QmlnSW50MzIpKTsKIAogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFz
dE5leHQgPSBtX291dC5hcHBlbmRUbyhsZWZ0SXNCaWdJbnQzMiwgYm90aEFyZUJpZ0ludDMyKTsK
LSAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc0JpZ0ludDMyS25vd25Ob3ROdW1iZXIocmlnaHQs
IHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDIoKSkpLCB1bnN1cmUoYm90aEFyZUJpZ0ludDMyKSwg
dW5zdXJlKG9ubHlMZWZ0SXNCaWdJbnQzMikpOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlz
QmlnSW50MzIocmlnaHQsIHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDIoKSkpLCB1bnN1cmUoYm90
aEFyZUJpZ0ludDMyKSwgdW5zdXJlKG9ubHlMZWZ0SXNCaWdJbnQzMikpOwogCiAgICAgICAgICAg
ICBtX291dC5hcHBlbmRUbyhib3RoQXJlQmlnSW50MzIsIG9ubHlMZWZ0SXNCaWdJbnQzMik7CiAg
ICAgICAgICAgICBWYWx1ZUZyb21CbG9jayByZXN1bHRCb3RoQXJlQmlnSW50MzIgPSBtX291dC5h
bmNob3IobV9vdXQuZXF1YWwobGVmdCwgcmlnaHQpKTsKQEAgLTg3NTUsNyArODc1Miw3IEBAIGNs
YXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7
CiAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGxlZnRJc0hlYXBCaWdJbnQsIHJpZ2h0SXNC
aWdJbnQzMik7Ci0gICAgICAgICAgICBtX291dC5icmFuY2goaXNCaWdJbnQzMktub3duTm90TnVt
YmVyKHJpZ2h0LCBwcm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQyKCkpKSwgdW5zdXJlKHJpZ2h0SXNC
aWdJbnQzMiksIHVuc3VyZShyaWdodElzTm90QmlnSW50MzIpKTsKKyAgICAgICAgICAgIG1fb3V0
LmJyYW5jaChpc0JpZ0ludDMyKHJpZ2h0LCBwcm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQyKCkpKSwg
dW5zdXJlKHJpZ2h0SXNCaWdJbnQzMiksIHVuc3VyZShyaWdodElzTm90QmlnSW50MzIpKTsKIAog
ICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8ocmlnaHRJc0JpZ0ludDMyLCByaWdodElzTm90Qmln
SW50MzIpOwogICAgICAgICAgICAgTFZhbHVlIHVuYm94ZWRSaWdodCA9IHVuYm94QmlnSW50MzIo
cmlnaHQpOwpAQCAtMTA5MjgsNyArMTA5MjUsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogCiAg
ICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXNOb3RDZWxsQ2Fz
ZSwgaXNDZWxsQ2FzZSk7CiAgICAgICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgZmlsdGVyIHRoZSBw
cm92ZW5UeXBlIHRvIGluY2x1ZGUgdGhlIGZhY3QgdGhhdCB3ZSBrbm93IHdlIGFyZSBub3QgZGVh
bGluZyB3aXRoIGEgY2VsbAotICAgICAgICBWYWx1ZUZyb21CbG9jayBub3RDZWxsUmVzdWx0ID0g
bV9vdXQuYW5jaG9yKGlzQmlnSW50MzJLbm93bk5vdENlbGwodmFsdWUsIHByb3ZlblR5cGUobV9u
b2RlLT5jaGlsZDEoKSkpKTsKKyAgICAgICAgVmFsdWVGcm9tQmxvY2sgbm90Q2VsbFJlc3VsdCA9
IG1fb3V0LmFuY2hvcihpc0JpZ0ludDMyKHZhbHVlLCBwcm92ZW5UeXBlKG1fbm9kZS0+Y2hpbGQx
KCkpKSk7CiAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKIAogICAgICAgICBtX291
dC5hcHBlbmRUbyhpc0NlbGxDYXNlLCBjb250aW51YXRpb24pOwpAQCAtMTU0NzEsNyArMTU0Njgs
NyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogI2lmIFVTRShCSUdJTlQzMikKICAgICAgICAgICAg
IG1fb3V0LmFwcGVuZFRvKG5vdERvdWJsZUNhc2UsIGJpZ0ludDMyQ2FzZSk7CiAgICAgICAgICAg
ICBtX291dC5icmFuY2goCi0gICAgICAgICAgICAgICAgaXNCaWdJbnQzMktub3duTm90TnVtYmVy
KHZhbHVlLCBwcm92ZW5UeXBlKGVkZ2UpICYgflNwZWNDZWxsKSwKKyAgICAgICAgICAgICAgICBp
c0JpZ0ludDMyKHZhbHVlLCBwcm92ZW5UeXBlKGVkZ2UpICYgflNwZWNDZWxsKSwKICAgICAgICAg
ICAgICAgICB1bnN1cmUoYmlnSW50MzJDYXNlKSwgdW5zdXJlKG5vdEJpZ0ludDMyQ2FzZSkpOwog
CiAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhiaWdJbnQzMkNhc2UsIG5vdEJpZ0ludDMyQ2Fz
ZSk7CkBAIC0xNjE5Nyw3ICsxNjE5NCw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAKICNpZiBV
U0UoQklHSU5UMzIpCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5vdE51bWJlckNhc2UsIG5vdEJp
Z0ludDMyQ2FzZSk7Ci0gICAgICAgIG1fb3V0LmJyYW5jaChpc0JpZ0ludDMyS25vd25Ob3ROdW1i
ZXIodmFsdWUsIHByb3ZlblR5cGUoY2hpbGQpICYgflNwZWNDZWxsKSwgdW5zdXJlKGJpZ0ludENh
c2UpLCB1bnN1cmUobm90QmlnSW50MzJDYXNlKSk7CisgICAgICAgIG1fb3V0LmJyYW5jaChpc0Jp
Z0ludDMyKHZhbHVlLCBwcm92ZW5UeXBlKGNoaWxkKSAmIH5TcGVjQ2VsbCksIHVuc3VyZShiaWdJ
bnRDYXNlKSwgdW5zdXJlKG5vdEJpZ0ludDMyQ2FzZSkpOwogCiAgICAgICAgIG1fb3V0LmFwcGVu
ZFRvKG5vdEJpZ0ludDMyQ2FzZSwgbm90TnVsbENhc2UpOwogI2Vsc2UKQEAgLTE2OTE3LDggKzE2
OTE0LDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgTG93ZXJlZE5vZGVWYWx1ZSB2
YWx1ZSA9IG1fanNWYWx1ZVZhbHVlcy5nZXQoZWRnZS5ub2RlKCkpOwogICAgICAgICBpZiAoaXNW
YWxpZCh2YWx1ZSkpIHsKICAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSB2YWx1ZS52YWx1ZSgp
OwotICAgICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKHJlc3VsdCksIGVkZ2Us
IH5TcGVjRnVsbE51bWJlciwgaXNOdW1iZXIocmVzdWx0KSk7Ci0gICAgICAgICAgICBGVExfVFlQ
RV9DSEVDSyhqc1ZhbHVlVmFsdWUocmVzdWx0KSwgZWRnZSwgU3BlY0JpZ0ludDMyLCBpc05vdEJp
Z0ludDMyS25vd25Ob3ROdW1iZXIocmVzdWx0KSk7CisgICAgICAgICAgICBGVExfVFlQRV9DSEVD
Syhqc1ZhbHVlVmFsdWUocmVzdWx0KSwgZWRnZSwgU3BlY0JpZ0ludDMyLCBpc05vdEJpZ0ludDMy
KHJlc3VsdCkpOwogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogCkBAIC0x
NzExNSwyMyArMTcxMTEsMTcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICB9CiAKICNpZiBV
U0UoQklHSU5UMzIpCi0gICAgTFZhbHVlIGlzQmlnSW50MzJLbm93bk5vdENlbGwoTFZhbHVlIGpz
VmFsdWUsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKKyAgICBMVmFsdWUgaXNC
aWdJbnQzMihMVmFsdWUganNWYWx1ZSwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNwZWNGdWxsVG9w
KQogICAgIHsKICAgICAgICAgaWYgKExWYWx1ZSBwcm92ZW4gPSBpc1Byb3ZlblZhbHVlKHR5cGUs
IFNwZWNCaWdJbnQzMikpCiAgICAgICAgICAgICByZXR1cm4gcHJvdmVuOwogICAgICAgICByZXR1
cm4gbV9vdXQuZXF1YWwobV9vdXQuYml0QW5kKGpzVmFsdWUsIG1fb3V0LmNvbnN0SW50NjQoSlNW
YWx1ZTo6QmlnSW50MzJNYXNrKSksIG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6QmlnSW50MzJU
YWcpKTsKICAgICB9Ci0gICAgTFZhbHVlIGlzQmlnSW50MzJLbm93bk5vdE51bWJlcihMVmFsdWUg
anNWYWx1ZSwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNwZWNGdWxsVG9wKQotICAgIHsKLSAgICAg
ICAgaWYgKExWYWx1ZSBwcm92ZW4gPSBpc1Byb3ZlblZhbHVlKHR5cGUsIFNwZWNCaWdJbnQzMikp
Ci0gICAgICAgICAgICByZXR1cm4gcHJvdmVuOwotICAgICAgICByZXR1cm4gbV9vdXQuZXF1YWwo
bV9vdXQuYml0QW5kKGpzVmFsdWUsIG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6QmlnSW50MzJU
YWcpKSwgbV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjpCaWdJbnQzMlRhZykpOwotICAgIH0KLSAg
ICBMVmFsdWUgaXNOb3RCaWdJbnQzMktub3duTm90TnVtYmVyKExWYWx1ZSBqc1ZhbHVlLCBTcGVj
dWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCisgICAgTFZhbHVlIGlzTm90QmlnSW50MzIo
TFZhbHVlIGpzVmFsdWUsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKICAgICB7
CiAgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlLCB+U3BlY0Jp
Z0ludDMyKSkKICAgICAgICAgICAgIHJldHVybiBwcm92ZW47Ci0gICAgICAgIHJldHVybiBtX291
dC5ub3RFcXVhbChtX291dC5iaXRBbmQoanNWYWx1ZSwgbV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVl
OjpCaWdJbnQzMlRhZykpLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSk7
CisgICAgICAgIHJldHVybiBtX291dC5ub3RFcXVhbChtX291dC5iaXRBbmQoanNWYWx1ZSwgbV9v
dXQuY29uc3RJbnQ2NChKU1ZhbHVlOjpCaWdJbnQzMk1hc2spKSwgbV9vdXQuY29uc3RJbnQ2NChK
U1ZhbHVlOjpCaWdJbnQzMlRhZykpOwogICAgIH0KICAgICBMVmFsdWUgdW5ib3hCaWdJbnQzMihM
VmFsdWUganNWYWx1ZSkKICAgICB7CkBAIC0xNzE0Myw3ICsxNzEzMyw3IEBAIGNsYXNzIExvd2Vy
REZHVG9CMyB7CiAgICAgICAgICAgICBtX291dC5zaGwobV9vdXQuemVyb0V4dChpbnQzMlZhbHVl
LCBCMzo6SW50NjQpLCBtX291dC5jb25zdEludDY0KDE2KSksCiAgICAgICAgICAgICBtX291dC5j
b25zdEludDY0KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSk7CiAgICAgfQotICAgIExWYWx1ZSBpc05v
dEFueUJpZ0ludEtub3duTm90TnVtYmVyKExWYWx1ZSBqc1ZhbHVlLCBTcGVjdWxhdGVkVHlwZSB0
eXBlID0gU3BlY0Z1bGxUb3ApCisgICAgTFZhbHVlIGlzTm90QW55QmlnSW50KExWYWx1ZSBqc1Zh
bHVlLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCiAgICAgewogICAgICAgICBp
ZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSwgflNwZWNCaWdJbnQpKQogICAg
ICAgICAgICAgcmV0dXJuIHByb3ZlbjsKQEAgLTE3MTU5LDcgKzE3MTQ5LDcgQEAgY2xhc3MgTG93
ZXJERkdUb0IzIHsKICAgICAgICAgTEJhc2ljQmxvY2sgaXNDZWxsQ2FzZSA9IG1fb3V0Lm5ld0Js
b2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2Nr
KCk7CiAKLSAgICAgICAgbV9vdXQuYnJhbmNoKGlzQmlnSW50MzJLbm93bk5vdE51bWJlcihqc1Zh
bHVlLCB0eXBlKSwgdW5zdXJlKGlzQmlnSW50MzJDYXNlKSwgdW5zdXJlKGlzTm90QmlnSW50MzJD
YXNlKSk7CisgICAgICAgIG1fb3V0LmJyYW5jaChpc0JpZ0ludDMyKGpzVmFsdWUsIHR5cGUpLCB1
bnN1cmUoaXNCaWdJbnQzMkNhc2UpLCB1bnN1cmUoaXNOb3RCaWdJbnQzMkNhc2UpKTsKIAogICAg
ICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGlzQmlnSW50MzJDYXNl
LCBpc05vdEJpZ0ludDMyQ2FzZSk7CiAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHJldHVybkZhbHNl
ID0gbV9vdXQuYW5jaG9yKG1fb3V0LmJvb2xlYW5GYWxzZSk7CkBAIC0xODE5MCwxNSArMTgxODAs
MTMgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICB2b2lkIHNwZWN1bGF0ZUJpZ0ludDMyKEVk
Z2UgZWRnZSkKICAgICB7CiAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0pTVmFsdWUoZWRnZSwg
TWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKLSAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1
ZVZhbHVlKHZhbHVlKSwgZWRnZSwgflNwZWNGdWxsTnVtYmVyLCBpc051bWJlcih2YWx1ZSkpOwot
ICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUodmFsdWUpLCBlZGdlLCBTcGVjQmln
SW50MzIsIGlzTm90QmlnSW50MzJLbm93bk5vdE51bWJlcih2YWx1ZSkpOworICAgICAgICBGVExf
VFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUodmFsdWUpLCBlZGdlLCBTcGVjQmlnSW50MzIsIGlzTm90
QmlnSW50MzIodmFsdWUpKTsKICAgICB9CiAKICAgICB2b2lkIHNwZWN1bGF0ZUFueUJpZ0ludChF
ZGdlIGVkZ2UpCiAgICAgewogICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dKU1ZhbHVlKGVkZ2Us
IE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7Ci0gICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFs
dWVWYWx1ZSh2YWx1ZSksIGVkZ2UsIH5TcGVjRnVsbE51bWJlciwgaXNOdW1iZXIodmFsdWUpKTsK
LSAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKHZhbHVlKSwgZWRnZSwgU3BlY0Jp
Z0ludCwgaXNOb3RBbnlCaWdJbnRLbm93bk5vdE51bWJlcih2YWx1ZSkpOworICAgICAgICBGVExf
VFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUodmFsdWUpLCBlZGdlLCBTcGVjQmlnSW50LCBpc05vdEFu
eUJpZ0ludCh2YWx1ZSkpOwogICAgIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKaW5kZXggYzg5ZjY4NWZmN2M4YTgwMDcwMjZlMTU2
OGVlYTk5NmEzZTZiYmY4ZC4uMzlkZWJlZTM2ZGUxZjY2YjliYzQ4OTNhMWY0OGJlNTg1YzNlZmEx
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcApA
QCAtNzU1LDcgKzc1NSw3IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjplbWl0Q29udmVydFZhbHVl
VG9Cb29sZWFuKFZNJiB2bSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlCiAKICAgICBub3REb3Vi
bGUubGluayh0aGlzKTsKICNpZiBVU0UoQklHSU5UMzIpCi0gICAgYXV0byBpc05vdEJpZ0ludDMy
ID0gYnJhbmNoSWZOb3RCaWdJbnQzMktub3duTm90TnVtYmVyKHZhbHVlLmdwcigpLCByZXN1bHQp
OworICAgIGF1dG8gaXNOb3RCaWdJbnQzMiA9IGJyYW5jaElmTm90QmlnSW50MzIodmFsdWUuZ3By
KCksIHJlc3VsdCk7CiAgICAgbW92ZSh2YWx1ZS5ncHIoKSwgcmVzdWx0KTsKICAgICB1cnNoaWZ0
NjQoVHJ1c3RlZEltbTMyKDE2KSwgcmVzdWx0KTsKICAgICBjb21wYXJlMzIoaW52ZXJ0ID8gRXF1
YWwgOiBOb3RFcXVhbCwgcmVzdWx0LCBUcnVzdGVkSW1tMzIoMCksIHJlc3VsdCk7CkBAIC04NTYs
NyArODU2LDcgQEAgQXNzZW1ibHlIZWxwZXJzOjpKdW1wTGlzdCBBc3NlbWJseUhlbHBlcnM6OmJy
YW5jaElmVmFsdWUoVk0mIHZtLCBKU1ZhbHVlUmVncyB2YWwKIAogICAgIG5vdERvdWJsZS5saW5r
KHRoaXMpOwogI2lmIFVTRShCSUdJTlQzMikKLSAgICBhdXRvIGlzTm90QmlnSW50MzIgPSBicmFu
Y2hJZk5vdEJpZ0ludDMyS25vd25Ob3ROdW1iZXIodmFsdWUuZ3ByKCksIHNjcmF0Y2gpOworICAg
IGF1dG8gaXNOb3RCaWdJbnQzMiA9IGJyYW5jaElmTm90QmlnSW50MzIodmFsdWUuZ3ByKCksIHNj
cmF0Y2gpOwogICAgIG1vdmUodmFsdWUuZ3ByKCksIHNjcmF0Y2gpOwogICAgIHVyc2hpZnQ2NChU
cnVzdGVkSW1tMzIoMTYpLCBzY3JhdGNoKTsKICAgICB0cnV0aHkuYXBwZW5kKGJyYW5jaFRlc3Qz
MihpbnZlcnQgPyBaZXJvIDogTm9uWmVybywgc2NyYXRjaCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggZWQwNzNlNzZkZTQ5ODJlYWEwYTZlOGVj
OTAxMDEzNWQ5OWRjYWVhZi4uNDk1ZjMwZDIzYjM5MmEyMTkzZjlhNjdiNDY2Y2E3OGU4Y2Y4Nzcw
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC05
MzIsNDAgKzkzMiwzOSBAQCBjbGFzcyBBc3NlbWJseUhlbHBlcnMgOiBwdWJsaWMgTWFjcm9Bc3Nl
bWJsZXIgewogCiAjaWYgVVNFKEJJR0lOVDMyKQogICAgIEp1bXAgYnJhbmNoSWZCaWdJbnQzMihH
UFJSZWcgZ3ByLCBHUFJSZWcgdGVtcEdQUiwgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRh
Z1JlZ2lzdGVycykKLSAgICB7Ci0gICAgICAgIEp1bXAgbnVtYmVyID0gYnJhbmNoSWZOdW1iZXIo
Z3ByLCBtb2RlKTsKLSAgICAgICAgSnVtcCBiaWdJbnQzMiA9IGJyYW5jaElmQmlnSW50MzJLbm93
bk5vdE51bWJlcihncHIsIHRlbXBHUFIpOwotICAgICAgICBudW1iZXIubGluayh0aGlzKTsKLSAg
ICAgICAgcmV0dXJuIGJpZ0ludDMyOwotICAgIH0KLSAgICBKdW1wTGlzdCBicmFuY2hJZk5vdEJp
Z0ludDMyKEdQUlJlZyBncHIsIEdQUlJlZyB0ZW1wR1BSLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUg
PSBIYXZlVGFnUmVnaXN0ZXJzKQotICAgIHsKLSAgICAgICAgSnVtcExpc3QgcmVzdWx0OwotICAg
ICAgICByZXN1bHQuYXBwZW5kKGJyYW5jaElmTnVtYmVyKGdwciwgbW9kZSkpOwotICAgICAgICBK
dW1wIGJpZ0ludDMyID0gYnJhbmNoSWZCaWdJbnQzMktub3duTm90TnVtYmVyKGdwciwgdGVtcEdQ
Uik7Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoanVtcCgpKTsKLSAgICAgICAgYmlnSW50MzIubGlu
ayh0aGlzKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICBKdW1wIGJyYW5j
aElmQmlnSW50MzJLbm93bk5vdE51bWJlcihHUFJSZWcgZ3ByLCBHUFJSZWcgdGVtcEdQUikKICAg
ICB7CiAgICAgICAgIEFTU0VSVCh0ZW1wR1BSICE9IEludmFsaWRHUFJSZWcpOworICAgICAgICBp
ZiAobW9kZSA9PSBIYXZlVGFnUmVnaXN0ZXJzICYmIGdwciAhPSB0ZW1wR1BSKSB7CisgICAgICAg
ICAgICBzdGF0aWNfYXNzZXJ0KEpTVmFsdWU6OkJpZ0ludDMyTWFzayA9PSBKU1ZhbHVlOjpOdW1i
ZXJUYWcgKyBKU1ZhbHVlOjpCaWdJbnQzMlRhZyk7CisgICAgICAgICAgICBhZGQ2NChUcnVzdGVk
SW1tMzIoSlNWYWx1ZTo6QmlnSW50MzJUYWcpLCBHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3Rlciwg
dGVtcEdQUik7CisgICAgICAgICAgICBhbmQ2NChncHIsIHRlbXBHUFIpOworICAgICAgICAgICAg
cmV0dXJuIGJyYW5jaDY0KEVxdWFsLCB0ZW1wR1BSLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Qmln
SW50MzJUYWcpKTsKKyAgICAgICAgfQogICAgICAgICBtb3ZlKGdwciwgdGVtcEdQUik7Ci0gICAg
ICAgIGFuZDY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCaWdJbnQzMlRhZyksIHRlbXBHUFIpOwor
ICAgICAgICBhbmQ2NChUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6QmlnSW50MzJNYXNrKSwgdGVtcEdQ
Uik7CiAgICAgICAgIHJldHVybiBicmFuY2g2NChFcXVhbCwgdGVtcEdQUiwgVHJ1c3RlZEltbTMy
KEpTVmFsdWU6OkJpZ0ludDMyVGFnKSk7CiAgICAgfQotICAgIEp1bXAgYnJhbmNoSWZOb3RCaWdJ
bnQzMktub3duTm90TnVtYmVyKEpTVmFsdWVSZWdzIHJlZ3MsIEdQUlJlZyB0ZW1wR1BSKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGJyYW5jaElmTm90QmlnSW50MzJLbm93bk5vdE51bWJlcihyZWdz
LmdwcigpLCB0ZW1wR1BSKTsKLSAgICB9Ci0gICAgSnVtcCBicmFuY2hJZk5vdEJpZ0ludDMyS25v
d25Ob3ROdW1iZXIoR1BSUmVnIGdwciwgR1BSUmVnIHRlbXBHUFIpCisgICAgSnVtcCBicmFuY2hJ
Zk5vdEJpZ0ludDMyKEdQUlJlZyBncHIsIEdQUlJlZyB0ZW1wR1BSLCBUYWdSZWdpc3RlcnNNb2Rl
IG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQogICAgIHsKICAgICAgICAgQVNTRVJUKHRlbXBHUFIg
IT0gSW52YWxpZEdQUlJlZyk7CisgICAgICAgIGlmIChtb2RlID09IEhhdmVUYWdSZWdpc3RlcnMg
JiYgZ3ByICE9IHRlbXBHUFIpIHsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoSlNWYWx1ZTo6
QmlnSW50MzJNYXNrID09IEpTVmFsdWU6Ok51bWJlclRhZyArIEpTVmFsdWU6OkJpZ0ludDMyVGFn
KTsKKyAgICAgICAgICAgIGFkZDY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCaWdJbnQzMlRhZyks
IEdQUkluZm86Om51bWJlclRhZ1JlZ2lzdGVyLCB0ZW1wR1BSKTsKKyAgICAgICAgICAgIGFuZDY0
KGdwciwgdGVtcEdQUik7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoNjQoTm90RXF1YWwsIHRl
bXBHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCaWdJbnQzMlRhZykpOworICAgICAgICB9CiAg
ICAgICAgIG1vdmUoZ3ByLCB0ZW1wR1BSKTsKLSAgICAgICAgYW5kNjQoVHJ1c3RlZEltbTMyKEpT
VmFsdWU6OkJpZ0ludDMyVGFnKSwgdGVtcEdQUik7CisgICAgICAgIGFuZDY0KFRydXN0ZWRJbW02
NChKU1ZhbHVlOjpCaWdJbnQzMk1hc2spLCB0ZW1wR1BSKTsKICAgICAgICAgcmV0dXJuIGJyYW5j
aDY0KE5vdEVxdWFsLCB0ZW1wR1BSLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6QmlnSW50MzJUYWcp
KTsKICAgICB9CisgICAgSnVtcCBicmFuY2hJZkJpZ0ludDMyKEpTVmFsdWVSZWdzIHJlZ3MsIEdQ
UlJlZyB0ZW1wR1BSLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGJyYW5jaElmQmlnSW50MzIocmVncy5ncHIoKSwgdGVtcEdQ
UiwgbW9kZSk7CisgICAgfQorICAgIEp1bXAgYnJhbmNoSWZOb3RCaWdJbnQzMihKU1ZhbHVlUmVn
cyByZWdzLCBHUFJSZWcgdGVtcEdQUiwgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1Jl
Z2lzdGVycykKKyAgICB7CisgICAgICAgIHJldHVybiBicmFuY2hJZk5vdEJpZ0ludDMyKHJlZ3Mu
Z3ByKCksIHRlbXBHUFIsIG1vZGUpOworICAgIH0KICNlbmRpZiAvLyBVU0UoQklHSU5UMzIpCiAK
ICAgICAvLyBGSVhNRTogcmVuYW1lIHRoZXNlIHRvIG1ha2UgaXQgY2xlYXIgdGhhdCB0aGV5IHJl
cXVpcmUgdGhlaXIgaW5wdXQgdG8gYmUgYSBjZWxsLgpAQCAtMTgzMyw3ICsxODMyLDcgQEAgY2xh
c3MgQXNzZW1ibHlIZWxwZXJzIDogcHVibGljIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAgbm90
Qm9vbGVhbi5saW5rKHRoaXMpOwogCiAjaWYgVVNFKEJJR0lOVDMyKQotICAgICAgICBKdW1wIG5v
dEJpZ0ludDMyID0gYnJhbmNoSWZOb3RCaWdJbnQzMktub3duTm90TnVtYmVyKHJlZ3MsIHRlbXBH
UFIpOworICAgICAgICBKdW1wIG5vdEJpZ0ludDMyID0gYnJhbmNoSWZOb3RCaWdJbnQzMihyZWdz
LCB0ZW1wR1BSKTsKICAgICAgICAgZnVuY3RvcihUeXBlb2ZUeXBlOjpCaWdJbnQsIGZhbHNlKTsK
ICAgICAgICAgbm90QmlnSW50MzIubGluayh0aGlzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAyYjczZTUzOGM3ZjA3M2Fm
MTcwNDVlODE3MjI3MDRiOTBiOTkxNGI5Li42NGFjZGZjOTY5ZWRjMDFjNjI3MzZjODIzZGU5ZDEw
YWIyYTNkMzBkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA0LTIyICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gYnJhbmNoSWZCaWdJbnQzMiBjYW4gdXNl
IEJpZ0ludDMyTWFzayBhbmQgcmVtb3ZlIGJyYW5jaElmTnVtYmVyIGZpbHRlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwODcwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvYW55YmlnaW50
dXNlLXNob3VsZC1maWx0ZXItbnVtYmVyLWNvcnJlY3RseS5qczogQWRkZWQuCisgICAgICAgIChz
aG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKwogMjAyMC0wNC0yMiAgWXVzdWtlIFN1enVraSAg
PHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEpTQmlnSW50IGluYyBvcGVyYXRp
b24gZG9lcyBub3QgcHJvZHVjZSByaWdodCBIZWFwQmlnSW50IHplcm8KZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL2FueWJpZ2ludHVzZS1zaG91bGQtZmlsdGVyLW51bWJlci1jb3JyZWN0bHku
anMgYi9KU1Rlc3RzL3N0cmVzcy9hbnliaWdpbnR1c2Utc2hvdWxkLWZpbHRlci1udW1iZXItY29y
cmVjdGx5LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5NjAzOGJhZjIxOWI0OTE2MjIwMjdjODdjNDIyZDA1YmI0
NWY5NGQKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9hbnliaWdpbnR1c2Utc2hv
dWxkLWZpbHRlci1udW1iZXItY29ycmVjdGx5LmpzCkBAIC0wLDAgKzEsMjUgQEAKK2Z1bmN0aW9u
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3Rl
ZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQor
CitmdW5jdGlvbiB0ZXN0KGEsIGIpCit7CisgICAgcmV0dXJuIGEgPT09IGI7Cit9Citub0lubGlu
ZSh0ZXN0KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIGlmIChpICYg
MSkgeworICAgICAgICB0ZXN0KDBuLCAwbik7CisgICAgICAgIHRlc3QoMG4sIDEwbik7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgdGVzdCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDBuLCAyMDBuKTsKKyAgICAgICAgdGVzdCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDBuLCAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDBuKTsKKyAgICB9Cit9CitzaG91bGRCZSh0ZXN0KDIwLCAyMCksIHRydWUpOworc2hvdWxk
QmUodGVzdCgyMCwgNDApLCBmYWxzZSk7CitzaG91bGRCZSh0ZXN0KDAuNSwgMC41KSwgdHJ1ZSk7
CitzaG91bGRCZSh0ZXN0KDAuNSwgMC4yNCksIGZhbHNlKTsKK3Nob3VsZEJlKHRlc3QoMjAuMSAt
IDAuMSwgMjApLCB0cnVlKTsK
</data>
<flag name="review"
          id="412669"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>