<?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>110892</bug_id>
          
          <creation_ts>2013-02-26 10:32:56 -0800</creation_ts>
          <short_desc>REGRESSION(r144019): due to 8% perf regression on chromium-win7 intl1 page cycler, see https://bugs.webkit.org/show_bug.cgi?id=110872 (Requested by gasubic on #webkit).</short_desc>
          <delta_ts>2013-02-26 10:40:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>89235</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>eric</cc>
    
    <cc>glenn</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>842146</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 10:32:56 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/144019 broke the build:
due to 8% perf regression on chromium-win7 intl1 page cycler, see https://bugs.webkit.org/show_bug.cgi?id=110872 (Requested by gasubic on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842148</commentid>
    <comment_count>1</comment_count>
      <attachid>190323</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 10:33:40 -0800</bug_when>
    <thetext>Created attachment 190323
ROLLOUT of r144019

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842161</commentid>
    <comment_count>2</comment_count>
      <attachid>190323</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 10:40:32 -0800</bug_when>
    <thetext>Comment on attachment 190323
ROLLOUT of r144019

Clearing flags on attachment: 190323

Committed r144073: &lt;http://trac.webkit.org/changeset/144073&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842162</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 10:40:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190323</attachid>
            <date>2013-02-26 10:33:40 -0800</date>
            <delta_ts>2013-02-26 10:40:32 -0800</delta_ts>
            <desc>ROLLOUT of r144019</desc>
            <filename>bug-110892-20130226182954.patch</filename>
            <type>text/plain</type>
            <size>46147</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODU2Mjg0OTFhODJlZjQx
MDBjMGJlZGE3ZGJjNjhhZWRhZDQzYWU3MC4uMjVlMTY5ZWRkNTBjM2I4ZDc2MmVjNTdjZjJmNjY2
NDBhZDg4MjFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEzLTAyLTI2ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTQ0MDE5LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xNDQwMTkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMDg5MgorCisgICAgICAgIGR1ZSB0byA4JSBwZXJmIHJlZ3Jlc3Npb24gb24g
Y2hyb21pdW0td2luNyBpbnRsMSBwYWdlIGN5Y2xlciwKKyAgICAgICAgc2VlIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA4NzIgKFJlcXVlc3RlZAorICAgICAgICBi
eSBnYXN1YmljIG9uICN3ZWJraXQpLgorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9MaW5lQnJl
YWtJdGVyYXRvclBvb2xJQ1UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVCcmVha0l0ZXJhdG9y
UG9vbDo6dGFrZSk6CisgICAgICAgIChXZWJDb3JlOjpMaW5lQnJlYWtJdGVyYXRvclBvb2w6OnB1
dCk6CisgICAgICAgIChMaW5lQnJlYWtJdGVyYXRvclBvb2wpOgorICAgICAgICAqIHBsYXRmb3Jt
L3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6TGF6eUxpbmVCcmVha0l0ZXJhdG9yOjpMYXp5TGluZUJyZWFrSXRlcmF0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF6eUxpbmVCcmVha0l0ZXJhdG9yOjpnZXQpOgorICAgICAgICAo
V2ViQ29yZTo6TGF6eUxpbmVCcmVha0l0ZXJhdG9yOjpyZXNldCk6CisgICAgICAgIChMYXp5TGlu
ZUJyZWFrSXRlcmF0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3JJQ1UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OnJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9jazo6TGluZUJyZWFrZXI6Om5leHRTZWdtZW50QnJlYWspOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGV4dC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL2JyZWFrX2xp
bmVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6aXNCcmVha2Fi
bGVTcGFjZSk6CisgICAgICAgIChXZWJDb3JlOjpuZWVkc0xpbmVCcmVha0l0ZXJhdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6Om5leHRCcmVha2FibGVQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpuZXh0QnJlYWthYmxlUG9zaXRpb25JZ25vcmluZ05CU1ApOgorICAgICAgICAqIHJlbmRlcmlu
Zy9icmVha19saW5lcy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpp
c0JyZWFrYWJsZSk6CisKIDIwMTMtMDItMjYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjE0Mzk4Nik6IGZhc3QvZmlsZXMvcmV2b2tlLWJs
b2ItdXJsLmh0bWwgYXNzZXJ0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9MaW5lQnJlYWtJdGVyYXRvclBvb2xJQ1UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmgKaW5kZXggZmYyMjRiZTM1ODhjZTkyMzVl
OTI3NWY0ODI1YTU5ZTc1YWI1MTM2Yy4uN2U0YzJkOGM1NWIzM2U0YWVjN2MyOTJkMWFkY2U4NTMy
NmUyMzM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9MaW5lQnJl
YWtJdGVyYXRvclBvb2xJQ1UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xp
bmVCcmVha0l0ZXJhdG9yUG9vbElDVS5oCkBAIC0yNiwxNSArMjYsMTQgQEAKICNpZm5kZWYgTGlu
ZUJyZWFrSXRlcmF0b3JQb29sSUNVX2gKICNkZWZpbmUgTGluZUJyZWFrSXRlcmF0b3JQb29sSUNV
X2gKIAotI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dEJyZWFr
SXRlcmF0b3JJbnRlcm5hbElDVS5oIgorI2luY2x1ZGUgPHVuaWNvZGUvdWJyay5oPgogI2luY2x1
ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNDksMzggKzQ4LDExIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQYXNz
T3duUHRyPExpbmVCcmVha0l0ZXJhdG9yUG9vbD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQdHIo
bmV3IExpbmVCcmVha0l0ZXJhdG9yUG9vbCk7IH0KIAotICAgIHN0YXRpYyBTdHJpbmcgbWFrZUxv
Y2FsZVdpdGhCcmVha0tleXdvcmQoY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGUsIExpbmVCcmVh
a0l0ZXJhdG9yTW9kZSBtb2RlKQorICAgIFVCcmVha0l0ZXJhdG9yKiB0YWtlKGNvbnN0IEF0b21p
Y1N0cmluZyYgbG9jYWxlKQogICAgIHsKLSAgICAgICAgU3RyaW5nQnVpbGRlciBsb2NhbGVXaXRo
S2V5d29yZDsKLSAgICAgICAgbG9jYWxlV2l0aEtleXdvcmQuYXBwZW5kKGxvY2FsZSk7Ci0gICAg
ICAgIGxvY2FsZVdpdGhLZXl3b3JkLmFwcGVuZExpdGVyYWwoIkBicmVhaz0iKTsKLSAgICAgICAg
c3dpdGNoIChtb2RlKSB7Ci0gICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTQ6
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVV
QVgxNExvb3NlOgotICAgICAgICAgICAgbG9jYWxlV2l0aEtleXdvcmQuYXBwZW5kTGl0ZXJhbCgi
bG9vc2UiKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJh
dG9yTW9kZVVBWDE0Tm9ybWFsOgotICAgICAgICAgICAgbG9jYWxlV2l0aEtleXdvcmQuYXBwZW5k
TGl0ZXJhbCgibm9ybWFsIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBMaW5l
QnJlYWtJdGVyYXRvck1vZGVVQVgxNFN0cmljdDoKLSAgICAgICAgICAgIGxvY2FsZVdpdGhLZXl3
b3JkLmFwcGVuZExpdGVyYWwoInN0cmljdCIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIGxvY2FsZVdpdGhLZXl3b3JkLnRvU3RyaW5nKCk7Ci0gICAgfQot
Ci0gICAgVGV4dEJyZWFrSXRlcmF0b3IqIHRha2UoY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGUs
IExpbmVCcmVha0l0ZXJhdG9yTW9kZSBtb2RlLCBib29sIGlzQ0pLKQotICAgIHsKLSAgICAgICAg
QXRvbWljU3RyaW5nIGxvY2FsZVdpdGhPcHRpb25hbEJyZWFrS2V5d29yZDsKLSAgICAgICAgaWYg
KG1vZGUgPT0gTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTQpCi0gICAgICAgICAgICBsb2NhbGVX
aXRoT3B0aW9uYWxCcmVha0tleXdvcmQgPSBsb2NhbGU7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIGxvY2FsZVdpdGhPcHRpb25hbEJyZWFrS2V5d29yZCA9IG1ha2VMb2NhbGVXaXRoQnJlYWtL
ZXl3b3JkKGxvY2FsZSwgbW9kZSk7Ci0KLSAgICAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJh
dG9yID0gMDsKKyAgICAgICAgVUJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yID0gMDsKICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3Bvb2wuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAg
IGlmIChtX3Bvb2xbaV0uZmlyc3QgPT0gbG9jYWxlV2l0aE9wdGlvbmFsQnJlYWtLZXl3b3JkKSB7
CisgICAgICAgICAgICBpZiAobV9wb29sW2ldLmZpcnN0ID09IGxvY2FsZSkgewogICAgICAgICAg
ICAgICAgIGl0ZXJhdG9yID0gbV9wb29sW2ldLnNlY29uZDsKICAgICAgICAgICAgICAgICBtX3Bv
b2wucmVtb3ZlKGkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtODgsMjIgKzYwLDMzIEBA
IHB1YmxpYzoKICAgICAgICAgfQogCiAgICAgICAgIGlmICghaXRlcmF0b3IpIHsKLSAgICAgICAg
ICAgIGl0ZXJhdG9yID0gb3BlbkxpbmVCcmVha0l0ZXJhdG9yKGxvY2FsZVdpdGhPcHRpb25hbEJy
ZWFrS2V5d29yZCwgbW9kZSwgaXNDSkspOwotICAgICAgICAgICAgaWYgKCFpdGVyYXRvcikKKyAg
ICAgICAgICAgIFVFcnJvckNvZGUgb3BlblN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICAgICAg
ICAgIGJvb2wgbG9jYWxlSXNFbXB0eSA9IGxvY2FsZS5pc0VtcHR5KCk7CisgICAgICAgICAgICBp
dGVyYXRvciA9IHVicmtfb3BlbihVQlJLX0xJTkUsIGxvY2FsZUlzRW1wdHkgPyBjdXJyZW50VGV4
dEJyZWFrTG9jYWxlSUQoKSA6IGxvY2FsZS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCAwLCAwLCAm
b3BlblN0YXR1cyk7CisgICAgICAgICAgICAvLyBsb2NhbGUgY29tZXMgZnJvbSBhIHdlYiBwYWdl
IGFuZCBpdCBjYW4gYmUgaW52YWxpZCwgbGVhZGluZyBJQ1UKKyAgICAgICAgICAgIC8vIHRvIGZh
aWwsIGluIHdoaWNoIGNhc2Ugd2UgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAg
ICAgICAgICAgIGlmICghbG9jYWxlSXNFbXB0eSAmJiBVX0ZBSUxVUkUob3BlblN0YXR1cykpIHsK
KyAgICAgICAgICAgICAgICBvcGVuU3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgICAgICAgICAg
ICAgIGl0ZXJhdG9yID0gdWJya19vcGVuKFVCUktfTElORSwgY3VycmVudFRleHRCcmVha0xvY2Fs
ZUlEKCksIDAsIDAsICZvcGVuU3RhdHVzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGlmIChVX0ZBSUxVUkUob3BlblN0YXR1cykpIHsKKyAgICAgICAgICAg
ICAgICBMT0dfRVJST1IoInVicmtfb3BlbiBmYWlsZWQgd2l0aCBzdGF0dXMgJWQiLCBvcGVuU3Rh
dHVzKTsKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KICAgICAgICAg
fQogCiAgICAgICAgIEFTU0VSVCghbV92ZW5kZWRJdGVyYXRvcnMuY29udGFpbnMoaXRlcmF0b3Ip
KTsKLSAgICAgICAgbV92ZW5kZWRJdGVyYXRvcnMuc2V0KGl0ZXJhdG9yLCBsb2NhbGVXaXRoT3B0
aW9uYWxCcmVha0tleXdvcmQpOworICAgICAgICBtX3ZlbmRlZEl0ZXJhdG9ycy5zZXQoaXRlcmF0
b3IsIGxvY2FsZSk7CiAgICAgICAgIHJldHVybiBpdGVyYXRvcjsKICAgICB9CiAKLSAgICB2b2lk
IHB1dChUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCisgICAgdm9pZCBwdXQoVUJyZWFrSXRl
cmF0b3IqIGl0ZXJhdG9yKQogICAgIHsKICAgICAgICAgQVNTRVJUX0FSRyhpdGVyYXRvciwgbV92
ZW5kZWRJdGVyYXRvcnMuY29udGFpbnMoaXRlcmF0b3IpKTsKIAogICAgICAgICBpZiAobV9wb29s
LnNpemUoKSA9PSBjYXBhY2l0eSkgewotICAgICAgICAgICAgY2xvc2VMaW5lQnJlYWtJdGVyYXRv
cihtX3Bvb2xbMF0uc2Vjb25kKTsKKyAgICAgICAgICAgIHVicmtfY2xvc2UobV9wb29sWzBdLnNl
Y29uZCk7CiAgICAgICAgICAgICBtX3Bvb2wucmVtb3ZlKDApOwogICAgICAgICB9CiAKQEAgLTEx
NSwxMCArOTgsMTAgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBjb25zdCBzaXplX3QgY2FwYWNp
dHkgPSA0OwogCi0gICAgdHlwZWRlZiBwYWlyPEF0b21pY1N0cmluZywgVGV4dEJyZWFrSXRlcmF0
b3IqPiBFbnRyeTsKKyAgICB0eXBlZGVmIHBhaXI8QXRvbWljU3RyaW5nLCBVQnJlYWtJdGVyYXRv
cio+IEVudHJ5OwogICAgIHR5cGVkZWYgVmVjdG9yPEVudHJ5LCBjYXBhY2l0eT4gUG9vbDsKICAg
ICBQb29sIG1fcG9vbDsKLSAgICBIYXNoTWFwPFRleHRCcmVha0l0ZXJhdG9yKiwgQXRvbWljU3Ry
aW5nPiBtX3ZlbmRlZEl0ZXJhdG9yczsKKyAgICBIYXNoTWFwPFVCcmVha0l0ZXJhdG9yKiwgQXRv
bWljU3RyaW5nPiBtX3ZlbmRlZEl0ZXJhdG9yczsKIAogICAgIGZyaWVuZCBXVEY6OlRocmVhZFNw
ZWNpZmljPExpbmVCcmVha0l0ZXJhdG9yUG9vbD46Om9wZXJhdG9yIExpbmVCcmVha0l0ZXJhdG9y
UG9vbCooKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Rl
eHRCcmVha0l0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVh
a0l0ZXJhdG9yLmgKaW5kZXggNjliOGE1YTJjN2I3ZWZkNGZjOGY3ODQwZTk3YWQwYjg5ODc4Nzdi
My4uZGU0M2QwZGI3M2Y0ZTg3MmQ1MWFlZGUyMDlhNTRmZGJkZGUxOWE1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaApAQCAtMzEsMTMg
KzMxLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgLy8gTm90ZTogVGhlIHJldHVybmVk
IGl0ZXJhdG9yIGlzIGdvb2Qgb25seSB1bnRpbCB5b3UgZ2V0IGFub3RoZXIgaXRlcmF0b3IsIHdp
dGggdGhlIGV4Y2VwdGlvbiBvZiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IuCiAKLSAgICBlbnVt
IExpbmVCcmVha0l0ZXJhdG9yTW9kZSB7Ci0gICAgICAgIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVB
WDE0LAotICAgICAgICBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNExvb3NlLAotICAgICAgICBM
aW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNE5vcm1hbCwKLSAgICAgICAgTGluZUJyZWFrSXRlcmF0
b3JNb2RlVUFYMTRTdHJpY3QsCi0gICAgfTsKLQogICAgIC8vIFRoaXMgaXMgc2ltaWxhciB0byBj
aGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgaW4gbW9zdCBjYXNlcywgYnV0IGlzIHN1YmplY3QgdG8K
ICAgICAvLyBwbGF0Zm9ybSBVSSBjb252ZW50aW9ucy4gT25lIG5vdGFibGUgZXhhbXBsZSB3aGVy
ZSB0aGlzIGNhbiBiZSBkaWZmZXJlbnQKICAgICAvLyBmcm9tIGNoYXJhY3RlciBicmVhayBpdGVy
YXRvciBpcyBUaGFpIHByZXBlbmQgY2hhcmFjdGVycywgc2VlIGJ1ZyAyNDM0Mi4KQEAgLTQ1LDEx
ICszOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBUZXh0QnJlYWtJdGVyYXRvciogY3Vy
c29yTW92ZW1lbnRJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOwogCiAgICAgVGV4
dEJyZWFrSXRlcmF0b3IqIHdvcmRCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0
aCk7Ci0gICAgVGV4dEJyZWFrSXRlcmF0b3IqIGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcihjb25z
dCBMQ2hhciosIGludCBsZW5ndGgsIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlLCBMaW5lQnJl
YWtJdGVyYXRvck1vZGUsIGJvb2wgaXNDSkspOwotICAgIFRleHRCcmVha0l0ZXJhdG9yKiBhY3F1
aXJlTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGxvY2FsZSwgTGluZUJyZWFrSXRlcmF0b3JNb2RlLCBib29sIGlzQ0pLKTsKKyAg
ICBUZXh0QnJlYWtJdGVyYXRvciogYWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IExDaGFy
KiwgaW50IGxlbmd0aCwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGUpOworICAgIFRleHRCcmVh
a0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqLCBpbnQgbGVu
Z3RoLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSk7CiAgICAgdm9pZCByZWxlYXNlTGluZUJy
ZWFrSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3IqKTsKLSAgICBUZXh0QnJlYWtJdGVyYXRvciog
b3BlbkxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlLCBMaW5lQnJl
YWtJdGVyYXRvck1vZGUsIGJvb2wgaXNDSkspOwotICAgIHZvaWQgY2xvc2VMaW5lQnJlYWtJdGVy
YXRvcihUZXh0QnJlYWtJdGVyYXRvciomKTsKICAgICBUZXh0QnJlYWtJdGVyYXRvciogc2VudGVu
Y2VCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCk7CiAKICAgICBpbnQgdGV4
dEJyZWFrRmlyc3QoVGV4dEJyZWFrSXRlcmF0b3IqKTsKQEAgLTY0LDI0ICs1NSwxOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICAgICBjb25zdCBpbnQgVGV4dEJyZWFrRG9uZSA9IC0xOwogCi0g
ICAgYm9vbCBpc0NKS0xvY2FsZShjb25zdCBBdG9taWNTdHJpbmcmKTsKLQogY2xhc3MgTGF6eUxp
bmVCcmVha0l0ZXJhdG9yIHsKIHB1YmxpYzoKICAgICBMYXp5TGluZUJyZWFrSXRlcmF0b3IoKQot
ICAgICAgICA6IG1fbW9kZShMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNCkKLSAgICAgICAgLCBt
X2lzQ0pLKGZhbHNlKQotICAgICAgICAsIG1faXRlcmF0b3IoMCkKKyAgICAgICAgOiBtX2l0ZXJh
dG9yKDApCiAgICAgewogICAgIH0KIAotICAgIExhenlMaW5lQnJlYWtJdGVyYXRvcihTdHJpbmcg
c3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSA9IEF0b21pY1N0cmluZygpLCBMaW5l
QnJlYWtJdGVyYXRvck1vZGUgbW9kZSA9IExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0KQorICAg
IExhenlMaW5lQnJlYWtJdGVyYXRvcihTdHJpbmcgc3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbmcm
IGxvY2FsZSA9IEF0b21pY1N0cmluZygpKQogICAgICAgICA6IG1fc3RyaW5nKHN0cmluZykKICAg
ICAgICAgLCBtX2xvY2FsZShsb2NhbGUpCi0gICAgICAgICwgbV9tb2RlKG1vZGUpCiAgICAgICAg
ICwgbV9pdGVyYXRvcigwKQogICAgIHsKLSAgICAgICAgbV9pc0NKSyA9IGlzQ0pLTG9jYWxlKGxv
Y2FsZSk7CiAgICAgfQogCiAgICAgfkxhenlMaW5lQnJlYWtJdGVyYXRvcigpCkBAIC05MSwzNiAr
NzYsMzEgQEAgcHVibGljOgogICAgIH0KIAogICAgIFN0cmluZyBzdHJpbmcoKSBjb25zdCB7IHJl
dHVybiBtX3N0cmluZzsgfQotICAgIGJvb2wgaXNMb29zZUNKS01vZGUoKSBjb25zdCB7IHJldHVy
biBtX2lzQ0pLICYmIG1fbW9kZSA9PSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNExvb3NlOyB9
CiAKICAgICBUZXh0QnJlYWtJdGVyYXRvciogZ2V0KCkKICAgICB7CiAgICAgICAgIGlmICghbV9p
dGVyYXRvcikgewogICAgICAgICAgICAgaWYgKG1fc3RyaW5nLmlzOEJpdCgpKQotICAgICAgICAg
ICAgICAgIG1faXRlcmF0b3IgPSBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IobV9zdHJpbmcuY2hh
cmFjdGVyczgoKSwgbV9zdHJpbmcubGVuZ3RoKCksIG1fbG9jYWxlLCBtX21vZGUsIG1faXNDSksp
OworICAgICAgICAgICAgICAgIG1faXRlcmF0b3IgPSBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3Io
bV9zdHJpbmcuY2hhcmFjdGVyczgoKSwgbV9zdHJpbmcubGVuZ3RoKCksIG1fbG9jYWxlKTsKICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBtX2l0ZXJhdG9yID0gYWNxdWlyZUxpbmVC
cmVha0l0ZXJhdG9yKG1fc3RyaW5nLmNoYXJhY3RlcnMxNigpLCBtX3N0cmluZy5sZW5ndGgoKSwg
bV9sb2NhbGUsIG1fbW9kZSwgbV9pc0NKSyk7CisgICAgICAgICAgICAgICAgbV9pdGVyYXRvciA9
IGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcihtX3N0cmluZy5jaGFyYWN0ZXJzMTYoKSwgbV9zdHJp
bmcubGVuZ3RoKCksIG1fbG9jYWxlKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9pdGVy
YXRvcjsKICAgICB9CiAKLSAgICB2b2lkIHJlc2V0KFN0cmluZyBzdHJpbmcsIGNvbnN0IEF0b21p
Y1N0cmluZyYgbG9jYWxlLCBMaW5lQnJlYWtJdGVyYXRvck1vZGUgbW9kZSkKKyAgICB2b2lkIHJl
c2V0KFN0cmluZyBzdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlKQogICAgIHsKICAg
ICAgICAgaWYgKG1faXRlcmF0b3IpCiAgICAgICAgICAgICByZWxlYXNlTGluZUJyZWFrSXRlcmF0
b3IobV9pdGVyYXRvcik7CiAKICAgICAgICAgbV9zdHJpbmcgPSBzdHJpbmc7CiAgICAgICAgIG1f
bG9jYWxlID0gbG9jYWxlOwotICAgICAgICBtX21vZGUgPSBtb2RlOwotICAgICAgICBtX2lzQ0pL
ID0gaXNDSktMb2NhbGUobG9jYWxlKTsKICAgICAgICAgbV9pdGVyYXRvciA9IDA7CiAgICAgfQog
CiBwcml2YXRlOgogICAgIFN0cmluZyBtX3N0cmluZzsKICAgICBBdG9taWNTdHJpbmcgbV9sb2Nh
bGU7Ci0gICAgTGluZUJyZWFrSXRlcmF0b3JNb2RlIG1fbW9kZTsKLSAgICBib29sIG1faXNDSks7
CiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIG1faXRlcmF0b3I7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCmluZGV4
IDNjNzk2NzM4MzQ3YmE1YTRmZDRiM2VkZjZlZjMxY2YyNDRmOTEzZTQuLjYxNmJhODEyYmQ5ZmVk
YTQ4OTc3ZjE1Y2VmYWI3ZDA5N2ZkMThkNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCkBAIC0yMyw4ICsyMyw2IEBA
CiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKIAogI2luY2x1ZGUgIkxpbmVCcmVha0l0
ZXJhdG9yUG9vbElDVS5oIgotI2luY2x1ZGUgPHVuaWNvZGUvdWJyay5oPgotI2luY2x1ZGUgPHVu
aWNvZGUvdWxvYy5oPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKQEAgLTI2Miw5ICsyNjAsOSBAQCBUZXh0QnJlYWtJdGVyYXRvciog
d29yZEJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKICAgICAg
ICAgc3RhdGljV29yZEJyZWFrSXRlcmF0b3IsIFVCUktfV09SRCwgc3RyaW5nLCBsZW5ndGgpOwog
fQogCi1UZXh0QnJlYWtJdGVyYXRvciogYWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IExD
aGFyKiBzdHJpbmcsIGludCBsZW5ndGgsIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlLCBMaW5l
QnJlYWtJdGVyYXRvck1vZGUgbW9kZSwgYm9vbCBpc0NKSykKK1RleHRCcmVha0l0ZXJhdG9yKiBh
Y3F1aXJlTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgTENoYXIqIHN0cmluZywgaW50IGxlbmd0aCwg
Y29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGUpCiB7Ci0gICAgVGV4dEJyZWFrSXRlcmF0b3IqIGl0
ZXJhdG9yID0gTGluZUJyZWFrSXRlcmF0b3JQb29sOjpzaGFyZWRQb29sKCkudGFrZShsb2NhbGUs
IG1vZGUsIGlzQ0pLKTsKKyAgICBVQnJlYWtJdGVyYXRvciogaXRlcmF0b3IgPSBMaW5lQnJlYWtJ
dGVyYXRvclBvb2w6OnNoYXJlZFBvb2woKS50YWtlKGxvY2FsZSk7CiAgICAgaWYgKCFpdGVyYXRv
cikKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTI4MCw5ICsyNzgsOCBAQCBUZXh0QnJlYWtJdGVy
YXRvciogYWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IExDaGFyKiBzdHJpbmcsIGludCBs
ZW5ndGgsIGNvbgogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBVQnJlYWtJdGVyYXRv
ciogdWJya0l0ZXIgPSByZWludGVycHJldF9jYXN0PFVCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3Ip
OwogICAgIFVFcnJvckNvZGUgc2V0VGV4dFN0YXR1cyA9IFVfWkVST19FUlJPUjsKLSAgICB1YnJr
X3NldFVUZXh0KHVicmtJdGVyLCB1VGV4dExhdGluMSwgJnNldFRleHRTdGF0dXMpOworICAgIHVi
cmtfc2V0VVRleHQoaXRlcmF0b3IsIHVUZXh0TGF0aW4xLCAmc2V0VGV4dFN0YXR1cyk7CiAgICAg
aWYgKFVfRkFJTFVSRShzZXRUZXh0U3RhdHVzKSkgewogICAgICAgICBMT0dfRVJST1IoInVicmtf
c2V0VVRleHQgZmFpbGVkIHdpdGggc3RhdHVzICVkIiwgc2V0VGV4dFN0YXR1cyk7CiAgICAgICAg
IHJldHVybiAwOwpAQCAtMjkwLDEwMSArMjg3LDMwIEBAIFRleHRCcmVha0l0ZXJhdG9yKiBhY3F1
aXJlTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgTENoYXIqIHN0cmluZywgaW50IGxlbmd0aCwgY29u
CiAKICAgICB1dGV4dF9jbG9zZSh1VGV4dExhdGluMSk7CiAKLSAgICByZXR1cm4gaXRlcmF0b3I7
CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGV4dEJyZWFrSXRlcmF0b3IqPihpdGVyYXRv
cik7CiB9CiAKLVRleHRCcmVha0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IoY29u
c3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGUs
IExpbmVCcmVha0l0ZXJhdG9yTW9kZSBtb2RlLCBib29sIGlzQ0pLKQorVGV4dEJyZWFrSXRlcmF0
b3IqIGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVu
Z3RoLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSkKIHsKLSAgICBUZXh0QnJlYWtJdGVyYXRv
ciogaXRlcmF0b3IgPSBMaW5lQnJlYWtJdGVyYXRvclBvb2w6OnNoYXJlZFBvb2woKS50YWtlKGxv
Y2FsZSwgbW9kZSwgaXNDSkspOworICAgIFVCcmVha0l0ZXJhdG9yKiBpdGVyYXRvciA9IExpbmVC
cmVha0l0ZXJhdG9yUG9vbDo6c2hhcmVkUG9vbCgpLnRha2UobG9jYWxlKTsKICAgICBpZiAoIWl0
ZXJhdG9yKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFVCcmVha0l0ZXJhdG9yKiB1YnJrSXRl
ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8VUJyZWFrSXRlcmF0b3IqPihpdGVyYXRvcik7CiAgICAgVUVy
cm9yQ29kZSBzZXRUZXh0U3RhdHVzID0gVV9aRVJPX0VSUk9SOwotICAgIHVicmtfc2V0VGV4dCh1
YnJrSXRlciwgc3RyaW5nLCBsZW5ndGgsICZzZXRUZXh0U3RhdHVzKTsKKyAgICB1YnJrX3NldFRl
eHQoaXRlcmF0b3IsIHN0cmluZywgbGVuZ3RoLCAmc2V0VGV4dFN0YXR1cyk7CiAgICAgaWYgKFVf
RkFJTFVSRShzZXRUZXh0U3RhdHVzKSkgewogICAgICAgICBMT0dfRVJST1IoInVicmtfc2V0VGV4
dCBmYWlsZWQgd2l0aCBzdGF0dXMgJWQiLCBzZXRUZXh0U3RhdHVzKTsKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgfQogCi0gICAgcmV0dXJuIGl0ZXJhdG9yOworICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PFRleHRCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IpOwogfQogCiB2b2lkIHJlbGVhc2VM
aW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCiB7CiAgICAgQVNT
RVJUX0FSRyhpdGVyYXRvciwgaXRlcmF0b3IpOwogCi0gICAgTGluZUJyZWFrSXRlcmF0b3JQb29s
OjpzaGFyZWRQb29sKCkucHV0KGl0ZXJhdG9yKTsKLX0KLQotLy8gUmVjb2duaXplIEJDUDQ3IGNv
bXBsaWFudCBwcmltYXJ5IGxhbmd1YWdlIHZhbHVlcyBvZiAnemgnLCAnamEnLCAna28nCi0vLyAo
aW4gYW55IGNvbWJpbmF0aW9uIG9mIGNhc2UpLCBvcHRpb25hbGx5IGZvbGxvd2VkIGJ5IHN1YnRh
Z3MuIERvbid0Ci0vLyByZWNvZ25pemUgMy1sZXR0ZXIgdmFyaWFudHMgJ2NoaScvJ3pobycsICdq
cG4nLCBvciAna29yJyBzaW5jZSBCQ1A0NwotLy8gcmVxdWlyZXMgdXNlIG9mIHNob3J0ZXN0IGxh
bmd1YWdlIHRhZy4KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1zdGF0aWMgYm9vbCBpc0NKS0xvY2Fs
ZShjb25zdCBUKiBzLCBzaXplX3QgbGVuZ3RoKQotewotICAgIGlmICghcyB8fCBsZW5ndGggPCAy
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgVCBjMSA9IHNbMF07Ci0gICAgVCBjMiA9IHNb
MV07Ci0gICAgVCBjMyA9IGxlbmd0aCA9PSAyID8gMCA6IHNbMl07Ci0gICAgaWYgKCFjMyB8fCBj
MyA9PSAnLScgfHwgYzMgPT0gJ18nIHx8IGMzID09ICdAJykgewotICAgICAgICBpZiAoYzEgPT0g
J3onIHx8IGMxID09ICdaJykKLSAgICAgICAgICAgIHJldHVybiBjMiA9PSAnaCcgfHwgYzIgPT0g
J0gnOwotICAgICAgICBpZiAoYzEgPT0gJ2onIHx8IGMxID09ICdKJykKLSAgICAgICAgICAgIHJl
dHVybiBjMiA9PSAnYScgfHwgYzIgPT0gJ0EnOwotICAgICAgICBpZiAoYzEgPT0gJ2snIHx8IGMx
ID09ICdLJykKLSAgICAgICAgICAgIHJldHVybiBjMiA9PSAnbycgfHwgYzIgPT0gJ08nOwotICAg
IH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgaXNDSktMb2NhbGUoY29uc3QgQXRvbWlj
U3RyaW5nJiBsb2NhbGUpCi17Ci0gICAgaWYgKGxvY2FsZS5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBzaXplX3QgbGVuZ3RoID0gbG9jYWxlLmxlbmd0aCgpOwotICAgIGlm
IChsb2NhbGUuaXM4Qml0KCkpCi0gICAgICAgIHJldHVybiBpc0NKS0xvY2FsZTxMQ2hhcj4obG9j
YWxlLmNoYXJhY3RlcnM4KCksIGxlbmd0aCk7Ci0gICAgcmV0dXJuIGlzQ0pLTG9jYWxlPFVDaGFy
Pihsb2NhbGUuY2hhcmFjdGVyczE2KCksIGxlbmd0aCk7Ci19Ci0KLXN0YXRpYyB2b2lkIG1hcExp
bmVJdGVyYXRvck1vZGVUb1J1bGVzKExpbmVCcmVha0l0ZXJhdG9yTW9kZSwgYm9vbCBpc0NKSywg
U3RyaW5nJiBydWxlcyk7Ci0KLVRleHRCcmVha0l0ZXJhdG9yKiBvcGVuTGluZUJyZWFrSXRlcmF0
b3IoY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGUsIExpbmVCcmVha0l0ZXJhdG9yTW9kZSBtb2Rl
LCBib29sIGlzQ0pLKQotewotICAgIFVCcmVha0l0ZXJhdG9yKiB1YnJrSXRlcjsKLSAgICBVRXJy
b3JDb2RlIG9wZW5TdGF0dXMgPSBVX1pFUk9fRVJST1I7Ci0gICAgYm9vbCBpc0xvY2FsZUVtcHR5
ID0gbG9jYWxlLmlzRW1wdHkoKTsKLSAgICBpZiAoKG1vZGUgPT0gTGluZUJyZWFrSXRlcmF0b3JN
b2RlVUFYMTQpICYmICFpc0NKSykKLSAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW4oVUJSS19M
SU5FLCBpc0xvY2FsZUVtcHR5ID8gY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkgOiBsb2NhbGUu
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgMCwgMCwgJm9wZW5TdGF0dXMpOwotICAgIGVsc2Ugewot
ICAgICAgICBVUGFyc2VFcnJvciBwYXJzZVN0YXR1czsKLSAgICAgICAgU3RyaW5nIHJ1bGVzOwot
ICAgICAgICBtYXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyhtb2RlLCBpc0NKSywgcnVsZXMpOwot
ICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlblJ1bGVzKHJ1bGVzLmNoYXJhY3RlcnMoKSwgcnVs
ZXMubGVuZ3RoKCksIDAsIDAsICZwYXJzZVN0YXR1cywgJm9wZW5TdGF0dXMpOwotICAgIH0KLSAg
ICAvLyBMb2NhbGUgY29tZXMgZnJvbSBhIHdlYiBwYWdlIGFuZCBpdCBjYW4gYmUgaW52YWxpZCwg
bGVhZGluZyBJQ1UKLSAgICAvLyB0byBmYWlsLCBpbiB3aGljaCBjYXNlIHdlIGZhbGwgYmFjayB0
byB0aGUgZGVmYXVsdCBsb2NhbGUgKHdpdGggZGVmYXVsdCBydWxlcykuCi0gICAgaWYgKCFpc0xv
Y2FsZUVtcHR5ICYmIFVfRkFJTFVSRShvcGVuU3RhdHVzKSkgewotICAgICAgICBvcGVuU3RhdHVz
ID0gVV9aRVJPX0VSUk9SOwotICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlbihVQlJLX0xJTkUs
IGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpLCAwLCAwLCAmb3BlblN0YXR1cyk7Ci0gICAgfQot
Ci0gICAgaWYgKFVfRkFJTFVSRShvcGVuU3RhdHVzKSkgewotICAgICAgICBMT0dfRVJST1IoInVi
cmtfb3BlbiBmYWlsZWQgd2l0aCBzdGF0dXMgJWQiLCBvcGVuU3RhdHVzKTsKLSAgICAgICAgQVNT
RVJUKCF1YnJrSXRlcik7Ci0gICAgfQotICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRleHRC
cmVha0l0ZXJhdG9yKj4odWJya0l0ZXIpOwotfQotCi12b2lkIGNsb3NlTGluZUJyZWFrSXRlcmF0
b3IoVGV4dEJyZWFrSXRlcmF0b3IqJiBpdGVyYXRvcikKLXsKLSAgICBVQnJlYWtJdGVyYXRvciog
dWJya0l0ZXIgPSByZWludGVycHJldF9jYXN0PFVCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IpOwot
ICAgIEFTU0VSVCh1YnJrSXRlcik7Ci0gICAgdWJya19jbG9zZSh1YnJrSXRlcik7Ci0gICAgaXRl
cmF0b3IgPSAwOworICAgIExpbmVCcmVha0l0ZXJhdG9yUG9vbDo6c2hhcmVkUG9vbCgpLnB1dChy
ZWludGVycHJldF9jYXN0PFVCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IpKTsKIH0KIAogc3RhdGlj
IFRleHRCcmVha0l0ZXJhdG9yKiBub25TaGFyZWRDaGFyYWN0ZXJCcmVha0l0ZXJhdG9yOwpAQCAt
NTg0LDQxMiArNTEwLDQgQEAgVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0
b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKICAgICByZXR1cm4gc2V0VXBJdGVy
YXRvcldpdGhSdWxlcyhjcmVhdGVkQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciwgc3RhdGljQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvciwga1J1bGVzLCBzdHJpbmcsIGxlbmd0aCk7CiB9CiAKLXN0YXRpYyBj
b25zdCBjaGFyKiB1YXgxNFByb2xvZ3VlID0KLSAgICAiISFjaGFpbjsiCi0gICAgIiEhTEJDTU5v
Q2hhaW47IgotICAgICIhIWxvb2tBaGVhZEhhcmRCcmVhazsiOwotCi1zdGF0aWMgY29uc3QgY2hh
ciogdWF4MTRBc3NpZ25tZW50c0JlZm9yZSA9Ci0gICAgLy8gZXhwbGljaXRseSBlbnVtZXJhdGUg
JENKIHNpbmNlIElDVSB2ZXJzaW9ucyBwcmlvciB0byA0OSBkb24ndCBzdXBwb3J0IDpMaW5lQnJl
YWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoKLSAgICAiJENKID0gWyIKLSNpZiAoVV9J
Q1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49
IDkpCi0gICAgIjpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoiCi0jZWxz
ZQotICAgICJcXHUzMDQxXFx1MzA0M1xcdTMwNDVcXHUzMDQ3XFx1MzA0OVxcdTMwNjNcXHUzMDgz
XFx1MzA4NVxcdTMwODdcXHUzMDhFXFx1MzA5NVxcdTMwOTZcXHUzMEExXFx1MzBBM1xcdTMwQTVc
XHUzMEE3IgotICAgICJcXHUzMEE5XFx1MzBDM1xcdTMwRTNcXHUzMEU1XFx1MzBFN1xcdTMwRUVc
XHUzMEY1XFx1MzBGNlxcdTMwRkMiCi0gICAgIlxcdTMxRjBcXHUzMUYxXFx1MzFGMlxcdTMxRjNc
XHUzMUY0XFx1MzFGNVxcdTMxRjZcXHUzMUY3XFx1MzFGOFxcdTMxRjlcXHUzMUZBXFx1MzFGQlxc
dTMxRkNcXHUzMUZEXFx1MzFGRVxcdTMxRkYiCi0gICAgIlxcdUZGNjdcXHVGRjY4XFx1RkY2OVxc
dUZGNkFcXHVGRjZCXFx1RkY2Q1xcdUZGNkRcXHVGRjZFXFx1RkY2RlxcdUZGNzAiCi0jZW5kaWYK
LSAgICAiXTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxv
b3NlQ0pLID0KLSAgICAiJEJBX1NVQiA9IFtcXHUyMDEwXFx1MjAxM107IgotICAgICIkRVhfU1VC
ID0gW1xcdTAwMjFcXHUwMDNGXFx1RkYwMVxcdUZGMUZdOyIKLSAgICAiJElEX1NVQiA9ICcnOyIK
LSAgICAiJElOX1NVQiA9IFtcXHUyMDI1XFx1MjAyNl07IgotICAgICIkSVNfU1VCID0gW1xcdTAw
M0FcXHUwMDNCXTsiCi0gICAgIiROU19TVUIgPSBbXFx1MjAzQ1xcdTIwNDdcXHUyMDQ4XFx1MjA0
OVxcdTMwMDVcXHUzMDFDXFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1MzBBMFxcdTMwRkJcXHUzMEZE
XFx1MzBGRVxcdUZGMUFcXHVGRjFCXFx1RkY2NV07IgotICAgICIkUE9fU1VCID0gW1xcdTAwMjVc
XHUwMEEyXFx1MDBCMFxcdTIwMzBcXHUyMDMyXFx1MjAzM1xcdTIxMDNcXHVGRjA1XFx1RkZFMF07
IgotICAgICIkUFJfU1VCID0gW1xcdTAwMjRcXHUwMEEzXFx1MDBBNVxcdTIwQUNcXHUyMTE2XFx1
RkYwNFxcdUZGRTFcXHVGRkU1XTsiCi0gICAgIiRJRF9BREQgPSBbJENKICRCQV9TVUIgJEVYX1NV
QiAkSU5fU1VCICRJU19TVUIgJE5TX1NVQiAkUE9fU1VCICRQUl9TVUJdOyIKLSAgICAiJE5TX0FE
RCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9v
c2VOb25DSksgPQotICAgICIkQkFfU1VCID0gJyc7IgotICAgICIkRVhfU1VCID0gJyc7IgotICAg
ICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2XTsiCi0gICAg
IiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAwNVxcdTMwM0JcXHUzMDlEXFx1
MzA5RVxcdTMwRkRcXHUzMEZFXTsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIg
PSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKICRJTl9TVUIgJE5TX1NVQl07IgotICAgICIkTlNf
QUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21O
b3JtYWxDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAgIiRFWF9T
VUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAg
IiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAxQ1xcdTMwQTBdOyIKLSAgICAi
JFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0og
JEJBX1NVQiAkTlNfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3Qg
Y2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbE5vbkNKSyA9Ci0gICAgIiRCQV9TVUIg
PSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJ
Tl9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSAnJzsiCi0g
ICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBb
JENKXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRB
c3NpZ25tZW50c0N1c3RvbVN0cmljdENKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRF
WF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0g
ICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSAnJzsiCi0gICAgIiRQT19TVUIgPSAn
JzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSAnJzsiCi0gICAgIiROU19B
REQgPSBbJENKXTsiOwotCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25D
SksgICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLCi0jZGVmaW5lIHVheDE0QXNz
aWdubWVudHNDdXN0b21EZWZhdWx0Q0pLICAgICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9y
bWFsQ0pLCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pLICAgICB1
YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLCi0KLXN0YXRpYyBjb25zdCBjaGFyKiB1
YXgxNEFzc2lnbm1lbnRzQWZ0ZXIgPQotICAgICIkQUkgPSBbOkxpbmVCcmVhayA9IEFtYmlndW91
czpdOyIKLSAgICAiJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07IgotICAgICIkQkEg
PSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07IgotICAgICIkQkIgPSBb
OkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOyIKLSAgICAiJEJLID0gWzpMaW5lQnJlYWsgPSBN
YW5kYXRvcnlfQnJlYWs6XTsiCi0gICAgIiRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpd
OyIKLSAgICAiJENCID0gWzpMaW5lQnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07IgotICAgICIk
Q0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0aW9uOl07IgotICAgICIkQ00gPSBbOkxp
bmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07IgotICAgICIkQ1AgPSBbOkxpbmVCcmVhayA9IENs
b3NlX1BhcmVudGhlc2lzOl07IgotICAgICIkQ1IgPSBbOkxpbmVCcmVhayA9IENhcnJpYWdlX1Jl
dHVybjpdOyIKLSAgICAiJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRFWF9T
VUJdOyIKLSAgICAiJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07IgotI2lmIChVX0lDVV9WRVJT
SU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkKLSAg
ICAiJEhMID0gWzpMaW5lQnJlYWsgPSBIZWJyZXdfTGV0dGVyOl07IgotI2Vsc2UKLSAgICAiJEhM
ID0gW1s6SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsiCi0jZW5kaWYKLSAgICAiJEhZID0gWzpMaW5l
QnJlYWsgPSBIeXBoZW46XTsiCi0gICAgIiRIMiA9IFs6TGluZUJyZWFrID0gSDI6XTsiCi0gICAg
IiRIMyA9IFs6TGluZUJyZWFrID0gSDM6XTsiCi0gICAgIiRJRCA9IFtbW1s6TGluZUJyZWFrID0g
SWRlb2dyYXBoaWM6XSAtICRDSl0gJElEX0FERF0gLSAkSURfU1VCXTsiCi0gICAgIiRJTiA9IFtb
OkxpbmVCcmVhayA9IEluc2VwYXJhYmxlOl0gLSAkSU5fU1VCXTsiCi0gICAgIiRJUyA9IFtbOkxp
bmVCcmVhayA9IEluZml4X051bWVyaWM6XSAtICRJU19TVUJdOyIKLSAgICAiJEpMID0gWzpMaW5l
QnJlYWsgPSBKTDpdOyIKLSAgICAiJEpWID0gWzpMaW5lQnJlYWsgPSBKVjpdOyIKLSAgICAiJEpU
ID0gWzpMaW5lQnJlYWsgPSBKVDpdOyIKLSAgICAiJExGID0gWzpMaW5lQnJlYWsgPSBMaW5lX0Zl
ZWQ6XTsiCi0gICAgIiROTCA9IFs6TGluZUJyZWFrID0gTmV4dF9MaW5lOl07IgotICAgICIkTlMg
PSBbW1tbOkxpbmVCcmVhayA9IE5vbnN0YXJ0ZXI6XSAtICRDSl0gJE5TX0FERF0gLSAkTlNfU1VC
XTsiCi0gICAgIiROVSA9IFs6TGluZUJyZWFrID0gTnVtZXJpYzpdOyIKLSAgICAiJE9QID0gWzpM
aW5lQnJlYWsgPSBPcGVuX1B1bmN0dWF0aW9uOl07IgotICAgICIkUE8gPSBbWzpMaW5lQnJlYWsg
PSBQb3N0Zml4X051bWVyaWM6XSAtICRQT19TVUJdOyIKLSAgICAiJFBSID0gW1s6TGluZUJyZWFr
ID0gUHJlZml4X051bWVyaWM6XSAtICRQUl9TVUJdOyIKLSAgICAiJFFVID0gWzpMaW5lQnJlYWsg
PSBRdW90YXRpb246XTsiCi0gICAgIiRTQSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0
Ol07IgotICAgICIkU0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOyIKLSAgICAiJFNQID0g
WzpMaW5lQnJlYWsgPSBTcGFjZTpdOyIKLSAgICAiJFNZID0gWzpMaW5lQnJlYWsgPSBCcmVha19T
eW1ib2xzOl07IgotICAgICIkV0ogPSBbOkxpbmVCcmVhayA9IFdvcmRfSm9pbmVyOl07IgotICAg
ICIkWFggPSBbOkxpbmVCcmVhayA9IFVua25vd246XTsiCi0gICAgIiRaVyA9IFs6TGluZUJyZWFr
ID0gWldTcGFjZTpdOyIKLSAgICAiJGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhf
Q29udGV4dDpdOyIKLSAgICAiJEFMUGx1cyA9IFskQUwgJEFJICRTQSAkU0cgJFhYXTsiCi0gICAg
IiRBTGNtID0gJEFMUGx1cyAkQ00qOyIKLSAgICAiJEJBY20gPSAkQkEgJENNKjsiCi0gICAgIiRC
QmNtID0gJEJCICRDTSo7IgotICAgICIkQjJjbSA9ICRCMiAkQ00qOyIKLSAgICAiJENMY20gPSAk
Q0wgJENNKjsiCi0gICAgIiRDUGNtID0gJENQICRDTSo7IgotICAgICIkRVhjbSA9ICRFWCAkQ00q
OyIKLSAgICAiJEdMY20gPSAkR0wgJENNKjsiCi0gICAgIiRITGNtID0gJEhMICRDTSo7IgotICAg
ICIkSFljbSA9ICRIWSAkQ00qOyIKLSAgICAiJEgyY20gPSAkSDIgJENNKjsiCi0gICAgIiRIM2Nt
ID0gJEgzICRDTSo7IgotICAgICIkSURjbSA9ICRJRCAkQ00qOyIKLSAgICAiJElOY20gPSAkSU4g
JENNKjsiCi0gICAgIiRJU2NtID0gJElTICRDTSo7IgotICAgICIkSkxjbSA9ICRKTCAkQ00qOyIK
LSAgICAiJEpWY20gPSAkSlYgJENNKjsiCi0gICAgIiRKVGNtID0gJEpUICRDTSo7IgotICAgICIk
TlNjbSA9ICROUyAkQ00qOyIKLSAgICAiJE5VY20gPSAkTlUgJENNKjsiCi0gICAgIiRPUGNtID0g
JE9QICRDTSo7IgotICAgICIkUE9jbSA9ICRQTyAkQ00qOyIKLSAgICAiJFBSY20gPSAkUFIgJENN
KjsiCi0gICAgIiRRVWNtID0gJFFVICRDTSo7IgotICAgICIkU1ljbSA9ICRTWSAkQ00qOyIKLSAg
ICAiJFdKY20gPSAkV0ogJENNKjsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRGb3J3YXJk
ID0KLSAgICAiISFmb3J3YXJkOyIKLSAgICAiJENBTl9DTSA9IFteJFNQICRCSyAkQ1IgJExGICRO
TCAkWlcgJENNXTsiCi0gICAgIiRDQU5UX0NNID0gWyRTUCAkQksgJENSICRMRiAkTkwgJFpXICRD
TV07IgotICAgICIkQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOyIK
LSAgICAiJEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElTICRTWSAkV0ogJEdMICRP
UCAkUVUgJEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsiCi0gICAgIiRBTF9GT0xMT1cgPSBb
JEFMX0ZPTExPV19OT0NNICRBTF9GT0xMT1dfQ01dOyIKLSAgICAiJExCNEJyZWFrcyA9IFskQksg
JENSICRMRiAkTkxdOyIKLSAgICAiJExCNE5vbkJyZWFrcyA9IFteJEJLICRDUiAkTEYgJE5MXTsi
Ci0gICAgIiRMQjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWlddOyIKLSAgICAiJExCOE5vbkJyZWFr
cyA9IFtbJExCNE5vbkJyZWFrc10gLSBbJFpXXV07IgotICAgICIkTEIxOE5vbkJyZWFrcyA9IFsk
TEI4Tm9uQnJlYWtzIC0gWyRTUF1dOyIKLSAgICAiJExCMThCcmVha3MgPSBbJExCOEJyZWFrcyAk
U1BdOyIKLSAgICAiJExCMjBOb25CcmVha3MgPSBbJExCMThOb25CcmVha3MgLSAkQ0JdOyIKLSAg
ICAiJEFMUGx1cyAkQ00rOyIKLSAgICAiJEJBICRDTSs7IgotICAgICIkQkIgJENNKzsiCi0gICAg
IiRCMiAkQ00rOyIKLSAgICAiJENMICRDTSs7IgotICAgICIkQ1AgJENNKzsiCi0gICAgIiRFWCAk
Q00rOyIKLSAgICAiJEdMICRDTSs7IgotICAgICIkSEwgJENNKzsiCi0gICAgIiRIWSAkQ00rOyIK
LSAgICAiJEgyICRDTSs7IgotICAgICIkSDMgJENNKzsiCi0gICAgIiRJRCAkQ00rOyIKLSAgICAi
JElOICRDTSs7IgotICAgICIkSVMgJENNKzsiCi0gICAgIiRKTCAkQ00rOyIKLSAgICAiJEpWICRD
TSs7IgotICAgICIkSlQgJENNKzsiCi0gICAgIiROUyAkQ00rOyIKLSAgICAiJE5VICRDTSs7Igot
ICAgICIkT1AgJENNKzsiCi0gICAgIiRQTyAkQ00rOyIKLSAgICAiJFBSICRDTSs7IgotICAgICIk
UVUgJENNKzsiCi0gICAgIiRTWSAkQ00rOyIKLSAgICAiJFdKICRDTSs7IgotICAgICIkQ1IgJExG
IHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcz8gJExCNEJyZWFrcyB7MTAwfTsiCi0gICAgIiRD
QU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJENNKyAkTEI0QnJlYWtzIHsxMDB9
OyIKLSAgICAiJExCNE5vbkJyZWFrcyBbJFNQICRaV107IgotICAgICIkQ0FOX0NNICRDTSogWyRT
UCAkWlddOyIKLSAgICAiJENNKyBbJFNQICRaV107IgotICAgICIkQ0FOX0NNICRDTSs7IgotICAg
ICIkQ00rOyIKLSAgICAiJENBTl9DTSAkQ00qICRXSmNtOyIKLSAgICAiJExCOE5vbkJyZWFrcyAk
V0pjbTsiCi0gICAgIiRDTSsgJFdKY207IgotICAgICIkV0pjbSAkQ0FOVF9DTTsiCi0gICAgIiRX
SmNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNt
ICRDQU5UX0NNOyIKLSAgICAiW1skTEI4Tm9uQnJlYWtzXSAtIFskU1AgJEJBICRIWV1dICRDTSog
JEdMY207IgotICAgICIkQ00rIEdMY207IgotICAgICIkTEI4Tm9uQnJlYWtzICRDTDsiCi0gICAg
IiRDQU5fQ00gJENNKiAkQ0w7IgotICAgICIkQ00rICRDTDsiCi0gICAgIiRMQjhOb25CcmVha3Mg
JENQOyIKLSAgICAiJENBTl9DTSAkQ00qICRDUDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJExC
OE5vbkJyZWFrcyAkRVg7IgotICAgICIkQ0FOX0NNICRDTSogJEVYOyIKLSAgICAiJENNKyAkRVg7
IgotICAgICIkTEI4Tm9uQnJlYWtzICRJUzsiCi0gICAgIiRDQU5fQ00gJENNKiAkSVM7IgotICAg
ICIkQ00rICRJUzsiCi0gICAgIiRMQjhOb25CcmVha3MgJFNZOyIKLSAgICAiJENBTl9DTSAkQ00q
ICRTWTsiCi0gICAgIiRDTSsgJFNZOyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOX0NNICRDTSo7Igot
ICAgICIkT1BjbSAkU1AqICRDQU5UX0NNOyIKLSAgICAiJE9QY20gJFNQKyAkQ00rICRBTF9GT0xM
T1c/OyIKLSAgICAiJFFVY20gJFNQKiAkT1BjbTsiCi0gICAgIigkQ0xjbSB8ICRDUGNtKSAkU1Aq
ICROU2NtOyIKLSAgICAiJEIyY20gJFNQKiAkQjJjbTsiCi0gICAgIiRMQjE4Tm9uQnJlYWtzICRD
TSogJFFVY207IgotICAgICIkQ00rICRRVWNtOyIKLSAgICAiJFFVY20gLj87IgotICAgICIkUVVj
bSAkTEIxOE5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJExCMjBOb25CcmVha3MgJENNKiAoJEJBY20g
fCAkSFljbSB8ICROU2NtKTsgIgotICAgICIkQkJjbSBbXiRDQl07IgotICAgICIkQkJjbSAkTEIy
ME5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJEhMY20gKCRIWWNtIHwgJEJBY20pIFteJENCXT87Igot
ICAgICIoJEFMY20gfCAkSExjbSkgJElOY207IgotICAgICIkQ00rICRJTmNtOyIKLSAgICAiJElE
Y20gJElOY207IgotICAgICIkSU5jbSAkSU5jbTsiCi0gICAgIiROVWNtICRJTmNtOyIKLSAgICAi
JElEY20gJFBPY207IgotICAgICIkQUxjbSAkTlVjbTsiCi0gICAgIiRITGNtICROVWNtOyIKLSAg
ICAiJENNKyAkTlVjbTsiCi0gICAgIiROVWNtICRBTGNtOyIKLSAgICAiJE5VY20gJEhMY207Igot
ICAgICIkUFJjbSAkSURjbTsiCi0gICAgIiRQUmNtICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRQ
T2NtICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIigkUFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZ
Y20pPyAkTlVjbSAoJE5VY20gfCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBS
Y20gfCAkUE9jbSk/OyIKLSAgICAiJEpMY20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8ICRIM2Nt
KTsiCi0gICAgIigkSlZjbSB8ICRIMmNtKSAoJEpWY20gfCAkSlRjbSk7IgotICAgICIoJEpUY20g
fCAkSDNjbSkgJEpUY207IgotICAgICIoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAk
SDNjbSkgJElOY207IgotICAgICIoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNj
bSkgJFBPY207IgotICAgICIkUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAk
SDNjbSk7IgotICAgICIoJEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJENN
KyAoJEFMY20gfCAkSExjbSk7IgotICAgICIkSVNjbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIo
JEFMY20gfCAkSExjbSB8ICROVWNtKSAkT1BjbTsiCi0gICAgIiRDTSsgJE9QY207IgotICAgICIk
Q1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4
MTRSZXZlcnNlID0KLSAgICAiISFyZXZlcnNlOyIKLSAgICAiJENNKyAkQUxQbHVzOyIKLSAgICAi
JENNKyAkQkE7IgotICAgICIkQ00rICRCQjsiCi0gICAgIiRDTSsgJEIyOyIKLSAgICAiJENNKyAk
Q0w7IgotICAgICIkQ00rICRDUDsiCi0gICAgIiRDTSsgJEVYOyIKLSAgICAiJENNKyAkR0w7Igot
ICAgICIkQ00rICRITDsiCi0gICAgIiRDTSsgJEhZOyIKLSAgICAiJENNKyAkSDI7IgotICAgICIk
Q00rICRIMzsiCi0gICAgIiRDTSsgJElEOyIKLSAgICAiJENNKyAkSU47IgotICAgICIkQ00rICRJ
UzsiCi0gICAgIiRDTSsgJEpMOyIKLSAgICAiJENNKyAkSlY7IgotICAgICIkQ00rICRKVDsiCi0g
ICAgIiRDTSsgJE5TOyIKLSAgICAiJENNKyAkTlU7IgotICAgICIkQ00rICRPUDsiCi0gICAgIiRD
TSsgJFBPOyIKLSAgICAiJENNKyAkUFI7IgotICAgICIkQ00rICRRVTsiCi0gICAgIiRDTSsgJFNZ
OyIKLSAgICAiJENNKyAkV0o7IgotICAgICIkQ00rOyIKLSAgICAiJEFMX0ZPTExPVyAkQ00rIC8g
KFskQksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSog
KFteJE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0pKTsiCi0gICAgIlskUFJdIC8gJENNKyBbJEJL
ICRDUiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOyIKLSAgICAiJExCNEJyZWFrcyBbJExCNE5vbkJy
ZWFrcy0kQ01dOyIKLSAgICAiJExCNEJyZWFrcyAkQ00rICRDQU5fQ007IgotICAgICIkTEYgJENS
OyIKLSAgICAiWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJFNQICRaV10g
JENNKyAkQ0FOX0NNOyIKLSAgICAiJENNKyAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0ogJENNKiAk
Q0FOX0NNOyIKLSAgICAiJENNKiAkV0ogWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRDQU5U
X0NNICRDTSogJFdKOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFdKOyIKLSAgICAiJENNKiAk
R0wgJENNKiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAkQkEgJEhZXV07IgotICAgICIkQ0FOVF9D
TSAkQ00qICRHTDsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRHTDsiCi0gICAgIiRDTCAkQ00r
ICRDQU5fQ007IgotICAgICIkQ1AgJENNKyAkQ0FOX0NNOyIKLSAgICAiJEVYICRDTSsgJENBTl9D
TTsiCi0gICAgIiRJUyAkQ00rICRDQU5fQ007IgotICAgICIkU1kgJENNKyAkQ0FOX0NNOyIKLSAg
ICAiJENMIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkQ1AgWyRMQjhOb25CcmVha3MtJENN
XTsiCi0gICAgIiRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJElTIFskTEI4Tm9uQnJl
YWtzLSRDTV07IgotICAgICIkU1kgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIlskQ0wgJENQ
ICRFWCAkSVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7ICIKLSAgICAiJENNKiAkQ0FOX0NNICRT
UCogJENNKiAkT1A7IgotICAgICIkQ0FOVF9DTSAkU1AqICRDTSogJE9QOyIKLSAgICAiJEFMX0ZP
TExPVz8gJENNKyAkU1AgJFNQKiAkQ00qICRPUDsiCi0gICAgIiRBTF9GT0xMT1dfTk9DTSAkQ00r
ICRTUCsgJENNKiAkT1A7IgotICAgICIkQ00qICRBTF9GT0xMT1dfQ00gJENNKyAkU1ArICRDTSog
JE9QOyIKLSAgICAiJFNZICRDTSAkU1ArICRPUDsiCi0gICAgIiRDTSogJE9QICRTUCogJENNKiAk
UVU7IgotICAgICIkQ00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7IgotICAgICIkQ00qICRC
MiAkU1AqICRDTSogJEIyOyIKLSAgICAiJENNKiAkUVUgJENNKiAkQ0FOX0NNOyIKLSAgICAiJENN
KiAkUVUgJExCMThOb25CcmVha3M7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkUVU7IgotICAg
ICIkQ0FOVF9DTSAkQ00qICRRVTsiCi0gICAgIiRDTSogKCRCQSB8ICRIWSB8ICROUykgJENNKiBb
JExCMjBOb25CcmVha3MtJENNXTsiCi0gICAgIiRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV0gJENN
KiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAoJEhZIHwg
JEJBKSAkQ00qICRITDsiCi0gICAgIiRDTSogJElOICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAg
ICAiJENNKiAkSU4gJENNKiAkSUQ7IgotICAgICIkQ00qICRJTiAkQ00qICRJTjsiCi0gICAgIiRD
TSogJElOICRDTSogJE5VOyIKLSAgICAiJENNKiAkUE8gJENNKiAkSUQ7IgotICAgICIkQ00qICRO
VSAkQ00qICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSog
JE5VOyIKLSAgICAiJENNKiAkSUQgJENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhM
KSAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOyIKLSAgICAi
KCRDTSogKCRQUiB8ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMg
fCAkU1kpKSogJENNKiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/
OyIKLSAgICAiJENNKiAoJEgzIHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsiCi0gICAgIiRD
TSogKCRKVCB8ICRKVikgJENNKiAoJEgyIHwgJEpWKTsiCi0gICAgIiRDTSogJEpUICRDTSogKCRI
MyB8ICRKVCk7IgotICAgICIkQ00qICRJTiAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAk
SkwpOyIKLSAgICAiJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsi
Ci0gICAgIiRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkgJENNKiAkUFI7IgotICAg
ICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSog
KCRBTFBsdXMgfCAkSEwpICRDTSogJElTOyIKLSAgICAiJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8
ICRITCB8ICROVSk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsi
OwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRTYWZlRm9yd2FyZCA9Ci0gICAgIiEhc2FmZV9m
b3J3YXJkOyIKLSAgICAiWyRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRTUCAk
ZGljdGlvbmFyeV0rIFteJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJGRpY3Rp
b25hcnldOyIKLSAgICAiJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7IjsKLQotc3RhdGljIGNvbnN0
IGNoYXIqIHVheDE0U2FmZVJldmVyc2UgPQotICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAgIiRD
TSsgW14kQ00gJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOyIKLSAgICAiJENNKyAkU1AgLyAuOyIK
LSAgICAiJFNQKyAkQ00qICRPUDsiCi0gICAgIiRTUCsgJENNKiAkUVU7IgotICAgICIkU1ArICRD
TSogKCRDTCB8ICRDUCk7IgotICAgICIkU1ArICRDTSogJEIyOyIKLSAgICAiJENNKiAoJEhZIHwg
JEJBKSAkQ00qICRITDsiCi0gICAgIigkQ00qICgkSVMgfCAkU1kpKSsgJENNKiAkTlU7IgotICAg
ICIoJENMIHwgJENQKSAkQ00qICgkTlUgfCAkSVMgfCAkU1kpOyIKLSAgICAiJGRpY3Rpb25hcnkg
JGRpY3Rpb25hcnk7IjsKLQotc3RhdGljIHZvaWQgbWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMo
TGluZUJyZWFrSXRlcmF0b3JNb2RlIG1vZGUsIGJvb2wgaXNDSkssIFN0cmluZyYgcnVsZXMpCi17
Ci0gICAgU3RyaW5nQnVpbGRlciBydWxlc0J1aWxkZXI7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVu
ZCh1YXgxNFByb2xvZ3VlKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVu
dHNCZWZvcmUpOwotICAgIHN3aXRjaCAobW9kZSkgewotICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0
b3JNb2RlVUFYMTQ6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tRGVmYXVsdENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0
Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVV
QVgxNExvb3NlOgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3Np
Z25tZW50c0N1c3RvbUxvb3NlQ0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlTm9uQ0pL
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNE5v
cm1hbDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVu
dHNDdXN0b21Ob3JtYWxDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9uQ0pLKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNFN0cmlj
dDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHND
dXN0b21TdHJpY3RDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25t
ZW50c0FmdGVyKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0Rm9yd2FyZCk7Ci0gICAg
cnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFJldmVyc2UpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBl
bmQodWF4MTRTYWZlRm9yd2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVS
ZXZlcnNlKTsKLSAgICBydWxlcyA9IHJ1bGVzQnVpbGRlci50b1N0cmluZygpOwotfQotCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3Bw
CmluZGV4IDg4MjdiYThjNGRkNTYxNGM5ZThhNGY5NmIzMzFkYjJmMWE3NzhmMzUuLjllMTlhNjli
NTY0N2VhMTc2YzUwM2RkZWFkZmU5N2Y4OGM1NjkyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC0yODEyLDcgKzI4MTIs
NiBAQCBJbmxpbmVJdGVyYXRvciBSZW5kZXJCbG9jazo6TGluZUJyZWFrZXI6Om5leHRTZWdtZW50
QnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiByZQogICAgICAgICAgICAgYm9vbCBtaWRXb3JkQnJl
YWsgPSBmYWxzZTsKICAgICAgICAgICAgIGJvb2wgYnJlYWtBbGwgPSBjdXJyZW50U3R5bGUtPndv
cmRCcmVhaygpID09IEJyZWFrQWxsV29yZEJyZWFrICYmIGF1dG9XcmFwOwogICAgICAgICAgICAg
ZmxvYXQgaHlwaGVuV2lkdGggPSAwOwotICAgICAgICAgICAgYm9vbCBpc0xvb3NlQ0pLTW9kZSA9
IGZhbHNlOwogCiAgICAgICAgICAgICBpZiAodC0+aXNXb3JkQnJlYWsoKSkgewogICAgICAgICAg
ICAgICAgIHdpZHRoLmNvbW1pdCgpOwpAQCAtMjgyNSw4ICsyODI0LDcgQEAgSW5saW5lSXRlcmF0
b3IgUmVuZGVyQmxvY2s6OkxpbmVCcmVha2VyOjpuZXh0U2VnbWVudEJyZWFrKElubGluZUJpZGlS
ZXNvbHZlciYgcmUKICAgICAgICAgICAgICAgICByZW5kZXJUZXh0SW5mby5tX3RleHQgPSB0Owog
ICAgICAgICAgICAgICAgIHJlbmRlclRleHRJbmZvLm1fZm9udCA9ICZmOwogICAgICAgICAgICAg
ICAgIHJlbmRlclRleHRJbmZvLm1fbGF5b3V0ID0gZi5jcmVhdGVMYXlvdXQodCwgd2lkdGguY3Vy
cmVudFdpZHRoKCksIGNvbGxhcHNlV2hpdGVTcGFjZSk7Ci0gICAgICAgICAgICAgICAgcmVuZGVy
VGV4dEluZm8ubV9saW5lQnJlYWtJdGVyYXRvci5yZXNldCh0LT50ZXh0KCksIHN0eWxlLT5sb2Nh
bGUoKSwgbWFwTGluZUJyZWFrVG9JdGVyYXRvck1vZGUoYmxvY2tTdHlsZS0+bGluZUJyZWFrKCkp
KTsKLSAgICAgICAgICAgICAgICBpc0xvb3NlQ0pLTW9kZSA9IHJlbmRlclRleHRJbmZvLm1fbGlu
ZUJyZWFrSXRlcmF0b3IuaXNMb29zZUNKS01vZGUoKTsKKyAgICAgICAgICAgICAgICByZW5kZXJU
ZXh0SW5mby5tX2xpbmVCcmVha0l0ZXJhdG9yLnJlc2V0KHQtPnRleHQoKSwgc3R5bGUtPmxvY2Fs
ZSgpKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVuZGVyVGV4dEluZm8ubV9sYXlvdXQgJiYg
cmVuZGVyVGV4dEluZm8ubV9mb250ICE9ICZmKSB7CiAgICAgICAgICAgICAgICAgcmVuZGVyVGV4
dEluZm8ubV9mb250ID0gJmY7CiAgICAgICAgICAgICAgICAgcmVuZGVyVGV4dEluZm8ubV9sYXlv
dXQgPSBmLmNyZWF0ZUxheW91dCh0LCB3aWR0aC5jdXJyZW50V2lkdGgoKSwgY29sbGFwc2VXaGl0
ZVNwYWNlKTsKQEAgLTI4NjMsNyArMjg2MSw3IEBAIElubGluZUl0ZXJhdG9yIFJlbmRlckJsb2Nr
OjpMaW5lQnJlYWtlcjo6bmV4dFNlZ21lbnRCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImIHJlCiAg
ICAgICAgICAgICAgICAgICAgIG1pZFdvcmRCcmVhayA9IHdpZHRoLmNvbW1pdHRlZFdpZHRoKCkg
KyB3cmFwVyArIGNoYXJXaWR0aCA+IHdpZHRoLmF2YWlsYWJsZVdpZHRoKCk7CiAgICAgICAgICAg
ICAgICAgfQogCi0gICAgICAgICAgICAgICAgYm9vbCBiZXR3ZWVuV29yZHMgPSBjID09ICdcbicg
fHwgKGN1cnJXUyAhPSBQUkUgJiYgIWF0U3RhcnQgJiYgaXNCcmVha2FibGUocmVuZGVyVGV4dElu
Zm8ubV9saW5lQnJlYWtJdGVyYXRvciwgY3VycmVudC5tX3BvcywgY3VycmVudC5tX25leHRCcmVh
a2FibGVQb3NpdGlvbiwgYnJlYWtOQlNQLCBpc0xvb3NlQ0pLTW9kZSkKKyAgICAgICAgICAgICAg
ICBib29sIGJldHdlZW5Xb3JkcyA9IGMgPT0gJ1xuJyB8fCAoY3VycldTICE9IFBSRSAmJiAhYXRT
dGFydCAmJiBpc0JyZWFrYWJsZShyZW5kZXJUZXh0SW5mby5tX2xpbmVCcmVha0l0ZXJhdG9yLCBj
dXJyZW50Lm1fcG9zLCBjdXJyZW50Lm1fbmV4dEJyZWFrYWJsZVBvc2l0aW9uLCBicmVha05CU1Ap
CiAgICAgICAgICAgICAgICAgICAgICYmIChzdHlsZS0+aHlwaGVucygpICE9IEh5cGhlbnNOb25l
IHx8IChjdXJyZW50LnByZXZpb3VzSW5TYW1lTm9kZSgpICE9IHNvZnRIeXBoZW4pKSk7CiAKICAg
ICAgICAgICAgICAgICBpZiAoYmV0d2VlbldvcmRzIHx8IG1pZFdvcmRCcmVhaykgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCmluZGV4IGMxNmE0NDcyMDRlMDgwYmMzOGFh
YTk1Mzc0ZTQ3MjJhMzMyODIwNzAuLmFhNmIwMzQ2MDk4MDY1ZWExMDUyYjA1ZmQxOGQ5MTExNjk3
Y2YxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKQEAgLTkzNSwy
MiArOTM1LDYgQEAgc3RhdGljIGZsb2F0IG1heFdvcmRGcmFnbWVudFdpZHRoKFJlbmRlclRleHQq
IHJlbmRlcmVyLCBSZW5kZXJTdHlsZSogc3R5bGUsIGNvbnMKICAgICByZXR1cm4gbWF4RnJhZ21l
bnRXaWR0aDsKIH0KIAotTGluZUJyZWFrSXRlcmF0b3JNb2RlIG1hcExpbmVCcmVha1RvSXRlcmF0
b3JNb2RlKExpbmVCcmVhayBsaW5lQnJlYWspCi17Ci0gICAgc3dpdGNoIChsaW5lQnJlYWspIHsK
LSAgICBjYXNlIExpbmVCcmVha0F1dG86Ci0gICAgY2FzZSBMaW5lQnJlYWtBZnRlcldoaXRlU3Bh
Y2U6Ci0gICAgICAgIHJldHVybiBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNDsKLSAgICBjYXNl
IExpbmVCcmVha0xvb3NlOgotICAgICAgICByZXR1cm4gTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFY
MTRMb29zZTsKLSAgICBjYXNlIExpbmVCcmVha05vcm1hbDoKLSAgICAgICAgcmV0dXJuIExpbmVC
cmVha0l0ZXJhdG9yTW9kZVVBWDE0Tm9ybWFsOwotICAgIGNhc2UgTGluZUJyZWFrU3RyaWN0Ogot
ICAgICAgICByZXR1cm4gTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTRTdHJpY3Q7Ci0gICAgfQot
ICAgIHJldHVybiBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNDsKLX0KLQogdm9pZCBSZW5kZXJU
ZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyhmbG9hdCBsZWFkV2lkdGgsIEhhc2hT
ZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYgZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyYg
Z2x5cGhPdmVyZmxvdykKIHsKICAgICBBU1NFUlQobV9oYXNUYWIgfHwgcHJlZmVycmVkTG9naWNh
bFdpZHRoc0RpcnR5KCkgfHwgIW1fa25vd25Ub0hhdmVOb092ZXJmbG93QW5kTm9GYWxsYmFja0Zv
bnRzKTsKQEAgLTk3NSw3ICs5NTksNyBAQCB2b2lkIFJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKGZsb2F0IGxlYWRXaWR0aCwgSGFzaFNldDxjb25zdCBTaQogICAgIGNv
bnN0IEZvbnQmIGYgPSBzdHlsZVRvVXNlLT5mb250KCk7IC8vIEZJWE1FOiBUaGlzIGlnbm9yZXMg
Zmlyc3QtbGluZS4KICAgICBmbG9hdCB3b3JkU3BhY2luZyA9IHN0eWxlVG9Vc2UtPndvcmRTcGFj
aW5nKCk7CiAgICAgaW50IGxlbiA9IHRleHRMZW5ndGgoKTsKLSAgICBMYXp5TGluZUJyZWFrSXRl
cmF0b3IgYnJlYWtJdGVyYXRvcihtX3RleHQsIHN0eWxlVG9Vc2UtPmxvY2FsZSgpLCBtYXBMaW5l
QnJlYWtUb0l0ZXJhdG9yTW9kZShzdHlsZVRvVXNlLT5saW5lQnJlYWsoKSkpOworICAgIExhenlM
aW5lQnJlYWtJdGVyYXRvciBicmVha0l0ZXJhdG9yKG1fdGV4dCwgc3R5bGVUb1VzZS0+bG9jYWxl
KCkpOwogICAgIGJvb2wgbmVlZHNXb3JkU3BhY2luZyA9IGZhbHNlOwogICAgIGJvb2wgaWdub3Jp
bmdTcGFjZXMgPSBmYWxzZTsKICAgICBib29sIGlzU3BhY2UgPSBmYWxzZTsKQEAgLTEwMTAsNyAr
OTk0LDYgQEAgdm9pZCBSZW5kZXJUZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyhm
bG9hdCBsZWFkV2lkdGgsIEhhc2hTZXQ8Y29uc3QgU2kKIAogICAgIGJvb2wgYnJlYWtOQlNQID0g
c3R5bGVUb1VzZS0+YXV0b1dyYXAoKSAmJiBzdHlsZVRvVXNlLT5uYnNwTW9kZSgpID09IFNQQUNF
OwogICAgIGJvb2wgYnJlYWtBbGwgPSAoc3R5bGVUb1VzZS0+d29yZEJyZWFrKCkgPT0gQnJlYWtB
bGxXb3JkQnJlYWsgfHwgc3R5bGVUb1VzZS0+d29yZEJyZWFrKCkgPT0gQnJlYWtXb3JkQnJlYWsp
ICYmIHN0eWxlVG9Vc2UtPmF1dG9XcmFwKCk7Ci0gICAgYm9vbCBpc0xvb3NlQ0pLTW9kZSA9IGJy
ZWFrSXRlcmF0b3IuaXNMb29zZUNKS01vZGUoKTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
bGVuOyBpKyspIHsKICAgICAgICAgVUNoYXIgYyA9IGNoYXJhY3RlckF0KGkpOwpAQCAtMTA1OCw3
ICsxMDQxLDcgQEAgdm9pZCBSZW5kZXJUZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRo
cyhmbG9hdCBsZWFkV2lkdGgsIEhhc2hTZXQ8Y29uc3QgU2kKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBoYXNCcmVhayA9IGJyZWFrQWxsIHx8IGlzQnJl
YWthYmxlKGJyZWFrSXRlcmF0b3IsIGksIG5leHRCcmVha2FibGUsIGJyZWFrTkJTUCwgaXNMb29z
ZUNKS01vZGUpOworICAgICAgICBib29sIGhhc0JyZWFrID0gYnJlYWtBbGwgfHwgaXNCcmVha2Fi
bGUoYnJlYWtJdGVyYXRvciwgaSwgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKTsKICAgICAgICAg
Ym9vbCBiZXR3ZWVuV29yZHMgPSB0cnVlOwogICAgICAgICBpbnQgaiA9IGk7CiAgICAgICAgIHdo
aWxlIChjICE9ICdcbicgJiYgIWlzU3BhY2VBY2NvcmRpbmdUb1N0eWxlKGMsIHN0eWxlVG9Vc2Up
ICYmIGMgIT0gJ1x0JyAmJiAoYyAhPSBzb2Z0SHlwaGVuIHx8IHN0eWxlVG9Vc2UtPmh5cGhlbnMo
KSA9PSBIeXBoZW5zTm9uZSkpIHsKQEAgLTEwNjYsNyArMTA0OSw3IEBAIHZvaWQgUmVuZGVyVGV4
dDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoZmxvYXQgbGVhZFdpZHRoLCBIYXNoU2V0
PGNvbnN0IFNpCiAgICAgICAgICAgICBpZiAoaiA9PSBsZW4pCiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICBjID0gY2hhcmFjdGVyQXQoaik7Ci0gICAgICAgICAgICBpZiAoaXNC
cmVha2FibGUoYnJlYWtJdGVyYXRvciwgaiwgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQLCBpc0xv
b3NlQ0pLTW9kZSkgJiYgY2hhcmFjdGVyQXQoaiAtIDEpICE9IHNvZnRIeXBoZW4pCisgICAgICAg
ICAgICBpZiAoaXNCcmVha2FibGUoYnJlYWtJdGVyYXRvciwgaiwgbmV4dEJyZWFrYWJsZSwgYnJl
YWtOQlNQKSAmJiBjaGFyYWN0ZXJBdChqIC0gMSkgIT0gc29mdEh5cGhlbikKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGlmIChicmVha0FsbCkgewogICAgICAgICAgICAgICAg
IGJldHdlZW5Xb3JkcyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgK
aW5kZXggZWNhY2NkNDY4ODBiN2I2MzA1MGRhODU0ZjU2MzYxN2U0MTYxMjk5ZC4uZTBkMmEwM2Y3
ZTFmMzQ5ZWQxNjU2YjdmOWI2ZDAxNGUxZDM1NzFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5oCkBAIC0yMjMsOCArMjIzLDYgQEAgaW5saW5lIHZvaWQgUmVuZGVyVGV4dDo6
Y2hlY2tDb25zaXN0ZW5jeSgpIGNvbnN0CiAKIHZvaWQgYXBwbHlUZXh0VHJhbnNmb3JtKGNvbnN0
IFJlbmRlclN0eWxlKiwgU3RyaW5nJiwgVUNoYXIpOwogCi1MaW5lQnJlYWtJdGVyYXRvck1vZGUg
bWFwTGluZUJyZWFrVG9JdGVyYXRvck1vZGUoTGluZUJyZWFrKTsKLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gUmVuZGVyVGV4dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L2JyZWFrX2xpbmVzLmNwcAppbmRleCA1ZGNhM2VmN2ZjMGU3NzhhNmZiYWU0ZGM3NGQ1ZmFkMTNk
MTJjMjcyLi4xMGY4YjJiZTI5OGVlZmRjMTRiMGY4MTI4OGY1NWQ3YzViZjg3MTFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAKQEAgLTM4LDEzICszOCw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gUGFyYW1ldGVyaXphdGlvbiBmb3Igbm9uLWJyZWFr
aW5nIHNwYWNlIChVKzAwQTApIGJlaGF2aW9yLgotZW51bSBOQlNQQmVoYXZpb3IgewotICAgIEln
bm9yZU5CU1AsCi0gICAgVHJlYXROQlNQQXNCcmVhaywKLX07Ci0KLXRlbXBsYXRlPE5CU1BCZWhh
dmlvciBuYnNwQmVoYXZpb3I+Cit0ZW1wbGF0ZTxib29sIHRyZWF0Tm9CcmVha1NwYWNlQXNCcmVh
az4KIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0JyZWFrYWJsZVNwYWNlKFVDaGFyIGNoKQogewogICAg
IHN3aXRjaCAoY2gpIHsKQEAgLTUzLDcgKzQ3LDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzQnJl
YWthYmxlU3BhY2UoVUNoYXIgY2gpCiAgICAgY2FzZSAnXHQnOgogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICBjYXNlIG5vQnJlYWtTcGFjZToKLSAgICAgICAgcmV0dXJuIChuYnNwQmVoYXZpb3Ig
PT0gVHJlYXROQlNQQXNCcmVhayk7CisgICAgICAgIHJldHVybiB0cmVhdE5vQnJlYWtTcGFjZUFz
QnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE0
NSwxNyArMTM5LDE2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRCcmVha0FmdGVyKFVDaGFy
IGxhc3RDaCwgVUNoYXIgY2gsIFVDaGFyIG5leHRDaCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LXRlbXBsYXRlPE5CU1BCZWhhdmlvciBuYnNwQmVoYXZpb3I+Cit0ZW1wbGF0ZTxib29sIHRyZWF0
Tm9CcmVha1NwYWNlQXNCcmVhaz4KIGlubGluZSBib29sIG5lZWRzTGluZUJyZWFrSXRlcmF0b3Io
VUNoYXIgY2gpCiB7Ci0gICAgaWYgKG5ic3BCZWhhdmlvciA9PSBUcmVhdE5CU1BBc0JyZWFrKQor
ICAgIGlmICh0cmVhdE5vQnJlYWtTcGFjZUFzQnJlYWspCiAgICAgICAgIHJldHVybiBjaCA+IGFz
Y2lpTGluZUJyZWFrVGFibGVMYXN0Q2hhcjsKICAgICByZXR1cm4gY2ggPiBhc2NpaUxpbmVCcmVh
a1RhYmxlTGFzdENoYXIgJiYgY2ggIT0gbm9CcmVha1NwYWNlOwogfQogCi0vLyBXaGVuIGluIG5v
bi1sb29zZSBtb2RlLCB3ZSBjYW4gdXNlIHRoZSBBU0NJSSBzaG9ydGN1dCB0YWJsZS4KLXRlbXBs
YXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGUsIE5CU1BCZWhhdmlvciBuYnNwQmVoYXZpb3I+Ci1z
dGF0aWMgaW5saW5lIGludCBuZXh0QnJlYWthYmxlUG9zaXRpb25Ob25Mb29zZWx5KExhenlMaW5l
QnJlYWtJdGVyYXRvciYgbGF6eUJyZWFrSXRlcmF0b3IsIGNvbnN0IENoYXJhY3RlclR5cGUqIHN0
ciwgdW5zaWduZWQgbGVuZ3RoLCBpbnQgcG9zKQordGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVy
VHlwZSwgYm9vbCB0cmVhdE5vQnJlYWtTcGFjZUFzQnJlYWs+CitzdGF0aWMgaW5saW5lIGludCBu
ZXh0QnJlYWthYmxlUG9zaXRpb24oTGF6eUxpbmVCcmVha0l0ZXJhdG9yJiBsYXp5QnJlYWtJdGVy
YXRvciwgY29uc3QgQ2hhcmFjdGVyVHlwZSogc3RyLCB1bnNpZ25lZCBsZW5ndGgsIGludCBwb3Mp
CiB7CiAgICAgaW50IGxlbiA9IHN0YXRpY19jYXN0PGludD4obGVuZ3RoKTsKICAgICBpbnQgbmV4
dEJyZWFrID0gLTE7CkBAIC0xNjUsMTggKzE1OCwxNiBAQCBzdGF0aWMgaW5saW5lIGludCBuZXh0
QnJlYWthYmxlUG9zaXRpb25Ob25Mb29zZWx5KExhenlMaW5lQnJlYWtJdGVyYXRvciYgbGF6eUJy
ZQogICAgIGZvciAoaW50IGkgPSBwb3M7IGkgPCBsZW47IGkrKykgewogICAgICAgICBDaGFyYWN0
ZXJUeXBlIGNoID0gc3RyW2ldOwogCi0gICAgICAgIC8vIE5vbi1sb29zZSBtb2RlLCBzbyB1c2Ug
QVNDSUkgc2hvcnRjdXQgKHNob3VsZEJyZWFrQWZ0ZXIpIGlmIG5vdCBicmVha2FibGUgc3BhY2Uu
Ci0gICAgICAgIGlmIChpc0JyZWFrYWJsZVNwYWNlPG5ic3BCZWhhdmlvcj4oY2gpIHx8IHNob3Vs
ZEJyZWFrQWZ0ZXIobGFzdExhc3RDaCwgbGFzdENoLCBjaCkpCisgICAgICAgIGlmIChpc0JyZWFr
YWJsZVNwYWNlPHRyZWF0Tm9CcmVha1NwYWNlQXNCcmVhaz4oY2gpIHx8IHNob3VsZEJyZWFrQWZ0
ZXIobGFzdExhc3RDaCwgbGFzdENoLCBjaCkpCiAgICAgICAgICAgICByZXR1cm4gaTsKIAotICAg
ICAgICAvLyBOb24tbG9vc2UgbW9kZSwgc28gY29uZGl0aW9uYWxseSB1c2UgYnJlYWsgaXRlcmF0
b3IuCi0gICAgICAgIGlmIChuZWVkc0xpbmVCcmVha0l0ZXJhdG9yPG5ic3BCZWhhdmlvcj4oY2gp
IHx8IG5lZWRzTGluZUJyZWFrSXRlcmF0b3I8bmJzcEJlaGF2aW9yPihsYXN0Q2gpKSB7CisgICAg
ICAgIGlmIChuZWVkc0xpbmVCcmVha0l0ZXJhdG9yPHRyZWF0Tm9CcmVha1NwYWNlQXNCcmVhaz4o
Y2gpIHx8IG5lZWRzTGluZUJyZWFrSXRlcmF0b3I8dHJlYXROb0JyZWFrU3BhY2VBc0JyZWFrPihs
YXN0Q2gpKSB7CiAgICAgICAgICAgICBpZiAobmV4dEJyZWFrIDwgaSAmJiBpKSB7CiAgICAgICAg
ICAgICAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGJyZWFrSXRlcmF0b3IgPSBsYXp5QnJlYWtJdGVy
YXRvci5nZXQoKTsKICAgICAgICAgICAgICAgICBpZiAoYnJlYWtJdGVyYXRvcikKICAgICAgICAg
ICAgICAgICAgICAgbmV4dEJyZWFrID0gdGV4dEJyZWFrRm9sbG93aW5nKGJyZWFrSXRlcmF0b3Is
IGkgLSAxKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChpID09IG5leHRCcmVhayAm
JiAhaXNCcmVha2FibGVTcGFjZTxuYnNwQmVoYXZpb3I+KGxhc3RDaCkpCisgICAgICAgICAgICBp
ZiAoaSA9PSBuZXh0QnJlYWsgJiYgIWlzQnJlYWthYmxlU3BhY2U8dHJlYXROb0JyZWFrU3BhY2VB
c0JyZWFrPihsYXN0Q2gpKQogICAgICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICB9CiAK
QEAgLTE4Nyw2OCArMTc4LDIwIEBAIHN0YXRpYyBpbmxpbmUgaW50IG5leHRCcmVha2FibGVQb3Np
dGlvbk5vbkxvb3NlbHkoTGF6eUxpbmVCcmVha0l0ZXJhdG9yJiBsYXp5QnJlCiAgICAgcmV0dXJu
IGxlbjsKIH0KIAotLy8gV2hlbiBpbiBsb29zZSBtb2RlLCB3ZSBjYW4ndCB1c2UgdGhlIEFTQ0lJ
IHNob3J0Y3V0IHRhYmxlIHNpbmNlIGxvb3NlIG1vZGUgYWxsb3dzICIkMTAwIiB0byBicmVhayBh
ZnRlciAnJCcgaW4gY29udGVudCBtYXJrZWQgYXMgQ0pLLgotLy8gTi5CLiBJdCBzaG91bGQgYmUg
cG9zc2libGUgdG8gY29tYmluZSB0aGUgZm9sbG93aW5nIHdpdGggdGhlIG5vbi1sb29zZSB2ZXJz
aW9uIGFib3ZlIGJ5IGFkZGluZyBhIExvb3NlQmVoYXZpb3IgdGVtcGxhdGUgcGFyYW1ldGVyOwot
Ly8gaG93ZXZlciwgd2hlbiBkb2luZyB0aGlzLCBhIDEwJSBwZXJmb3JtYW5jZSByZWdyZXNzaW9u
IGFwcGVhcmVkIG9uIGNocm9taXVtLXdpbiAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg5MjM1I2MxMTIpLgotdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZSwg
TkJTUEJlaGF2aW9yIG5ic3BCZWhhdmlvcj4KLXN0YXRpYyBpbmxpbmUgaW50IG5leHRCcmVha2Fi
bGVQb3NpdGlvbkxvb3NlbHkoTGF6eUxpbmVCcmVha0l0ZXJhdG9yJiBsYXp5QnJlYWtJdGVyYXRv
ciwgY29uc3QgQ2hhcmFjdGVyVHlwZSogc3RyLCB1bnNpZ25lZCBsZW5ndGgsIGludCBwb3MpCi17
Ci0gICAgaW50IGxlbiA9IHN0YXRpY19jYXN0PGludD4obGVuZ3RoKTsKLSAgICBpbnQgbmV4dEJy
ZWFrID0gLTE7Ci0KLSAgICBDaGFyYWN0ZXJUeXBlIGxhc3RDaCA9IHBvcyA+IDAgPyBzdHJbcG9z
IC0gMV0gOiAwOwotICAgIGZvciAoaW50IGkgPSBwb3M7IGkgPCBsZW47IGkrKykgewotICAgICAg
ICBDaGFyYWN0ZXJUeXBlIGNoID0gc3RyW2ldOwotCi0gICAgICAgIC8vIEFsd2F5cyBsb29zZSBt
b2RlLCBzbyBkb24ndCB1c2UgQVNDSUkgc2hvcnRjdXQgKHNob3VsZEJyZWFrQWZ0ZXIpLgotICAg
ICAgICBpZiAoaXNCcmVha2FibGVTcGFjZTxuYnNwQmVoYXZpb3I+KGNoKSkKLSAgICAgICAgICAg
IHJldHVybiBpOwotCi0gICAgICAgIC8vIEFsd2F5cyB1c2UgbGluZSBicmVhayBpdGVyYXRvciBp
biBsb29zZSBtb2RlLgotICAgICAgICBpZiAobmV4dEJyZWFrIDwgaSAmJiBpKSB7Ci0gICAgICAg
ICAgICBUZXh0QnJlYWtJdGVyYXRvciogYnJlYWtJdGVyYXRvciA9IGxhenlCcmVha0l0ZXJhdG9y
LmdldCgpOwotICAgICAgICAgICAgaWYgKGJyZWFrSXRlcmF0b3IpCi0gICAgICAgICAgICAgICAg
bmV4dEJyZWFrID0gdGV4dEJyZWFrRm9sbG93aW5nKGJyZWFrSXRlcmF0b3IsIGkgLSAxKTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoaSA9PSBuZXh0QnJlYWsgJiYgIWlzQnJlYWthYmxlU3BhY2U8
bmJzcEJlaGF2aW9yPihsYXN0Q2gpKQotICAgICAgICAgICAgcmV0dXJuIGk7Ci0KLSAgICAgICAg
bGFzdENoID0gY2g7Ci0gICAgfQotCi0gICAgcmV0dXJuIGxlbjsKLX0KLQotaW50IG5leHRCcmVh
a2FibGVQb3NpdGlvbihMYXp5TGluZUJyZWFrSXRlcmF0b3ImIGxhenlCcmVha0l0ZXJhdG9yLCBp
bnQgcG9zKQotewotICAgIFN0cmluZyBzdHJpbmcgPSBsYXp5QnJlYWtJdGVyYXRvci5zdHJpbmco
KTsKLSAgICBpZiAoc3RyaW5nLmlzOEJpdCgpKQotICAgICAgICByZXR1cm4gbmV4dEJyZWFrYWJs
ZVBvc2l0aW9uTm9uTG9vc2VseTxMQ2hhciwgVHJlYXROQlNQQXNCcmVhaz4obGF6eUJyZWFrSXRl
cmF0b3IsIHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmcubGVuZ3RoKCksIHBvcyk7Ci0gICAg
cmV0dXJuIG5leHRCcmVha2FibGVQb3NpdGlvbk5vbkxvb3NlbHk8VUNoYXIsIFRyZWF0TkJTUEFz
QnJlYWs+KGxhenlCcmVha0l0ZXJhdG9yLCBzdHJpbmcuY2hhcmFjdGVyczE2KCksIHN0cmluZy5s
ZW5ndGgoKSwgcG9zKTsKLX0KLQogaW50IG5leHRCcmVha2FibGVQb3NpdGlvbklnbm9yaW5nTkJT
UChMYXp5TGluZUJyZWFrSXRlcmF0b3ImIGxhenlCcmVha0l0ZXJhdG9yLCBpbnQgcG9zKQogewog
ICAgIFN0cmluZyBzdHJpbmcgPSBsYXp5QnJlYWtJdGVyYXRvci5zdHJpbmcoKTsKICAgICBpZiAo
c3RyaW5nLmlzOEJpdCgpKQotICAgICAgICByZXR1cm4gbmV4dEJyZWFrYWJsZVBvc2l0aW9uTm9u
TG9vc2VseTxMQ2hhciwgSWdub3JlTkJTUD4obGF6eUJyZWFrSXRlcmF0b3IsIHN0cmluZy5jaGFy
YWN0ZXJzOCgpLCBzdHJpbmcubGVuZ3RoKCksIHBvcyk7Ci0gICAgcmV0dXJuIG5leHRCcmVha2Fi
bGVQb3NpdGlvbk5vbkxvb3NlbHk8VUNoYXIsIElnbm9yZU5CU1A+KGxhenlCcmVha0l0ZXJhdG9y
LCBzdHJpbmcuY2hhcmFjdGVyczE2KCksIHN0cmluZy5sZW5ndGgoKSwgcG9zKTsKLX0KLQotaW50
IG5leHRCcmVha2FibGVQb3NpdGlvbkxvb3NlKExhenlMaW5lQnJlYWtJdGVyYXRvciYgbGF6eUJy
ZWFrSXRlcmF0b3IsIGludCBwb3MpCi17Ci0gICAgU3RyaW5nIHN0cmluZyA9IGxhenlCcmVha0l0
ZXJhdG9yLnN0cmluZygpOwotICAgIGlmIChzdHJpbmcuaXM4Qml0KCkpCi0gICAgICAgIHJldHVy
biBuZXh0QnJlYWthYmxlUG9zaXRpb25Mb29zZWx5PExDaGFyLCBUcmVhdE5CU1BBc0JyZWFrPihs
YXp5QnJlYWtJdGVyYXRvciwgc3RyaW5nLmNoYXJhY3RlcnM4KCksIHN0cmluZy5sZW5ndGgoKSwg
cG9zKTsKLSAgICByZXR1cm4gbmV4dEJyZWFrYWJsZVBvc2l0aW9uTG9vc2VseTxVQ2hhciwgVHJl
YXROQlNQQXNCcmVhaz4obGF6eUJyZWFrSXRlcmF0b3IsIHN0cmluZy5jaGFyYWN0ZXJzMTYoKSwg
c3RyaW5nLmxlbmd0aCgpLCBwb3MpOworICAgICAgICByZXR1cm4gbmV4dEJyZWFrYWJsZVBvc2l0
aW9uPExDaGFyLCBmYWxzZT4obGF6eUJyZWFrSXRlcmF0b3IsIHN0cmluZy5jaGFyYWN0ZXJzOCgp
LCBzdHJpbmcubGVuZ3RoKCksIHBvcyk7CisgICAgcmV0dXJuIG5leHRCcmVha2FibGVQb3NpdGlv
bjxVQ2hhciwgZmFsc2U+KGxhenlCcmVha0l0ZXJhdG9yLCBzdHJpbmcuY2hhcmFjdGVyczE2KCks
IHN0cmluZy5sZW5ndGgoKSwgcG9zKTsKIH0KIAotaW50IG5leHRCcmVha2FibGVQb3NpdGlvbkln
bm9yaW5nTkJTUExvb3NlKExhenlMaW5lQnJlYWtJdGVyYXRvciYgbGF6eUJyZWFrSXRlcmF0b3Is
IGludCBwb3MpCitpbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKExhenlMaW5lQnJlYWtJdGVyYXRv
ciYgbGF6eUJyZWFrSXRlcmF0b3IsIGludCBwb3MpCiB7CiAgICAgU3RyaW5nIHN0cmluZyA9IGxh
enlCcmVha0l0ZXJhdG9yLnN0cmluZygpOwogICAgIGlmIChzdHJpbmcuaXM4Qml0KCkpCi0gICAg
ICAgIHJldHVybiBuZXh0QnJlYWthYmxlUG9zaXRpb25Mb29zZWx5PExDaGFyLCBJZ25vcmVOQlNQ
PihsYXp5QnJlYWtJdGVyYXRvciwgc3RyaW5nLmNoYXJhY3RlcnM4KCksIHN0cmluZy5sZW5ndGgo
KSwgcG9zKTsKLSAgICByZXR1cm4gbmV4dEJyZWFrYWJsZVBvc2l0aW9uTG9vc2VseTxVQ2hhciwg
SWdub3JlTkJTUD4obGF6eUJyZWFrSXRlcmF0b3IsIHN0cmluZy5jaGFyYWN0ZXJzMTYoKSwgc3Ry
aW5nLmxlbmd0aCgpLCBwb3MpOworICAgICAgICByZXR1cm4gbmV4dEJyZWFrYWJsZVBvc2l0aW9u
PExDaGFyLCB0cnVlPihsYXp5QnJlYWtJdGVyYXRvciwgc3RyaW5nLmNoYXJhY3RlcnM4KCksIHN0
cmluZy5sZW5ndGgoKSwgcG9zKTsKKyAgICByZXR1cm4gbmV4dEJyZWFrYWJsZVBvc2l0aW9uPFVD
aGFyLCB0cnVlPihsYXp5QnJlYWtJdGVyYXRvciwgc3RyaW5nLmNoYXJhY3RlcnMxNigpLCBzdHJp
bmcubGVuZ3RoKCksIHBvcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgKaW5kZXggNjU1ZWVhYTg0MTdiNjFiMzkyMjhhMjY3
NjEyMDYzMWU1NDNiNDRmMS4uNjkyMzYzMDA5N2M4MzczZmMzODQwZmJhOGI5MzBiMTI3MTJkMjA0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgKQEAgLTI4LDI0ICsyOCwx
NSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBMYXp5TGluZUJyZWFrSXRlcmF0b3I7CiAK
IGludCBuZXh0QnJlYWthYmxlUG9zaXRpb25JZ25vcmluZ05CU1AoTGF6eUxpbmVCcmVha0l0ZXJh
dG9yJiwgaW50IHBvcyk7Ci1pbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uSWdub3JpbmdOQlNQTG9v
c2UoTGF6eUxpbmVCcmVha0l0ZXJhdG9yJiwgaW50IHBvcyk7CiBpbnQgbmV4dEJyZWFrYWJsZVBv
c2l0aW9uKExhenlMaW5lQnJlYWtJdGVyYXRvciYsIGludCBwb3MpOwotaW50IG5leHRCcmVha2Fi
bGVQb3NpdGlvbkxvb3NlKExhenlMaW5lQnJlYWtJdGVyYXRvciYsIGludCBwb3MpOwogCi1pbmxp
bmUgYm9vbCBpc0JyZWFrYWJsZShMYXp5TGluZUJyZWFrSXRlcmF0b3ImIGxhenlCcmVha0l0ZXJh
dG9yLCBpbnQgcG9zLCBpbnQmIG5leHRCcmVha2FibGUsIGJvb2wgYnJlYWtOQlNQLCBib29sIGlz
TG9vc2VNb2RlKQoraW5saW5lIGJvb2wgaXNCcmVha2FibGUoTGF6eUxpbmVCcmVha0l0ZXJhdG9y
JiBsYXp5QnJlYWtJdGVyYXRvciwgaW50IHBvcywgaW50JiBuZXh0QnJlYWthYmxlLCBib29sIGJy
ZWFrTkJTUCkKIHsKICAgICBpZiAocG9zID4gbmV4dEJyZWFrYWJsZSkgewotICAgICAgICBpZiAo
aXNMb29zZU1vZGUpIHsKLSAgICAgICAgICAgIGlmIChicmVha05CU1ApCi0gICAgICAgICAgICAg
ICAgbmV4dEJyZWFrYWJsZSA9IG5leHRCcmVha2FibGVQb3NpdGlvbkxvb3NlKGxhenlCcmVha0l0
ZXJhdG9yLCBwb3MpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG5leHRCcmVh
a2FibGUgPSBuZXh0QnJlYWthYmxlUG9zaXRpb25JZ25vcmluZ05CU1BMb29zZShsYXp5QnJlYWtJ
dGVyYXRvciwgcG9zKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChicmVha05C
U1ApCi0gICAgICAgICAgICAgICAgbmV4dEJyZWFrYWJsZSA9IG5leHRCcmVha2FibGVQb3NpdGlv
bihsYXp5QnJlYWtJdGVyYXRvciwgcG9zKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBuZXh0QnJlYWthYmxlID0gbmV4dEJyZWFrYWJsZVBvc2l0aW9uSWdub3JpbmdOQlNQKGxh
enlCcmVha0l0ZXJhdG9yLCBwb3MpOwotICAgICAgICB9CisgICAgICAgIGlmIChicmVha05CU1Ap
CisgICAgICAgICAgICBuZXh0QnJlYWthYmxlID0gbmV4dEJyZWFrYWJsZVBvc2l0aW9uKGxhenlC
cmVha0l0ZXJhdG9yLCBwb3MpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXh0QnJlYWth
YmxlID0gbmV4dEJyZWFrYWJsZVBvc2l0aW9uSWdub3JpbmdOQlNQKGxhenlCcmVha0l0ZXJhdG9y
LCBwb3MpOwogICAgIH0KICAgICByZXR1cm4gcG9zID09IG5leHRCcmVha2FibGU7CiB9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNjZhYTRhNDY4YjRlMmI3ZjVjMGJjYTI1YjBjYzBlNGYyYzRhODNiZS4uYWZmNDUyODE2Mzc1
NzdlZjg0MjZmYmRhNTE2OTRjMWU4MWQ5MGRhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEz
LTAyLTI2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTQ0MDE5LgorICAgICAgICBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC8xNDQwMTkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDg5MgorCisgICAgICAgIGR1ZSB0byA4JSBwZXJmIHJl
Z3Jlc3Npb24gb24gY2hyb21pdW0td2luNyBpbnRsMSBwYWdlIGN5Y2xlciwKKyAgICAgICAgc2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA4NzIgKFJlcXVlc3Rl
ZAorICAgICAgICBieSBnYXN1YmljIG9uICN3ZWJraXQpLgorCisgICAgICAgICogcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTMtMDItMjYgIFN0ZXBoZW4gQ2hlbm5leSAgPHNj
aGVubmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIE5ldyBiYXNlbGluZXMg
Zm9yIGNzczMtbW9kc2VsLTE1YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCAyZGQxNTYyOTZlN2VjNmZmZmIwNzQwMDAxNDU5YmUwOWU5YzkwNGU2Li5hMDMy
NWIwMWQ3NDZhM2U1ZDYwYTNmMzY0NDFiZWYwMjhhZDhmODk5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTI5OSw5ICsxMjk5LDYgQEAgd2Via2l0Lm9y
Zy9iLzk5MjIxIGZhc3QvanMvcmFuZG9tLWFycmF5LWdjLXN0cmVzcy5odG1sIFsgUGFzcyBUaW1l
b3V0IF0KICMgVXNlciBUaW1pbmcgaXMgbm90IGVuYWJsZSB5ZXQuIHNvIHNraXAgaXQuCiB3ZWJr
aXQub3JnL2IvODQ4OTMgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Vz
ZXItdGltaW5nIFsgU2tpcCBdCiAKLSMgVmVyaWZpZWQgcGFzc2luZywgc28gb3ZlcnJpZGUgZ2Vu
ZXJpYyBza2lwCi13ZWJraXQub3JnL2IvODkyMzUgY3NzMy9saW5lLWJyZWFrIFsgUGFzcyBdCi0K
ICMgRXhwZWN0ZWQgdG8gZmFpbCB1bnRpbCBXZWJHTCBleHRlbnNpb24gaW1wbGVtZW50YXRpb24g
bGFuZHMKIHdlYmtpdC5vcmcvYi85ODI1NyBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1p
bmRleC11aW50Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>