<?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>210892</bug_id>
          
          <creation_ts>2020-04-22 19:28:09 -0700</creation_ts>
          <short_desc>[JSC] DFG compare should speculate BigInt well</short_desc>
          <delta_ts>2020-04-24 13:11:13 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="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>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1644626</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-22 19:28:09 -0700</bug_when>
    <thetext>We are emitting DoubleRep(BigInt32) in FixupPhase and exiting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644641</commentid>
    <comment_count>1</comment_count>
      <attachid>397308</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-22 20:06:06 -0700</bug_when>
    <thetext>Created attachment 397308
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644697</commentid>
    <comment_count>2</comment_count>
      <attachid>397323</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-22 23:25:23 -0700</bug_when>
    <thetext>Created attachment 397323
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644836</commentid>
    <comment_count>3</comment_count>
      <attachid>397357</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-23 10:25:21 -0700</bug_when>
    <thetext>Created attachment 397357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644971</commentid>
    <comment_count>4</comment_count>
      <attachid>397387</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-23 14:47:33 -0700</bug_when>
    <thetext>Created attachment 397387
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645110</commentid>
    <comment_count>5</comment_count>
      <attachid>397433</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-24 00:47:43 -0700</bug_when>
    <thetext>Created attachment 397433
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645293</commentid>
    <comment_count>6</comment_count>
      <attachid>397433</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-04-24 11:30:56 -0700</bug_when>
    <thetext>Comment on attachment 397433
Patch

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

nice. r=me

&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:2033
&gt; +        return ComparisonResult::LessThan;

nit: I know this is proven given all other things, but maybe before this, add an
&quot;ASSERT(!ySign);&quot;

&gt; Source/JavaScriptCore/runtime/JSBigInt.h:293
&gt; +ALWAYS_INLINE JSBigInt::ComparisonResult swapBigIntCompareResult(JSBigInt::ComparisonResult comparisonResult)

name nit:
swap =&gt; invert

&gt; Source/JavaScriptCore/runtime/JSBigInt.h:301
&gt; +    default:
&gt; +        return comparisonResult;

nit:

can we define all cases here, just so we get a compile error in the future?

&gt; Source/JavaScriptCore/runtime/Operations.h:314
&gt; +        JSValue bigIntValue = JSBigInt::stringToBigInt(globalObject, asString(primValue)-&gt;value(globalObject));

don&apos;t we need an exception check after -&gt;value() on string?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645311</commentid>
    <comment_count>7</comment_count>
      <attachid>397433</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-24 12:09:24 -0700</bug_when>
    <thetext>Comment on attachment 397433
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:2033
&gt;&gt; +        return ComparisonResult::LessThan;
&gt; 
&gt; nit: I know this is proven given all other things, but maybe before this, add an
&gt; &quot;ASSERT(!ySign);&quot;

Sounds nice. Added.

&gt;&gt; Source/JavaScriptCore/runtime/JSBigInt.h:293
&gt;&gt; +ALWAYS_INLINE JSBigInt::ComparisonResult swapBigIntCompareResult(JSBigInt::ComparisonResult comparisonResult)
&gt; 
&gt; name nit:
&gt; swap =&gt; invert

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/JSBigInt.h:301
&gt;&gt; +        return comparisonResult;
&gt; 
&gt; nit:
&gt; 
&gt; can we define all cases here, just so we get a compile error in the future?

Sounds good. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645321</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-24 12:19:28 -0700</bug_when>
    <thetext>Committed r260660: &lt;https://trac.webkit.org/changeset/260660&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645322</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-24 12:20:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/62330722&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645350</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-24 13:11:13 -0700</bug_when>
    <thetext>Committed r260664: &lt;https://trac.webkit.org/changeset/260664&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397308</attachid>
            <date>2020-04-22 20:06:06 -0700</date>
            <delta_ts>2020-04-22 23:25:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210892-20200422200605.patch</filename>
            <type>text/plain</type>
            <size>12170</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZDZiMGRhZDM2NjRhNjc0NDdhNTc1Yjg4OTNjYTJlNDMxNmU0NDkxLi45OGE3OGI3MTBiMjc2ODI4
YTIwYjM3ODQ1MjJiNDY2ZDNjN2M4NGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAyMC0wNC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIERGRyBjb21wYXJlIHNob3VsZCBzcGVjdWxhdGUgQmlnSW50IHdl
bGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDg5
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAg
ICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgor
ICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1
cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBhcmUpOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpnZW5lcmljSlNWYWx1ZU5vblBlZXBob2xlQ29tcGFy
ZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6Om5vblNwZWN1bGF0aXZlTm9u
UGVlcGhvbGVDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNvbXBhcmVFcSk6CisgICAgICAgIChKU0M6
OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDb21wYXJlU3RyaWN0RXEpOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21wYXJlKToKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Z2VuZXJpY0pTVmFsdWVDb21wYXJlKToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6bm9uU3BlY3VsYXRpdmVDb21wYXJlKTogRGVs
ZXRlZC4KKwogMjAyMC0wNC0yMiAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBCaWdJbnQzMiBwYXJzaW5nIHNob3VsZCBiZSBwcmVjaXNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmgKaW5kZXggM2VlZmJjMjgyZTljNDdmMjdkNzBjODU5M2Y5ZDI2N2QxZTBhYjFhMy4uOGNhYjJm
NzgzMTMyYjUwMzI4ZDkwNTM0MDNkYjBlNzhiYTA0ODk3MiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApA
QCAtMTg0MCwzMSArMTg0MCwzOCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RT
dGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICBK
U1ZhbHVlIGxlZnRDb25zdCA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CiAgICAg
ICAgIEpTVmFsdWUgcmlnaHRDb25zdCA9IGZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLnZhbHVlKCk7
CiAgICAgICAgIGlmIChsZWZ0Q29uc3QgJiYgcmlnaHRDb25zdCkgewotICAgICAgICAgICAgaWYg
KGxlZnRDb25zdC5pc051bWJlcigpICYmIHJpZ2h0Q29uc3QuaXNOdW1iZXIoKSkgewotICAgICAg
ICAgICAgICAgIGRvdWJsZSBhID0gbGVmdENvbnN0LmFzTnVtYmVyKCk7Ci0gICAgICAgICAgICAg
ICAgZG91YmxlIGIgPSByaWdodENvbnN0LmFzTnVtYmVyKCk7CisgICAgICAgICAgICBhdXRvIGNv
bXBhcmUgPSBbJl0oYXV0byBhLCBhdXRvIGIpIHsKICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5v
ZGUtPm9wKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIENvbXBhcmVMZXNzOgotICAgICAgICAg
ICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4oYSA8IGIpKTsKLSAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBqc0Jvb2xlYW4o
YSA8IGIpOwogICAgICAgICAgICAgICAgIGNhc2UgQ29tcGFyZUxlc3NFcToKLSAgICAgICAgICAg
ICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKGEgPD0gYikpOwotICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpzQm9vbGVhbihh
IDw9IGIpOwogICAgICAgICAgICAgICAgIGNhc2UgQ29tcGFyZUdyZWF0ZXI6Ci0gICAgICAgICAg
ICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihhID4gYikpOwotICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpzQm9vbGVhbihh
ID4gYik7CiAgICAgICAgICAgICAgICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgotICAgICAgICAg
ICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4oYSA+PSBiKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICByZXR1cm4ganNCb29sZWFu
KGEgPj0gYik7CiAgICAgICAgICAgICAgICAgY2FzZSBDb21wYXJlRXE6Ci0gICAgICAgICAgICAg
ICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihhID09IGIpKTsKLSAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBqc0Jvb2xlYW4oYSA9
PSBiKTsKICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICAgICAgaWYgKGxlZnRDb25z
dC5pc051bWJlcigpICYmIHJpZ2h0Q29uc3QuaXNOdW1iZXIoKSkgeworICAgICAgICAgICAgICAg
IGRvdWJsZSBhID0gbGVmdENvbnN0LmFzTnVtYmVyKCk7CisgICAgICAgICAgICAgICAgZG91Ymxl
IGIgPSByaWdodENvbnN0LmFzTnVtYmVyKCk7CisgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQo
bm9kZSwgY29tcGFyZShhLCBiKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGlmIChsZWZ0Q29uc3QuaXNCaWdJbnQzMigpICYmIHJpZ2h0Q29u
c3QuaXNCaWdJbnQzMigpKSB7CisgICAgICAgICAgICAgICAgaW50MzJfdCBhID0gbGVmdENvbnN0
LmJpZ0ludDMyQXNJbnQzMigpOworICAgICAgICAgICAgICAgIGludDMyX3QgYiA9IHJpZ2h0Q29u
c3QuYmlnSW50MzJBc0ludDMyKCk7CisgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwg
Y29tcGFyZShhLCBiKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIC8vIEZJWE1FOiBBZGQgSGVhcEJpZ0ludCBjYXNlLgogICAgICAgICAgICAg
CiAgICAgICAgICAgICBpZiAobGVmdENvbnN0LmlzU3RyaW5nKCkgJiYgcmlnaHRDb25zdC5pc1N0
cmluZygpKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nSW1wbCogYSA9IGFzU3RyaW5n
KGxlZnRDb25zdCktPnRyeUdldFZhbHVlSW1wbCgpOwpAQCAtMTkzMyw2ICsxOTQwLDkgQEAgYm9v
bCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMo
dW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpID09IG5vZGUt
PmNoaWxkMigpKSB7CiAgICAgICAgICAgICBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEludDMy
VXNlKSB8fAogICAgICAgICAgICAgICAgIG5vZGUtPmlzQmluYXJ5VXNlS2luZChJbnQ1MlJlcFVz
ZSkgfHwKKyAgICAgICAgICAgICAgICBub2RlLT5pc0JpbmFyeVVzZUtpbmQoQmlnSW50MzJVc2Up
IHx8CisgICAgICAgICAgICAgICAgbm9kZS0+aXNCaW5hcnlVc2VLaW5kKEhlYXBCaWdJbnRVc2Up
IHx8CisgICAgICAgICAgICAgICAgbm9kZS0+aXNCaW5hcnlVc2VLaW5kKEFueUJpZ0ludFVzZSkg
fHwKICAgICAgICAgICAgICAgICBub2RlLT5pc0JpbmFyeVVzZUtpbmQoU3RyaW5nVXNlKSB8fAog
ICAgICAgICAgICAgICAgIG5vZGUtPmlzQmluYXJ5VXNlS2luZChCb29sZWFuVXNlKSB8fAogICAg
ICAgICAgICAgICAgIG5vZGUtPmlzQmluYXJ5VXNlS2luZChTeW1ib2xVc2UpIHx8CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggZTY0MDlhMzBkYzZjYTU3YzA4ODQ5
MWNjYTU2NmUwMjIxOGMzYzQxMS4uMjkxNjk2MzExOTgxN2UxYzEyN2JiN2Y4OGIwZjY4NmZjZWQ3
ZmQxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtNDM5LDYg
KzQzOSw4IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICAgICAg
ICAgIHx8IG5vZGUtPmlzQmluYXJ5VXNlS2luZChJbnQ1MlJlcFVzZSkKICNlbmRpZgogICAgICAg
ICAgICAgfHwgbm9kZS0+aXNCaW5hcnlVc2VLaW5kKERvdWJsZVJlcFVzZSkKKyAgICAgICAgICAg
IHx8IG5vZGUtPmlzQmluYXJ5VXNlS2luZChCaWdJbnQzMlVzZSkKKyAgICAgICAgICAgIHx8IG5v
ZGUtPmlzQmluYXJ5VXNlS2luZChIZWFwQmlnSW50VXNlKQogICAgICAgICAgICAgfHwgbm9kZS0+
aXNCaW5hcnlVc2VLaW5kKFN0cmluZ0lkZW50VXNlKQogICAgICAgICAgICAgKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFz
ZS5jcHAKaW5kZXggYWI3YmE5OTZjMWY1ZmZiYTZjNjhjOTU4MDdlODg3ODVlZmE4NmI2YS4uM2Fk
NDBlYzZkN2FkZDI4MGRhZTI1MDRkZGVlNzk2NmFmZWQ2Nzg1MSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC04NzIsNiArODcyLDI2IEBAIGNsYXNz
IEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFy
RmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICB9CisgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlSGVhcEJpZ0ludChu
b2RlLT5jaGlsZDEoKS5ub2RlKCksIG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpIHsKKyAgICAgICAg
ICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAg
ICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAg
ICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyNpZiBVU0UoQklHSU5UMzIpCisgICAgICAgICAg
ICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIobm9kZS0+Y2hpbGQxKCkubm9kZSgp
LCBub2RlLT5jaGlsZDIoKS5ub2RlKCkpKSB7CisgICAgICAgICAgICAgICAgZml4RWRnZTxCaWdJ
bnQzMlVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50
MzJVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgICAgICBub2RlLT5jbGVhckZsYWdz
KE5vZGVNdXN0R2VuZXJhdGUpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGlmIChOb2RlOjpzaG91bGRTcGVjdWxhdGVCaWdJbnQobm9kZS0+Y2hp
bGQxKCkubm9kZSgpLCBub2RlLT5jaGlsZDIoKS5ub2RlKCkpKSB7CisgICAgICAgICAgICAgICAg
Zml4RWRnZTxBbnlCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBm
aXhFZGdlPEFueUJpZ0ludFVzZT4obm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgICAgIG5v
ZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3Bl
Y3VsYXRlTnVtYmVyT3JCb29sZWFuKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbm9kZS0+Y2hpbGQy
KCkubm9kZSgpKSkgewogICAgICAgICAgICAgICAgIGZpeERvdWJsZU9yQm9vbGVhbkVkZ2Uobm9k
ZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAgIGZpeERvdWJsZU9yQm9vbGVhbkVkZ2Uobm9k
ZS0+Y2hpbGQyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAppbmRleCAxNDQ1OGM1ZGRhNjA4Yjk0MjE1NzQxYzU3MjQ0ZjJkN2EyMTRhODg0
Li4yNDQxNTAxM2E5NDQ4NWRkY2Y2YWZlN2IwYmExODFmZDE3YzUzOWQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtNjMyMCw3ICs2
MzIwLDcgQEAgYm9vbCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGFyZShOb2RlKiBub2RlLCBNYWNyb0Fz
c2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlvbiBjb24KICAgICAgICAgfQogICAgIH0KIAotICAg
IG5vblNwZWN1bGF0aXZlTm9uUGVlcGhvbGVDb21wYXJlKG5vZGUsIGNvbmRpdGlvbiwgb3BlcmF0
aW9uKTsKKyAgICBnZW5lcmljSlNWYWx1ZU5vblBlZXBob2xlQ29tcGFyZShub2RlLCBjb25kaXRp
b24sIG9wZXJhdGlvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC0xNDExNSwxMSArMTQx
MTUsMTMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luIGNv
ZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBKU1ZhbHUKICAgICBhZGRTbG93UGF0aEdlbmVyYXRv
cihXVEZNb3ZlKHNsb3dQYXRoKSk7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6Om5vblNwZWN1
bGF0aXZlTm9uUGVlcGhvbGVDb21wYXJlKE5vZGUqIG5vZGUsIE1hY3JvQXNzZW1ibGVyOjpSZWxh
dGlvbmFsQ29uZGl0aW9uIGNvbmQsIFNfSklUT3BlcmF0aW9uX0dKSiBoZWxwZXJGdW5jdGlvbikK
K3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmdlbmVyaWNKU1ZhbHVlTm9uUGVlcGhvbGVDb21wYXJlKE5v
ZGUqIG5vZGUsIE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIFNfSklU
T3BlcmF0aW9uX0dKSiBoZWxwZXJGdW5jdGlvbikKIHsKICAgICBBU1NFUlQobm9kZS0+aXNCaW5h
cnlVc2VLaW5kKFVudHlwZWRVc2UpKTsKICAgICBKU1ZhbHVlT3BlcmFuZCBhcmcxKHRoaXMsIG5v
ZGUtPmNoaWxkMSgpKTsKICAgICBKU1ZhbHVlT3BlcmFuZCBhcmcyKHRoaXMsIG5vZGUtPmNoaWxk
MigpKTsKKyAgICBzcGVjdWxhdGUobm9kZSwgbm9kZS0+Y2hpbGQxKCkpOworICAgIHNwZWN1bGF0
ZShub2RlLCBub2RlLT5jaGlsZDIoKSk7CiAKICAgICBKU1ZhbHVlUmVncyBhcmcxUmVncyA9IGFy
ZzEuanNWYWx1ZVJlZ3MoKTsKICAgICBKU1ZhbHVlUmVncyBhcmcyUmVncyA9IGFyZzIuanNWYWx1
ZVJlZ3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
aAppbmRleCAwZTI1NzVkMWM2NDU4MjliMDYwOGE3OGU2NTFhZWMyMzZjNWJjY2JhLi41YWNlNTI1
NWVkMDI3NjUzNWRhMWZhNjhiZjhjMDlkMmFhZmVjOTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC03NDMsNyArNzQzLDcgQEAgY2xhc3Mg
U3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVQZWVwaG9sZUJyYW5jaE51
bGxPclVuZGVmaW5lZChFZGdlIG9wZXJhbmQsIE5vZGUqIGJyYW5jaE5vZGUpOwogICAgIAogICAg
IHZvaWQgbm9uU3BlY3VsYXRpdmVQZWVwaG9sZUJyYW5jaChOb2RlKiwgTm9kZSogYnJhbmNoTm9k
ZSwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24sIFNfSklUT3BlcmF0aW9uX0dK
SiBoZWxwZXJGdW5jdGlvbik7Ci0gICAgdm9pZCBub25TcGVjdWxhdGl2ZU5vblBlZXBob2xlQ29t
cGFyZShOb2RlKiwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24sIFNfSklUT3Bl
cmF0aW9uX0dKSiBoZWxwZXJGdW5jdGlvbik7CisgICAgdm9pZCBnZW5lcmljSlNWYWx1ZU5vblBl
ZXBob2xlQ29tcGFyZShOb2RlKiwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24s
IFNfSklUT3BlcmF0aW9uX0dKSiBoZWxwZXJGdW5jdGlvbik7CiAgICAgCiAgICAgdm9pZCBub25T
cGVjdWxhdGl2ZVBlZXBob2xlU3RyaWN0RXEoTm9kZSosIE5vZGUqIGJyYW5jaE5vZGUsIGJvb2wg
aW52ZXJ0ID0gZmFsc2UpOwogICAgIHZvaWQgZ2VuZXJpY0pTVmFsdWVOb25QZWVwaG9sZVN0cmlj
dEVxKE5vZGUqLCBib29sIGludmVydCA9IGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA2MzZmMTgwNDVkNTBhODU2NmJkNzNlYjQ5
ZWMwZjg2NGM1ZjBkMjM2Li41Y2I0NGRiYzIzYjkxYjVlMTA3MDEzZDAxYWM5NWJmY2JiMWFmZjc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBA
IC04NjYxLDcgKzg2NjEsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICB9CiAKICAg
ICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBtX25vZGUsIG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5k
KFVudHlwZWRVc2UpLCBtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSwgbV9ub2RlLT5jaGlsZDIo
KS51c2VLaW5kKCkpOwotICAgICAgICBub25TcGVjdWxhdGl2ZUNvbXBhcmUoCisgICAgICAgIGdl
bmVyaWNKU1ZhbHVlQ29tcGFyZSgKICAgICAgICAgICAgIFsmXSAoTFZhbHVlIGxlZnQsIExWYWx1
ZSByaWdodCkgewogICAgICAgICAgICAgICAgIHJldHVybiBtX291dC5lcXVhbChsZWZ0LCByaWdo
dCk7CiAgICAgICAgICAgICB9LApAQCAtODk1Miw3ICs4OTUyLDcgQEAgY2xhc3MgTG93ZXJERkdU
b0IzIHsKIAogICAgICAgICAvLyBGSVhNRTogd2UgY2FuIGRvIHNvbWV0aGluZyBtdWNoIHNtYXJ0
ZXIgaGVyZSwgc2VlIHRoZSBERkdTcGVjdWxhdGl2ZUpJVCBhcHByb2FjaCBpbiBlLmcuIFNwZWN1
bGF0aXZlSklUOjpub25TcGVjdWxhdGl2ZVBlZXBob2xlU3RyaWN0RXEKICAgICAgICAgREZHX0FT
U0VSVChtX2dyYXBoLCBtX25vZGUsIG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKFVudHlwZWRVc2Up
LCBtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSwgbV9ub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkp
OwotICAgICAgICBub25TcGVjdWxhdGl2ZUNvbXBhcmUoCisgICAgICAgIGdlbmVyaWNKU1ZhbHVl
Q29tcGFyZSgKICAgICAgICAgICAgIFsmXSAoTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCkgewog
ICAgICAgICAgICAgICAgIHJldHVybiBtX291dC5lcXVhbChsZWZ0LCByaWdodCk7CiAgICAgICAg
ICAgICB9LApAQCAtMTM1NTksNiArMTM1NTksMTMgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCisgICAgICAgIGlmIChtX25vZGUtPmlzQmlu
YXJ5VXNlS2luZChCaWdJbnQzMlVzZSkpIHsKKyAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93
QmlnSW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUgcmlnaHQgPSBs
b3dCaWdJbnQzMihtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgIHNldEJvb2xlYW4oaW50
RnVuY3Rvcih1bmJveEJpZ0ludDMyKGxlZnQpLCB1bmJveEJpZ0ludDMyKHJpZ2h0KSkpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAgICAgaWYgKG1fbm9kZS0+aXNCaW5h
cnlVc2VLaW5kKFN0cmluZ0lkZW50VXNlKSkgewogICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBs
b3dTdHJpbmdJZGVudChtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSByaWdo
dCA9IGxvd1N0cmluZ0lkZW50KG1fbm9kZS0+Y2hpbGQyKCkpOwpAQCAtMTM1ODAsNyArMTM1ODcs
NyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICB9CiAKICAgICAgICAgREZHX0FTU0VS
VChtX2dyYXBoLCBtX25vZGUsIG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKFVudHlwZWRVc2UpLCBt
X25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSwgbV9ub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkpOwot
ICAgICAgICBub25TcGVjdWxhdGl2ZUNvbXBhcmUoaW50RnVuY3RvciwgZmFsbGJhY2tGdW5jdGlv
bik7CisgICAgICAgIGdlbmVyaWNKU1ZhbHVlQ29tcGFyZShpbnRGdW5jdG9yLCBmYWxsYmFja0Z1
bmN0aW9uKTsKICAgICB9CiAKICAgICB2b2lkIGNvbXBpbGVTdHJpbmdTbGljZSgpCkBAIC0xNDU1
MCwxMSArMTQ1NTcsMTMgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICB9CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBJbnRGdW5jdG9yPgotICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVDb21wYXJl
KGNvbnN0IEludEZ1bmN0b3ImIGludEZ1bmN0b3IsIFNfSklUT3BlcmF0aW9uX0dKSiBoZWxwZXJG
dW5jdGlvbikKKyAgICB2b2lkIGdlbmVyaWNKU1ZhbHVlQ29tcGFyZShjb25zdCBJbnRGdW5jdG9y
JiBpbnRGdW5jdG9yLCBTX0pJVE9wZXJhdGlvbl9HSkogaGVscGVyRnVuY3Rpb24pCiAgICAgewog
ICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmpl
Y3RGb3IobV9ub2RlLT5vcmlnaW4uc2VtYW50aWMpOwotICAgICAgICBMVmFsdWUgbGVmdCA9IGxv
d0pTVmFsdWUobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0pT
VmFsdWUobV9ub2RlLT5jaGlsZDIoKSk7CisgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93SlNWYWx1
ZShtX25vZGUtPmNoaWxkMSgpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICBM
VmFsdWUgcmlnaHQgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCksIE1hbnVhbE9wZXJhbmRT
cGVjdWxhdGlvbik7CisgICAgICAgIHNwZWN1bGF0ZShtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAg
ICAgc3BlY3VsYXRlKG1fbm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAKICAgICAgICAgTEJhc2lj
QmxvY2sgbGVmdElzSW50ID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sg
ZmFzdFBhdGggPSBtX291dC5uZXdCbG9jaygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397323</attachid>
            <date>2020-04-22 23:25:23 -0700</date>
            <delta_ts>2020-04-23 10:25:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210892-20200422232522.patch</filename>
            <type>text/plain</type>
            <size>32571</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZTBlM2Y4MjA0YzM5YWQ3ODk5YmVkZGJkYWM3ODFkMTQxZjczZGYwLi43MjJhMzZlZmE5YmI0ZjY2
ZWUzYjYxMTIxMzYyMjQ3NWNmMjZlYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAyMC0wNC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIERGRyBjb21wYXJlIHNob3VsZCBzcGVjdWxhdGUgQmlnSW50IHdl
bGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDg5
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAg
ICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgor
ICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1
cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUFkZCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZVN1Yik6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZU11bCk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBhcmUpOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpnZW5lcmljSlNWYWx1ZU5vblBlZXBob2xlQ29tcGFyZSk6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6Om5vblNwZWN1bGF0aXZlTm9uUGVlcGhvbGVD
b21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAg
ICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVCaWdJbnQzMkNvbXBhcmUpOgorICAgICAgICAqIGZ0bC9G
VExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
Ojpjb21waWxlQ29tcGFyZUVxKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9C
Mzo6Y29tcGlsZUNvbXBhcmVTdHJpY3RFcSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmNvbXBhcmUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
OjpnZW5lcmljSlNWYWx1ZUNvbXBhcmUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0IzOjpub25TcGVjdWxhdGl2ZUNvbXBhcmUpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9B
c3NlbWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjp1bmJveEJp
Z0ludDMyKToKKyAgICAgICAgKiBydW50aW1lL0pTQmlnSW50LmNwcDoKKyAgICAgICAgKEpTQzo6
SlNCaWdJbnQ6OmNvbXBhcmVUb0ludDMyKToKKyAgICAgICAgKiBydW50aW1lL0pTQmlnSW50Lmg6
CisgICAgICAgIChKU0M6OnN3YXBCaWdJbnRDb21wYXJlUmVzdWx0KToKKyAgICAgICAgKiBydW50
aW1lL09wZXJhdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6YmlnSW50Q29tcGFyZSk6CisKIDIwMjAt
MDQtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlND
XSBicmFuY2hJZkJpZ0ludDMyIGNhbiB1c2UgQmlnSW50MzJNYXNrIGFuZCByZW1vdmUgYnJhbmNo
SWZOdW1iZXIgZmlsdGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggM2VlZmJjMjgyZTljNDdmMjdk
NzBjODU5M2Y5ZDI2N2QxZTBhYjFhMy4uMDE2MGU2YTY1ODJlMGE1YWM5ZGFhMjYwZWI1MDdlYzVj
NTI0MjZhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMTg0MCwzMCArMTg0MCw3MyBAQCBib29s
IEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1
bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICBKU1ZhbHVlIGxlZnRDb25zdCA9IGZvck5vZGUo
bm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CiAgICAgICAgIEpTVmFsdWUgcmlnaHRDb25zdCA9IGZv
ck5vZGUobm9kZS0+Y2hpbGQyKCkpLnZhbHVlKCk7CiAgICAgICAgIGlmIChsZWZ0Q29uc3QgJiYg
cmlnaHRDb25zdCkgeworICAgICAgICAgICAgYXV0byBjb21wYXJlID0gWyZdKGF1dG8gYSwgYXV0
byBiKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7CisgICAgICAgICAg
ICAgICAgY2FzZSBDb21wYXJlTGVzczoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpzQm9v
bGVhbihhIDwgYik7CisgICAgICAgICAgICAgICAgY2FzZSBDb21wYXJlTGVzc0VxOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ganNCb29sZWFuKGEgPD0gYik7CisgICAgICAgICAgICAgICAg
Y2FzZSBDb21wYXJlR3JlYXRlcjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpzQm9vbGVh
bihhID4gYik7CisgICAgICAgICAgICAgICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ganNCb29sZWFuKGEgPj0gYik7CisgICAgICAgICAgICAgICAg
Y2FzZSBDb21wYXJlRXE6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBqc0Jvb2xlYW4oYSA9
PSBiKTsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworCiAgICAgICAgICAgICBpZiAobGVmdENv
bnN0LmlzTnVtYmVyKCkgJiYgcmlnaHRDb25zdC5pc051bWJlcigpKSB7CiAgICAgICAgICAgICAg
ICAgZG91YmxlIGEgPSBsZWZ0Q29uc3QuYXNOdW1iZXIoKTsKICAgICAgICAgICAgICAgICBkb3Vi
bGUgYiA9IHJpZ2h0Q29uc3QuYXNOdW1iZXIoKTsKKyAgICAgICAgICAgICAgICBzZXRDb25zdGFu
dChub2RlLCBjb21wYXJlKGEsIGIpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKworI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgICAgIGlmIChsZWZ0Q29uc3QuaXNC
aWdJbnQzMigpICYmIHJpZ2h0Q29uc3QuaXNCaWdJbnQzMigpKSB7CisgICAgICAgICAgICAgICAg
aW50MzJfdCBhID0gbGVmdENvbnN0LmJpZ0ludDMyQXNJbnQzMigpOworICAgICAgICAgICAgICAg
IGludDMyX3QgYiA9IHJpZ2h0Q29uc3QuYmlnSW50MzJBc0ludDMyKCk7CisgICAgICAgICAgICAg
ICAgc2V0Q29uc3RhbnQobm9kZSwgY29tcGFyZShhLCBiKSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CisjZW5kaWYKKworICAgICAgICAgICAgaWYgKGxlZnRDb25zdC5p
c0JpZ0ludCgpICYmIHJpZ2h0Q29uc3QuaXNCaWdJbnQoKSkgeworICAgICAgICAgICAgICAgIEpT
QmlnSW50OjpDb21wYXJpc29uUmVzdWx0IHJlc3VsdCA9IEpTQmlnSW50OjpDb21wYXJpc29uUmVz
dWx0OjpVbmRlZmluZWQ7CisgICAgICAgICAgICAgICAgaWYgKGxlZnRDb25zdC5pc0hlYXBCaWdJ
bnQoKSAmJiByaWdodENvbnN0LmlzSGVhcEJpZ0ludCgpKQorICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBKU0JpZ0ludDo6Y29tcGFyZShsZWZ0Q29uc3QuYXNIZWFwQmlnSW50KCksIHJpZ2h0
Q29uc3QuYXNIZWFwQmlnSW50KCkpOworICAgICAgICAgICAgICAgIGVsc2UgeworI2lmIFVTRShC
SUdJTlQzMikKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlZnRDb25zdC5pc0JpZ0ludDMyKCkp
CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzd2FwQmlnSW50Q29tcGFyZVJlc3Vs
dChyaWdodENvbnN0LmFzSGVhcEJpZ0ludCgpLT5jb21wYXJlVG9JbnQzMihsZWZ0Q29uc3QuYmln
SW50MzJBc0ludDMyKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocmlnaHRDb25z
dC5pc0JpZ0ludDMyKCkpCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsZWZ0Q29u
c3QuYXNIZWFwQmlnSW50KCktPmNvbXBhcmVUb0ludDMyKHJpZ2h0Q29uc3QuYmlnSW50MzJBc0lu
dDMyKCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgc3dp
dGNoIChub2RlLT5vcCgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBDb21wYXJlTGVzczoKLSAg
ICAgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKGEgPCBiKSk7Cisg
ICAgICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihyZXN1bHQgPT0g
SlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQ6Okxlc3NUaGFuKSk7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgQ29tcGFyZUxlc3NFcToKLSAgICAgICAg
ICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKGEgPD0gYikpOworICAgICAg
ICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4ocmVzdWx0ID09IEpTQmln
SW50OjpDb21wYXJpc29uUmVzdWx0OjpMZXNzVGhhbiB8fCByZXN1bHQgPT0gSlNCaWdJbnQ6OkNv
bXBhcmlzb25SZXN1bHQ6OkVxdWFsKSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgIGNhc2UgQ29tcGFyZUdyZWF0ZXI6Ci0gICAgICAgICAgICAgICAgICAgIHNl
dENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihhID4gYikpOworICAgICAgICAgICAgICAgICAgICBz
ZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4ocmVzdWx0ID09IEpTQmlnSW50OjpDb21wYXJpc29u
UmVzdWx0OjpHcmVhdGVyVGhhbikpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICBjYXNlIENvbXBhcmVHcmVhdGVyRXE6Ci0gICAgICAgICAgICAgICAgICAgIHNl
dENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihhID49IGIpKTsKKyAgICAgICAgICAgICAgICAgICAg
c2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKHJlc3VsdCA9PSBKU0JpZ0ludDo6Q29tcGFyaXNv
blJlc3VsdDo6R3JlYXRlclRoYW4gfHwgcmVzdWx0ID09IEpTQmlnSW50OjpDb21wYXJpc29uUmVz
dWx0OjpFcXVhbCkpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICBjYXNlIENvbXBhcmVFcToKLSAgICAgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwg
anNCb29sZWFuKGEgPT0gYikpOworICAgICAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2Rl
LCBqc0Jvb2xlYW4ocmVzdWx0ID09IEpTQmlnSW50OjpDb21wYXJpc29uUmVzdWx0OjpFcXVhbCkp
OwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChsZWZ0
Q29uc3QuaXNTdHJpbmcoKSAmJiByaWdodENvbnN0LmlzU3RyaW5nKCkpIHsKQEAgLTE5MzMsNiAr
MTk3Niw5IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4
ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGlmIChub2RlLT5jaGls
ZDEoKSA9PSBub2RlLT5jaGlsZDIoKSkgewogICAgICAgICAgICAgaWYgKG5vZGUtPmlzQmluYXJ5
VXNlS2luZChJbnQzMlVzZSkgfHwKICAgICAgICAgICAgICAgICBub2RlLT5pc0JpbmFyeVVzZUtp
bmQoSW50NTJSZXBVc2UpIHx8CisgICAgICAgICAgICAgICAgbm9kZS0+aXNCaW5hcnlVc2VLaW5k
KEJpZ0ludDMyVXNlKSB8fAorICAgICAgICAgICAgICAgIG5vZGUtPmlzQmluYXJ5VXNlS2luZChI
ZWFwQmlnSW50VXNlKSB8fAorICAgICAgICAgICAgICAgIG5vZGUtPmlzQmluYXJ5VXNlS2luZChB
bnlCaWdJbnRVc2UpIHx8CiAgICAgICAgICAgICAgICAgbm9kZS0+aXNCaW5hcnlVc2VLaW5kKFN0
cmluZ1VzZSkgfHwKICAgICAgICAgICAgICAgICBub2RlLT5pc0JpbmFyeVVzZUtpbmQoQm9vbGVh
blVzZSkgfHwKICAgICAgICAgICAgICAgICBub2RlLT5pc0JpbmFyeVVzZUtpbmQoU3ltYm9sVXNl
KSB8fApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IGU2NDA5YTMw
ZGM2Y2E1N2MwODg0OTFjY2E1NjZlMDIyMThjM2M0MTEuLjI5MTY5NjMxMTk4MTdlMWMxMjdiYjdm
ODhiMGY2ODZmY2VkN2ZkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5j
cHAKQEAgLTQzOSw2ICs0MzksOCBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5v
ZGUpCiAgICAgICAgICAgICB8fCBub2RlLT5pc0JpbmFyeVVzZUtpbmQoSW50NTJSZXBVc2UpCiAj
ZW5kaWYKICAgICAgICAgICAgIHx8IG5vZGUtPmlzQmluYXJ5VXNlS2luZChEb3VibGVSZXBVc2Up
CisgICAgICAgICAgICB8fCBub2RlLT5pc0JpbmFyeVVzZUtpbmQoQmlnSW50MzJVc2UpCisgICAg
ICAgICAgICB8fCBub2RlLT5pc0JpbmFyeVVzZUtpbmQoSGVhcEJpZ0ludFVzZSkKICAgICAgICAg
ICAgIHx8IG5vZGUtPmlzQmluYXJ5VXNlS2luZChTdHJpbmdJZGVudFVzZSkKICAgICAgICAgICAg
ICkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IGFiN2JhOTk2YzFmNWZmYmE2YzY4Yzk1ODA3ZTg4Nzg1
ZWZhODZiNmEuLjNhZDQwZWM2ZDdhZGQyODBkYWUyNTA0ZGRlZTc5NjZhZmVkNjc4NTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtODcyLDYgKzg3
MiwyNiBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgICAg
ICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0
ZUhlYXBCaWdJbnQobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBub2RlLT5jaGlsZDIoKS5ub2RlKCkp
KSB7CisgICAgICAgICAgICAgICAgZml4RWRnZTxIZWFwQmlnSW50VXNlPihub2RlLT5jaGlsZDEo
KSk7CisgICAgICAgICAgICAgICAgZml4RWRnZTxIZWFwQmlnSW50VXNlPihub2RlLT5jaGlsZDIo
KSk7CisgICAgICAgICAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlKTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisjaWYgVVNFKEJJR0lOVDMy
KQorICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKG5vZGUtPmNo
aWxkMSgpLm5vZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgpKSkgeworICAgICAgICAgICAgICAg
IGZpeEVkZ2U8QmlnSW50MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBm
aXhFZGdlPEJpZ0ludDMyVXNlPihub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICAgICAgbm9k
ZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlQmln
SW50KG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgpKSkgeworICAg
ICAgICAgICAgICAgIGZpeEVkZ2U8QW55QmlnSW50VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAg
ICAgICAgICAgICAgZml4RWRnZTxBbnlCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAg
ICAgICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICAgICAgaWYgKE5v
ZGU6OnNob3VsZFNwZWN1bGF0ZU51bWJlck9yQm9vbGVhbihub2RlLT5jaGlsZDEoKS5ub2RlKCks
IG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpIHsKICAgICAgICAgICAgICAgICBmaXhEb3VibGVPckJv
b2xlYW5FZGdlKG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICBmaXhEb3VibGVPckJv
b2xlYW5FZGdlKG5vZGUtPmNoaWxkMigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggMTQ0NThjNWRkYTYwOGI5NDIxNTc0MWM1NzI0
NGYyZDdhMjE0YTg4NC4uN2Y0ZjdhMWYxODQwMzVjNGRhMjZmZDE2NjYyODZjMmQ4NzZhZWI0NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAK
QEAgLTQwMjgsMTggKzQwMjgsMTYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVl
QWRkKE5vZGUqIG5vZGUpCiAgICAgaWYgKG5vZGUtPmlzQmluYXJ5VXNlS2luZChCaWdJbnQzMlVz
ZSkpIHsKICAgICAgICAgU3BlY3VsYXRlQmlnSW50MzJPcGVyYW5kIGxlZnQodGhpcywgbGVmdENo
aWxkKTsKICAgICAgICAgU3BlY3VsYXRlQmlnSW50MzJPcGVyYW5kIHJpZ2h0KHRoaXMsIHJpZ2h0
Q2hpbGQpOwotCi0gICAgICAgIC8vIEZJWE1FOiBkbyB3ZSByZWFsbHkgbmVlZCB0aGlzIGV4dHJh
IHJlZ2lzdGVyLCBvciBjYW4gd2UgbXV0YXRlIGxlZnQvcmlnaHQgPwotICAgICAgICAvLyBGSVhN
RTogYWxzbywgbG9vayBpbnRvIFJldXNlIGFuZCBvdGhlciB0cmlja3MgZm9yIGEgbW9yZSBlZmZp
Y2llbnQgZ2VuZXJhdGVkIGNvZGUuCiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7
Ci0gICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgICAgIEdQUlRl
bXBvcmFyeSB0ZW1wKHRoaXMpOworCisgICAgICAgIEdQUlJlZyBsZWZ0R1BSID0gbGVmdC5ncHIo
KTsKKyAgICAgICAgR1BSUmVnIHJpZ2h0R1BSID0gcmlnaHQuZ3ByKCk7CisgICAgICAgIEdQUlJl
ZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgICAgIEdQUlJlZyB0ZW1wR1BSID0gdGVt
cC5ncHIoKTsKIAotICAgICAgICBtX2ppdC5tb3ZlKGxlZnQuZ3ByKCksIHJlc3VsdEdQUik7Ci0g
ICAgICAgIG1faml0LnVuYm94QmlnSW50MzIocmVzdWx0R1BSKTsKLSAgICAgICAgbV9qaXQubW92
ZShyaWdodC5ncHIoKSwgdGVtcEdQUik7Ci0gICAgICAgIG1faml0LnVuYm94QmlnSW50MzIodGVt
cEdQUik7CisgICAgICAgIG1faml0LnVuYm94QmlnSW50MzIobGVmdEdQUiwgcmVzdWx0R1BSKTsK
KyAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQzMihyaWdodEdQUiwgdGVtcEdQUik7CiAKICAgICAg
ICAgLy8gRklYTUU6IGFkZCBzb21lIHdheSB0byBlbGltaW5hdGUgdGhlIG92ZXJmbG93IGNoZWNr
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGNoZWNrID0gbV9qaXQuYnJhbmNoQWRkMzIo
TWFjcm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCByZXN1bHRHUFIsIHRlbXBHUFIsIHJlc3VsdEdQUik7
CkBAIC00MTM0LDE4ICs0MTMyLDE2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1
ZVN1YihOb2RlKiBub2RlKQogICAgIGlmIChub2RlLT5iaW5hcnlVc2VLaW5kKCkgPT0gQmlnSW50
MzJVc2UpIHsKICAgICAgICAgU3BlY3VsYXRlQmlnSW50MzJPcGVyYW5kIGxlZnQodGhpcywgbm9k
ZS0+Y2hpbGQxKCkpOwogICAgICAgICBTcGVjdWxhdGVCaWdJbnQzMk9wZXJhbmQgcmlnaHQodGhp
cywgbm9kZS0+Y2hpbGQyKCkpOwotCi0gICAgICAgIC8vIEZJWE1FOiBkbyB3ZSByZWFsbHkgbmVl
ZCB0aGlzIGV4dHJhIHJlZ2lzdGVyLCBvciBjYW4gd2UgbXV0YXRlIGxlZnQvcmlnaHQgPwotICAg
ICAgICAvLyBGSVhNRTogYWxzbywgbG9vayBpbnRvIFJldXNlIGFuZCBvdGhlciB0cmlja3MgZm9y
IGEgbW9yZSBlZmZpY2llbnQgZ2VuZXJhdGVkIGNvZGUuCiAgICAgICAgIEdQUlRlbXBvcmFyeSBy
ZXN1bHQodGhpcyk7Ci0gICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAg
ICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wKHRoaXMpOworCisgICAgICAgIEdQUlJlZyBsZWZ0R1BS
ID0gbGVmdC5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHJpZ2h0R1BSID0gcmlnaHQuZ3ByKCk7Cisg
ICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgICAgIEdQUlJlZyB0
ZW1wR1BSID0gdGVtcC5ncHIoKTsKIAotICAgICAgICBtX2ppdC5tb3ZlKGxlZnQuZ3ByKCksIHJl
c3VsdEdQUik7Ci0gICAgICAgIG1faml0LnVuYm94QmlnSW50MzIocmVzdWx0R1BSKTsKLSAgICAg
ICAgbV9qaXQubW92ZShyaWdodC5ncHIoKSwgdGVtcEdQUik7Ci0gICAgICAgIG1faml0LnVuYm94
QmlnSW50MzIodGVtcEdQUik7CisgICAgICAgIG1faml0LnVuYm94QmlnSW50MzIobGVmdEdQUiwg
cmVzdWx0R1BSKTsKKyAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQzMihyaWdodEdQUiwgdGVtcEdQ
Uik7CiAKICAgICAgICAgLy8gRklYTUU6IGFkZCBzb21lIHdheSB0byBlbGltaW5hdGUgdGhlIG92
ZXJmbG93IGNoZWNrCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGNoZWNrID0gbV9qaXQu
YnJhbmNoU3ViMzIoTWFjcm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCByZXN1bHRHUFIsIHRlbXBHUFIs
IHJlc3VsdEdQUik7CkBAIC00OTg0LDE4ICs0OTgwLDE2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVWYWx1ZU11bChOb2RlKiBub2RlKQogICAgICAgICAvLyBGSVhNRTogdGhlIGNvZGUg
YmV0d2VlbiBjb21waWxlVmFsdWVBZGQsIGNvbXBpbGVWYWx1ZVN1YiBhbmQgY29tcGlsZVZhbHVl
TXVsIGZvciBCaWdJbnQzMiBpcyBuZWFybHkgaWRlbnRpY2FsLCBzbyB0cnkgdG8gZ2V0IHJpZCBv
ZiB0aGUgZHVwbGljYXRpb24uCiAgICAgICAgIFNwZWN1bGF0ZUJpZ0ludDMyT3BlcmFuZCBsZWZ0
KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgU3BlY3VsYXRlQmlnSW50MzJPcGVyYW5k
IHJpZ2h0KHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKLQotICAgICAgICAvLyBGSVhNRTogZG8gd2Ug
cmVhbGx5IG5lZWQgdGhpcyBleHRyYSByZWdpc3Rlciwgb3IgY2FuIHdlIG11dGF0ZSBsZWZ0L3Jp
Z2h0ID8KLSAgICAgICAgLy8gRklYTUU6IGFsc28sIGxvb2sgaW50byBSZXVzZSBhbmQgb3RoZXIg
dHJpY2tzIGZvciBhIG1vcmUgZWZmaWNpZW50IGdlbmVyYXRlZCBjb2RlLgogICAgICAgICBHUFJU
ZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwotICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0
LmdwcigpOwogICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcCh0aGlzKTsKKworICAgICAgICBHUFJS
ZWcgbGVmdEdQUiA9IGxlZnQuZ3ByKCk7CisgICAgICAgIEdQUlJlZyByaWdodEdQUiA9IHJpZ2h0
LmdwcigpOworICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogICAgICAg
ICBHUFJSZWcgdGVtcEdQUiA9IHRlbXAuZ3ByKCk7CiAKLSAgICAgICAgbV9qaXQubW92ZShsZWZ0
LmdwcigpLCByZXN1bHRHUFIpOwotICAgICAgICBtX2ppdC51bmJveEJpZ0ludDMyKHJlc3VsdEdQ
Uik7Ci0gICAgICAgIG1faml0Lm1vdmUocmlnaHQuZ3ByKCksIHRlbXBHUFIpOwotICAgICAgICBt
X2ppdC51bmJveEJpZ0ludDMyKHRlbXBHUFIpOworICAgICAgICBtX2ppdC51bmJveEJpZ0ludDMy
KGxlZnRHUFIsIHJlc3VsdEdQUik7CisgICAgICAgIG1faml0LnVuYm94QmlnSW50MzIocmlnaHRH
UFIsIHRlbXBHUFIpOwogCiAgICAgICAgIC8vIEZJWE1FOiBhZGQgc29tZSB3YXkgdG8gZWxpbWlu
YXRlIHRoZSBvdmVyZmxvdyBjaGVjawogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBjaGVj
ayA9IG1faml0LmJyYW5jaE11bDMyKE1hY3JvQXNzZW1ibGVyOjpPdmVyZmxvdywgcmVzdWx0R1BS
LCB0ZW1wR1BSLCByZXN1bHRHUFIpOwpAQCAtNjI1Miw2ICs2MjQ2LDcgQEAgYm9vbCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGFyZShOb2RlKiBub2RlLCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENv
bmRpdGlvbiBjb24KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICNlbmRpZgorCiAjaWYg
VVNFKEpTVkFMVUU2NCkKICAgICBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEludDUyUmVwVXNl
KSkgewogICAgICAgICBjb21waWxlSW50NTJDb21wYXJlKG5vZGUsIGNvbmRpdGlvbik7CkBAIC02
MzIwLDcgKzYzMTUsNyBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpjb21wYXJlKE5vZGUqIG5vZGUs
IE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbgogICAgICAgICB9CiAgICAg
fQogCi0gICAgbm9uU3BlY3VsYXRpdmVOb25QZWVwaG9sZUNvbXBhcmUobm9kZSwgY29uZGl0aW9u
LCBvcGVyYXRpb24pOworICAgIGdlbmVyaWNKU1ZhbHVlTm9uUGVlcGhvbGVDb21wYXJlKG5vZGUs
IGNvbmRpdGlvbiwgb3BlcmF0aW9uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTE0MTE1
LDExICsxNDExMCwxMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKENvZGVP
cmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEpTVmFsdQogICAgIGFkZFNsb3dQYXRo
R2VuZXJhdG9yKFdURk1vdmUoc2xvd1BhdGgpKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
bm9uU3BlY3VsYXRpdmVOb25QZWVwaG9sZUNvbXBhcmUoTm9kZSogbm9kZSwgTWFjcm9Bc3NlbWJs
ZXI6OlJlbGF0aW9uYWxDb25kaXRpb24gY29uZCwgU19KSVRPcGVyYXRpb25fR0pKIGhlbHBlckZ1
bmN0aW9uKQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Z2VuZXJpY0pTVmFsdWVOb25QZWVwaG9sZUNv
bXBhcmUoTm9kZSogbm9kZSwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24gY29u
ZCwgU19KSVRPcGVyYXRpb25fR0pKIGhlbHBlckZ1bmN0aW9uKQogewotICAgIEFTU0VSVChub2Rl
LT5pc0JpbmFyeVVzZUtpbmQoVW50eXBlZFVzZSkpOwotICAgIEpTVmFsdWVPcGVyYW5kIGFyZzEo
dGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgIEpTVmFsdWVPcGVyYW5kIGFyZzIodGhpcywgbm9k
ZS0+Y2hpbGQyKCkpOworICAgIEFTU0VSVChub2RlLT5pc0JpbmFyeVVzZUtpbmQoVW50eXBlZFVz
ZSkgfHwgbm9kZS0+aXNCaW5hcnlVc2VLaW5kKEFueUJpZ0ludFVzZSkgfHwgbm9kZS0+aXNCaW5h
cnlVc2VLaW5kKEhlYXBCaWdJbnRVc2UpKTsKKyAgICBKU1ZhbHVlT3BlcmFuZCBhcmcxKHRoaXMs
IG5vZGUtPmNoaWxkMSgpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgIEpTVmFsdWVP
cGVyYW5kIGFyZzIodGhpcywgbm9kZS0+Y2hpbGQyKCksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlv
bik7CisgICAgc3BlY3VsYXRlKG5vZGUsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBzcGVjdWxhdGUo
bm9kZSwgbm9kZS0+Y2hpbGQyKCkpOwogCiAgICAgSlNWYWx1ZVJlZ3MgYXJnMVJlZ3MgPSBhcmcx
LmpzVmFsdWVSZWdzKCk7CiAgICAgSlNWYWx1ZVJlZ3MgYXJnMlJlZ3MgPSBhcmcyLmpzVmFsdWVS
ZWdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgK
aW5kZXggMGUyNTc1ZDFjNjQ1ODI5YjA2MDhhNzhlNjUxYWVjMjM2YzViY2NiYS4uNWFjZTUyNTVl
ZDAyNzY1MzVkYTFmYTY4YmY4YzA5ZDJhYWZlYzk5OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtNzQzLDcgKzc0Myw3IEBAIGNsYXNzIFNw
ZWN1bGF0aXZlSklUIHsKICAgICB2b2lkIG5vblNwZWN1bGF0aXZlUGVlcGhvbGVCcmFuY2hOdWxs
T3JVbmRlZmluZWQoRWRnZSBvcGVyYW5kLCBOb2RlKiBicmFuY2hOb2RlKTsKICAgICAKICAgICB2
b2lkIG5vblNwZWN1bGF0aXZlUGVlcGhvbGVCcmFuY2goTm9kZSosIE5vZGUqIGJyYW5jaE5vZGUs
IE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uLCBTX0pJVE9wZXJhdGlvbl9HSkog
aGVscGVyRnVuY3Rpb24pOwotICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVOb25QZWVwaG9sZUNvbXBh
cmUoTm9kZSosIE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uLCBTX0pJVE9wZXJh
dGlvbl9HSkogaGVscGVyRnVuY3Rpb24pOworICAgIHZvaWQgZ2VuZXJpY0pTVmFsdWVOb25QZWVw
aG9sZUNvbXBhcmUoTm9kZSosIE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uLCBT
X0pJVE9wZXJhdGlvbl9HSkogaGVscGVyRnVuY3Rpb24pOwogICAgIAogICAgIHZvaWQgbm9uU3Bl
Y3VsYXRpdmVQZWVwaG9sZVN0cmljdEVxKE5vZGUqLCBOb2RlKiBicmFuY2hOb2RlLCBib29sIGlu
dmVydCA9IGZhbHNlKTsKICAgICB2b2lkIGdlbmVyaWNKU1ZhbHVlTm9uUGVlcGhvbGVTdHJpY3RF
cShOb2RlKiwgYm9vbCBpbnZlcnQgPSBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAzNzg4M2QzOGE2YmMwYzllZTEz
N2NkZjkxODI0MDQ2ZmU5OTkxMzdhLi5iOGQzYTUzYTczYTE2MTA3MTYxM2FjZTIzZTU1YzBjMTgw
MTA5MTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAKQEAgLTE3NTMsMjEgKzE3NTMsMTYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUJpZ0ludDMyQ29tcGFyZShOb2RlKiBub2RlLCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRp
b24KIAogICAgIGlmIChjb25kaXRpb24gPT0gTWFjcm9Bc3NlbWJsZXI6OkVxdWFsIHx8IGNvbmRp
dGlvbiA9PSBNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwpIHsKICAgICAgICAgLy8gTm8gbmVlZCB0
byB1bmJveCB0aGUgb3BlcmFuZHMsIHNpbmNlIHRoZSB0YWcgYml0cyBhcmUgaWRlbnRpY2FsCi0g
ICAgICAgIG1faml0LmNvbXBhcmU2NChjb25kaXRpb24sIG9wMS5ncHIoKSwgb3AyLmdwcigpLCBy
ZXN1bHQuZ3ByKCkpOworICAgICAgICBtX2ppdC5jb21wYXJlNjQoY29uZGl0aW9uLCBvcDFHUFIs
IG9wMkdQUiwgcmVzdWx0R1BSKTsKICAgICB9IGVsc2UgewogICAgICAgICBHUFJUZW1wb3Jhcnkg
dGVtcCh0aGlzKTsKICAgICAgICAgR1BSUmVnIHRlbXBHUFIgPSB0ZW1wLmdwcigpOwogCi0gICAg
ICAgIG1faml0Lm1vdmUob3AxR1BSLCB0ZW1wR1BSKTsKLSAgICAgICAgbV9qaXQudW5ib3hCaWdJ
bnQzMih0ZW1wR1BSKTsKLSAgICAgICAgbV9qaXQubW92ZShvcDJHUFIsIHJlc3VsdEdQUik7Ci0g
ICAgICAgIG1faml0LnVuYm94QmlnSW50MzIocmVzdWx0R1BSKTsKLSAgICAgICAgbV9qaXQuY29t
cGFyZTY0KGNvbmRpdGlvbiwgdGVtcEdQUiwgcmVzdWx0R1BSLCByZXN1bHRHUFIpOworICAgICAg
ICBtX2ppdC51bmJveEJpZ0ludDMyKG9wMUdQUiwgdGVtcEdQUik7CisgICAgICAgIG1faml0LnVu
Ym94QmlnSW50MzIob3AyR1BSLCByZXN1bHRHUFIpOworICAgICAgICBtX2ppdC5jb21wYXJlMzIo
Y29uZGl0aW9uLCB0ZW1wR1BSLCByZXN1bHRHUFIsIHJlc3VsdEdQUik7CiAgICAgfQotCi0gICAg
Ly8gSWYgd2UgYWRkIGEgRGF0YUZvcm1hdEJvb2wsIHdlIHNob3VsZCB1c2UgaXQgaGVyZS4KLSAg
ICBtX2ppdC5vcjMyKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpWYWx1ZUZhbHNlKSwgcmVzdWx0Lmdw
cigpKTsKLSAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5ncHIoKSwgbV9jdXJyZW50Tm9kZSwgRGF0
YUZvcm1hdEpTQm9vbGVhbik7CisgICAgdW5ibGVzc2VkQm9vbGVhblJlc3VsdChyZXN1bHRHUFIs
IG5vZGUpOwogfQogCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVCaWdJbnQz
MkJyYW5jaChOb2RlKiBub2RlLCBOb2RlKiBicmFuY2hOb2RlLCBKSVRDb21waWxlcjo6UmVsYXRp
b25hbENvbmRpdGlvbiBjb25kaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAKaW5kZXggMDkzYmQ1ODdlNTI2MDE4Y2NmODEwYjYzYTE3NDljODc2
M2M0NmI2Ny4uNTg3MzI2NjZlZDhhNTU5ZjUxMmRkZmJiNTM5ZmVjODAwZDg2N2JiNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtODY2MSw3
ICs4NjYxLDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgfQogCiAgICAgICAgIERG
R19BU1NFUlQobV9ncmFwaCwgbV9ub2RlLCBtX25vZGUtPmlzQmluYXJ5VXNlS2luZChVbnR5cGVk
VXNlKSwgbV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCksIG1fbm9kZS0+Y2hpbGQyKCkudXNlS2lu
ZCgpKTsKLSAgICAgICAgbm9uU3BlY3VsYXRpdmVDb21wYXJlKAorICAgICAgICBnZW5lcmljSlNW
YWx1ZUNvbXBhcmUoCiAgICAgICAgICAgICBbJl0gKExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQp
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gbV9vdXQuZXF1YWwobGVmdCwgcmlnaHQpOwogICAg
ICAgICAgICAgfSwKQEAgLTg5NDksNyArODk0OSw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAK
ICAgICAgICAgLy8gRklYTUU6IHdlIGNhbiBkbyBzb21ldGhpbmcgbXVjaCBzbWFydGVyIGhlcmUs
IHNlZSB0aGUgREZHU3BlY3VsYXRpdmVKSVQgYXBwcm9hY2ggaW4gZS5nLiBTcGVjdWxhdGl2ZUpJ
VDo6bm9uU3BlY3VsYXRpdmVQZWVwaG9sZVN0cmljdEVxCiAgICAgICAgIERGR19BU1NFUlQobV9n
cmFwaCwgbV9ub2RlLCBtX25vZGUtPmlzQmluYXJ5VXNlS2luZChVbnR5cGVkVXNlKSwgbV9ub2Rl
LT5jaGlsZDEoKS51c2VLaW5kKCksIG1fbm9kZS0+Y2hpbGQyKCkudXNlS2luZCgpKTsKLSAgICAg
ICAgbm9uU3BlY3VsYXRpdmVDb21wYXJlKAorICAgICAgICBnZW5lcmljSlNWYWx1ZUNvbXBhcmUo
CiAgICAgICAgICAgICBbJl0gKExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpIHsKICAgICAgICAg
ICAgICAgICByZXR1cm4gbV9vdXQuZXF1YWwobGVmdCwgcmlnaHQpOwogICAgICAgICAgICAgfSwK
QEAgLTEzNTU2LDYgKzEzNTU2LDEzIEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIAorICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVzZUtp
bmQoQmlnSW50MzJVc2UpKSB7CisgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0JpZ0ludDMy
KG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93QmlnSW50
MzIobV9ub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICBzZXRCb29sZWFuKGludEZ1bmN0b3Io
dW5ib3hCaWdJbnQzMihsZWZ0KSwgdW5ib3hCaWdJbnQzMihyaWdodCkpKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChtX25vZGUtPmlzQmluYXJ5VXNlS2lu
ZChTdHJpbmdJZGVudFVzZSkpIHsKICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93U3RyaW5n
SWRlbnQobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dT
dHJpbmdJZGVudChtX25vZGUtPmNoaWxkMigpKTsKQEAgLTEzNTc2LDggKzEzNTgzLDggQEAgY2xh
c3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAg
ICAgIERGR19BU1NFUlQobV9ncmFwaCwgbV9ub2RlLCBtX25vZGUtPmlzQmluYXJ5VXNlS2luZChV
bnR5cGVkVXNlKSwgbV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCksIG1fbm9kZS0+Y2hpbGQyKCku
dXNlS2luZCgpKTsKLSAgICAgICAgbm9uU3BlY3VsYXRpdmVDb21wYXJlKGludEZ1bmN0b3IsIGZh
bGxiYWNrRnVuY3Rpb24pOworICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwgbV9u
b2RlLT5pc0JpbmFyeVVzZUtpbmQoVW50eXBlZFVzZSkgfHwgbV9ub2RlLT5pc0JpbmFyeVVzZUtp
bmQoSGVhcEJpZ0ludFVzZSkgfHwgbV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoQW55QmlnSW50VXNl
KSwgbV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCksIG1fbm9kZS0+Y2hpbGQyKCkudXNlS2luZCgp
KTsKKyAgICAgICAgZ2VuZXJpY0pTVmFsdWVDb21wYXJlKGludEZ1bmN0b3IsIGZhbGxiYWNrRnVu
Y3Rpb24pOwogICAgIH0KIAogICAgIHZvaWQgY29tcGlsZVN0cmluZ1NsaWNlKCkKQEAgLTE0NTQ3
LDExICsxNDU1NCwxMyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgIH0KIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEludEZ1bmN0b3I+Ci0gICAgdm9pZCBub25TcGVjdWxhdGl2ZUNvbXBhcmUo
Y29uc3QgSW50RnVuY3RvciYgaW50RnVuY3RvciwgU19KSVRPcGVyYXRpb25fR0pKIGhlbHBlckZ1
bmN0aW9uKQorICAgIHZvaWQgZ2VuZXJpY0pTVmFsdWVDb21wYXJlKGNvbnN0IEludEZ1bmN0b3Im
IGludEZ1bmN0b3IsIFNfSklUT3BlcmF0aW9uX0dKSiBoZWxwZXJGdW5jdGlvbikKICAgICB7CiAg
ICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVj
dEZvcihtX25vZGUtPm9yaWdpbi5zZW1hbnRpYyk7Ci0gICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93
SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SlNW
YWx1ZShtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dKU1ZhbHVl
KG1fbm9kZS0+Y2hpbGQxKCksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7CisgICAgICAgIExW
YWx1ZSByaWdodCA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDIoKSwgTWFudWFsT3BlcmFuZFNw
ZWN1bGF0aW9uKTsKKyAgICAgICAgc3BlY3VsYXRlKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAg
ICBzcGVjdWxhdGUobV9ub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgIAogICAgICAgICBMQmFzaWNC
bG9jayBsZWZ0SXNJbnQgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBm
YXN0UGF0aCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9B
c3NlbWJseUhlbHBlcnMuaAppbmRleCA0OTVmMzBkMjNiMzkyYTIxOTNmOWE2N2I0NjZjYTc4ZThj
Zjg3NzA1Li45MmNhMTRlOWUzM2FlMDIyOTI0Y2Q0MmQ0NjMxYzI1YWE5MDE3ODcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTEzOTgsOSArMTM5
OCwxNCBAQCBjbGFzcyBBc3NlbWJseUhlbHBlcnMgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXIgewog
I2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAKICNpZiBVU0UoQklHSU5UMzIpCi0gICAgdm9pZCB1
bmJveEJpZ0ludDMyKEdQUlJlZyBncHIpCisgICAgdm9pZCB1bmJveEJpZ0ludDMyKEdQUlJlZyBz
cmMsIEdQUlJlZyBkZXN0KQogICAgIHsKLSAgICAgICAgdXJzaGlmdDY0KHRydXN0ZWRJbW0zMkZv
clNoaWZ0KEltbTMyKDE2KSksIGdwcik7CisjaWYgQ1BVKEFSTTY0KQorICAgICAgICB1cnNoaWZ0
NjQoc3JjLCB0cnVzdGVkSW1tMzJGb3JTaGlmdChJbW0zMigxNikpLCBkZXN0KTsKKyNlbHNlCisg
ICAgICAgIG1vdmUoc3JjLCBkZXN0KTsKKyAgICAgICAgdXJzaGlmdDY0KHRydXN0ZWRJbW0zMkZv
clNoaWZ0KEltbTMyKDE2KSksIGRlc3QpOworI2VuZGlmCiAgICAgfQogCiAgICAgdm9pZCBib3hC
aWdJbnQzMihHUFJSZWcgZ3ByKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCaWdJbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJ
bnQuY3BwCmluZGV4IGE4YTMwODQ0MDUyMGZjNDE2MDQzMDMwZDM3ZGUwNTRhOGUzYWFkZDIuLmI3
YTRiZDlmZDY5MWY1ZjU1OGYxZmI4ODVkZTQxMzhjMzE3MDMxMzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKQEAgLTIwMjAsNiArMjAyMCwzNCBAQCBib29s
IEpTQmlnSW50OjplcXVhbHNUb0ludDMyKGludDMyX3QgdmFsdWUpCiAgICAgcmV0dXJuICh0aGlz
LT5sZW5ndGgoKSA9PSAxKSAmJiAodGhpcy0+c2lnbigpID09ICh2YWx1ZSA8IDApKSAmJiAodGhp
cy0+ZGlnaXQoMCkgPT0gc3RhdGljX2Nhc3Q8RGlnaXQ+KHN0ZDo6YWJzKHN0YXRpY19jYXN0PGlu
dDY0X3Q+KHZhbHVlKSkpKTsKIH0KIAorSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQgSlNCaWdJ
bnQ6OmNvbXBhcmVUb0ludDMyKGludDMyX3QgdmFsdWUpCit7CisgICAgYm9vbCB4U2lnbiA9IHNp
Z24oKTsKKyAgICBib29sIHlTaWduID0gdmFsdWUgPCAwOworCisgICAgaWYgKHhTaWduICE9IHlT
aWduKQorICAgICAgICByZXR1cm4geFNpZ24gPyBDb21wYXJpc29uUmVzdWx0OjpMZXNzVGhhbiA6
IENvbXBhcmlzb25SZXN1bHQ6OkdyZWF0ZXJUaGFuOworICAgIGlmIChpc1plcm8oKSkgeworICAg
ICAgICBpZiAodmFsdWUgPT0gMCkKKyAgICAgICAgICAgIHJldHVybiBDb21wYXJpc29uUmVzdWx0
OjpFcXVhbDsKKyAgICAgICAgcmV0dXJuIENvbXBhcmlzb25SZXN1bHQ6Okxlc3NUaGFuOworICAg
IH0KKworICAgIGlmIChsZW5ndGgoKSAhPSAxKQorICAgICAgICByZXR1cm4geFNpZ24gPyBDb21w
YXJpc29uUmVzdWx0OjpMZXNzVGhhbiA6IENvbXBhcmlzb25SZXN1bHQ6OkdyZWF0ZXJUaGFuOwor
CisgICAgdWludDY0X3QgdmFsdWU2NCA9IDA7CisgICAgaWYgKHhTaWduKQorICAgICAgICB2YWx1
ZTY0ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KC1zdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSkp
OworICAgIGVsc2UKKyAgICAgICAgdmFsdWU2NCA9IHZhbHVlOworICAgIGlmIChkaWdpdCgwKSA9
PSB2YWx1ZTY0KQorICAgICAgICByZXR1cm4gQ29tcGFyaXNvblJlc3VsdDo6RXF1YWw7CisgICAg
aWYgKGRpZ2l0KDApIDwgdmFsdWU2NCkKKyAgICAgICAgcmV0dXJuIHhTaWduID8gQ29tcGFyaXNv
blJlc3VsdDo6R3JlYXRlclRoYW4gOiBDb21wYXJpc29uUmVzdWx0OjpMZXNzVGhhbjsKKyAgICBy
ZXR1cm4geFNpZ24gPyBDb21wYXJpc29uUmVzdWx0OjpMZXNzVGhhbiA6IENvbXBhcmlzb25SZXN1
bHQ6OkdyZWF0ZXJUaGFuOworfQorCiBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdCBKU0JpZ0lu
dDo6Y29tcGFyZVRvRG91YmxlKEpTQmlnSW50KiB4LCBkb3VibGUgeSkKIHsKICAgICAvLyBUaGlz
IGFsZ29yaXRobSBleHBlY3QgdGhhdCB0aGUgZG91YmxlIGZvcm1hdCBpcyBJRUVFIDc1NApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKaW5kZXggZWY4MGE1MWFmNTVlOWZi
Yjc3NzhjOTE4MjJkZWNhMWU4ZTRjMDJjOS4uMjdjYmNmOTk0NDkwMzdjMGVhNTIwMDA3M2I0ODkx
MjI1ZjgzNzEyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
aWdJbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCkBA
IC0xMjQsNiArMTI0LDkgQEAgY2xhc3MgSlNCaWdJbnQgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsK
ICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBlcXVhbHMoSlNCaWdJbnQqLCBKU0Jp
Z0ludCopOwogICAgIGJvb2wgZXF1YWxzVG9OdW1iZXIoSlNWYWx1ZSk7CiAgICAgSlNfRVhQT1JU
X1BSSVZBVEUgYm9vbCBlcXVhbHNUb0ludDMyKGludDMyX3QpOworICAgIEpTX0VYUE9SVF9QUklW
QVRFIENvbXBhcmlzb25SZXN1bHQgY29tcGFyZVRvSW50MzIoaW50MzJfdCk7CisgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgYm9vbCBsZXNzVGhhbkludDMyKGludDMyX3QpOworICAgIEpTX0VYUE9SVF9Q
UklWQVRFIGJvb2wgbGVzc1RoYW5FcXVhbEludDMyKGludDMyX3QpOwogICAgIHN0YXRpYyBDb21w
YXJpc29uUmVzdWx0IGNvbXBhcmUoSlNCaWdJbnQqIHgsIEpTQmlnSW50KiB5KTsKIAogICAgIGJv
b2wgZ2V0UHJpbWl0aXZlTnVtYmVyKEpTR2xvYmFsT2JqZWN0KiwgZG91YmxlJiBudW1iZXIsIEpT
VmFsdWUmIHJlc3VsdCkgY29uc3Q7CkBAIC0yODcsNCArMjkwLDE2IEBAIGlubGluZSB2b2lkIEpT
QmlnSW50OjpzZXREaWdpdCh1bnNpZ25lZCBuLCBEaWdpdCB2YWx1ZSkKICAgICBkYXRhU3RvcmFn
ZSgpW25dID0gdmFsdWU7CiB9CiAKK0FMV0FZU19JTkxJTkUgSlNCaWdJbnQ6OkNvbXBhcmlzb25S
ZXN1bHQgc3dhcEJpZ0ludENvbXBhcmVSZXN1bHQoSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQg
Y29tcGFyaXNvblJlc3VsdCkKK3sKKyAgICBzd2l0Y2ggKGNvbXBhcmlzb25SZXN1bHQpIHsKKyAg
ICBjYXNlIEpTQmlnSW50OjpDb21wYXJpc29uUmVzdWx0OjpHcmVhdGVyVGhhbjoKKyAgICAgICAg
cmV0dXJuIEpTQmlnSW50OjpDb21wYXJpc29uUmVzdWx0OjpMZXNzVGhhbjsKKyAgICBjYXNlIEpT
QmlnSW50OjpDb21wYXJpc29uUmVzdWx0OjpMZXNzVGhhbjoKKyAgICAgICAgcmV0dXJuIEpTQmln
SW50OjpDb21wYXJpc29uUmVzdWx0OjpHcmVhdGVyVGhhbjsKKyAgICBkZWZhdWx0OgorICAgICAg
ICByZXR1cm4gY29tcGFyaXNvblJlc3VsdDsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCmluZGV4IDE3N2Vk
YTBlOTljODA3MDFhYWUwYzY1YTYzNjVjNmRiNTE1ZTczNDAuLmIwNDVhMmRjYzAyMzFhM2MyOWQ2
YjY3NjEwMGZiMDkyNzU1ZDlhM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cGVyYXRpb25zLmgKQEAgLTI5MywzOCArMjkzLDI5IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBiaWdJ
bnRDb21wYXJlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgdjEsIEpTVmFs
CiAgICAgfQogI2VuZGlmCiAKLSAgICBKU0JpZ0ludCogdjFIZWFwQmlnSW50ID0gbnVsbHB0cjsK
LSAgICBKU0JpZ0ludCogdjJIZWFwQmlnSW50ID0gbnVsbHB0cjsKLSAgICAvLyBGSVhNRTogaGF2
ZSBzb21lIGZhc3QtaXNoIHBhdGggZm9yIGEgY29tcGFyaXNvbiBiZXR3ZWVuIGEgc21hbGwgYW5k
IGEgbGFyZ2UgYmlnLWludAotICAgIGlmICh2MS5pc0hlYXBCaWdJbnQoKSkKLSAgICAgICAgdjFI
ZWFwQmlnSW50ID0gdjEuYXNIZWFwQmlnSW50KCk7CisgICAgaWYgKHYxLmlzSGVhcEJpZ0ludCgp
KSB7CisgICAgICAgIGF1dG8qIHYxSGVhcEJpZ0ludCA9IHYxLmFzSGVhcEJpZ0ludCgpOworICAg
ICAgICBpZiAodjIuaXNIZWFwQmlnSW50KCkpCisgICAgICAgICAgICByZXR1cm4gYmlnSW50Q29t
cGFyZVJlc3VsdChKU0JpZ0ludDo6Y29tcGFyZSh2MUhlYXBCaWdJbnQsIHYyLmFzSGVhcEJpZ0lu
dCgpKSwgY29tcGFyaXNvbk1vZGUpOwogI2lmIFVTRShCSUdJTlQzMikKLSAgICBlbHNlIGlmICh2
MS5pc0JpZ0ludDMyKCkpCi0gICAgICAgIHYxSGVhcEJpZ0ludCA9IEpTQmlnSW50OjpjcmVhdGVG
cm9tKHZtLCB2MS5iaWdJbnQzMkFzSW50MzIoKSk7CisgICAgICAgIGlmICh2Mi5pc0JpZ0ludDMy
KCkpCisgICAgICAgICAgICByZXR1cm4gYmlnSW50Q29tcGFyZVJlc3VsdCh2MUhlYXBCaWdJbnQt
PmNvbXBhcmVUb0ludDMyKHYyLmJpZ0ludDMyQXNJbnQzMigpKSwgY29tcGFyaXNvbk1vZGUpOwog
I2VuZGlmCi0KLSAgICBpZiAodjIuaXNIZWFwQmlnSW50KCkpCi0gICAgICAgIHYySGVhcEJpZ0lu
dCA9IHYyLmFzSGVhcEJpZ0ludCgpOwotI2lmIFVTRShCSUdJTlQzMikKLSAgICBlbHNlIGlmICh2
Mi5pc0JpZ0ludDMyKCkpCi0gICAgICAgIHYySGVhcEJpZ0ludCA9IEpTQmlnSW50OjpjcmVhdGVG
cm9tKHZtLCB2Mi5iaWdJbnQzMkFzSW50MzIoKSk7Ci0jZW5kaWYKLQotICAgIGlmICh2MUhlYXBC
aWdJbnQgJiYgdjJIZWFwQmlnSW50KQotICAgICAgICByZXR1cm4gYmlnSW50Q29tcGFyZVJlc3Vs
dChKU0JpZ0ludDo6Y29tcGFyZSh2MUhlYXBCaWdJbnQsIHYySGVhcEJpZ0ludCksIGNvbXBhcmlz
b25Nb2RlKTsKLQotICAgIGlmICh2MUhlYXBCaWdJbnQpIHsKICAgICAgICAgYXV0byBjb21wYXJp
c29uUmVzdWx0ID0gY29tcGFyZUJpZ0ludFRvT3RoZXJQcmltaXRpdmUoZ2xvYmFsT2JqZWN0LCB2
MUhlYXBCaWdJbnQsIHYyKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFs
c2UpOwogICAgICAgICByZXR1cm4gYmlnSW50Q29tcGFyZVJlc3VsdChjb21wYXJpc29uUmVzdWx0
LCBjb21wYXJpc29uTW9kZSk7CiAgICAgfQogCisgICAgLy8gSGVyZSB3ZSBjaGVjayBpbnZlcnRl
ZCBiZWNhdXNlIEJpZ0ludCBpcyB0aGUgdjIKKyAgICBhdXRvKiB2MkhlYXBCaWdJbnQgPSB2Mi5h
c0hlYXBCaWdJbnQoKTsKKyNpZiBVU0UoQklHSU5UMzIpCisgICAgaWYgKHYxLmlzQmlnSW50MzIo
KSkKKyAgICAgICAgcmV0dXJuIGJpZ0ludENvbXBhcmVSZXN1bHQoc3dhcEJpZ0ludENvbXBhcmVS
ZXN1bHQodjJIZWFwQmlnSW50LT5jb21wYXJlVG9JbnQzMih2MS5iaWdJbnQzMkFzSW50MzIoKSkp
LCBjb21wYXJpc29uTW9kZSk7CisjZW5kaWYKKwogICAgIGF1dG8gY29tcGFyaXNvblJlc3VsdCA9
IGNvbXBhcmVCaWdJbnRUb090aGVyUHJpbWl0aXZlKGdsb2JhbE9iamVjdCwgdjJIZWFwQmlnSW50
LCB2MSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwotICAgIC8vIEhl
cmUgd2UgY2hlY2sgaW52ZXJ0ZWQgYmVjYXVzZSBCaWdJbnQgaXMgdGhlIHYyCi0gICAgaWYgKGNv
bXBhcmlzb25Nb2RlID09IEpTQmlnSW50OjpDb21wYXJpc29uTW9kZTo6TGVzc1RoYW4pCi0gICAg
ICAgIHJldHVybiBjb21wYXJpc29uUmVzdWx0ID09IEpTQmlnSW50OjpDb21wYXJpc29uUmVzdWx0
OjpHcmVhdGVyVGhhbjsKLSAgICByZXR1cm4gY29tcGFyaXNvblJlc3VsdCA9PSBKU0JpZ0ludDo6
Q29tcGFyaXNvblJlc3VsdDo6R3JlYXRlclRoYW4gfHwgY29tcGFyaXNvblJlc3VsdCA9PSBKU0Jp
Z0ludDo6Q29tcGFyaXNvblJlc3VsdDo6RXF1YWw7CisgICAgcmV0dXJuIGJpZ0ludENvbXBhcmVS
ZXN1bHQoc3dhcEJpZ0ludENvbXBhcmVSZXN1bHQoY29tcGFyaXNvblJlc3VsdCksIGNvbXBhcmlz
b25Nb2RlKTsKIH0KIAogQUxXQVlTX0lOTElORSBib29sIHRvUHJpbWl0aXZlTnVtZXJpYyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHYsIEpTVmFsdWUmIHAsIGRvdWJsZSYg
bikKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNDJjZDM0YTBhOGFkMTQ2ZDA1ZTUyNWNjODRkMmE0MzhhMDU1NTFkOS4uODU2ZTI1OGQ0ZDlh
ZGI1ODg2ZmNjNzBhMTkxZmFjMWMwYTllMjcwMiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wNC0yMiAg
WXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIERGRyBj
b21wYXJlIHNob3VsZCBzcGVjdWxhdGUgQmlnSW50IHdlbGwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDg5MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2NvbXBhcmUtYmlnaW50LmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHJlc3VsdCk6CisgICAgICAgIChs
ZXNzVGhhbik6CisgICAgICAgIChsZXNzVGhhbkVxdWFsKToKKyAgICAgICAgKGdyZWF0ZXJUaGFu
KToKKyAgICAgICAgKGdyZWF0ZXJUaGFuRXF1YWwpOgorCiAyMDIwLTA0LTIyICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gYnJhbmNoSWZCaWdJbnQz
MiBjYW4gdXNlIEJpZ0ludDMyTWFzayBhbmQgcmVtb3ZlIGJyYW5jaElmTnVtYmVyIGZpbHRlcgpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvY29tcGFyZS1iaWdpbnQuanMgYi9KU1Rlc3RzL3N0
cmVzcy9jb21wYXJlLWJpZ2ludC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjhlYmZhM2Y2YTcxODYwODkyNGM3
ZTZiNmZkMzNjYzhjMDI5M2U2Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvY29t
cGFyZS1iaWdpbnQuanMKQEAgLTAsMCArMSwxNDIgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVh
bCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitjb25zdCBHcmVhdGVy
ID0gMDsKK2NvbnN0IExlc3MgPSAxOworY29uc3QgRXF1YWwgPSAyOworCitmdW5jdGlvbiByZXN1
bHQoZnVuYywgZGF0YSkKK3sKKyAgICBpZiAoZnVuYyA9PT0gbGVzc1RoYW4pCisgICAgICAgIHJl
dHVybiBkYXRhID09PSBMZXNzOworICAgIGlmIChmdW5jID09PSBsZXNzVGhhbkVxdWFsKQorICAg
ICAgICByZXR1cm4gZGF0YSA9PT0gTGVzcyB8fCBkYXRhID09PSBFcXVhbDsKKyAgICBpZiAoZnVu
YyA9PT0gZ3JlYXRlclRoYW4pCisgICAgICAgIHJldHVybiBkYXRhID09PSBHcmVhdGVyOworICAg
IGlmIChmdW5jID09PSBncmVhdGVyVGhhbkVxdWFsKQorICAgICAgICByZXR1cm4gZGF0YSA9PT0g
R3JlYXRlciB8fCBkYXRhID09PSBFcXVhbDsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZhciBs
aXN0ID0gWworICAgIFtjcmVhdGVIZWFwQmlnSW50KDFuKSwgMm4sIExlc3NdLAorICAgIFtjcmVh
dGVIZWFwQmlnSW50KDFuKSwgMW4sIEVxdWFsXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxbiks
IDBuLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxbiksIC0xbiwgR3JlYXRlcl0s
CisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMW4pLCAtMm4sIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVI
ZWFwQmlnSW50KDBuKSwgMm4sIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDBuKSwgMW4s
IExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDBuKSwgMG4sIEVxdWFsXSwKKyAgICBbY3Jl
YXRlSGVhcEJpZ0ludCgwbiksIC0xbiwgR3JlYXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQo
MG4pLCAtMm4sIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xbiksIDJuLCBMZXNz
XSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMW4pLCAxbiwgTGVzc10sCisgICAgW2NyZWF0ZUhl
YXBCaWdJbnQoLTFuKSwgMG4sIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xbiksIC0x
biwgRXF1YWxdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xbiksIC0ybiwgR3JlYXRlcl0sCisK
KyAgICBbMW4sIGNyZWF0ZUhlYXBCaWdJbnQoMm4pLCBMZXNzXSwKKyAgICBbMW4sIGNyZWF0ZUhl
YXBCaWdJbnQoMW4pLCBFcXVhbF0sCisgICAgWzFuLCBjcmVhdGVIZWFwQmlnSW50KDBuKSwgR3Jl
YXRlcl0sCisgICAgWzFuLCBjcmVhdGVIZWFwQmlnSW50KC0xbiksIEdyZWF0ZXJdLAorICAgIFsx
biwgY3JlYXRlSGVhcEJpZ0ludCgtMm4pLCBHcmVhdGVyXSwKKyAgICBbMG4sIGNyZWF0ZUhlYXBC
aWdJbnQoMm4pLCBMZXNzXSwKKyAgICBbMG4sIGNyZWF0ZUhlYXBCaWdJbnQoMW4pLCBMZXNzXSwK
KyAgICBbMG4sIGNyZWF0ZUhlYXBCaWdJbnQoMG4pLCBFcXVhbF0sCisgICAgWzBuLCBjcmVhdGVI
ZWFwQmlnSW50KC0xbiksIEdyZWF0ZXJdLAorICAgIFswbiwgY3JlYXRlSGVhcEJpZ0ludCgtMm4p
LCBHcmVhdGVyXSwKKyAgICBbLTFuLCBjcmVhdGVIZWFwQmlnSW50KDJuKSwgTGVzc10sCisgICAg
Wy0xbiwgY3JlYXRlSGVhcEJpZ0ludCgxbiksIExlc3NdLAorICAgIFstMW4sIGNyZWF0ZUhlYXBC
aWdJbnQoMG4pLCBMZXNzXSwKKyAgICBbLTFuLCBjcmVhdGVIZWFwQmlnSW50KC0xbiksIEVxdWFs
XSwKKyAgICBbLTFuLCBjcmVhdGVIZWFwQmlnSW50KC0ybiksIEdyZWF0ZXJdLAorCisgICAgWzFu
LCAybiwgTGVzc10sCisgICAgWzFuLCAxbiwgRXF1YWxdLAorICAgIFsxbiwgMG4sIEdyZWF0ZXJd
LAorICAgIFsxbiwgLTFuLCBHcmVhdGVyXSwKKyAgICBbMW4sIC0ybiwgR3JlYXRlcl0sCisgICAg
WzBuLCAybiwgTGVzc10sCisgICAgWzBuLCAxbiwgTGVzc10sCisgICAgWzBuLCAwbiwgRXF1YWxd
LAorICAgIFswbiwgLTFuLCBHcmVhdGVyXSwKKyAgICBbMG4sIC0ybiwgR3JlYXRlcl0sCisgICAg
Wy0xbiwgMm4sIExlc3NdLAorICAgIFstMW4sIDFuLCBMZXNzXSwKKyAgICBbLTFuLCAwbiwgTGVz
c10sCisgICAgWy0xbiwgLTFuLCBFcXVhbF0sCisgICAgWy0xbiwgLTJuLCBHcmVhdGVyXSwKKwor
ICAgIFtjcmVhdGVIZWFwQmlnSW50KDFuKSwgY3JlYXRlSGVhcEJpZ0ludCgybiksIExlc3NdLAor
ICAgIFtjcmVhdGVIZWFwQmlnSW50KDFuKSwgY3JlYXRlSGVhcEJpZ0ludCgxbiksIEVxdWFsXSwK
KyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxbiksIGNyZWF0ZUhlYXBCaWdJbnQoMG4pLCBHcmVhdGVy
XSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxbiksIGNyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgR3Jl
YXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMW4pLCBjcmVhdGVIZWFwQmlnSW50KC0ybiks
IEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDBuKSwgY3JlYXRlSGVhcEJpZ0ludCgy
biksIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDBuKSwgY3JlYXRlSGVhcEJpZ0ludCgx
biksIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDBuKSwgY3JlYXRlSGVhcEJpZ0ludCgw
biksIEVxdWFsXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgwbiksIGNyZWF0ZUhlYXBCaWdJbnQo
LTFuKSwgR3JlYXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCBjcmVhdGVIZWFwQmln
SW50KC0ybiksIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xbiksIGNyZWF0ZUhl
YXBCaWdJbnQoMm4pLCBMZXNzXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMW4pLCBjcmVhdGVI
ZWFwQmlnSW50KDFuKSwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgY3JlYXRl
SGVhcEJpZ0ludCgwbiksIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xbiksIGNyZWF0
ZUhlYXBCaWdJbnQoLTFuKSwgRXF1YWxdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xbiksIGNy
ZWF0ZUhlYXBCaWdJbnQoLTJuKSwgR3JlYXRlcl0sCisKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgx
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIDJuLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVh
cEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIDFuLCBHcmVhdGVyXSwKKyAgICBb
Y3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIDBuLCBHcmVhdGVy
XSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIC0x
biwgR3JlYXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMTAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMG4pLCAtMm4sIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwbiksIDJuLCBMZXNzXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMTAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCAxbiwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJ
bnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgMG4sIExlc3NdLAorICAgIFtjcmVhdGVI
ZWFwQmlnSW50KC0xMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIC0xbiwgTGVzc10sCisgICAg
W2NyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgLTJuLCBMZXNz
XSwKKworICAgIFsybiwgY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
biksIExlc3NdLAorICAgIFsxbiwgY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwbiksIExlc3NdLAorICAgIFswbiwgY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwbiksIExlc3NdLAorICAgIFstMW4sIGNyZWF0ZUhlYXBCaWdJbnQoMTAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBMZXNzXSwKKyAgICBbLTJuLCBjcmVhdGVIZWFwQmlnSW50
KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgTGVzc10sCisgICAgWzJuLCBjcmVhdGVIZWFw
QmlnSW50KC0xMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIEdyZWF0ZXJdLAorICAgIFsxbiwg
Y3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBHcmVhdGVyXSwK
KyAgICBbMG4sIGNyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwg
R3JlYXRlcl0sCisgICAgWy0xbiwgY3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMG4pLCBHcmVhdGVyXSwKKyAgICBbLTJuLCBjcmVhdGVIZWFwQmlnSW50KC0xMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwbiksIEdyZWF0ZXJdLAorXTsKKworZnVuY3Rpb24gbGVzc1RoYW4o
YSwgYikKK3sKKyAgICByZXR1cm4gYSA8IGI7Cit9Citub0lubGluZShsZXNzVGhhbik7CisKK2Z1
bmN0aW9uIGxlc3NUaGFuRXF1YWwoYSwgYikKK3sKKyAgICByZXR1cm4gYSA8PSBiOworfQorbm9J
bmxpbmUobGVzc1RoYW5FcXVhbCk7CisKK2Z1bmN0aW9uIGdyZWF0ZXJUaGFuKGEsIGIpCit7Cisg
ICAgcmV0dXJuIGEgPiBiOworfQorbm9JbmxpbmUoZ3JlYXRlclRoYW4pOworCitmdW5jdGlvbiBn
cmVhdGVyVGhhbkVxdWFsKGEsIGIpCit7CisgICAgcmV0dXJuIGEgPj0gYjsKK30KK25vSW5saW5l
KGdyZWF0ZXJUaGFuRXF1YWwpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlMzsgKytpKSB7Cisg
ICAgZm9yIChsZXQgW2EsIGIsIHJlc10gb2YgbGlzdCkgeworICAgICAgICBzaG91bGRCZShsZXNz
VGhhbihhLCBiKSwgcmVzdWx0KGxlc3NUaGFuLCByZXMpKTsKKyAgICAgICAgc2hvdWxkQmUobGVz
c1RoYW5FcXVhbChhLCBiKSwgcmVzdWx0KGxlc3NUaGFuRXF1YWwsIHJlcykpOworICAgICAgICBz
aG91bGRCZShncmVhdGVyVGhhbihhLCBiKSwgcmVzdWx0KGdyZWF0ZXJUaGFuLCByZXMpKTsKKyAg
ICAgICAgc2hvdWxkQmUoZ3JlYXRlclRoYW5FcXVhbChhLCBiKSwgcmVzdWx0KGdyZWF0ZXJUaGFu
RXF1YWwsIHJlcykpOworICAgIH0KK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397357</attachid>
            <date>2020-04-23 10:25:21 -0700</date>
            <delta_ts>2020-04-23 14:47:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210892-20200423102520.patch</filename>
            <type>text/plain</type>
            <size>33246</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZTBlM2Y4MjA0YzM5YWQ3ODk5YmVkZGJkYWM3ODFkMTQxZjczZGYwLi4xMDNhMmNhZmUxNDg3MmIz
ZDNhN2Q3ZDAwNzg3YzYzM2Y4YjVhNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAyMC0wNC0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIERGRyBjb21wYXJlIHNob3VsZCBzcGVjdWxhdGUgQmlnSW50IHdl
bGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDg5
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbXBh
cmUgb3BlcmF0aW9ucyBpbiBERkcgZG9lcyBub3Qgc3VwcG9ydCBCaWdJbnQgcmVsYXRlZCBzcGVj
dWxhdGlvbnMuIEFzIGEgcmVzdWx0LCBERkcgZml4dXAgcGhhc2UgZW1pdHMgRG91YmxlUmVwIGZv
ciBvcGVyYW5kcywgYW5kCisgICAgICAgIGNhdXNlcyBPU1IgZXhpdC4gVGhpcyBwYXRjaCBhZGRz
IEJpZ0ludDMyLCBIZWFwQmlnSW50LCBhbmQgQW55QmlnSW50VXNlIHN1cHBvcnQgdG8gREZHIGNv
bXBhcmUgb3BlcmF0aW9ucyB0byBhdm9pZCBPU1IgZXhpdHMuIEFuZCB3ZQorICAgICAgICBpbnRy
b2R1Y2UgSlNCaWdJbnQ6OmNvbXBhcmVUb0ludDMyIHRvIGF2b2lkIGFsbG9jYXRpbmcgSlNCaWdJ
bnQgb25seSBmb3IgY29tcGFyaXNvbi4KKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8
QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0Rv
ZXNHQy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZH
Rml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2Rl
KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVBZGQpOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVTdWIpOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVNdWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21wYXJlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Z2VuZXJpY0pTVmFsdWVOb25QZWVwaG9sZUNvbXBhcmUpOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpub25TcGVjdWxhdGl2ZU5vblBlZXBob2xlQ29tcGFyZSk6IERlbGV0ZWQu
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlQmlnSW50MzJDb21wYXJlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNw
cDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNvbXBhcmVF
cSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDb21wYXJl
U3RyaWN0RXEpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21wYXJl
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Z2VuZXJpY0pTVmFsdWVD
b21wYXJlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6bm9uU3BlY3Vs
YXRpdmVDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6
CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6dW5ib3hCaWdJbnQzMik6CisgICAgICAg
ICogcnVudGltZS9KU0JpZ0ludC5jcHA6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojpjb21wYXJl
VG9JbnQzMik6CisgICAgICAgICogcnVudGltZS9KU0JpZ0ludC5oOgorICAgICAgICAoSlNDOjpz
d2FwQmlnSW50Q29tcGFyZVJlc3VsdCk6CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6
CisgICAgICAgIChKU0M6OmJpZ0ludENvbXBhcmUpOgorCiAyMDIwLTA0LTIyICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gYnJhbmNoSWZCaWdJbnQz
MiBjYW4gdXNlIEJpZ0ludDMyTWFzayBhbmQgcmVtb3ZlIGJyYW5jaElmTnVtYmVyIGZpbHRlcgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oCmluZGV4IDNlZWZiYzI4MmU5YzQ3ZjI3ZDcwYzg1OTNmOWQyNjdkMWUw
YWIxYTMuLjAxNjBlNmE2NTgyZTBhNWFjOWRhYTI2MGViNTA3ZWM1YzUyNDI2YTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGlu
ZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0
ZXJJbmxpbmVzLmgKQEAgLTE4NDAsMzAgKzE4NDAsNzMgQEAgYm9vbCBBYnN0cmFjdEludGVycHJl
dGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxp
bWkKICAgICAgICAgSlNWYWx1ZSBsZWZ0Q29uc3QgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52
YWx1ZSgpOwogICAgICAgICBKU1ZhbHVlIHJpZ2h0Q29uc3QgPSBmb3JOb2RlKG5vZGUtPmNoaWxk
MigpKS52YWx1ZSgpOwogICAgICAgICBpZiAobGVmdENvbnN0ICYmIHJpZ2h0Q29uc3QpIHsKKyAg
ICAgICAgICAgIGF1dG8gY29tcGFyZSA9IFsmXShhdXRvIGEsIGF1dG8gYikgeworICAgICAgICAg
ICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgQ29tcGFy
ZUxlc3M6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBqc0Jvb2xlYW4oYSA8IGIpOworICAg
ICAgICAgICAgICAgIGNhc2UgQ29tcGFyZUxlc3NFcToKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGpzQm9vbGVhbihhIDw9IGIpOworICAgICAgICAgICAgICAgIGNhc2UgQ29tcGFyZUdyZWF0
ZXI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBqc0Jvb2xlYW4oYSA+IGIpOworICAgICAg
ICAgICAgICAgIGNhc2UgQ29tcGFyZUdyZWF0ZXJFcToKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGpzQm9vbGVhbihhID49IGIpOworICAgICAgICAgICAgICAgIGNhc2UgQ29tcGFyZUVxOgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4ganNCb29sZWFuKGEgPT0gYik7CisgICAgICAgICAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfTsKKwogICAgICAgICAgICAgaWYgKGxlZnRDb25zdC5pc051bWJlcigpICYm
IHJpZ2h0Q29uc3QuaXNOdW1iZXIoKSkgewogICAgICAgICAgICAgICAgIGRvdWJsZSBhID0gbGVm
dENvbnN0LmFzTnVtYmVyKCk7CiAgICAgICAgICAgICAgICAgZG91YmxlIGIgPSByaWdodENvbnN0
LmFzTnVtYmVyKCk7CisgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwgY29tcGFyZShh
LCBiKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyNpZiBVU0Uo
QklHSU5UMzIpCisgICAgICAgICAgICBpZiAobGVmdENvbnN0LmlzQmlnSW50MzIoKSAmJiByaWdo
dENvbnN0LmlzQmlnSW50MzIoKSkgeworICAgICAgICAgICAgICAgIGludDMyX3QgYSA9IGxlZnRD
b25zdC5iaWdJbnQzMkFzSW50MzIoKTsKKyAgICAgICAgICAgICAgICBpbnQzMl90IGIgPSByaWdo
dENvbnN0LmJpZ0ludDMyQXNJbnQzMigpOworICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5v
ZGUsIGNvbXBhcmUoYSwgYikpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorI2VuZGlmCisKKyAgICAgICAgICAgIGlmIChsZWZ0Q29uc3QuaXNCaWdJbnQoKSAmJiByaWdo
dENvbnN0LmlzQmlnSW50KCkpIHsKKyAgICAgICAgICAgICAgICBKU0JpZ0ludDo6Q29tcGFyaXNv
blJlc3VsdCByZXN1bHQgPSBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdDo6VW5kZWZpbmVkOwor
ICAgICAgICAgICAgICAgIGlmIChsZWZ0Q29uc3QuaXNIZWFwQmlnSW50KCkgJiYgcmlnaHRDb25z
dC5pc0hlYXBCaWdJbnQoKSkKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gSlNCaWdJbnQ6
OmNvbXBhcmUobGVmdENvbnN0LmFzSGVhcEJpZ0ludCgpLCByaWdodENvbnN0LmFzSGVhcEJpZ0lu
dCgpKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyNpZiBVU0UoQklHSU5UMzIpCisgICAgICAg
ICAgICAgICAgICAgIGlmIChsZWZ0Q29uc3QuaXNCaWdJbnQzMigpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gc3dhcEJpZ0ludENvbXBhcmVSZXN1bHQocmlnaHRDb25zdC5hc0hl
YXBCaWdJbnQoKS0+Y29tcGFyZVRvSW50MzIobGVmdENvbnN0LmJpZ0ludDMyQXNJbnQzMigpKSk7
CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJpZ2h0Q29uc3QuaXNCaWdJbnQzMigpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbGVmdENvbnN0LmFzSGVhcEJpZ0ludCgp
LT5jb21wYXJlVG9JbnQzMihyaWdodENvbnN0LmJpZ0ludDMyQXNJbnQzMigpKTsKKyNlbmRpZgor
ICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkg
ewogICAgICAgICAgICAgICAgIGNhc2UgQ29tcGFyZUxlc3M6Ci0gICAgICAgICAgICAgICAgICAg
IHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihhIDwgYikpOworICAgICAgICAgICAgICAgICAg
ICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4ocmVzdWx0ID09IEpTQmlnSW50OjpDb21wYXJp
c29uUmVzdWx0OjpMZXNzVGhhbikpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICBjYXNlIENvbXBhcmVMZXNzRXE6Ci0gICAgICAgICAgICAgICAgICAgIHNldENv
bnN0YW50KG5vZGUsIGpzQm9vbGVhbihhIDw9IGIpKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0
Q29uc3RhbnQobm9kZSwganNCb29sZWFuKHJlc3VsdCA9PSBKU0JpZ0ludDo6Q29tcGFyaXNvblJl
c3VsdDo6TGVzc1RoYW4gfHwgcmVzdWx0ID09IEpTQmlnSW50OjpDb21wYXJpc29uUmVzdWx0OjpF
cXVhbCkpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNl
IENvbXBhcmVHcmVhdGVyOgotICAgICAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBq
c0Jvb2xlYW4oYSA+IGIpKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwg
anNCb29sZWFuKHJlc3VsdCA9PSBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdDo6R3JlYXRlclRo
YW4pKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBD
b21wYXJlR3JlYXRlckVxOgotICAgICAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBq
c0Jvb2xlYW4oYSA+PSBiKSk7CisgICAgICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUs
IGpzQm9vbGVhbihyZXN1bHQgPT0gSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQ6OkdyZWF0ZXJU
aGFuIHx8IHJlc3VsdCA9PSBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdDo6RXF1YWwpKTsKICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBDb21wYXJlRXE6
Ci0gICAgICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihhID09IGIp
KTsKKyAgICAgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKHJlc3Vs
dCA9PSBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdDo6RXF1YWwpKTsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAobGVmdENvbnN0LmlzU3RyaW5nKCkg
JiYgcmlnaHRDb25zdC5pc1N0cmluZygpKSB7CkBAIC0xOTMzLDYgKzE5NzYsOSBAQCBib29sIEFi
c3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNp
Z25lZCBjbG9iYmVyTGltaQogICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkgPT0gbm9kZS0+Y2hp
bGQyKCkpIHsKICAgICAgICAgICAgIGlmIChub2RlLT5pc0JpbmFyeVVzZUtpbmQoSW50MzJVc2Up
IHx8CiAgICAgICAgICAgICAgICAgbm9kZS0+aXNCaW5hcnlVc2VLaW5kKEludDUyUmVwVXNlKSB8
fAorICAgICAgICAgICAgICAgIG5vZGUtPmlzQmluYXJ5VXNlS2luZChCaWdJbnQzMlVzZSkgfHwK
KyAgICAgICAgICAgICAgICBub2RlLT5pc0JpbmFyeVVzZUtpbmQoSGVhcEJpZ0ludFVzZSkgfHwK
KyAgICAgICAgICAgICAgICBub2RlLT5pc0JpbmFyeVVzZUtpbmQoQW55QmlnSW50VXNlKSB8fAog
ICAgICAgICAgICAgICAgIG5vZGUtPmlzQmluYXJ5VXNlS2luZChTdHJpbmdVc2UpIHx8CiAgICAg
ICAgICAgICAgICAgbm9kZS0+aXNCaW5hcnlVc2VLaW5kKEJvb2xlYW5Vc2UpIHx8CiAgICAgICAg
ICAgICAgICAgbm9kZS0+aXNCaW5hcnlVc2VLaW5kKFN5bWJvbFVzZSkgfHwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRleCBlNjQwOWEzMGRjNmNhNTdjMDg4NDkxY2Nh
NTY2ZTAyMjE4YzNjNDExLi41Nzc4ZDdkYjQyOGUxNWQzYWVlNDg0YTA1ZWRhMzBlNGRjYWNhYjVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCkBAIC00MzQsMTEgKzQz
NCwxNCBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBD
b21wYXJlTGVzc0VxOgogICAgIGNhc2UgQ29tcGFyZUdyZWF0ZXI6CiAgICAgY2FzZSBDb21wYXJl
R3JlYXRlckVxOgorICAgICAgICAvLyBGSVhNRTogQWRkIEFueUJpZ0ludFVzZSBhbmQgSGVhcEJp
Z0ludFVzZSBzcGVjaWZpYyBvcHRpbWl6YXRpb25zIGluIERGRyAvIEZUTCBjb2RlIGdlbmVyYXRp
b24gYW5kIGVuc3VyZSBpdCBkb2VzIG5vdCBwZXJmb3JtIEdDLgorICAgICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwOTIzCiAgICAgICAgIGlmIChub2Rl
LT5pc0JpbmFyeVVzZUtpbmQoSW50MzJVc2UpCiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAg
ICAgIHx8IG5vZGUtPmlzQmluYXJ5VXNlS2luZChJbnQ1MlJlcFVzZSkKICNlbmRpZgogICAgICAg
ICAgICAgfHwgbm9kZS0+aXNCaW5hcnlVc2VLaW5kKERvdWJsZVJlcFVzZSkKKyAgICAgICAgICAg
IHx8IG5vZGUtPmlzQmluYXJ5VXNlS2luZChCaWdJbnQzMlVzZSkKICAgICAgICAgICAgIHx8IG5v
ZGUtPmlzQmluYXJ5VXNlS2luZChTdHJpbmdJZGVudFVzZSkKICAgICAgICAgICAgICkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVw
UGhhc2UuY3BwCmluZGV4IGFiN2JhOTk2YzFmNWZmYmE2YzY4Yzk1ODA3ZTg4Nzg1ZWZhODZiNmEu
LjNhZDQwZWM2ZDdhZGQyODBkYWUyNTA0ZGRlZTc5NjZhZmVkNjc4NTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtODcyLDYgKzg3MiwyNiBAQCBj
bGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgICAgICBub2RlLT5j
bGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQorICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUhlYXBCaWdJ
bnQobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBub2RlLT5jaGlsZDIoKS5ub2RlKCkpKSB7CisgICAg
ICAgICAgICAgICAgZml4RWRnZTxIZWFwQmlnSW50VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAg
ICAgICAgICAgICAgZml4RWRnZTxIZWFwQmlnSW50VXNlPihub2RlLT5jaGlsZDIoKSk7CisgICAg
ICAgICAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisjaWYgVVNFKEJJR0lOVDMyKQorICAgICAg
ICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKG5vZGUtPmNoaWxkMSgpLm5v
ZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgpKSkgeworICAgICAgICAgICAgICAgIGZpeEVkZ2U8
QmlnSW50MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBmaXhFZGdlPEJp
Z0ludDMyVXNlPihub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICAgICAgbm9kZS0+Y2xlYXJG
bGFncyhOb2RlTXVzdEdlbmVyYXRlKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlQmlnSW50KG5vZGUt
PmNoaWxkMSgpLm5vZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgpKSkgeworICAgICAgICAgICAg
ICAgIGZpeEVkZ2U8QW55QmlnSW50VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAg
ICAgZml4RWRnZTxBbnlCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgICAg
ICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICAgICAgaWYgKE5vZGU6OnNob3Vs
ZFNwZWN1bGF0ZU51bWJlck9yQm9vbGVhbihub2RlLT5jaGlsZDEoKS5ub2RlKCksIG5vZGUtPmNo
aWxkMigpLm5vZGUoKSkpIHsKICAgICAgICAgICAgICAgICBmaXhEb3VibGVPckJvb2xlYW5FZGdl
KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgICAgICBmaXhEb3VibGVPckJvb2xlYW5FZGdl
KG5vZGUtPmNoaWxkMigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHAKaW5kZXggMTQ0NThjNWRkYTYwOGI5NDIxNTc0MWM1NzI0NGYyZDdhMjE0
YTg4NC4uN2Y0ZjdhMWYxODQwMzVjNGRhMjZmZDE2NjYyODZjMmQ4NzZhZWI0NSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTQwMjgs
MTggKzQwMjgsMTYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQWRkKE5vZGUq
IG5vZGUpCiAgICAgaWYgKG5vZGUtPmlzQmluYXJ5VXNlS2luZChCaWdJbnQzMlVzZSkpIHsKICAg
ICAgICAgU3BlY3VsYXRlQmlnSW50MzJPcGVyYW5kIGxlZnQodGhpcywgbGVmdENoaWxkKTsKICAg
ICAgICAgU3BlY3VsYXRlQmlnSW50MzJPcGVyYW5kIHJpZ2h0KHRoaXMsIHJpZ2h0Q2hpbGQpOwot
Ci0gICAgICAgIC8vIEZJWE1FOiBkbyB3ZSByZWFsbHkgbmVlZCB0aGlzIGV4dHJhIHJlZ2lzdGVy
LCBvciBjYW4gd2UgbXV0YXRlIGxlZnQvcmlnaHQgPwotICAgICAgICAvLyBGSVhNRTogYWxzbywg
bG9vayBpbnRvIFJldXNlIGFuZCBvdGhlciB0cmlja3MgZm9yIGEgbW9yZSBlZmZpY2llbnQgZ2Vu
ZXJhdGVkIGNvZGUuCiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7Ci0gICAgICAg
IEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSB0
ZW1wKHRoaXMpOworCisgICAgICAgIEdQUlJlZyBsZWZ0R1BSID0gbGVmdC5ncHIoKTsKKyAgICAg
ICAgR1BSUmVnIHJpZ2h0R1BSID0gcmlnaHQuZ3ByKCk7CisgICAgICAgIEdQUlJlZyByZXN1bHRH
UFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgICAgIEdQUlJlZyB0ZW1wR1BSID0gdGVtcC5ncHIoKTsK
IAotICAgICAgICBtX2ppdC5tb3ZlKGxlZnQuZ3ByKCksIHJlc3VsdEdQUik7Ci0gICAgICAgIG1f
aml0LnVuYm94QmlnSW50MzIocmVzdWx0R1BSKTsKLSAgICAgICAgbV9qaXQubW92ZShyaWdodC5n
cHIoKSwgdGVtcEdQUik7Ci0gICAgICAgIG1faml0LnVuYm94QmlnSW50MzIodGVtcEdQUik7Cisg
ICAgICAgIG1faml0LnVuYm94QmlnSW50MzIobGVmdEdQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAg
bV9qaXQudW5ib3hCaWdJbnQzMihyaWdodEdQUiwgdGVtcEdQUik7CiAKICAgICAgICAgLy8gRklY
TUU6IGFkZCBzb21lIHdheSB0byBlbGltaW5hdGUgdGhlIG92ZXJmbG93IGNoZWNrCiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpKdW1wIGNoZWNrID0gbV9qaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3Nl
bWJsZXI6Ok92ZXJmbG93LCByZXN1bHRHUFIsIHRlbXBHUFIsIHJlc3VsdEdQUik7CkBAIC00MTM0
LDE4ICs0MTMyLDE2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZVN1YihOb2Rl
KiBub2RlKQogICAgIGlmIChub2RlLT5iaW5hcnlVc2VLaW5kKCkgPT0gQmlnSW50MzJVc2UpIHsK
ICAgICAgICAgU3BlY3VsYXRlQmlnSW50MzJPcGVyYW5kIGxlZnQodGhpcywgbm9kZS0+Y2hpbGQx
KCkpOwogICAgICAgICBTcGVjdWxhdGVCaWdJbnQzMk9wZXJhbmQgcmlnaHQodGhpcywgbm9kZS0+
Y2hpbGQyKCkpOwotCi0gICAgICAgIC8vIEZJWE1FOiBkbyB3ZSByZWFsbHkgbmVlZCB0aGlzIGV4
dHJhIHJlZ2lzdGVyLCBvciBjYW4gd2UgbXV0YXRlIGxlZnQvcmlnaHQgPwotICAgICAgICAvLyBG
SVhNRTogYWxzbywgbG9vayBpbnRvIFJldXNlIGFuZCBvdGhlciB0cmlja3MgZm9yIGEgbW9yZSBl
ZmZpY2llbnQgZ2VuZXJhdGVkIGNvZGUuCiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhp
cyk7Ci0gICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgICAgIEdQ
UlRlbXBvcmFyeSB0ZW1wKHRoaXMpOworCisgICAgICAgIEdQUlJlZyBsZWZ0R1BSID0gbGVmdC5n
cHIoKTsKKyAgICAgICAgR1BSUmVnIHJpZ2h0R1BSID0gcmlnaHQuZ3ByKCk7CisgICAgICAgIEdQ
UlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgICAgIEdQUlJlZyB0ZW1wR1BSID0g
dGVtcC5ncHIoKTsKIAotICAgICAgICBtX2ppdC5tb3ZlKGxlZnQuZ3ByKCksIHJlc3VsdEdQUik7
Ci0gICAgICAgIG1faml0LnVuYm94QmlnSW50MzIocmVzdWx0R1BSKTsKLSAgICAgICAgbV9qaXQu
bW92ZShyaWdodC5ncHIoKSwgdGVtcEdQUik7Ci0gICAgICAgIG1faml0LnVuYm94QmlnSW50MzIo
dGVtcEdQUik7CisgICAgICAgIG1faml0LnVuYm94QmlnSW50MzIobGVmdEdQUiwgcmVzdWx0R1BS
KTsKKyAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQzMihyaWdodEdQUiwgdGVtcEdQUik7CiAKICAg
ICAgICAgLy8gRklYTUU6IGFkZCBzb21lIHdheSB0byBlbGltaW5hdGUgdGhlIG92ZXJmbG93IGNo
ZWNrCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGNoZWNrID0gbV9qaXQuYnJhbmNoU3Vi
MzIoTWFjcm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCByZXN1bHRHUFIsIHRlbXBHUFIsIHJlc3VsdEdQ
Uik7CkBAIC00OTg0LDE4ICs0OTgwLDE2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVW
YWx1ZU11bChOb2RlKiBub2RlKQogICAgICAgICAvLyBGSVhNRTogdGhlIGNvZGUgYmV0d2VlbiBj
b21waWxlVmFsdWVBZGQsIGNvbXBpbGVWYWx1ZVN1YiBhbmQgY29tcGlsZVZhbHVlTXVsIGZvciBC
aWdJbnQzMiBpcyBuZWFybHkgaWRlbnRpY2FsLCBzbyB0cnkgdG8gZ2V0IHJpZCBvZiB0aGUgZHVw
bGljYXRpb24uCiAgICAgICAgIFNwZWN1bGF0ZUJpZ0ludDMyT3BlcmFuZCBsZWZ0KHRoaXMsIG5v
ZGUtPmNoaWxkMSgpKTsKICAgICAgICAgU3BlY3VsYXRlQmlnSW50MzJPcGVyYW5kIHJpZ2h0KHRo
aXMsIG5vZGUtPmNoaWxkMigpKTsKLQotICAgICAgICAvLyBGSVhNRTogZG8gd2UgcmVhbGx5IG5l
ZWQgdGhpcyBleHRyYSByZWdpc3Rlciwgb3IgY2FuIHdlIG11dGF0ZSBsZWZ0L3JpZ2h0ID8KLSAg
ICAgICAgLy8gRklYTUU6IGFsc28sIGxvb2sgaW50byBSZXVzZSBhbmQgb3RoZXIgdHJpY2tzIGZv
ciBhIG1vcmUgZWZmaWNpZW50IGdlbmVyYXRlZCBjb2RlLgogICAgICAgICBHUFJUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMpOwotICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwog
ICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcCh0aGlzKTsKKworICAgICAgICBHUFJSZWcgbGVmdEdQ
UiA9IGxlZnQuZ3ByKCk7CisgICAgICAgIEdQUlJlZyByaWdodEdQUiA9IHJpZ2h0LmdwcigpOwor
ICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogICAgICAgICBHUFJSZWcg
dGVtcEdQUiA9IHRlbXAuZ3ByKCk7CiAKLSAgICAgICAgbV9qaXQubW92ZShsZWZ0LmdwcigpLCBy
ZXN1bHRHUFIpOwotICAgICAgICBtX2ppdC51bmJveEJpZ0ludDMyKHJlc3VsdEdQUik7Ci0gICAg
ICAgIG1faml0Lm1vdmUocmlnaHQuZ3ByKCksIHRlbXBHUFIpOwotICAgICAgICBtX2ppdC51bmJv
eEJpZ0ludDMyKHRlbXBHUFIpOworICAgICAgICBtX2ppdC51bmJveEJpZ0ludDMyKGxlZnRHUFIs
IHJlc3VsdEdQUik7CisgICAgICAgIG1faml0LnVuYm94QmlnSW50MzIocmlnaHRHUFIsIHRlbXBH
UFIpOwogCiAgICAgICAgIC8vIEZJWE1FOiBhZGQgc29tZSB3YXkgdG8gZWxpbWluYXRlIHRoZSBv
dmVyZmxvdyBjaGVjawogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBjaGVjayA9IG1faml0
LmJyYW5jaE11bDMyKE1hY3JvQXNzZW1ibGVyOjpPdmVyZmxvdywgcmVzdWx0R1BSLCB0ZW1wR1BS
LCByZXN1bHRHUFIpOwpAQCAtNjI1Miw2ICs2MjQ2LDcgQEAgYm9vbCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGFyZShOb2RlKiBub2RlLCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlvbiBj
b24KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICNlbmRpZgorCiAjaWYgVVNFKEpTVkFM
VUU2NCkKICAgICBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEludDUyUmVwVXNlKSkgewogICAg
ICAgICBjb21waWxlSW50NTJDb21wYXJlKG5vZGUsIGNvbmRpdGlvbik7CkBAIC02MzIwLDcgKzYz
MTUsNyBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpjb21wYXJlKE5vZGUqIG5vZGUsIE1hY3JvQXNz
ZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbgogICAgICAgICB9CiAgICAgfQogCi0gICAg
bm9uU3BlY3VsYXRpdmVOb25QZWVwaG9sZUNvbXBhcmUobm9kZSwgY29uZGl0aW9uLCBvcGVyYXRp
b24pOworICAgIGdlbmVyaWNKU1ZhbHVlTm9uUGVlcGhvbGVDb21wYXJlKG5vZGUsIGNvbmRpdGlv
biwgb3BlcmF0aW9uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTE0MTE1LDExICsxNDEx
MCwxMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKENvZGVPcmlnaW4gY29k
ZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEpTVmFsdQogICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9y
KFdURk1vdmUoc2xvd1BhdGgpKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6bm9uU3BlY3Vs
YXRpdmVOb25QZWVwaG9sZUNvbXBhcmUoTm9kZSogbm9kZSwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0
aW9uYWxDb25kaXRpb24gY29uZCwgU19KSVRPcGVyYXRpb25fR0pKIGhlbHBlckZ1bmN0aW9uKQor
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Z2VuZXJpY0pTVmFsdWVOb25QZWVwaG9sZUNvbXBhcmUoTm9k
ZSogbm9kZSwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24gY29uZCwgU19KSVRP
cGVyYXRpb25fR0pKIGhlbHBlckZ1bmN0aW9uKQogewotICAgIEFTU0VSVChub2RlLT5pc0JpbmFy
eVVzZUtpbmQoVW50eXBlZFVzZSkpOwotICAgIEpTVmFsdWVPcGVyYW5kIGFyZzEodGhpcywgbm9k
ZS0+Y2hpbGQxKCkpOwotICAgIEpTVmFsdWVPcGVyYW5kIGFyZzIodGhpcywgbm9kZS0+Y2hpbGQy
KCkpOworICAgIEFTU0VSVChub2RlLT5pc0JpbmFyeVVzZUtpbmQoVW50eXBlZFVzZSkgfHwgbm9k
ZS0+aXNCaW5hcnlVc2VLaW5kKEFueUJpZ0ludFVzZSkgfHwgbm9kZS0+aXNCaW5hcnlVc2VLaW5k
KEhlYXBCaWdJbnRVc2UpKTsKKyAgICBKU1ZhbHVlT3BlcmFuZCBhcmcxKHRoaXMsIG5vZGUtPmNo
aWxkMSgpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgIEpTVmFsdWVPcGVyYW5kIGFy
ZzIodGhpcywgbm9kZS0+Y2hpbGQyKCksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7CisgICAg
c3BlY3VsYXRlKG5vZGUsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBzcGVjdWxhdGUobm9kZSwgbm9k
ZS0+Y2hpbGQyKCkpOwogCiAgICAgSlNWYWx1ZVJlZ3MgYXJnMVJlZ3MgPSBhcmcxLmpzVmFsdWVS
ZWdzKCk7CiAgICAgSlNWYWx1ZVJlZ3MgYXJnMlJlZ3MgPSBhcmcyLmpzVmFsdWVSZWdzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggMGUy
NTc1ZDFjNjQ1ODI5YjA2MDhhNzhlNjUxYWVjMjM2YzViY2NiYS4uNWFjZTUyNTVlZDAyNzY1MzVk
YTFmYTY4YmY4YzA5ZDJhYWZlYzk5OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuaApAQCAtNzQzLDcgKzc0Myw3IEBAIGNsYXNzIFNwZWN1bGF0aXZl
SklUIHsKICAgICB2b2lkIG5vblNwZWN1bGF0aXZlUGVlcGhvbGVCcmFuY2hOdWxsT3JVbmRlZmlu
ZWQoRWRnZSBvcGVyYW5kLCBOb2RlKiBicmFuY2hOb2RlKTsKICAgICAKICAgICB2b2lkIG5vblNw
ZWN1bGF0aXZlUGVlcGhvbGVCcmFuY2goTm9kZSosIE5vZGUqIGJyYW5jaE5vZGUsIE1hY3JvQXNz
ZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uLCBTX0pJVE9wZXJhdGlvbl9HSkogaGVscGVyRnVu
Y3Rpb24pOwotICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVOb25QZWVwaG9sZUNvbXBhcmUoTm9kZSos
IE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uLCBTX0pJVE9wZXJhdGlvbl9HSkog
aGVscGVyRnVuY3Rpb24pOworICAgIHZvaWQgZ2VuZXJpY0pTVmFsdWVOb25QZWVwaG9sZUNvbXBh
cmUoTm9kZSosIE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uLCBTX0pJVE9wZXJh
dGlvbl9HSkogaGVscGVyRnVuY3Rpb24pOwogICAgIAogICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVQ
ZWVwaG9sZVN0cmljdEVxKE5vZGUqLCBOb2RlKiBicmFuY2hOb2RlLCBib29sIGludmVydCA9IGZh
bHNlKTsKICAgICB2b2lkIGdlbmVyaWNKU1ZhbHVlTm9uUGVlcGhvbGVTdHJpY3RFcShOb2RlKiwg
Ym9vbCBpbnZlcnQgPSBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAzNzg4M2QzOGE2YmMwYzllZTEzN2NkZjkxODI0
MDQ2ZmU5OTkxMzdhLi5iOGQzYTUzYTczYTE2MTA3MTYxM2FjZTIzZTU1YzBjMTgwMTA5MTY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKQEAgLTE3NTMsMjEgKzE3NTMsMTYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUJp
Z0ludDMyQ29tcGFyZShOb2RlKiBub2RlLCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb24KIAogICAg
IGlmIChjb25kaXRpb24gPT0gTWFjcm9Bc3NlbWJsZXI6OkVxdWFsIHx8IGNvbmRpdGlvbiA9PSBN
YWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwpIHsKICAgICAgICAgLy8gTm8gbmVlZCB0byB1bmJveCB0
aGUgb3BlcmFuZHMsIHNpbmNlIHRoZSB0YWcgYml0cyBhcmUgaWRlbnRpY2FsCi0gICAgICAgIG1f
aml0LmNvbXBhcmU2NChjb25kaXRpb24sIG9wMS5ncHIoKSwgb3AyLmdwcigpLCByZXN1bHQuZ3By
KCkpOworICAgICAgICBtX2ppdC5jb21wYXJlNjQoY29uZGl0aW9uLCBvcDFHUFIsIG9wMkdQUiwg
cmVzdWx0R1BSKTsKICAgICB9IGVsc2UgewogICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcCh0aGlz
KTsKICAgICAgICAgR1BSUmVnIHRlbXBHUFIgPSB0ZW1wLmdwcigpOwogCi0gICAgICAgIG1faml0
Lm1vdmUob3AxR1BSLCB0ZW1wR1BSKTsKLSAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQzMih0ZW1w
R1BSKTsKLSAgICAgICAgbV9qaXQubW92ZShvcDJHUFIsIHJlc3VsdEdQUik7Ci0gICAgICAgIG1f
aml0LnVuYm94QmlnSW50MzIocmVzdWx0R1BSKTsKLSAgICAgICAgbV9qaXQuY29tcGFyZTY0KGNv
bmRpdGlvbiwgdGVtcEdQUiwgcmVzdWx0R1BSLCByZXN1bHRHUFIpOworICAgICAgICBtX2ppdC51
bmJveEJpZ0ludDMyKG9wMUdQUiwgdGVtcEdQUik7CisgICAgICAgIG1faml0LnVuYm94QmlnSW50
MzIob3AyR1BSLCByZXN1bHRHUFIpOworICAgICAgICBtX2ppdC5jb21wYXJlMzIoY29uZGl0aW9u
LCB0ZW1wR1BSLCByZXN1bHRHUFIsIHJlc3VsdEdQUik7CiAgICAgfQotCi0gICAgLy8gSWYgd2Ug
YWRkIGEgRGF0YUZvcm1hdEJvb2wsIHdlIHNob3VsZCB1c2UgaXQgaGVyZS4KLSAgICBtX2ppdC5v
cjMyKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpWYWx1ZUZhbHNlKSwgcmVzdWx0LmdwcigpKTsKLSAg
ICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5ncHIoKSwgbV9jdXJyZW50Tm9kZSwgRGF0YUZvcm1hdEpT
Qm9vbGVhbik7CisgICAgdW5ibGVzc2VkQm9vbGVhblJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwog
fQogCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVCaWdJbnQzMkJyYW5jaChO
b2RlKiBub2RlLCBOb2RlKiBicmFuY2hOb2RlLCBKSVRDb21waWxlcjo6UmVsYXRpb25hbENvbmRp
dGlvbiBjb25kaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAKaW5kZXggMDkzYmQ1ODdlNTI2MDE4Y2NmODEwYjYzYTE3NDljODc2M2M0NmI2Ny4u
NTg3MzI2NjZlZDhhNTU5ZjUxMmRkZmJiNTM5ZmVjODAwZDg2N2JiNiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtODY2MSw3ICs4NjYxLDcg
QEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgfQogCiAgICAgICAgIERGR19BU1NFUlQo
bV9ncmFwaCwgbV9ub2RlLCBtX25vZGUtPmlzQmluYXJ5VXNlS2luZChVbnR5cGVkVXNlKSwgbV9u
b2RlLT5jaGlsZDEoKS51c2VLaW5kKCksIG1fbm9kZS0+Y2hpbGQyKCkudXNlS2luZCgpKTsKLSAg
ICAgICAgbm9uU3BlY3VsYXRpdmVDb21wYXJlKAorICAgICAgICBnZW5lcmljSlNWYWx1ZUNvbXBh
cmUoCiAgICAgICAgICAgICBbJl0gKExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpIHsKICAgICAg
ICAgICAgICAgICByZXR1cm4gbV9vdXQuZXF1YWwobGVmdCwgcmlnaHQpOwogICAgICAgICAgICAg
fSwKQEAgLTg5NDksNyArODk0OSw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAKICAgICAgICAg
Ly8gRklYTUU6IHdlIGNhbiBkbyBzb21ldGhpbmcgbXVjaCBzbWFydGVyIGhlcmUsIHNlZSB0aGUg
REZHU3BlY3VsYXRpdmVKSVQgYXBwcm9hY2ggaW4gZS5nLiBTcGVjdWxhdGl2ZUpJVDo6bm9uU3Bl
Y3VsYXRpdmVQZWVwaG9sZVN0cmljdEVxCiAgICAgICAgIERGR19BU1NFUlQobV9ncmFwaCwgbV9u
b2RlLCBtX25vZGUtPmlzQmluYXJ5VXNlS2luZChVbnR5cGVkVXNlKSwgbV9ub2RlLT5jaGlsZDEo
KS51c2VLaW5kKCksIG1fbm9kZS0+Y2hpbGQyKCkudXNlS2luZCgpKTsKLSAgICAgICAgbm9uU3Bl
Y3VsYXRpdmVDb21wYXJlKAorICAgICAgICBnZW5lcmljSlNWYWx1ZUNvbXBhcmUoCiAgICAgICAg
ICAgICBbJl0gKExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQpIHsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gbV9vdXQuZXF1YWwobGVmdCwgcmlnaHQpOwogICAgICAgICAgICAgfSwKQEAgLTEzNTU2
LDYgKzEzNTU2LDEzIEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAorICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoQmlnSW50
MzJVc2UpKSB7CisgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0JpZ0ludDMyKG1fbm9kZS0+
Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93QmlnSW50MzIobV9ub2Rl
LT5jaGlsZDIoKSk7CisgICAgICAgICAgICBzZXRCb29sZWFuKGludEZ1bmN0b3IodW5ib3hCaWdJ
bnQzMihsZWZ0KSwgdW5ib3hCaWdJbnQzMihyaWdodCkpKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCiAgICAgICAgIGlmIChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChTdHJpbmdJ
ZGVudFVzZSkpIHsKICAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93U3RyaW5nSWRlbnQobV9u
b2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dTdHJpbmdJZGVu
dChtX25vZGUtPmNoaWxkMigpKTsKQEAgLTEzNTc2LDggKzEzNTgzLDggQEAgY2xhc3MgTG93ZXJE
RkdUb0IzIHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIERGR19B
U1NFUlQobV9ncmFwaCwgbV9ub2RlLCBtX25vZGUtPmlzQmluYXJ5VXNlS2luZChVbnR5cGVkVXNl
KSwgbV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCksIG1fbm9kZS0+Y2hpbGQyKCkudXNlS2luZCgp
KTsKLSAgICAgICAgbm9uU3BlY3VsYXRpdmVDb21wYXJlKGludEZ1bmN0b3IsIGZhbGxiYWNrRnVu
Y3Rpb24pOworICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwgbV9ub2RlLT5pc0Jp
bmFyeVVzZUtpbmQoVW50eXBlZFVzZSkgfHwgbV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoSGVhcEJp
Z0ludFVzZSkgfHwgbV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoQW55QmlnSW50VXNlKSwgbV9ub2Rl
LT5jaGlsZDEoKS51c2VLaW5kKCksIG1fbm9kZS0+Y2hpbGQyKCkudXNlS2luZCgpKTsKKyAgICAg
ICAgZ2VuZXJpY0pTVmFsdWVDb21wYXJlKGludEZ1bmN0b3IsIGZhbGxiYWNrRnVuY3Rpb24pOwog
ICAgIH0KIAogICAgIHZvaWQgY29tcGlsZVN0cmluZ1NsaWNlKCkKQEAgLTE0NTQ3LDExICsxNDU1
NCwxMyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEludEZ1bmN0b3I+Ci0gICAgdm9pZCBub25TcGVjdWxhdGl2ZUNvbXBhcmUoY29uc3QgSW50
RnVuY3RvciYgaW50RnVuY3RvciwgU19KSVRPcGVyYXRpb25fR0pKIGhlbHBlckZ1bmN0aW9uKQor
ICAgIHZvaWQgZ2VuZXJpY0pTVmFsdWVDb21wYXJlKGNvbnN0IEludEZ1bmN0b3ImIGludEZ1bmN0
b3IsIFNfSklUT3BlcmF0aW9uX0dKSiBoZWxwZXJGdW5jdGlvbikKICAgICB7CiAgICAgICAgIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX25v
ZGUtPm9yaWdpbi5zZW1hbnRpYyk7Ci0gICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93SlNWYWx1ZSht
X25vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SlNWYWx1ZShtX25v
ZGUtPmNoaWxkMigpKTsKKyAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+
Y2hpbGQxKCksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7CisgICAgICAgIExWYWx1ZSByaWdo
dCA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDIoKSwgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9u
KTsKKyAgICAgICAgc3BlY3VsYXRlKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBzcGVjdWxh
dGUobV9ub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgIAogICAgICAgICBMQmFzaWNCbG9jayBsZWZ0
SXNJbnQgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBmYXN0UGF0aCA9
IG1fb3V0Lm5ld0Jsb2NrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuaAppbmRleCA0OTVmMzBkMjNiMzkyYTIxOTNmOWE2N2I0NjZjYTc4ZThjZjg3NzA1Li45
MmNhMTRlOWUzM2FlMDIyOTI0Y2Q0MmQ0NjMxYzI1YWE5MDE3ODcxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTEzOTgsOSArMTM5OCwxNCBAQCBj
bGFzcyBBc3NlbWJseUhlbHBlcnMgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXIgewogI2VuZGlmIC8v
IFVTRShKU1ZBTFVFNjQpCiAKICNpZiBVU0UoQklHSU5UMzIpCi0gICAgdm9pZCB1bmJveEJpZ0lu
dDMyKEdQUlJlZyBncHIpCisgICAgdm9pZCB1bmJveEJpZ0ludDMyKEdQUlJlZyBzcmMsIEdQUlJl
ZyBkZXN0KQogICAgIHsKLSAgICAgICAgdXJzaGlmdDY0KHRydXN0ZWRJbW0zMkZvclNoaWZ0KElt
bTMyKDE2KSksIGdwcik7CisjaWYgQ1BVKEFSTTY0KQorICAgICAgICB1cnNoaWZ0NjQoc3JjLCB0
cnVzdGVkSW1tMzJGb3JTaGlmdChJbW0zMigxNikpLCBkZXN0KTsKKyNlbHNlCisgICAgICAgIG1v
dmUoc3JjLCBkZXN0KTsKKyAgICAgICAgdXJzaGlmdDY0KHRydXN0ZWRJbW0zMkZvclNoaWZ0KElt
bTMyKDE2KSksIGRlc3QpOworI2VuZGlmCiAgICAgfQogCiAgICAgdm9pZCBib3hCaWdJbnQzMihH
UFJSZWcgZ3ByKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
aWdJbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCmlu
ZGV4IGE4YTMwODQ0MDUyMGZjNDE2MDQzMDMwZDM3ZGUwNTRhOGUzYWFkZDIuLmI3YTRiZDlmZDY5
MWY1ZjU1OGYxZmI4ODVkZTQxMzhjMzE3MDMxMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0JpZ0ludC5jcHAKQEAgLTIwMjAsNiArMjAyMCwzNCBAQCBib29sIEpTQmlnSW50
OjplcXVhbHNUb0ludDMyKGludDMyX3QgdmFsdWUpCiAgICAgcmV0dXJuICh0aGlzLT5sZW5ndGgo
KSA9PSAxKSAmJiAodGhpcy0+c2lnbigpID09ICh2YWx1ZSA8IDApKSAmJiAodGhpcy0+ZGlnaXQo
MCkgPT0gc3RhdGljX2Nhc3Q8RGlnaXQ+KHN0ZDo6YWJzKHN0YXRpY19jYXN0PGludDY0X3Q+KHZh
bHVlKSkpKTsKIH0KIAorSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQgSlNCaWdJbnQ6OmNvbXBh
cmVUb0ludDMyKGludDMyX3QgdmFsdWUpCit7CisgICAgYm9vbCB4U2lnbiA9IHNpZ24oKTsKKyAg
ICBib29sIHlTaWduID0gdmFsdWUgPCAwOworCisgICAgaWYgKHhTaWduICE9IHlTaWduKQorICAg
ICAgICByZXR1cm4geFNpZ24gPyBDb21wYXJpc29uUmVzdWx0OjpMZXNzVGhhbiA6IENvbXBhcmlz
b25SZXN1bHQ6OkdyZWF0ZXJUaGFuOworICAgIGlmIChpc1plcm8oKSkgeworICAgICAgICBpZiAo
dmFsdWUgPT0gMCkKKyAgICAgICAgICAgIHJldHVybiBDb21wYXJpc29uUmVzdWx0OjpFcXVhbDsK
KyAgICAgICAgcmV0dXJuIENvbXBhcmlzb25SZXN1bHQ6Okxlc3NUaGFuOworICAgIH0KKworICAg
IGlmIChsZW5ndGgoKSAhPSAxKQorICAgICAgICByZXR1cm4geFNpZ24gPyBDb21wYXJpc29uUmVz
dWx0OjpMZXNzVGhhbiA6IENvbXBhcmlzb25SZXN1bHQ6OkdyZWF0ZXJUaGFuOworCisgICAgdWlu
dDY0X3QgdmFsdWU2NCA9IDA7CisgICAgaWYgKHhTaWduKQorICAgICAgICB2YWx1ZTY0ID0gc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KC1zdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSkpOworICAgIGVs
c2UKKyAgICAgICAgdmFsdWU2NCA9IHZhbHVlOworICAgIGlmIChkaWdpdCgwKSA9PSB2YWx1ZTY0
KQorICAgICAgICByZXR1cm4gQ29tcGFyaXNvblJlc3VsdDo6RXF1YWw7CisgICAgaWYgKGRpZ2l0
KDApIDwgdmFsdWU2NCkKKyAgICAgICAgcmV0dXJuIHhTaWduID8gQ29tcGFyaXNvblJlc3VsdDo6
R3JlYXRlclRoYW4gOiBDb21wYXJpc29uUmVzdWx0OjpMZXNzVGhhbjsKKyAgICByZXR1cm4geFNp
Z24gPyBDb21wYXJpc29uUmVzdWx0OjpMZXNzVGhhbiA6IENvbXBhcmlzb25SZXN1bHQ6OkdyZWF0
ZXJUaGFuOworfQorCiBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdCBKU0JpZ0ludDo6Y29tcGFy
ZVRvRG91YmxlKEpTQmlnSW50KiB4LCBkb3VibGUgeSkKIHsKICAgICAvLyBUaGlzIGFsZ29yaXRo
bSBleHBlY3QgdGhhdCB0aGUgZG91YmxlIGZvcm1hdCBpcyBJRUVFIDc1NApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKaW5kZXggZWY4MGE1MWFmNTVlOWZiYjc3NzhjOTE4
MjJkZWNhMWU4ZTRjMDJjOS4uMjdjYmNmOTk0NDkwMzdjMGVhNTIwMDA3M2I0ODkxMjI1ZjgzNzEy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCkBAIC0xMjQsNiAr
MTI0LDkgQEAgY2xhc3MgSlNCaWdJbnQgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICBKU19F
WFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBlcXVhbHMoSlNCaWdJbnQqLCBKU0JpZ0ludCopOwog
ICAgIGJvb2wgZXF1YWxzVG9OdW1iZXIoSlNWYWx1ZSk7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
Ym9vbCBlcXVhbHNUb0ludDMyKGludDMyX3QpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIENvbXBh
cmlzb25SZXN1bHQgY29tcGFyZVRvSW50MzIoaW50MzJfdCk7CisgICAgSlNfRVhQT1JUX1BSSVZB
VEUgYm9vbCBsZXNzVGhhbkludDMyKGludDMyX3QpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIGJv
b2wgbGVzc1RoYW5FcXVhbEludDMyKGludDMyX3QpOwogICAgIHN0YXRpYyBDb21wYXJpc29uUmVz
dWx0IGNvbXBhcmUoSlNCaWdJbnQqIHgsIEpTQmlnSW50KiB5KTsKIAogICAgIGJvb2wgZ2V0UHJp
bWl0aXZlTnVtYmVyKEpTR2xvYmFsT2JqZWN0KiwgZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHJl
c3VsdCkgY29uc3Q7CkBAIC0yODcsNCArMjkwLDE2IEBAIGlubGluZSB2b2lkIEpTQmlnSW50Ojpz
ZXREaWdpdCh1bnNpZ25lZCBuLCBEaWdpdCB2YWx1ZSkKICAgICBkYXRhU3RvcmFnZSgpW25dID0g
dmFsdWU7CiB9CiAKK0FMV0FZU19JTkxJTkUgSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQgc3dh
cEJpZ0ludENvbXBhcmVSZXN1bHQoSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQgY29tcGFyaXNv
blJlc3VsdCkKK3sKKyAgICBzd2l0Y2ggKGNvbXBhcmlzb25SZXN1bHQpIHsKKyAgICBjYXNlIEpT
QmlnSW50OjpDb21wYXJpc29uUmVzdWx0OjpHcmVhdGVyVGhhbjoKKyAgICAgICAgcmV0dXJuIEpT
QmlnSW50OjpDb21wYXJpc29uUmVzdWx0OjpMZXNzVGhhbjsKKyAgICBjYXNlIEpTQmlnSW50OjpD
b21wYXJpc29uUmVzdWx0OjpMZXNzVGhhbjoKKyAgICAgICAgcmV0dXJuIEpTQmlnSW50OjpDb21w
YXJpc29uUmVzdWx0OjpHcmVhdGVyVGhhbjsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4g
Y29tcGFyaXNvblJlc3VsdDsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCmluZGV4IDE3N2VkYTBlOTljODA3
MDFhYWUwYzY1YTYzNjVjNmRiNTE1ZTczNDAuLmIwNDVhMmRjYzAyMzFhM2MyOWQ2YjY3NjEwMGZi
MDkyNzU1ZDlhM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
ZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25z
LmgKQEAgLTI5MywzOCArMjkzLDI5IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBiaWdJbnRDb21wYXJl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgdjEsIEpTVmFsCiAgICAgfQog
I2VuZGlmCiAKLSAgICBKU0JpZ0ludCogdjFIZWFwQmlnSW50ID0gbnVsbHB0cjsKLSAgICBKU0Jp
Z0ludCogdjJIZWFwQmlnSW50ID0gbnVsbHB0cjsKLSAgICAvLyBGSVhNRTogaGF2ZSBzb21lIGZh
c3QtaXNoIHBhdGggZm9yIGEgY29tcGFyaXNvbiBiZXR3ZWVuIGEgc21hbGwgYW5kIGEgbGFyZ2Ug
YmlnLWludAotICAgIGlmICh2MS5pc0hlYXBCaWdJbnQoKSkKLSAgICAgICAgdjFIZWFwQmlnSW50
ID0gdjEuYXNIZWFwQmlnSW50KCk7CisgICAgaWYgKHYxLmlzSGVhcEJpZ0ludCgpKSB7CisgICAg
ICAgIGF1dG8qIHYxSGVhcEJpZ0ludCA9IHYxLmFzSGVhcEJpZ0ludCgpOworICAgICAgICBpZiAo
djIuaXNIZWFwQmlnSW50KCkpCisgICAgICAgICAgICByZXR1cm4gYmlnSW50Q29tcGFyZVJlc3Vs
dChKU0JpZ0ludDo6Y29tcGFyZSh2MUhlYXBCaWdJbnQsIHYyLmFzSGVhcEJpZ0ludCgpKSwgY29t
cGFyaXNvbk1vZGUpOwogI2lmIFVTRShCSUdJTlQzMikKLSAgICBlbHNlIGlmICh2MS5pc0JpZ0lu
dDMyKCkpCi0gICAgICAgIHYxSGVhcEJpZ0ludCA9IEpTQmlnSW50OjpjcmVhdGVGcm9tKHZtLCB2
MS5iaWdJbnQzMkFzSW50MzIoKSk7CisgICAgICAgIGlmICh2Mi5pc0JpZ0ludDMyKCkpCisgICAg
ICAgICAgICByZXR1cm4gYmlnSW50Q29tcGFyZVJlc3VsdCh2MUhlYXBCaWdJbnQtPmNvbXBhcmVU
b0ludDMyKHYyLmJpZ0ludDMyQXNJbnQzMigpKSwgY29tcGFyaXNvbk1vZGUpOwogI2VuZGlmCi0K
LSAgICBpZiAodjIuaXNIZWFwQmlnSW50KCkpCi0gICAgICAgIHYySGVhcEJpZ0ludCA9IHYyLmFz
SGVhcEJpZ0ludCgpOwotI2lmIFVTRShCSUdJTlQzMikKLSAgICBlbHNlIGlmICh2Mi5pc0JpZ0lu
dDMyKCkpCi0gICAgICAgIHYySGVhcEJpZ0ludCA9IEpTQmlnSW50OjpjcmVhdGVGcm9tKHZtLCB2
Mi5iaWdJbnQzMkFzSW50MzIoKSk7Ci0jZW5kaWYKLQotICAgIGlmICh2MUhlYXBCaWdJbnQgJiYg
djJIZWFwQmlnSW50KQotICAgICAgICByZXR1cm4gYmlnSW50Q29tcGFyZVJlc3VsdChKU0JpZ0lu
dDo6Y29tcGFyZSh2MUhlYXBCaWdJbnQsIHYySGVhcEJpZ0ludCksIGNvbXBhcmlzb25Nb2RlKTsK
LQotICAgIGlmICh2MUhlYXBCaWdJbnQpIHsKICAgICAgICAgYXV0byBjb21wYXJpc29uUmVzdWx0
ID0gY29tcGFyZUJpZ0ludFRvT3RoZXJQcmltaXRpdmUoZ2xvYmFsT2JqZWN0LCB2MUhlYXBCaWdJ
bnQsIHYyKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwogICAg
ICAgICByZXR1cm4gYmlnSW50Q29tcGFyZVJlc3VsdChjb21wYXJpc29uUmVzdWx0LCBjb21wYXJp
c29uTW9kZSk7CiAgICAgfQogCisgICAgLy8gSGVyZSB3ZSBjaGVjayBpbnZlcnRlZCBiZWNhdXNl
IEJpZ0ludCBpcyB0aGUgdjIKKyAgICBhdXRvKiB2MkhlYXBCaWdJbnQgPSB2Mi5hc0hlYXBCaWdJ
bnQoKTsKKyNpZiBVU0UoQklHSU5UMzIpCisgICAgaWYgKHYxLmlzQmlnSW50MzIoKSkKKyAgICAg
ICAgcmV0dXJuIGJpZ0ludENvbXBhcmVSZXN1bHQoc3dhcEJpZ0ludENvbXBhcmVSZXN1bHQodjJI
ZWFwQmlnSW50LT5jb21wYXJlVG9JbnQzMih2MS5iaWdJbnQzMkFzSW50MzIoKSkpLCBjb21wYXJp
c29uTW9kZSk7CisjZW5kaWYKKwogICAgIGF1dG8gY29tcGFyaXNvblJlc3VsdCA9IGNvbXBhcmVC
aWdJbnRUb090aGVyUHJpbWl0aXZlKGdsb2JhbE9iamVjdCwgdjJIZWFwQmlnSW50LCB2MSk7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwotICAgIC8vIEhlcmUgd2UgY2hl
Y2sgaW52ZXJ0ZWQgYmVjYXVzZSBCaWdJbnQgaXMgdGhlIHYyCi0gICAgaWYgKGNvbXBhcmlzb25N
b2RlID09IEpTQmlnSW50OjpDb21wYXJpc29uTW9kZTo6TGVzc1RoYW4pCi0gICAgICAgIHJldHVy
biBjb21wYXJpc29uUmVzdWx0ID09IEpTQmlnSW50OjpDb21wYXJpc29uUmVzdWx0OjpHcmVhdGVy
VGhhbjsKLSAgICByZXR1cm4gY29tcGFyaXNvblJlc3VsdCA9PSBKU0JpZ0ludDo6Q29tcGFyaXNv
blJlc3VsdDo6R3JlYXRlclRoYW4gfHwgY29tcGFyaXNvblJlc3VsdCA9PSBKU0JpZ0ludDo6Q29t
cGFyaXNvblJlc3VsdDo6RXF1YWw7CisgICAgcmV0dXJuIGJpZ0ludENvbXBhcmVSZXN1bHQoc3dh
cEJpZ0ludENvbXBhcmVSZXN1bHQoY29tcGFyaXNvblJlc3VsdCksIGNvbXBhcmlzb25Nb2RlKTsK
IH0KIAogQUxXQVlTX0lOTElORSBib29sIHRvUHJpbWl0aXZlTnVtZXJpYyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHYsIEpTVmFsdWUmIHAsIGRvdWJsZSYgbikKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDJjZDM0
YTBhOGFkMTQ2ZDA1ZTUyNWNjODRkMmE0MzhhMDU1NTFkOS4uOWJkZjlhNzZlNWUzYTU2YTdlZmY0
ZTc2NjdiYTYxNDlmOGM0Y2Q4OSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
SlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wNC0yMyAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIERGRyBjb21wYXJlIHNo
b3VsZCBzcGVjdWxhdGUgQmlnSW50IHdlbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMDg5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2NvbXBhcmUtYmlnaW50LmpzOiBBZGRlZC4KKyAg
ICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHJlc3VsdCk6CisgICAgICAgIChsZXNzVGhhbik6
CisgICAgICAgIChsZXNzVGhhbkVxdWFsKToKKyAgICAgICAgKGdyZWF0ZXJUaGFuKToKKyAgICAg
ICAgKGdyZWF0ZXJUaGFuRXF1YWwpOgorCiAyMDIwLTA0LTIyICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gYnJhbmNoSWZCaWdJbnQzMiBjYW4gdXNl
IEJpZ0ludDMyTWFzayBhbmQgcmVtb3ZlIGJyYW5jaElmTnVtYmVyIGZpbHRlcgpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvY29tcGFyZS1iaWdpbnQuanMgYi9KU1Rlc3RzL3N0cmVzcy9jb21w
YXJlLWJpZ2ludC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjhlYmZhM2Y2YTcxODYwODkyNGM3ZTZiNmZkMzNj
YzhjMDI5M2U2Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvY29tcGFyZS1iaWdp
bnQuanMKQEAgLTAsMCArMSwxNDIgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0
ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitjb25zdCBHcmVhdGVyID0gMDsKK2Nv
bnN0IExlc3MgPSAxOworY29uc3QgRXF1YWwgPSAyOworCitmdW5jdGlvbiByZXN1bHQoZnVuYywg
ZGF0YSkKK3sKKyAgICBpZiAoZnVuYyA9PT0gbGVzc1RoYW4pCisgICAgICAgIHJldHVybiBkYXRh
ID09PSBMZXNzOworICAgIGlmIChmdW5jID09PSBsZXNzVGhhbkVxdWFsKQorICAgICAgICByZXR1
cm4gZGF0YSA9PT0gTGVzcyB8fCBkYXRhID09PSBFcXVhbDsKKyAgICBpZiAoZnVuYyA9PT0gZ3Jl
YXRlclRoYW4pCisgICAgICAgIHJldHVybiBkYXRhID09PSBHcmVhdGVyOworICAgIGlmIChmdW5j
ID09PSBncmVhdGVyVGhhbkVxdWFsKQorICAgICAgICByZXR1cm4gZGF0YSA9PT0gR3JlYXRlciB8
fCBkYXRhID09PSBFcXVhbDsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZhciBsaXN0ID0gWwor
ICAgIFtjcmVhdGVIZWFwQmlnSW50KDFuKSwgMm4sIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmln
SW50KDFuKSwgMW4sIEVxdWFsXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxbiksIDBuLCBHcmVh
dGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxbiksIC0xbiwgR3JlYXRlcl0sCisgICAgW2Ny
ZWF0ZUhlYXBCaWdJbnQoMW4pLCAtMm4sIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50
KDBuKSwgMm4sIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDBuKSwgMW4sIExlc3NdLAor
ICAgIFtjcmVhdGVIZWFwQmlnSW50KDBuKSwgMG4sIEVxdWFsXSwKKyAgICBbY3JlYXRlSGVhcEJp
Z0ludCgwbiksIC0xbiwgR3JlYXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCAtMm4s
IEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xbiksIDJuLCBMZXNzXSwKKyAgICBb
Y3JlYXRlSGVhcEJpZ0ludCgtMW4pLCAxbiwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQo
LTFuKSwgMG4sIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xbiksIC0xbiwgRXF1YWxd
LAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xbiksIC0ybiwgR3JlYXRlcl0sCisKKyAgICBbMW4s
IGNyZWF0ZUhlYXBCaWdJbnQoMm4pLCBMZXNzXSwKKyAgICBbMW4sIGNyZWF0ZUhlYXBCaWdJbnQo
MW4pLCBFcXVhbF0sCisgICAgWzFuLCBjcmVhdGVIZWFwQmlnSW50KDBuKSwgR3JlYXRlcl0sCisg
ICAgWzFuLCBjcmVhdGVIZWFwQmlnSW50KC0xbiksIEdyZWF0ZXJdLAorICAgIFsxbiwgY3JlYXRl
SGVhcEJpZ0ludCgtMm4pLCBHcmVhdGVyXSwKKyAgICBbMG4sIGNyZWF0ZUhlYXBCaWdJbnQoMm4p
LCBMZXNzXSwKKyAgICBbMG4sIGNyZWF0ZUhlYXBCaWdJbnQoMW4pLCBMZXNzXSwKKyAgICBbMG4s
IGNyZWF0ZUhlYXBCaWdJbnQoMG4pLCBFcXVhbF0sCisgICAgWzBuLCBjcmVhdGVIZWFwQmlnSW50
KC0xbiksIEdyZWF0ZXJdLAorICAgIFswbiwgY3JlYXRlSGVhcEJpZ0ludCgtMm4pLCBHcmVhdGVy
XSwKKyAgICBbLTFuLCBjcmVhdGVIZWFwQmlnSW50KDJuKSwgTGVzc10sCisgICAgWy0xbiwgY3Jl
YXRlSGVhcEJpZ0ludCgxbiksIExlc3NdLAorICAgIFstMW4sIGNyZWF0ZUhlYXBCaWdJbnQoMG4p
LCBMZXNzXSwKKyAgICBbLTFuLCBjcmVhdGVIZWFwQmlnSW50KC0xbiksIEVxdWFsXSwKKyAgICBb
LTFuLCBjcmVhdGVIZWFwQmlnSW50KC0ybiksIEdyZWF0ZXJdLAorCisgICAgWzFuLCAybiwgTGVz
c10sCisgICAgWzFuLCAxbiwgRXF1YWxdLAorICAgIFsxbiwgMG4sIEdyZWF0ZXJdLAorICAgIFsx
biwgLTFuLCBHcmVhdGVyXSwKKyAgICBbMW4sIC0ybiwgR3JlYXRlcl0sCisgICAgWzBuLCAybiwg
TGVzc10sCisgICAgWzBuLCAxbiwgTGVzc10sCisgICAgWzBuLCAwbiwgRXF1YWxdLAorICAgIFsw
biwgLTFuLCBHcmVhdGVyXSwKKyAgICBbMG4sIC0ybiwgR3JlYXRlcl0sCisgICAgWy0xbiwgMm4s
IExlc3NdLAorICAgIFstMW4sIDFuLCBMZXNzXSwKKyAgICBbLTFuLCAwbiwgTGVzc10sCisgICAg
Wy0xbiwgLTFuLCBFcXVhbF0sCisgICAgWy0xbiwgLTJuLCBHcmVhdGVyXSwKKworICAgIFtjcmVh
dGVIZWFwQmlnSW50KDFuKSwgY3JlYXRlSGVhcEJpZ0ludCgybiksIExlc3NdLAorICAgIFtjcmVh
dGVIZWFwQmlnSW50KDFuKSwgY3JlYXRlSGVhcEJpZ0ludCgxbiksIEVxdWFsXSwKKyAgICBbY3Jl
YXRlSGVhcEJpZ0ludCgxbiksIGNyZWF0ZUhlYXBCaWdJbnQoMG4pLCBHcmVhdGVyXSwKKyAgICBb
Y3JlYXRlSGVhcEJpZ0ludCgxbiksIGNyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgR3JlYXRlcl0sCisg
ICAgW2NyZWF0ZUhlYXBCaWdJbnQoMW4pLCBjcmVhdGVIZWFwQmlnSW50KC0ybiksIEdyZWF0ZXJd
LAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDBuKSwgY3JlYXRlSGVhcEJpZ0ludCgybiksIExlc3Nd
LAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDBuKSwgY3JlYXRlSGVhcEJpZ0ludCgxbiksIExlc3Nd
LAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDBuKSwgY3JlYXRlSGVhcEJpZ0ludCgwbiksIEVxdWFs
XSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgwbiksIGNyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgR3Jl
YXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCBjcmVhdGVIZWFwQmlnSW50KC0ybiks
IEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xbiksIGNyZWF0ZUhlYXBCaWdJbnQo
Mm4pLCBMZXNzXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMW4pLCBjcmVhdGVIZWFwQmlnSW50
KDFuKSwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgY3JlYXRlSGVhcEJpZ0lu
dCgwbiksIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xbiksIGNyZWF0ZUhlYXBCaWdJ
bnQoLTFuKSwgRXF1YWxdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xbiksIGNyZWF0ZUhlYXBC
aWdJbnQoLTJuKSwgR3JlYXRlcl0sCisKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwbiksIDJuLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgx
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIDFuLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVh
cEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIDBuLCBHcmVhdGVyXSwKKyAgICBb
Y3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIC0xbiwgR3JlYXRl
cl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCAt
Mm4sIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwbiksIDJuLCBMZXNzXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMG4pLCAxbiwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTEwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgMG4sIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50
KC0xMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIC0xbiwgTGVzc10sCisgICAgW2NyZWF0ZUhl
YXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgLTJuLCBMZXNzXSwKKworICAg
IFsybiwgY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIExlc3Nd
LAorICAgIFsxbiwgY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiks
IExlc3NdLAorICAgIFswbiwgY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwbiksIExlc3NdLAorICAgIFstMW4sIGNyZWF0ZUhlYXBCaWdJbnQoMTAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMG4pLCBMZXNzXSwKKyAgICBbLTJuLCBjcmVhdGVIZWFwQmlnSW50KDEwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDBuKSwgTGVzc10sCisgICAgWzJuLCBjcmVhdGVIZWFwQmlnSW50KC0x
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIEdyZWF0ZXJdLAorICAgIFsxbiwgY3JlYXRlSGVh
cEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBHcmVhdGVyXSwKKyAgICBbMG4s
IGNyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgR3JlYXRlcl0s
CisgICAgWy0xbiwgY3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4p
LCBHcmVhdGVyXSwKKyAgICBbLTJuLCBjcmVhdGVIZWFwQmlnSW50KC0xMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwbiksIEdyZWF0ZXJdLAorXTsKKworZnVuY3Rpb24gbGVzc1RoYW4oYSwgYikKK3sK
KyAgICByZXR1cm4gYSA8IGI7Cit9Citub0lubGluZShsZXNzVGhhbik7CisKK2Z1bmN0aW9uIGxl
c3NUaGFuRXF1YWwoYSwgYikKK3sKKyAgICByZXR1cm4gYSA8PSBiOworfQorbm9JbmxpbmUobGVz
c1RoYW5FcXVhbCk7CisKK2Z1bmN0aW9uIGdyZWF0ZXJUaGFuKGEsIGIpCit7CisgICAgcmV0dXJu
IGEgPiBiOworfQorbm9JbmxpbmUoZ3JlYXRlclRoYW4pOworCitmdW5jdGlvbiBncmVhdGVyVGhh
bkVxdWFsKGEsIGIpCit7CisgICAgcmV0dXJuIGEgPj0gYjsKK30KK25vSW5saW5lKGdyZWF0ZXJU
aGFuRXF1YWwpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlMzsgKytpKSB7CisgICAgZm9yIChs
ZXQgW2EsIGIsIHJlc10gb2YgbGlzdCkgeworICAgICAgICBzaG91bGRCZShsZXNzVGhhbihhLCBi
KSwgcmVzdWx0KGxlc3NUaGFuLCByZXMpKTsKKyAgICAgICAgc2hvdWxkQmUobGVzc1RoYW5FcXVh
bChhLCBiKSwgcmVzdWx0KGxlc3NUaGFuRXF1YWwsIHJlcykpOworICAgICAgICBzaG91bGRCZShn
cmVhdGVyVGhhbihhLCBiKSwgcmVzdWx0KGdyZWF0ZXJUaGFuLCByZXMpKTsKKyAgICAgICAgc2hv
dWxkQmUoZ3JlYXRlclRoYW5FcXVhbChhLCBiKSwgcmVzdWx0KGdyZWF0ZXJUaGFuRXF1YWwsIHJl
cykpOworICAgIH0KK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397387</attachid>
            <date>2020-04-23 14:47:33 -0700</date>
            <delta_ts>2020-04-24 00:47:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210892-20200423144732.patch</filename>
            <type>text/plain</type>
            <size>36716</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
YTk1YmJkZDkwZjQ2YTUyNDVkMWMzOTNmODJhYThiN2Y5ZmY4MTM4Li43MTkzZjhkMjM1NWZkM2Zl
YjU3ZDQwNzg5YmQ2ZDJkZDRlNmIxYzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAyMC0wNC0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIERGRyBjb21wYXJlIHNob3VsZCBzcGVjdWxhdGUgQmlnSW50IHdl
bGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDg5
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbXBh
cmUgb3BlcmF0aW9ucyBpbiBERkcgZG9lcyBub3Qgc3VwcG9ydCBCaWdJbnQgcmVsYXRlZCBzcGVj
dWxhdGlvbnMuIEFzIGEgcmVzdWx0LCBERkcgZml4dXAgcGhhc2UgZW1pdHMgRG91YmxlUmVwIGZv
ciBvcGVyYW5kcywgYW5kCisgICAgICAgIGNhdXNlcyBPU1IgZXhpdC4gVGhpcyBwYXRjaCBhZGRz
IEJpZ0ludDMyLCBIZWFwQmlnSW50LCBhbmQgQW55QmlnSW50VXNlIHN1cHBvcnQgdG8gREZHIGNv
bXBhcmUgb3BlcmF0aW9ucyB0byBhdm9pZCBPU1IgZXhpdHMuIEFuZCB3ZQorICAgICAgICBpbnRy
b2R1Y2UgSlNCaWdJbnQ6OmNvbXBhcmVUb0ludDMyIHRvIGF2b2lkIGFsbG9jYXRpbmcgSlNCaWdJ
bnQgb25seSBmb3IgY29tcGFyaXNvbi4KKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8
QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0Rv
ZXNHQy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZH
Rml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2Rl
KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVBZGQpOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVTdWIpOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVNdWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21wYXJlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Z2VuZXJpY0pTVmFsdWVOb25QZWVwaG9sZUNvbXBhcmUpOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpub25TcGVjdWxhdGl2ZU5vblBlZXBob2xlQ29tcGFyZSk6IERlbGV0ZWQu
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlQmlnSW50MzJDb21wYXJlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNw
cDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNvbXBhcmVF
cSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDb21wYXJl
U3RyaWN0RXEpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21wYXJl
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Z2VuZXJpY0pTVmFsdWVD
b21wYXJlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6bm9uU3BlY3Vs
YXRpdmVDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6
CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6dW5ib3hCaWdJbnQzMik6CisgICAgICAg
ICogcnVudGltZS9KU0JpZ0ludC5jcHA6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojpjb21wYXJl
VG9JbnQzMik6CisgICAgICAgICogcnVudGltZS9KU0JpZ0ludC5oOgorICAgICAgICAoSlNDOjpz
d2FwQmlnSW50Q29tcGFyZVJlc3VsdCk6CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6
CisgICAgICAgIChKU0M6OmNvbXBhcmVCaWdJbnQzMlRvT3RoZXJQcmltaXRpdmUpOgorICAgICAg
ICAoSlNDOjpiaWdJbnRDb21wYXJlKToKKwogMjAyMC0wNC0yMiAgS2VpdGggTWlsbGVyICA8a2Vp
dGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggT1NSIGV4aXRpbmcvaXRlcmF0b3Ig
b2JqZWN0IGNoZWNrcyBpbiBmb3Itb2YgYnl0ZWNvZGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXgg
M2VlZmJjMjgyZTljNDdmMjdkNzBjODU5M2Y5ZDI2N2QxZTBhYjFhMy4uMDI0NTc3NzE4ZWM0MGZl
YzZjOTMzNmJhYzgwOWRmY2RjNjY0ODQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMTg0MCwz
MCArMTg0MCw3NSBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+
OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICBKU1ZhbHVlIGxl
ZnRDb25zdCA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CiAgICAgICAgIEpTVmFs
dWUgcmlnaHRDb25zdCA9IGZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLnZhbHVlKCk7CiAgICAgICAg
IGlmIChsZWZ0Q29uc3QgJiYgcmlnaHRDb25zdCkgeworICAgICAgICAgICAgYXV0byBjb21wYXJl
ID0gWyZdKGF1dG8gYSwgYXV0byBiKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChub2RlLT5v
cCgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBDb21wYXJlTGVzczoKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGpzQm9vbGVhbihhIDwgYik7CisgICAgICAgICAgICAgICAgY2FzZSBDb21w
YXJlTGVzc0VxOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ganNCb29sZWFuKGEgPD0gYik7
CisgICAgICAgICAgICAgICAgY2FzZSBDb21wYXJlR3JlYXRlcjoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGpzQm9vbGVhbihhID4gYik7CisgICAgICAgICAgICAgICAgY2FzZSBDb21wYXJl
R3JlYXRlckVxOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ganNCb29sZWFuKGEgPj0gYik7
CisgICAgICAgICAgICAgICAgY2FzZSBDb21wYXJlRXE6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBqc0Jvb2xlYW4oYSA9PSBiKTsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworCiAgICAg
ICAgICAgICBpZiAobGVmdENvbnN0LmlzTnVtYmVyKCkgJiYgcmlnaHRDb25zdC5pc051bWJlcigp
KSB7CiAgICAgICAgICAgICAgICAgZG91YmxlIGEgPSBsZWZ0Q29uc3QuYXNOdW1iZXIoKTsKICAg
ICAgICAgICAgICAgICBkb3VibGUgYiA9IHJpZ2h0Q29uc3QuYXNOdW1iZXIoKTsKKyAgICAgICAg
ICAgICAgICBzZXRDb25zdGFudChub2RlLCBjb21wYXJlKGEsIGIpKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIH0KKworI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgICAg
IGlmIChsZWZ0Q29uc3QuaXNCaWdJbnQzMigpICYmIHJpZ2h0Q29uc3QuaXNCaWdJbnQzMigpKSB7
CisgICAgICAgICAgICAgICAgaW50MzJfdCBhID0gbGVmdENvbnN0LmJpZ0ludDMyQXNJbnQzMigp
OworICAgICAgICAgICAgICAgIGludDMyX3QgYiA9IHJpZ2h0Q29uc3QuYmlnSW50MzJBc0ludDMy
KCk7CisgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwgY29tcGFyZShhLCBiKSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisjZW5kaWYKKworICAgICAgICAg
ICAgaWYgKGxlZnRDb25zdC5pc0JpZ0ludCgpICYmIHJpZ2h0Q29uc3QuaXNCaWdJbnQoKSkgewor
ICAgICAgICAgICAgICAgIGF1dG8gY29tcGFyZSA9IFsmXSAoSlNWYWx1ZSBsZWZ0LCBKU1ZhbHVl
IHJpZ2h0KSB7CisjaWYgVVNFKEJJR0lOVDMyKQorICAgICAgICAgICAgICAgICAgICBpZiAobGVm
dC5pc0JpZ0ludDMyKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVChyaWdodC5p
c0hlYXBCaWdJbnQoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3dhcEJpZ0lu
dENvbXBhcmVSZXN1bHQocmlnaHQuYXNIZWFwQmlnSW50KCktPmNvbXBhcmVUb0ludDMyKGxlZnQu
YmlnSW50MzJBc0ludDMyKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICBpZiAocmlnaHQuaXNCaWdJbnQzMigpKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBBU1NFUlQobGVmdC5pc0hlYXBCaWdJbnQoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gbGVmdC5hc0hlYXBCaWdJbnQoKS0+Y29tcGFyZVRvSW50MzIocmlnaHQuYmlnSW50MzJB
c0ludDMyKCkpOworICAgICAgICAgICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEpTQmlnSW50Ojpjb21wYXJlKGxlZnQuYXNIZWFwQmlnSW50KCksIHJpZ2h0
LmFzSGVhcEJpZ0ludCgpKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBVc2UgYmlnSW50Q29tcGFyZVJlc3VsdC4KICAgICAgICAgICAgICAgICBzd2l0Y2gg
KG5vZGUtPm9wKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIENvbXBhcmVMZXNzOgotICAgICAg
ICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4oYSA8IGIpKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKGJpZ0ludENvbXBhcmVS
ZXN1bHQoY29tcGFyZShsZWZ0Q29uc3QsIHJpZ2h0Q29uc3QpLCBKU0JpZ0ludDo6Q29tcGFyaXNv
bk1vZGU6Okxlc3NUaGFuKSkpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICBjYXNlIENvbXBhcmVMZXNzRXE6Ci0gICAgICAgICAgICAgICAgICAgIHNldENvbnN0
YW50KG5vZGUsIGpzQm9vbGVhbihhIDw9IGIpKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0Q29u
c3RhbnQobm9kZSwganNCb29sZWFuKGJpZ0ludENvbXBhcmVSZXN1bHQoY29tcGFyZShsZWZ0Q29u
c3QsIHJpZ2h0Q29uc3QpLCBKU0JpZ0ludDo6Q29tcGFyaXNvbk1vZGU6Okxlc3NUaGFuT3JFcXVh
bCkpKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBD
b21wYXJlR3JlYXRlcjoKLSAgICAgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNC
b29sZWFuKGEgPiBiKSk7CisgICAgICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpz
Qm9vbGVhbihiaWdJbnRDb21wYXJlUmVzdWx0KGNvbXBhcmUocmlnaHRDb25zdCwgbGVmdENvbnN0
KSwgSlNCaWdJbnQ6OkNvbXBhcmlzb25Nb2RlOjpMZXNzVGhhbikpKTsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgotICAg
ICAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4oYSA+PSBiKSk7Cisg
ICAgICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihiaWdJbnRDb21w
YXJlUmVzdWx0KGNvbXBhcmUocmlnaHRDb25zdCwgbGVmdENvbnN0KSwgSlNCaWdJbnQ6OkNvbXBh
cmlzb25Nb2RlOjpMZXNzVGhhbk9yRXF1YWwpKSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIGNhc2UgQ29tcGFyZUVxOgotICAgICAgICAgICAgICAgICAgICBz
ZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4oYSA9PSBiKSk7CisgICAgICAgICAgICAgICAgICAg
IHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihjb21wYXJlKGxlZnRDb25zdCwgcmlnaHRDb25z
dCkgPT0gSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQ6OkVxdWFsKSk7CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGxlZnRDb25zdC5pc1N0cmluZygp
ICYmIHJpZ2h0Q29uc3QuaXNTdHJpbmcoKSkgewpAQCAtMTkzMyw2ICsxOTc4LDkgQEAgYm9vbCBB
YnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5z
aWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpID09IG5vZGUtPmNo
aWxkMigpKSB7CiAgICAgICAgICAgICBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKEludDMyVXNl
KSB8fAogICAgICAgICAgICAgICAgIG5vZGUtPmlzQmluYXJ5VXNlS2luZChJbnQ1MlJlcFVzZSkg
fHwKKyAgICAgICAgICAgICAgICBub2RlLT5pc0JpbmFyeVVzZUtpbmQoQmlnSW50MzJVc2UpIHx8
CisgICAgICAgICAgICAgICAgbm9kZS0+aXNCaW5hcnlVc2VLaW5kKEhlYXBCaWdJbnRVc2UpIHx8
CisgICAgICAgICAgICAgICAgbm9kZS0+aXNCaW5hcnlVc2VLaW5kKEFueUJpZ0ludFVzZSkgfHwK
ICAgICAgICAgICAgICAgICBub2RlLT5pc0JpbmFyeVVzZUtpbmQoU3RyaW5nVXNlKSB8fAogICAg
ICAgICAgICAgICAgIG5vZGUtPmlzQmluYXJ5VXNlS2luZChCb29sZWFuVXNlKSB8fAogICAgICAg
ICAgICAgICAgIG5vZGUtPmlzQmluYXJ5VXNlS2luZChTeW1ib2xVc2UpIHx8CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggZTY0MDlhMzBkYzZjYTU3YzA4ODQ5MWNj
YTU2NmUwMjIxOGMzYzQxMS4uNTc3OGQ3ZGI0MjhlMTVkM2FlZTQ4NGEwNWVkYTMwZTRkY2FjYWI1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtNDM0LDExICs0
MzQsMTQgQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2Ug
Q29tcGFyZUxlc3NFcToKICAgICBjYXNlIENvbXBhcmVHcmVhdGVyOgogICAgIGNhc2UgQ29tcGFy
ZUdyZWF0ZXJFcToKKyAgICAgICAgLy8gRklYTUU6IEFkZCBBbnlCaWdJbnRVc2UgYW5kIEhlYXBC
aWdJbnRVc2Ugc3BlY2lmaWMgb3B0aW1pemF0aW9ucyBpbiBERkcgLyBGVEwgY29kZSBnZW5lcmF0
aW9uIGFuZCBlbnN1cmUgaXQgZG9lcyBub3QgcGVyZm9ybSBHQy4KKyAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDkyMwogICAgICAgICBpZiAobm9k
ZS0+aXNCaW5hcnlVc2VLaW5kKEludDMyVXNlKQogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAg
ICAgICB8fCBub2RlLT5pc0JpbmFyeVVzZUtpbmQoSW50NTJSZXBVc2UpCiAjZW5kaWYKICAgICAg
ICAgICAgIHx8IG5vZGUtPmlzQmluYXJ5VXNlS2luZChEb3VibGVSZXBVc2UpCisgICAgICAgICAg
ICB8fCBub2RlLT5pc0JpbmFyeVVzZUtpbmQoQmlnSW50MzJVc2UpCiAgICAgICAgICAgICB8fCBu
b2RlLT5pc0JpbmFyeVVzZUtpbmQoU3RyaW5nSWRlbnRVc2UpCiAgICAgICAgICAgICApCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcAppbmRleCBhYjdiYTk5NmMxZjVmZmJhNmM2OGM5NTgwN2U4ODc4NWVmYTg2YjZh
Li4zYWQ0MGVjNmQ3YWRkMjgwZGFlMjUwNGRkZWU3OTY2YWZlZDY3ODUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTg3Miw2ICs4NzIsMjYgQEAg
Y2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgbm9kZS0+
Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb2RlOjpzaG91bGRTcGVjdWxhdGVIZWFwQmln
SW50KG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgpKSkgeworICAg
ICAgICAgICAgICAgIGZpeEVkZ2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAg
ICAgICAgICAgICAgIGZpeEVkZ2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQyKCkpOworICAg
ICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorI2lmIFVTRShCSUdJTlQzMikKKyAgICAg
ICAgICAgIGlmIChOb2RlOjpzaG91bGRTcGVjdWxhdGVCaWdJbnQzMihub2RlLT5jaGlsZDEoKS5u
b2RlKCksIG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpIHsKKyAgICAgICAgICAgICAgICBmaXhFZGdl
PEJpZ0ludDMyVXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAgZml4RWRnZTxC
aWdJbnQzMlVzZT4obm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFy
RmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUJpZ0ludChub2Rl
LT5jaGlsZDEoKS5ub2RlKCksIG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpIHsKKyAgICAgICAgICAg
ICAgICBmaXhFZGdlPEFueUJpZ0ludFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAg
ICAgIGZpeEVkZ2U8QW55QmlnSW50VXNlPihub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICAg
ICAgbm9kZS0+Y2xlYXJGbGFncyhOb2RlTXVzdEdlbmVyYXRlKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisjZW5kaWYKICAgICAgICAgICAgIGlmIChOb2RlOjpzaG91
bGRTcGVjdWxhdGVOdW1iZXJPckJvb2xlYW4obm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBub2RlLT5j
aGlsZDIoKS5ub2RlKCkpKSB7CiAgICAgICAgICAgICAgICAgZml4RG91YmxlT3JCb29sZWFuRWRn
ZShub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAgICAgZml4RG91YmxlT3JCb29sZWFuRWRn
ZShub2RlLT5jaGlsZDIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCmluZGV4IDE0NDU4YzVkZGE2MDhiOTQyMTU3NDFjNTcyNDRmMmQ3YTIx
NGE4ODQuLjdmNGY3YTFmMTg0MDM1YzRkYTI2ZmQxNjY2Mjg2YzJkODc2YWViNDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC00MDI4
LDE4ICs0MDI4LDE2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUFkZChOb2Rl
KiBub2RlKQogICAgIGlmIChub2RlLT5pc0JpbmFyeVVzZUtpbmQoQmlnSW50MzJVc2UpKSB7CiAg
ICAgICAgIFNwZWN1bGF0ZUJpZ0ludDMyT3BlcmFuZCBsZWZ0KHRoaXMsIGxlZnRDaGlsZCk7CiAg
ICAgICAgIFNwZWN1bGF0ZUJpZ0ludDMyT3BlcmFuZCByaWdodCh0aGlzLCByaWdodENoaWxkKTsK
LQotICAgICAgICAvLyBGSVhNRTogZG8gd2UgcmVhbGx5IG5lZWQgdGhpcyBleHRyYSByZWdpc3Rl
ciwgb3IgY2FuIHdlIG11dGF0ZSBsZWZ0L3JpZ2h0ID8KLSAgICAgICAgLy8gRklYTUU6IGFsc28s
IGxvb2sgaW50byBSZXVzZSBhbmQgb3RoZXIgdHJpY2tzIGZvciBhIG1vcmUgZWZmaWNpZW50IGdl
bmVyYXRlZCBjb2RlLgogICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwotICAgICAg
ICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogICAgICAgICBHUFJUZW1wb3Jhcnkg
dGVtcCh0aGlzKTsKKworICAgICAgICBHUFJSZWcgbGVmdEdQUiA9IGxlZnQuZ3ByKCk7CisgICAg
ICAgIEdQUlJlZyByaWdodEdQUiA9IHJpZ2h0LmdwcigpOworICAgICAgICBHUFJSZWcgcmVzdWx0
R1BSID0gcmVzdWx0LmdwcigpOwogICAgICAgICBHUFJSZWcgdGVtcEdQUiA9IHRlbXAuZ3ByKCk7
CiAKLSAgICAgICAgbV9qaXQubW92ZShsZWZ0LmdwcigpLCByZXN1bHRHUFIpOwotICAgICAgICBt
X2ppdC51bmJveEJpZ0ludDMyKHJlc3VsdEdQUik7Ci0gICAgICAgIG1faml0Lm1vdmUocmlnaHQu
Z3ByKCksIHRlbXBHUFIpOwotICAgICAgICBtX2ppdC51bmJveEJpZ0ludDMyKHRlbXBHUFIpOwor
ICAgICAgICBtX2ppdC51bmJveEJpZ0ludDMyKGxlZnRHUFIsIHJlc3VsdEdQUik7CisgICAgICAg
IG1faml0LnVuYm94QmlnSW50MzIocmlnaHRHUFIsIHRlbXBHUFIpOwogCiAgICAgICAgIC8vIEZJ
WE1FOiBhZGQgc29tZSB3YXkgdG8gZWxpbWluYXRlIHRoZSBvdmVyZmxvdyBjaGVjawogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBjaGVjayA9IG1faml0LmJyYW5jaEFkZDMyKE1hY3JvQXNz
ZW1ibGVyOjpPdmVyZmxvdywgcmVzdWx0R1BSLCB0ZW1wR1BSLCByZXN1bHRHUFIpOwpAQCAtNDEz
NCwxOCArNDEzMiwxNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVTdWIoTm9k
ZSogbm9kZSkKICAgICBpZiAobm9kZS0+YmluYXJ5VXNlS2luZCgpID09IEJpZ0ludDMyVXNlKSB7
CiAgICAgICAgIFNwZWN1bGF0ZUJpZ0ludDMyT3BlcmFuZCBsZWZ0KHRoaXMsIG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgU3BlY3VsYXRlQmlnSW50MzJPcGVyYW5kIHJpZ2h0KHRoaXMsIG5vZGUt
PmNoaWxkMigpKTsKLQotICAgICAgICAvLyBGSVhNRTogZG8gd2UgcmVhbGx5IG5lZWQgdGhpcyBl
eHRyYSByZWdpc3Rlciwgb3IgY2FuIHdlIG11dGF0ZSBsZWZ0L3JpZ2h0ID8KLSAgICAgICAgLy8g
RklYTUU6IGFsc28sIGxvb2sgaW50byBSZXVzZSBhbmQgb3RoZXIgdHJpY2tzIGZvciBhIG1vcmUg
ZWZmaWNpZW50IGdlbmVyYXRlZCBjb2RlLgogICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRo
aXMpOwotICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogICAgICAgICBH
UFJUZW1wb3JhcnkgdGVtcCh0aGlzKTsKKworICAgICAgICBHUFJSZWcgbGVmdEdQUiA9IGxlZnQu
Z3ByKCk7CisgICAgICAgIEdQUlJlZyByaWdodEdQUiA9IHJpZ2h0LmdwcigpOworICAgICAgICBH
UFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogICAgICAgICBHUFJSZWcgdGVtcEdQUiA9
IHRlbXAuZ3ByKCk7CiAKLSAgICAgICAgbV9qaXQubW92ZShsZWZ0LmdwcigpLCByZXN1bHRHUFIp
OwotICAgICAgICBtX2ppdC51bmJveEJpZ0ludDMyKHJlc3VsdEdQUik7Ci0gICAgICAgIG1faml0
Lm1vdmUocmlnaHQuZ3ByKCksIHRlbXBHUFIpOwotICAgICAgICBtX2ppdC51bmJveEJpZ0ludDMy
KHRlbXBHUFIpOworICAgICAgICBtX2ppdC51bmJveEJpZ0ludDMyKGxlZnRHUFIsIHJlc3VsdEdQ
Uik7CisgICAgICAgIG1faml0LnVuYm94QmlnSW50MzIocmlnaHRHUFIsIHRlbXBHUFIpOwogCiAg
ICAgICAgIC8vIEZJWE1FOiBhZGQgc29tZSB3YXkgdG8gZWxpbWluYXRlIHRoZSBvdmVyZmxvdyBj
aGVjawogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBjaGVjayA9IG1faml0LmJyYW5jaFN1
YjMyKE1hY3JvQXNzZW1ibGVyOjpPdmVyZmxvdywgcmVzdWx0R1BSLCB0ZW1wR1BSLCByZXN1bHRH
UFIpOwpAQCAtNDk4NCwxOCArNDk4MCwxNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
VmFsdWVNdWwoTm9kZSogbm9kZSkKICAgICAgICAgLy8gRklYTUU6IHRoZSBjb2RlIGJldHdlZW4g
Y29tcGlsZVZhbHVlQWRkLCBjb21waWxlVmFsdWVTdWIgYW5kIGNvbXBpbGVWYWx1ZU11bCBmb3Ig
QmlnSW50MzIgaXMgbmVhcmx5IGlkZW50aWNhbCwgc28gdHJ5IHRvIGdldCByaWQgb2YgdGhlIGR1
cGxpY2F0aW9uLgogICAgICAgICBTcGVjdWxhdGVCaWdJbnQzMk9wZXJhbmQgbGVmdCh0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIFNwZWN1bGF0ZUJpZ0ludDMyT3BlcmFuZCByaWdodCh0
aGlzLCBub2RlLT5jaGlsZDIoKSk7Ci0KLSAgICAgICAgLy8gRklYTUU6IGRvIHdlIHJlYWxseSBu
ZWVkIHRoaXMgZXh0cmEgcmVnaXN0ZXIsIG9yIGNhbiB3ZSBtdXRhdGUgbGVmdC9yaWdodCA/Ci0g
ICAgICAgIC8vIEZJWE1FOiBhbHNvLCBsb29rIGludG8gUmV1c2UgYW5kIG90aGVyIHRyaWNrcyBm
b3IgYSBtb3JlIGVmZmljaWVudCBnZW5lcmF0ZWQgY29kZS4KICAgICAgICAgR1BSVGVtcG9yYXJ5
IHJlc3VsdCh0aGlzKTsKLSAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsK
ICAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXAodGhpcyk7CisKKyAgICAgICAgR1BSUmVnIGxlZnRH
UFIgPSBsZWZ0LmdwcigpOworICAgICAgICBHUFJSZWcgcmlnaHRHUFIgPSByaWdodC5ncHIoKTsK
KyAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICAgICAgR1BSUmVn
IHRlbXBHUFIgPSB0ZW1wLmdwcigpOwogCi0gICAgICAgIG1faml0Lm1vdmUobGVmdC5ncHIoKSwg
cmVzdWx0R1BSKTsKLSAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQzMihyZXN1bHRHUFIpOwotICAg
ICAgICBtX2ppdC5tb3ZlKHJpZ2h0LmdwcigpLCB0ZW1wR1BSKTsKLSAgICAgICAgbV9qaXQudW5i
b3hCaWdJbnQzMih0ZW1wR1BSKTsKKyAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQzMihsZWZ0R1BS
LCByZXN1bHRHUFIpOworICAgICAgICBtX2ppdC51bmJveEJpZ0ludDMyKHJpZ2h0R1BSLCB0ZW1w
R1BSKTsKIAogICAgICAgICAvLyBGSVhNRTogYWRkIHNvbWUgd2F5IHRvIGVsaW1pbmF0ZSB0aGUg
b3ZlcmZsb3cgY2hlY2sKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgY2hlY2sgPSBtX2pp
dC5icmFuY2hNdWwzMihNYWNyb0Fzc2VtYmxlcjo6T3ZlcmZsb3csIHJlc3VsdEdQUiwgdGVtcEdQ
UiwgcmVzdWx0R1BSKTsKQEAgLTYyNTIsNiArNjI0Niw3IEBAIGJvb2wgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBhcmUoTm9kZSogbm9kZSwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24g
Y29uCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAjZW5kaWYKKwogI2lmIFVTRShKU1ZB
TFVFNjQpCiAgICAgaWYgKG5vZGUtPmlzQmluYXJ5VXNlS2luZChJbnQ1MlJlcFVzZSkpIHsKICAg
ICAgICAgY29tcGlsZUludDUyQ29tcGFyZShub2RlLCBjb25kaXRpb24pOwpAQCAtNjMyMCw3ICs2
MzE1LDcgQEAgYm9vbCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGFyZShOb2RlKiBub2RlLCBNYWNyb0Fz
c2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlvbiBjb24KICAgICAgICAgfQogICAgIH0KIAotICAg
IG5vblNwZWN1bGF0aXZlTm9uUGVlcGhvbGVDb21wYXJlKG5vZGUsIGNvbmRpdGlvbiwgb3BlcmF0
aW9uKTsKKyAgICBnZW5lcmljSlNWYWx1ZU5vblBlZXBob2xlQ29tcGFyZShub2RlLCBjb25kaXRp
b24sIG9wZXJhdGlvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC0xNDExNSwxMSArMTQx
MTAsMTMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luIGNv
ZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBKU1ZhbHUKICAgICBhZGRTbG93UGF0aEdlbmVyYXRv
cihXVEZNb3ZlKHNsb3dQYXRoKSk7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6Om5vblNwZWN1
bGF0aXZlTm9uUGVlcGhvbGVDb21wYXJlKE5vZGUqIG5vZGUsIE1hY3JvQXNzZW1ibGVyOjpSZWxh
dGlvbmFsQ29uZGl0aW9uIGNvbmQsIFNfSklUT3BlcmF0aW9uX0dKSiBoZWxwZXJGdW5jdGlvbikK
K3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmdlbmVyaWNKU1ZhbHVlTm9uUGVlcGhvbGVDb21wYXJlKE5v
ZGUqIG5vZGUsIE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIFNfSklU
T3BlcmF0aW9uX0dKSiBoZWxwZXJGdW5jdGlvbikKIHsKLSAgICBBU1NFUlQobm9kZS0+aXNCaW5h
cnlVc2VLaW5kKFVudHlwZWRVc2UpKTsKLSAgICBKU1ZhbHVlT3BlcmFuZCBhcmcxKHRoaXMsIG5v
ZGUtPmNoaWxkMSgpKTsKLSAgICBKU1ZhbHVlT3BlcmFuZCBhcmcyKHRoaXMsIG5vZGUtPmNoaWxk
MigpKTsKKyAgICBBU1NFUlQobm9kZS0+aXNCaW5hcnlVc2VLaW5kKFVudHlwZWRVc2UpIHx8IG5v
ZGUtPmlzQmluYXJ5VXNlS2luZChBbnlCaWdJbnRVc2UpIHx8IG5vZGUtPmlzQmluYXJ5VXNlS2lu
ZChIZWFwQmlnSW50VXNlKSk7CisgICAgSlNWYWx1ZU9wZXJhbmQgYXJnMSh0aGlzLCBub2RlLT5j
aGlsZDEoKSwgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKKyAgICBKU1ZhbHVlT3BlcmFuZCBh
cmcyKHRoaXMsIG5vZGUtPmNoaWxkMigpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAg
IHNwZWN1bGF0ZShub2RlLCBub2RlLT5jaGlsZDEoKSk7CisgICAgc3BlY3VsYXRlKG5vZGUsIG5v
ZGUtPmNoaWxkMigpKTsKIAogICAgIEpTVmFsdWVSZWdzIGFyZzFSZWdzID0gYXJnMS5qc1ZhbHVl
UmVncygpOwogICAgIEpTVmFsdWVSZWdzIGFyZzJSZWdzID0gYXJnMi5qc1ZhbHVlUmVncygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDBl
MjU3NWQxYzY0NTgyOWIwNjA4YTc4ZTY1MWFlYzIzNmM1YmNjYmEuLjVhY2U1MjU1ZWQwMjc2NTM1
ZGExZmE2OGJmOGMwOWQyYWFmZWM5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTc0Myw3ICs3NDMsNyBAQCBjbGFzcyBTcGVjdWxhdGl2
ZUpJVCB7CiAgICAgdm9pZCBub25TcGVjdWxhdGl2ZVBlZXBob2xlQnJhbmNoTnVsbE9yVW5kZWZp
bmVkKEVkZ2Ugb3BlcmFuZCwgTm9kZSogYnJhbmNoTm9kZSk7CiAgICAgCiAgICAgdm9pZCBub25T
cGVjdWxhdGl2ZVBlZXBob2xlQnJhbmNoKE5vZGUqLCBOb2RlKiBicmFuY2hOb2RlLCBNYWNyb0Fz
c2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlvbiwgU19KSVRPcGVyYXRpb25fR0pKIGhlbHBlckZ1
bmN0aW9uKTsKLSAgICB2b2lkIG5vblNwZWN1bGF0aXZlTm9uUGVlcGhvbGVDb21wYXJlKE5vZGUq
LCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlvbiwgU19KSVRPcGVyYXRpb25fR0pK
IGhlbHBlckZ1bmN0aW9uKTsKKyAgICB2b2lkIGdlbmVyaWNKU1ZhbHVlTm9uUGVlcGhvbGVDb21w
YXJlKE5vZGUqLCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlvbiwgU19KSVRPcGVy
YXRpb25fR0pKIGhlbHBlckZ1bmN0aW9uKTsKICAgICAKICAgICB2b2lkIG5vblNwZWN1bGF0aXZl
UGVlcGhvbGVTdHJpY3RFcShOb2RlKiwgTm9kZSogYnJhbmNoTm9kZSwgYm9vbCBpbnZlcnQgPSBm
YWxzZSk7CiAgICAgdm9pZCBnZW5lcmljSlNWYWx1ZU5vblBlZXBob2xlU3RyaWN0RXEoTm9kZSos
IGJvb2wgaW52ZXJ0ID0gZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggMzc4ODNkMzhhNmJjMGM5ZWUxMzdjZGY5MTgy
NDA0NmZlOTk5MTM3YS4uYjhkM2E1M2E3M2ExNjEwNzE2MTNhY2UyM2U1NWMwYzE4MDEwOTE2OCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCkBAIC0xNzUzLDIxICsxNzUzLDE2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVC
aWdJbnQzMkNvbXBhcmUoTm9kZSogbm9kZSwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9uCiAKICAg
ICBpZiAoY29uZGl0aW9uID09IE1hY3JvQXNzZW1ibGVyOjpFcXVhbCB8fCBjb25kaXRpb24gPT0g
TWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsKSB7CiAgICAgICAgIC8vIE5vIG5lZWQgdG8gdW5ib3gg
dGhlIG9wZXJhbmRzLCBzaW5jZSB0aGUgdGFnIGJpdHMgYXJlIGlkZW50aWNhbAotICAgICAgICBt
X2ppdC5jb21wYXJlNjQoY29uZGl0aW9uLCBvcDEuZ3ByKCksIG9wMi5ncHIoKSwgcmVzdWx0Lmdw
cigpKTsKKyAgICAgICAgbV9qaXQuY29tcGFyZTY0KGNvbmRpdGlvbiwgb3AxR1BSLCBvcDJHUFIs
IHJlc3VsdEdQUik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXAodGhp
cyk7CiAgICAgICAgIEdQUlJlZyB0ZW1wR1BSID0gdGVtcC5ncHIoKTsKIAotICAgICAgICBtX2pp
dC5tb3ZlKG9wMUdQUiwgdGVtcEdQUik7Ci0gICAgICAgIG1faml0LnVuYm94QmlnSW50MzIodGVt
cEdQUik7Ci0gICAgICAgIG1faml0Lm1vdmUob3AyR1BSLCByZXN1bHRHUFIpOwotICAgICAgICBt
X2ppdC51bmJveEJpZ0ludDMyKHJlc3VsdEdQUik7Ci0gICAgICAgIG1faml0LmNvbXBhcmU2NChj
b25kaXRpb24sIHRlbXBHUFIsIHJlc3VsdEdQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAgbV9qaXQu
dW5ib3hCaWdJbnQzMihvcDFHUFIsIHRlbXBHUFIpOworICAgICAgICBtX2ppdC51bmJveEJpZ0lu
dDMyKG9wMkdQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAgbV9qaXQuY29tcGFyZTMyKGNvbmRpdGlv
biwgdGVtcEdQUiwgcmVzdWx0R1BSLCByZXN1bHRHUFIpOwogICAgIH0KLQotICAgIC8vIElmIHdl
IGFkZCBhIERhdGFGb3JtYXRCb29sLCB3ZSBzaG91bGQgdXNlIGl0IGhlcmUuCi0gICAgbV9qaXQu
b3IzMihUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6VmFsdWVGYWxzZSksIHJlc3VsdC5ncHIoKSk7Ci0g
ICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCksIG1fY3VycmVudE5vZGUsIERhdGFGb3JtYXRK
U0Jvb2xlYW4pOworICAgIHVuYmxlc3NlZEJvb2xlYW5SZXN1bHQocmVzdWx0R1BSLCBub2RlKTsK
IH0KIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBlZXBIb2xlQmlnSW50MzJCcmFuY2go
Tm9kZSogbm9kZSwgTm9kZSogYnJhbmNoTm9kZSwgSklUQ29tcGlsZXI6OlJlbGF0aW9uYWxDb25k
aXRpb24gY29uZGl0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwCmluZGV4IDA5M2JkNTg3ZTUyNjAxOGNjZjgxMGI2M2ExNzQ5Yzg3NjNjNDZiNjcu
LjU4NzMyNjY2ZWQ4YTU1OWY1MTJkZGZiYjUzOWZlYzgwMGQ4NjdiYjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTg2NjEsNyArODY2MSw3
IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIH0KIAogICAgICAgICBERkdfQVNTRVJU
KG1fZ3JhcGgsIG1fbm9kZSwgbV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoVW50eXBlZFVzZSksIG1f
bm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpLCBtX25vZGUtPmNoaWxkMigpLnVzZUtpbmQoKSk7Ci0g
ICAgICAgIG5vblNwZWN1bGF0aXZlQ29tcGFyZSgKKyAgICAgICAgZ2VuZXJpY0pTVmFsdWVDb21w
YXJlKAogICAgICAgICAgICAgWyZdIChMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIG1fb3V0LmVxdWFsKGxlZnQsIHJpZ2h0KTsKICAgICAgICAgICAg
IH0sCkBAIC04OTQ5LDcgKzg5NDksNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogCiAgICAgICAg
IC8vIEZJWE1FOiB3ZSBjYW4gZG8gc29tZXRoaW5nIG11Y2ggc21hcnRlciBoZXJlLCBzZWUgdGhl
IERGR1NwZWN1bGF0aXZlSklUIGFwcHJvYWNoIGluIGUuZy4gU3BlY3VsYXRpdmVKSVQ6Om5vblNw
ZWN1bGF0aXZlUGVlcGhvbGVTdHJpY3RFcQogICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG1f
bm9kZSwgbV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoVW50eXBlZFVzZSksIG1fbm9kZS0+Y2hpbGQx
KCkudXNlS2luZCgpLCBtX25vZGUtPmNoaWxkMigpLnVzZUtpbmQoKSk7Ci0gICAgICAgIG5vblNw
ZWN1bGF0aXZlQ29tcGFyZSgKKyAgICAgICAgZ2VuZXJpY0pTVmFsdWVDb21wYXJlKAogICAgICAg
ICAgICAgWyZdIChMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIG1fb3V0LmVxdWFsKGxlZnQsIHJpZ2h0KTsKICAgICAgICAgICAgIH0sCkBAIC0xMzU1
Niw2ICsxMzU1NiwxMyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKEJpZ0lu
dDMyVXNlKSkgeworICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dCaWdJbnQzMihtX25vZGUt
PmNoaWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0JpZ0ludDMyKG1fbm9k
ZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgc2V0Qm9vbGVhbihpbnRGdW5jdG9yKHVuYm94Qmln
SW50MzIobGVmdCksIHVuYm94QmlnSW50MzIocmlnaHQpKSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKwogICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoU3RyaW5n
SWRlbnRVc2UpKSB7CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd1N0cmluZ0lkZW50KG1f
bm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93U3RyaW5nSWRl
bnQobV9ub2RlLT5jaGlsZDIoKSk7CkBAIC0xMzU3Niw4ICsxMzU4Myw4IEBAIGNsYXNzIExvd2Vy
REZHVG9CMyB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBERkdf
QVNTRVJUKG1fZ3JhcGgsIG1fbm9kZSwgbV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoVW50eXBlZFVz
ZSksIG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpLCBtX25vZGUtPmNoaWxkMigpLnVzZUtpbmQo
KSk7Ci0gICAgICAgIG5vblNwZWN1bGF0aXZlQ29tcGFyZShpbnRGdW5jdG9yLCBmYWxsYmFja0Z1
bmN0aW9uKTsKKyAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBtX25vZGUsIG1fbm9kZS0+aXNC
aW5hcnlVc2VLaW5kKFVudHlwZWRVc2UpIHx8IG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKEhlYXBC
aWdJbnRVc2UpIHx8IG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKEFueUJpZ0ludFVzZSksIG1fbm9k
ZS0+Y2hpbGQxKCkudXNlS2luZCgpLCBtX25vZGUtPmNoaWxkMigpLnVzZUtpbmQoKSk7CisgICAg
ICAgIGdlbmVyaWNKU1ZhbHVlQ29tcGFyZShpbnRGdW5jdG9yLCBmYWxsYmFja0Z1bmN0aW9uKTsK
ICAgICB9CiAKICAgICB2b2lkIGNvbXBpbGVTdHJpbmdTbGljZSgpCkBAIC0xNDU0NywxMSArMTQ1
NTQsMTMgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBJbnRGdW5jdG9yPgotICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVDb21wYXJlKGNvbnN0IElu
dEZ1bmN0b3ImIGludEZ1bmN0b3IsIFNfSklUT3BlcmF0aW9uX0dKSiBoZWxwZXJGdW5jdGlvbikK
KyAgICB2b2lkIGdlbmVyaWNKU1ZhbHVlQ29tcGFyZShjb25zdCBJbnRGdW5jdG9yJiBpbnRGdW5j
dG9yLCBTX0pJVE9wZXJhdGlvbl9HSkogaGVscGVyRnVuY3Rpb24pCiAgICAgewogICAgICAgICBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9u
b2RlLT5vcmlnaW4uc2VtYW50aWMpOwotICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0pTVmFsdWUo
bV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0pTVmFsdWUobV9u
b2RlLT5jaGlsZDIoKSk7CisgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93SlNWYWx1ZShtX25vZGUt
PmNoaWxkMSgpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICBMVmFsdWUgcmln
aHQgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlv
bik7CisgICAgICAgIHNwZWN1bGF0ZShtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgc3BlY3Vs
YXRlKG1fbm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAKICAgICAgICAgTEJhc2ljQmxvY2sgbGVm
dElzSW50ID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sgZmFzdFBhdGgg
PSBtX291dC5uZXdCbG9jaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9Bc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlI
ZWxwZXJzLmgKaW5kZXggNDk1ZjMwZDIzYjM5MmEyMTkzZjlhNjdiNDY2Y2E3OGU4Y2Y4NzcwNS4u
OTJjYTE0ZTllMzNhZTAyMjkyNGNkNDJkNDYzMWMyNWFhOTAxNzg3MSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC0xMzk4LDkgKzEzOTgsMTQgQEAg
Y2xhc3MgQXNzZW1ibHlIZWxwZXJzIDogcHVibGljIE1hY3JvQXNzZW1ibGVyIHsKICNlbmRpZiAv
LyBVU0UoSlNWQUxVRTY0KQogCiAjaWYgVVNFKEJJR0lOVDMyKQotICAgIHZvaWQgdW5ib3hCaWdJ
bnQzMihHUFJSZWcgZ3ByKQorICAgIHZvaWQgdW5ib3hCaWdJbnQzMihHUFJSZWcgc3JjLCBHUFJS
ZWcgZGVzdCkKICAgICB7Ci0gICAgICAgIHVyc2hpZnQ2NCh0cnVzdGVkSW1tMzJGb3JTaGlmdChJ
bW0zMigxNikpLCBncHIpOworI2lmIENQVShBUk02NCkKKyAgICAgICAgdXJzaGlmdDY0KHNyYywg
dHJ1c3RlZEltbTMyRm9yU2hpZnQoSW1tMzIoMTYpKSwgZGVzdCk7CisjZWxzZQorICAgICAgICBt
b3ZlKHNyYywgZGVzdCk7CisgICAgICAgIHVyc2hpZnQ2NCh0cnVzdGVkSW1tMzJGb3JTaGlmdChJ
bW0zMigxNikpLCBkZXN0KTsKKyNlbmRpZgogICAgIH0KIAogICAgIHZvaWQgYm94QmlnSW50MzIo
R1BSUmVnIGdwcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QmlnSW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcApp
bmRleCBhOGEzMDg0NDA1MjBmYzQxNjA0MzAzMGQzN2RlMDU0YThlM2FhZGQyLi5iN2E0YmQ5ZmQ2
OTFmNWY1NThmMWZiODg1ZGU0MTM4YzMxNzAzMTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCaWdJbnQuY3BwCkBAIC0yMDIwLDYgKzIwMjAsMzQgQEAgYm9vbCBKU0JpZ0lu
dDo6ZXF1YWxzVG9JbnQzMihpbnQzMl90IHZhbHVlKQogICAgIHJldHVybiAodGhpcy0+bGVuZ3Ro
KCkgPT0gMSkgJiYgKHRoaXMtPnNpZ24oKSA9PSAodmFsdWUgPCAwKSkgJiYgKHRoaXMtPmRpZ2l0
KDApID09IHN0YXRpY19jYXN0PERpZ2l0PihzdGQ6OmFicyhzdGF0aWNfY2FzdDxpbnQ2NF90Pih2
YWx1ZSkpKSk7CiB9CiAKK0pTQmlnSW50OjpDb21wYXJpc29uUmVzdWx0IEpTQmlnSW50Ojpjb21w
YXJlVG9JbnQzMihpbnQzMl90IHZhbHVlKQoreworICAgIGJvb2wgeFNpZ24gPSBzaWduKCk7Cisg
ICAgYm9vbCB5U2lnbiA9IHZhbHVlIDwgMDsKKworICAgIGlmICh4U2lnbiAhPSB5U2lnbikKKyAg
ICAgICAgcmV0dXJuIHhTaWduID8gQ29tcGFyaXNvblJlc3VsdDo6TGVzc1RoYW4gOiBDb21wYXJp
c29uUmVzdWx0OjpHcmVhdGVyVGhhbjsKKyAgICBpZiAoaXNaZXJvKCkpIHsKKyAgICAgICAgaWYg
KHZhbHVlID09IDApCisgICAgICAgICAgICByZXR1cm4gQ29tcGFyaXNvblJlc3VsdDo6RXF1YWw7
CisgICAgICAgIHJldHVybiBDb21wYXJpc29uUmVzdWx0OjpMZXNzVGhhbjsKKyAgICB9CisKKyAg
ICBpZiAobGVuZ3RoKCkgIT0gMSkKKyAgICAgICAgcmV0dXJuIHhTaWduID8gQ29tcGFyaXNvblJl
c3VsdDo6TGVzc1RoYW4gOiBDb21wYXJpc29uUmVzdWx0OjpHcmVhdGVyVGhhbjsKKworICAgIHVp
bnQ2NF90IHZhbHVlNjQgPSAwOworICAgIGlmICh4U2lnbikKKyAgICAgICAgdmFsdWU2NCA9IHN0
YXRpY19jYXN0PHVpbnQ2NF90Pigtc3RhdGljX2Nhc3Q8aW50NjRfdD4odmFsdWUpKTsKKyAgICBl
bHNlCisgICAgICAgIHZhbHVlNjQgPSB2YWx1ZTsKKyAgICBpZiAoZGlnaXQoMCkgPT0gdmFsdWU2
NCkKKyAgICAgICAgcmV0dXJuIENvbXBhcmlzb25SZXN1bHQ6OkVxdWFsOworICAgIGlmIChkaWdp
dCgwKSA8IHZhbHVlNjQpCisgICAgICAgIHJldHVybiB4U2lnbiA/IENvbXBhcmlzb25SZXN1bHQ6
OkdyZWF0ZXJUaGFuIDogQ29tcGFyaXNvblJlc3VsdDo6TGVzc1RoYW47CisgICAgcmV0dXJuIHhT
aWduID8gQ29tcGFyaXNvblJlc3VsdDo6TGVzc1RoYW4gOiBDb21wYXJpc29uUmVzdWx0OjpHcmVh
dGVyVGhhbjsKK30KKwogSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQgSlNCaWdJbnQ6OmNvbXBh
cmVUb0RvdWJsZShKU0JpZ0ludCogeCwgZG91YmxlIHkpCiB7CiAgICAgLy8gVGhpcyBhbGdvcml0
aG0gZXhwZWN0IHRoYXQgdGhlIGRvdWJsZSBmb3JtYXQgaXMgSUVFRSA3NTQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCmluZGV4IGVmODBhNTFhZjU1ZTlmYmI3Nzc4Yzkx
ODIyZGVjYTFlOGU0YzAyYzkuLjI3Y2JjZjk5NDQ5MDM3YzBlYTUyMDAwNzNiNDg5MTIyNWY4Mzcx
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaApAQCAtMTI0LDYg
KzEyNCw5IEBAIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgZXF1YWxzKEpTQmlnSW50KiwgSlNCaWdJbnQqKTsK
ICAgICBib29sIGVxdWFsc1RvTnVtYmVyKEpTVmFsdWUpOwogICAgIEpTX0VYUE9SVF9QUklWQVRF
IGJvb2wgZXF1YWxzVG9JbnQzMihpbnQzMl90KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBDb21w
YXJpc29uUmVzdWx0IGNvbXBhcmVUb0ludDMyKGludDMyX3QpOworICAgIEpTX0VYUE9SVF9QUklW
QVRFIGJvb2wgbGVzc1RoYW5JbnQzMihpbnQzMl90KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBi
b29sIGxlc3NUaGFuRXF1YWxJbnQzMihpbnQzMl90KTsKICAgICBzdGF0aWMgQ29tcGFyaXNvblJl
c3VsdCBjb21wYXJlKEpTQmlnSW50KiB4LCBKU0JpZ0ludCogeSk7CiAKICAgICBib29sIGdldFBy
aW1pdGl2ZU51bWJlcihKU0dsb2JhbE9iamVjdCosIGRvdWJsZSYgbnVtYmVyLCBKU1ZhbHVlJiBy
ZXN1bHQpIGNvbnN0OwpAQCAtMjg3LDQgKzI5MCwxNiBAQCBpbmxpbmUgdm9pZCBKU0JpZ0ludDo6
c2V0RGlnaXQodW5zaWduZWQgbiwgRGlnaXQgdmFsdWUpCiAgICAgZGF0YVN0b3JhZ2UoKVtuXSA9
IHZhbHVlOwogfQogCitBTFdBWVNfSU5MSU5FIEpTQmlnSW50OjpDb21wYXJpc29uUmVzdWx0IHN3
YXBCaWdJbnRDb21wYXJlUmVzdWx0KEpTQmlnSW50OjpDb21wYXJpc29uUmVzdWx0IGNvbXBhcmlz
b25SZXN1bHQpCit7CisgICAgc3dpdGNoIChjb21wYXJpc29uUmVzdWx0KSB7CisgICAgY2FzZSBK
U0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdDo6R3JlYXRlclRoYW46CisgICAgICAgIHJldHVybiBK
U0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdDo6TGVzc1RoYW47CisgICAgY2FzZSBKU0JpZ0ludDo6
Q29tcGFyaXNvblJlc3VsdDo6TGVzc1RoYW46CisgICAgICAgIHJldHVybiBKU0JpZ0ludDo6Q29t
cGFyaXNvblJlc3VsdDo6R3JlYXRlclRoYW47CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJu
IGNvbXBhcmlzb25SZXN1bHQ7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAppbmRleCAxNzdlZGEwZTk5Yzgw
NzAxYWFlMGM2NWE2MzY1YzZkYjUxNWU3MzQwLi5mOWJjYzY0NGRkOWM3NmRlYjE0NjM0YjVkZDEw
ZGVkNDUyY2IwNDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9u
cy5oCkBAIC0yNjcsNiArMjY3LDQ2IEBAIEFMV0FZU19JTkxJTkUgSlNCaWdJbnQ6OkNvbXBhcmlz
b25SZXN1bHQgY29tcGFyZUJpZ0ludFRvT3RoZXJQcmltaXRpdmUoSlNHbG9iYWxPCiAgICAgcmV0
dXJuIEpTQmlnSW50Ojpjb21wYXJlVG9Eb3VibGUodjEsIG51bWJlclZhbHVlKTsKIH0KIAorQUxX
QVlTX0lOTElORSBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdCBjb21wYXJlQmlnSW50MzJUb090
aGVyUHJpbWl0aXZlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGludDMyX3QgdjEsIEpT
VmFsdWUgcHJpbVZhbHVlKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBBU1NFUlQocHJp
bVZhbHVlLmlzUHJpbWl0aXZlKCkpOworICAgIEFTU0VSVCghcHJpbVZhbHVlLmlzQmlnSW50KCkp
OworCisgICAgYXV0byBjb21wYXJlID0gWyZdIChhdXRvIHYxLCBhdXRvIHYyKSB7CisgICAgICAg
IHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lX3Y8ZGVjbHR5cGUodjEpLCBkZWNsdHlwZSh2Mik+
KTsKKyAgICAgICAgaWYgKHYxID09IHYyKQorICAgICAgICAgICAgcmV0dXJuIEpTQmlnSW50OjpD
b21wYXJpc29uUmVzdWx0OjpFcXVhbDsKKyAgICAgICAgaWYgKHYxIDwgdjIpCisgICAgICAgICAg
ICByZXR1cm4gSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQ6Okxlc3NUaGFuOworICAgICAgICBy
ZXR1cm4gSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQ6OkdyZWF0ZXJUaGFuOworICAgIH07CisK
KyAgICBpZiAocHJpbVZhbHVlLmlzU3RyaW5nKCkpIHsKKyAgICAgICAgSlNWYWx1ZSBiaWdJbnRW
YWx1ZSA9IEpTQmlnSW50OjpzdHJpbmdUb0JpZ0ludChnbG9iYWxPYmplY3QsIGFzU3RyaW5nKHBy
aW1WYWx1ZSktPnZhbHVlKGdsb2JhbE9iamVjdCkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdDo6VW5kZWZpbmVkKTsKKyAgICAg
ICAgaWYgKCFiaWdJbnRWYWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBKU0JpZ0ludDo6Q29tcGFy
aXNvblJlc3VsdDo6VW5kZWZpbmVkOworCisgICAgICAgIGlmIChiaWdJbnRWYWx1ZS5pc0hlYXBC
aWdJbnQoKSkKKyAgICAgICAgICAgIHJldHVybiBzd2FwQmlnSW50Q29tcGFyZVJlc3VsdChiaWdJ
bnRWYWx1ZS5hc0hlYXBCaWdJbnQoKS0+Y29tcGFyZVRvSW50MzIodjEpKTsKKworICAgICAgICBB
U1NFUlQoYmlnSW50VmFsdWUuaXNCaWdJbnQzMigpKTsKKyNpZiBVU0UoQklHSU5UMzIpCisgICAg
ICAgIHJldHVybiBjb21wYXJlKHYxLCBiaWdJbnRWYWx1ZS5iaWdJbnQzMkFzSW50MzIoKSk7Cisj
ZW5kaWYKKyAgICB9CisKKyAgICAvLyBOb3RlIHRoYXQgMG4gPD0+IC0wLjAgaXMgaGFuZGxpbmcg
LTAuMCBhcyArMC4KKyAgICBkb3VibGUgbnVtYmVyVmFsdWUgPSBwcmltVmFsdWUudG9OdW1iZXIo
Z2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU0JpZ0ludDo6
Q29tcGFyaXNvblJlc3VsdDo6VW5kZWZpbmVkKTsKKyAgICBpZiAoc3RkOjppc25hbihudW1iZXJW
YWx1ZSkpCisgICAgICAgIHJldHVybiBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdDo6VW5kZWZp
bmVkOworICAgIHJldHVybiBjb21wYXJlKHN0YXRpY19jYXN0PGRvdWJsZT4odjEpLCBudW1iZXJW
YWx1ZSk7Cit9CisKIEFMV0FZU19JTkxJTkUgYm9vbCBiaWdJbnRDb21wYXJlUmVzdWx0KEpTQmln
SW50OjpDb21wYXJpc29uUmVzdWx0IGNvbXBhcmlzb25SZXN1bHQsIEpTQmlnSW50OjpDb21wYXJp
c29uTW9kZSBjb21wYXJpc29uTW9kZSkKIHsKICAgICBpZiAoY29tcGFyaXNvbk1vZGUgPT0gSlNC
aWdJbnQ6OkNvbXBhcmlzb25Nb2RlOjpMZXNzVGhhbikKQEAgLTI4NSw0NiArMzI1LDQ1IEBAIEFM
V0FZU19JTkxJTkUgYm9vbCBiaWdJbnRDb21wYXJlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgdjEsIEpTVmFsCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCiAjaWYgVVNFKEJJR0lOVDMyKQotICAgIGlmICh2MS5pc0JpZ0ludDMyKCkgJiYg
djIuaXNCaWdJbnQzMigpKSB7Ci0gICAgICAgIGlmIChjb21wYXJpc29uTW9kZSA9PSBKU0JpZ0lu
dDo6Q29tcGFyaXNvbk1vZGU6Okxlc3NUaGFuKQotICAgICAgICAgICAgcmV0dXJuIHYxLmJpZ0lu
dDMyQXNJbnQzMigpIDwgdjIuYmlnSW50MzJBc0ludDMyKCk7Ci0gICAgICAgIEFTU0VSVChjb21w
YXJpc29uTW9kZSA9PSBKU0JpZ0ludDo6Q29tcGFyaXNvbk1vZGU6Okxlc3NUaGFuT3JFcXVhbCk7
Ci0gICAgICAgIHJldHVybiB2MS5iaWdJbnQzMkFzSW50MzIoKSA8PSB2Mi5iaWdJbnQzMkFzSW50
MzIoKTsKKyAgICBpZiAodjEuaXNCaWdJbnQzMigpKSB7CisgICAgICAgIGlmICh2Mi5pc0JpZ0lu
dDMyKCkpIHsKKyAgICAgICAgICAgIGlmIChjb21wYXJpc29uTW9kZSA9PSBKU0JpZ0ludDo6Q29t
cGFyaXNvbk1vZGU6Okxlc3NUaGFuKQorICAgICAgICAgICAgICAgIHJldHVybiB2MS5iaWdJbnQz
MkFzSW50MzIoKSA8IHYyLmJpZ0ludDMyQXNJbnQzMigpOworICAgICAgICAgICAgQVNTRVJUKGNv
bXBhcmlzb25Nb2RlID09IEpTQmlnSW50OjpDb21wYXJpc29uTW9kZTo6TGVzc1RoYW5PckVxdWFs
KTsKKyAgICAgICAgICAgIHJldHVybiB2MS5iaWdJbnQzMkFzSW50MzIoKSA8PSB2Mi5iaWdJbnQz
MkFzSW50MzIoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodjIuaXNIZWFwQmlnSW50KCkpCisg
ICAgICAgICAgICByZXR1cm4gYmlnSW50Q29tcGFyZVJlc3VsdChzd2FwQmlnSW50Q29tcGFyZVJl
c3VsdCh2Mi5hc0hlYXBCaWdJbnQoKS0+Y29tcGFyZVRvSW50MzIodjEuYmlnSW50MzJBc0ludDMy
KCkpKSwgY29tcGFyaXNvbk1vZGUpOworICAgICAgICBhdXRvIGNvbXBhcmlzb25SZXN1bHQgPSBj
b21wYXJlQmlnSW50MzJUb090aGVyUHJpbWl0aXZlKGdsb2JhbE9iamVjdCwgdjEuYmlnSW50MzJB
c0ludDMyKCksIHYyKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2Up
OworICAgICAgICByZXR1cm4gYmlnSW50Q29tcGFyZVJlc3VsdChjb21wYXJpc29uUmVzdWx0LCBj
b21wYXJpc29uTW9kZSk7CiAgICAgfQorICAgIGlmICh2Mi5pc0JpZ0ludDMyKCkpIHsKKyAgICAg
ICAgQVNTRVJUKCF2MS5pc0JpZ0ludDMyKCkpOworICAgICAgICBpZiAodjEuaXNIZWFwQmlnSW50
KCkpCisgICAgICAgICAgICByZXR1cm4gYmlnSW50Q29tcGFyZVJlc3VsdCh2MS5hc0hlYXBCaWdJ
bnQoKS0+Y29tcGFyZVRvSW50MzIodjIuYmlnSW50MzJBc0ludDMyKCkpLCBjb21wYXJpc29uTW9k
ZSk7CisgICAgICAgIGF1dG8gY29tcGFyaXNvblJlc3VsdCA9IGNvbXBhcmVCaWdJbnQzMlRvT3Ro
ZXJQcmltaXRpdmUoZ2xvYmFsT2JqZWN0LCB2Mi5iaWdJbnQzMkFzSW50MzIoKSwgdjEpOworICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CisgICAgICAgIHJldHVybiBi
aWdJbnRDb21wYXJlUmVzdWx0KHN3YXBCaWdJbnRDb21wYXJlUmVzdWx0KGNvbXBhcmlzb25SZXN1
bHQpLCBjb21wYXJpc29uTW9kZSk7CisgICAgfQorICAgIEFTU0VSVCghdjEuaXNCaWdJbnQzMigp
ICYmICF2Mi5pc0JpZ0ludDMyKCkpOwogI2VuZGlmCiAKLSAgICBKU0JpZ0ludCogdjFIZWFwQmln
SW50ID0gbnVsbHB0cjsKLSAgICBKU0JpZ0ludCogdjJIZWFwQmlnSW50ID0gbnVsbHB0cjsKLSAg
ICAvLyBGSVhNRTogaGF2ZSBzb21lIGZhc3QtaXNoIHBhdGggZm9yIGEgY29tcGFyaXNvbiBiZXR3
ZWVuIGEgc21hbGwgYW5kIGEgbGFyZ2UgYmlnLWludAotICAgIGlmICh2MS5pc0hlYXBCaWdJbnQo
KSkKLSAgICAgICAgdjFIZWFwQmlnSW50ID0gdjEuYXNIZWFwQmlnSW50KCk7Ci0jaWYgVVNFKEJJ
R0lOVDMyKQotICAgIGVsc2UgaWYgKHYxLmlzQmlnSW50MzIoKSkKLSAgICAgICAgdjFIZWFwQmln
SW50ID0gSlNCaWdJbnQ6OmNyZWF0ZUZyb20odm0sIHYxLmJpZ0ludDMyQXNJbnQzMigpKTsKLSNl
bmRpZgotCi0gICAgaWYgKHYyLmlzSGVhcEJpZ0ludCgpKQotICAgICAgICB2MkhlYXBCaWdJbnQg
PSB2Mi5hc0hlYXBCaWdJbnQoKTsKLSNpZiBVU0UoQklHSU5UMzIpCi0gICAgZWxzZSBpZiAodjIu
aXNCaWdJbnQzMigpKQotICAgICAgICB2MkhlYXBCaWdJbnQgPSBKU0JpZ0ludDo6Y3JlYXRlRnJv
bSh2bSwgdjIuYmlnSW50MzJBc0ludDMyKCkpOwotI2VuZGlmCi0KLSAgICBpZiAodjFIZWFwQmln
SW50ICYmIHYySGVhcEJpZ0ludCkKLSAgICAgICAgcmV0dXJuIGJpZ0ludENvbXBhcmVSZXN1bHQo
SlNCaWdJbnQ6OmNvbXBhcmUodjFIZWFwQmlnSW50LCB2MkhlYXBCaWdJbnQpLCBjb21wYXJpc29u
TW9kZSk7Ci0KLSAgICBpZiAodjFIZWFwQmlnSW50KSB7CisgICAgaWYgKHYxLmlzSGVhcEJpZ0lu
dCgpKSB7CisgICAgICAgIGF1dG8qIHYxSGVhcEJpZ0ludCA9IHYxLmFzSGVhcEJpZ0ludCgpOwor
ICAgICAgICBpZiAodjIuaXNIZWFwQmlnSW50KCkpCisgICAgICAgICAgICByZXR1cm4gYmlnSW50
Q29tcGFyZVJlc3VsdChKU0JpZ0ludDo6Y29tcGFyZSh2MUhlYXBCaWdJbnQsIHYyLmFzSGVhcEJp
Z0ludCgpKSwgY29tcGFyaXNvbk1vZGUpOwogICAgICAgICBhdXRvIGNvbXBhcmlzb25SZXN1bHQg
PSBjb21wYXJlQmlnSW50VG9PdGhlclByaW1pdGl2ZShnbG9iYWxPYmplY3QsIHYxSGVhcEJpZ0lu
dCwgdjIpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CiAgICAg
ICAgIHJldHVybiBiaWdJbnRDb21wYXJlUmVzdWx0KGNvbXBhcmlzb25SZXN1bHQsIGNvbXBhcmlz
b25Nb2RlKTsKICAgICB9CiAKLSAgICBhdXRvIGNvbXBhcmlzb25SZXN1bHQgPSBjb21wYXJlQmln
SW50VG9PdGhlclByaW1pdGl2ZShnbG9iYWxPYmplY3QsIHYySGVhcEJpZ0ludCwgdjEpOwotICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKICAgICAvLyBIZXJlIHdlIGNoZWNr
IGludmVydGVkIGJlY2F1c2UgQmlnSW50IGlzIHRoZSB2MgotICAgIGlmIChjb21wYXJpc29uTW9k
ZSA9PSBKU0JpZ0ludDo6Q29tcGFyaXNvbk1vZGU6Okxlc3NUaGFuKQotICAgICAgICByZXR1cm4g
Y29tcGFyaXNvblJlc3VsdCA9PSBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdDo6R3JlYXRlclRo
YW47Ci0gICAgcmV0dXJuIGNvbXBhcmlzb25SZXN1bHQgPT0gSlNCaWdJbnQ6OkNvbXBhcmlzb25S
ZXN1bHQ6OkdyZWF0ZXJUaGFuIHx8IGNvbXBhcmlzb25SZXN1bHQgPT0gSlNCaWdJbnQ6OkNvbXBh
cmlzb25SZXN1bHQ6OkVxdWFsOworICAgIEFTU0VSVCghdjEuaXNIZWFwQmlnSW50KCkpOworICAg
IEFTU0VSVCh2Mi5pc0hlYXBCaWdJbnQoKSk7CisgICAgYXV0byBjb21wYXJpc29uUmVzdWx0ID0g
Y29tcGFyZUJpZ0ludFRvT3RoZXJQcmltaXRpdmUoZ2xvYmFsT2JqZWN0LCB2Mi5hc0hlYXBCaWdJ
bnQoKSwgdjEpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICBy
ZXR1cm4gYmlnSW50Q29tcGFyZVJlc3VsdChzd2FwQmlnSW50Q29tcGFyZVJlc3VsdChjb21wYXJp
c29uUmVzdWx0KSwgY29tcGFyaXNvbk1vZGUpOwogfQogCiBBTFdBWVNfSU5MSU5FIGJvb2wgdG9Q
cmltaXRpdmVOdW1lcmljKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgdiwg
SlNWYWx1ZSYgcCwgZG91YmxlJiBuKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9K
U1Rlc3RzL0NoYW5nZUxvZwppbmRleCBhYWYyYTgyNTJhYzk1MjlhMWZhOWNiYmVhZmRmMTdkYjE3
NGI4OTM3Li5jODIxN2VkOTc3NzUyNmJiMDZmNDExYjU2MDcxMTVmMThkMWVlNGExIDEwMDY0NAot
LS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDIwLTA0LTIzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisK
KyAgICAgICAgW0pTQ10gREZHIGNvbXBhcmUgc2hvdWxkIHNwZWN1bGF0ZSBCaWdJbnQgd2VsbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwODkyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3Mv
Y29tcGFyZS1iaWdpbnQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAo
cmVzdWx0KToKKyAgICAgICAgKGxlc3NUaGFuKToKKyAgICAgICAgKGxlc3NUaGFuRXF1YWwpOgor
ICAgICAgICAoZ3JlYXRlclRoYW4pOgorICAgICAgICAoZ3JlYXRlclRoYW5FcXVhbCk6CisKIDIw
MjAtMDQtMjMgQWxleGV5IFNodmF5a2EgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAg
ICBVcGRhdGUgdGVzdDI2MiB0byBjb21taXQgMzFkYWJiNTYxOGUyCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9jb21wYXJlLWJpZ2ludC5qcyBiL0pTVGVzdHMvc3RyZXNzL2NvbXBhcmUtYmln
aW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNiOGViZmEzZjZhNzE4NjA4OTI0YzdlNmI2ZmQzM2NjOGMwMjkz
ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9jb21wYXJlLWJpZ2ludC5qcwpA
QCAtMCwwICsxLDE0MiBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewor
ICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jh
ZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2NvbnN0IEdyZWF0ZXIgPSAwOworY29uc3QgTGVz
cyA9IDE7Citjb25zdCBFcXVhbCA9IDI7CisKK2Z1bmN0aW9uIHJlc3VsdChmdW5jLCBkYXRhKQor
eworICAgIGlmIChmdW5jID09PSBsZXNzVGhhbikKKyAgICAgICAgcmV0dXJuIGRhdGEgPT09IExl
c3M7CisgICAgaWYgKGZ1bmMgPT09IGxlc3NUaGFuRXF1YWwpCisgICAgICAgIHJldHVybiBkYXRh
ID09PSBMZXNzIHx8IGRhdGEgPT09IEVxdWFsOworICAgIGlmIChmdW5jID09PSBncmVhdGVyVGhh
bikKKyAgICAgICAgcmV0dXJuIGRhdGEgPT09IEdyZWF0ZXI7CisgICAgaWYgKGZ1bmMgPT09IGdy
ZWF0ZXJUaGFuRXF1YWwpCisgICAgICAgIHJldHVybiBkYXRhID09PSBHcmVhdGVyIHx8IGRhdGEg
PT09IEVxdWFsOworICAgIHJldHVybiBmYWxzZTsKK30KKwordmFyIGxpc3QgPSBbCisgICAgW2Ny
ZWF0ZUhlYXBCaWdJbnQoMW4pLCAybiwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMW4p
LCAxbiwgRXF1YWxdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDFuKSwgMG4sIEdyZWF0ZXJdLAor
ICAgIFtjcmVhdGVIZWFwQmlnSW50KDFuKSwgLTFuLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVh
cEJpZ0ludCgxbiksIC0ybiwgR3JlYXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCAy
biwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCAxbiwgTGVzc10sCisgICAgW2Ny
ZWF0ZUhlYXBCaWdJbnQoMG4pLCAwbiwgRXF1YWxdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDBu
KSwgLTFuLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgwbiksIC0ybiwgR3JlYXRl
cl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgMm4sIExlc3NdLAorICAgIFtjcmVhdGVI
ZWFwQmlnSW50KC0xbiksIDFuLCBMZXNzXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMW4pLCAw
biwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgLTFuLCBFcXVhbF0sCisgICAg
W2NyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgLTJuLCBHcmVhdGVyXSwKKworICAgIFsxbiwgY3JlYXRl
SGVhcEJpZ0ludCgybiksIExlc3NdLAorICAgIFsxbiwgY3JlYXRlSGVhcEJpZ0ludCgxbiksIEVx
dWFsXSwKKyAgICBbMW4sIGNyZWF0ZUhlYXBCaWdJbnQoMG4pLCBHcmVhdGVyXSwKKyAgICBbMW4s
IGNyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgR3JlYXRlcl0sCisgICAgWzFuLCBjcmVhdGVIZWFwQmln
SW50KC0ybiksIEdyZWF0ZXJdLAorICAgIFswbiwgY3JlYXRlSGVhcEJpZ0ludCgybiksIExlc3Nd
LAorICAgIFswbiwgY3JlYXRlSGVhcEJpZ0ludCgxbiksIExlc3NdLAorICAgIFswbiwgY3JlYXRl
SGVhcEJpZ0ludCgwbiksIEVxdWFsXSwKKyAgICBbMG4sIGNyZWF0ZUhlYXBCaWdJbnQoLTFuKSwg
R3JlYXRlcl0sCisgICAgWzBuLCBjcmVhdGVIZWFwQmlnSW50KC0ybiksIEdyZWF0ZXJdLAorICAg
IFstMW4sIGNyZWF0ZUhlYXBCaWdJbnQoMm4pLCBMZXNzXSwKKyAgICBbLTFuLCBjcmVhdGVIZWFw
QmlnSW50KDFuKSwgTGVzc10sCisgICAgWy0xbiwgY3JlYXRlSGVhcEJpZ0ludCgwbiksIExlc3Nd
LAorICAgIFstMW4sIGNyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgRXF1YWxdLAorICAgIFstMW4sIGNy
ZWF0ZUhlYXBCaWdJbnQoLTJuKSwgR3JlYXRlcl0sCisKKyAgICBbMW4sIDJuLCBMZXNzXSwKKyAg
ICBbMW4sIDFuLCBFcXVhbF0sCisgICAgWzFuLCAwbiwgR3JlYXRlcl0sCisgICAgWzFuLCAtMW4s
IEdyZWF0ZXJdLAorICAgIFsxbiwgLTJuLCBHcmVhdGVyXSwKKyAgICBbMG4sIDJuLCBMZXNzXSwK
KyAgICBbMG4sIDFuLCBMZXNzXSwKKyAgICBbMG4sIDBuLCBFcXVhbF0sCisgICAgWzBuLCAtMW4s
IEdyZWF0ZXJdLAorICAgIFswbiwgLTJuLCBHcmVhdGVyXSwKKyAgICBbLTFuLCAybiwgTGVzc10s
CisgICAgWy0xbiwgMW4sIExlc3NdLAorICAgIFstMW4sIDBuLCBMZXNzXSwKKyAgICBbLTFuLCAt
MW4sIEVxdWFsXSwKKyAgICBbLTFuLCAtMm4sIEdyZWF0ZXJdLAorCisgICAgW2NyZWF0ZUhlYXBC
aWdJbnQoMW4pLCBjcmVhdGVIZWFwQmlnSW50KDJuKSwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBC
aWdJbnQoMW4pLCBjcmVhdGVIZWFwQmlnSW50KDFuKSwgRXF1YWxdLAorICAgIFtjcmVhdGVIZWFw
QmlnSW50KDFuKSwgY3JlYXRlSGVhcEJpZ0ludCgwbiksIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVI
ZWFwQmlnSW50KDFuKSwgY3JlYXRlSGVhcEJpZ0ludCgtMW4pLCBHcmVhdGVyXSwKKyAgICBbY3Jl
YXRlSGVhcEJpZ0ludCgxbiksIGNyZWF0ZUhlYXBCaWdJbnQoLTJuKSwgR3JlYXRlcl0sCisgICAg
W2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCBjcmVhdGVIZWFwQmlnSW50KDJuKSwgTGVzc10sCisgICAg
W2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCBjcmVhdGVIZWFwQmlnSW50KDFuKSwgTGVzc10sCisgICAg
W2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCBjcmVhdGVIZWFwQmlnSW50KDBuKSwgRXF1YWxdLAorICAg
IFtjcmVhdGVIZWFwQmlnSW50KDBuKSwgY3JlYXRlSGVhcEJpZ0ludCgtMW4pLCBHcmVhdGVyXSwK
KyAgICBbY3JlYXRlSGVhcEJpZ0ludCgwbiksIGNyZWF0ZUhlYXBCaWdJbnQoLTJuKSwgR3JlYXRl
cl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgY3JlYXRlSGVhcEJpZ0ludCgybiksIExl
c3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xbiksIGNyZWF0ZUhlYXBCaWdJbnQoMW4pLCBM
ZXNzXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMW4pLCBjcmVhdGVIZWFwQmlnSW50KDBuKSwg
TGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgY3JlYXRlSGVhcEJpZ0ludCgtMW4p
LCBFcXVhbF0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgY3JlYXRlSGVhcEJpZ0ludCgt
Mm4pLCBHcmVhdGVyXSwKKworICAgIFtjcmVhdGVIZWFwQmlnSW50KDEwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDBuKSwgMm4sIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDEwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDBuKSwgMW4sIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50
KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgMG4sIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVI
ZWFwQmlnSW50KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgLTFuLCBHcmVhdGVyXSwKKyAg
ICBbY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIC0ybiwgR3Jl
YXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBu
KSwgMm4sIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwbiksIDFuLCBMZXNzXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMG4pLCAwbiwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTEwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgLTFuLCBMZXNzXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0lu
dCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCAtMm4sIExlc3NdLAorCisgICAgWzJuLCBj
cmVhdGVIZWFwQmlnSW50KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgTGVzc10sCisgICAg
WzFuLCBjcmVhdGVIZWFwQmlnSW50KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgTGVzc10s
CisgICAgWzBuLCBjcmVhdGVIZWFwQmlnSW50KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwg
TGVzc10sCisgICAgWy0xbiwgY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwbiksIExlc3NdLAorICAgIFstMm4sIGNyZWF0ZUhlYXBCaWdJbnQoMTAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMG4pLCBMZXNzXSwKKyAgICBbMm4sIGNyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDBuKSwgR3JlYXRlcl0sCisgICAgWzFuLCBjcmVhdGVIZWFwQmlnSW50
KC0xMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIEdyZWF0ZXJdLAorICAgIFswbiwgY3JlYXRl
SGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBHcmVhdGVyXSwKKyAgICBb
LTFuLCBjcmVhdGVIZWFwQmlnSW50KC0xMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIEdyZWF0
ZXJdLAorICAgIFstMm4sIGNyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDBuKSwgR3JlYXRlcl0sCitdOworCitmdW5jdGlvbiBsZXNzVGhhbihhLCBiKQoreworICAgIHJl
dHVybiBhIDwgYjsKK30KK25vSW5saW5lKGxlc3NUaGFuKTsKKworZnVuY3Rpb24gbGVzc1RoYW5F
cXVhbChhLCBiKQoreworICAgIHJldHVybiBhIDw9IGI7Cit9Citub0lubGluZShsZXNzVGhhbkVx
dWFsKTsKKworZnVuY3Rpb24gZ3JlYXRlclRoYW4oYSwgYikKK3sKKyAgICByZXR1cm4gYSA+IGI7
Cit9Citub0lubGluZShncmVhdGVyVGhhbik7CisKK2Z1bmN0aW9uIGdyZWF0ZXJUaGFuRXF1YWwo
YSwgYikKK3sKKyAgICByZXR1cm4gYSA+PSBiOworfQorbm9JbmxpbmUoZ3JlYXRlclRoYW5FcXVh
bCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWUzOyArK2kpIHsKKyAgICBmb3IgKGxldCBbYSwg
YiwgcmVzXSBvZiBsaXN0KSB7CisgICAgICAgIHNob3VsZEJlKGxlc3NUaGFuKGEsIGIpLCByZXN1
bHQobGVzc1RoYW4sIHJlcykpOworICAgICAgICBzaG91bGRCZShsZXNzVGhhbkVxdWFsKGEsIGIp
LCByZXN1bHQobGVzc1RoYW5FcXVhbCwgcmVzKSk7CisgICAgICAgIHNob3VsZEJlKGdyZWF0ZXJU
aGFuKGEsIGIpLCByZXN1bHQoZ3JlYXRlclRoYW4sIHJlcykpOworICAgICAgICBzaG91bGRCZShn
cmVhdGVyVGhhbkVxdWFsKGEsIGIpLCByZXN1bHQoZ3JlYXRlclRoYW5FcXVhbCwgcmVzKSk7Cisg
ICAgfQorfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397433</attachid>
            <date>2020-04-24 00:47:43 -0700</date>
            <delta_ts>2020-04-24 11:30:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210892-20200424004741.patch</filename>
            <type>text/plain</type>
            <size>66265</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
YTk1YmJkZDkwZjQ2YTUyNDVkMWMzOTNmODJhYThiN2Y5ZmY4MTM4Li4xNzllNmQxNjk5NTVjNWU5
ODk2ZWU1OGE3YWYyMGZhNWYxOTI2MjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAyMC0wNC0yNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIERGRyBjb21wYXJlIHNob3VsZCBzcGVjdWxhdGUgQmlnSW50IHdl
bGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDg5
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbXBh
cmUgb3BlcmF0aW9ucyBpbiBERkcgZG9lcyBub3Qgc3VwcG9ydCBCaWdJbnQgcmVsYXRlZCBzcGVj
dWxhdGlvbnMuIEFzIGEgcmVzdWx0LCBERkcgZml4dXAgcGhhc2UgZW1pdHMgRG91YmxlUmVwIGZv
ciBvcGVyYW5kcywgYW5kCisgICAgICAgIGNhdXNlcyBPU1IgZXhpdC4gVGhpcyBwYXRjaCBhZGRz
IEJpZ0ludDMyLCBIZWFwQmlnSW50LCBhbmQgQW55QmlnSW50VXNlIHN1cHBvcnQgdG8gREZHIGNv
bXBhcmUgb3BlcmF0aW9ucyB0byBhdm9pZCBPU1IgZXhpdHMuCisgICAgICAgIFdlIGFsc28gaW50
cm9kdWNlIEpTQmlnSW50Ojpjb21wYXJlVG9JbnQzMiB0byBhdm9pZCBhbGxvY2F0aW5nIEpTQmln
SW50IG9ubHkgZm9yIGNvbXBhcmlzb24sIGFuZCBvcHRpbWl6ZSBDKysgcnVudGltZSBmb3IgSlNC
aWdJbnQgY29tcGFyaXNvbi4KKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJh
Y3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQ
aGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAg
ICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVBZGQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlVmFsdWVTdWIpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlVmFsdWVNdWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21wYXJlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Z2VuZXJp
Y0pTVmFsdWVOb25QZWVwaG9sZUNvbXBhcmUpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpub25TcGVjdWxhdGl2ZU5vblBlZXBob2xlQ29tcGFyZSk6IERlbGV0ZWQuCisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
QmlnSW50MzJDb21wYXJlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNvbXBhcmVFcSk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDb21wYXJlU3RyaWN0
RXEpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21wYXJlKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Z2VuZXJpY0pTVmFsdWVDb21wYXJl
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6bm9uU3BlY3VsYXRpdmVD
b21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAg
ICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6dW5ib3hCaWdJbnQzMik6CisgICAgICAgICogcnVu
dGltZS9KU0JpZ0ludC5jcHA6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojpjb21wYXJlVG9JbnQz
Mik6CisgICAgICAgICogcnVudGltZS9KU0JpZ0ludC5oOgorICAgICAgICAoSlNDOjpzd2FwQmln
SW50Q29tcGFyZVJlc3VsdCk6CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6CisgICAg
ICAgIChKU0M6OmNvbXBhcmVCaWdJbnQpOgorICAgICAgICAoSlNDOjpjb21wYXJlQmlnSW50MzJU
b090aGVyUHJpbWl0aXZlKToKKyAgICAgICAgKEpTQzo6YmlnSW50Q29tcGFyZSk6CisKIDIwMjAt
MDQtMjIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IE9TUiBleGl0aW5nL2l0ZXJhdG9yIG9iamVjdCBjaGVja3MgaW4gZm9yLW9mIGJ5dGVjb2Rl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oCmluZGV4IDNlZWZiYzI4MmU5YzQ3ZjI3ZDcwYzg1OTNmOWQyNjdk
MWUwYWIxYTMuLjZlN2JhMDI5Nzk0Zjg1YmE0ZGQ2Y2JlNmQ3MDQ4MjExYWUwNjE5OGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmgKQEAgLTE4NDEsMjMgKzE4NDEsNDUgQEAgYm9vbCBBYnN0cmFjdEludGVy
cHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJl
ckxpbWkKICAgICAgICAgSlNWYWx1ZSByaWdodENvbnN0ID0gZm9yTm9kZShub2RlLT5jaGlsZDIo
KSkudmFsdWUoKTsKICAgICAgICAgaWYgKGxlZnRDb25zdCAmJiByaWdodENvbnN0KSB7CiAgICAg
ICAgICAgICBpZiAobGVmdENvbnN0LmlzTnVtYmVyKCkgJiYgcmlnaHRDb25zdC5pc051bWJlcigp
KSB7CisgICAgICAgICAgICAgICAgYXV0byBjb21wYXJlTnVtYmVyID0gWyZdKGRvdWJsZSBhLCBk
b3VibGUgYikgeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSBDb21wYXJlTGVzczoKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBqc0Jvb2xlYW4oYSA8IGIpOworICAgICAgICAgICAgICAgICAgICBjYXNlIENv
bXBhcmVMZXNzRXE6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ganNCb29sZWFuKGEg
PD0gYik7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQ29tcGFyZUdyZWF0ZXI6CisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4ganNCb29sZWFuKGEgPiBiKTsKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGpzQm9vbGVhbihhID49IGIpOworICAgICAgICAgICAgICAgICAgICBjYXNlIENvbXBhcmVF
cToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBqc0Jvb2xlYW4oYSA9PSBiKTsKKyAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAg
ICAgZG91YmxlIGEgPSBsZWZ0Q29uc3QuYXNOdW1iZXIoKTsKICAgICAgICAgICAgICAgICBkb3Vi
bGUgYiA9IHJpZ2h0Q29uc3QuYXNOdW1iZXIoKTsKKyAgICAgICAgICAgICAgICBzZXRDb25zdGFu
dChub2RlLCBjb21wYXJlTnVtYmVyKGEsIGIpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGxlZnRDb25zdC5pc0JpZ0ludCgpICYmIHJp
Z2h0Q29uc3QuaXNCaWdJbnQoKSkgewogICAgICAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+b3Ao
KSkgewogICAgICAgICAgICAgICAgIGNhc2UgQ29tcGFyZUxlc3M6Ci0gICAgICAgICAgICAgICAg
ICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihhIDwgYikpOworICAgICAgICAgICAgICAg
ICAgICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4oYmlnSW50Q29tcGFyZVJlc3VsdChjb21w
YXJlQmlnSW50KGxlZnRDb25zdCwgcmlnaHRDb25zdCksIEpTQmlnSW50OjpDb21wYXJpc29uTW9k
ZTo6TGVzc1RoYW4pKSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgIGNhc2UgQ29tcGFyZUxlc3NFcToKLSAgICAgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQo
bm9kZSwganNCb29sZWFuKGEgPD0gYikpOworICAgICAgICAgICAgICAgICAgICBzZXRDb25zdGFu
dChub2RlLCBqc0Jvb2xlYW4oYmlnSW50Q29tcGFyZVJlc3VsdChjb21wYXJlQmlnSW50KGxlZnRD
b25zdCwgcmlnaHRDb25zdCksIEpTQmlnSW50OjpDb21wYXJpc29uTW9kZTo6TGVzc1RoYW5PckVx
dWFsKSkpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNl
IENvbXBhcmVHcmVhdGVyOgotICAgICAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBq
c0Jvb2xlYW4oYSA+IGIpKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwg
anNCb29sZWFuKGJpZ0ludENvbXBhcmVSZXN1bHQoY29tcGFyZUJpZ0ludChyaWdodENvbnN0LCBs
ZWZ0Q29uc3QpLCBKU0JpZ0ludDo6Q29tcGFyaXNvbk1vZGU6Okxlc3NUaGFuKSkpOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIENvbXBhcmVHcmVhdGVy
RXE6Ci0gICAgICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihhID49
IGIpKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKGJp
Z0ludENvbXBhcmVSZXN1bHQoY29tcGFyZUJpZ0ludChyaWdodENvbnN0LCBsZWZ0Q29uc3QpLCBK
U0JpZ0ludDo6Q29tcGFyaXNvbk1vZGU6Okxlc3NUaGFuT3JFcXVhbCkpKTsKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBDb21wYXJlRXE6Ci0gICAgICAg
ICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihhID09IGIpKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKGNvbXBhcmVCaWdJbnQo
bGVmdENvbnN0LCByaWdodENvbnN0KSA9PSBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdDo6RXF1
YWwpKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAg
LTE5MzMsNiArMTk1NSw5IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRl
VHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGlmIChu
b2RlLT5jaGlsZDEoKSA9PSBub2RlLT5jaGlsZDIoKSkgewogICAgICAgICAgICAgaWYgKG5vZGUt
PmlzQmluYXJ5VXNlS2luZChJbnQzMlVzZSkgfHwKICAgICAgICAgICAgICAgICBub2RlLT5pc0Jp
bmFyeVVzZUtpbmQoSW50NTJSZXBVc2UpIHx8CisgICAgICAgICAgICAgICAgbm9kZS0+aXNCaW5h
cnlVc2VLaW5kKEJpZ0ludDMyVXNlKSB8fAorICAgICAgICAgICAgICAgIG5vZGUtPmlzQmluYXJ5
VXNlS2luZChIZWFwQmlnSW50VXNlKSB8fAorICAgICAgICAgICAgICAgIG5vZGUtPmlzQmluYXJ5
VXNlS2luZChBbnlCaWdJbnRVc2UpIHx8CiAgICAgICAgICAgICAgICAgbm9kZS0+aXNCaW5hcnlV
c2VLaW5kKFN0cmluZ1VzZSkgfHwKICAgICAgICAgICAgICAgICBub2RlLT5pc0JpbmFyeVVzZUtp
bmQoQm9vbGVhblVzZSkgfHwKICAgICAgICAgICAgICAgICBub2RlLT5pc0JpbmFyeVVzZUtpbmQo
U3ltYm9sVXNlKSB8fApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdE
b2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4
IGU2NDA5YTMwZGM2Y2E1N2MwODg0OTFjY2E1NjZlMDIyMThjM2M0MTEuLjU3NzhkN2RiNDI4ZTE1
ZDNhZWU0ODRhMDVlZGEzMGU0ZGNhY2FiNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0RvZXNHQy5jcHAKQEAgLTQzNCwxMSArNDM0LDE0IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFw
aCwgTm9kZSogbm9kZSkKICAgICBjYXNlIENvbXBhcmVMZXNzRXE6CiAgICAgY2FzZSBDb21wYXJl
R3JlYXRlcjoKICAgICBjYXNlIENvbXBhcmVHcmVhdGVyRXE6CisgICAgICAgIC8vIEZJWE1FOiBB
ZGQgQW55QmlnSW50VXNlIGFuZCBIZWFwQmlnSW50VXNlIHNwZWNpZmljIG9wdGltaXphdGlvbnMg
aW4gREZHIC8gRlRMIGNvZGUgZ2VuZXJhdGlvbiBhbmQgZW5zdXJlIGl0IGRvZXMgbm90IHBlcmZv
cm0gR0MuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTA5MjMKICAgICAgICAgaWYgKG5vZGUtPmlzQmluYXJ5VXNlS2luZChJbnQzMlVzZSkKICNp
ZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgfHwgbm9kZS0+aXNCaW5hcnlVc2VLaW5kKElu
dDUyUmVwVXNlKQogI2VuZGlmCiAgICAgICAgICAgICB8fCBub2RlLT5pc0JpbmFyeVVzZUtpbmQo
RG91YmxlUmVwVXNlKQorICAgICAgICAgICAgfHwgbm9kZS0+aXNCaW5hcnlVc2VLaW5kKEJpZ0lu
dDMyVXNlKQogICAgICAgICAgICAgfHwgbm9kZS0+aXNCaW5hcnlVc2VLaW5kKFN0cmluZ0lkZW50
VXNlKQogICAgICAgICAgICAgKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggYWI3YmE5OTZjMWY1ZmZi
YTZjNjhjOTU4MDdlODg3ODVlZmE4NmI2YS4uM2FkNDBlYzZkN2FkZDI4MGRhZTI1MDRkZGVlNzk2
NmFmZWQ2Nzg1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwCkBAIC04NzIsNiArODcyLDI2IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhhc2Ug
ewogICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9k
ZTo6c2hvdWxkU3BlY3VsYXRlSGVhcEJpZ0ludChub2RlLT5jaGlsZDEoKS5ub2RlKCksIG5vZGUt
PmNoaWxkMigpLm5vZGUoKSkpIHsKKyAgICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRV
c2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRV
c2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5v
ZGVNdXN0R2VuZXJhdGUpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0K
KyNpZiBVU0UoQklHSU5UMzIpCisgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRl
QmlnSW50MzIobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBub2RlLT5jaGlsZDIoKS5ub2RlKCkpKSB7
CisgICAgICAgICAgICAgICAgZml4RWRnZTxCaWdJbnQzMlVzZT4obm9kZS0+Y2hpbGQxKCkpOwor
ICAgICAgICAgICAgICAgIGZpeEVkZ2U8QmlnSW50MzJVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAg
ICAgICAgICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb2RlOjpz
aG91bGRTcGVjdWxhdGVCaWdJbnQobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBub2RlLT5jaGlsZDIo
KS5ub2RlKCkpKSB7CisgICAgICAgICAgICAgICAgZml4RWRnZTxBbnlCaWdJbnRVc2U+KG5vZGUt
PmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBmaXhFZGdlPEFueUJpZ0ludFVzZT4obm9kZS0+
Y2hpbGQyKCkpOworICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5l
cmF0ZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorI2VuZGlmCiAg
ICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlTnVtYmVyT3JCb29sZWFuKG5vZGUt
PmNoaWxkMSgpLm5vZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgpKSkgewogICAgICAgICAgICAg
ICAgIGZpeERvdWJsZU9yQm9vbGVhbkVkZ2Uobm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAg
ICAgIGZpeERvdWJsZU9yQm9vbGVhbkVkZ2Uobm9kZS0+Y2hpbGQyKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCAxNDQ1OGM1ZGRh
NjA4Yjk0MjE1NzQxYzU3MjQ0ZjJkN2EyMTRhODg0Li43ZjRmN2ExZjE4NDAzNWM0ZGEyNmZkMTY2
NjI4NmMyZDg3NmFlYjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcApAQCAtNDAyOCwxOCArNDAyOCwxNiBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlVmFsdWVBZGQoTm9kZSogbm9kZSkKICAgICBpZiAobm9kZS0+aXNCaW5hcnlV
c2VLaW5kKEJpZ0ludDMyVXNlKSkgewogICAgICAgICBTcGVjdWxhdGVCaWdJbnQzMk9wZXJhbmQg
bGVmdCh0aGlzLCBsZWZ0Q2hpbGQpOwogICAgICAgICBTcGVjdWxhdGVCaWdJbnQzMk9wZXJhbmQg
cmlnaHQodGhpcywgcmlnaHRDaGlsZCk7Ci0KLSAgICAgICAgLy8gRklYTUU6IGRvIHdlIHJlYWxs
eSBuZWVkIHRoaXMgZXh0cmEgcmVnaXN0ZXIsIG9yIGNhbiB3ZSBtdXRhdGUgbGVmdC9yaWdodCA/
Ci0gICAgICAgIC8vIEZJWE1FOiBhbHNvLCBsb29rIGludG8gUmV1c2UgYW5kIG90aGVyIHRyaWNr
cyBmb3IgYSBtb3JlIGVmZmljaWVudCBnZW5lcmF0ZWQgY29kZS4KICAgICAgICAgR1BSVGVtcG9y
YXJ5IHJlc3VsdCh0aGlzKTsKLSAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIo
KTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXAodGhpcyk7CisKKyAgICAgICAgR1BSUmVnIGxl
ZnRHUFIgPSBsZWZ0LmdwcigpOworICAgICAgICBHUFJSZWcgcmlnaHRHUFIgPSByaWdodC5ncHIo
KTsKKyAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICAgICAgR1BS
UmVnIHRlbXBHUFIgPSB0ZW1wLmdwcigpOwogCi0gICAgICAgIG1faml0Lm1vdmUobGVmdC5ncHIo
KSwgcmVzdWx0R1BSKTsKLSAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQzMihyZXN1bHRHUFIpOwot
ICAgICAgICBtX2ppdC5tb3ZlKHJpZ2h0LmdwcigpLCB0ZW1wR1BSKTsKLSAgICAgICAgbV9qaXQu
dW5ib3hCaWdJbnQzMih0ZW1wR1BSKTsKKyAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQzMihsZWZ0
R1BSLCByZXN1bHRHUFIpOworICAgICAgICBtX2ppdC51bmJveEJpZ0ludDMyKHJpZ2h0R1BSLCB0
ZW1wR1BSKTsKIAogICAgICAgICAvLyBGSVhNRTogYWRkIHNvbWUgd2F5IHRvIGVsaW1pbmF0ZSB0
aGUgb3ZlcmZsb3cgY2hlY2sKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgY2hlY2sgPSBt
X2ppdC5icmFuY2hBZGQzMihNYWNyb0Fzc2VtYmxlcjo6T3ZlcmZsb3csIHJlc3VsdEdQUiwgdGVt
cEdQUiwgcmVzdWx0R1BSKTsKQEAgLTQxMzQsMTggKzQxMzIsMTYgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVZhbHVlU3ViKE5vZGUqIG5vZGUpCiAgICAgaWYgKG5vZGUtPmJpbmFyeVVz
ZUtpbmQoKSA9PSBCaWdJbnQzMlVzZSkgewogICAgICAgICBTcGVjdWxhdGVCaWdJbnQzMk9wZXJh
bmQgbGVmdCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIFNwZWN1bGF0ZUJpZ0ludDMy
T3BlcmFuZCByaWdodCh0aGlzLCBub2RlLT5jaGlsZDIoKSk7Ci0KLSAgICAgICAgLy8gRklYTUU6
IGRvIHdlIHJlYWxseSBuZWVkIHRoaXMgZXh0cmEgcmVnaXN0ZXIsIG9yIGNhbiB3ZSBtdXRhdGUg
bGVmdC9yaWdodCA/Ci0gICAgICAgIC8vIEZJWE1FOiBhbHNvLCBsb29rIGludG8gUmV1c2UgYW5k
IG90aGVyIHRyaWNrcyBmb3IgYSBtb3JlIGVmZmljaWVudCBnZW5lcmF0ZWQgY29kZS4KICAgICAg
ICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKLSAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9
IHJlc3VsdC5ncHIoKTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXAodGhpcyk7CisKKyAgICAg
ICAgR1BSUmVnIGxlZnRHUFIgPSBsZWZ0LmdwcigpOworICAgICAgICBHUFJSZWcgcmlnaHRHUFIg
PSByaWdodC5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsK
ICAgICAgICAgR1BSUmVnIHRlbXBHUFIgPSB0ZW1wLmdwcigpOwogCi0gICAgICAgIG1faml0Lm1v
dmUobGVmdC5ncHIoKSwgcmVzdWx0R1BSKTsKLSAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQzMihy
ZXN1bHRHUFIpOwotICAgICAgICBtX2ppdC5tb3ZlKHJpZ2h0LmdwcigpLCB0ZW1wR1BSKTsKLSAg
ICAgICAgbV9qaXQudW5ib3hCaWdJbnQzMih0ZW1wR1BSKTsKKyAgICAgICAgbV9qaXQudW5ib3hC
aWdJbnQzMihsZWZ0R1BSLCByZXN1bHRHUFIpOworICAgICAgICBtX2ppdC51bmJveEJpZ0ludDMy
KHJpZ2h0R1BSLCB0ZW1wR1BSKTsKIAogICAgICAgICAvLyBGSVhNRTogYWRkIHNvbWUgd2F5IHRv
IGVsaW1pbmF0ZSB0aGUgb3ZlcmZsb3cgY2hlY2sKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1
bXAgY2hlY2sgPSBtX2ppdC5icmFuY2hTdWIzMihNYWNyb0Fzc2VtYmxlcjo6T3ZlcmZsb3csIHJl
c3VsdEdQUiwgdGVtcEdQUiwgcmVzdWx0R1BSKTsKQEAgLTQ5ODQsMTggKzQ5ODAsMTYgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlTXVsKE5vZGUqIG5vZGUpCiAgICAgICAgIC8v
IEZJWE1FOiB0aGUgY29kZSBiZXR3ZWVuIGNvbXBpbGVWYWx1ZUFkZCwgY29tcGlsZVZhbHVlU3Vi
IGFuZCBjb21waWxlVmFsdWVNdWwgZm9yIEJpZ0ludDMyIGlzIG5lYXJseSBpZGVudGljYWwsIHNv
IHRyeSB0byBnZXQgcmlkIG9mIHRoZSBkdXBsaWNhdGlvbi4KICAgICAgICAgU3BlY3VsYXRlQmln
SW50MzJPcGVyYW5kIGxlZnQodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBTcGVjdWxh
dGVCaWdJbnQzMk9wZXJhbmQgcmlnaHQodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwotCi0gICAgICAg
IC8vIEZJWE1FOiBkbyB3ZSByZWFsbHkgbmVlZCB0aGlzIGV4dHJhIHJlZ2lzdGVyLCBvciBjYW4g
d2UgbXV0YXRlIGxlZnQvcmlnaHQgPwotICAgICAgICAvLyBGSVhNRTogYWxzbywgbG9vayBpbnRv
IFJldXNlIGFuZCBvdGhlciB0cmlja3MgZm9yIGEgbW9yZSBlZmZpY2llbnQgZ2VuZXJhdGVkIGNv
ZGUuCiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7Ci0gICAgICAgIEdQUlJlZyBy
ZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wKHRoaXMp
OworCisgICAgICAgIEdQUlJlZyBsZWZ0R1BSID0gbGVmdC5ncHIoKTsKKyAgICAgICAgR1BSUmVn
IHJpZ2h0R1BSID0gcmlnaHQuZ3ByKCk7CisgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1
bHQuZ3ByKCk7CiAgICAgICAgIEdQUlJlZyB0ZW1wR1BSID0gdGVtcC5ncHIoKTsKIAotICAgICAg
ICBtX2ppdC5tb3ZlKGxlZnQuZ3ByKCksIHJlc3VsdEdQUik7Ci0gICAgICAgIG1faml0LnVuYm94
QmlnSW50MzIocmVzdWx0R1BSKTsKLSAgICAgICAgbV9qaXQubW92ZShyaWdodC5ncHIoKSwgdGVt
cEdQUik7Ci0gICAgICAgIG1faml0LnVuYm94QmlnSW50MzIodGVtcEdQUik7CisgICAgICAgIG1f
aml0LnVuYm94QmlnSW50MzIobGVmdEdQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAgbV9qaXQudW5i
b3hCaWdJbnQzMihyaWdodEdQUiwgdGVtcEdQUik7CiAKICAgICAgICAgLy8gRklYTUU6IGFkZCBz
b21lIHdheSB0byBlbGltaW5hdGUgdGhlIG92ZXJmbG93IGNoZWNrCiAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wIGNoZWNrID0gbV9qaXQuYnJhbmNoTXVsMzIoTWFjcm9Bc3NlbWJsZXI6Ok92
ZXJmbG93LCByZXN1bHRHUFIsIHRlbXBHUFIsIHJlc3VsdEdQUik7CkBAIC02MjUyLDYgKzYyNDYs
NyBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpjb21wYXJlKE5vZGUqIG5vZGUsIE1hY3JvQXNzZW1i
bGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogI2VuZGlmCisKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIGlmIChub2RlLT5pc0JpbmFyeVVz
ZUtpbmQoSW50NTJSZXBVc2UpKSB7CiAgICAgICAgIGNvbXBpbGVJbnQ1MkNvbXBhcmUobm9kZSwg
Y29uZGl0aW9uKTsKQEAgLTYzMjAsNyArNjMxNSw3IEBAIGJvb2wgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBhcmUoTm9kZSogbm9kZSwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24gY29u
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBub25TcGVjdWxhdGl2ZU5vblBlZXBob2xlQ29tcGFy
ZShub2RlLCBjb25kaXRpb24sIG9wZXJhdGlvbik7CisgICAgZ2VuZXJpY0pTVmFsdWVOb25QZWVw
aG9sZUNvbXBhcmUobm9kZSwgY29uZGl0aW9uLCBvcGVyYXRpb24pOwogICAgIHJldHVybiBmYWxz
ZTsKIH0KIApAQCAtMTQxMTUsMTEgKzE0MTEwLDEzIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNh
Y2hlZFB1dEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgSlNWYWx1
CiAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoV1RGTW92ZShzbG93UGF0aCkpOwogfQogCi12b2lk
IFNwZWN1bGF0aXZlSklUOjpub25TcGVjdWxhdGl2ZU5vblBlZXBob2xlQ29tcGFyZShOb2RlKiBu
b2RlLCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBTX0pJVE9wZXJh
dGlvbl9HSkogaGVscGVyRnVuY3Rpb24pCit2b2lkIFNwZWN1bGF0aXZlSklUOjpnZW5lcmljSlNW
YWx1ZU5vblBlZXBob2xlQ29tcGFyZShOb2RlKiBub2RlLCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRp
b25hbENvbmRpdGlvbiBjb25kLCBTX0pJVE9wZXJhdGlvbl9HSkogaGVscGVyRnVuY3Rpb24pCiB7
Ci0gICAgQVNTRVJUKG5vZGUtPmlzQmluYXJ5VXNlS2luZChVbnR5cGVkVXNlKSk7Ci0gICAgSlNW
YWx1ZU9wZXJhbmQgYXJnMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgSlNWYWx1ZU9wZXJh
bmQgYXJnMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7CisgICAgQVNTRVJUKG5vZGUtPmlzQmluYXJ5
VXNlS2luZChVbnR5cGVkVXNlKSB8fCBub2RlLT5pc0JpbmFyeVVzZUtpbmQoQW55QmlnSW50VXNl
KSB8fCBub2RlLT5pc0JpbmFyeVVzZUtpbmQoSGVhcEJpZ0ludFVzZSkpOworICAgIEpTVmFsdWVP
cGVyYW5kIGFyZzEodGhpcywgbm9kZS0+Y2hpbGQxKCksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlv
bik7CisgICAgSlNWYWx1ZU9wZXJhbmQgYXJnMih0aGlzLCBub2RlLT5jaGlsZDIoKSwgTWFudWFs
T3BlcmFuZFNwZWN1bGF0aW9uKTsKKyAgICBzcGVjdWxhdGUobm9kZSwgbm9kZS0+Y2hpbGQxKCkp
OworICAgIHNwZWN1bGF0ZShub2RlLCBub2RlLT5jaGlsZDIoKSk7CiAKICAgICBKU1ZhbHVlUmVn
cyBhcmcxUmVncyA9IGFyZzEuanNWYWx1ZVJlZ3MoKTsKICAgICBKU1ZhbHVlUmVncyBhcmcyUmVn
cyA9IGFyZzIuanNWYWx1ZVJlZ3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuaAppbmRleCAwZTI1NzVkMWM2NDU4MjliMDYwOGE3OGU2NTFhZWMyMzZj
NWJjY2JhLi41YWNlNTI1NWVkMDI3NjUzNWRhMWZhNjhiZjhjMDlkMmFhZmVjOTk5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC03NDMsNyAr
NzQzLDcgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVQ
ZWVwaG9sZUJyYW5jaE51bGxPclVuZGVmaW5lZChFZGdlIG9wZXJhbmQsIE5vZGUqIGJyYW5jaE5v
ZGUpOwogICAgIAogICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVQZWVwaG9sZUJyYW5jaChOb2RlKiwg
Tm9kZSogYnJhbmNoTm9kZSwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24sIFNf
SklUT3BlcmF0aW9uX0dKSiBoZWxwZXJGdW5jdGlvbik7Ci0gICAgdm9pZCBub25TcGVjdWxhdGl2
ZU5vblBlZXBob2xlQ29tcGFyZShOb2RlKiwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9uYWxDb25k
aXRpb24sIFNfSklUT3BlcmF0aW9uX0dKSiBoZWxwZXJGdW5jdGlvbik7CisgICAgdm9pZCBnZW5l
cmljSlNWYWx1ZU5vblBlZXBob2xlQ29tcGFyZShOb2RlKiwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0
aW9uYWxDb25kaXRpb24sIFNfSklUT3BlcmF0aW9uX0dKSiBoZWxwZXJGdW5jdGlvbik7CiAgICAg
CiAgICAgdm9pZCBub25TcGVjdWxhdGl2ZVBlZXBob2xlU3RyaWN0RXEoTm9kZSosIE5vZGUqIGJy
YW5jaE5vZGUsIGJvb2wgaW52ZXJ0ID0gZmFsc2UpOwogICAgIHZvaWQgZ2VuZXJpY0pTVmFsdWVO
b25QZWVwaG9sZVN0cmljdEVxKE5vZGUqLCBib29sIGludmVydCA9IGZhbHNlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDM3
ODgzZDM4YTZiYzBjOWVlMTM3Y2RmOTE4MjQwNDZmZTk5OTEzN2EuLmI4ZDNhNTNhNzNhMTYxMDcx
NjEzYWNlMjNlNTVjMGMxODAxMDkxNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMTc1MywyMSArMTc1MywxNiBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlQmlnSW50MzJDb21wYXJlKE5vZGUqIG5vZGUsIE1hY3Jv
QXNzZW1ibGVyOjpSZWxhdGlvbgogCiAgICAgaWYgKGNvbmRpdGlvbiA9PSBNYWNyb0Fzc2VtYmxl
cjo6RXF1YWwgfHwgY29uZGl0aW9uID09IE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCkgewogICAg
ICAgICAvLyBObyBuZWVkIHRvIHVuYm94IHRoZSBvcGVyYW5kcywgc2luY2UgdGhlIHRhZyBiaXRz
IGFyZSBpZGVudGljYWwKLSAgICAgICAgbV9qaXQuY29tcGFyZTY0KGNvbmRpdGlvbiwgb3AxLmdw
cigpLCBvcDIuZ3ByKCksIHJlc3VsdC5ncHIoKSk7CisgICAgICAgIG1faml0LmNvbXBhcmU2NChj
b25kaXRpb24sIG9wMUdQUiwgb3AyR1BSLCByZXN1bHRHUFIpOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIEdQUlRlbXBvcmFyeSB0ZW1wKHRoaXMpOwogICAgICAgICBHUFJSZWcgdGVtcEdQUiA9IHRl
bXAuZ3ByKCk7CiAKLSAgICAgICAgbV9qaXQubW92ZShvcDFHUFIsIHRlbXBHUFIpOwotICAgICAg
ICBtX2ppdC51bmJveEJpZ0ludDMyKHRlbXBHUFIpOwotICAgICAgICBtX2ppdC5tb3ZlKG9wMkdQ
UiwgcmVzdWx0R1BSKTsKLSAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQzMihyZXN1bHRHUFIpOwot
ICAgICAgICBtX2ppdC5jb21wYXJlNjQoY29uZGl0aW9uLCB0ZW1wR1BSLCByZXN1bHRHUFIsIHJl
c3VsdEdQUik7CisgICAgICAgIG1faml0LnVuYm94QmlnSW50MzIob3AxR1BSLCB0ZW1wR1BSKTsK
KyAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQzMihvcDJHUFIsIHJlc3VsdEdQUik7CisgICAgICAg
IG1faml0LmNvbXBhcmUzMihjb25kaXRpb24sIHRlbXBHUFIsIHJlc3VsdEdQUiwgcmVzdWx0R1BS
KTsKICAgICB9Ci0KLSAgICAvLyBJZiB3ZSBhZGQgYSBEYXRhRm9ybWF0Qm9vbCwgd2Ugc2hvdWxk
IHVzZSBpdCBoZXJlLgotICAgIG1faml0Lm9yMzIoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OlZhbHVl
RmFsc2UpLCByZXN1bHQuZ3ByKCkpOwotICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0LmdwcigpLCBt
X2N1cnJlbnROb2RlLCBEYXRhRm9ybWF0SlNCb29sZWFuKTsKKyAgICB1bmJsZXNzZWRCb29sZWFu
UmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiB9CiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVQZWVwSG9sZUJpZ0ludDMyQnJhbmNoKE5vZGUqIG5vZGUsIE5vZGUqIGJyYW5jaE5vZGUsIEpJ
VENvbXBpbGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmRpdGlvbikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCAwOTNiZDU4N2U1MjYwMThj
Y2Y4MTBiNjNhMTc0OWM4NzYzYzQ2YjY3Li41ODczMjY2NmVkOGE1NTlmNTEyZGRmYmI1MzlmZWM4
MDBkODY3YmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCkBAIC04NjYxLDcgKzg2NjEsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAg
ICB9CiAKICAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBtX25vZGUsIG1fbm9kZS0+aXNCaW5h
cnlVc2VLaW5kKFVudHlwZWRVc2UpLCBtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSwgbV9ub2Rl
LT5jaGlsZDIoKS51c2VLaW5kKCkpOwotICAgICAgICBub25TcGVjdWxhdGl2ZUNvbXBhcmUoCisg
ICAgICAgIGdlbmVyaWNKU1ZhbHVlQ29tcGFyZSgKICAgICAgICAgICAgIFsmXSAoTFZhbHVlIGxl
ZnQsIExWYWx1ZSByaWdodCkgewogICAgICAgICAgICAgICAgIHJldHVybiBtX291dC5lcXVhbChs
ZWZ0LCByaWdodCk7CiAgICAgICAgICAgICB9LApAQCAtODk0OSw3ICs4OTQ5LDcgQEAgY2xhc3Mg
TG93ZXJERkdUb0IzIHsKIAogICAgICAgICAvLyBGSVhNRTogd2UgY2FuIGRvIHNvbWV0aGluZyBt
dWNoIHNtYXJ0ZXIgaGVyZSwgc2VlIHRoZSBERkdTcGVjdWxhdGl2ZUpJVCBhcHByb2FjaCBpbiBl
LmcuIFNwZWN1bGF0aXZlSklUOjpub25TcGVjdWxhdGl2ZVBlZXBob2xlU3RyaWN0RXEKICAgICAg
ICAgREZHX0FTU0VSVChtX2dyYXBoLCBtX25vZGUsIG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKFVu
dHlwZWRVc2UpLCBtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSwgbV9ub2RlLT5jaGlsZDIoKS51
c2VLaW5kKCkpOwotICAgICAgICBub25TcGVjdWxhdGl2ZUNvbXBhcmUoCisgICAgICAgIGdlbmVy
aWNKU1ZhbHVlQ29tcGFyZSgKICAgICAgICAgICAgIFsmXSAoTFZhbHVlIGxlZnQsIExWYWx1ZSBy
aWdodCkgewogICAgICAgICAgICAgICAgIHJldHVybiBtX291dC5lcXVhbChsZWZ0LCByaWdodCk7
CiAgICAgICAgICAgICB9LApAQCAtMTM1NTYsNiArMTM1NTYsMTMgQEAgY2xhc3MgTG93ZXJERkdU
b0IzIHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCisgICAgICAgIGlmIChtX25v
ZGUtPmlzQmluYXJ5VXNlS2luZChCaWdJbnQzMlVzZSkpIHsKKyAgICAgICAgICAgIExWYWx1ZSBs
ZWZ0ID0gbG93QmlnSW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUg
cmlnaHQgPSBsb3dCaWdJbnQzMihtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgIHNldEJv
b2xlYW4oaW50RnVuY3Rvcih1bmJveEJpZ0ludDMyKGxlZnQpLCB1bmJveEJpZ0ludDMyKHJpZ2h0
KSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAgICAgaWYgKG1fbm9k
ZS0+aXNCaW5hcnlVc2VLaW5kKFN0cmluZ0lkZW50VXNlKSkgewogICAgICAgICAgICAgTFZhbHVl
IGxlZnQgPSBsb3dTdHJpbmdJZGVudChtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIExW
YWx1ZSByaWdodCA9IGxvd1N0cmluZ0lkZW50KG1fbm9kZS0+Y2hpbGQyKCkpOwpAQCAtMTM1NzYs
OCArMTM1ODMsOCBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAKLSAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBtX25vZGUsIG1fbm9kZS0+
aXNCaW5hcnlVc2VLaW5kKFVudHlwZWRVc2UpLCBtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSwg
bV9ub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkpOwotICAgICAgICBub25TcGVjdWxhdGl2ZUNvbXBh
cmUoaW50RnVuY3RvciwgZmFsbGJhY2tGdW5jdGlvbik7CisgICAgICAgIERGR19BU1NFUlQobV9n
cmFwaCwgbV9ub2RlLCBtX25vZGUtPmlzQmluYXJ5VXNlS2luZChVbnR5cGVkVXNlKSB8fCBtX25v
ZGUtPmlzQmluYXJ5VXNlS2luZChIZWFwQmlnSW50VXNlKSB8fCBtX25vZGUtPmlzQmluYXJ5VXNl
S2luZChBbnlCaWdJbnRVc2UpLCBtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSwgbV9ub2RlLT5j
aGlsZDIoKS51c2VLaW5kKCkpOworICAgICAgICBnZW5lcmljSlNWYWx1ZUNvbXBhcmUoaW50RnVu
Y3RvciwgZmFsbGJhY2tGdW5jdGlvbik7CiAgICAgfQogCiAgICAgdm9pZCBjb21waWxlU3RyaW5n
U2xpY2UoKQpAQCAtMTQ1NDcsMTEgKzE0NTU0LDEzIEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAg
ICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSW50RnVuY3Rvcj4KLSAgICB2b2lkIG5vblNw
ZWN1bGF0aXZlQ29tcGFyZShjb25zdCBJbnRGdW5jdG9yJiBpbnRGdW5jdG9yLCBTX0pJVE9wZXJh
dGlvbl9HSkogaGVscGVyRnVuY3Rpb24pCisgICAgdm9pZCBnZW5lcmljSlNWYWx1ZUNvbXBhcmUo
Y29uc3QgSW50RnVuY3RvciYgaW50RnVuY3RvciwgU19KSVRPcGVyYXRpb25fR0pKIGhlbHBlckZ1
bmN0aW9uKQogICAgIHsKICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1f
Z3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKTsKLSAgICAgICAg
TFZhbHVlIGxlZnQgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBMVmFs
dWUgcmlnaHQgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICBMVmFsdWUg
bGVmdCA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDEoKSwgTWFudWFsT3BlcmFuZFNwZWN1bGF0
aW9uKTsKKyAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMigp
LCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICBzcGVjdWxhdGUobV9ub2RlLT5j
aGlsZDEoKSk7CisgICAgICAgIHNwZWN1bGF0ZShtX25vZGUtPmNoaWxkMigpKTsKICAgICAgICAg
CiAgICAgICAgIExCYXNpY0Jsb2NrIGxlZnRJc0ludCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAg
ICAgIExCYXNpY0Jsb2NrIGZhc3RQYXRoID0gbV9vdXQubmV3QmxvY2soKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDQ5NWYzMGQyM2IzOTJhMjE5
M2Y5YTY3YjQ2NmNhNzhlOGNmODc3MDUuLjkyY2ExNGU5ZTMzYWUwMjI5MjRjZDQyZDQ2MzFjMjVh
YTkwMTc4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlI
ZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMu
aApAQCAtMTM5OCw5ICsxMzk4LDE0IEBAIGNsYXNzIEFzc2VtYmx5SGVscGVycyA6IHB1YmxpYyBN
YWNyb0Fzc2VtYmxlciB7CiAjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKIAogI2lmIFVTRShCSUdJ
TlQzMikKLSAgICB2b2lkIHVuYm94QmlnSW50MzIoR1BSUmVnIGdwcikKKyAgICB2b2lkIHVuYm94
QmlnSW50MzIoR1BSUmVnIHNyYywgR1BSUmVnIGRlc3QpCiAgICAgewotICAgICAgICB1cnNoaWZ0
NjQodHJ1c3RlZEltbTMyRm9yU2hpZnQoSW1tMzIoMTYpKSwgZ3ByKTsKKyNpZiBDUFUoQVJNNjQp
CisgICAgICAgIHVyc2hpZnQ2NChzcmMsIHRydXN0ZWRJbW0zMkZvclNoaWZ0KEltbTMyKDE2KSks
IGRlc3QpOworI2Vsc2UKKyAgICAgICAgbW92ZShzcmMsIGRlc3QpOworICAgICAgICB1cnNoaWZ0
NjQodHJ1c3RlZEltbTMyRm9yU2hpZnQoSW1tMzIoMTYpKSwgZGVzdCk7CisjZW5kaWYKICAgICB9
CiAKICAgICB2b2lkIGJveEJpZ0ludDMyKEdQUlJlZyBncHIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JpZ0ludC5jcHAKaW5kZXggYThhMzA4NDQwNTIwZmM0MTYwNDMwMzBkMzdk
ZTA1NGE4ZTNhYWRkMi4uYjdhNGJkOWZkNjkxZjVmNTU4ZjFmYjg4NWRlNDEzOGMzMTcwMzEzNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcApAQCAtMjAyMCw2
ICsyMDIwLDM0IEBAIGJvb2wgSlNCaWdJbnQ6OmVxdWFsc1RvSW50MzIoaW50MzJfdCB2YWx1ZSkK
ICAgICByZXR1cm4gKHRoaXMtPmxlbmd0aCgpID09IDEpICYmICh0aGlzLT5zaWduKCkgPT0gKHZh
bHVlIDwgMCkpICYmICh0aGlzLT5kaWdpdCgwKSA9PSBzdGF0aWNfY2FzdDxEaWdpdD4oc3RkOjph
YnMoc3RhdGljX2Nhc3Q8aW50NjRfdD4odmFsdWUpKSkpOwogfQogCitKU0JpZ0ludDo6Q29tcGFy
aXNvblJlc3VsdCBKU0JpZ0ludDo6Y29tcGFyZVRvSW50MzIoaW50MzJfdCB2YWx1ZSkKK3sKKyAg
ICBib29sIHhTaWduID0gc2lnbigpOworICAgIGJvb2wgeVNpZ24gPSB2YWx1ZSA8IDA7CisKKyAg
ICBpZiAoeFNpZ24gIT0geVNpZ24pCisgICAgICAgIHJldHVybiB4U2lnbiA/IENvbXBhcmlzb25S
ZXN1bHQ6Okxlc3NUaGFuIDogQ29tcGFyaXNvblJlc3VsdDo6R3JlYXRlclRoYW47CisgICAgaWYg
KGlzWmVybygpKSB7CisgICAgICAgIGlmICh2YWx1ZSA9PSAwKQorICAgICAgICAgICAgcmV0dXJu
IENvbXBhcmlzb25SZXN1bHQ6OkVxdWFsOworICAgICAgICByZXR1cm4gQ29tcGFyaXNvblJlc3Vs
dDo6TGVzc1RoYW47CisgICAgfQorCisgICAgaWYgKGxlbmd0aCgpICE9IDEpCisgICAgICAgIHJl
dHVybiB4U2lnbiA/IENvbXBhcmlzb25SZXN1bHQ6Okxlc3NUaGFuIDogQ29tcGFyaXNvblJlc3Vs
dDo6R3JlYXRlclRoYW47CisKKyAgICB1aW50NjRfdCB2YWx1ZTY0ID0gMDsKKyAgICBpZiAoeFNp
Z24pCisgICAgICAgIHZhbHVlNjQgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oLXN0YXRpY19jYXN0
PGludDY0X3Q+KHZhbHVlKSk7CisgICAgZWxzZQorICAgICAgICB2YWx1ZTY0ID0gdmFsdWU7Cisg
ICAgaWYgKGRpZ2l0KDApID09IHZhbHVlNjQpCisgICAgICAgIHJldHVybiBDb21wYXJpc29uUmVz
dWx0OjpFcXVhbDsKKyAgICBpZiAoZGlnaXQoMCkgPCB2YWx1ZTY0KQorICAgICAgICByZXR1cm4g
eFNpZ24gPyBDb21wYXJpc29uUmVzdWx0OjpHcmVhdGVyVGhhbiA6IENvbXBhcmlzb25SZXN1bHQ6
Okxlc3NUaGFuOworICAgIHJldHVybiB4U2lnbiA/IENvbXBhcmlzb25SZXN1bHQ6Okxlc3NUaGFu
IDogQ29tcGFyaXNvblJlc3VsdDo6R3JlYXRlclRoYW47Cit9CisKIEpTQmlnSW50OjpDb21wYXJp
c29uUmVzdWx0IEpTQmlnSW50Ojpjb21wYXJlVG9Eb3VibGUoSlNCaWdJbnQqIHgsIGRvdWJsZSB5
KQogewogICAgIC8vIFRoaXMgYWxnb3JpdGhtIGV4cGVjdCB0aGF0IHRoZSBkb3VibGUgZm9ybWF0
IGlzIElFRUUgNzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JpZ0ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaAppbmRl
eCBlZjgwYTUxYWY1NWU5ZmJiNzc3OGM5MTgyMmRlY2ExZThlNGMwMmM5Li4yN2NiY2Y5OTQ0OTAz
N2MwZWE1MjAwMDczYjQ4OTEyMjVmODM3MTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0JpZ0ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQmlnSW50LmgKQEAgLTEyNCw2ICsxMjQsOSBAQCBjbGFzcyBKU0JpZ0ludCBmaW5hbCA6
IHB1YmxpYyBKU0NlbGwgewogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29sIGVxdWFs
cyhKU0JpZ0ludCosIEpTQmlnSW50Kik7CiAgICAgYm9vbCBlcXVhbHNUb051bWJlcihKU1ZhbHVl
KTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGVxdWFsc1RvSW50MzIoaW50MzJfdCk7Cisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgQ29tcGFyaXNvblJlc3VsdCBjb21wYXJlVG9JbnQzMihpbnQz
Ml90KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGxlc3NUaGFuSW50MzIoaW50MzJfdCk7
CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBsZXNzVGhhbkVxdWFsSW50MzIoaW50MzJfdCk7
CiAgICAgc3RhdGljIENvbXBhcmlzb25SZXN1bHQgY29tcGFyZShKU0JpZ0ludCogeCwgSlNCaWdJ
bnQqIHkpOwogCiAgICAgYm9vbCBnZXRQcmltaXRpdmVOdW1iZXIoSlNHbG9iYWxPYmplY3QqLCBk
b3VibGUmIG51bWJlciwgSlNWYWx1ZSYgcmVzdWx0KSBjb25zdDsKQEAgLTI4Nyw0ICsyOTAsMTYg
QEAgaW5saW5lIHZvaWQgSlNCaWdJbnQ6OnNldERpZ2l0KHVuc2lnbmVkIG4sIERpZ2l0IHZhbHVl
KQogICAgIGRhdGFTdG9yYWdlKClbbl0gPSB2YWx1ZTsKIH0KIAorQUxXQVlTX0lOTElORSBKU0Jp
Z0ludDo6Q29tcGFyaXNvblJlc3VsdCBzd2FwQmlnSW50Q29tcGFyZVJlc3VsdChKU0JpZ0ludDo6
Q29tcGFyaXNvblJlc3VsdCBjb21wYXJpc29uUmVzdWx0KQoreworICAgIHN3aXRjaCAoY29tcGFy
aXNvblJlc3VsdCkgeworICAgIGNhc2UgSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQ6OkdyZWF0
ZXJUaGFuOgorICAgICAgICByZXR1cm4gSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQ6Okxlc3NU
aGFuOworICAgIGNhc2UgSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQ6Okxlc3NUaGFuOgorICAg
ICAgICByZXR1cm4gSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQ6OkdyZWF0ZXJUaGFuOworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBjb21wYXJpc29uUmVzdWx0OworICAgIH0KK30KKwog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRp
b25zLmgKaW5kZXggMTc3ZWRhMGU5OWM4MDcwMWFhZTBjNjVhNjM2NWM2ZGI1MTVlNzM0MC4uNTY0
ODhmYzg4N2ZiNjU5YzYzZmYxZTE3YjViMTg5OTdlMGNmYjIzMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaApAQCAtMjM4LDYgKzIzOCwzMiBAQCBBTFdBWVNf
SU5MSU5FIEpTVmFsdWUganNTdHJpbmdGcm9tUmVnaXN0ZXJBcnJheShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBSZQogICAgIHJldHVybiByb3BlQnVpbGRlci5yZWxlYXNlKCk7CiB9CiAK
K0FMV0FZU19JTkxJTkUgSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQgY29tcGFyZUJpZ0ludChK
U1ZhbHVlIGxlZnQsIEpTVmFsdWUgcmlnaHQpCit7CisgICAgQVNTRVJUKGxlZnQuaXNCaWdJbnQo
KSk7CisgICAgQVNTRVJUKHJpZ2h0LmlzQmlnSW50KCkpOworI2lmIFVTRShCSUdJTlQzMikKKyAg
ICBpZiAobGVmdC5pc0JpZ0ludDMyKCkpIHsKKyAgICAgICAgaWYgKHJpZ2h0LmlzQmlnSW50MzIo
KSkgeworICAgICAgICAgICAgaW50MzJfdCBsZWZ0SW50MzIgPSBsZWZ0LmJpZ0ludDMyQXNJbnQz
MigpOworICAgICAgICAgICAgaW50MzJfdCByaWdodEludDMyID0gcmlnaHQuYmlnSW50MzJBc0lu
dDMyKCk7CisgICAgICAgICAgICBpZiAobGVmdEludDMyID09IHJpZ2h0SW50MzIpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIEpTQmlnSW50OjpDb21wYXJpc29uUmVzdWx0OjpFcXVhbDsKKyAgICAg
ICAgICAgIGlmIChsZWZ0SW50MzIgPCByaWdodEludDMyKQorICAgICAgICAgICAgICAgIHJldHVy
biBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdDo6TGVzc1RoYW47CisgICAgICAgICAgICByZXR1
cm4gSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQ6OkdyZWF0ZXJUaGFuOworICAgICAgICB9Cisg
ICAgICAgIEFTU0VSVChyaWdodC5pc0hlYXBCaWdJbnQoKSk7CisgICAgICAgIHJldHVybiBzd2Fw
QmlnSW50Q29tcGFyZVJlc3VsdChyaWdodC5hc0hlYXBCaWdJbnQoKS0+Y29tcGFyZVRvSW50MzIo
bGVmdC5iaWdJbnQzMkFzSW50MzIoKSkpOworICAgIH0KKyAgICBpZiAocmlnaHQuaXNCaWdJbnQz
MigpKSB7CisgICAgICAgIEFTU0VSVChsZWZ0LmlzSGVhcEJpZ0ludCgpKTsKKyAgICAgICAgcmV0
dXJuIGxlZnQuYXNIZWFwQmlnSW50KCktPmNvbXBhcmVUb0ludDMyKHJpZ2h0LmJpZ0ludDMyQXNJ
bnQzMigpKTsKKyAgICB9CisjZW5kaWYKKyAgICByZXR1cm4gSlNCaWdJbnQ6OmNvbXBhcmUobGVm
dC5hc0hlYXBCaWdJbnQoKSwgcmlnaHQuYXNIZWFwQmlnSW50KCkpOworfQorCiBBTFdBWVNfSU5M
SU5FIEpTQmlnSW50OjpDb21wYXJpc29uUmVzdWx0IGNvbXBhcmVCaWdJbnRUb090aGVyUHJpbWl0
aXZlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQmlnSW50KiB2MSwgSlNWYWx1ZSBw
cmltVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjY3LDYg
KzI5Myw0NiBAQCBBTFdBWVNfSU5MSU5FIEpTQmlnSW50OjpDb21wYXJpc29uUmVzdWx0IGNvbXBh
cmVCaWdJbnRUb090aGVyUHJpbWl0aXZlKEpTR2xvYmFsTwogICAgIHJldHVybiBKU0JpZ0ludDo6
Y29tcGFyZVRvRG91YmxlKHYxLCBudW1iZXJWYWx1ZSk7CiB9CiAKK0FMV0FZU19JTkxJTkUgSlNC
aWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQgY29tcGFyZUJpZ0ludDMyVG9PdGhlclByaW1pdGl2ZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQzMl90IHYxLCBKU1ZhbHVlIHByaW1WYWx1
ZSkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgQVNTRVJUKHByaW1WYWx1ZS5pc1ByaW1p
dGl2ZSgpKTsKKyAgICBBU1NFUlQoIXByaW1WYWx1ZS5pc0JpZ0ludCgpKTsKKworICAgIGF1dG8g
Y29tcGFyZSA9IFsmXSAoYXV0byB2MSwgYXV0byB2MikgeworICAgICAgICBzdGF0aWNfYXNzZXJ0
KHN0ZDo6aXNfc2FtZV92PGRlY2x0eXBlKHYxKSwgZGVjbHR5cGUodjIpPik7CisgICAgICAgIGlm
ICh2MSA9PSB2MikKKyAgICAgICAgICAgIHJldHVybiBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3Vs
dDo6RXF1YWw7CisgICAgICAgIGlmICh2MSA8IHYyKQorICAgICAgICAgICAgcmV0dXJuIEpTQmln
SW50OjpDb21wYXJpc29uUmVzdWx0OjpMZXNzVGhhbjsKKyAgICAgICAgcmV0dXJuIEpTQmlnSW50
OjpDb21wYXJpc29uUmVzdWx0OjpHcmVhdGVyVGhhbjsKKyAgICB9OworCisgICAgaWYgKHByaW1W
YWx1ZS5pc1N0cmluZygpKSB7CisgICAgICAgIEpTVmFsdWUgYmlnSW50VmFsdWUgPSBKU0JpZ0lu
dDo6c3RyaW5nVG9CaWdJbnQoZ2xvYmFsT2JqZWN0LCBhc1N0cmluZyhwcmltVmFsdWUpLT52YWx1
ZShnbG9iYWxPYmplY3QpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNC
aWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQ6OlVuZGVmaW5lZCk7CisgICAgICAgIGlmICghYmlnSW50
VmFsdWUpCisgICAgICAgICAgICByZXR1cm4gSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQ6OlVu
ZGVmaW5lZDsKKworICAgICAgICBpZiAoYmlnSW50VmFsdWUuaXNIZWFwQmlnSW50KCkpCisgICAg
ICAgICAgICByZXR1cm4gc3dhcEJpZ0ludENvbXBhcmVSZXN1bHQoYmlnSW50VmFsdWUuYXNIZWFw
QmlnSW50KCktPmNvbXBhcmVUb0ludDMyKHYxKSk7CisKKyAgICAgICAgQVNTRVJUKGJpZ0ludFZh
bHVlLmlzQmlnSW50MzIoKSk7CisjaWYgVVNFKEJJR0lOVDMyKQorICAgICAgICByZXR1cm4gY29t
cGFyZSh2MSwgYmlnSW50VmFsdWUuYmlnSW50MzJBc0ludDMyKCkpOworI2VuZGlmCisgICAgfQor
CisgICAgLy8gTm90ZSB0aGF0IDBuIDw9PiAtMC4wIGlzIGhhbmRsaW5nIC0wLjAgYXMgKzAuCisg
ICAgZG91YmxlIG51bWJlclZhbHVlID0gcHJpbVZhbHVlLnRvTnVtYmVyKGdsb2JhbE9iamVjdCk7
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1
bHQ6OlVuZGVmaW5lZCk7CisgICAgaWYgKHN0ZDo6aXNuYW4obnVtYmVyVmFsdWUpKQorICAgICAg
ICByZXR1cm4gSlNCaWdJbnQ6OkNvbXBhcmlzb25SZXN1bHQ6OlVuZGVmaW5lZDsKKyAgICByZXR1
cm4gY29tcGFyZShzdGF0aWNfY2FzdDxkb3VibGU+KHYxKSwgbnVtYmVyVmFsdWUpOworfQorCiBB
TFdBWVNfSU5MSU5FIGJvb2wgYmlnSW50Q29tcGFyZVJlc3VsdChKU0JpZ0ludDo6Q29tcGFyaXNv
blJlc3VsdCBjb21wYXJpc29uUmVzdWx0LCBKU0JpZ0ludDo6Q29tcGFyaXNvbk1vZGUgY29tcGFy
aXNvbk1vZGUpCiB7CiAgICAgaWYgKGNvbXBhcmlzb25Nb2RlID09IEpTQmlnSW50OjpDb21wYXJp
c29uTW9kZTo6TGVzc1RoYW4pCkBAIC0yODQsNDcgKzM1MCwzOCBAQCBBTFdBWVNfSU5MSU5FIGJv
b2wgYmlnSW50Q29tcGFyZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHYx
LCBKU1ZhbAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSNpZiBVU0UoQklHSU5UMzIpCi0gICAgaWYg
KHYxLmlzQmlnSW50MzIoKSAmJiB2Mi5pc0JpZ0ludDMyKCkpIHsKLSAgICAgICAgaWYgKGNvbXBh
cmlzb25Nb2RlID09IEpTQmlnSW50OjpDb21wYXJpc29uTW9kZTo6TGVzc1RoYW4pCi0gICAgICAg
ICAgICByZXR1cm4gdjEuYmlnSW50MzJBc0ludDMyKCkgPCB2Mi5iaWdJbnQzMkFzSW50MzIoKTsK
LSAgICAgICAgQVNTRVJUKGNvbXBhcmlzb25Nb2RlID09IEpTQmlnSW50OjpDb21wYXJpc29uTW9k
ZTo6TGVzc1RoYW5PckVxdWFsKTsKLSAgICAgICAgcmV0dXJuIHYxLmJpZ0ludDMyQXNJbnQzMigp
IDw9IHYyLmJpZ0ludDMyQXNJbnQzMigpOwotICAgIH0KLSNlbmRpZgotCi0gICAgSlNCaWdJbnQq
IHYxSGVhcEJpZ0ludCA9IG51bGxwdHI7Ci0gICAgSlNCaWdJbnQqIHYySGVhcEJpZ0ludCA9IG51
bGxwdHI7Ci0gICAgLy8gRklYTUU6IGhhdmUgc29tZSBmYXN0LWlzaCBwYXRoIGZvciBhIGNvbXBh
cmlzb24gYmV0d2VlbiBhIHNtYWxsIGFuZCBhIGxhcmdlIGJpZy1pbnQKLSAgICBpZiAodjEuaXNI
ZWFwQmlnSW50KCkpCi0gICAgICAgIHYxSGVhcEJpZ0ludCA9IHYxLmFzSGVhcEJpZ0ludCgpOwot
I2lmIFVTRShCSUdJTlQzMikKLSAgICBlbHNlIGlmICh2MS5pc0JpZ0ludDMyKCkpCi0gICAgICAg
IHYxSGVhcEJpZ0ludCA9IEpTQmlnSW50OjpjcmVhdGVGcm9tKHZtLCB2MS5iaWdJbnQzMkFzSW50
MzIoKSk7Ci0jZW5kaWYKKyAgICBpZiAodjEuaXNCaWdJbnQoKSAmJiB2Mi5pc0JpZ0ludCgpKQor
ICAgICAgICByZXR1cm4gYmlnSW50Q29tcGFyZVJlc3VsdChjb21wYXJlQmlnSW50KHYxLCB2Miks
IGNvbXBhcmlzb25Nb2RlKTsKIAotICAgIGlmICh2Mi5pc0hlYXBCaWdJbnQoKSkKLSAgICAgICAg
djJIZWFwQmlnSW50ID0gdjIuYXNIZWFwQmlnSW50KCk7CiAjaWYgVVNFKEJJR0lOVDMyKQotICAg
IGVsc2UgaWYgKHYyLmlzQmlnSW50MzIoKSkKLSAgICAgICAgdjJIZWFwQmlnSW50ID0gSlNCaWdJ
bnQ6OmNyZWF0ZUZyb20odm0sIHYyLmJpZ0ludDMyQXNJbnQzMigpKTsKKyAgICBpZiAodjEuaXNC
aWdJbnQzMigpKSB7CisgICAgICAgIEFTU0VSVCghdjIuaXNCaWdJbnQoKSk7CisgICAgICAgIGF1
dG8gY29tcGFyaXNvblJlc3VsdCA9IGNvbXBhcmVCaWdJbnQzMlRvT3RoZXJQcmltaXRpdmUoZ2xv
YmFsT2JqZWN0LCB2MS5iaWdJbnQzMkFzSW50MzIoKSwgdjIpOworICAgICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CisgICAgICAgIHJldHVybiBiaWdJbnRDb21wYXJlUmVz
dWx0KGNvbXBhcmlzb25SZXN1bHQsIGNvbXBhcmlzb25Nb2RlKTsKKyAgICB9CisgICAgaWYgKHYy
LmlzQmlnSW50MzIoKSkgeworICAgICAgICBBU1NFUlQoIXYxLmlzQmlnSW50KCkpOworICAgICAg
ICBhdXRvIGNvbXBhcmlzb25SZXN1bHQgPSBjb21wYXJlQmlnSW50MzJUb090aGVyUHJpbWl0aXZl
KGdsb2JhbE9iamVjdCwgdjIuYmlnSW50MzJBc0ludDMyKCksIHYxKTsKKyAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOworICAgICAgICByZXR1cm4gYmlnSW50Q29tcGFy
ZVJlc3VsdChzd2FwQmlnSW50Q29tcGFyZVJlc3VsdChjb21wYXJpc29uUmVzdWx0KSwgY29tcGFy
aXNvbk1vZGUpOworICAgIH0KKyAgICBBU1NFUlQoIXYxLmlzQmlnSW50MzIoKSAmJiAhdjIuaXNC
aWdJbnQzMigpKTsKICNlbmRpZgogCi0gICAgaWYgKHYxSGVhcEJpZ0ludCAmJiB2MkhlYXBCaWdJ
bnQpCi0gICAgICAgIHJldHVybiBiaWdJbnRDb21wYXJlUmVzdWx0KEpTQmlnSW50Ojpjb21wYXJl
KHYxSGVhcEJpZ0ludCwgdjJIZWFwQmlnSW50KSwgY29tcGFyaXNvbk1vZGUpOwotCi0gICAgaWYg
KHYxSGVhcEJpZ0ludCkgewotICAgICAgICBhdXRvIGNvbXBhcmlzb25SZXN1bHQgPSBjb21wYXJl
QmlnSW50VG9PdGhlclByaW1pdGl2ZShnbG9iYWxPYmplY3QsIHYxSGVhcEJpZ0ludCwgdjIpOwor
ICAgIGlmICh2MS5pc0hlYXBCaWdJbnQoKSkgeworICAgICAgICBBU1NFUlQoIXYyLmlzQmlnSW50
KCkpOworICAgICAgICBhdXRvIGNvbXBhcmlzb25SZXN1bHQgPSBjb21wYXJlQmlnSW50VG9PdGhl
clByaW1pdGl2ZShnbG9iYWxPYmplY3QsIHYxLmFzSGVhcEJpZ0ludCgpLCB2Mik7CiAgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKICAgICAgICAgcmV0dXJuIGJpZ0lu
dENvbXBhcmVSZXN1bHQoY29tcGFyaXNvblJlc3VsdCwgY29tcGFyaXNvbk1vZGUpOwogICAgIH0K
IAotICAgIGF1dG8gY29tcGFyaXNvblJlc3VsdCA9IGNvbXBhcmVCaWdJbnRUb090aGVyUHJpbWl0
aXZlKGdsb2JhbE9iamVjdCwgdjJIZWFwQmlnSW50LCB2MSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgZmFsc2UpOwogICAgIC8vIEhlcmUgd2UgY2hlY2sgaW52ZXJ0ZWQgYmVjYXVz
ZSBCaWdJbnQgaXMgdGhlIHYyCi0gICAgaWYgKGNvbXBhcmlzb25Nb2RlID09IEpTQmlnSW50OjpD
b21wYXJpc29uTW9kZTo6TGVzc1RoYW4pCi0gICAgICAgIHJldHVybiBjb21wYXJpc29uUmVzdWx0
ID09IEpTQmlnSW50OjpDb21wYXJpc29uUmVzdWx0OjpHcmVhdGVyVGhhbjsKLSAgICByZXR1cm4g
Y29tcGFyaXNvblJlc3VsdCA9PSBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdDo6R3JlYXRlclRo
YW4gfHwgY29tcGFyaXNvblJlc3VsdCA9PSBKU0JpZ0ludDo6Q29tcGFyaXNvblJlc3VsdDo6RXF1
YWw7CisgICAgQVNTRVJUKCF2MS5pc0JpZ0ludCgpKTsKKyAgICBBU1NFUlQodjIuaXNIZWFwQmln
SW50KCkpOworICAgIGF1dG8gY29tcGFyaXNvblJlc3VsdCA9IGNvbXBhcmVCaWdJbnRUb090aGVy
UHJpbWl0aXZlKGdsb2JhbE9iamVjdCwgdjIuYXNIZWFwQmlnSW50KCksIHYxKTsKKyAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CisgICAgcmV0dXJuIGJpZ0ludENvbXBhcmVS
ZXN1bHQoc3dhcEJpZ0ludENvbXBhcmVSZXN1bHQoY29tcGFyaXNvblJlc3VsdCksIGNvbXBhcmlz
b25Nb2RlKTsKIH0KIAogQUxXQVlTX0lOTElORSBib29sIHRvUHJpbWl0aXZlTnVtZXJpYyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHYsIEpTVmFsdWUmIHAsIGRvdWJsZSYg
bikKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZjlhZWVmNDYyMDY1ODViYmJmY2Y5ZDg1MjI0NWJiNmI0YjUyNzg4ZS4uMjM2YmNhYWZkNjU2
ZTEwZTRlY2JhOTczMWMzODYwNGRjYTJmOGViMSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAyMC0wNC0yNCAg
WXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIERGRyBj
b21wYXJlIHNob3VsZCBzcGVjdWxhdGUgQmlnSW50IHdlbGwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDg5MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2NvbXBhcmUtYmlnaW50LXdpdGgt
bnVtYmVyLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHJlc3VsdCk6
CisgICAgICAgIChsZXNzVGhhbik6CisgICAgICAgIChsZXNzVGhhbkVxdWFsKToKKyAgICAgICAg
KGdyZWF0ZXJUaGFuKToKKyAgICAgICAgKGdyZWF0ZXJUaGFuRXF1YWwpOgorICAgICAgICAoZXF1
YWwpOgorICAgICAgICAqIHN0cmVzcy9jb21wYXJlLWJpZ2ludC13aXRoLXN0cmluZy5qczogQWRk
ZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChyZXN1bHQpOgorICAgICAgICAobGVz
c1RoYW4pOgorICAgICAgICAobGVzc1RoYW5FcXVhbCk6CisgICAgICAgIChncmVhdGVyVGhhbik6
CisgICAgICAgIChncmVhdGVyVGhhbkVxdWFsKToKKyAgICAgICAgKGVxdWFsKToKKyAgICAgICAg
KiBzdHJlc3MvY29tcGFyZS1iaWdpbnQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgor
ICAgICAgICAocmVzdWx0KToKKyAgICAgICAgKGxlc3NUaGFuKToKKyAgICAgICAgKGxlc3NUaGFu
RXF1YWwpOgorICAgICAgICAoZ3JlYXRlclRoYW4pOgorICAgICAgICAoZ3JlYXRlclRoYW5FcXVh
bCk6CisgICAgICAgIChlcXVhbCk6CisgICAgICAgICogc3RyZXNzL2NvbXBhcmUtYmlnaW50MzIu
anM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAocmVzdWx0KToKKyAgICAg
ICAgKGxlc3NUaGFuKToKKyAgICAgICAgKGxlc3NUaGFuRXF1YWwpOgorICAgICAgICAoZ3JlYXRl
clRoYW4pOgorICAgICAgICAoZ3JlYXRlclRoYW5FcXVhbCk6CisgICAgICAgIChlcXVhbCk6Cisg
ICAgICAgICogc3RyZXNzL2NvbXBhcmUtaGVhcC1iaWdpbnQuanM6IEFkZGVkLgorICAgICAgICAo
c2hvdWxkQmUpOgorICAgICAgICAocmVzdWx0KToKKyAgICAgICAgKGxlc3NUaGFuKToKKyAgICAg
ICAgKGxlc3NUaGFuRXF1YWwpOgorICAgICAgICAoZ3JlYXRlclRoYW4pOgorICAgICAgICAoZ3Jl
YXRlclRoYW5FcXVhbCk6CisgICAgICAgIChlcXVhbCk6CisgICAgICAgICogc3RyZXNzL2RmZy1h
aS1mb2xkLWJpZ2ludC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChh
bGxBcmVUcnVlKToKKyAgICAgICAgKGFsbEFyZUZhbHNlKToKKyAgICAgICAgKGxlc3NUaGFuKToK
KyAgICAgICAgKGxlc3NUaGFuRmFsc2UpOgorICAgICAgICAobGVzc1RoYW5FcXVhbCk6CisgICAg
ICAgIChsZXNzVGhhbkVxdWFsRmFsc2UpOgorICAgICAgICAoZ3JlYXRlclRoYW4pOgorICAgICAg
ICAoZ3JlYXRlclRoYW5GYWxzZSk6CisgICAgICAgIChncmVhdGVyVGhhbkVxdWFsKToKKyAgICAg
ICAgKGdyZWF0ZXJUaGFuRXF1YWxGYWxzZSk6CisgICAgICAgIChlcXVhbCk6CisgICAgICAgIChl
cXVhbEZhbHNlKToKKwogMjAyMC0wNC0yMyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdA
c29ueS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCB0ZXN0MjYyIGdhcmRlbmluZyBmb2xsb3dp
bmcgcjI2MDU5MS4KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2NvbXBhcmUtYmlnaW50LXdp
dGgtbnVtYmVyLmpzIGIvSlNUZXN0cy9zdHJlc3MvY29tcGFyZS1iaWdpbnQtd2l0aC1udW1iZXIu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMmM5NzgxYWU0NWJlYmMxYmIwZTNmMzlhYWQ5N2RiNTgxYTBhY2E5Ygot
LS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2NvbXBhcmUtYmlnaW50LXdpdGgtbnVt
YmVyLmpzCkBAIC0wLDAgKzEsMjgwIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVj
dGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworY29uc3QgR3JlYXRlciA9IDA7Citj
b25zdCBMZXNzID0gMTsKK2NvbnN0IEVxdWFsID0gMjsKK2NvbnN0IFVuZGVmaW5lZCA9IDM7CisK
K2Z1bmN0aW9uIHJlc3VsdChmdW5jLCBkYXRhKQoreworICAgIGlmIChkYXRhID09PSBVbmRlZmlu
ZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoZnVuYyA9PT0gbGVzc1RoYW4pCisg
ICAgICAgIHJldHVybiBkYXRhID09PSBMZXNzOworICAgIGlmIChmdW5jID09PSBsZXNzVGhhbkVx
dWFsKQorICAgICAgICByZXR1cm4gZGF0YSA9PT0gTGVzcyB8fCBkYXRhID09PSBFcXVhbDsKKyAg
ICBpZiAoZnVuYyA9PT0gZ3JlYXRlclRoYW4pCisgICAgICAgIHJldHVybiBkYXRhID09PSBHcmVh
dGVyOworICAgIGlmIChmdW5jID09PSBncmVhdGVyVGhhbkVxdWFsKQorICAgICAgICByZXR1cm4g
ZGF0YSA9PT0gR3JlYXRlciB8fCBkYXRhID09PSBFcXVhbDsKKyAgICBpZiAoZnVuYyA9PT0gZXF1
YWwpCisgICAgICAgIHJldHVybiBkYXRhID09PSBFcXVhbDsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK3ZhciBsaXN0ID0gWworICAgIFtjcmVhdGVIZWFwQmlnSW50KDFuKSwgMiwgTGVzc10sCisg
ICAgW2NyZWF0ZUhlYXBCaWdJbnQoMW4pLCAxLCBFcXVhbF0sCisgICAgW2NyZWF0ZUhlYXBCaWdJ
bnQoMW4pLCAwLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxbiksIC0xLCBHcmVh
dGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxbiksIC0yLCBHcmVhdGVyXSwKKyAgICBbY3Jl
YXRlSGVhcEJpZ0ludCgwbiksIDIsIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDBuKSwg
MSwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCAwLCBFcXVhbF0sCisgICAgW2Ny
ZWF0ZUhlYXBCaWdJbnQoMG4pLCAtMSwgR3JlYXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQo
MG4pLCAtMiwgR3JlYXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgMiwgTGVzc10s
CisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgMSwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBC
aWdJbnQoLTFuKSwgMCwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgLTEsIEVx
dWFsXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMW4pLCAtMiwgR3JlYXRlcl0sCisKKyAgICBb
MSwgY3JlYXRlSGVhcEJpZ0ludCgybiksIExlc3NdLAorICAgIFsxLCBjcmVhdGVIZWFwQmlnSW50
KDFuKSwgRXF1YWxdLAorICAgIFsxLCBjcmVhdGVIZWFwQmlnSW50KDBuKSwgR3JlYXRlcl0sCisg
ICAgWzEsIGNyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgR3JlYXRlcl0sCisgICAgWzEsIGNyZWF0ZUhl
YXBCaWdJbnQoLTJuKSwgR3JlYXRlcl0sCisgICAgWzAsIGNyZWF0ZUhlYXBCaWdJbnQoMm4pLCBM
ZXNzXSwKKyAgICBbMCwgY3JlYXRlSGVhcEJpZ0ludCgxbiksIExlc3NdLAorICAgIFswLCBjcmVh
dGVIZWFwQmlnSW50KDBuKSwgRXF1YWxdLAorICAgIFswLCBjcmVhdGVIZWFwQmlnSW50KC0xbiks
IEdyZWF0ZXJdLAorICAgIFswLCBjcmVhdGVIZWFwQmlnSW50KC0ybiksIEdyZWF0ZXJdLAorICAg
IFstMSwgY3JlYXRlSGVhcEJpZ0ludCgybiksIExlc3NdLAorICAgIFstMSwgY3JlYXRlSGVhcEJp
Z0ludCgxbiksIExlc3NdLAorICAgIFstMSwgY3JlYXRlSGVhcEJpZ0ludCgwbiksIExlc3NdLAor
ICAgIFstMSwgY3JlYXRlSGVhcEJpZ0ludCgtMW4pLCBFcXVhbF0sCisgICAgWy0xLCBjcmVhdGVI
ZWFwQmlnSW50KC0ybiksIEdyZWF0ZXJdLAorCisgICAgWzEsIDJuLCBMZXNzXSwKKyAgICBbMSwg
MW4sIEVxdWFsXSwKKyAgICBbMSwgMG4sIEdyZWF0ZXJdLAorICAgIFsxLCAtMW4sIEdyZWF0ZXJd
LAorICAgIFsxLCAtMm4sIEdyZWF0ZXJdLAorICAgIFswLCAybiwgTGVzc10sCisgICAgWzAsIDFu
LCBMZXNzXSwKKyAgICBbMCwgMG4sIEVxdWFsXSwKKyAgICBbMCwgLTFuLCBHcmVhdGVyXSwKKyAg
ICBbMCwgLTJuLCBHcmVhdGVyXSwKKyAgICBbLTEsIDJuLCBMZXNzXSwKKyAgICBbLTEsIDFuLCBM
ZXNzXSwKKyAgICBbLTEsIDBuLCBMZXNzXSwKKyAgICBbLTEsIC0xbiwgRXF1YWxdLAorICAgIFst
MSwgLTJuLCBHcmVhdGVyXSwKKworICAgIFsxbiwgMiwgTGVzc10sCisgICAgWzFuLCAxLCBFcXVh
bF0sCisgICAgWzFuLCAwLCBHcmVhdGVyXSwKKyAgICBbMW4sIC0xLCBHcmVhdGVyXSwKKyAgICBb
MW4sIC0yLCBHcmVhdGVyXSwKKyAgICBbMG4sIDIsIExlc3NdLAorICAgIFswbiwgMSwgTGVzc10s
CisgICAgWzBuLCAwLCBFcXVhbF0sCisgICAgWzBuLCAtMSwgR3JlYXRlcl0sCisgICAgWzBuLCAt
MiwgR3JlYXRlcl0sCisgICAgWy0xbiwgMiwgTGVzc10sCisgICAgWy0xbiwgMSwgTGVzc10sCisg
ICAgWy0xbiwgMCwgTGVzc10sCisgICAgWy0xbiwgLTEsIEVxdWFsXSwKKyAgICBbLTFuLCAtMiwg
R3JlYXRlcl0sCisKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwbiksIDIsIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDEwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDBuKSwgMSwgR3JlYXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMTAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMG4pLCAwLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0lu
dCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIC0xLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRl
SGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIC0yLCBHcmVhdGVyXSwKKyAg
ICBbY3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCAyLCBMZXNz
XSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCAx
LCBMZXNzXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MG4pLCAwLCBMZXNzXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMG4pLCAtMSwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDBuKSwgLTIsIExlc3NdLAorCisgICAgWzIsIGNyZWF0ZUhlYXBCaWdJbnQo
MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBMZXNzXSwKKyAgICBbMSwgY3JlYXRlSGVhcEJp
Z0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIExlc3NdLAorICAgIFswLCBjcmVhdGVI
ZWFwQmlnSW50KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgTGVzc10sCisgICAgWy0xLCBj
cmVhdGVIZWFwQmlnSW50KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgTGVzc10sCisgICAg
Wy0yLCBjcmVhdGVIZWFwQmlnSW50KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgTGVzc10s
CisgICAgWzIsIGNyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwg
R3JlYXRlcl0sCisgICAgWzEsIGNyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDBuKSwgR3JlYXRlcl0sCisgICAgWzAsIGNyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDBuKSwgR3JlYXRlcl0sCisgICAgWy0xLCBjcmVhdGVIZWFwQmlnSW50KC0x
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIEdyZWF0ZXJdLAorICAgIFstMiwgY3JlYXRlSGVh
cEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBHcmVhdGVyXSwKKworICAgIFsx
LjUsIDJuLCBMZXNzXSwKKyAgICBbMS4wLCAxbiwgRXF1YWxdLAorICAgIFsxLjUsIDBuLCBHcmVh
dGVyXSwKKyAgICBbMS41LCAtMW4sIEdyZWF0ZXJdLAorICAgIFsxLjUsIC0ybiwgR3JlYXRlcl0s
CisgICAgWzAuNSwgMm4sIExlc3NdLAorICAgIFswLjUsIDFuLCBMZXNzXSwKKyAgICBbLTAuMCwg
MG4sIEVxdWFsXSwKKyAgICBbMC4wLCAwbiwgRXF1YWxdLAorICAgIFswLjUsIC0xbiwgR3JlYXRl
cl0sCisgICAgWzAuNSwgLTJuLCBHcmVhdGVyXSwKKyAgICBbLTEuNSwgMm4sIExlc3NdLAorICAg
IFstMS41LCAxbiwgTGVzc10sCisgICAgWy0xLjUsIDBuLCBMZXNzXSwKKyAgICBbLTEuMCwgLTFu
LCBFcXVhbF0sCisgICAgWy0xLjUsIC0ybiwgR3JlYXRlcl0sCisKKyAgICBbMW4sIDIuNSwgTGVz
c10sCisgICAgWzFuLCAxLjAsIEVxdWFsXSwKKyAgICBbMW4sIDAuNSwgR3JlYXRlcl0sCisgICAg
WzFuLCAtMS41LCBHcmVhdGVyXSwKKyAgICBbMW4sIC0yLjUsIEdyZWF0ZXJdLAorICAgIFswbiwg
Mi41LCBMZXNzXSwKKyAgICBbMG4sIDEuMCwgTGVzc10sCisgICAgWzBuLCAwLjAsIEVxdWFsXSwK
KyAgICBbMG4sIC0wLjAsIEVxdWFsXSwKKyAgICBbMG4sIC0xLjUsIEdyZWF0ZXJdLAorICAgIFsw
biwgLTIuNSwgR3JlYXRlcl0sCisgICAgWy0xbiwgMi41LCBMZXNzXSwKKyAgICBbLTFuLCAxLjAs
IExlc3NdLAorICAgIFstMW4sIDAuNSwgTGVzc10sCisgICAgWy0xbiwgLTEuMCwgRXF1YWxdLAor
ICAgIFstMW4sIC0yLjUsIEdyZWF0ZXJdLAorCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMW4pLCAy
LjUsIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDFuKSwgMS4wLCBFcXVhbF0sCisgICAg
W2NyZWF0ZUhlYXBCaWdJbnQoMW4pLCAwLjUsIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmln
SW50KDFuKSwgLTEuNSwgR3JlYXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMW4pLCAtMi41
LCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgwbiksIDIuNSwgTGVzc10sCisgICAg
W2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCAxLjUsIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50
KDBuKSwgMC4wLCBFcXVhbF0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCAtMC4wLCBFcXVh
bF0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCAtMS41LCBHcmVhdGVyXSwKKyAgICBbY3Jl
YXRlSGVhcEJpZ0ludCgwbiksIC0yLjUsIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50
KC0xbiksIDIuNSwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgMS41LCBMZXNz
XSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMW4pLCAwLjUsIExlc3NdLAorICAgIFtjcmVhdGVI
ZWFwQmlnSW50KC0xbiksIC0xLjAsIEVxdWFsXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMW4p
LCAtMi41LCBHcmVhdGVyXSwKKworICAgIFsxLjUsIGNyZWF0ZUhlYXBCaWdJbnQoMm4pLCBMZXNz
XSwKKyAgICBbMS4wLCBjcmVhdGVIZWFwQmlnSW50KDFuKSwgRXF1YWxdLAorICAgIFsxLjUsIGNy
ZWF0ZUhlYXBCaWdJbnQoMG4pLCBHcmVhdGVyXSwKKyAgICBbMS41LCBjcmVhdGVIZWFwQmlnSW50
KC0xbiksIEdyZWF0ZXJdLAorICAgIFsxLjUsIGNyZWF0ZUhlYXBCaWdJbnQoLTJuKSwgR3JlYXRl
cl0sCisgICAgWzAuNSwgY3JlYXRlSGVhcEJpZ0ludCgybiksIExlc3NdLAorICAgIFswLjUsIGNy
ZWF0ZUhlYXBCaWdJbnQoMW4pLCBMZXNzXSwKKyAgICBbMC4wLCBjcmVhdGVIZWFwQmlnSW50KDBu
KSwgRXF1YWxdLAorICAgIFstMC4wLCBjcmVhdGVIZWFwQmlnSW50KDBuKSwgRXF1YWxdLAorICAg
IFswLjUsIGNyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgR3JlYXRlcl0sCisgICAgWzAuNSwgY3JlYXRl
SGVhcEJpZ0ludCgtMm4pLCBHcmVhdGVyXSwKKyAgICBbLTEuNSwgY3JlYXRlSGVhcEJpZ0ludCgy
biksIExlc3NdLAorICAgIFstMS41LCBjcmVhdGVIZWFwQmlnSW50KDFuKSwgTGVzc10sCisgICAg
Wy0xLjUsIGNyZWF0ZUhlYXBCaWdJbnQoMG4pLCBMZXNzXSwKKyAgICBbLTEuMCwgY3JlYXRlSGVh
cEJpZ0ludCgtMW4pLCBFcXVhbF0sCisgICAgWy0xLjUsIGNyZWF0ZUhlYXBCaWdJbnQoLTJuKSwg
R3JlYXRlcl0sCisKKyAgICBbMW4sIE5hTiwgVW5kZWZpbmVkXSwKKyAgICBbMG4sIE5hTiwgVW5k
ZWZpbmVkXSwKKyAgICBbLTFuLCBOYU4sIFVuZGVmaW5lZF0sCisKKyAgICBbTmFOLCAxbiwgVW5k
ZWZpbmVkXSwKKyAgICBbTmFOLCAwbiwgVW5kZWZpbmVkXSwKKyAgICBbTmFOLCAtMW4sIFVuZGVm
aW5lZF0sCisKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxbiksIE5hTiwgVW5kZWZpbmVkXSwKKyAg
ICBbY3JlYXRlSGVhcEJpZ0ludCgwbiksIE5hTiwgVW5kZWZpbmVkXSwKKyAgICBbY3JlYXRlSGVh
cEJpZ0ludCgtMW4pLCBOYU4sIFVuZGVmaW5lZF0sCisKKyAgICBbTmFOLCBjcmVhdGVIZWFwQmln
SW50KDFuKSwgVW5kZWZpbmVkXSwKKyAgICBbTmFOLCBjcmVhdGVIZWFwQmlnSW50KDBuKSwgVW5k
ZWZpbmVkXSwKKyAgICBbTmFOLCBjcmVhdGVIZWFwQmlnSW50KC0xbiksIFVuZGVmaW5lZF0sCisK
KyAgICBbMW4sIEluZmluaXR5LCBMZXNzXSwKKyAgICBbMG4sIEluZmluaXR5LCBMZXNzXSwKKyAg
ICBbLTFuLCBJbmZpbml0eSwgTGVzc10sCisKKyAgICBbSW5maW5pdHksIDFuLCBHcmVhdGVyXSwK
KyAgICBbSW5maW5pdHksIDBuLCBHcmVhdGVyXSwKKyAgICBbSW5maW5pdHksIC0xbiwgR3JlYXRl
cl0sCisKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxbiksIEluZmluaXR5LCBMZXNzXSwKKyAgICBb
Y3JlYXRlSGVhcEJpZ0ludCgwbiksIEluZmluaXR5LCBMZXNzXSwKKyAgICBbY3JlYXRlSGVhcEJp
Z0ludCgtMW4pLCBJbmZpbml0eSwgTGVzc10sCisKKyAgICBbSW5maW5pdHksIGNyZWF0ZUhlYXBC
aWdJbnQoMW4pLCBHcmVhdGVyXSwKKyAgICBbSW5maW5pdHksIGNyZWF0ZUhlYXBCaWdJbnQoMG4p
LCBHcmVhdGVyXSwKKyAgICBbSW5maW5pdHksIGNyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgR3JlYXRl
cl0sCisKKyAgICBbMW4sIC1JbmZpbml0eSwgR3JlYXRlcl0sCisgICAgWzBuLCAtSW5maW5pdHks
IEdyZWF0ZXJdLAorICAgIFstMW4sIC1JbmZpbml0eSwgR3JlYXRlcl0sCisKKyAgICBbLUluZmlu
aXR5LCAxbiwgTGVzc10sCisgICAgWy1JbmZpbml0eSwgMG4sIExlc3NdLAorICAgIFstSW5maW5p
dHksIC0xbiwgTGVzc10sCisKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxbiksIC1JbmZpbml0eSwg
R3JlYXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCAtSW5maW5pdHksIEdyZWF0ZXJd
LAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xbiksIC1JbmZpbml0eSwgR3JlYXRlcl0sCisKKyAg
ICBbLUluZmluaXR5LCBjcmVhdGVIZWFwQmlnSW50KDFuKSwgTGVzc10sCisgICAgWy1JbmZpbml0
eSwgY3JlYXRlSGVhcEJpZ0ludCgwbiksIExlc3NdLAorICAgIFstSW5maW5pdHksIGNyZWF0ZUhl
YXBCaWdJbnQoLTFuKSwgTGVzc10sCisKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwbiksIEluZmluaXR5LCBMZXNzXSwKKyAgICBbSW5maW5pdHksIGNyZWF0
ZUhlYXBCaWdJbnQoMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBHcmVhdGVyXSwKKyAgICBb
Y3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIC1JbmZpbml0eSwg
R3JlYXRlcl0sCisgICAgWy1JbmZpbml0eSwgY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwbiksIExlc3NdLAorCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDBuKSwgSW5maW5pdHksIExlc3NdLAorICAgIFtJbmZpbml0eSwgY3Jl
YXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBHcmVhdGVyXSwKKyAg
ICBbY3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCAtSW5maW5p
dHksIEdyZWF0ZXJdLAorICAgIFstSW5maW5pdHksIGNyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDBuKSwgTGVzc10sCitdOworCitmdW5jdGlvbiBsZXNzVGhhbihhLCBi
KQoreworICAgIHJldHVybiBhIDwgYjsKK30KK25vSW5saW5lKGxlc3NUaGFuKTsKKworZnVuY3Rp
b24gbGVzc1RoYW5FcXVhbChhLCBiKQoreworICAgIHJldHVybiBhIDw9IGI7Cit9Citub0lubGlu
ZShsZXNzVGhhbkVxdWFsKTsKKworZnVuY3Rpb24gZ3JlYXRlclRoYW4oYSwgYikKK3sKKyAgICBy
ZXR1cm4gYSA+IGI7Cit9Citub0lubGluZShncmVhdGVyVGhhbik7CisKK2Z1bmN0aW9uIGdyZWF0
ZXJUaGFuRXF1YWwoYSwgYikKK3sKKyAgICByZXR1cm4gYSA+PSBiOworfQorbm9JbmxpbmUoZ3Jl
YXRlclRoYW5FcXVhbCk7CisKK2Z1bmN0aW9uIGVxdWFsKGEsIGIpCit7CisgICAgcmV0dXJuIGEg
PT0gYjsKK30KK25vSW5saW5lKGVxdWFsKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTM7ICsr
aSkgeworICAgIGZvciAobGV0IFthLCBiLCByZXNdIG9mIGxpc3QpIHsKKyAgICAgICAgc2hvdWxk
QmUobGVzc1RoYW4oYSwgYiksIHJlc3VsdChsZXNzVGhhbiwgcmVzKSk7CisgICAgICAgIHNob3Vs
ZEJlKGxlc3NUaGFuRXF1YWwoYSwgYiksIHJlc3VsdChsZXNzVGhhbkVxdWFsLCByZXMpKTsKKyAg
ICAgICAgc2hvdWxkQmUoZ3JlYXRlclRoYW4oYSwgYiksIHJlc3VsdChncmVhdGVyVGhhbiwgcmVz
KSk7CisgICAgICAgIHNob3VsZEJlKGdyZWF0ZXJUaGFuRXF1YWwoYSwgYiksIHJlc3VsdChncmVh
dGVyVGhhbkVxdWFsLCByZXMpKTsKKyAgICAgICAgc2hvdWxkQmUoZXF1YWwoYSwgYiksIHJlc3Vs
dChlcXVhbCwgcmVzKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvY29t
cGFyZS1iaWdpbnQtd2l0aC1zdHJpbmcuanMgYi9KU1Rlc3RzL3N0cmVzcy9jb21wYXJlLWJpZ2lu
dC13aXRoLXN0cmluZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDZmNDFiYzFhMzhhMmI0YmVmMzcyOGZiOGM1
YjgxNWFhYjZiMzcyCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvY29tcGFyZS1i
aWdpbnQtd2l0aC1zdHJpbmcuanMKQEAgLTAsMCArMSwyMzYgQEAKK2Z1bmN0aW9uIHNob3VsZEJl
KGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitjb25zdCBH
cmVhdGVyID0gMDsKK2NvbnN0IExlc3MgPSAxOworY29uc3QgRXF1YWwgPSAyOworY29uc3QgVW5k
ZWZpbmVkID0gMzsKKworZnVuY3Rpb24gcmVzdWx0KGZ1bmMsIGRhdGEpCit7CisgICAgaWYgKGRh
dGEgPT09IFVuZGVmaW5lZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChmdW5jID09
PSBsZXNzVGhhbikKKyAgICAgICAgcmV0dXJuIGRhdGEgPT09IExlc3M7CisgICAgaWYgKGZ1bmMg
PT09IGxlc3NUaGFuRXF1YWwpCisgICAgICAgIHJldHVybiBkYXRhID09PSBMZXNzIHx8IGRhdGEg
PT09IEVxdWFsOworICAgIGlmIChmdW5jID09PSBncmVhdGVyVGhhbikKKyAgICAgICAgcmV0dXJu
IGRhdGEgPT09IEdyZWF0ZXI7CisgICAgaWYgKGZ1bmMgPT09IGdyZWF0ZXJUaGFuRXF1YWwpCisg
ICAgICAgIHJldHVybiBkYXRhID09PSBHcmVhdGVyIHx8IGRhdGEgPT09IEVxdWFsOworICAgIGlm
IChmdW5jID09PSBlcXVhbCkKKyAgICAgICAgcmV0dXJuIGRhdGEgPT09IEVxdWFsOworICAgIHJl
dHVybiBmYWxzZTsKK30KKwordmFyIGxpc3QgPSBbCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMW4p
LCAiMiIsIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDFuKSwgIjEiLCBFcXVhbF0sCisg
ICAgW2NyZWF0ZUhlYXBCaWdJbnQoMW4pLCAiMCIsIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFw
QmlnSW50KDFuKSwgIi0xIiwgR3JlYXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMW4pLCAi
LTIiLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgwbiksICIyIiwgTGVzc10sCisg
ICAgW2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCAiMSIsIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmln
SW50KDBuKSwgIjAiLCBFcXVhbF0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCAiLTEiLCBH
cmVhdGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgwbiksICItMiIsIEdyZWF0ZXJdLAorICAg
IFtjcmVhdGVIZWFwQmlnSW50KC0xbiksICIyIiwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJ
bnQoLTFuKSwgIjEiLCBMZXNzXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMW4pLCAiMCIsIExl
c3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xbiksICItMSIsIEVxdWFsXSwKKyAgICBbY3Jl
YXRlSGVhcEJpZ0ludCgtMW4pLCAiLTIiLCBHcmVhdGVyXSwKKworICAgIFsiMSIsIGNyZWF0ZUhl
YXBCaWdJbnQoMm4pLCBMZXNzXSwKKyAgICBbIjEiLCBjcmVhdGVIZWFwQmlnSW50KDFuKSwgRXF1
YWxdLAorICAgIFsiMSIsIGNyZWF0ZUhlYXBCaWdJbnQoMG4pLCBHcmVhdGVyXSwKKyAgICBbIjEi
LCBjcmVhdGVIZWFwQmlnSW50KC0xbiksIEdyZWF0ZXJdLAorICAgIFsiMSIsIGNyZWF0ZUhlYXBC
aWdJbnQoLTJuKSwgR3JlYXRlcl0sCisgICAgWyIwIiwgY3JlYXRlSGVhcEJpZ0ludCgybiksIExl
c3NdLAorICAgIFsiMCIsIGNyZWF0ZUhlYXBCaWdJbnQoMW4pLCBMZXNzXSwKKyAgICBbIjAiLCBj
cmVhdGVIZWFwQmlnSW50KDBuKSwgRXF1YWxdLAorICAgIFsiMCIsIGNyZWF0ZUhlYXBCaWdJbnQo
LTFuKSwgR3JlYXRlcl0sCisgICAgWyIwIiwgY3JlYXRlSGVhcEJpZ0ludCgtMm4pLCBHcmVhdGVy
XSwKKyAgICBbIi0xIiwgY3JlYXRlSGVhcEJpZ0ludCgybiksIExlc3NdLAorICAgIFsiLTEiLCBj
cmVhdGVIZWFwQmlnSW50KDFuKSwgTGVzc10sCisgICAgWyItMSIsIGNyZWF0ZUhlYXBCaWdJbnQo
MG4pLCBMZXNzXSwKKyAgICBbIi0xIiwgY3JlYXRlSGVhcEJpZ0ludCgtMW4pLCBFcXVhbF0sCisg
ICAgWyItMSIsIGNyZWF0ZUhlYXBCaWdJbnQoLTJuKSwgR3JlYXRlcl0sCisKKyAgICBbIjEiLCAy
biwgTGVzc10sCisgICAgWyIxIiwgMW4sIEVxdWFsXSwKKyAgICBbIjEiLCAwbiwgR3JlYXRlcl0s
CisgICAgWyIxIiwgLTFuLCBHcmVhdGVyXSwKKyAgICBbIjEiLCAtMm4sIEdyZWF0ZXJdLAorICAg
IFsiMCIsIDJuLCBMZXNzXSwKKyAgICBbIjAiLCAxbiwgTGVzc10sCisgICAgWyIwIiwgMG4sIEVx
dWFsXSwKKyAgICBbIjAiLCAtMW4sIEdyZWF0ZXJdLAorICAgIFsiMCIsIC0ybiwgR3JlYXRlcl0s
CisgICAgWyItMSIsIDJuLCBMZXNzXSwKKyAgICBbIi0xIiwgMW4sIExlc3NdLAorICAgIFsiLTEi
LCAwbiwgTGVzc10sCisgICAgWyItMSIsIC0xbiwgRXF1YWxdLAorICAgIFsiLTEiLCAtMm4sIEdy
ZWF0ZXJdLAorCisgICAgWzFuLCAiMiIsIExlc3NdLAorICAgIFsxbiwgIjEiLCBFcXVhbF0sCisg
ICAgWzFuLCAiMCIsIEdyZWF0ZXJdLAorICAgIFsxbiwgIi0xIiwgR3JlYXRlcl0sCisgICAgWzFu
LCAiLTIiLCBHcmVhdGVyXSwKKyAgICBbMG4sICIyIiwgTGVzc10sCisgICAgWzBuLCAiMSIsIExl
c3NdLAorICAgIFswbiwgIjAiLCBFcXVhbF0sCisgICAgWzBuLCAiLTEiLCBHcmVhdGVyXSwKKyAg
ICBbMG4sICItMiIsIEdyZWF0ZXJdLAorICAgIFstMW4sICIyIiwgTGVzc10sCisgICAgWy0xbiwg
IjEiLCBMZXNzXSwKKyAgICBbLTFuLCAiMCIsIExlc3NdLAorICAgIFstMW4sICItMSIsIEVxdWFs
XSwKKyAgICBbLTFuLCAiLTIiLCBHcmVhdGVyXSwKKworICAgIFtjcmVhdGVIZWFwQmlnSW50KDEw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgIjIiLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVh
cEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksICIxIiwgR3JlYXRlcl0sCisgICAg
W2NyZWF0ZUhlYXBCaWdJbnQoMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCAiMCIsIEdyZWF0
ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwg
Ii0xIiwgR3JlYXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMTAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMG4pLCAiLTIiLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMG4pLCAiMiIsIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50
KC0xMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksICIxIiwgTGVzc10sCisgICAgW2NyZWF0ZUhl
YXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgIjAiLCBMZXNzXSwKKyAgICBb
Y3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCAiLTEiLCBMZXNz
XSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCAi
LTIiLCBMZXNzXSwKKworICAgIFsiMiIsIGNyZWF0ZUhlYXBCaWdJbnQoMTAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMG4pLCBMZXNzXSwKKyAgICBbIjEiLCBjcmVhdGVIZWFwQmlnSW50KDEwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDBuKSwgTGVzc10sCisgICAgWyIwIiwgY3JlYXRlSGVhcEJpZ0ludCgx
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIExlc3NdLAorICAgIFsiLTEiLCBjcmVhdGVIZWFw
QmlnSW50KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgTGVzc10sCisgICAgWyItMiIsIGNy
ZWF0ZUhlYXBCaWdJbnQoMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBMZXNzXSwKKyAgICBb
IjIiLCBjcmVhdGVIZWFwQmlnSW50KC0xMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIEdyZWF0
ZXJdLAorICAgIFsiMSIsIGNyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDBuKSwgR3JlYXRlcl0sCisgICAgWyIwIiwgY3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMG4pLCBHcmVhdGVyXSwKKyAgICBbIi0xIiwgY3JlYXRlSGVhcEJpZ0ludCgt
MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBHcmVhdGVyXSwKKyAgICBbIi0yIiwgY3JlYXRl
SGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBHcmVhdGVyXSwKKworICAg
IFsiMS41IiwgMm4sIFVuZGVmaW5lZF0sCisgICAgWyIxLjAiLCAxbiwgVW5kZWZpbmVkXSwKKyAg
ICBbIjEuNSIsIDBuLCBVbmRlZmluZWRdLAorICAgIFsiMS41IiwgLTFuLCBVbmRlZmluZWRdLAor
ICAgIFsiMS41IiwgLTJuLCBVbmRlZmluZWRdLAorICAgIFsiMC41IiwgMm4sIFVuZGVmaW5lZF0s
CisgICAgWyIwLjUiLCAxbiwgVW5kZWZpbmVkXSwKKyAgICBbIi0wLjAiLCAwbiwgVW5kZWZpbmVk
XSwKKyAgICBbIjAuMCIsIDBuLCBVbmRlZmluZWRdLAorICAgIFsiMC41IiwgLTFuLCBVbmRlZmlu
ZWRdLAorICAgIFsiMC41IiwgLTJuLCBVbmRlZmluZWRdLAorICAgIFsiLTEuNSIsIDJuLCBVbmRl
ZmluZWRdLAorICAgIFsiLTEuNSIsIDFuLCBVbmRlZmluZWRdLAorICAgIFsiLTEuNSIsIDBuLCBV
bmRlZmluZWRdLAorICAgIFsiLTEuMCIsIC0xbiwgVW5kZWZpbmVkXSwKKyAgICBbIi0xLjUiLCAt
Mm4sIFVuZGVmaW5lZF0sCisKKyAgICBbMW4sICIyLjUiLCBVbmRlZmluZWRdLAorICAgIFsxbiwg
IjEuMCIsIFVuZGVmaW5lZF0sCisgICAgWzFuLCAiMC41IiwgVW5kZWZpbmVkXSwKKyAgICBbMW4s
ICItMS41IiwgVW5kZWZpbmVkXSwKKyAgICBbMW4sICItMi41IiwgVW5kZWZpbmVkXSwKKyAgICBb
MG4sICIyLjUiLCBVbmRlZmluZWRdLAorICAgIFswbiwgIjEuMCIsIFVuZGVmaW5lZF0sCisgICAg
WzBuLCAiMC4wIiwgVW5kZWZpbmVkXSwKKyAgICBbMG4sICItMC4wIiwgVW5kZWZpbmVkXSwKKyAg
ICBbMG4sICItMS41IiwgVW5kZWZpbmVkXSwKKyAgICBbMG4sICItMi41IiwgVW5kZWZpbmVkXSwK
KyAgICBbLTFuLCAiMi41IiwgVW5kZWZpbmVkXSwKKyAgICBbLTFuLCAiMS4wIiwgVW5kZWZpbmVk
XSwKKyAgICBbLTFuLCAiMC41IiwgVW5kZWZpbmVkXSwKKyAgICBbLTFuLCAiLTEuMCIsIFVuZGVm
aW5lZF0sCisgICAgWy0xbiwgIi0yLjUiLCBVbmRlZmluZWRdLAorCisgICAgW2NyZWF0ZUhlYXBC
aWdJbnQoMW4pLCAiMi41IiwgVW5kZWZpbmVkXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxbiks
ICIxLjAiLCBVbmRlZmluZWRdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDFuKSwgIjAuNSIsIFVu
ZGVmaW5lZF0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMW4pLCAiLTEuNSIsIFVuZGVmaW5lZF0s
CisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMW4pLCAiLTIuNSIsIFVuZGVmaW5lZF0sCisgICAgW2Ny
ZWF0ZUhlYXBCaWdJbnQoMG4pLCAiMi41IiwgVW5kZWZpbmVkXSwKKyAgICBbY3JlYXRlSGVhcEJp
Z0ludCgwbiksICIxLjUiLCBVbmRlZmluZWRdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDBuKSwg
IjAuMCIsIFVuZGVmaW5lZF0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCAiLTAuMCIsIFVu
ZGVmaW5lZF0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCAiLTEuNSIsIFVuZGVmaW5lZF0s
CisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCAiLTIuNSIsIFVuZGVmaW5lZF0sCisgICAgW2Ny
ZWF0ZUhlYXBCaWdJbnQoLTFuKSwgIjIuNSIsIFVuZGVmaW5lZF0sCisgICAgW2NyZWF0ZUhlYXBC
aWdJbnQoLTFuKSwgIjEuNSIsIFVuZGVmaW5lZF0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTFu
KSwgIjAuNSIsIFVuZGVmaW5lZF0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgIi0xLjAi
LCBVbmRlZmluZWRdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xbiksICItMi41IiwgVW5kZWZp
bmVkXSwKKworICAgIFsiMS41IiwgY3JlYXRlSGVhcEJpZ0ludCgybiksIFVuZGVmaW5lZF0sCisg
ICAgWyIxLjAiLCBjcmVhdGVIZWFwQmlnSW50KDFuKSwgVW5kZWZpbmVkXSwKKyAgICBbIjEuNSIs
IGNyZWF0ZUhlYXBCaWdJbnQoMG4pLCBVbmRlZmluZWRdLAorICAgIFsiMS41IiwgY3JlYXRlSGVh
cEJpZ0ludCgtMW4pLCBVbmRlZmluZWRdLAorICAgIFsiMS41IiwgY3JlYXRlSGVhcEJpZ0ludCgt
Mm4pLCBVbmRlZmluZWRdLAorICAgIFsiMC41IiwgY3JlYXRlSGVhcEJpZ0ludCgybiksIFVuZGVm
aW5lZF0sCisgICAgWyIwLjUiLCBjcmVhdGVIZWFwQmlnSW50KDFuKSwgVW5kZWZpbmVkXSwKKyAg
ICBbIjAuMCIsIGNyZWF0ZUhlYXBCaWdJbnQoMG4pLCBVbmRlZmluZWRdLAorICAgIFsiLTAuMCIs
IGNyZWF0ZUhlYXBCaWdJbnQoMG4pLCBVbmRlZmluZWRdLAorICAgIFsiMC41IiwgY3JlYXRlSGVh
cEJpZ0ludCgtMW4pLCBVbmRlZmluZWRdLAorICAgIFsiMC41IiwgY3JlYXRlSGVhcEJpZ0ludCgt
Mm4pLCBVbmRlZmluZWRdLAorICAgIFsiLTEuNSIsIGNyZWF0ZUhlYXBCaWdJbnQoMm4pLCBVbmRl
ZmluZWRdLAorICAgIFsiLTEuNSIsIGNyZWF0ZUhlYXBCaWdJbnQoMW4pLCBVbmRlZmluZWRdLAor
ICAgIFsiLTEuNSIsIGNyZWF0ZUhlYXBCaWdJbnQoMG4pLCBVbmRlZmluZWRdLAorICAgIFsiLTEu
MCIsIGNyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgVW5kZWZpbmVkXSwKKyAgICBbIi0xLjUiLCBjcmVh
dGVIZWFwQmlnSW50KC0ybiksIFVuZGVmaW5lZF0sCisKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgx
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksICIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAiLCBMZXNzXSwKKyAgICBbIjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMCIsIGNyZWF0ZUhlYXBCaWdJbnQoMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBHcmVh
dGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiks
ICItMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwgR3JlYXRlcl0sCisgICAg
WyItMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwgY3JlYXRlSGVhcEJpZ0lu
dCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmln
SW50KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgIjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAiLCBFcXVhbF0sCisgICAgWyIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwgY3JlYXRlSGVh
cEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIEVxdWFsXSwKKyAgICBbY3JlYXRl
SGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCAiLTEwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAiLCBFcXVhbF0sCisgICAgWyItMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIs
IGNyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgRXF1YWxdLAor
CisgICAgWzIwbiwgIjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIExlc3Nd
LAorICAgIFsiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwgMjBuLCBHcmVh
dGVyXSwKKyAgICBbMjBuLCAiLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIs
IEdyZWF0ZXJdLAorICAgIFsiLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIs
IDIwbiwgTGVzc10sCitdOworCitmdW5jdGlvbiBsZXNzVGhhbihhLCBiKQoreworICAgIHJldHVy
biBhIDwgYjsKK30KK25vSW5saW5lKGxlc3NUaGFuKTsKKworZnVuY3Rpb24gbGVzc1RoYW5FcXVh
bChhLCBiKQoreworICAgIHJldHVybiBhIDw9IGI7Cit9Citub0lubGluZShsZXNzVGhhbkVxdWFs
KTsKKworZnVuY3Rpb24gZ3JlYXRlclRoYW4oYSwgYikKK3sKKyAgICByZXR1cm4gYSA+IGI7Cit9
Citub0lubGluZShncmVhdGVyVGhhbik7CisKK2Z1bmN0aW9uIGdyZWF0ZXJUaGFuRXF1YWwoYSwg
YikKK3sKKyAgICByZXR1cm4gYSA+PSBiOworfQorbm9JbmxpbmUoZ3JlYXRlclRoYW5FcXVhbCk7
CisKK2Z1bmN0aW9uIGVxdWFsKGEsIGIpCit7CisgICAgcmV0dXJuIGEgPT0gYjsKK30KK25vSW5s
aW5lKGVxdWFsKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTM7ICsraSkgeworICAgIGZvciAo
bGV0IFthLCBiLCByZXNdIG9mIGxpc3QpIHsKKyAgICAgICAgc2hvdWxkQmUobGVzc1RoYW4oYSwg
YiksIHJlc3VsdChsZXNzVGhhbiwgcmVzKSk7CisgICAgICAgIHNob3VsZEJlKGxlc3NUaGFuRXF1
YWwoYSwgYiksIHJlc3VsdChsZXNzVGhhbkVxdWFsLCByZXMpKTsKKyAgICAgICAgc2hvdWxkQmUo
Z3JlYXRlclRoYW4oYSwgYiksIHJlc3VsdChncmVhdGVyVGhhbiwgcmVzKSk7CisgICAgICAgIHNo
b3VsZEJlKGdyZWF0ZXJUaGFuRXF1YWwoYSwgYiksIHJlc3VsdChncmVhdGVyVGhhbkVxdWFsLCBy
ZXMpKTsKKyAgICAgICAgc2hvdWxkQmUoZXF1YWwoYSwgYiksIHJlc3VsdChlcXVhbCwgcmVzKSk7
CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvY29tcGFyZS1iaWdpbnQuanMg
Yi9KU1Rlc3RzL3N0cmVzcy9jb21wYXJlLWJpZ2ludC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTRiOTkyOGU2
ZWNmMDAyMjExYzMxMGI3OWEwMjZmNjBkZjI0OWUxCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9zdHJlc3MvY29tcGFyZS1iaWdpbnQuanMKQEAgLTAsMCArMSwxNTEgQEAKK2Z1bmN0aW9uIHNo
b3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitj
b25zdCBHcmVhdGVyID0gMDsKK2NvbnN0IExlc3MgPSAxOworY29uc3QgRXF1YWwgPSAyOworCitm
dW5jdGlvbiByZXN1bHQoZnVuYywgZGF0YSkKK3sKKyAgICBpZiAoZnVuYyA9PT0gbGVzc1RoYW4p
CisgICAgICAgIHJldHVybiBkYXRhID09PSBMZXNzOworICAgIGlmIChmdW5jID09PSBsZXNzVGhh
bkVxdWFsKQorICAgICAgICByZXR1cm4gZGF0YSA9PT0gTGVzcyB8fCBkYXRhID09PSBFcXVhbDsK
KyAgICBpZiAoZnVuYyA9PT0gZ3JlYXRlclRoYW4pCisgICAgICAgIHJldHVybiBkYXRhID09PSBH
cmVhdGVyOworICAgIGlmIChmdW5jID09PSBncmVhdGVyVGhhbkVxdWFsKQorICAgICAgICByZXR1
cm4gZGF0YSA9PT0gR3JlYXRlciB8fCBkYXRhID09PSBFcXVhbDsKKyAgICBpZiAoZnVuYyA9PT0g
ZXF1YWwpCisgICAgICAgIHJldHVybiBkYXRhID09PSBFcXVhbDsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK3ZhciBsaXN0ID0gWworICAgIFtjcmVhdGVIZWFwQmlnSW50KDFuKSwgMm4sIExlc3Nd
LAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDFuKSwgMW4sIEVxdWFsXSwKKyAgICBbY3JlYXRlSGVh
cEJpZ0ludCgxbiksIDBuLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxbiksIC0x
biwgR3JlYXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMW4pLCAtMm4sIEdyZWF0ZXJdLAor
ICAgIFtjcmVhdGVIZWFwQmlnSW50KDBuKSwgMm4sIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmln
SW50KDBuKSwgMW4sIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDBuKSwgMG4sIEVxdWFs
XSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgwbiksIC0xbiwgR3JlYXRlcl0sCisgICAgW2NyZWF0
ZUhlYXBCaWdJbnQoMG4pLCAtMm4sIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0x
biksIDJuLCBMZXNzXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMW4pLCAxbiwgTGVzc10sCisg
ICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgMG4sIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmln
SW50KC0xbiksIC0xbiwgRXF1YWxdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xbiksIC0ybiwg
R3JlYXRlcl0sCisKKyAgICBbMW4sIGNyZWF0ZUhlYXBCaWdJbnQoMm4pLCBMZXNzXSwKKyAgICBb
MW4sIGNyZWF0ZUhlYXBCaWdJbnQoMW4pLCBFcXVhbF0sCisgICAgWzFuLCBjcmVhdGVIZWFwQmln
SW50KDBuKSwgR3JlYXRlcl0sCisgICAgWzFuLCBjcmVhdGVIZWFwQmlnSW50KC0xbiksIEdyZWF0
ZXJdLAorICAgIFsxbiwgY3JlYXRlSGVhcEJpZ0ludCgtMm4pLCBHcmVhdGVyXSwKKyAgICBbMG4s
IGNyZWF0ZUhlYXBCaWdJbnQoMm4pLCBMZXNzXSwKKyAgICBbMG4sIGNyZWF0ZUhlYXBCaWdJbnQo
MW4pLCBMZXNzXSwKKyAgICBbMG4sIGNyZWF0ZUhlYXBCaWdJbnQoMG4pLCBFcXVhbF0sCisgICAg
WzBuLCBjcmVhdGVIZWFwQmlnSW50KC0xbiksIEdyZWF0ZXJdLAorICAgIFswbiwgY3JlYXRlSGVh
cEJpZ0ludCgtMm4pLCBHcmVhdGVyXSwKKyAgICBbLTFuLCBjcmVhdGVIZWFwQmlnSW50KDJuKSwg
TGVzc10sCisgICAgWy0xbiwgY3JlYXRlSGVhcEJpZ0ludCgxbiksIExlc3NdLAorICAgIFstMW4s
IGNyZWF0ZUhlYXBCaWdJbnQoMG4pLCBMZXNzXSwKKyAgICBbLTFuLCBjcmVhdGVIZWFwQmlnSW50
KC0xbiksIEVxdWFsXSwKKyAgICBbLTFuLCBjcmVhdGVIZWFwQmlnSW50KC0ybiksIEdyZWF0ZXJd
LAorCisgICAgWzFuLCAybiwgTGVzc10sCisgICAgWzFuLCAxbiwgRXF1YWxdLAorICAgIFsxbiwg
MG4sIEdyZWF0ZXJdLAorICAgIFsxbiwgLTFuLCBHcmVhdGVyXSwKKyAgICBbMW4sIC0ybiwgR3Jl
YXRlcl0sCisgICAgWzBuLCAybiwgTGVzc10sCisgICAgWzBuLCAxbiwgTGVzc10sCisgICAgWzBu
LCAwbiwgRXF1YWxdLAorICAgIFswbiwgLTFuLCBHcmVhdGVyXSwKKyAgICBbMG4sIC0ybiwgR3Jl
YXRlcl0sCisgICAgWy0xbiwgMm4sIExlc3NdLAorICAgIFstMW4sIDFuLCBMZXNzXSwKKyAgICBb
LTFuLCAwbiwgTGVzc10sCisgICAgWy0xbiwgLTFuLCBFcXVhbF0sCisgICAgWy0xbiwgLTJuLCBH
cmVhdGVyXSwKKworICAgIFtjcmVhdGVIZWFwQmlnSW50KDFuKSwgY3JlYXRlSGVhcEJpZ0ludCgy
biksIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDFuKSwgY3JlYXRlSGVhcEJpZ0ludCgx
biksIEVxdWFsXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxbiksIGNyZWF0ZUhlYXBCaWdJbnQo
MG4pLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxbiksIGNyZWF0ZUhlYXBCaWdJ
bnQoLTFuKSwgR3JlYXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMW4pLCBjcmVhdGVIZWFw
QmlnSW50KC0ybiksIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDBuKSwgY3JlYXRl
SGVhcEJpZ0ludCgybiksIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDBuKSwgY3JlYXRl
SGVhcEJpZ0ludCgxbiksIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDBuKSwgY3JlYXRl
SGVhcEJpZ0ludCgwbiksIEVxdWFsXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgwbiksIGNyZWF0
ZUhlYXBCaWdJbnQoLTFuKSwgR3JlYXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMG4pLCBj
cmVhdGVIZWFwQmlnSW50KC0ybiksIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0x
biksIGNyZWF0ZUhlYXBCaWdJbnQoMm4pLCBMZXNzXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgt
MW4pLCBjcmVhdGVIZWFwQmlnSW50KDFuKSwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQo
LTFuKSwgY3JlYXRlSGVhcEJpZ0ludCgwbiksIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50
KC0xbiksIGNyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgRXF1YWxdLAorICAgIFtjcmVhdGVIZWFwQmln
SW50KC0xbiksIGNyZWF0ZUhlYXBCaWdJbnQoLTJuKSwgR3JlYXRlcl0sCisKKyAgICBbY3JlYXRl
SGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIDJuLCBHcmVhdGVyXSwKKyAg
ICBbY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIDFuLCBHcmVh
dGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiks
IDBuLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwbiksIC0xbiwgR3JlYXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoMTAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMG4pLCAtMm4sIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50
KC0xMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIDJuLCBMZXNzXSwKKyAgICBbY3JlYXRlSGVh
cEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCAxbiwgTGVzc10sCisgICAgW2Ny
ZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgMG4sIExlc3NdLAor
ICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIC0xbiwg
TGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBu
KSwgLTJuLCBMZXNzXSwKKworICAgIFsybiwgY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwbiksIExlc3NdLAorICAgIFsxbiwgY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwbiksIExlc3NdLAorICAgIFswbiwgY3JlYXRlSGVhcEJpZ0ludCgx
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIExlc3NdLAorICAgIFstMW4sIGNyZWF0ZUhlYXBC
aWdJbnQoMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBMZXNzXSwKKyAgICBbLTJuLCBjcmVh
dGVIZWFwQmlnSW50KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgTGVzc10sCisgICAgWzJu
LCBjcmVhdGVIZWFwQmlnSW50KC0xMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIEdyZWF0ZXJd
LAorICAgIFsxbiwgY3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4p
LCBHcmVhdGVyXSwKKyAgICBbMG4sIGNyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDBuKSwgR3JlYXRlcl0sCisgICAgWy0xbiwgY3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBHcmVhdGVyXSwKKyAgICBbLTJuLCBjcmVhdGVIZWFwQmln
SW50KC0xMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIEdyZWF0ZXJdLAorXTsKKworZnVuY3Rp
b24gbGVzc1RoYW4oYSwgYikKK3sKKyAgICByZXR1cm4gYSA8IGI7Cit9Citub0lubGluZShsZXNz
VGhhbik7CisKK2Z1bmN0aW9uIGxlc3NUaGFuRXF1YWwoYSwgYikKK3sKKyAgICByZXR1cm4gYSA8
PSBiOworfQorbm9JbmxpbmUobGVzc1RoYW5FcXVhbCk7CisKK2Z1bmN0aW9uIGdyZWF0ZXJUaGFu
KGEsIGIpCit7CisgICAgcmV0dXJuIGEgPiBiOworfQorbm9JbmxpbmUoZ3JlYXRlclRoYW4pOwor
CitmdW5jdGlvbiBncmVhdGVyVGhhbkVxdWFsKGEsIGIpCit7CisgICAgcmV0dXJuIGEgPj0gYjsK
K30KK25vSW5saW5lKGdyZWF0ZXJUaGFuRXF1YWwpOworCitmdW5jdGlvbiBlcXVhbChhLCBiKQor
eworICAgIHJldHVybiBhID09IGI7Cit9Citub0lubGluZShlcXVhbCk7CisKK2ZvciAodmFyIGkg
PSAwOyBpIDwgMWUzOyArK2kpIHsKKyAgICBmb3IgKGxldCBbYSwgYiwgcmVzXSBvZiBsaXN0KSB7
CisgICAgICAgIHNob3VsZEJlKGxlc3NUaGFuKGEsIGIpLCByZXN1bHQobGVzc1RoYW4sIHJlcykp
OworICAgICAgICBzaG91bGRCZShsZXNzVGhhbkVxdWFsKGEsIGIpLCByZXN1bHQobGVzc1RoYW5F
cXVhbCwgcmVzKSk7CisgICAgICAgIHNob3VsZEJlKGdyZWF0ZXJUaGFuKGEsIGIpLCByZXN1bHQo
Z3JlYXRlclRoYW4sIHJlcykpOworICAgICAgICBzaG91bGRCZShncmVhdGVyVGhhbkVxdWFsKGEs
IGIpLCByZXN1bHQoZ3JlYXRlclRoYW5FcXVhbCwgcmVzKSk7CisgICAgICAgIHNob3VsZEJlKGVx
dWFsKGEsIGIpLCByZXN1bHQoZXF1YWwsIHJlcykpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL2NvbXBhcmUtYmlnaW50MzIuanMgYi9KU1Rlc3RzL3N0cmVzcy9jb21wYXJl
LWJpZ2ludDMyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmNmYzM2ZhMzY3YWIwZTVhNTM0YzUwZmQ5NzRjNmI0
ZTI2ZTdmYWMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9jb21wYXJlLWJpZ2lu
dDMyLmpzCkBAIC0wLDAgKzEsODEgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0
ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitjb25zdCBHcmVhdGVyID0gMDsKK2Nv
bnN0IExlc3MgPSAxOworY29uc3QgRXF1YWwgPSAyOworCitmdW5jdGlvbiByZXN1bHQoZnVuYywg
ZGF0YSkKK3sKKyAgICBpZiAoZnVuYyA9PT0gbGVzc1RoYW4pCisgICAgICAgIHJldHVybiBkYXRh
ID09PSBMZXNzOworICAgIGlmIChmdW5jID09PSBsZXNzVGhhbkVxdWFsKQorICAgICAgICByZXR1
cm4gZGF0YSA9PT0gTGVzcyB8fCBkYXRhID09PSBFcXVhbDsKKyAgICBpZiAoZnVuYyA9PT0gZ3Jl
YXRlclRoYW4pCisgICAgICAgIHJldHVybiBkYXRhID09PSBHcmVhdGVyOworICAgIGlmIChmdW5j
ID09PSBncmVhdGVyVGhhbkVxdWFsKQorICAgICAgICByZXR1cm4gZGF0YSA9PT0gR3JlYXRlciB8
fCBkYXRhID09PSBFcXVhbDsKKyAgICBpZiAoZnVuYyA9PT0gZXF1YWwpCisgICAgICAgIHJldHVy
biBkYXRhID09PSBFcXVhbDsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZhciBsaXN0ID0gWwor
ICAgIFsxbiwgMm4sIExlc3NdLAorICAgIFsxbiwgMW4sIEVxdWFsXSwKKyAgICBbMW4sIDBuLCBH
cmVhdGVyXSwKKyAgICBbMW4sIC0xbiwgR3JlYXRlcl0sCisgICAgWzFuLCAtMm4sIEdyZWF0ZXJd
LAorICAgIFswbiwgMm4sIExlc3NdLAorICAgIFswbiwgMW4sIExlc3NdLAorICAgIFswbiwgMG4s
IEVxdWFsXSwKKyAgICBbMG4sIC0xbiwgR3JlYXRlcl0sCisgICAgWzBuLCAtMm4sIEdyZWF0ZXJd
LAorICAgIFstMW4sIDJuLCBMZXNzXSwKKyAgICBbLTFuLCAxbiwgTGVzc10sCisgICAgWy0xbiwg
MG4sIExlc3NdLAorICAgIFstMW4sIC0xbiwgRXF1YWxdLAorICAgIFstMW4sIC0ybiwgR3JlYXRl
cl0sCitdOworCitmdW5jdGlvbiBsZXNzVGhhbihhLCBiKQoreworICAgIHJldHVybiBhIDwgYjsK
K30KK25vSW5saW5lKGxlc3NUaGFuKTsKKworZnVuY3Rpb24gbGVzc1RoYW5FcXVhbChhLCBiKQor
eworICAgIHJldHVybiBhIDw9IGI7Cit9Citub0lubGluZShsZXNzVGhhbkVxdWFsKTsKKworZnVu
Y3Rpb24gZ3JlYXRlclRoYW4oYSwgYikKK3sKKyAgICByZXR1cm4gYSA+IGI7Cit9Citub0lubGlu
ZShncmVhdGVyVGhhbik7CisKK2Z1bmN0aW9uIGdyZWF0ZXJUaGFuRXF1YWwoYSwgYikKK3sKKyAg
ICByZXR1cm4gYSA+PSBiOworfQorbm9JbmxpbmUoZ3JlYXRlclRoYW5FcXVhbCk7CisKK2Z1bmN0
aW9uIGVxdWFsKGEsIGIpCit7CisgICAgcmV0dXJuIGEgPT0gYjsKK30KK25vSW5saW5lKGVxdWFs
KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTM7ICsraSkgeworICAgIGZvciAobGV0IFthLCBi
LCByZXNdIG9mIGxpc3QpIHsKKyAgICAgICAgc2hvdWxkQmUobGVzc1RoYW4oYSwgYiksIHJlc3Vs
dChsZXNzVGhhbiwgcmVzKSk7CisgICAgICAgIHNob3VsZEJlKGxlc3NUaGFuRXF1YWwoYSwgYiks
IHJlc3VsdChsZXNzVGhhbkVxdWFsLCByZXMpKTsKKyAgICAgICAgc2hvdWxkQmUoZ3JlYXRlclRo
YW4oYSwgYiksIHJlc3VsdChncmVhdGVyVGhhbiwgcmVzKSk7CisgICAgICAgIHNob3VsZEJlKGdy
ZWF0ZXJUaGFuRXF1YWwoYSwgYiksIHJlc3VsdChncmVhdGVyVGhhbkVxdWFsLCByZXMpKTsKKyAg
ICAgICAgc2hvdWxkQmUoZXF1YWwoYSwgYiksIHJlc3VsdChlcXVhbCwgcmVzKSk7CisgICAgfQor
fQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvY29tcGFyZS1oZWFwLWJpZ2ludC5qcyBiL0pT
VGVzdHMvc3RyZXNzL2NvbXBhcmUtaGVhcC1iaWdpbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVhZThlNDkx
ZjU0MGExN2U2MGFjNDkwNjAzNDkxOWNlYTljNDM4ZQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVz
dHMvc3RyZXNzL2NvbXBhcmUtaGVhcC1iaWdpbnQuanMKQEAgLTAsMCArMSwxMDMgQEAKK2Z1bmN0
aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBl
Y3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwor
fQorCitjb25zdCBHcmVhdGVyID0gMDsKK2NvbnN0IExlc3MgPSAxOworY29uc3QgRXF1YWwgPSAy
OworCitmdW5jdGlvbiByZXN1bHQoZnVuYywgZGF0YSkKK3sKKyAgICBpZiAoZnVuYyA9PT0gbGVz
c1RoYW4pCisgICAgICAgIHJldHVybiBkYXRhID09PSBMZXNzOworICAgIGlmIChmdW5jID09PSBs
ZXNzVGhhbkVxdWFsKQorICAgICAgICByZXR1cm4gZGF0YSA9PT0gTGVzcyB8fCBkYXRhID09PSBF
cXVhbDsKKyAgICBpZiAoZnVuYyA9PT0gZ3JlYXRlclRoYW4pCisgICAgICAgIHJldHVybiBkYXRh
ID09PSBHcmVhdGVyOworICAgIGlmIChmdW5jID09PSBncmVhdGVyVGhhbkVxdWFsKQorICAgICAg
ICByZXR1cm4gZGF0YSA9PT0gR3JlYXRlciB8fCBkYXRhID09PSBFcXVhbDsKKyAgICBpZiAoZnVu
YyA9PT0gZXF1YWwpCisgICAgICAgIHJldHVybiBkYXRhID09PSBFcXVhbDsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK3ZhciBsaXN0ID0gWworICAgIFtjcmVhdGVIZWFwQmlnSW50KDFuKSwgY3Jl
YXRlSGVhcEJpZ0ludCgybiksIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDFuKSwgY3Jl
YXRlSGVhcEJpZ0ludCgxbiksIEVxdWFsXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxbiksIGNy
ZWF0ZUhlYXBCaWdJbnQoMG4pLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxbiks
IGNyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgR3JlYXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQo
MW4pLCBjcmVhdGVIZWFwQmlnSW50KC0ybiksIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmln
SW50KDBuKSwgY3JlYXRlSGVhcEJpZ0ludCgybiksIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmln
SW50KDBuKSwgY3JlYXRlSGVhcEJpZ0ludCgxbiksIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmln
SW50KDBuKSwgY3JlYXRlSGVhcEJpZ0ludCgwbiksIEVxdWFsXSwKKyAgICBbY3JlYXRlSGVhcEJp
Z0ludCgwbiksIGNyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgR3JlYXRlcl0sCisgICAgW2NyZWF0ZUhl
YXBCaWdJbnQoMG4pLCBjcmVhdGVIZWFwQmlnSW50KC0ybiksIEdyZWF0ZXJdLAorICAgIFtjcmVh
dGVIZWFwQmlnSW50KC0xbiksIGNyZWF0ZUhlYXBCaWdJbnQoMm4pLCBMZXNzXSwKKyAgICBbY3Jl
YXRlSGVhcEJpZ0ludCgtMW4pLCBjcmVhdGVIZWFwQmlnSW50KDFuKSwgTGVzc10sCisgICAgW2Ny
ZWF0ZUhlYXBCaWdJbnQoLTFuKSwgY3JlYXRlSGVhcEJpZ0ludCgwbiksIExlc3NdLAorICAgIFtj
cmVhdGVIZWFwQmlnSW50KC0xbiksIGNyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgRXF1YWxdLAorICAg
IFtjcmVhdGVIZWFwQmlnSW50KC0xbiksIGNyZWF0ZUhlYXBCaWdJbnQoLTJuKSwgR3JlYXRlcl0s
CisKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIGNy
ZWF0ZUhlYXBCaWdJbnQoMm4pLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIGNyZWF0ZUhlYXBCaWdJbnQoMW4pLCBHcmVhdGVyXSwK
KyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIGNyZWF0
ZUhlYXBCaWdJbnQoMG4pLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwbiksIGNyZWF0ZUhlYXBCaWdJbnQoLTFuKSwgR3JlYXRlcl0sCisg
ICAgW2NyZWF0ZUhlYXBCaWdJbnQoMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBjcmVhdGVI
ZWFwQmlnSW50KC0ybiksIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwbiksIGNyZWF0ZUhlYXBCaWdJbnQoMm4pLCBMZXNzXSwKKyAgICBb
Y3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBjcmVhdGVIZWFw
QmlnSW50KDFuKSwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDBuKSwgY3JlYXRlSGVhcEJpZ0ludCgwbiksIExlc3NdLAorICAgIFtjcmVhdGVI
ZWFwQmlnSW50KC0xMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIGNyZWF0ZUhlYXBCaWdJbnQo
LTFuKSwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDBuKSwgY3JlYXRlSGVhcEJpZ0ludCgtMm4pLCBMZXNzXSwKKworICAgIFtjcmVhdGVIZWFw
QmlnSW50KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgY3JlYXRlSGVhcEJpZ0ludCgxMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAybiksIExlc3NdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDEw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFuKSwgY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwbiksIEdyZWF0ZXJdLAorICAgIFtjcmVhdGVIZWFwQmlnSW50KDEwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDBuKSwgY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwbiksIEVxdWFsXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMG4pLCBjcmVhdGVIZWFwQmlnSW50KC0xMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
biksIEVxdWFsXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwbiksIGNyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFuKSwgR3Jl
YXRlcl0sCisgICAgW2NyZWF0ZUhlYXBCaWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBu
KSwgY3JlYXRlSGVhcEJpZ0ludCgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAybiksIExlc3NdLAor
ICAgIFtjcmVhdGVIZWFwQmlnSW50KC0xMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiksIGNyZWF0
ZUhlYXBCaWdJbnQoMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMW4pLCBMZXNzXSwKKyAgICBbY3Jl
YXRlSGVhcEJpZ0ludCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBjcmVhdGVIZWFwQmln
SW50KDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgTGVzc10sCisgICAgW2NyZWF0ZUhlYXBC
aWdJbnQoLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBuKSwgY3JlYXRlSGVhcEJpZ0ludCgtMTAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMW4pLCBHcmVhdGVyXSwKKyAgICBbY3JlYXRlSGVhcEJpZ0lu
dCgtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4pLCBjcmVhdGVIZWFwQmlnSW50KC0xMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAybiksIEdyZWF0ZXJdLAorXTsKKworZnVuY3Rpb24gbGVzc1RoYW4o
YSwgYikKK3sKKyAgICByZXR1cm4gYSA8IGI7Cit9Citub0lubGluZShsZXNzVGhhbik7CisKK2Z1
bmN0aW9uIGxlc3NUaGFuRXF1YWwoYSwgYikKK3sKKyAgICByZXR1cm4gYSA8PSBiOworfQorbm9J
bmxpbmUobGVzc1RoYW5FcXVhbCk7CisKK2Z1bmN0aW9uIGdyZWF0ZXJUaGFuKGEsIGIpCit7Cisg
ICAgcmV0dXJuIGEgPiBiOworfQorbm9JbmxpbmUoZ3JlYXRlclRoYW4pOworCitmdW5jdGlvbiBn
cmVhdGVyVGhhbkVxdWFsKGEsIGIpCit7CisgICAgcmV0dXJuIGEgPj0gYjsKK30KK25vSW5saW5l
KGdyZWF0ZXJUaGFuRXF1YWwpOworCitmdW5jdGlvbiBlcXVhbChhLCBiKQoreworICAgIHJldHVy
biBhID09IGI7Cit9Citub0lubGluZShlcXVhbCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWUz
OyArK2kpIHsKKyAgICBmb3IgKGxldCBbYSwgYiwgcmVzXSBvZiBsaXN0KSB7CisgICAgICAgIHNo
b3VsZEJlKGxlc3NUaGFuKGEsIGIpLCByZXN1bHQobGVzc1RoYW4sIHJlcykpOworICAgICAgICBz
aG91bGRCZShsZXNzVGhhbkVxdWFsKGEsIGIpLCByZXN1bHQobGVzc1RoYW5FcXVhbCwgcmVzKSk7
CisgICAgICAgIHNob3VsZEJlKGdyZWF0ZXJUaGFuKGEsIGIpLCByZXN1bHQoZ3JlYXRlclRoYW4s
IHJlcykpOworICAgICAgICBzaG91bGRCZShncmVhdGVyVGhhbkVxdWFsKGEsIGIpLCByZXN1bHQo
Z3JlYXRlclRoYW5FcXVhbCwgcmVzKSk7CisgICAgICAgIHNob3VsZEJlKGVxdWFsKGEsIGIpLCBy
ZXN1bHQoZXF1YWwsIHJlcykpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L2RmZy1haS1mb2xkLWJpZ2ludC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RmZy1haS1mb2xkLWJpZ2lu
dC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45OGRlMjQ4MGE3ZGVjYTljNTZiNjQwNGEyNGI2NzAwZTM3N2RkMzk4
Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGZnLWFpLWZvbGQtYmlnaW50Lmpz
CkBAIC0wLDAgKzEsOTAgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsK
KyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdi
YWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBhbGxBcmVUcnVlKGxpc3QpCit7
CisgICAgZm9yIChsZXQgaXRlbSBvZiBsaXN0KQorICAgICAgICBzaG91bGRCZShpdGVtLCB0cnVl
KTsKK30KKworZnVuY3Rpb24gYWxsQXJlRmFsc2UobGlzdCkKK3sKKyAgICBmb3IgKGxldCBpdGVt
IG9mIGxpc3QpCisgICAgICAgIHNob3VsZEJlKGl0ZW0sIGZhbHNlKTsKK30KKworZnVuY3Rpb24g
bGVzc1RoYW4oKQoreworICAgIHJldHVybiBbMG4gPCAybiwgLTEwbiA8IDIwbiwgLTEwbiA8IC0y
biwgLTEwMDAwMDAwMDAwMDAwMG4gPCAwbiwgLTEwMDAwMDAwMDAwMDAwMG4gPCAxMDAwMG4sIC0x
MDAwMDAwMDAwMDAwMDBuIDwgLTEwMDAwbiwgLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDBuIDwgLTEw
MDAwMDAwMDAwMG4sIDEwMDAwMDAwMDAwMDAwMDAwMDAwMDBuIDwgMTAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMG5dOworfQorbm9JbmxpbmUobGVzc1RoYW4pOworCitmdW5jdGlvbiBsZXNzVGhhbkZh
bHNlKCkKK3sKKyAgICByZXR1cm4gWzEwMDAwMDAwMDAwMDAwMDAwMDAwMG4gPCAxMDAwMDAwMDAw
MDAwMDAwMDAwMDBuLCAwbiA8IDBuLCAybiA8IDBuLCAybiA8IDJuLCAtMTBuIDwgLTEwbiwgMjBu
IDwgLTIwbiwgLTJuIDwgLTEwbiwgMG4gPCAtMTAwMDAwMDAwMDAwMDAwbiwgLTEwMDAwbiA8IC0x
MDAwMDAwMDAwMDAwMDBuLCAtMTAwMDAwMDAwMDAwbiA8IC0xMDAwMDAwMDAwMDAwMDAwMDAwMDAw
biwgMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4gPCAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiBd
OworfQorbm9JbmxpbmUobGVzc1RoYW5GYWxzZSk7CisKK2Z1bmN0aW9uIGxlc3NUaGFuRXF1YWwo
KQoreworICAgIHJldHVybiBbMTAwMDAwMDAwMDAwMDAwMDAwMDAwbiA8PSAxMDAwMDAwMDAwMDAw
MDAwMDAwMDBuLCAwbiA8PSAwbiwgMG4gPD0gMm4sIDJuIDw9IDJuLCAtMTBuIDw9IC0xMG4sIC0y
MG4gPD0gMjBuLCAtMTBuIDw9IC0ybiwgLTEwMDAwMDAwMDAwMDAwMG4gPD0gMG4sIC0xMDAwMDAw
MDAwMDAwMDBuIDw9IC0xMDAwMG4sIC0xMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiA8PSAtMTAwMDAw
MDAwMDAwbiwgMTAwMDAwMDAwMDAwMDAwMDAwMDAwMG4gPD0gMTAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMG4gXTsKK30KK25vSW5saW5lKGxlc3NUaGFuRXF1YWwpOworCitmdW5jdGlvbiBsZXNzVGhh
bkVxdWFsRmFsc2UoKQoreworICAgIHJldHVybiBbMTAwMDAwMDAwMDAwMDAwMDAwMDAxbiA8PSAx
MDAwMDAwMDAwMDAwMDAwMDAwMDBuLCAxbiA8PSAwbiwgMm4gPD0gMG4sIDNuIDw9IDJuLCAtMTBu
IDw9IC0xMW4sIDIwbiA8PSAtMjBuLCAtMm4gPD0gLTEwbiwgMG4gPD0gLTEwMDAwMDAwMDAwMDAw
MG4sIC0xMDAwMG4gPD0gLTEwMDAwMDAwMDAwMDAwMG4sIC0xMDAwMDAwMDAwMDBuIDw9IC0xMDAw
MDAwMDAwMDAwMDAwMDAwMDAwbiwgMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMG4gPD0gMTAwMDAw
MDAwMDAwMDAwMDAwMDAwMG4gXTsKK30KK25vSW5saW5lKGxlc3NUaGFuRXF1YWxGYWxzZSk7CisK
K2Z1bmN0aW9uIGdyZWF0ZXJUaGFuKCkKK3sKKyAgICByZXR1cm4gWzJuID4gMG4sIDIwbiA+IC0x
MG4sIC0ybiA+IC0xMG4sIDBuID4gLTEwMDAwMDAwMDAwMDAwMG4sIDEwMDAwbiA+IC0xMDAwMDAw
MDAwMDAwMDBuLCAtMTAwMDBuID4gLTEwMDAwMDAwMDAwMDAwMG4sIC0xMDAwMDAwMDAwMDBuID4g
LTEwMDAwMDAwMDAwMDAwMDAwMDAwMDBuLCAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiA+IDEw
MDAwMDAwMDAwMDAwMDAwMDAwMDBuIF07Cit9Citub0lubGluZShncmVhdGVyVGhhbik7CisKK2Z1
bmN0aW9uIGdyZWF0ZXJUaGFuRmFsc2UoKQoreworICAgIHJldHVybiBbMTAwMDAwMDAwMDAwMDAw
MDAwMDAwbiA+IDEwMDAwMDAwMDAwMDAwMDAwMDAwMG4sIDBuID4gMG4sIDBuID4gMm4sIDJuID4g
Mm4sIC0xMG4gPiAtMTBuLCAtMjBuID4gMjBuLCAtMTBuID4gLTJuLCAtMTAwMDAwMDAwMDAwMDAw
biA+IDBuLCAtMTAwMDAwMDAwMDAwMDAwbiA+IC0xMDAwMG4sIC0xMDAwMDAwMDAwMDAwMDAwMDAw
MDAwbiA+IC0xMDAwMDAwMDAwMDBuLCAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiA+IDEwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDBuIF07Cit9Citub0lubGluZShncmVhdGVyVGhhbkZhbHNlKTsKKwor
ZnVuY3Rpb24gZ3JlYXRlclRoYW5FcXVhbCgpCit7CisgICAgcmV0dXJuIFsxMDAwMDAwMDAwMDAw
MDAwMDAwMDBuID49IDEwMDAwMDAwMDAwMDAwMDAwMDAwMG4sIDBuID49IDBuLCAybiA+PSAwbiwg
Mm4gPj0gMm4sIC0xMG4gPj0gLTEwbiwgMjBuID49IC0yMG4sIC0ybiA+PSAtMTBuLCAwbiA+PSAt
MTAwMDAwMDAwMDAwMDAwbiwgLTEwMDAwbiA+PSAtMTAwMDAwMDAwMDAwMDAwbiwgLTEwMDAwMDAw
MDAwMG4gPj0gLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDBuLCAxMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwbiA+PSAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiBdOworfQorbm9JbmxpbmUoZ3JlYXRlclRo
YW5FcXVhbCk7CisKK2Z1bmN0aW9uIGdyZWF0ZXJUaGFuRXF1YWxGYWxzZSgpCit7CisgICAgcmV0
dXJuIFsxMDAwMDAwMDAwMDAwMDAwMDAwMDBuID49IDEwMDAwMDAwMDAwMDAwMDAwMDAwMW4sIDBu
ID49IDFuLCAwbiA+PSAybiwgMm4gPj0gM24sIC0xMW4gPj0gLTEwbiwgLTIwbiA+PSAyMG4sIC0x
MG4gPj0gLTJuLCAtMTAwMDAwMDAwMDAwMDAwbiA+PSAwbiwgLTEwMDAwMDAwMDAwMDAwMG4gPj0g
LTEwMDAwbiwgLTEwMDAwMDAwMDAwMDAwMDAwMDAwMDBuID49IC0xMDAwMDAwMDAwMDBuLCAxMDAw
MDAwMDAwMDAwMDAwMDAwMDAwbiA+PSAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwbiBdOworfQor
bm9JbmxpbmUoZ3JlYXRlclRoYW5FcXVhbEZhbHNlKTsKKworZnVuY3Rpb24gZXF1YWwoKQorewor
ICAgIHJldHVybiBbMTAwMDAwMDAwMDAwMDAwMDAwMDAwbiA9PSAxMDAwMDAwMDAwMDAwMDAwMDAw
MDBuLCAwbiA9PSAwbiwgMm4gPT0gMm4sIC0ybiA9PSAtMm4sIC0yMG4gPT0gLTIwbiwgLTEwMDAw
MDAwMDAwMDAwMG4gPT0gLTEwMDAwMDAwMDAwMDAwMG5dOworfQorbm9JbmxpbmUoZXF1YWwpOwor
CitmdW5jdGlvbiBlcXVhbEZhbHNlKCkKK3sKKyAgICByZXR1cm4gWzEwMDAwMDAwMDAwMDAwMDAw
MDAwMW4gPT0gMTAwMDAwMDAwMDAwMDAwMDAwMDAwbiwgMW4gPT0gMG4sIC0ybiA9PSAybiwgMm4g
PT0gLTJuLCAtMjBuID09IDIwbiwgLTEwMDAwMDAwMDAwMDAwMG4gPT0gMTAwMDAwMDAwMDAwMDAw
biwgMTAwMDAwMDAwMDAwMDAwbiA9PSAtMTAwMDAwMDAwMDAwMDAwbiwgLTEwMDAwMDAwMDAwMDAw
MW4gPT0gLTEwMDAwMDAwMDAwMDAwMG4sIDEwMDAwMDAwMDAwMDAwMW4gPT0gMTAwMDAwMDAwMDAw
MDAwbiwgLTEwMDAwMDAwMDAwMDAwMG4gPT0gMW4sIDEwMDAwMDAwMDAwMDAwMG4gPT0gMW4sIC0x
biA9PSAxMDAwMDAwMDAwMDAwMDBuLCAxbiA9PSAtMTAwMDAwMDAwMDAwMDAwbiwgLTFuID09IC0x
MDAwMDAwMDAwMDAwMDBuXTsKK30KK25vSW5saW5lKGVxdWFsRmFsc2UpOworCitmb3IgKHZhciBp
ID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgYWxsQXJlVHJ1ZShsZXNzVGhhbigpKTsKKyAgICBh
bGxBcmVUcnVlKGxlc3NUaGFuRXF1YWwoKSk7CisgICAgYWxsQXJlVHJ1ZShncmVhdGVyVGhhbigp
KTsKKyAgICBhbGxBcmVUcnVlKGdyZWF0ZXJUaGFuRXF1YWwoKSk7CisgICAgYWxsQXJlVHJ1ZShl
cXVhbCgpKTsKKworICAgIGFsbEFyZUZhbHNlKGxlc3NUaGFuRmFsc2UoKSk7CisgICAgYWxsQXJl
RmFsc2UobGVzc1RoYW5FcXVhbEZhbHNlKCkpOworICAgIGFsbEFyZUZhbHNlKGdyZWF0ZXJUaGFu
RmFsc2UoKSk7CisgICAgYWxsQXJlRmFsc2UoZ3JlYXRlclRoYW5FcXVhbEZhbHNlKCkpOworICAg
IGFsbEFyZUZhbHNlKGVxdWFsRmFsc2UoKSk7Cit9Cg==
</data>
<flag name="review"
          id="412830"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>