<?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>178175</bug_id>
          
          <creation_ts>2017-10-11 11:24:31 -0700</creation_ts>
          <short_desc>Invalid numeric and named references should be early syntax errors</short_desc>
          <delta_ts>2020-04-04 14:05:54 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=178174</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=167067</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Trivial</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>189407</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>ross.kirsling</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>1359267</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2017-10-11 11:24:31 -0700</bug_when>
    <thetext>This Test262 test is failing - JSTests/test262/test/built-ins/RegExp/named-groups/unicode-references.js
Exception: SyntaxError: Invalid regular expression: invalid backreference for unicode pattern
at JSTests/test262/test/built-ins/RegExp/named-groups/unicode-references.js:33

The line in question is:
  assert(compareArray([&quot;bab&quot;, &quot;b&quot;], &quot;bab&quot;.match(/\k&lt;a&gt;(?&lt;a&gt;b)\w\k&lt;a&gt;/u)));

Here the named group “a” is being referenced before if is defined.  Seems like we’re doing the right thing, but we need to check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359270</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2017-10-11 11:25:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/34844068&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632683</commentid>
    <comment_count>2</comment_count>
      <attachid>394228</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-03-22 13:56:08 -0700</bug_when>
    <thetext>Created attachment 394228
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632685</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-03-22 14:01:12 -0700</bug_when>
    <thetext>I will add ChangeLog entry in a minute; just making sure we are not tackling the same issue separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632807</commentid>
    <comment_count>4</comment_count>
      <attachid>394256</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-03-23 05:41:42 -0700</bug_when>
    <thetext>Created attachment 394256
Patch

Add ChangeLog and fix build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632809</commentid>
    <comment_count>5</comment_count>
      <attachid>394257</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-03-23 06:00:06 -0700</bug_when>
    <thetext>Created attachment 394257
Patch

Use [[noreturn]] instead of NO_RETURN_DUE_TO_ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632980</commentid>
    <comment_count>6</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-23 12:45:37 -0700</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #5)
&gt; Created attachment 394257 [details]
&gt; Patch
&gt; 
&gt; Use [[noreturn]] instead of NO_RETURN_DUE_TO_ASSERT.

I think we intentionally avoid this? I think for a release assert you may need to use NO_RETURN_DUE_TO_CRASH.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632986</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-03-23 12:53:02 -0700</bug_when>
    <thetext>&gt; &gt; Use [[noreturn]] instead of NO_RETURN_DUE_TO_ASSERT.
&gt; 
&gt; I think we intentionally avoid this? I think for a release assert you may
&gt; need to use NO_RETURN_DUE_TO_CRASH.

Thank you, there are indeed no usages of [[noreturn]] in WebKit code base.

API tests fail because named and numeric references should be disabled for URLFilterParser. I might have need to bring back isValidNamedForwardReference().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633439</commentid>
    <comment_count>8</comment_count>
      <attachid>394400</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-03-24 13:04:04 -0700</bug_when>
    <thetext>Created attachment 394400
Patch

Use NO_RETURN_DUE_TO_CRASH, fix API tests, improve error messages, and tweak naming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633753</commentid>
    <comment_count>9</comment_count>
      <attachid>394400</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-24 20:10:42 -0700</bug_when>
    <thetext>Comment on attachment 394400
Patch

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

Nice work!
(Looks like you need a rebase though.)

&gt; Source/JavaScriptCore/yarr/YarrErrorCode.h:55
&gt; +    InvalidNamedBackreference,

Interesting how it&apos;s `Backreference` here and `BackReference` elsewhere...though this isn&apos;t your fault. :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634076</commentid>
    <comment_count>10</comment_count>
      <attachid>394553</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-03-25 15:45:10 -0700</bug_when>
    <thetext>Created attachment 394553
Patch

Rebase patch, set reviewer, add second m_kIdentityEscapeSeen,  check and add a comment explaining m_isUnicode check in handleIllegalReferences().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634080</commentid>
    <comment_count>11</comment_count>
      <attachid>394555</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-03-25 15:52:20 -0700</bug_when>
    <thetext>Created attachment 394555
Patch

Camelcase &quot;backreference&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634088</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-03-25 15:59:29 -0700</bug_when>
    <thetext>Thank you for taking time to review this patch, Ross.
It is quite tricky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634091</commentid>
    <comment_count>13</comment_count>
      <attachid>394555</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-25 16:01:17 -0700</bug_when>
    <thetext>Comment on attachment 394555
Patch

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

&gt; Source/JavaScriptCore/yarr/YarrParser.h:919
&gt; +        if (m_kIdentityEscapeSeen &amp;&amp; !m_captureGroupNames.isEmpty()) {
&gt; +            m_errorCode = ErrorCode::InvalidNamedBackReference;
&gt; +            return;
&gt; +        }

Do we need a test for this path, if nothing was failing without it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634095</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-03-25 16:05:56 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #13)
&gt; Do we need a test for this path, if nothing was failing without it?

We have this covered by
  test/language/literals/regexp/named-groups/invalid-incomplete-groupname.js
  test/language/literals/regexp/named-groups/invalid-incomplete-groupname-2.js
  test/language/literals/regexp/named-groups/invalid-incomplete-groupname-3.js

I just didn&apos;t run the tests properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634097</commentid>
    <comment_count>15</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-25 16:08:00 -0700</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #14)
&gt; (In reply to Ross Kirsling from comment #13)
&gt; &gt; Do we need a test for this path, if nothing was failing without it?
&gt; 
&gt; We have this covered by
&gt;   test/language/literals/regexp/named-groups/invalid-incomplete-groupname.js
&gt;  
&gt; test/language/literals/regexp/named-groups/invalid-incomplete-groupname-2.js
&gt;  
&gt; test/language/literals/regexp/named-groups/invalid-incomplete-groupname-3.js
&gt; 
&gt; I just didn&apos;t run the tests properly.

Oh okay, thanks for confirming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634143</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-25 18:24:11 -0700</bug_when>
    <thetext>Committed r259026: &lt;https://trac.webkit.org/changeset/259026&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394555.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394228</attachid>
            <date>2020-03-22 13:56:08 -0700</date>
            <delta_ts>2020-03-23 05:41:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178175-20200322225606.patch</filename>
            <type>text/plain</type>
            <size>27706</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4ODE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YmFiM2JmZmM0NjY2ODk5MWJhOTk2NWYzZmZjMWFiNmU4ZjQ2NGRlLi4xNzRkMjFiNmExMmQyODVm
MDdiY2MzNDczMWRjZWZmZmRjMDNkNzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAyMC0wMy0yMiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgVGVzdDI2MiBmYWlsdXJlIHdpdGggTmFtZWQgQ2FwdHVyZSBHcm91
cHMgLSB1c2luZyBhIHJlZmVyZW5jZSBiZWZvcmUgdGhlIGdyb3VwIGlzIGRlZmluZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODE3NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogeWFyci9ZYXJyUGFy
c2VyLmg6CisgICAgICAgIChKU0M6OllhcnI6OlBhcnNlcjo6Q2hhcmFjdGVyQ2xhc3NQYXJzZXJE
ZWxlZ2F0ZTo6YXRvbU5hbWVkQmFja1JlZmVyZW5jZSk6CisgICAgICAgIChKU0M6OllhcnI6OlBh
cnNlcjo6UGFyc2VyKToKKyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjpwYXJzZUVzY2FwZSk6
CisgICAgICAgIChKU0M6OllhcnI6OlBhcnNlcjo6cGFyc2VQYXJlbnRoZXNlc0JlZ2luKToKKyAg
ICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjpwYXJzZSk6CisgICAgICAgIChKU0M6OllhcnI6OlBh
cnNlcjo6aGFuZGxlSWxsZWdhbFJlZmVyZW5jZXMpOgorICAgICAgICAoSlNDOjpZYXJyOjpQYXJz
ZXI6OmNvbnRhaW5zSWxsZWdhbE51bWVyaWNSZWZlcmVuY2UpOgorICAgICAgICAoSlNDOjpZYXJy
OjpQYXJzZXI6OmNvbnRhaW5zSWxsZWdhbE5hbWVkUmVmZXJlbmNlKToKKyAgICAgICAgKEpTQzo6
WWFycjo6UGFyc2VyOjpyZXNldEZvclJlcGFyc2luZyk6CisgICAgICAgIChKU0M6OllhcnI6OnBh
cnNlKToKKyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjpDaGFyYWN0ZXJDbGFzc1BhcnNlckRl
bGVnYXRlOjppc1ZhbGlkTmFtZWRGb3J3YXJkUmVmZXJlbmNlKTogRGVsZXRlZC4KKyAgICAgICAg
KiB5YXJyL1lhcnJQYXR0ZXJuLmNwcDoKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyclBhdHRlcm5D
b25zdHJ1Y3Rvcjo6YXRvbUJhY2tSZWZlcmVuY2UpOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJy
UGF0dGVybkNvbnN0cnVjdG9yOjphdG9tTmFtZWRGb3J3YXJkUmVmZXJlbmNlKToKKyAgICAgICAg
KEpTQzo6WWFycjo6WWFyclBhdHRlcm46OmNvbXBpbGUpOgorICAgICAgICAoSlNDOjpZYXJyOjpZ
YXJyUGF0dGVybkNvbnN0cnVjdG9yOjpzYXZlVW5tYXRjaGVkTmFtZWRGb3J3YXJkUmVmZXJlbmNl
cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OllhcnI6OllhcnJQYXR0ZXJuQ29uc3RydWN0b3I6
OmlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UpOiBEZWxldGVkLgorICAgICAgICAqIHlhcnIv
WWFyclBhdHRlcm4uaDoKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyclBhdHRlcm46OnJlc2V0Rm9y
UmVwYXJzaW5nKToKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyclBhdHRlcm46OmNvbnRhaW5zSWxs
ZWdhbEJhY2tSZWZlcmVuY2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyUGF0
dGVybjo6Y29udGFpbnNJbGxlZ2FsTmFtZWRGb3J3YXJkUmVmZXJlbmNlcyk6IERlbGV0ZWQuCisg
ICAgICAgICogeWFyci9ZYXJyU3ludGF4Q2hlY2tlci5jcHA6CisgICAgICAgIChKU0M6OllhcnI6
OlN5bnRheENoZWNrZXI6OmF0b21OYW1lZEJhY2tSZWZlcmVuY2UpOgorICAgICAgICAoSlNDOjpZ
YXJyOjpTeW50YXhDaGVja2VyOjpyZXNldEZvclJlcGFyc2luZyk6CisgICAgICAgIChKU0M6Ollh
cnI6OlN5bnRheENoZWNrZXI6OmlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UpOiBEZWxldGVk
LgorCiAyMDIwLTAzLTIwICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4K
IAogICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JSZWdFeHBTcGxpdCBkb2Vzbid0
IGNoZWNrIGZvciBAQG1hdGNoIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjRlMThkZjExNjIxMTk2
ZDg0NDQ4MWYyNzY2M2M2NmE1YzhhMzdiNC4uYzQxMjdjMzI0ZDA1ZTk5MWZjYWEwNTY0MzIxMmE3
NDRmMjZmZDhiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAzLTIyICBBbGV4
ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBUZXN0MjYyIGZh
aWx1cmUgd2l0aCBOYW1lZCBDYXB0dXJlIEdyb3VwcyAtIHVzaW5nIGEgcmVmZXJlbmNlIGJlZm9y
ZSB0aGUgZ3JvdXAgaXMgZGVmaW5lZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc4MTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlBhdHRlcm5QYXJzZXI6OnJlc2V0
Rm9yUmVwYXJzaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpVUkxG
aWx0ZXJQYXJzZXI6OmFkZFBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVu
c2lvbnM6OlBhdHRlcm5QYXJzZXI6OmlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UpOiBEZWxl
dGVkLgorCiAyMDIwLTAzLTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ10gTGF5b3V0OjpCb3g6OmNvbnRhaW5pbmdCbG9jayBzaG91bGQgcmV0dXJuIGEg
Y29uc3QgQ29udGFpbmVyQm94JgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyclBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5o
CmluZGV4IGQ2NTUwOTFjMmRkNTViOTg3NDgyM2RmZGMwOTQ4ZTI3NGNhMjM3ZjMuLmQwNjY5Yjg3
NjU0MGVmZDU1NDQ2Zjg1ZDk4OTNhNDQ4MzMxYzc3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
eWFyci9ZYXJyUGFyc2VyLmgKQEAgLTEsNSArMSw2IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDA5LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFsZXhleSBTaHZheWthIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+LgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMCwxNyArMTEsMTcgQEAKICAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKICAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiAjcHJh
Z21hIG9uY2UKQEAgLTQxLDcgKzQyLDcgQEAgdGVtcGxhdGU8Y2xhc3MgRGVsZWdhdGUsIHR5cGVu
YW1lIENoYXJUeXBlPgogY2xhc3MgUGFyc2VyIHsKIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8Y2xh
c3MgRnJpZW5kRGVsZWdhdGU+Ci0gICAgZnJpZW5kIEVycm9yQ29kZSBwYXJzZShGcmllbmREZWxl
Z2F0ZSYsIGNvbnN0IFN0cmluZyYgcGF0dGVybiwgYm9vbCBpc1VuaWNvZGUsIHVuc2lnbmVkIGJh
Y2tSZWZlcmVuY2VMaW1pdCk7CisgICAgZnJpZW5kIEVycm9yQ29kZSBwYXJzZShGcmllbmREZWxl
Z2F0ZSYsIGNvbnN0IFN0cmluZyYgcGF0dGVybiwgYm9vbCBpc1VuaWNvZGUpOwogCiAgICAgLyoK
ICAgICAgKiBDaGFyYWN0ZXJDbGFzc1BhcnNlckRlbGVnYXRlOgpAQCAtMjAwLDcgKzIwMSw2IEBA
IHByaXZhdGU6CiAgICAgICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgYXNzZXJ0aW9u
V29yZEJvdW5kYXJ5KGJvb2wpIHsgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAg
ICAgICBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGF0b21CYWNrUmVmZXJlbmNlKHVuc2ln
bmVkKSB7IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICAgICAgTk9fUkVUVVJO
X0RVRV9UT19BU1NFUlQgdm9pZCBhdG9tTmFtZWRCYWNrUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYp
IHsgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgICAgICBOT19SRVRVUk5fRFVF
X1RPX0FTU0VSVCBib29sIGlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UoY29uc3QgU3RyaW5n
JikgeyBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgICAgIE5PX1JFVFVSTl9E
VUVfVE9fQVNTRVJUIHZvaWQgYXRvbU5hbWVkRm9yd2FyZFJlZmVyZW5jZShjb25zdCBTdHJpbmcm
KSB7IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIAogICAgIHByaXZhdGU6CkBAIC0y
MTcsOSArMjE3LDggQEAgcHJpdmF0ZToKICAgICAgICAgVUNoYXIzMiBtX2NoYXJhY3RlcjsKICAg
ICB9OwogCi0gICAgUGFyc2VyKERlbGVnYXRlJiBkZWxlZ2F0ZSwgY29uc3QgU3RyaW5nJiBwYXR0
ZXJuLCBib29sIGlzVW5pY29kZSwgdW5zaWduZWQgYmFja1JlZmVyZW5jZUxpbWl0KQorICAgIFBh
cnNlcihEZWxlZ2F0ZSYgZGVsZWdhdGUsIGNvbnN0IFN0cmluZyYgcGF0dGVybiwgYm9vbCBpc1Vu
aWNvZGUpCiAgICAgICAgIDogbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKLSAgICAgICAgLCBtX2JhY2tS
ZWZlcmVuY2VMaW1pdChiYWNrUmVmZXJlbmNlTGltaXQpCiAgICAgICAgICwgbV9kYXRhKHBhdHRl
cm4uY2hhcmFjdGVyczxDaGFyVHlwZT4oKSkKICAgICAgICAgLCBtX3NpemUocGF0dGVybi5sZW5n
dGgoKSkKICAgICAgICAgLCBtX2lzVW5pY29kZShpc1VuaWNvZGUpCkBAIC0zNDEsMTYgKzM0MCwx
MiBAQCBwcml2YXRlOgogCiAgICAgICAgICAgICAgICAgdW5zaWduZWQgYmFja1JlZmVyZW5jZSA9
IGNvbnN1bWVOdW1iZXIoKTsKICAgICAgICAgICAgICAgICBpZiAoYmFja1JlZmVyZW5jZSA8PSBt
X2JhY2tSZWZlcmVuY2VMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBtX21heFNlZW5CYWNr
UmVmZXJlbmNlID0gc3RkOjptYXgobV9tYXhTZWVuQmFja1JlZmVyZW5jZSwgYmFja1JlZmVyZW5j
ZSk7CiAgICAgICAgICAgICAgICAgICAgIGRlbGVnYXRlLmF0b21CYWNrUmVmZXJlbmNlKGJhY2tS
ZWZlcmVuY2UpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgICAgICByZXN0b3JlU3RhdGUoc3RhdGUpOwotCi0gICAgICAgICAgICAg
ICAgaWYgKG1faXNVbmljb2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fZXJyb3JDb2RlID0g
RXJyb3JDb2RlOjpJbnZhbGlkQmFja3JlZmVyZW5jZTsKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgLy8gTm90IGEgYmFja3JlZmVyZW5jZSwgYW5kIG5vdCBvY3RhbC4gSnVzdCBhIG51bWJlci4K
QEAgLTQ0MiwyOCArNDM3LDI3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgJ2snOiB7CiAgICAg
ICAgICAgICBjb25zdW1lKCk7CiAgICAgICAgICAgICBQYXJzZVN0YXRlIHN0YXRlID0gc2F2ZVN0
YXRlKCk7Ci0gICAgICAgICAgICBpZiAoIWF0RW5kT2ZQYXR0ZXJuKCkgJiYgIWluQ2hhcmFjdGVy
Q2xhc3MpIHsKLSAgICAgICAgICAgICAgICBpZiAoY29uc3VtZSgpID09ICc8JykgewotICAgICAg
ICAgICAgICAgICAgICBhdXRvIGdyb3VwTmFtZSA9IHRyeUNvbnN1bWVHcm91cE5hbWUoKTsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKGdyb3VwTmFtZSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKG1fY2FwdHVyZUdyb3VwTmFtZXMuY29udGFpbnMoZ3JvdXBOYW1lLnZhbHVlKCkpKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZWdhdGUuYXRvbU5hbWVkQmFja1JlZmVy
ZW5jZShncm91cE5hbWUudmFsdWUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZWxlZ2F0ZS5pc1ZhbGlkTmFtZWRGb3J3YXJk
UmVmZXJlbmNlKGdyb3VwTmFtZS52YWx1ZSgpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRlbGVnYXRlLmF0b21OYW1lZEZvcndhcmRSZWZlcmVuY2UoZ3JvdXBOYW1lLnZhbHVlKCkp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaWYgKCFpbkNoYXJhY3RlckNsYXNzICYmICFhdEVuZE9mUGF0
dGVybigpICYmIGNvbnN1bWUoKSA9PSAnPCcpIHsKKyAgICAgICAgICAgICAgICBhdXRvIGdyb3Vw
TmFtZSA9IHRyeUNvbnN1bWVHcm91cE5hbWUoKTsKKyAgICAgICAgICAgICAgICBpZiAoZ3JvdXBO
YW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2NhcHR1cmVHcm91cE5hbWVzLmNvbnRh
aW5zKGdyb3VwTmFtZS52YWx1ZSgpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVsZWdh
dGUuYXRvbU5hbWVkQmFja1JlZmVyZW5jZShncm91cE5hbWUudmFsdWUoKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICBpZiAobV9pc1VuaWNvZGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fZXJy
b3JDb2RlID0gRXJyb3JDb2RlOjpJbnZhbGlkQmFja3JlZmVyZW5jZTsKKworICAgICAgICAgICAg
ICAgICAgICBpZiAobV9pc05hbWVkRm9yd2FyZFJlZmVyZW5jZUFsbG93ZWQpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG1fZm9yd2FyZFJlZmVyZW5jZU5hbWVzLmFkZChncm91cE5hbWUudmFs
dWUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWxlZ2F0ZS5hdG9tTmFtZWRGb3J3YXJk
UmVmZXJlbmNlKGdyb3VwTmFtZS52YWx1ZSgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQorCiAgICAgICAgICAgICByZXN0b3JlU3RhdGUoc3RhdGUpOwotICAgICAgICAgICAgZGVs
ZWdhdGUuYXRvbVBhdHRlcm5DaGFyYWN0ZXIoJ2snKTsKKyAgICAgICAgICAgIGlmICghaXNJZGVu
dGl0eUVzY2FwZUFuRXJyb3IoJ2snKSkgeworICAgICAgICAgICAgICAgIGRlbGVnYXRlLmF0b21Q
YXR0ZXJuQ2hhcmFjdGVyKCdrJyk7CisgICAgICAgICAgICAgICAgbV9rSWRlbnRpdHlFc2NhcGVT
ZWVuID0gdHJ1ZTsgCisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogCkBAIC02OTcsNiArNjkxLDkgQEAgcHJpdmF0ZToKICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICBtX2RlbGVnYXRlLmF0b21QYXJlbnRoZXNlc1N1YnBhdHRlcm5CZWdpbigpOwogCisgICAg
ICAgIGlmICh0eXBlID09IFBhcmVudGhlc2VzVHlwZTo6U3VicGF0dGVybikKKyAgICAgICAgICAg
ICsrbV9udW1TdWJwYXR0ZXJuczsKKwogICAgICAgICBtX3BhcmVudGhlc2VzU3RhY2suYXBwZW5k
KHR5cGUpOwogICAgIH0KIApAQCAtODg0LDE0ICs4ODEsODkgQEAgcHJpdmF0ZToKICAgICBFcnJv
ckNvZGUgcGFyc2UoKQogICAgIHsKICAgICAgICAgaWYgKG1fc2l6ZSA+IE1BWF9QQVRURVJOX1NJ
WkUpCi0gICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6UGF0dGVyblRvb0xhcmdl
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBwYXJzZVRva2VucygpOwotICAgICAgICBBU1NF
UlQoYXRFbmRPZlBhdHRlcm4oKSB8fCBoYXNFcnJvcihtX2Vycm9yQ29kZSkpOwotICAgICAgICAK
KyAgICAgICAgICAgIHJldHVybiBFcnJvckNvZGU6OlBhdHRlcm5Ub29MYXJnZTsKKworICAgICAg
ICBwYXJzZVRva2VucygpOworCisgICAgICAgIGlmICghaGFzRXJyb3IobV9lcnJvckNvZGUpKSB7
CisgICAgICAgICAgICBBU1NFUlQoYXRFbmRPZlBhdHRlcm4oKSk7CisgICAgICAgICAgICBoYW5k
bGVJbGxlZ2FsUmVmZXJlbmNlcygpOworICAgICAgICAgICAgQVNTRVJUKGF0RW5kT2ZQYXR0ZXJu
KCkpOworICAgICAgICB9CisKICAgICAgICAgcmV0dXJuIG1fZXJyb3JDb2RlOwogICAgIH0KIAor
ICAgIHZvaWQgaGFuZGxlSWxsZWdhbFJlZmVyZW5jZXMoKQorICAgIHsKKyAgICAgICAgYm9vbCBz
aG91bGRSZXBhcnNlID0gZmFsc2U7CisKKyAgICAgICAgaWYgKGNvbnRhaW5zSWxsZWdhbE51bWVy
aWNSZWZlcmVuY2UoKSkgeworICAgICAgICAgICAgaWYgKG1faXNVbmljb2RlKSB7CisgICAgICAg
ICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkludmFsaWRCYWNrcmVmZXJlbmNlOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9i
YWNrUmVmZXJlbmNlTGltaXQgPSBtX251bVN1YnBhdHRlcm5zOworICAgICAgICAgICAgc2hvdWxk
UmVwYXJzZSA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9rSWRlbnRpdHlFc2Nh
cGVTZWVuICYmICFtX2NhcHR1cmVHcm91cE5hbWVzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAg
bV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkludmFsaWRCYWNrcmVmZXJlbmNlOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNvbnRhaW5zSWxsZWdhbE5hbWVk
UmVmZXJlbmNlKCkpIHsKKyAgICAgICAgICAgIGlmIChtX2lzVW5pY29kZSB8fCAhbV9jYXB0dXJl
R3JvdXBOYW1lcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVy
cm9yQ29kZTo6SW52YWxpZEJhY2tyZWZlcmVuY2U7CisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtX2lzTmFtZWRGb3J3YXJkUmVmZXJlbmNlQWxs
b3dlZCA9IGZhbHNlOworICAgICAgICAgICAgc2hvdWxkUmVwYXJzZSA9IHRydWU7CisgICAgICAg
IH0KKworICAgICAgICBpZiAoc2hvdWxkUmVwYXJzZSkgeworICAgICAgICAgICAgcmVzZXRGb3JS
ZXBhcnNpbmcoKTsKKyAgICAgICAgICAgIHBhcnNlVG9rZW5zKCk7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBib29sIGNvbnRhaW5zSWxsZWdhbE51bWVyaWNSZWZlcmVuY2UoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG1fbWF4U2VlbkJhY2tSZWZlcmVuY2UgPiBtX251bVN1YnBhdHRlcm5zOwor
ICAgIH0KKworICAgIGJvb2wgY29udGFpbnNJbGxlZ2FsTmFtZWRSZWZlcmVuY2UoKQorICAgIHsK
KyAgICAgICAgaWYgKG1fZm9yd2FyZFJlZmVyZW5jZU5hbWVzLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAobV9jYXB0dXJlR3JvdXBOYW1lcy5pc0Vt
cHR5KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBmb3IgKGF1dG8mIGVu
dHJ5IDogbV9mb3J3YXJkUmVmZXJlbmNlTmFtZXMpIHsKKyAgICAgICAgICAgIGlmICghbV9jYXB0
dXJlR3JvdXBOYW1lcy5jb250YWlucyhlbnRyeSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgdm9p
ZCByZXNldEZvclJlcGFyc2luZygpCisgICAgeworICAgICAgICBBU1NFUlQoIWhhc0Vycm9yKG1f
ZXJyb3JDb2RlKSk7CisKKyAgICAgICAgbV9kZWxlZ2F0ZS5yZXNldEZvclJlcGFyc2luZygpOwor
ICAgICAgICBtX2luZGV4ID0gMDsKKyAgICAgICAgbV9udW1TdWJwYXR0ZXJucyA9IDA7CisgICAg
ICAgIG1fbWF4U2VlbkJhY2tSZWZlcmVuY2UgPSAwOworICAgICAgICBtX2tJZGVudGl0eUVzY2Fw
ZVNlZW4gPSBmYWxzZTsKKyAgICAgICAgbV9wYXJlbnRoZXNlc1N0YWNrLmNsZWFyKCk7CisgICAg
ICAgIG1fY2FwdHVyZUdyb3VwTmFtZXMuY2xlYXIoKTsKKyAgICAgICAgbV9mb3J3YXJkUmVmZXJl
bmNlTmFtZXMuY2xlYXIoKTsKKyAgICB9CisKICAgICAvLyBNaXNjIGhlbHBlciBmdW5jdGlvbnM6
CiAKICAgICB0eXBlZGVmIHVuc2lnbmVkIFBhcnNlU3RhdGU7CkBAIC0xMTU2LDE0ICsxMjI4LDE5
IEBAIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBQYXJlbnRoZXNlc1R5cGUgOiB1aW50OF90IHsg
U3VicGF0dGVybiwgQXNzZXJ0aW9uIH07CiAKICAgICBEZWxlZ2F0ZSYgbV9kZWxlZ2F0ZTsKLSAg
ICB1bnNpZ25lZCBtX2JhY2tSZWZlcmVuY2VMaW1pdDsKICAgICBFcnJvckNvZGUgbV9lcnJvckNv
ZGUgeyBFcnJvckNvZGU6Ok5vRXJyb3IgfTsKICAgICBjb25zdCBDaGFyVHlwZSogbV9kYXRhOwog
ICAgIHVuc2lnbmVkIG1fc2l6ZTsKICAgICB1bnNpZ25lZCBtX2luZGV4IHsgMCB9OworICAgIHVu
c2lnbmVkIG1fbnVtU3VicGF0dGVybnMgeyAwIH07CisgICAgdW5zaWduZWQgbV9tYXhTZWVuQmFj
a1JlZmVyZW5jZSB7IDAgfTsKKyAgICB1bnNpZ25lZCBtX2JhY2tSZWZlcmVuY2VMaW1pdCB7IHF1
YW50aWZ5SW5maW5pdGUgfTsKICAgICBib29sIG1faXNVbmljb2RlOworICAgIGJvb2wgbV9pc05h
bWVkRm9yd2FyZFJlZmVyZW5jZUFsbG93ZWQgeyB0cnVlIH07CisgICAgYm9vbCBtX2tJZGVudGl0
eUVzY2FwZVNlZW4geyBmYWxzZSB9OwogICAgIFZlY3RvcjxQYXJlbnRoZXNlc1R5cGUsIDE2PiBt
X3BhcmVudGhlc2VzU3RhY2s7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fY2FwdHVyZUdyb3VwTmFt
ZXM7CisgICAgSGFzaFNldDxTdHJpbmc+IG1fZm9yd2FyZFJlZmVyZW5jZU5hbWVzOwogCiAgICAg
Ly8gRGVyaXZlZCBieSBlbXBpcmljYWwgdGVzdGluZyBvZiBjb21waWxlIHRpbWUgaW4gUENSRSBh
bmQgV1JFQy4KICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIE1BWF9QQVRURVJOX1NJWkUg
PSAxMDI0ICogMTAyNDsKQEAgLTExOTUsNyArMTI3Miw2IEBAIHByaXZhdGU6CiAgKiAgICB2b2lk
IGF0b21QYXJlbnRoZXNlc0VuZCgpOwogICogICAgdm9pZCBhdG9tQmFja1JlZmVyZW5jZSh1bnNp
Z25lZCBzdWJwYXR0ZXJuSWQpOwogICogICAgdm9pZCBhdG9tTmFtZWRCYWNrUmVmZXJlbmNlKGNv
bnN0IFN0cmluZyYgc3VicGF0dGVybk5hbWUpOwotICogICAgYm9vbCBpc1ZhbGlkTmFtZWRGb3J3
YXJkUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgc3VicGF0dGVybk5hbWUpOwogICogICAgdm9pZCBh
dG9tTmFtZWRGb3J3YXJkUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgc3VicGF0dGVybk5hbWUpOwog
ICoKICAqICAgIHZvaWQgcXVhbnRpZnlBdG9tKHVuc2lnbmVkIG1pbiwgdW5zaWduZWQgbWF4LCBi
b29sIGdyZWVkeSk7CkBAIC0xMjMyLDExICsxMzA4LDExIEBAIHByaXZhdGU6CiAgKi8KIAogdGVt
cGxhdGU8Y2xhc3MgRGVsZWdhdGU+Ci1FcnJvckNvZGUgcGFyc2UoRGVsZWdhdGUmIGRlbGVnYXRl
LCBjb25zdCBTdHJpbmcmIHBhdHRlcm4sIGJvb2wgaXNVbmljb2RlLCB1bnNpZ25lZCBiYWNrUmVm
ZXJlbmNlTGltaXQgPSBxdWFudGlmeUluZmluaXRlKQorRXJyb3JDb2RlIHBhcnNlKERlbGVnYXRl
JiBkZWxlZ2F0ZSwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBib29sIGlzVW5pY29kZSkKIHsKICAg
ICBpZiAocGF0dGVybi5pczhCaXQoKSkKLSAgICAgICAgcmV0dXJuIFBhcnNlcjxEZWxlZ2F0ZSwg
TENoYXI+KGRlbGVnYXRlLCBwYXR0ZXJuLCBpc1VuaWNvZGUsIGJhY2tSZWZlcmVuY2VMaW1pdCku
cGFyc2UoKTsKLSAgICByZXR1cm4gUGFyc2VyPERlbGVnYXRlLCBVQ2hhcj4oZGVsZWdhdGUsIHBh
dHRlcm4sIGlzVW5pY29kZSwgYmFja1JlZmVyZW5jZUxpbWl0KS5wYXJzZSgpOworICAgICAgICBy
ZXR1cm4gUGFyc2VyPERlbGVnYXRlLCBMQ2hhcj4oZGVsZWdhdGUsIHBhdHRlcm4sIGlzVW5pY29k
ZSkucGFyc2UoKTsKKyAgICByZXR1cm4gUGFyc2VyPERlbGVnYXRlLCBVQ2hhcj4oZGVsZWdhdGUs
IHBhdHRlcm4sIGlzVW5pY29kZSkucGFyc2UoKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OllhcnIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXR0ZXJu
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXR0ZXJuLmNwcAppbmRleCBj
NTA4MjA4NTYyYTc1MjdhNjBmNWMzMDNkMWNjZGIxN2UxZjA2YWQyLi45N2ZiODY4NDdjMGEyMzky
YzBjNWFkYzdmODIzMjFjM2U2NTJjYjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUveWFyci9ZYXJyUGF0dGVybi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIv
WWFyclBhdHRlcm4uY3BwCkBAIC00NjIsMTYgKzQ2Miw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9w
YXR0ZXJuLm1fZGlzanVuY3Rpb25zLmFwcGVuZChXVEZNb3ZlKGJvZHkpKTsKICAgICB9CiAKLSAg
ICB2b2lkIHNhdmVVbm1hdGNoZWROYW1lZEZvcndhcmRSZWZlcmVuY2VzKCkKLSAgICB7Ci0gICAg
ICAgIG1fdW5tYXRjaGVkTmFtZWRGb3J3YXJkUmVmZXJlbmNlcy5zaHJpbmsoMCk7Ci0gICAgICAg
IAotICAgICAgICBmb3IgKGF1dG8mIGVudHJ5IDogbV9wYXR0ZXJuLm1fbmFtZWRGb3J3YXJkUmVm
ZXJlbmNlcykgewotICAgICAgICAgICAgaWYgKCFtX3BhdHRlcm4ubV9jYXB0dXJlR3JvdXBOYW1l
cy5jb250YWlucyhlbnRyeSkpCi0gICAgICAgICAgICAgICAgbV91bm1hdGNoZWROYW1lZEZvcndh
cmRSZWZlcmVuY2VzLmFwcGVuZChlbnRyeSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICB2b2lk
IGFzc2VydGlvbkJPTCgpCiAgICAgewogICAgICAgICBpZiAoIW1fYWx0ZXJuYXRpdmUtPm1fdGVy
bXMuc2l6ZSgpICYmICFtX2ludmVydFBhcmVudGhldGljYWxBc3NlcnRpb24pIHsKQEAgLTY1Nyw3
ICs2NDcsNiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoc3VicGF0dGVybklkKTsK
ICAgICAgICAgbV9wYXR0ZXJuLm1fY29udGFpbnNCYWNrcmVmZXJlbmNlcyA9IHRydWU7Ci0gICAg
ICAgIG1fcGF0dGVybi5tX21heEJhY2tSZWZlcmVuY2UgPSBzdGQ6Om1heChtX3BhdHRlcm4ubV9t
YXhCYWNrUmVmZXJlbmNlLCBzdWJwYXR0ZXJuSWQpOwogCiAgICAgICAgIGlmIChzdWJwYXR0ZXJu
SWQgPiBtX3BhdHRlcm4ubV9udW1TdWJwYXR0ZXJucykgewogICAgICAgICAgICAgbV9hbHRlcm5h
dGl2ZS0+bV90ZXJtcy5hcHBlbmQoUGF0dGVyblRlcm06OkZvcndhcmRSZWZlcmVuY2UoKSk7CkBA
IC02ODcsMTQgKzY3Niw4IEBAIHB1YmxpYzoKICAgICAgICAgYXRvbUJhY2tSZWZlcmVuY2UobV9w
YXR0ZXJuLm1fbmFtZWRHcm91cFRvUGFyZW5JbmRleC5nZXQoc3VicGF0dGVybk5hbWUpKTsKICAg
ICB9CiAKLSAgICBib29sIGlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UoY29uc3QgU3RyaW5n
JiBzdWJwYXR0ZXJuTmFtZSkKKyAgICB2b2lkIGF0b21OYW1lZEZvcndhcmRSZWZlcmVuY2UoY29u
c3QgU3RyaW5nJikKICAgICB7Ci0gICAgICAgIHJldHVybiAhbV91bm1hdGNoZWROYW1lZEZvcndh
cmRSZWZlcmVuY2VzLmNvbnRhaW5zKHN1YnBhdHRlcm5OYW1lKTsKLSAgICB9Ci0KLSAgICB2b2lk
IGF0b21OYW1lZEZvcndhcmRSZWZlcmVuY2UoY29uc3QgU3RyaW5nJiBzdWJwYXR0ZXJuTmFtZSkK
LSAgICB7Ci0gICAgICAgIG1fcGF0dGVybi5tX25hbWVkRm9yd2FyZFJlZmVyZW5jZXMuYXBwZW5k
SWZOb3RDb250YWlucyhzdWJwYXR0ZXJuTmFtZSk7CiAgICAgICAgIG1fYWx0ZXJuYXRpdmUtPm1f
dGVybXMuYXBwZW5kKFBhdHRlcm5UZXJtOjpGb3J3YXJkUmVmZXJlbmNlKCkpOwogICAgIH0KICAg
ICAKQEAgLTExMzAsNyArMTExMyw2IEBAIHByaXZhdGU6CiAgICAgWWFyclBhdHRlcm4mIG1fcGF0
dGVybjsKICAgICBQYXR0ZXJuQWx0ZXJuYXRpdmUqIG1fYWx0ZXJuYXRpdmU7CiAgICAgQ2hhcmFj
dGVyQ2xhc3NDb25zdHJ1Y3RvciBtX2NoYXJhY3RlckNsYXNzQ29uc3RydWN0b3I7Ci0gICAgVmVj
dG9yPFN0cmluZz4gbV91bm1hdGNoZWROYW1lZEZvcndhcmRSZWZlcmVuY2VzOwogICAgIHZvaWQq
IG1fc3RhY2tMaW1pdDsKICAgICBFcnJvckNvZGUgbV9lcnJvciB7IEVycm9yQ29kZTo6Tm9FcnJv
ciB9OwogICAgIGJvb2wgbV9pbnZlcnRDaGFyYWN0ZXJDbGFzczsKQEAgLTExNDYsMjMgKzExMjgs
NiBAQCBFcnJvckNvZGUgWWFyclBhdHRlcm46OmNvbXBpbGUoY29uc3QgU3RyaW5nJiBwYXR0ZXJu
U3RyaW5nLCB2b2lkKiBzdGFja0xpbWl0KQogICAgICAgICBpZiAoaGFzRXJyb3IoZXJyb3IpKQog
ICAgICAgICAgICAgcmV0dXJuIGVycm9yOwogICAgIH0KLSAgICAKLSAgICAvLyBJZiB0aGUgcGF0
dGVybiBjb250YWlucyBpbGxlZ2FsIGJhY2tyZWZlcmVuY2VzIHJlc2V0ICYgcmVwYXJzZS4KLSAg
ICAvLyBRdW90aW5nIE5ldHNjYXBlJ3MgIldoYXQncyBuZXcgaW4gSmF2YVNjcmlwdCAxLjIiLAot
ICAgIC8vICAgICAgIk5vdGU6IGlmIHRoZSBudW1iZXIgb2YgbGVmdCBwYXJlbnRoZXNlcyBpcyBs
ZXNzIHRoYW4gdGhlIG51bWJlciBzcGVjaWZpZWQKLSAgICAvLyAgICAgICBpbiBcIywgdGhlIFwj
IGlzIHRha2VuIGFzIGFuIG9jdGFsIGVzY2FwZSBhcyBkZXNjcmliZWQgaW4gdGhlIG5leHQgcm93
LiIKLSAgICBpZiAoY29udGFpbnNJbGxlZ2FsQmFja1JlZmVyZW5jZSgpIHx8IGNvbnRhaW5zSWxs
ZWdhbE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMoKSkgewotICAgICAgICBpZiAodW5pY29kZSgpKQot
ICAgICAgICAgICAgcmV0dXJuIEVycm9yQ29kZTo6SW52YWxpZEJhY2tyZWZlcmVuY2U7Ci0KLSAg
ICAgICAgdW5zaWduZWQgbnVtU3VicGF0dGVybnMgPSBtX251bVN1YnBhdHRlcm5zOwotCi0gICAg
ICAgIGNvbnN0cnVjdG9yLnNhdmVVbm1hdGNoZWROYW1lZEZvcndhcmRSZWZlcmVuY2VzKCk7Ci0g
ICAgICAgIGNvbnN0cnVjdG9yLnJlc2V0Rm9yUmVwYXJzaW5nKCk7Ci0gICAgICAgIEVycm9yQ29k
ZSBlcnJvciA9IHBhcnNlKGNvbnN0cnVjdG9yLCBwYXR0ZXJuU3RyaW5nLCB1bmljb2RlKCksIG51
bVN1YnBhdHRlcm5zKTsKLSAgICAgICAgQVNTRVJUX1VOVVNFRChlcnJvciwgIWhhc0Vycm9yKGVy
cm9yKSk7Ci0gICAgICAgIEFTU0VSVChudW1TdWJwYXR0ZXJucyA9PSBtX251bVN1YnBhdHRlcm5z
KTsKLSAgICB9CiAKICAgICBjb25zdHJ1Y3Rvci5jaGVja0ZvclRlcm1pbmFsUGFyZW50aGVzZXMo
KTsKICAgICBjb25zdHJ1Y3Rvci5vcHRpbWl6ZURvdFN0YXJXcmFwcGVkRXhwcmVzc2lvbnMoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXR0ZXJuLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGF0dGVybi5oCmluZGV4IGY2YjIyZTU3ZThm
MGIwOWQ1NTQ4ZWJiMTY0MTI2MmY2MDJjMDNiNzcuLjI3N2YyMGI3NDdhMmVhOTBkYWRiNmIxMWJh
NGNhY2UwOGExODQ4NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJQYXR0ZXJuLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4u
aApAQCAtMzkxLDcgKzM5MSw2IEBAIHN0cnVjdCBZYXJyUGF0dGVybiB7CiAgICAgdm9pZCByZXNl
dEZvclJlcGFyc2luZygpCiAgICAgewogICAgICAgICBtX251bVN1YnBhdHRlcm5zID0gMDsKLSAg
ICAgICAgbV9tYXhCYWNrUmVmZXJlbmNlID0gMDsKICAgICAgICAgbV9pbml0aWFsU3RhcnRWYWx1
ZUZyYW1lTG9jYXRpb24gPSAwOwogCiAgICAgICAgIG1fY29udGFpbnNCYWNrcmVmZXJlbmNlcyA9
IGZhbHNlOwpAQCAtNDE1LDI1ICs0MTQsNiBAQCBzdHJ1Y3QgWWFyclBhdHRlcm4gewogICAgICAg
ICBtX2Rpc2p1bmN0aW9ucy5jbGVhcigpOwogICAgICAgICBtX3VzZXJDaGFyYWN0ZXJDbGFzc2Vz
LmNsZWFyKCk7CiAgICAgICAgIG1fY2FwdHVyZUdyb3VwTmFtZXMuc2hyaW5rKDApOwotICAgICAg
ICBtX25hbWVkRm9yd2FyZFJlZmVyZW5jZXMuc2hyaW5rKDApOwotICAgIH0KLQotICAgIGJvb2wg
Y29udGFpbnNJbGxlZ2FsQmFja1JlZmVyZW5jZSgpCi0gICAgewotICAgICAgICByZXR1cm4gbV9t
YXhCYWNrUmVmZXJlbmNlID4gbV9udW1TdWJwYXR0ZXJuczsKLSAgICB9Ci0gICAgCi0gICAgYm9v
bCBjb250YWluc0lsbGVnYWxOYW1lZEZvcndhcmRSZWZlcmVuY2VzKCkKLSAgICB7Ci0gICAgICAg
IGlmIChtX25hbWVkRm9yd2FyZFJlZmVyZW5jZXMuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBtX25hbWVkRm9yd2FyZFJl
ZmVyZW5jZXMpIHsKLSAgICAgICAgICAgIGlmICghbV9jYXB0dXJlR3JvdXBOYW1lcy5jb250YWlu
cyhlbnRyeSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgYm9vbCBjb250YWluc1Vuc2lnbmVkTGVu
Z3RoUGF0dGVybigpCkBAIC01NTUsMTMgKzUzNSwxMSBAQCBzdHJ1Y3QgWWFyclBhdHRlcm4gewog
ICAgIGJvb2wgbV9zYXZlSW5pdGlhbFN0YXJ0VmFsdWUgOiAxOwogICAgIE9wdGlvblNldDxGbGFn
cz4gbV9mbGFnczsKICAgICB1bnNpZ25lZCBtX251bVN1YnBhdHRlcm5zIHsgMCB9OwotICAgIHVu
c2lnbmVkIG1fbWF4QmFja1JlZmVyZW5jZSB7IDAgfTsKICAgICB1bnNpZ25lZCBtX2luaXRpYWxT
dGFydFZhbHVlRnJhbWVMb2NhdGlvbiB7IDAgfTsKICAgICBQYXR0ZXJuRGlzanVuY3Rpb24qIG1f
Ym9keTsKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFBhdHRlcm5EaXNqdW5jdGlvbj4sIDQ+
IG1fZGlzanVuY3Rpb25zOwogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q2hhcmFjdGVyQ2xh
c3M+PiBtX3VzZXJDaGFyYWN0ZXJDbGFzc2VzOwogICAgIFZlY3RvcjxTdHJpbmc+IG1fY2FwdHVy
ZUdyb3VwTmFtZXM7Ci0gICAgVmVjdG9yPFN0cmluZz4gbV9uYW1lZEZvcndhcmRSZWZlcmVuY2Vz
OwogICAgIEhhc2hNYXA8U3RyaW5nLCB1bnNpZ25lZD4gbV9uYW1lZEdyb3VwVG9QYXJlbkluZGV4
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFy
clN5bnRheENoZWNrZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclN5bnRh
eENoZWNrZXIuY3BwCmluZGV4IDg2YjBlNjdkMTQ2YzI2MTc2NDZkOGM2MzI0NmNjNjI0NWI0N2Iy
MmQuLjNjN2E1ZGMzNDgyZmYyZTczMWRkN2Y4MmVmNmNkNmYwNTgzMjQwMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJTeW50YXhDaGVja2VyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyU3ludGF4Q2hlY2tlci5jcHAKQEAgLTQ5LDEw
ICs0OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhdG9tUGFyZW50aGVzZXNFbmQoKSB7fQogICAg
IHZvaWQgYXRvbUJhY2tSZWZlcmVuY2UodW5zaWduZWQpIHt9CiAgICAgdm9pZCBhdG9tTmFtZWRC
YWNrUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYpIHt9Ci0gICAgYm9vbCBpc1ZhbGlkTmFtZWRGb3J3
YXJkUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGF0
b21OYW1lZEZvcndhcmRSZWZlcmVuY2UoY29uc3QgU3RyaW5nJikge30KICAgICB2b2lkIHF1YW50
aWZ5QXRvbSh1bnNpZ25lZCwgdW5zaWduZWQsIGJvb2wpIHt9CiAgICAgdm9pZCBkaXNqdW5jdGlv
bigpIHt9CisgICAgdm9pZCByZXNldEZvclJlcGFyc2luZygpIHt9CiB9OwogCiBFcnJvckNvZGUg
Y2hlY2tTeW50YXgoY29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIGZsYWdzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFy
c2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNl
ci5jcHAKaW5kZXggZjA0MjBkNTE1OGM3MzRjZjEwNTA0YzdhN2M0YmMwZjI0MjRkODMxYS4uNDgx
Y2JmMDI5YWFmMWZmMDFiM2EyNGFjY2Y0ZDY0MWFlYjUwMjBjYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFyc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwCkBAIC0xMzQs
OSArMTM0LDkgQEAgcHVibGljOgogICAgICAgICBmYWlsKFVSTEZpbHRlclBhcnNlcjo6QmFja1Jl
ZmVyZW5jZSk7CiAgICAgfQogCi0gICAgYm9vbCBpc1ZhbGlkTmFtZWRGb3J3YXJkUmVmZXJlbmNl
KGNvbnN0IFN0cmluZyYpCisgICAgdm9pZCByZXNldEZvclJlcGFyc2luZygpCiAgICAgewotICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgfQogCiAgICAgdm9pZCBhdG9tTmFtZWRGb3J3YXJkUmVmZXJlbmNlKGNvbnN0IFN0cmlu
ZyYpCkBAIC0zNTgsNyArMzU4LDcgQEAgVVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1cyBVUkxG
aWx0ZXJQYXJzZXI6OmFkZFBhdHRlcm4oY29uc3QgU3RyaW5nJiBwYXR0ZXJuLAogCiAgICAgUGFy
c2VTdGF0dXMgc3RhdHVzID0gT2s7CiAgICAgUGF0dGVyblBhcnNlciBwYXR0ZXJuUGFyc2VyKHBh
dHRlcm5Jc0Nhc2VTZW5zaXRpdmUpOwotICAgIGlmICghSlNDOjpZYXJyOjpoYXNFcnJvcihKU0M6
OllhcnI6OnBhcnNlKHBhdHRlcm5QYXJzZXIsIHBhdHRlcm4sIGZhbHNlLCAwKSkpCisgICAgaWYg
KCFKU0M6OllhcnI6Omhhc0Vycm9yKEpTQzo6WWFycjo6cGFyc2UocGF0dGVyblBhcnNlciwgcGF0
dGVybiwgZmFsc2UpKSkKICAgICAgICAgcGF0dGVyblBhcnNlci5maW5hbGl6ZShwYXR0ZXJuSWQs
IG1fY29tYmluZWRVUkxGaWx0ZXJzKTsKICAgICBlbHNlCiAgICAgICAgIHN0YXR1cyA9IFlhcnJF
cnJvcjsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggODRmZWRkOGZiNmQ5ZjlkMWM4OTZkZjQ5MjkwNmZiZDNiNTRjYTVlZS4uMzYwNmViMDhh
MWU0MTZlZDMzYzZjYWYzM2RjMmQ2MWMwMDdiMzhlYiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wMy0y
MiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgVGVz
dDI2MiBmYWlsdXJlIHdpdGggTmFtZWQgQ2FwdHVyZSBHcm91cHMgLSB1c2luZyBhIHJlZmVyZW5j
ZSBiZWZvcmUgdGhlIGdyb3VwIGlzIGRlZmluZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODE3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDogTWFyayA0
NCB0ZXN0IGNhc2VzIGFzIHBhc3NpbmcuCisKIDIwMjAtMDMtMjAgIFJvc3MgS2lyc2xpbmcgIDxy
b3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0
c0ZvclJlZ0V4cFNwbGl0IGRvZXNuJ3QgY2hlY2sgZm9yIEBAbWF0Y2ggb3ZlcnJpZGUKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2
Mi9leHBlY3RhdGlvbnMueWFtbAppbmRleCA1YjJiZWZhOGNlZmJlMzc2ZjJkMzU1MzY4MGZlODg2
OGE5NWQ5NjUwLi5iMzIyMTEzY2U5MzEyNmU3MjQ3ZGFiZjcyMDMwMmRhOTdhZTBkNDc3IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90
ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC0xNTI1LDkgKzE1MjUsNiBAQCB0ZXN0L2J1aWx0
LWlucy9SZWdFeHAvcHJvdG90eXBlL3Rlc3QvUzE1LjEwLjYuM19BMV9UMjIuanM6CiB0ZXN0L2J1
aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL3VuaWNvZGUvY3Jvc3MtcmVhbG0uanM6CiAgIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IGNyb3NzLXJlYWxtIFJlZ0V4cC5wcm90b3R5cGUgRXhwZWN0ZWQg
YSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBh
bGwnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBjcm9zcy1yZWFsbSBSZWdFeHAucHJv
dG90eXBlIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9u
IHdhcyB0aHJvd24gYXQgYWxsJwotdGVzdC9idWlsdC1pbnMvUmVnRXhwL3VuaWNvZGVfcmVzdHJp
Y3RlZF9pZGVudGl0eV9lc2NhcGVfYWxwaGEuanM6Ci0gIGRlZmF1bHQ6ICJUZXN0MjYyRXJyb3I6
IElkZW50aXR5RXNjYXBlIGluIEF0b21Fc2NhcGU6ICdrJyBFeHBlY3RlZCBhIFN5bnRheEVycm9y
IHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIgotICBzdHJp
Y3QgbW9kZTogIlRlc3QyNjJFcnJvcjogSWRlbnRpdHlFc2NhcGUgaW4gQXRvbUVzY2FwZTogJ2sn
IEV4cGVjdGVkIGEgU3ludGF4RXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2Fz
IHRocm93biBhdCBhbGwiCiB0ZXN0L2J1aWx0LWlucy9SZWdFeHAvdW5pY29kZV9yZXN0cmljdGVk
X29jdGFsX2VzY2FwZS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogUmVnRXhwKCJbXDFd
IiwgInUiKTogIEV4cGVjdGVkIGEgU3ludGF4RXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNl
cHRpb24gd2FzIHRocm93biBhdCBhbGwnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBS
ZWdFeHAoIltcMV0iLCAidSIpOiAgRXhwZWN0ZWQgYSBTeW50YXhFcnJvciB0byBiZSB0aHJvd24g
YnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKQEAgLTMwNDgsNjkgKzMwNDUsNiBA
QCB0ZXN0L2xhbmd1YWdlL2dsb2JhbC1jb2RlL3NjcmlwdC1kZWNsLWZ1bmMtZXJyLW5vbi1leHRl
bnNpYmxlLmpzOgogdGVzdC9sYW5ndWFnZS9nbG9iYWwtY29kZS9zY3JpcHQtZGVjbC12YXItZXJy
LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBi
ZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKICAgc3RyaWN0IG1v
ZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQg
bm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9y
ZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtZGFuZ2xpbmctZ3JvdXBuYW1lLTItdS5qczoKLSAg
ZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVk
LicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJl
IGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMv
aW52YWxpZC1kYW5nbGluZy1ncm91cG5hbWUtMi5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRo
aXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xh
bmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1kYW5nbGluZy1ncm91
cG5hbWUtMy11LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxk
IG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVt
ZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVn
ZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWRhbmdsaW5nLWdyb3VwbmFtZS0zLmpzOgotICBkZWZh
dWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwot
ICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZh
bHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vwcy9pbnZh
bGlkLWRhbmdsaW5nLWdyb3VwbmFtZS00LXUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlz
IHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVz
dDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5n
dWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtZGFuZ2xpbmctZ3JvdXBu
YW1lLTQuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90
IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQg
c2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAv
bmFtZWQtZ3JvdXBzL2ludmFsaWQtZGFuZ2xpbmctZ3JvdXBuYW1lLTUuanM6Ci0gIGRlZmF1bHQ6
ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0
cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0
ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQt
ZGFuZ2xpbmctZ3JvdXBuYW1lLXUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRl
bWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2Mjog
VGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9s
aXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtZGFuZ2xpbmctZ3JvdXBuYW1lLXdp
dGhvdXQtZ3JvdXAtdS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNo
b3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0
YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxz
L3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1kYW5nbGluZy1ncm91cG5hbWUuanM6Ci0gIGRl
ZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4n
Ci0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBl
dmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2lu
dmFsaWQtaW5jb21wbGV0ZS1ncm91cG5hbWUtMi5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRo
aXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xh
bmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1pbmNvbXBsZXRlLWdy
b3VwbmFtZS0zLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxk
IG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVt
ZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVn
ZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWluY29tcGxldGUtZ3JvdXBuYW1lLTQuanM6Ci0gIGRl
ZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4n
Ci0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBl
dmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2lu
dmFsaWQtaW5jb21wbGV0ZS1ncm91cG5hbWUtNS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRo
aXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xh
bmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1pbmNvbXBsZXRlLWdy
b3VwbmFtZS02LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxk
IG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVt
ZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVn
ZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWluY29tcGxldGUtZ3JvdXBuYW1lLXUuanM6Ci0gIGRl
ZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4n
Ci0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBl
dmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2lu
dmFsaWQtaW5jb21wbGV0ZS1ncm91cG5hbWUtd2l0aG91dC1ncm91cC0zLXUuanM6Ci0gIGRlZmF1
bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0g
IHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFs
dWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFs
aWQtaW5jb21wbGV0ZS1ncm91cG5hbWUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0
YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2
MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFn
ZS9saXRlcmFscy9yZWdleHAvdS1kZWMtZXNjLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhp
cyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFu
Z3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL3UtaW52YWxpZC1sZWdhY3ktb2N0YWwtZXNjYXBlLmpzOgot
ICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0
ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3Qg
YmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL3UtaW52YWxpZC1v
b2ItZGVjaW1hbC1lc2NhcGUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVu
dCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhp
cyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwogdGVzdC9sYW5ndWFnZS9tb2R1
bGUtY29kZS9ldmFsLXJxc3RkLW9uY2UuanM6CiAgIG1vZHVsZTogIlN5bnRheEVycm9yOiBVbmV4
cGVjdGVkIGlkZW50aWZpZXIgJ2FzJy4gRXhwZWN0ZWQgJ2Zyb20nIGJlZm9yZSBleHBvcnRlZCBt
b2R1bGUgbmFtZS4iCiB0ZXN0L2xhbmd1YWdlL21vZHVsZS1jb2RlL2V2YWwtcnFzdGQtb3JkZXIu
anM6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394256</attachid>
            <date>2020-03-23 05:41:42 -0700</date>
            <delta_ts>2020-03-23 06:00:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178175-20200323144140.patch</filename>
            <type>text/plain</type>
            <size>29257</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4ODE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YmFiM2JmZmM0NjY2ODk5MWJhOTk2NWYzZmZjMWFiNmU4ZjQ2NGRlLi4wYjVmZTM4MDVhMTdjNzcw
ZmU1MThjYWJhMTczNjQzYTA3MGEyM2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAyMC0wMy0yMiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgSW52YWxpZCBudW1lcmljIGFuZCBuYW1lZCByZWZlcmVuY2VzIHNo
b3VsZCBiZSBlYXJseSBzeW50YXggZXJyb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgxNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoOgorCisgICAgICAgIDEuIEZpeGVzIG5hbWVk
IHJlZmVyZW5jZSBwYXJzaW5nIGluIHBhcnNlRXNjYXBlKCksIG1ha2luZyAvXGsvdSB0aHJvdyBT
eW50YXhFcnJvciBwZXIgc3BlYyBbMV0uCisKKyAgICAgICAgMi4gUmV3b3JrcyBjb250YWluc0ls
bGVnYWxOYW1lZEZvcndhcmRSZWZlcmVuY2VzKCksIG1ha2luZyBkYW5nbGluZyAoZS5nLiAvXGs8
YT4oPzxiPi4pLykgYW5kCisgICAgICAgICAgIGluY29tcGxldGUgKGUuZy4gL1xrPCg/PGE+Likv
KSBuYW1lZCByZWZlcmVuY2VzIHRocm93IFN5bnRheEVycm9yIGlmIHRoZSBub24tVW5pY29kZSBw
YXR0ZXJuCisgICAgICAgICAgIGNvbnRhaW5zIGEgbmFtZWQgZ3JvdXAgWzJdLgorCisgICAgICAg
IDMuIE1vdmVzIHJlcGFyc2luZyBsb2dpYyBmcm9tIFlhcnJQYXR0ZXJuIHRvIFlhcnJQYXJzZXIs
IGVuc3VyaW5nIHN5bnRheCBlcnJvcnMgZHVlIHRvIGlsbGVnYWwKKyAgICAgICAgICAgcmVmZXJl
bmNlcyAoYm90aCBuYW1lZCBhbmQgbnVtZXJpYykgYXJlIHRocm93biBhdCB0aGUgcGFyc2UgdGlt
ZTsgcmVtb3ZlcyBiYWNrUmVmZXJlbmNlTGltaXQKKyAgICAgICAgICAgcGFyYW1ldGVyIG9mIFlh
cnI6OnBhcnNlKCksIGRyb3BzIGlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UoKSBmcm9tIERl
bGVnYXRlLCByZWZhY3RvcnMKKyAgICAgICAgICAgc2F2ZVVubWF0Y2hlZE5hbWVkRm9yd2FyZFJl
ZmVyZW5jZXMoKSwgYW5kIG92ZXJhbGwgaW1wcm92ZXMgY29oZXNpb24gb2YgaWxsZWdhbCByZWZl
cmVuY2UgbG9naWMuIAorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3By
b2QtSWRlbnRpdHlFc2NhcGUKKyAgICAgICAgWzJdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8j
c2VjLXJlZ2V4cGluaXRpYWxpemUgKHN0ZXAgNy5iKQorCisgICAgICAgICogeWFyci9ZYXJyUGFy
c2VyLmg6CisgICAgICAgIChKU0M6OllhcnI6OlBhcnNlcjo6Q2hhcmFjdGVyQ2xhc3NQYXJzZXJE
ZWxlZ2F0ZTo6YXRvbU5hbWVkQmFja1JlZmVyZW5jZSk6CisgICAgICAgIChKU0M6OllhcnI6OlBh
cnNlcjo6UGFyc2VyKToKKyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjpwYXJzZUVzY2FwZSk6
CisgICAgICAgIChKU0M6OllhcnI6OlBhcnNlcjo6cGFyc2VQYXJlbnRoZXNlc0JlZ2luKToKKyAg
ICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjpwYXJzZSk6CisgICAgICAgIChKU0M6OllhcnI6OlBh
cnNlcjo6aGFuZGxlSWxsZWdhbFJlZmVyZW5jZXMpOgorICAgICAgICAoSlNDOjpZYXJyOjpQYXJz
ZXI6OmNvbnRhaW5zSWxsZWdhbE51bWVyaWNSZWZlcmVuY2UpOgorICAgICAgICAoSlNDOjpZYXJy
OjpQYXJzZXI6OmNvbnRhaW5zSWxsZWdhbE5hbWVkUmVmZXJlbmNlKToKKyAgICAgICAgKEpTQzo6
WWFycjo6UGFyc2VyOjpyZXNldEZvclJlcGFyc2luZyk6CisgICAgICAgIChKU0M6OllhcnI6OnBh
cnNlKToKKyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjpDaGFyYWN0ZXJDbGFzc1BhcnNlckRl
bGVnYXRlOjppc1ZhbGlkTmFtZWRGb3J3YXJkUmVmZXJlbmNlKTogRGVsZXRlZC4KKyAgICAgICAg
KiB5YXJyL1lhcnJQYXR0ZXJuLmNwcDoKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyclBhdHRlcm5D
b25zdHJ1Y3Rvcjo6YXRvbUJhY2tSZWZlcmVuY2UpOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJy
UGF0dGVybkNvbnN0cnVjdG9yOjphdG9tTmFtZWRGb3J3YXJkUmVmZXJlbmNlKToKKyAgICAgICAg
KEpTQzo6WWFycjo6WWFyclBhdHRlcm46OmNvbXBpbGUpOgorICAgICAgICAoSlNDOjpZYXJyOjpZ
YXJyUGF0dGVybkNvbnN0cnVjdG9yOjpzYXZlVW5tYXRjaGVkTmFtZWRGb3J3YXJkUmVmZXJlbmNl
cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OllhcnI6OllhcnJQYXR0ZXJuQ29uc3RydWN0b3I6
OmlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UpOiBEZWxldGVkLgorICAgICAgICAqIHlhcnIv
WWFyclBhdHRlcm4uaDoKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyclBhdHRlcm46OnJlc2V0Rm9y
UmVwYXJzaW5nKToKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyclBhdHRlcm46OmNvbnRhaW5zSWxs
ZWdhbEJhY2tSZWZlcmVuY2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyUGF0
dGVybjo6Y29udGFpbnNJbGxlZ2FsTmFtZWRGb3J3YXJkUmVmZXJlbmNlcyk6IERlbGV0ZWQuCisg
ICAgICAgICogeWFyci9ZYXJyU3ludGF4Q2hlY2tlci5jcHA6CisgICAgICAgIChKU0M6OllhcnI6
OlN5bnRheENoZWNrZXI6OmF0b21OYW1lZEJhY2tSZWZlcmVuY2UpOgorICAgICAgICAoSlNDOjpZ
YXJyOjpTeW50YXhDaGVja2VyOjpyZXNldEZvclJlcGFyc2luZyk6CisgICAgICAgIChKU0M6Ollh
cnI6OlN5bnRheENoZWNrZXI6OmlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UpOiBEZWxldGVk
LgorCiAyMDIwLTAzLTIwICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4K
IAogICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JSZWdFeHBTcGxpdCBkb2Vzbid0
IGNoZWNrIGZvciBAQG1hdGNoIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjRlMThkZjExNjIxMTk2
ZDg0NDQ4MWYyNzY2M2M2NmE1YzhhMzdiNC4uNTMyMzQ4MDk5MzNkYzExZGQ5MzM1MmI4ZTE0YTBj
MjBhNjRiNGU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTAzLTIyICBBbGV4
ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBJbnZhbGlkIG51
bWVyaWMgYW5kIG5hbWVkIHJlZmVyZW5jZXMgc2hvdWxkIGJlIGVhcmx5IHN5bnRheCBlcnJvcnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODE3NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY291bnRz
IGZvciBZYXJyUGFyc2VyJ3MgRGVsZWdhdGUgaW50ZXJmYWNlIGNoYW5nZXMuCisgICAgICAgIHJl
c2V0Rm9yUmVwYXJzaW5nKCkgaXMgbmV2ZXIgY2FsbGVkIGJlY2F1c2UgVVJMRmlsdGVyUGFyc2Vy
IGRvZXMgbm90IHN1cHBvcnQgcmVmZXJlbmNlcy4KKworICAgICAgICAqIGNvbnRlbnRleHRlbnNp
b25zL1VSTEZpbHRlclBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5z
aW9uczo6UGF0dGVyblBhcnNlcjo6cmVzZXRGb3JSZXBhcnNpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6YWRkUGF0dGVybik6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UGF0dGVyblBhcnNlcjo6aXNWYWxpZE5h
bWVkRm9yd2FyZFJlZmVyZW5jZSk6IERlbGV0ZWQuCisKIDIwMjAtMDMtMjIgIFphbGFuIEJ1anRh
cyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBMYXlvdXQ6OkJveDo6Y29udGFp
bmluZ0Jsb2NrIHNob3VsZCByZXR1cm4gYSBjb25zdCBDb250YWluZXJCb3gmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmgKaW5kZXggZDY1NTA5MWMyZGQ1NWI5ODc0ODIzZGZk
YzA5NDhlMjc0Y2EyMzdmMy4uZjQzM2U4YzEzMTc1NTU3NjcwMzBiODk5NzJiM2Q5Yjg0Zjg2Mjdl
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaApAQCAtMSw1ICsxLDYg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQWxleGV5IFNodmF5a2EgPHNodmFp
a2FsZXNoQGdtYWlsLmNvbT4uCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEw
LDE3ICsxMSwxNyBAQAogICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKICNwcmFnbWEgb25jZQpAQCAtNDEsNyArNDIsNyBAQCB0ZW1w
bGF0ZTxjbGFzcyBEZWxlZ2F0ZSwgdHlwZW5hbWUgQ2hhclR5cGU+CiBjbGFzcyBQYXJzZXIgewog
cHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxjbGFzcyBGcmllbmREZWxlZ2F0ZT4KLSAgICBmcmllbmQg
RXJyb3JDb2RlIHBhcnNlKEZyaWVuZERlbGVnYXRlJiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBi
b29sIGlzVW5pY29kZSwgdW5zaWduZWQgYmFja1JlZmVyZW5jZUxpbWl0KTsKKyAgICBmcmllbmQg
RXJyb3JDb2RlIHBhcnNlKEZyaWVuZERlbGVnYXRlJiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBi
b29sIGlzVW5pY29kZSk7CiAKICAgICAvKgogICAgICAqIENoYXJhY3RlckNsYXNzUGFyc2VyRGVs
ZWdhdGU6CkBAIC0yMDAsNyArMjAxLDYgQEAgcHJpdmF0ZToKICAgICAgICAgTk9fUkVUVVJOX0RV
RV9UT19BU1NFUlQgdm9pZCBhc3NlcnRpb25Xb3JkQm91bmRhcnkoYm9vbCkgeyBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZv
aWQgYXRvbUJhY2tSZWZlcmVuY2UodW5zaWduZWQpIHsgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQogICAgICAgICBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGF0b21OYW1lZEJh
Y2tSZWZlcmVuY2UoY29uc3QgU3RyaW5nJikgeyBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9Ci0gICAgICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIGJvb2wgaXNWYWxpZE5hbWVkRm9y
d2FyZFJlZmVyZW5jZShjb25zdCBTdHJpbmcmKSB7IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KICAgICAgICAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBhdG9tTmFtZWRGb3J3
YXJkUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYpIHsgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogCiAgICAgcHJpdmF0ZToKQEAgLTIxNyw5ICsyMTcsOCBAQCBwcml2YXRlOgogICAgICAg
ICBVQ2hhcjMyIG1fY2hhcmFjdGVyOwogICAgIH07CiAKLSAgICBQYXJzZXIoRGVsZWdhdGUmIGRl
bGVnYXRlLCBjb25zdCBTdHJpbmcmIHBhdHRlcm4sIGJvb2wgaXNVbmljb2RlLCB1bnNpZ25lZCBi
YWNrUmVmZXJlbmNlTGltaXQpCisgICAgUGFyc2VyKERlbGVnYXRlJiBkZWxlZ2F0ZSwgY29uc3Qg
U3RyaW5nJiBwYXR0ZXJuLCBib29sIGlzVW5pY29kZSkKICAgICAgICAgOiBtX2RlbGVnYXRlKGRl
bGVnYXRlKQotICAgICAgICAsIG1fYmFja1JlZmVyZW5jZUxpbWl0KGJhY2tSZWZlcmVuY2VMaW1p
dCkKICAgICAgICAgLCBtX2RhdGEocGF0dGVybi5jaGFyYWN0ZXJzPENoYXJUeXBlPigpKQogICAg
ICAgICAsIG1fc2l6ZShwYXR0ZXJuLmxlbmd0aCgpKQogICAgICAgICAsIG1faXNVbmljb2RlKGlz
VW5pY29kZSkKQEAgLTM0MSwxNiArMzQwLDEyIEBAIHByaXZhdGU6CiAKICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBiYWNrUmVmZXJlbmNlID0gY29uc3VtZU51bWJlcigpOwogICAgICAgICAgICAg
ICAgIGlmIChiYWNrUmVmZXJlbmNlIDw9IG1fYmFja1JlZmVyZW5jZUxpbWl0KSB7CisgICAgICAg
ICAgICAgICAgICAgIG1fbWF4U2VlbkJhY2tSZWZlcmVuY2UgPSBzdGQ6Om1heChtX21heFNlZW5C
YWNrUmVmZXJlbmNlLCBiYWNrUmVmZXJlbmNlKTsKICAgICAgICAgICAgICAgICAgICAgZGVsZWdh
dGUuYXRvbUJhY2tSZWZlcmVuY2UoYmFja1JlZmVyZW5jZSk7CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIHJlc3RvcmVTdGF0
ZShzdGF0ZSk7Ci0KLSAgICAgICAgICAgICAgICBpZiAobV9pc1VuaWNvZGUpIHsKLSAgICAgICAg
ICAgICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkludmFsaWRCYWNrcmVmZXJlbmNl
OwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBOb3QgYSBiYWNrcmVmZXJlbmNlLCBhbmQg
bm90IG9jdGFsLiBKdXN0IGEgbnVtYmVyLgpAQCAtNDQyLDI4ICs0MzcsMjcgQEAgcHJpdmF0ZToK
ICAgICAgICAgY2FzZSAnayc6IHsKICAgICAgICAgICAgIGNvbnN1bWUoKTsKICAgICAgICAgICAg
IFBhcnNlU3RhdGUgc3RhdGUgPSBzYXZlU3RhdGUoKTsKLSAgICAgICAgICAgIGlmICghYXRFbmRP
ZlBhdHRlcm4oKSAmJiAhaW5DaGFyYWN0ZXJDbGFzcykgewotICAgICAgICAgICAgICAgIGlmIChj
b25zdW1lKCkgPT0gJzwnKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gZ3JvdXBOYW1lID0g
dHJ5Q29uc3VtZUdyb3VwTmFtZSgpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXBOYW1l
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9jYXB0dXJlR3JvdXBOYW1lcy5jb250
YWlucyhncm91cE5hbWUudmFsdWUoKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZWxlZ2F0ZS5hdG9tTmFtZWRCYWNrUmVmZXJlbmNlKGdyb3VwTmFtZS52YWx1ZSgpKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRl
bGVnYXRlLmlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UoZ3JvdXBOYW1lLnZhbHVlKCkpKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZWdhdGUuYXRvbU5hbWVkRm9yd2FyZFJl
ZmVyZW5jZShncm91cE5hbWUudmFsdWUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWluQ2hh
cmFjdGVyQ2xhc3MgJiYgdHJ5Q29uc3VtZSgnPCcpKSB7CisgICAgICAgICAgICAgICAgYXV0byBn
cm91cE5hbWUgPSB0cnlDb25zdW1lR3JvdXBOYW1lKCk7CisgICAgICAgICAgICAgICAgaWYgKGdy
b3VwTmFtZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobV9jYXB0dXJlR3JvdXBOYW1lcy5j
b250YWlucyhncm91cE5hbWUudmFsdWUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRl
bGVnYXRlLmF0b21OYW1lZEJhY2tSZWZlcmVuY2UoZ3JvdXBOYW1lLnZhbHVlKCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgaWYgKG1faXNVbmljb2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBt
X2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52YWxpZEJhY2tyZWZlcmVuY2U7CisKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKG1faXNOYW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBtX2ZvcndhcmRSZWZlcmVuY2VOYW1lcy5hZGQoZ3JvdXBOYW1l
LnZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVsZWdhdGUuYXRvbU5hbWVkRm9y
d2FyZFJlZmVyZW5jZShncm91cE5hbWUudmFsdWUoKSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KKwogICAgICAgICAgICAgcmVzdG9yZVN0YXRlKHN0YXRlKTsKLSAgICAgICAgICAg
IGRlbGVnYXRlLmF0b21QYXR0ZXJuQ2hhcmFjdGVyKCdrJyk7CisgICAgICAgICAgICBpZiAoIWlz
SWRlbnRpdHlFc2NhcGVBbkVycm9yKCdrJykpIHsKKyAgICAgICAgICAgICAgICBkZWxlZ2F0ZS5h
dG9tUGF0dGVybkNoYXJhY3RlcignaycpOworICAgICAgICAgICAgICAgIG1fa0lkZW50aXR5RXNj
YXBlU2VlbiA9IHRydWU7IAorICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KIApAQCAtNjk3LDYgKzY5MSw5IEBAIHByaXZhdGU6CiAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgbV9kZWxlZ2F0ZS5hdG9tUGFyZW50aGVzZXNTdWJwYXR0ZXJuQmVnaW4oKTsKIAor
ICAgICAgICBpZiAodHlwZSA9PSBQYXJlbnRoZXNlc1R5cGU6OlN1YnBhdHRlcm4pCisgICAgICAg
ICAgICArK21fbnVtU3VicGF0dGVybnM7CisKICAgICAgICAgbV9wYXJlbnRoZXNlc1N0YWNrLmFw
cGVuZCh0eXBlKTsKICAgICB9CiAKQEAgLTg4NCwxNCArODgxLDg5IEBAIHByaXZhdGU6CiAgICAg
RXJyb3JDb2RlIHBhcnNlKCkKICAgICB7CiAgICAgICAgIGlmIChtX3NpemUgPiBNQVhfUEFUVEVS
Tl9TSVpFKQotICAgICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OlBhdHRlcm5Ub29M
YXJnZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcGFyc2VUb2tlbnMoKTsKLSAgICAgICAg
QVNTRVJUKGF0RW5kT2ZQYXR0ZXJuKCkgfHwgaGFzRXJyb3IobV9lcnJvckNvZGUpKTsKLSAgICAg
ICAgCisgICAgICAgICAgICByZXR1cm4gRXJyb3JDb2RlOjpQYXR0ZXJuVG9vTGFyZ2U7CisKKyAg
ICAgICAgcGFyc2VUb2tlbnMoKTsKKworICAgICAgICBpZiAoIWhhc0Vycm9yKG1fZXJyb3JDb2Rl
KSkgeworICAgICAgICAgICAgQVNTRVJUKGF0RW5kT2ZQYXR0ZXJuKCkpOworICAgICAgICAgICAg
aGFuZGxlSWxsZWdhbFJlZmVyZW5jZXMoKTsKKyAgICAgICAgICAgIEFTU0VSVChhdEVuZE9mUGF0
dGVybigpKTsKKyAgICAgICAgfQorCiAgICAgICAgIHJldHVybiBtX2Vycm9yQ29kZTsKICAgICB9
CiAKKyAgICB2b2lkIGhhbmRsZUlsbGVnYWxSZWZlcmVuY2VzKCkKKyAgICB7CisgICAgICAgIGJv
b2wgc2hvdWxkUmVwYXJzZSA9IGZhbHNlOworCisgICAgICAgIGlmIChjb250YWluc0lsbGVnYWxO
dW1lcmljUmVmZXJlbmNlKCkpIHsKKyAgICAgICAgICAgIGlmIChtX2lzVW5pY29kZSkgeworICAg
ICAgICAgICAgICAgIG1fZXJyb3JDb2RlID0gRXJyb3JDb2RlOjpJbnZhbGlkQmFja3JlZmVyZW5j
ZTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IG1fYmFja1JlZmVyZW5jZUxpbWl0ID0gbV9udW1TdWJwYXR0ZXJuczsKKyAgICAgICAgICAgIHNo
b3VsZFJlcGFyc2UgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fa0lkZW50aXR5
RXNjYXBlU2VlbiAmJiAhbV9jYXB0dXJlR3JvdXBOYW1lcy5pc0VtcHR5KCkpIHsKKyAgICAgICAg
ICAgIG1fZXJyb3JDb2RlID0gRXJyb3JDb2RlOjpJbnZhbGlkQmFja3JlZmVyZW5jZTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjb250YWluc0lsbGVnYWxO
YW1lZFJlZmVyZW5jZSgpKSB7CisgICAgICAgICAgICBpZiAobV9pc1VuaWNvZGUgfHwgIW1fY2Fw
dHVyZUdyb3VwTmFtZXMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgbV9lcnJvckNvZGUg
PSBFcnJvckNvZGU6OkludmFsaWRCYWNrcmVmZXJlbmNlOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9pc05hbWVkRm9yd2FyZFJlZmVyZW5j
ZUFsbG93ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHNob3VsZFJlcGFyc2UgPSB0cnVlOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKHNob3VsZFJlcGFyc2UpIHsKKyAgICAgICAgICAgIHJlc2V0
Rm9yUmVwYXJzaW5nKCk7CisgICAgICAgICAgICBwYXJzZVRva2VucygpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgYm9vbCBjb250YWluc0lsbGVnYWxOdW1lcmljUmVmZXJlbmNlKCkKKyAgICB7
CisgICAgICAgIHJldHVybiBtX21heFNlZW5CYWNrUmVmZXJlbmNlID4gbV9udW1TdWJwYXR0ZXJu
czsKKyAgICB9CisKKyAgICBib29sIGNvbnRhaW5zSWxsZWdhbE5hbWVkUmVmZXJlbmNlKCkKKyAg
ICB7CisgICAgICAgIGlmIChtX2ZvcndhcmRSZWZlcmVuY2VOYW1lcy5pc0VtcHR5KCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKG1fY2FwdHVyZUdyb3VwTmFtZXMu
aXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgZm9yIChhdXRv
JiBlbnRyeSA6IG1fZm9yd2FyZFJlZmVyZW5jZU5hbWVzKSB7CisgICAgICAgICAgICBpZiAoIW1f
Y2FwdHVyZUdyb3VwTmFtZXMuY29udGFpbnMoZW50cnkpKQorICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IHZvaWQgcmVzZXRGb3JSZXBhcnNpbmcoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFoYXNFcnJv
cihtX2Vycm9yQ29kZSkpOworCisgICAgICAgIG1fZGVsZWdhdGUucmVzZXRGb3JSZXBhcnNpbmco
KTsKKyAgICAgICAgbV9pbmRleCA9IDA7CisgICAgICAgIG1fbnVtU3VicGF0dGVybnMgPSAwOwor
ICAgICAgICBtX21heFNlZW5CYWNrUmVmZXJlbmNlID0gMDsKKyAgICAgICAgbV9rSWRlbnRpdHlF
c2NhcGVTZWVuID0gZmFsc2U7CisgICAgICAgIG1fcGFyZW50aGVzZXNTdGFjay5jbGVhcigpOwor
ICAgICAgICBtX2NhcHR1cmVHcm91cE5hbWVzLmNsZWFyKCk7CisgICAgICAgIG1fZm9yd2FyZFJl
ZmVyZW5jZU5hbWVzLmNsZWFyKCk7CisgICAgfQorCiAgICAgLy8gTWlzYyBoZWxwZXIgZnVuY3Rp
b25zOgogCiAgICAgdHlwZWRlZiB1bnNpZ25lZCBQYXJzZVN0YXRlOwpAQCAtMTE1NiwxNCArMTIy
OCwxOSBAQCBwcml2YXRlOgogICAgIGVudW0gY2xhc3MgUGFyZW50aGVzZXNUeXBlIDogdWludDhf
dCB7IFN1YnBhdHRlcm4sIEFzc2VydGlvbiB9OwogCiAgICAgRGVsZWdhdGUmIG1fZGVsZWdhdGU7
Ci0gICAgdW5zaWduZWQgbV9iYWNrUmVmZXJlbmNlTGltaXQ7CiAgICAgRXJyb3JDb2RlIG1fZXJy
b3JDb2RlIHsgRXJyb3JDb2RlOjpOb0Vycm9yIH07CiAgICAgY29uc3QgQ2hhclR5cGUqIG1fZGF0
YTsKICAgICB1bnNpZ25lZCBtX3NpemU7CiAgICAgdW5zaWduZWQgbV9pbmRleCB7IDAgfTsKKyAg
ICB1bnNpZ25lZCBtX251bVN1YnBhdHRlcm5zIHsgMCB9OworICAgIHVuc2lnbmVkIG1fbWF4U2Vl
bkJhY2tSZWZlcmVuY2UgeyAwIH07CisgICAgdW5zaWduZWQgbV9iYWNrUmVmZXJlbmNlTGltaXQg
eyBxdWFudGlmeUluZmluaXRlIH07CiAgICAgYm9vbCBtX2lzVW5pY29kZTsKKyAgICBib29sIG1f
aXNOYW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkIHsgdHJ1ZSB9OworICAgIGJvb2wgbV9rSWRl
bnRpdHlFc2NhcGVTZWVuIHsgZmFsc2UgfTsKICAgICBWZWN0b3I8UGFyZW50aGVzZXNUeXBlLCAx
Nj4gbV9wYXJlbnRoZXNlc1N0YWNrOwogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX2NhcHR1cmVHcm91
cE5hbWVzOworICAgIEhhc2hTZXQ8U3RyaW5nPiBtX2ZvcndhcmRSZWZlcmVuY2VOYW1lczsKIAog
ICAgIC8vIERlcml2ZWQgYnkgZW1waXJpY2FsIHRlc3Rpbmcgb2YgY29tcGlsZSB0aW1lIGluIFBD
UkUgYW5kIFdSRUMuCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBNQVhfUEFUVEVSTl9T
SVpFID0gMTAyNCAqIDEwMjQ7CkBAIC0xMTk1LDEzICsxMjcyLDE0IEBAIHByaXZhdGU6CiAgKiAg
ICB2b2lkIGF0b21QYXJlbnRoZXNlc0VuZCgpOwogICogICAgdm9pZCBhdG9tQmFja1JlZmVyZW5j
ZSh1bnNpZ25lZCBzdWJwYXR0ZXJuSWQpOwogICogICAgdm9pZCBhdG9tTmFtZWRCYWNrUmVmZXJl
bmNlKGNvbnN0IFN0cmluZyYgc3VicGF0dGVybk5hbWUpOwotICogICAgYm9vbCBpc1ZhbGlkTmFt
ZWRGb3J3YXJkUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgc3VicGF0dGVybk5hbWUpOwogICogICAg
dm9pZCBhdG9tTmFtZWRGb3J3YXJkUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgc3VicGF0dGVybk5h
bWUpOwogICoKICAqICAgIHZvaWQgcXVhbnRpZnlBdG9tKHVuc2lnbmVkIG1pbiwgdW5zaWduZWQg
bWF4LCBib29sIGdyZWVkeSk7CiAgKgogICogICAgdm9pZCBkaXNqdW5jdGlvbigpOwogICoKKyAq
ICAgIHZvaWQgcmVzZXRGb3JSZXBhcnNpbmcoKTsKKyAqCiAgKiBUaGUgcmVndWxhciBleHByZXNz
aW9uIGlzIGRlc2NyaWJlZCBieSBhIHNlcXVlbmNlIG9mIGFzc2VydGlvbiooKSBhbmQgYXRvbSoo
KQogICogY2FsbGJhY2tzIHRvIHRoZSBkZWxlZ2F0ZSwgZGVzY3JpYmluZyB0aGUgdGVybXMgaW4g
dGhlIHJlZ3VsYXIgZXhwcmVzc2lvbi4KICAqIEZvbGxvd2luZyBhbiBhdG9tIGEgcXVhbnRpZnlB
dG9tKCkgY2FsbCBtYXkgb2NjdXIgdG8gaW5kaWNhdGUgdGhhdCB0aGUgcHJldmlvdXMKQEAgLTEy
MzIsMTEgKzEzMTAsMTEgQEAgcHJpdmF0ZToKICAqLwogCiB0ZW1wbGF0ZTxjbGFzcyBEZWxlZ2F0
ZT4KLUVycm9yQ29kZSBwYXJzZShEZWxlZ2F0ZSYgZGVsZWdhdGUsIGNvbnN0IFN0cmluZyYgcGF0
dGVybiwgYm9vbCBpc1VuaWNvZGUsIHVuc2lnbmVkIGJhY2tSZWZlcmVuY2VMaW1pdCA9IHF1YW50
aWZ5SW5maW5pdGUpCitFcnJvckNvZGUgcGFyc2UoRGVsZWdhdGUmIGRlbGVnYXRlLCBjb25zdCBT
dHJpbmcmIHBhdHRlcm4sIGJvb2wgaXNVbmljb2RlKQogewogICAgIGlmIChwYXR0ZXJuLmlzOEJp
dCgpKQotICAgICAgICByZXR1cm4gUGFyc2VyPERlbGVnYXRlLCBMQ2hhcj4oZGVsZWdhdGUsIHBh
dHRlcm4sIGlzVW5pY29kZSwgYmFja1JlZmVyZW5jZUxpbWl0KS5wYXJzZSgpOwotICAgIHJldHVy
biBQYXJzZXI8RGVsZWdhdGUsIFVDaGFyPihkZWxlZ2F0ZSwgcGF0dGVybiwgaXNVbmljb2RlLCBi
YWNrUmVmZXJlbmNlTGltaXQpLnBhcnNlKCk7CisgICAgICAgIHJldHVybiBQYXJzZXI8RGVsZWdh
dGUsIExDaGFyPihkZWxlZ2F0ZSwgcGF0dGVybiwgaXNVbmljb2RlKS5wYXJzZSgpOworICAgIHJl
dHVybiBQYXJzZXI8RGVsZWdhdGUsIFVDaGFyPihkZWxlZ2F0ZSwgcGF0dGVybiwgaXNVbmljb2Rl
KS5wYXJzZSgpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6WWFycgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uY3BwCmluZGV4IGM1MDgyMDg1NjJhNzUyN2E2MGY1
YzMwM2QxY2NkYjE3ZTFmMDZhZDIuLjk3ZmI4Njg0N2MwYTIzOTJjMGM1YWRjN2Y4MjMyMWMzZTY1
MmNiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXR0ZXJu
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGF0dGVybi5jcHAKQEAg
LTQ2MiwxNiArNDYyLDYgQEAgcHVibGljOgogICAgICAgICBtX3BhdHRlcm4ubV9kaXNqdW5jdGlv
bnMuYXBwZW5kKFdURk1vdmUoYm9keSkpOwogICAgIH0KIAotICAgIHZvaWQgc2F2ZVVubWF0Y2hl
ZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMoKQotICAgIHsKLSAgICAgICAgbV91bm1hdGNoZWROYW1l
ZEZvcndhcmRSZWZlcmVuY2VzLnNocmluaygwKTsKLSAgICAgICAgCi0gICAgICAgIGZvciAoYXV0
byYgZW50cnkgOiBtX3BhdHRlcm4ubV9uYW1lZEZvcndhcmRSZWZlcmVuY2VzKSB7Ci0gICAgICAg
ICAgICBpZiAoIW1fcGF0dGVybi5tX2NhcHR1cmVHcm91cE5hbWVzLmNvbnRhaW5zKGVudHJ5KSkK
LSAgICAgICAgICAgICAgICBtX3VubWF0Y2hlZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMuYXBwZW5k
KGVudHJ5KTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIHZvaWQgYXNzZXJ0aW9uQk9MKCkKICAg
ICB7CiAgICAgICAgIGlmICghbV9hbHRlcm5hdGl2ZS0+bV90ZXJtcy5zaXplKCkgJiYgIW1faW52
ZXJ0UGFyZW50aGV0aWNhbEFzc2VydGlvbikgewpAQCAtNjU3LDcgKzY0Nyw2IEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIEFTU0VSVChzdWJwYXR0ZXJuSWQpOwogICAgICAgICBtX3BhdHRlcm4u
bV9jb250YWluc0JhY2tyZWZlcmVuY2VzID0gdHJ1ZTsKLSAgICAgICAgbV9wYXR0ZXJuLm1fbWF4
QmFja1JlZmVyZW5jZSA9IHN0ZDo6bWF4KG1fcGF0dGVybi5tX21heEJhY2tSZWZlcmVuY2UsIHN1
YnBhdHRlcm5JZCk7CiAKICAgICAgICAgaWYgKHN1YnBhdHRlcm5JZCA+IG1fcGF0dGVybi5tX251
bVN1YnBhdHRlcm5zKSB7CiAgICAgICAgICAgICBtX2FsdGVybmF0aXZlLT5tX3Rlcm1zLmFwcGVu
ZChQYXR0ZXJuVGVybTo6Rm9yd2FyZFJlZmVyZW5jZSgpKTsKQEAgLTY4NywxNCArNjc2LDggQEAg
cHVibGljOgogICAgICAgICBhdG9tQmFja1JlZmVyZW5jZShtX3BhdHRlcm4ubV9uYW1lZEdyb3Vw
VG9QYXJlbkluZGV4LmdldChzdWJwYXR0ZXJuTmFtZSkpOwogICAgIH0KIAotICAgIGJvb2wgaXNW
YWxpZE5hbWVkRm9yd2FyZFJlZmVyZW5jZShjb25zdCBTdHJpbmcmIHN1YnBhdHRlcm5OYW1lKQor
ICAgIHZvaWQgYXRvbU5hbWVkRm9yd2FyZFJlZmVyZW5jZShjb25zdCBTdHJpbmcmKQogICAgIHsK
LSAgICAgICAgcmV0dXJuICFtX3VubWF0Y2hlZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMuY29udGFp
bnMoc3VicGF0dGVybk5hbWUpOwotICAgIH0KLQotICAgIHZvaWQgYXRvbU5hbWVkRm9yd2FyZFJl
ZmVyZW5jZShjb25zdCBTdHJpbmcmIHN1YnBhdHRlcm5OYW1lKQotICAgIHsKLSAgICAgICAgbV9w
YXR0ZXJuLm1fbmFtZWRGb3J3YXJkUmVmZXJlbmNlcy5hcHBlbmRJZk5vdENvbnRhaW5zKHN1YnBh
dHRlcm5OYW1lKTsKICAgICAgICAgbV9hbHRlcm5hdGl2ZS0+bV90ZXJtcy5hcHBlbmQoUGF0dGVy
blRlcm06OkZvcndhcmRSZWZlcmVuY2UoKSk7CiAgICAgfQogICAgIApAQCAtMTEzMCw3ICsxMTEz
LDYgQEAgcHJpdmF0ZToKICAgICBZYXJyUGF0dGVybiYgbV9wYXR0ZXJuOwogICAgIFBhdHRlcm5B
bHRlcm5hdGl2ZSogbV9hbHRlcm5hdGl2ZTsKICAgICBDaGFyYWN0ZXJDbGFzc0NvbnN0cnVjdG9y
IG1fY2hhcmFjdGVyQ2xhc3NDb25zdHJ1Y3RvcjsKLSAgICBWZWN0b3I8U3RyaW5nPiBtX3VubWF0
Y2hlZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXM7CiAgICAgdm9pZCogbV9zdGFja0xpbWl0OwogICAg
IEVycm9yQ29kZSBtX2Vycm9yIHsgRXJyb3JDb2RlOjpOb0Vycm9yIH07CiAgICAgYm9vbCBtX2lu
dmVydENoYXJhY3RlckNsYXNzOwpAQCAtMTE0NiwyMyArMTEyOCw2IEBAIEVycm9yQ29kZSBZYXJy
UGF0dGVybjo6Y29tcGlsZShjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIHZvaWQqIHN0YWNr
TGltaXQpCiAgICAgICAgIGlmIChoYXNFcnJvcihlcnJvcikpCiAgICAgICAgICAgICByZXR1cm4g
ZXJyb3I7CiAgICAgfQotICAgIAotICAgIC8vIElmIHRoZSBwYXR0ZXJuIGNvbnRhaW5zIGlsbGVn
YWwgYmFja3JlZmVyZW5jZXMgcmVzZXQgJiByZXBhcnNlLgotICAgIC8vIFF1b3RpbmcgTmV0c2Nh
cGUncyAiV2hhdCdzIG5ldyBpbiBKYXZhU2NyaXB0IDEuMiIsCi0gICAgLy8gICAgICAiTm90ZTog
aWYgdGhlIG51bWJlciBvZiBsZWZ0IHBhcmVudGhlc2VzIGlzIGxlc3MgdGhhbiB0aGUgbnVtYmVy
IHNwZWNpZmllZAotICAgIC8vICAgICAgIGluIFwjLCB0aGUgXCMgaXMgdGFrZW4gYXMgYW4gb2N0
YWwgZXNjYXBlIGFzIGRlc2NyaWJlZCBpbiB0aGUgbmV4dCByb3cuIgotICAgIGlmIChjb250YWlu
c0lsbGVnYWxCYWNrUmVmZXJlbmNlKCkgfHwgY29udGFpbnNJbGxlZ2FsTmFtZWRGb3J3YXJkUmVm
ZXJlbmNlcygpKSB7Ci0gICAgICAgIGlmICh1bmljb2RlKCkpCi0gICAgICAgICAgICByZXR1cm4g
RXJyb3JDb2RlOjpJbnZhbGlkQmFja3JlZmVyZW5jZTsKLQotICAgICAgICB1bnNpZ25lZCBudW1T
dWJwYXR0ZXJucyA9IG1fbnVtU3VicGF0dGVybnM7Ci0KLSAgICAgICAgY29uc3RydWN0b3Iuc2F2
ZVVubWF0Y2hlZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMoKTsKLSAgICAgICAgY29uc3RydWN0b3Iu
cmVzZXRGb3JSZXBhcnNpbmcoKTsKLSAgICAgICAgRXJyb3JDb2RlIGVycm9yID0gcGFyc2UoY29u
c3RydWN0b3IsIHBhdHRlcm5TdHJpbmcsIHVuaWNvZGUoKSwgbnVtU3VicGF0dGVybnMpOwotICAg
ICAgICBBU1NFUlRfVU5VU0VEKGVycm9yLCAhaGFzRXJyb3IoZXJyb3IpKTsKLSAgICAgICAgQVNT
RVJUKG51bVN1YnBhdHRlcm5zID09IG1fbnVtU3VicGF0dGVybnMpOwotICAgIH0KIAogICAgIGNv
bnN0cnVjdG9yLmNoZWNrRm9yVGVybWluYWxQYXJlbnRoZXNlcygpOwogICAgIGNvbnN0cnVjdG9y
Lm9wdGltaXplRG90U3RhcldyYXBwZWRFeHByZXNzaW9ucygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1lhcnJQYXR0ZXJuLmgKaW5kZXggZjZiMjJlNTdlOGYwYjA5ZDU1NDhlYmIxNjQxMjYy
ZjYwMmMwM2I3Ny4uMjc3ZjIwYjc0N2EyZWE5MGRhZGI2YjExYmE0Y2FjZTA4YTE4NDg2OSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGF0dGVybi5oCkBAIC0zOTEsNyArMzkxLDYg
QEAgc3RydWN0IFlhcnJQYXR0ZXJuIHsKICAgICB2b2lkIHJlc2V0Rm9yUmVwYXJzaW5nKCkKICAg
ICB7CiAgICAgICAgIG1fbnVtU3VicGF0dGVybnMgPSAwOwotICAgICAgICBtX21heEJhY2tSZWZl
cmVuY2UgPSAwOwogICAgICAgICBtX2luaXRpYWxTdGFydFZhbHVlRnJhbWVMb2NhdGlvbiA9IDA7
CiAKICAgICAgICAgbV9jb250YWluc0JhY2tyZWZlcmVuY2VzID0gZmFsc2U7CkBAIC00MTUsMjUg
KzQxNCw2IEBAIHN0cnVjdCBZYXJyUGF0dGVybiB7CiAgICAgICAgIG1fZGlzanVuY3Rpb25zLmNs
ZWFyKCk7CiAgICAgICAgIG1fdXNlckNoYXJhY3RlckNsYXNzZXMuY2xlYXIoKTsKICAgICAgICAg
bV9jYXB0dXJlR3JvdXBOYW1lcy5zaHJpbmsoMCk7Ci0gICAgICAgIG1fbmFtZWRGb3J3YXJkUmVm
ZXJlbmNlcy5zaHJpbmsoMCk7Ci0gICAgfQotCi0gICAgYm9vbCBjb250YWluc0lsbGVnYWxCYWNr
UmVmZXJlbmNlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX21heEJhY2tSZWZlcmVuY2UgPiBt
X251bVN1YnBhdHRlcm5zOwotICAgIH0KLSAgICAKLSAgICBib29sIGNvbnRhaW5zSWxsZWdhbE5h
bWVkRm9yd2FyZFJlZmVyZW5jZXMoKQotICAgIHsKLSAgICAgICAgaWYgKG1fbmFtZWRGb3J3YXJk
UmVmZXJlbmNlcy5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAg
ICAgZm9yIChhdXRvJiBlbnRyeSA6IG1fbmFtZWRGb3J3YXJkUmVmZXJlbmNlcykgewotICAgICAg
ICAgICAgaWYgKCFtX2NhcHR1cmVHcm91cE5hbWVzLmNvbnRhaW5zKGVudHJ5KSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKICAgICBib29sIGNvbnRhaW5zVW5zaWduZWRMZW5ndGhQYXR0ZXJuKCkKQEAgLTU1
NSwxMyArNTM1LDExIEBAIHN0cnVjdCBZYXJyUGF0dGVybiB7CiAgICAgYm9vbCBtX3NhdmVJbml0
aWFsU3RhcnRWYWx1ZSA6IDE7CiAgICAgT3B0aW9uU2V0PEZsYWdzPiBtX2ZsYWdzOwogICAgIHVu
c2lnbmVkIG1fbnVtU3VicGF0dGVybnMgeyAwIH07Ci0gICAgdW5zaWduZWQgbV9tYXhCYWNrUmVm
ZXJlbmNlIHsgMCB9OwogICAgIHVuc2lnbmVkIG1faW5pdGlhbFN0YXJ0VmFsdWVGcmFtZUxvY2F0
aW9uIHsgMCB9OwogICAgIFBhdHRlcm5EaXNqdW5jdGlvbiogbV9ib2R5OwogICAgIFZlY3Rvcjxz
dGQ6OnVuaXF1ZV9wdHI8UGF0dGVybkRpc2p1bmN0aW9uPiwgND4gbV9kaXNqdW5jdGlvbnM7CiAg
ICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDaGFyYWN0ZXJDbGFzcz4+IG1fdXNlckNoYXJhY3Rl
ckNsYXNzZXM7CiAgICAgVmVjdG9yPFN0cmluZz4gbV9jYXB0dXJlR3JvdXBOYW1lczsKLSAgICBW
ZWN0b3I8U3RyaW5nPiBtX25hbWVkRm9yd2FyZFJlZmVyZW5jZXM7CiAgICAgSGFzaE1hcDxTdHJp
bmcsIHVuc2lnbmVkPiBtX25hbWVkR3JvdXBUb1BhcmVuSW5kZXg7CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyU3ludGF4Q2hlY2tlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyU3ludGF4Q2hlY2tlci5jcHAKaW5kZXgg
ODZiMGU2N2QxNDZjMjYxNzY0NmQ4YzYzMjQ2Y2M2MjQ1YjQ3YjIyZC4uM2M3YTVkYzM0ODJmZjJl
NzMxZGQ3ZjgyZWY2Y2Q2ZjA1ODMyNDAwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3lhcnIvWWFyclN5bnRheENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1lhcnJTeW50YXhDaGVja2VyLmNwcApAQCAtNDksMTAgKzQ5LDEwIEBAIHB1YmxpYzoK
ICAgICB2b2lkIGF0b21QYXJlbnRoZXNlc0VuZCgpIHt9CiAgICAgdm9pZCBhdG9tQmFja1JlZmVy
ZW5jZSh1bnNpZ25lZCkge30KICAgICB2b2lkIGF0b21OYW1lZEJhY2tSZWZlcmVuY2UoY29uc3Qg
U3RyaW5nJikge30KLSAgICBib29sIGlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UoY29uc3Qg
U3RyaW5nJikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgYXRvbU5hbWVkRm9yd2FyZFJlZmVy
ZW5jZShjb25zdCBTdHJpbmcmKSB7fQogICAgIHZvaWQgcXVhbnRpZnlBdG9tKHVuc2lnbmVkLCB1
bnNpZ25lZCwgYm9vbCkge30KICAgICB2b2lkIGRpc2p1bmN0aW9uKCkge30KKyAgICB2b2lkIHJl
c2V0Rm9yUmVwYXJzaW5nKCkge30KIH07CiAKIEVycm9yQ29kZSBjaGVja1N5bnRheChjb25zdCBT
dHJpbmcmIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFyc2VyLmNwcAppbmRleCBmMDQyMGQ1
MTU4YzczNGNmMTA1MDRjN2E3YzRiYzBmMjQyNGQ4MzFhLi4xMWQ1M2I4YzdjZjUzMWY4ODE5N2Nj
NjBjM2U1YWIzN2Y2YTBkODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHAKQEAgLTEzNCwxMSArMTM0LDYgQEAgcHVibGlj
OgogICAgICAgICBmYWlsKFVSTEZpbHRlclBhcnNlcjo6QmFja1JlZmVyZW5jZSk7CiAgICAgfQog
Ci0gICAgYm9vbCBpc1ZhbGlkTmFtZWRGb3J3YXJkUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYpCi0g
ICAgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgdm9pZCBhdG9tTmFtZWRG
b3J3YXJkUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYpCiAgICAgewogICAgICAgICBmYWlsKFVSTEZp
bHRlclBhcnNlcjo6Rm9yd2FyZFJlZmVyZW5jZSk7CkBAIC0yNDksNiArMjQ0LDExIEBAIHB1Ymxp
YzoKICAgICAgICAgZmFpbChVUkxGaWx0ZXJQYXJzZXI6OkRpc2p1bmN0aW9uKTsKICAgICB9CiAK
KyAgICBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIHJlc2V0Rm9yUmVwYXJzaW5nKCkKKyAg
ICB7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCiBwcml2
YXRlOgogICAgIGJvb2wgaGFzRXJyb3IoKSBjb25zdAogICAgIHsKQEAgLTM1OCw3ICszNTgsNyBA
QCBVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzIFVSTEZpbHRlclBhcnNlcjo6YWRkUGF0dGVy
bihjb25zdCBTdHJpbmcmIHBhdHRlcm4sCiAKICAgICBQYXJzZVN0YXR1cyBzdGF0dXMgPSBPazsK
ICAgICBQYXR0ZXJuUGFyc2VyIHBhdHRlcm5QYXJzZXIocGF0dGVybklzQ2FzZVNlbnNpdGl2ZSk7
Ci0gICAgaWYgKCFKU0M6OllhcnI6Omhhc0Vycm9yKEpTQzo6WWFycjo6cGFyc2UocGF0dGVyblBh
cnNlciwgcGF0dGVybiwgZmFsc2UsIDApKSkKKyAgICBpZiAoIUpTQzo6WWFycjo6aGFzRXJyb3Io
SlNDOjpZYXJyOjpwYXJzZShwYXR0ZXJuUGFyc2VyLCBwYXR0ZXJuLCBmYWxzZSkpKQogICAgICAg
ICBwYXR0ZXJuUGFyc2VyLmZpbmFsaXplKHBhdHRlcm5JZCwgbV9jb21iaW5lZFVSTEZpbHRlcnMp
OwogICAgIGVsc2UKICAgICAgICAgc3RhdHVzID0gWWFyckVycm9yOwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA4NGZlZGQ4ZmI2ZDlmOWQx
Yzg5NmRmNDkyOTA2ZmJkM2I1NGNhNWVlLi5lYTdiMGVhNDBjMmJkYmY2MTc3YjdlZjRkMjE2YmYy
ZjBmYWIxNTdiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTIyICBBbGV4ZXkgU2h2YXlrYSAgPHNo
dmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBJbnZhbGlkIG51bWVyaWMgYW5kIG5hbWVk
IHJlZmVyZW5jZXMgc2hvdWxkIGJlIGVhcmx5IHN5bnRheCBlcnJvcnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODE3NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMu
eWFtbDogTWFyayA0NCB0ZXN0IGNhc2VzIGFzIHBhc3NpbmcuCisKIDIwMjAtMDMtMjAgIFJvc3Mg
S2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIGhhc09ic2VydmFi
bGVTaWRlRWZmZWN0c0ZvclJlZ0V4cFNwbGl0IGRvZXNuJ3QgY2hlY2sgZm9yIEBAbWF0Y2ggb3Zl
cnJpZGUKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pT
VGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAppbmRleCA1YjJiZWZhOGNlZmJlMzc2ZjJk
MzU1MzY4MGZlODg2OGE5NWQ5NjUwLi5iMzIyMTEzY2U5MzEyNmU3MjQ3ZGFiZjcyMDMwMmRhOTdh
ZTBkNDc3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysr
IGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC0xNTI1LDkgKzE1MjUsNiBA
QCB0ZXN0L2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL3Rlc3QvUzE1LjEwLjYuM19BMV9UMjIu
anM6CiB0ZXN0L2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL3VuaWNvZGUvY3Jvc3MtcmVhbG0u
anM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IGNyb3NzLXJlYWxtIFJlZ0V4cC5wcm90b3R5
cGUgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2Fz
IHRocm93biBhdCBhbGwnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBjcm9zcy1yZWFs
bSBSZWdFeHAucHJvdG90eXBlIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQg
bm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Vu
aWNvZGVfcmVzdHJpY3RlZF9pZGVudGl0eV9lc2NhcGVfYWxwaGEuanM6Ci0gIGRlZmF1bHQ6ICJU
ZXN0MjYyRXJyb3I6IElkZW50aXR5RXNjYXBlIGluIEF0b21Fc2NhcGU6ICdrJyBFeHBlY3RlZCBh
IFN5bnRheEVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQg
YWxsIgotICBzdHJpY3QgbW9kZTogIlRlc3QyNjJFcnJvcjogSWRlbnRpdHlFc2NhcGUgaW4gQXRv
bUVzY2FwZTogJ2snIEV4cGVjdGVkIGEgU3ludGF4RXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBl
eGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwiCiB0ZXN0L2J1aWx0LWlucy9SZWdFeHAvdW5pY29k
ZV9yZXN0cmljdGVkX29jdGFsX2VzY2FwZS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjog
UmVnRXhwKCJbXDFdIiwgInUiKTogIEV4cGVjdGVkIGEgU3ludGF4RXJyb3IgdG8gYmUgdGhyb3du
IGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCiAgIHN0cmljdCBtb2RlOiAnVGVz
dDI2MkVycm9yOiBSZWdFeHAoIltcMV0iLCAidSIpOiAgRXhwZWN0ZWQgYSBTeW50YXhFcnJvciB0
byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKQEAgLTMwNDgs
NjkgKzMwNDUsNiBAQCB0ZXN0L2xhbmd1YWdlL2dsb2JhbC1jb2RlL3NjcmlwdC1kZWNsLWZ1bmMt
ZXJyLW5vbi1leHRlbnNpYmxlLmpzOgogdGVzdC9sYW5ndWFnZS9nbG9iYWwtY29kZS9zY3JpcHQt
ZGVjbC12YXItZXJyLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5
cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcK
ICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJl
IHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotdGVzdC9sYW5ndWFn
ZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtZGFuZ2xpbmctZ3JvdXBuYW1l
LTItdS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3Qg
YmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBz
aG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9u
YW1lZC1ncm91cHMvaW52YWxpZC1kYW5nbGluZy1ncm91cG5hbWUtMi5qczoKLSAgZGVmYXVsdDog
J1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRl
ZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1k
YW5nbGluZy1ncm91cG5hbWUtMy11LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0
ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6
IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2Uv
bGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWRhbmdsaW5nLWdyb3VwbmFtZS0z
LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBl
dmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3Vs
ZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL25hbWVk
LWdyb3Vwcy9pbnZhbGlkLWRhbmdsaW5nLWdyb3VwbmFtZS00LXUuanM6Ci0gIGRlZmF1bHQ6ICdU
ZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQu
JwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtZGFu
Z2xpbmctZ3JvdXBuYW1lLTQuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVu
dCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhp
cyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRl
cmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtZGFuZ2xpbmctZ3JvdXBuYW1lLTUuanM6
Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1
YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5v
dCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3Jv
dXBzL2ludmFsaWQtZGFuZ2xpbmctZ3JvdXBuYW1lLXUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYy
OiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2Rl
OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVz
dC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtZGFuZ2xpbmct
Z3JvdXBuYW1lLXdpdGhvdXQtZ3JvdXAtdS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMg
c3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1
YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1kYW5nbGluZy1ncm91cG5h
bWUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJl
IGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hv
dWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFt
ZWQtZ3JvdXBzL2ludmFsaWQtaW5jb21wbGV0ZS1ncm91cG5hbWUtMi5qczoKLSAgZGVmYXVsdDog
J1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRl
ZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1p
bmNvbXBsZXRlLWdyb3VwbmFtZS0zLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0
ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6
IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2Uv
bGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWluY29tcGxldGUtZ3JvdXBuYW1l
LTQuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJl
IGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hv
dWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFt
ZWQtZ3JvdXBzL2ludmFsaWQtaW5jb21wbGV0ZS1ncm91cG5hbWUtNS5qczoKLSAgZGVmYXVsdDog
J1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRl
ZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1p
bmNvbXBsZXRlLWdyb3VwbmFtZS02LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0
ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6
IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2Uv
bGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWluY29tcGxldGUtZ3JvdXBuYW1l
LXUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJl
IGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hv
dWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFt
ZWQtZ3JvdXBzL2ludmFsaWQtaW5jb21wbGV0ZS1ncm91cG5hbWUtd2l0aG91dC1ncm91cC0zLXUu
anM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2
YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxk
IG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQt
Z3JvdXBzL2ludmFsaWQtaW5jb21wbGV0ZS1ncm91cG5hbWUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0
MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBt
b2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwot
dGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvdS1kZWMtZXNjLmpzOgotICBkZWZhdWx0OiAn
VGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJp
Y3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVk
LicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL3UtaW52YWxpZC1sZWdhY3ktb2N0YWwt
ZXNjYXBlLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5v
dCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50
IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhw
L3UtaW52YWxpZC1vb2ItZGVjaW1hbC1lc2NhcGUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBU
aGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAn
VGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwogdGVzdC9s
YW5ndWFnZS9tb2R1bGUtY29kZS9ldmFsLXJxc3RkLW9uY2UuanM6CiAgIG1vZHVsZTogIlN5bnRh
eEVycm9yOiBVbmV4cGVjdGVkIGlkZW50aWZpZXIgJ2FzJy4gRXhwZWN0ZWQgJ2Zyb20nIGJlZm9y
ZSBleHBvcnRlZCBtb2R1bGUgbmFtZS4iCiB0ZXN0L2xhbmd1YWdlL21vZHVsZS1jb2RlL2V2YWwt
cnFzdGQtb3JkZXIuanM6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394257</attachid>
            <date>2020-03-23 06:00:06 -0700</date>
            <delta_ts>2020-03-24 13:03:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178175-20200323150004.patch</filename>
            <type>text/plain</type>
            <size>29226</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4ODE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YmFiM2JmZmM0NjY2ODk5MWJhOTk2NWYzZmZjMWFiNmU4ZjQ2NGRlLi4wYjVmZTM4MDVhMTdjNzcw
ZmU1MThjYWJhMTczNjQzYTA3MGEyM2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAyMC0wMy0yMiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgSW52YWxpZCBudW1lcmljIGFuZCBuYW1lZCByZWZlcmVuY2VzIHNo
b3VsZCBiZSBlYXJseSBzeW50YXggZXJyb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgxNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoOgorCisgICAgICAgIDEuIEZpeGVzIG5hbWVk
IHJlZmVyZW5jZSBwYXJzaW5nIGluIHBhcnNlRXNjYXBlKCksIG1ha2luZyAvXGsvdSB0aHJvdyBT
eW50YXhFcnJvciBwZXIgc3BlYyBbMV0uCisKKyAgICAgICAgMi4gUmV3b3JrcyBjb250YWluc0ls
bGVnYWxOYW1lZEZvcndhcmRSZWZlcmVuY2VzKCksIG1ha2luZyBkYW5nbGluZyAoZS5nLiAvXGs8
YT4oPzxiPi4pLykgYW5kCisgICAgICAgICAgIGluY29tcGxldGUgKGUuZy4gL1xrPCg/PGE+Likv
KSBuYW1lZCByZWZlcmVuY2VzIHRocm93IFN5bnRheEVycm9yIGlmIHRoZSBub24tVW5pY29kZSBw
YXR0ZXJuCisgICAgICAgICAgIGNvbnRhaW5zIGEgbmFtZWQgZ3JvdXAgWzJdLgorCisgICAgICAg
IDMuIE1vdmVzIHJlcGFyc2luZyBsb2dpYyBmcm9tIFlhcnJQYXR0ZXJuIHRvIFlhcnJQYXJzZXIs
IGVuc3VyaW5nIHN5bnRheCBlcnJvcnMgZHVlIHRvIGlsbGVnYWwKKyAgICAgICAgICAgcmVmZXJl
bmNlcyAoYm90aCBuYW1lZCBhbmQgbnVtZXJpYykgYXJlIHRocm93biBhdCB0aGUgcGFyc2UgdGlt
ZTsgcmVtb3ZlcyBiYWNrUmVmZXJlbmNlTGltaXQKKyAgICAgICAgICAgcGFyYW1ldGVyIG9mIFlh
cnI6OnBhcnNlKCksIGRyb3BzIGlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UoKSBmcm9tIERl
bGVnYXRlLCByZWZhY3RvcnMKKyAgICAgICAgICAgc2F2ZVVubWF0Y2hlZE5hbWVkRm9yd2FyZFJl
ZmVyZW5jZXMoKSwgYW5kIG92ZXJhbGwgaW1wcm92ZXMgY29oZXNpb24gb2YgaWxsZWdhbCByZWZl
cmVuY2UgbG9naWMuIAorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3By
b2QtSWRlbnRpdHlFc2NhcGUKKyAgICAgICAgWzJdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8j
c2VjLXJlZ2V4cGluaXRpYWxpemUgKHN0ZXAgNy5iKQorCisgICAgICAgICogeWFyci9ZYXJyUGFy
c2VyLmg6CisgICAgICAgIChKU0M6OllhcnI6OlBhcnNlcjo6Q2hhcmFjdGVyQ2xhc3NQYXJzZXJE
ZWxlZ2F0ZTo6YXRvbU5hbWVkQmFja1JlZmVyZW5jZSk6CisgICAgICAgIChKU0M6OllhcnI6OlBh
cnNlcjo6UGFyc2VyKToKKyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjpwYXJzZUVzY2FwZSk6
CisgICAgICAgIChKU0M6OllhcnI6OlBhcnNlcjo6cGFyc2VQYXJlbnRoZXNlc0JlZ2luKToKKyAg
ICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjpwYXJzZSk6CisgICAgICAgIChKU0M6OllhcnI6OlBh
cnNlcjo6aGFuZGxlSWxsZWdhbFJlZmVyZW5jZXMpOgorICAgICAgICAoSlNDOjpZYXJyOjpQYXJz
ZXI6OmNvbnRhaW5zSWxsZWdhbE51bWVyaWNSZWZlcmVuY2UpOgorICAgICAgICAoSlNDOjpZYXJy
OjpQYXJzZXI6OmNvbnRhaW5zSWxsZWdhbE5hbWVkUmVmZXJlbmNlKToKKyAgICAgICAgKEpTQzo6
WWFycjo6UGFyc2VyOjpyZXNldEZvclJlcGFyc2luZyk6CisgICAgICAgIChKU0M6OllhcnI6OnBh
cnNlKToKKyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjpDaGFyYWN0ZXJDbGFzc1BhcnNlckRl
bGVnYXRlOjppc1ZhbGlkTmFtZWRGb3J3YXJkUmVmZXJlbmNlKTogRGVsZXRlZC4KKyAgICAgICAg
KiB5YXJyL1lhcnJQYXR0ZXJuLmNwcDoKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyclBhdHRlcm5D
b25zdHJ1Y3Rvcjo6YXRvbUJhY2tSZWZlcmVuY2UpOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJy
UGF0dGVybkNvbnN0cnVjdG9yOjphdG9tTmFtZWRGb3J3YXJkUmVmZXJlbmNlKToKKyAgICAgICAg
KEpTQzo6WWFycjo6WWFyclBhdHRlcm46OmNvbXBpbGUpOgorICAgICAgICAoSlNDOjpZYXJyOjpZ
YXJyUGF0dGVybkNvbnN0cnVjdG9yOjpzYXZlVW5tYXRjaGVkTmFtZWRGb3J3YXJkUmVmZXJlbmNl
cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OllhcnI6OllhcnJQYXR0ZXJuQ29uc3RydWN0b3I6
OmlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UpOiBEZWxldGVkLgorICAgICAgICAqIHlhcnIv
WWFyclBhdHRlcm4uaDoKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyclBhdHRlcm46OnJlc2V0Rm9y
UmVwYXJzaW5nKToKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyclBhdHRlcm46OmNvbnRhaW5zSWxs
ZWdhbEJhY2tSZWZlcmVuY2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyUGF0
dGVybjo6Y29udGFpbnNJbGxlZ2FsTmFtZWRGb3J3YXJkUmVmZXJlbmNlcyk6IERlbGV0ZWQuCisg
ICAgICAgICogeWFyci9ZYXJyU3ludGF4Q2hlY2tlci5jcHA6CisgICAgICAgIChKU0M6OllhcnI6
OlN5bnRheENoZWNrZXI6OmF0b21OYW1lZEJhY2tSZWZlcmVuY2UpOgorICAgICAgICAoSlNDOjpZ
YXJyOjpTeW50YXhDaGVja2VyOjpyZXNldEZvclJlcGFyc2luZyk6CisgICAgICAgIChKU0M6Ollh
cnI6OlN5bnRheENoZWNrZXI6OmlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UpOiBEZWxldGVk
LgorCiAyMDIwLTAzLTIwICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4K
IAogICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JSZWdFeHBTcGxpdCBkb2Vzbid0
IGNoZWNrIGZvciBAQG1hdGNoIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjRlMThkZjExNjIxMTk2
ZDg0NDQ4MWYyNzY2M2M2NmE1YzhhMzdiNC4uNTMyMzQ4MDk5MzNkYzExZGQ5MzM1MmI4ZTE0YTBj
MjBhNjRiNGU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTAzLTIyICBBbGV4
ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBJbnZhbGlkIG51
bWVyaWMgYW5kIG5hbWVkIHJlZmVyZW5jZXMgc2hvdWxkIGJlIGVhcmx5IHN5bnRheCBlcnJvcnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODE3NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY291bnRz
IGZvciBZYXJyUGFyc2VyJ3MgRGVsZWdhdGUgaW50ZXJmYWNlIGNoYW5nZXMuCisgICAgICAgIHJl
c2V0Rm9yUmVwYXJzaW5nKCkgaXMgbmV2ZXIgY2FsbGVkIGJlY2F1c2UgVVJMRmlsdGVyUGFyc2Vy
IGRvZXMgbm90IHN1cHBvcnQgcmVmZXJlbmNlcy4KKworICAgICAgICAqIGNvbnRlbnRleHRlbnNp
b25zL1VSTEZpbHRlclBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5z
aW9uczo6UGF0dGVyblBhcnNlcjo6cmVzZXRGb3JSZXBhcnNpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6YWRkUGF0dGVybik6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UGF0dGVyblBhcnNlcjo6aXNWYWxpZE5h
bWVkRm9yd2FyZFJlZmVyZW5jZSk6IERlbGV0ZWQuCisKIDIwMjAtMDMtMjIgIFphbGFuIEJ1anRh
cyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBMYXlvdXQ6OkJveDo6Y29udGFp
bmluZ0Jsb2NrIHNob3VsZCByZXR1cm4gYSBjb25zdCBDb250YWluZXJCb3gmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmgKaW5kZXggZDY1NTA5MWMyZGQ1NWI5ODc0ODIzZGZk
YzA5NDhlMjc0Y2EyMzdmMy4uZjQzM2U4YzEzMTc1NTU3NjcwMzBiODk5NzJiM2Q5Yjg0Zjg2Mjdl
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaApAQCAtMSw1ICsxLDYg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQWxleGV5IFNodmF5a2EgPHNodmFp
a2FsZXNoQGdtYWlsLmNvbT4uCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEw
LDE3ICsxMSwxNyBAQAogICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKICNwcmFnbWEgb25jZQpAQCAtNDEsNyArNDIsNyBAQCB0ZW1w
bGF0ZTxjbGFzcyBEZWxlZ2F0ZSwgdHlwZW5hbWUgQ2hhclR5cGU+CiBjbGFzcyBQYXJzZXIgewog
cHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxjbGFzcyBGcmllbmREZWxlZ2F0ZT4KLSAgICBmcmllbmQg
RXJyb3JDb2RlIHBhcnNlKEZyaWVuZERlbGVnYXRlJiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBi
b29sIGlzVW5pY29kZSwgdW5zaWduZWQgYmFja1JlZmVyZW5jZUxpbWl0KTsKKyAgICBmcmllbmQg
RXJyb3JDb2RlIHBhcnNlKEZyaWVuZERlbGVnYXRlJiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBi
b29sIGlzVW5pY29kZSk7CiAKICAgICAvKgogICAgICAqIENoYXJhY3RlckNsYXNzUGFyc2VyRGVs
ZWdhdGU6CkBAIC0yMDAsNyArMjAxLDYgQEAgcHJpdmF0ZToKICAgICAgICAgTk9fUkVUVVJOX0RV
RV9UT19BU1NFUlQgdm9pZCBhc3NlcnRpb25Xb3JkQm91bmRhcnkoYm9vbCkgeyBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZv
aWQgYXRvbUJhY2tSZWZlcmVuY2UodW5zaWduZWQpIHsgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQogICAgICAgICBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGF0b21OYW1lZEJh
Y2tSZWZlcmVuY2UoY29uc3QgU3RyaW5nJikgeyBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9Ci0gICAgICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIGJvb2wgaXNWYWxpZE5hbWVkRm9y
d2FyZFJlZmVyZW5jZShjb25zdCBTdHJpbmcmKSB7IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KICAgICAgICAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBhdG9tTmFtZWRGb3J3
YXJkUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYpIHsgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogCiAgICAgcHJpdmF0ZToKQEAgLTIxNyw5ICsyMTcsOCBAQCBwcml2YXRlOgogICAgICAg
ICBVQ2hhcjMyIG1fY2hhcmFjdGVyOwogICAgIH07CiAKLSAgICBQYXJzZXIoRGVsZWdhdGUmIGRl
bGVnYXRlLCBjb25zdCBTdHJpbmcmIHBhdHRlcm4sIGJvb2wgaXNVbmljb2RlLCB1bnNpZ25lZCBi
YWNrUmVmZXJlbmNlTGltaXQpCisgICAgUGFyc2VyKERlbGVnYXRlJiBkZWxlZ2F0ZSwgY29uc3Qg
U3RyaW5nJiBwYXR0ZXJuLCBib29sIGlzVW5pY29kZSkKICAgICAgICAgOiBtX2RlbGVnYXRlKGRl
bGVnYXRlKQotICAgICAgICAsIG1fYmFja1JlZmVyZW5jZUxpbWl0KGJhY2tSZWZlcmVuY2VMaW1p
dCkKICAgICAgICAgLCBtX2RhdGEocGF0dGVybi5jaGFyYWN0ZXJzPENoYXJUeXBlPigpKQogICAg
ICAgICAsIG1fc2l6ZShwYXR0ZXJuLmxlbmd0aCgpKQogICAgICAgICAsIG1faXNVbmljb2RlKGlz
VW5pY29kZSkKQEAgLTM0MSwxNiArMzQwLDEyIEBAIHByaXZhdGU6CiAKICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBiYWNrUmVmZXJlbmNlID0gY29uc3VtZU51bWJlcigpOwogICAgICAgICAgICAg
ICAgIGlmIChiYWNrUmVmZXJlbmNlIDw9IG1fYmFja1JlZmVyZW5jZUxpbWl0KSB7CisgICAgICAg
ICAgICAgICAgICAgIG1fbWF4U2VlbkJhY2tSZWZlcmVuY2UgPSBzdGQ6Om1heChtX21heFNlZW5C
YWNrUmVmZXJlbmNlLCBiYWNrUmVmZXJlbmNlKTsKICAgICAgICAgICAgICAgICAgICAgZGVsZWdh
dGUuYXRvbUJhY2tSZWZlcmVuY2UoYmFja1JlZmVyZW5jZSk7CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIHJlc3RvcmVTdGF0
ZShzdGF0ZSk7Ci0KLSAgICAgICAgICAgICAgICBpZiAobV9pc1VuaWNvZGUpIHsKLSAgICAgICAg
ICAgICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkludmFsaWRCYWNrcmVmZXJlbmNl
OwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBOb3QgYSBiYWNrcmVmZXJlbmNlLCBhbmQg
bm90IG9jdGFsLiBKdXN0IGEgbnVtYmVyLgpAQCAtNDQyLDI4ICs0MzcsMjcgQEAgcHJpdmF0ZToK
ICAgICAgICAgY2FzZSAnayc6IHsKICAgICAgICAgICAgIGNvbnN1bWUoKTsKICAgICAgICAgICAg
IFBhcnNlU3RhdGUgc3RhdGUgPSBzYXZlU3RhdGUoKTsKLSAgICAgICAgICAgIGlmICghYXRFbmRP
ZlBhdHRlcm4oKSAmJiAhaW5DaGFyYWN0ZXJDbGFzcykgewotICAgICAgICAgICAgICAgIGlmIChj
b25zdW1lKCkgPT0gJzwnKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gZ3JvdXBOYW1lID0g
dHJ5Q29uc3VtZUdyb3VwTmFtZSgpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXBOYW1l
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9jYXB0dXJlR3JvdXBOYW1lcy5jb250
YWlucyhncm91cE5hbWUudmFsdWUoKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZWxlZ2F0ZS5hdG9tTmFtZWRCYWNrUmVmZXJlbmNlKGdyb3VwTmFtZS52YWx1ZSgpKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRl
bGVnYXRlLmlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UoZ3JvdXBOYW1lLnZhbHVlKCkpKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZWdhdGUuYXRvbU5hbWVkRm9yd2FyZFJl
ZmVyZW5jZShncm91cE5hbWUudmFsdWUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWluQ2hh
cmFjdGVyQ2xhc3MgJiYgdHJ5Q29uc3VtZSgnPCcpKSB7CisgICAgICAgICAgICAgICAgYXV0byBn
cm91cE5hbWUgPSB0cnlDb25zdW1lR3JvdXBOYW1lKCk7CisgICAgICAgICAgICAgICAgaWYgKGdy
b3VwTmFtZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobV9jYXB0dXJlR3JvdXBOYW1lcy5j
b250YWlucyhncm91cE5hbWUudmFsdWUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRl
bGVnYXRlLmF0b21OYW1lZEJhY2tSZWZlcmVuY2UoZ3JvdXBOYW1lLnZhbHVlKCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgaWYgKG1faXNVbmljb2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBt
X2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52YWxpZEJhY2tyZWZlcmVuY2U7CisKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKG1faXNOYW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBtX2ZvcndhcmRSZWZlcmVuY2VOYW1lcy5hZGQoZ3JvdXBOYW1l
LnZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVsZWdhdGUuYXRvbU5hbWVkRm9y
d2FyZFJlZmVyZW5jZShncm91cE5hbWUudmFsdWUoKSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KKwogICAgICAgICAgICAgcmVzdG9yZVN0YXRlKHN0YXRlKTsKLSAgICAgICAgICAg
IGRlbGVnYXRlLmF0b21QYXR0ZXJuQ2hhcmFjdGVyKCdrJyk7CisgICAgICAgICAgICBpZiAoIWlz
SWRlbnRpdHlFc2NhcGVBbkVycm9yKCdrJykpIHsKKyAgICAgICAgICAgICAgICBkZWxlZ2F0ZS5h
dG9tUGF0dGVybkNoYXJhY3RlcignaycpOworICAgICAgICAgICAgICAgIG1fa0lkZW50aXR5RXNj
YXBlU2VlbiA9IHRydWU7IAorICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KIApAQCAtNjk3LDYgKzY5MSw5IEBAIHByaXZhdGU6CiAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgbV9kZWxlZ2F0ZS5hdG9tUGFyZW50aGVzZXNTdWJwYXR0ZXJuQmVnaW4oKTsKIAor
ICAgICAgICBpZiAodHlwZSA9PSBQYXJlbnRoZXNlc1R5cGU6OlN1YnBhdHRlcm4pCisgICAgICAg
ICAgICArK21fbnVtU3VicGF0dGVybnM7CisKICAgICAgICAgbV9wYXJlbnRoZXNlc1N0YWNrLmFw
cGVuZCh0eXBlKTsKICAgICB9CiAKQEAgLTg4NCwxNCArODgxLDg5IEBAIHByaXZhdGU6CiAgICAg
RXJyb3JDb2RlIHBhcnNlKCkKICAgICB7CiAgICAgICAgIGlmIChtX3NpemUgPiBNQVhfUEFUVEVS
Tl9TSVpFKQotICAgICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OlBhdHRlcm5Ub29M
YXJnZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcGFyc2VUb2tlbnMoKTsKLSAgICAgICAg
QVNTRVJUKGF0RW5kT2ZQYXR0ZXJuKCkgfHwgaGFzRXJyb3IobV9lcnJvckNvZGUpKTsKLSAgICAg
ICAgCisgICAgICAgICAgICByZXR1cm4gRXJyb3JDb2RlOjpQYXR0ZXJuVG9vTGFyZ2U7CisKKyAg
ICAgICAgcGFyc2VUb2tlbnMoKTsKKworICAgICAgICBpZiAoIWhhc0Vycm9yKG1fZXJyb3JDb2Rl
KSkgeworICAgICAgICAgICAgQVNTRVJUKGF0RW5kT2ZQYXR0ZXJuKCkpOworICAgICAgICAgICAg
aGFuZGxlSWxsZWdhbFJlZmVyZW5jZXMoKTsKKyAgICAgICAgICAgIEFTU0VSVChhdEVuZE9mUGF0
dGVybigpKTsKKyAgICAgICAgfQorCiAgICAgICAgIHJldHVybiBtX2Vycm9yQ29kZTsKICAgICB9
CiAKKyAgICB2b2lkIGhhbmRsZUlsbGVnYWxSZWZlcmVuY2VzKCkKKyAgICB7CisgICAgICAgIGJv
b2wgc2hvdWxkUmVwYXJzZSA9IGZhbHNlOworCisgICAgICAgIGlmIChjb250YWluc0lsbGVnYWxO
dW1lcmljUmVmZXJlbmNlKCkpIHsKKyAgICAgICAgICAgIGlmIChtX2lzVW5pY29kZSkgeworICAg
ICAgICAgICAgICAgIG1fZXJyb3JDb2RlID0gRXJyb3JDb2RlOjpJbnZhbGlkQmFja3JlZmVyZW5j
ZTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IG1fYmFja1JlZmVyZW5jZUxpbWl0ID0gbV9udW1TdWJwYXR0ZXJuczsKKyAgICAgICAgICAgIHNo
b3VsZFJlcGFyc2UgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fa0lkZW50aXR5
RXNjYXBlU2VlbiAmJiAhbV9jYXB0dXJlR3JvdXBOYW1lcy5pc0VtcHR5KCkpIHsKKyAgICAgICAg
ICAgIG1fZXJyb3JDb2RlID0gRXJyb3JDb2RlOjpJbnZhbGlkQmFja3JlZmVyZW5jZTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjb250YWluc0lsbGVnYWxO
YW1lZFJlZmVyZW5jZSgpKSB7CisgICAgICAgICAgICBpZiAobV9pc1VuaWNvZGUgfHwgIW1fY2Fw
dHVyZUdyb3VwTmFtZXMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgbV9lcnJvckNvZGUg
PSBFcnJvckNvZGU6OkludmFsaWRCYWNrcmVmZXJlbmNlOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9pc05hbWVkRm9yd2FyZFJlZmVyZW5j
ZUFsbG93ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHNob3VsZFJlcGFyc2UgPSB0cnVlOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKHNob3VsZFJlcGFyc2UpIHsKKyAgICAgICAgICAgIHJlc2V0
Rm9yUmVwYXJzaW5nKCk7CisgICAgICAgICAgICBwYXJzZVRva2VucygpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgYm9vbCBjb250YWluc0lsbGVnYWxOdW1lcmljUmVmZXJlbmNlKCkKKyAgICB7
CisgICAgICAgIHJldHVybiBtX21heFNlZW5CYWNrUmVmZXJlbmNlID4gbV9udW1TdWJwYXR0ZXJu
czsKKyAgICB9CisKKyAgICBib29sIGNvbnRhaW5zSWxsZWdhbE5hbWVkUmVmZXJlbmNlKCkKKyAg
ICB7CisgICAgICAgIGlmIChtX2ZvcndhcmRSZWZlcmVuY2VOYW1lcy5pc0VtcHR5KCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKG1fY2FwdHVyZUdyb3VwTmFtZXMu
aXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgZm9yIChhdXRv
JiBlbnRyeSA6IG1fZm9yd2FyZFJlZmVyZW5jZU5hbWVzKSB7CisgICAgICAgICAgICBpZiAoIW1f
Y2FwdHVyZUdyb3VwTmFtZXMuY29udGFpbnMoZW50cnkpKQorICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IHZvaWQgcmVzZXRGb3JSZXBhcnNpbmcoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFoYXNFcnJv
cihtX2Vycm9yQ29kZSkpOworCisgICAgICAgIG1fZGVsZWdhdGUucmVzZXRGb3JSZXBhcnNpbmco
KTsKKyAgICAgICAgbV9pbmRleCA9IDA7CisgICAgICAgIG1fbnVtU3VicGF0dGVybnMgPSAwOwor
ICAgICAgICBtX21heFNlZW5CYWNrUmVmZXJlbmNlID0gMDsKKyAgICAgICAgbV9rSWRlbnRpdHlF
c2NhcGVTZWVuID0gZmFsc2U7CisgICAgICAgIG1fcGFyZW50aGVzZXNTdGFjay5jbGVhcigpOwor
ICAgICAgICBtX2NhcHR1cmVHcm91cE5hbWVzLmNsZWFyKCk7CisgICAgICAgIG1fZm9yd2FyZFJl
ZmVyZW5jZU5hbWVzLmNsZWFyKCk7CisgICAgfQorCiAgICAgLy8gTWlzYyBoZWxwZXIgZnVuY3Rp
b25zOgogCiAgICAgdHlwZWRlZiB1bnNpZ25lZCBQYXJzZVN0YXRlOwpAQCAtMTE1NiwxNCArMTIy
OCwxOSBAQCBwcml2YXRlOgogICAgIGVudW0gY2xhc3MgUGFyZW50aGVzZXNUeXBlIDogdWludDhf
dCB7IFN1YnBhdHRlcm4sIEFzc2VydGlvbiB9OwogCiAgICAgRGVsZWdhdGUmIG1fZGVsZWdhdGU7
Ci0gICAgdW5zaWduZWQgbV9iYWNrUmVmZXJlbmNlTGltaXQ7CiAgICAgRXJyb3JDb2RlIG1fZXJy
b3JDb2RlIHsgRXJyb3JDb2RlOjpOb0Vycm9yIH07CiAgICAgY29uc3QgQ2hhclR5cGUqIG1fZGF0
YTsKICAgICB1bnNpZ25lZCBtX3NpemU7CiAgICAgdW5zaWduZWQgbV9pbmRleCB7IDAgfTsKKyAg
ICB1bnNpZ25lZCBtX251bVN1YnBhdHRlcm5zIHsgMCB9OworICAgIHVuc2lnbmVkIG1fbWF4U2Vl
bkJhY2tSZWZlcmVuY2UgeyAwIH07CisgICAgdW5zaWduZWQgbV9iYWNrUmVmZXJlbmNlTGltaXQg
eyBxdWFudGlmeUluZmluaXRlIH07CiAgICAgYm9vbCBtX2lzVW5pY29kZTsKKyAgICBib29sIG1f
aXNOYW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkIHsgdHJ1ZSB9OworICAgIGJvb2wgbV9rSWRl
bnRpdHlFc2NhcGVTZWVuIHsgZmFsc2UgfTsKICAgICBWZWN0b3I8UGFyZW50aGVzZXNUeXBlLCAx
Nj4gbV9wYXJlbnRoZXNlc1N0YWNrOwogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX2NhcHR1cmVHcm91
cE5hbWVzOworICAgIEhhc2hTZXQ8U3RyaW5nPiBtX2ZvcndhcmRSZWZlcmVuY2VOYW1lczsKIAog
ICAgIC8vIERlcml2ZWQgYnkgZW1waXJpY2FsIHRlc3Rpbmcgb2YgY29tcGlsZSB0aW1lIGluIFBD
UkUgYW5kIFdSRUMuCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBNQVhfUEFUVEVSTl9T
SVpFID0gMTAyNCAqIDEwMjQ7CkBAIC0xMTk1LDEzICsxMjcyLDE0IEBAIHByaXZhdGU6CiAgKiAg
ICB2b2lkIGF0b21QYXJlbnRoZXNlc0VuZCgpOwogICogICAgdm9pZCBhdG9tQmFja1JlZmVyZW5j
ZSh1bnNpZ25lZCBzdWJwYXR0ZXJuSWQpOwogICogICAgdm9pZCBhdG9tTmFtZWRCYWNrUmVmZXJl
bmNlKGNvbnN0IFN0cmluZyYgc3VicGF0dGVybk5hbWUpOwotICogICAgYm9vbCBpc1ZhbGlkTmFt
ZWRGb3J3YXJkUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgc3VicGF0dGVybk5hbWUpOwogICogICAg
dm9pZCBhdG9tTmFtZWRGb3J3YXJkUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgc3VicGF0dGVybk5h
bWUpOwogICoKICAqICAgIHZvaWQgcXVhbnRpZnlBdG9tKHVuc2lnbmVkIG1pbiwgdW5zaWduZWQg
bWF4LCBib29sIGdyZWVkeSk7CiAgKgogICogICAgdm9pZCBkaXNqdW5jdGlvbigpOwogICoKKyAq
ICAgIHZvaWQgcmVzZXRGb3JSZXBhcnNpbmcoKTsKKyAqCiAgKiBUaGUgcmVndWxhciBleHByZXNz
aW9uIGlzIGRlc2NyaWJlZCBieSBhIHNlcXVlbmNlIG9mIGFzc2VydGlvbiooKSBhbmQgYXRvbSoo
KQogICogY2FsbGJhY2tzIHRvIHRoZSBkZWxlZ2F0ZSwgZGVzY3JpYmluZyB0aGUgdGVybXMgaW4g
dGhlIHJlZ3VsYXIgZXhwcmVzc2lvbi4KICAqIEZvbGxvd2luZyBhbiBhdG9tIGEgcXVhbnRpZnlB
dG9tKCkgY2FsbCBtYXkgb2NjdXIgdG8gaW5kaWNhdGUgdGhhdCB0aGUgcHJldmlvdXMKQEAgLTEy
MzIsMTEgKzEzMTAsMTEgQEAgcHJpdmF0ZToKICAqLwogCiB0ZW1wbGF0ZTxjbGFzcyBEZWxlZ2F0
ZT4KLUVycm9yQ29kZSBwYXJzZShEZWxlZ2F0ZSYgZGVsZWdhdGUsIGNvbnN0IFN0cmluZyYgcGF0
dGVybiwgYm9vbCBpc1VuaWNvZGUsIHVuc2lnbmVkIGJhY2tSZWZlcmVuY2VMaW1pdCA9IHF1YW50
aWZ5SW5maW5pdGUpCitFcnJvckNvZGUgcGFyc2UoRGVsZWdhdGUmIGRlbGVnYXRlLCBjb25zdCBT
dHJpbmcmIHBhdHRlcm4sIGJvb2wgaXNVbmljb2RlKQogewogICAgIGlmIChwYXR0ZXJuLmlzOEJp
dCgpKQotICAgICAgICByZXR1cm4gUGFyc2VyPERlbGVnYXRlLCBMQ2hhcj4oZGVsZWdhdGUsIHBh
dHRlcm4sIGlzVW5pY29kZSwgYmFja1JlZmVyZW5jZUxpbWl0KS5wYXJzZSgpOwotICAgIHJldHVy
biBQYXJzZXI8RGVsZWdhdGUsIFVDaGFyPihkZWxlZ2F0ZSwgcGF0dGVybiwgaXNVbmljb2RlLCBi
YWNrUmVmZXJlbmNlTGltaXQpLnBhcnNlKCk7CisgICAgICAgIHJldHVybiBQYXJzZXI8RGVsZWdh
dGUsIExDaGFyPihkZWxlZ2F0ZSwgcGF0dGVybiwgaXNVbmljb2RlKS5wYXJzZSgpOworICAgIHJl
dHVybiBQYXJzZXI8RGVsZWdhdGUsIFVDaGFyPihkZWxlZ2F0ZSwgcGF0dGVybiwgaXNVbmljb2Rl
KS5wYXJzZSgpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6WWFycgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uY3BwCmluZGV4IGM1MDgyMDg1NjJhNzUyN2E2MGY1
YzMwM2QxY2NkYjE3ZTFmMDZhZDIuLjk3ZmI4Njg0N2MwYTIzOTJjMGM1YWRjN2Y4MjMyMWMzZTY1
MmNiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXR0ZXJu
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGF0dGVybi5jcHAKQEAg
LTQ2MiwxNiArNDYyLDYgQEAgcHVibGljOgogICAgICAgICBtX3BhdHRlcm4ubV9kaXNqdW5jdGlv
bnMuYXBwZW5kKFdURk1vdmUoYm9keSkpOwogICAgIH0KIAotICAgIHZvaWQgc2F2ZVVubWF0Y2hl
ZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMoKQotICAgIHsKLSAgICAgICAgbV91bm1hdGNoZWROYW1l
ZEZvcndhcmRSZWZlcmVuY2VzLnNocmluaygwKTsKLSAgICAgICAgCi0gICAgICAgIGZvciAoYXV0
byYgZW50cnkgOiBtX3BhdHRlcm4ubV9uYW1lZEZvcndhcmRSZWZlcmVuY2VzKSB7Ci0gICAgICAg
ICAgICBpZiAoIW1fcGF0dGVybi5tX2NhcHR1cmVHcm91cE5hbWVzLmNvbnRhaW5zKGVudHJ5KSkK
LSAgICAgICAgICAgICAgICBtX3VubWF0Y2hlZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMuYXBwZW5k
KGVudHJ5KTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIHZvaWQgYXNzZXJ0aW9uQk9MKCkKICAg
ICB7CiAgICAgICAgIGlmICghbV9hbHRlcm5hdGl2ZS0+bV90ZXJtcy5zaXplKCkgJiYgIW1faW52
ZXJ0UGFyZW50aGV0aWNhbEFzc2VydGlvbikgewpAQCAtNjU3LDcgKzY0Nyw2IEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIEFTU0VSVChzdWJwYXR0ZXJuSWQpOwogICAgICAgICBtX3BhdHRlcm4u
bV9jb250YWluc0JhY2tyZWZlcmVuY2VzID0gdHJ1ZTsKLSAgICAgICAgbV9wYXR0ZXJuLm1fbWF4
QmFja1JlZmVyZW5jZSA9IHN0ZDo6bWF4KG1fcGF0dGVybi5tX21heEJhY2tSZWZlcmVuY2UsIHN1
YnBhdHRlcm5JZCk7CiAKICAgICAgICAgaWYgKHN1YnBhdHRlcm5JZCA+IG1fcGF0dGVybi5tX251
bVN1YnBhdHRlcm5zKSB7CiAgICAgICAgICAgICBtX2FsdGVybmF0aXZlLT5tX3Rlcm1zLmFwcGVu
ZChQYXR0ZXJuVGVybTo6Rm9yd2FyZFJlZmVyZW5jZSgpKTsKQEAgLTY4NywxNCArNjc2LDggQEAg
cHVibGljOgogICAgICAgICBhdG9tQmFja1JlZmVyZW5jZShtX3BhdHRlcm4ubV9uYW1lZEdyb3Vw
VG9QYXJlbkluZGV4LmdldChzdWJwYXR0ZXJuTmFtZSkpOwogICAgIH0KIAotICAgIGJvb2wgaXNW
YWxpZE5hbWVkRm9yd2FyZFJlZmVyZW5jZShjb25zdCBTdHJpbmcmIHN1YnBhdHRlcm5OYW1lKQor
ICAgIHZvaWQgYXRvbU5hbWVkRm9yd2FyZFJlZmVyZW5jZShjb25zdCBTdHJpbmcmKQogICAgIHsK
LSAgICAgICAgcmV0dXJuICFtX3VubWF0Y2hlZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMuY29udGFp
bnMoc3VicGF0dGVybk5hbWUpOwotICAgIH0KLQotICAgIHZvaWQgYXRvbU5hbWVkRm9yd2FyZFJl
ZmVyZW5jZShjb25zdCBTdHJpbmcmIHN1YnBhdHRlcm5OYW1lKQotICAgIHsKLSAgICAgICAgbV9w
YXR0ZXJuLm1fbmFtZWRGb3J3YXJkUmVmZXJlbmNlcy5hcHBlbmRJZk5vdENvbnRhaW5zKHN1YnBh
dHRlcm5OYW1lKTsKICAgICAgICAgbV9hbHRlcm5hdGl2ZS0+bV90ZXJtcy5hcHBlbmQoUGF0dGVy
blRlcm06OkZvcndhcmRSZWZlcmVuY2UoKSk7CiAgICAgfQogICAgIApAQCAtMTEzMCw3ICsxMTEz
LDYgQEAgcHJpdmF0ZToKICAgICBZYXJyUGF0dGVybiYgbV9wYXR0ZXJuOwogICAgIFBhdHRlcm5B
bHRlcm5hdGl2ZSogbV9hbHRlcm5hdGl2ZTsKICAgICBDaGFyYWN0ZXJDbGFzc0NvbnN0cnVjdG9y
IG1fY2hhcmFjdGVyQ2xhc3NDb25zdHJ1Y3RvcjsKLSAgICBWZWN0b3I8U3RyaW5nPiBtX3VubWF0
Y2hlZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXM7CiAgICAgdm9pZCogbV9zdGFja0xpbWl0OwogICAg
IEVycm9yQ29kZSBtX2Vycm9yIHsgRXJyb3JDb2RlOjpOb0Vycm9yIH07CiAgICAgYm9vbCBtX2lu
dmVydENoYXJhY3RlckNsYXNzOwpAQCAtMTE0NiwyMyArMTEyOCw2IEBAIEVycm9yQ29kZSBZYXJy
UGF0dGVybjo6Y29tcGlsZShjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIHZvaWQqIHN0YWNr
TGltaXQpCiAgICAgICAgIGlmIChoYXNFcnJvcihlcnJvcikpCiAgICAgICAgICAgICByZXR1cm4g
ZXJyb3I7CiAgICAgfQotICAgIAotICAgIC8vIElmIHRoZSBwYXR0ZXJuIGNvbnRhaW5zIGlsbGVn
YWwgYmFja3JlZmVyZW5jZXMgcmVzZXQgJiByZXBhcnNlLgotICAgIC8vIFF1b3RpbmcgTmV0c2Nh
cGUncyAiV2hhdCdzIG5ldyBpbiBKYXZhU2NyaXB0IDEuMiIsCi0gICAgLy8gICAgICAiTm90ZTog
aWYgdGhlIG51bWJlciBvZiBsZWZ0IHBhcmVudGhlc2VzIGlzIGxlc3MgdGhhbiB0aGUgbnVtYmVy
IHNwZWNpZmllZAotICAgIC8vICAgICAgIGluIFwjLCB0aGUgXCMgaXMgdGFrZW4gYXMgYW4gb2N0
YWwgZXNjYXBlIGFzIGRlc2NyaWJlZCBpbiB0aGUgbmV4dCByb3cuIgotICAgIGlmIChjb250YWlu
c0lsbGVnYWxCYWNrUmVmZXJlbmNlKCkgfHwgY29udGFpbnNJbGxlZ2FsTmFtZWRGb3J3YXJkUmVm
ZXJlbmNlcygpKSB7Ci0gICAgICAgIGlmICh1bmljb2RlKCkpCi0gICAgICAgICAgICByZXR1cm4g
RXJyb3JDb2RlOjpJbnZhbGlkQmFja3JlZmVyZW5jZTsKLQotICAgICAgICB1bnNpZ25lZCBudW1T
dWJwYXR0ZXJucyA9IG1fbnVtU3VicGF0dGVybnM7Ci0KLSAgICAgICAgY29uc3RydWN0b3Iuc2F2
ZVVubWF0Y2hlZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMoKTsKLSAgICAgICAgY29uc3RydWN0b3Iu
cmVzZXRGb3JSZXBhcnNpbmcoKTsKLSAgICAgICAgRXJyb3JDb2RlIGVycm9yID0gcGFyc2UoY29u
c3RydWN0b3IsIHBhdHRlcm5TdHJpbmcsIHVuaWNvZGUoKSwgbnVtU3VicGF0dGVybnMpOwotICAg
ICAgICBBU1NFUlRfVU5VU0VEKGVycm9yLCAhaGFzRXJyb3IoZXJyb3IpKTsKLSAgICAgICAgQVNT
RVJUKG51bVN1YnBhdHRlcm5zID09IG1fbnVtU3VicGF0dGVybnMpOwotICAgIH0KIAogICAgIGNv
bnN0cnVjdG9yLmNoZWNrRm9yVGVybWluYWxQYXJlbnRoZXNlcygpOwogICAgIGNvbnN0cnVjdG9y
Lm9wdGltaXplRG90U3RhcldyYXBwZWRFeHByZXNzaW9ucygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1lhcnJQYXR0ZXJuLmgKaW5kZXggZjZiMjJlNTdlOGYwYjA5ZDU1NDhlYmIxNjQxMjYy
ZjYwMmMwM2I3Ny4uMjc3ZjIwYjc0N2EyZWE5MGRhZGI2YjExYmE0Y2FjZTA4YTE4NDg2OSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGF0dGVybi5oCkBAIC0zOTEsNyArMzkxLDYg
QEAgc3RydWN0IFlhcnJQYXR0ZXJuIHsKICAgICB2b2lkIHJlc2V0Rm9yUmVwYXJzaW5nKCkKICAg
ICB7CiAgICAgICAgIG1fbnVtU3VicGF0dGVybnMgPSAwOwotICAgICAgICBtX21heEJhY2tSZWZl
cmVuY2UgPSAwOwogICAgICAgICBtX2luaXRpYWxTdGFydFZhbHVlRnJhbWVMb2NhdGlvbiA9IDA7
CiAKICAgICAgICAgbV9jb250YWluc0JhY2tyZWZlcmVuY2VzID0gZmFsc2U7CkBAIC00MTUsMjUg
KzQxNCw2IEBAIHN0cnVjdCBZYXJyUGF0dGVybiB7CiAgICAgICAgIG1fZGlzanVuY3Rpb25zLmNs
ZWFyKCk7CiAgICAgICAgIG1fdXNlckNoYXJhY3RlckNsYXNzZXMuY2xlYXIoKTsKICAgICAgICAg
bV9jYXB0dXJlR3JvdXBOYW1lcy5zaHJpbmsoMCk7Ci0gICAgICAgIG1fbmFtZWRGb3J3YXJkUmVm
ZXJlbmNlcy5zaHJpbmsoMCk7Ci0gICAgfQotCi0gICAgYm9vbCBjb250YWluc0lsbGVnYWxCYWNr
UmVmZXJlbmNlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX21heEJhY2tSZWZlcmVuY2UgPiBt
X251bVN1YnBhdHRlcm5zOwotICAgIH0KLSAgICAKLSAgICBib29sIGNvbnRhaW5zSWxsZWdhbE5h
bWVkRm9yd2FyZFJlZmVyZW5jZXMoKQotICAgIHsKLSAgICAgICAgaWYgKG1fbmFtZWRGb3J3YXJk
UmVmZXJlbmNlcy5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAg
ICAgZm9yIChhdXRvJiBlbnRyeSA6IG1fbmFtZWRGb3J3YXJkUmVmZXJlbmNlcykgewotICAgICAg
ICAgICAgaWYgKCFtX2NhcHR1cmVHcm91cE5hbWVzLmNvbnRhaW5zKGVudHJ5KSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKICAgICBib29sIGNvbnRhaW5zVW5zaWduZWRMZW5ndGhQYXR0ZXJuKCkKQEAgLTU1
NSwxMyArNTM1LDExIEBAIHN0cnVjdCBZYXJyUGF0dGVybiB7CiAgICAgYm9vbCBtX3NhdmVJbml0
aWFsU3RhcnRWYWx1ZSA6IDE7CiAgICAgT3B0aW9uU2V0PEZsYWdzPiBtX2ZsYWdzOwogICAgIHVu
c2lnbmVkIG1fbnVtU3VicGF0dGVybnMgeyAwIH07Ci0gICAgdW5zaWduZWQgbV9tYXhCYWNrUmVm
ZXJlbmNlIHsgMCB9OwogICAgIHVuc2lnbmVkIG1faW5pdGlhbFN0YXJ0VmFsdWVGcmFtZUxvY2F0
aW9uIHsgMCB9OwogICAgIFBhdHRlcm5EaXNqdW5jdGlvbiogbV9ib2R5OwogICAgIFZlY3Rvcjxz
dGQ6OnVuaXF1ZV9wdHI8UGF0dGVybkRpc2p1bmN0aW9uPiwgND4gbV9kaXNqdW5jdGlvbnM7CiAg
ICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDaGFyYWN0ZXJDbGFzcz4+IG1fdXNlckNoYXJhY3Rl
ckNsYXNzZXM7CiAgICAgVmVjdG9yPFN0cmluZz4gbV9jYXB0dXJlR3JvdXBOYW1lczsKLSAgICBW
ZWN0b3I8U3RyaW5nPiBtX25hbWVkRm9yd2FyZFJlZmVyZW5jZXM7CiAgICAgSGFzaE1hcDxTdHJp
bmcsIHVuc2lnbmVkPiBtX25hbWVkR3JvdXBUb1BhcmVuSW5kZXg7CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyU3ludGF4Q2hlY2tlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyU3ludGF4Q2hlY2tlci5jcHAKaW5kZXgg
ODZiMGU2N2QxNDZjMjYxNzY0NmQ4YzYzMjQ2Y2M2MjQ1YjQ3YjIyZC4uM2M3YTVkYzM0ODJmZjJl
NzMxZGQ3ZjgyZWY2Y2Q2ZjA1ODMyNDAwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3lhcnIvWWFyclN5bnRheENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1lhcnJTeW50YXhDaGVja2VyLmNwcApAQCAtNDksMTAgKzQ5LDEwIEBAIHB1YmxpYzoK
ICAgICB2b2lkIGF0b21QYXJlbnRoZXNlc0VuZCgpIHt9CiAgICAgdm9pZCBhdG9tQmFja1JlZmVy
ZW5jZSh1bnNpZ25lZCkge30KICAgICB2b2lkIGF0b21OYW1lZEJhY2tSZWZlcmVuY2UoY29uc3Qg
U3RyaW5nJikge30KLSAgICBib29sIGlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UoY29uc3Qg
U3RyaW5nJikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgYXRvbU5hbWVkRm9yd2FyZFJlZmVy
ZW5jZShjb25zdCBTdHJpbmcmKSB7fQogICAgIHZvaWQgcXVhbnRpZnlBdG9tKHVuc2lnbmVkLCB1
bnNpZ25lZCwgYm9vbCkge30KICAgICB2b2lkIGRpc2p1bmN0aW9uKCkge30KKyAgICB2b2lkIHJl
c2V0Rm9yUmVwYXJzaW5nKCkge30KIH07CiAKIEVycm9yQ29kZSBjaGVja1N5bnRheChjb25zdCBT
dHJpbmcmIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFyc2VyLmNwcAppbmRleCBmMDQyMGQ1
MTU4YzczNGNmMTA1MDRjN2E3YzRiYzBmMjQyNGQ4MzFhLi5mODYzMjQzOWY5ZWU1YTM3N2U0MmU2
MGQxOGMyNmE5YzRmNzQzMTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHAKQEAgLTEzNCwxMSArMTM0LDYgQEAgcHVibGlj
OgogICAgICAgICBmYWlsKFVSTEZpbHRlclBhcnNlcjo6QmFja1JlZmVyZW5jZSk7CiAgICAgfQog
Ci0gICAgYm9vbCBpc1ZhbGlkTmFtZWRGb3J3YXJkUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYpCi0g
ICAgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgdm9pZCBhdG9tTmFtZWRG
b3J3YXJkUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYpCiAgICAgewogICAgICAgICBmYWlsKFVSTEZp
bHRlclBhcnNlcjo6Rm9yd2FyZFJlZmVyZW5jZSk7CkBAIC0yNDksNiArMjQ0LDggQEAgcHVibGlj
OgogICAgICAgICBmYWlsKFVSTEZpbHRlclBhcnNlcjo6RGlzanVuY3Rpb24pOwogICAgIH0KIAor
ICAgIFtbbm9yZXR1cm5dXSB2b2lkIHJlc2V0Rm9yUmVwYXJzaW5nKCkgeyBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CisKIHByaXZhdGU6CiAgICAgYm9vbCBoYXNFcnJvcigpIGNvbnN0
CiAgICAgewpAQCAtMzU4LDcgKzM1NSw3IEBAIFVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXMg
VVJMRmlsdGVyUGFyc2VyOjphZGRQYXR0ZXJuKGNvbnN0IFN0cmluZyYgcGF0dGVybiwKIAogICAg
IFBhcnNlU3RhdHVzIHN0YXR1cyA9IE9rOwogICAgIFBhdHRlcm5QYXJzZXIgcGF0dGVyblBhcnNl
cihwYXR0ZXJuSXNDYXNlU2Vuc2l0aXZlKTsKLSAgICBpZiAoIUpTQzo6WWFycjo6aGFzRXJyb3Io
SlNDOjpZYXJyOjpwYXJzZShwYXR0ZXJuUGFyc2VyLCBwYXR0ZXJuLCBmYWxzZSwgMCkpKQorICAg
IGlmICghSlNDOjpZYXJyOjpoYXNFcnJvcihKU0M6OllhcnI6OnBhcnNlKHBhdHRlcm5QYXJzZXIs
IHBhdHRlcm4sIGZhbHNlKSkpCiAgICAgICAgIHBhdHRlcm5QYXJzZXIuZmluYWxpemUocGF0dGVy
bklkLCBtX2NvbWJpbmVkVVJMRmlsdGVycyk7CiAgICAgZWxzZQogICAgICAgICBzdGF0dXMgPSBZ
YXJyRXJyb3I7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDg0ZmVkZDhmYjZkOWY5ZDFjODk2ZGY0OTI5MDZmYmQzYjU0Y2E1ZWUuLmVhN2Iw
ZWE0MGMyYmRiZjYxNzdiN2VmNGQyMTZiZjJmMGZhYjE1N2IgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAt
MDMtMjIgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAg
IEludmFsaWQgbnVtZXJpYyBhbmQgbmFtZWQgcmVmZXJlbmNlcyBzaG91bGQgYmUgZWFybHkgc3lu
dGF4IGVycm9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc4MTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOiBNYXJrIDQ0IHRlc3QgY2FzZXMgYXMgcGFz
c2luZy4KKwogMjAyMC0wMy0yMCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5j
b20+CiAKICAgICAgICAgaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwU3BsaXQgZG9l
c24ndCBjaGVjayBmb3IgQEBtYXRjaCBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0
MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1s
CmluZGV4IDViMmJlZmE4Y2VmYmUzNzZmMmQzNTUzNjgwZmU4ODY4YTk1ZDk2NTAuLmIzMjIxMTNj
ZTkzMTI2ZTcyNDdkYWJmNzIwMzAyZGE5N2FlMGQ0NzcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVz
dDI2Mi9leHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25z
LnlhbWwKQEAgLTE1MjUsOSArMTUyNSw2IEBAIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5
cGUvdGVzdC9TMTUuMTAuNi4zX0ExX1QyMi5qczoKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90
b3R5cGUvdW5pY29kZS9jcm9zcy1yZWFsbS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjog
Y3Jvc3MtcmVhbG0gUmVnRXhwLnByb3RvdHlwZSBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0
aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKICAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IGNyb3NzLXJlYWxtIFJlZ0V4cC5wcm90b3R5cGUgRXhwZWN0ZWQgYSBU
eXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwn
Ci10ZXN0L2J1aWx0LWlucy9SZWdFeHAvdW5pY29kZV9yZXN0cmljdGVkX2lkZW50aXR5X2VzY2Fw
ZV9hbHBoYS5qczoKLSAgZGVmYXVsdDogIlRlc3QyNjJFcnJvcjogSWRlbnRpdHlFc2NhcGUgaW4g
QXRvbUVzY2FwZTogJ2snIEV4cGVjdGVkIGEgU3ludGF4RXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBu
byBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwiCi0gIHN0cmljdCBtb2RlOiAiVGVzdDI2MkVy
cm9yOiBJZGVudGl0eUVzY2FwZSBpbiBBdG9tRXNjYXBlOiAnaycgRXhwZWN0ZWQgYSBTeW50YXhF
cnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCIKIHRl
c3QvYnVpbHQtaW5zL1JlZ0V4cC91bmljb2RlX3Jlc3RyaWN0ZWRfb2N0YWxfZXNjYXBlLmpzOgog
ICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBSZWdFeHAoIltcMV0iLCAidSIpOiAgRXhwZWN0ZWQg
YSBTeW50YXhFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IFJlZ0V4cCgiW1wxXSIsICJ1Iik6
ICBFeHBlY3RlZCBhIFN5bnRheEVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdh
cyB0aHJvd24gYXQgYWxsJwpAQCAtMzA0OCw2OSArMzA0NSw2IEBAIHRlc3QvbGFuZ3VhZ2UvZ2xv
YmFsLWNvZGUvc2NyaXB0LWRlY2wtZnVuYy1lcnItbm9uLWV4dGVuc2libGUuanM6CiB0ZXN0L2xh
bmd1YWdlL2dsb2JhbC1jb2RlL3NjcmlwdC1kZWNsLXZhci1lcnIuanM6CiAgIGRlZmF1bHQ6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhj
ZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjog
RXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRo
cm93biBhdCBhbGwnCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMv
aW52YWxpZC1kYW5nbGluZy1ncm91cG5hbWUtMi11LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2Mjog
VGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTog
J1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3Qv
bGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWRhbmdsaW5nLWdy
b3VwbmFtZS0yLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxk
IG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVt
ZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVn
ZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWRhbmdsaW5nLWdyb3VwbmFtZS0zLXUuanM6Ci0gIGRl
ZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4n
Ci0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBl
dmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2lu
dmFsaWQtZGFuZ2xpbmctZ3JvdXBuYW1lLTMuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlz
IHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVz
dDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5n
dWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtZGFuZ2xpbmctZ3JvdXBu
YW1lLTQtdS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBu
b3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVu
dCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4
cC9uYW1lZC1ncm91cHMvaW52YWxpZC1kYW5nbGluZy1ncm91cG5hbWUtNC5qczoKLSAgZGVmYXVs
dDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAg
c3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1
YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxp
ZC1kYW5nbGluZy1ncm91cG5hbWUtNS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3Rh
dGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYy
OiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdl
L2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1kYW5nbGluZy1ncm91cG5hbWUt
dS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUg
ZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91
bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1l
ZC1ncm91cHMvaW52YWxpZC1kYW5nbGluZy1ncm91cG5hbWUtd2l0aG91dC1ncm91cC11LmpzOgot
ICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0
ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3Qg
YmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vw
cy9pbnZhbGlkLWRhbmdsaW5nLWdyb3VwbmFtZS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRo
aXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xh
bmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1pbmNvbXBsZXRlLWdy
b3VwbmFtZS0yLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxk
IG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVt
ZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVn
ZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWluY29tcGxldGUtZ3JvdXBuYW1lLTMuanM6Ci0gIGRl
ZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4n
Ci0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBl
dmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2lu
dmFsaWQtaW5jb21wbGV0ZS1ncm91cG5hbWUtNC5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRo
aXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xh
bmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1pbmNvbXBsZXRlLWdy
b3VwbmFtZS01LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxk
IG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVt
ZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVn
ZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWluY29tcGxldGUtZ3JvdXBuYW1lLTYuanM6Ci0gIGRl
ZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4n
Ci0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBl
dmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2lu
dmFsaWQtaW5jb21wbGV0ZS1ncm91cG5hbWUtdS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRo
aXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xh
bmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1pbmNvbXBsZXRlLWdy
b3VwbmFtZS13aXRob3V0LWdyb3VwLTMtdS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMg
c3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1
YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1pbmNvbXBsZXRlLWdyb3Vw
bmFtZS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3Qg
YmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBz
aG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC91
LWRlYy1lc2MuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQg
bm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1l
bnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdl
eHAvdS1pbnZhbGlkLWxlZ2FjeS1vY3RhbC1lc2NhcGUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYy
OiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2Rl
OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVz
dC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvdS1pbnZhbGlkLW9vYi1kZWNpbWFsLWVzY2FwZS5q
czoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZh
bHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQg
bm90IGJlIGV2YWx1YXRlZC4nCiB0ZXN0L2xhbmd1YWdlL21vZHVsZS1jb2RlL2V2YWwtcnFzdGQt
b25jZS5qczoKICAgbW9kdWxlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgaWRlbnRpZmllciAn
YXMnLiBFeHBlY3RlZCAnZnJvbScgYmVmb3JlIGV4cG9ydGVkIG1vZHVsZSBuYW1lLiIKIHRlc3Qv
bGFuZ3VhZ2UvbW9kdWxlLWNvZGUvZXZhbC1ycXN0ZC1vcmRlci5qczoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394400</attachid>
            <date>2020-03-24 13:04:04 -0700</date>
            <delta_ts>2020-03-25 15:45:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178175-20200324220402.patch</filename>
            <type>text/plain</type>
            <size>37745</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTg4NDYpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTI0ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBJbnZhbGlkIG51bWVyaWMgYW5kIG5hbWVkIHJlZmVyZW5j
ZXMgc2hvdWxkIGJlIGVhcmx5IHN5bnRheCBlcnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODE3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDogTWFy
ayA0NCB0ZXN0IGNhc2VzIGFzIHBhc3NpbmcuCisKIDIwMjAtMDMtMjAgIFJvc3MgS2lyc2xpbmcg
IDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZm
ZWN0c0ZvclJlZ0V4cFNwbGl0IGRvZXNuJ3QgY2hlY2sgZm9yIEBAbWF0Y2ggb3ZlcnJpZGUKSW5k
ZXg6IEpTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rl
c3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwJKHJldmlzaW9uIDI1ODgxOCkKKysrIEpTVGVz
dHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMTUyNSw5ICsx
NTI1LDYgQEAgdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS90ZXN0L1MxNQogdGVzdC9i
dWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS91bmljb2RlL2Nyb3NzLXJlYWxtLmpzOgogICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBjcm9zcy1yZWFsbSBSZWdFeHAucHJvdG90eXBlIEV4cGVjdGVk
IGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQg
YWxsJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogY3Jvc3MtcmVhbG0gUmVnRXhwLnBy
b3RvdHlwZSBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlv
biB3YXMgdGhyb3duIGF0IGFsbCcKLXRlc3QvYnVpbHQtaW5zL1JlZ0V4cC91bmljb2RlX3Jlc3Ry
aWN0ZWRfaWRlbnRpdHlfZXNjYXBlX2FscGhhLmpzOgotICBkZWZhdWx0OiAiVGVzdDI2MkVycm9y
OiBJZGVudGl0eUVzY2FwZSBpbiBBdG9tRXNjYXBlOiAnaycgRXhwZWN0ZWQgYSBTeW50YXhFcnJv
ciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCIKLSAgc3Ry
aWN0IG1vZGU6ICJUZXN0MjYyRXJyb3I6IElkZW50aXR5RXNjYXBlIGluIEF0b21Fc2NhcGU6ICdr
JyBFeHBlY3RlZCBhIFN5bnRheEVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdh
cyB0aHJvd24gYXQgYWxsIgogdGVzdC9idWlsdC1pbnMvUmVnRXhwL3VuaWNvZGVfcmVzdHJpY3Rl
ZF9vY3RhbF9lc2NhcGUuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IFJlZ0V4cCgiW1wx
XSIsICJ1Iik6ICBFeHBlY3RlZCBhIFN5bnRheEVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhj
ZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjog
UmVnRXhwKCJbXDFdIiwgInUiKTogIEV4cGVjdGVkIGEgU3ludGF4RXJyb3IgdG8gYmUgdGhyb3du
IGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCkBAIC0zMDQ4LDY5ICszMDQ1LDYg
QEAgdGVzdC9sYW5ndWFnZS9nbG9iYWwtY29kZS9zY3JpcHQtZGVjbC1mdQogdGVzdC9sYW5ndWFn
ZS9nbG9iYWwtY29kZS9zY3JpcHQtZGVjbC12YXItZXJyLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlv
biB3YXMgdGhyb3duIGF0IGFsbCcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24g
YXQgYWxsJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFs
aWQtZGFuZ2xpbmctZ3JvdXBuYW1lLTItdS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMg
c3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1
YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1kYW5nbGluZy1ncm91cG5h
bWUtMi5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3Qg
YmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBz
aG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9u
YW1lZC1ncm91cHMvaW52YWxpZC1kYW5nbGluZy1ncm91cG5hbWUtMy11LmpzOgotICBkZWZhdWx0
OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBz
dHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVh
dGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlk
LWRhbmdsaW5nLWdyb3VwbmFtZS0zLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0
ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6
IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2Uv
bGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWRhbmdsaW5nLWdyb3VwbmFtZS00
LXUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJl
IGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hv
dWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFt
ZWQtZ3JvdXBzL2ludmFsaWQtZGFuZ2xpbmctZ3JvdXBuYW1lLTQuanM6Ci0gIGRlZmF1bHQ6ICdU
ZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQu
JwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtZGFu
Z2xpbmctZ3JvdXBuYW1lLTUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVu
dCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhp
cyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRl
cmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtZGFuZ2xpbmctZ3JvdXBuYW1lLXUuanM6
Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1
YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5v
dCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3Jv
dXBzL2ludmFsaWQtZGFuZ2xpbmctZ3JvdXBuYW1lLXdpdGhvdXQtZ3JvdXAtdS5qczoKLSAgZGVm
YXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicK
LSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2
YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52
YWxpZC1kYW5nbGluZy1ncm91cG5hbWUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0
YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2
MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFn
ZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtaW5jb21wbGV0ZS1ncm91cG5h
bWUtMi5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3Qg
YmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBz
aG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9u
YW1lZC1ncm91cHMvaW52YWxpZC1pbmNvbXBsZXRlLWdyb3VwbmFtZS0zLmpzOgotICBkZWZhdWx0
OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBz
dHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVh
dGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlk
LWluY29tcGxldGUtZ3JvdXBuYW1lLTQuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0
YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2
MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFn
ZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtaW5jb21wbGV0ZS1ncm91cG5h
bWUtNS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3Qg
YmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBz
aG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9u
YW1lZC1ncm91cHMvaW52YWxpZC1pbmNvbXBsZXRlLWdyb3VwbmFtZS02LmpzOgotICBkZWZhdWx0
OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBz
dHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVh
dGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlk
LWluY29tcGxldGUtZ3JvdXBuYW1lLXUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0
YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2
MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFn
ZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtaW5jb21wbGV0ZS1ncm91cG5h
bWUtd2l0aG91dC1ncm91cC0zLXUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRl
bWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2Mjog
VGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9s
aXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtaW5jb21wbGV0ZS1ncm91cG5hbWUu
anM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2
YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxk
IG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvdS1kZWMt
ZXNjLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBi
ZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNo
b3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL3Ut
aW52YWxpZC1sZWdhY3ktb2N0YWwtZXNjYXBlLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhp
cyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFu
Z3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL3UtaW52YWxpZC1vb2ItZGVjaW1hbC1lc2NhcGUuanM6Ci0g
IGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRl
ZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBi
ZSBldmFsdWF0ZWQuJwogdGVzdC9sYW5ndWFnZS9tb2R1bGUtY29kZS9ldmFsLXJxc3RkLW9uY2Uu
anM6CiAgIG1vZHVsZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGlkZW50aWZpZXIgJ2FzJy4g
RXhwZWN0ZWQgJ2Zyb20nIGJlZm9yZSBleHBvcnRlZCBtb2R1bGUgbmFtZS4iCiB0ZXN0L2xhbmd1
YWdlL21vZHVsZS1jb2RlL2V2YWwtcnFzdGQtb3JkZXIuanM6CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI1ODgxOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1NiBAQAorMjAyMC0wMy0yNCAgQWxleGV5
IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgSW52YWxpZCBudW1l
cmljIGFuZCBuYW1lZCByZWZlcmVuY2VzIHNob3VsZCBiZSBlYXJseSBzeW50YXggZXJyb3JzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgxNzUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
OgorCisgICAgICAgIDEuIEZpeGVzIG5hbWVkIHJlZmVyZW5jZSBwYXJzaW5nIGluIHBhcnNlRXNj
YXBlKCksIG1ha2luZyAvXGsvdSB0aHJvdyBTeW50YXhFcnJvciBwZXIgc3BlYyBbMV0uCisKKyAg
ICAgICAgMi4gUmV3b3JrcyBjb250YWluc0lsbGVnYWxOYW1lZEZvcndhcmRSZWZlcmVuY2VzKCks
IG1ha2luZyBkYW5nbGluZyAoZS5nLiAvXGs8YT4oPzxiPi4pLykgYW5kCisgICAgICAgICAgIGlu
Y29tcGxldGUgKGUuZy4gL1xrPCg/PGE+LikvKSBuYW1lZCByZWZlcmVuY2VzIHRocm93IFN5bnRh
eEVycm9yIGlmIHRoZSBub24tVW5pY29kZSBwYXR0ZXJuCisgICAgICAgICAgIGNvbnRhaW5zIGEg
bmFtZWQgZ3JvdXAgWzJdLgorCisgICAgICAgIDMuIE1vdmVzIHJlcGFyc2luZyBsb2dpYyBmcm9t
IFlhcnJQYXR0ZXJuIHRvIFlhcnJQYXJzZXIsIGVuc3VyaW5nIHN5bnRheCBlcnJvcnMgZHVlIHRv
IGlsbGVnYWwKKyAgICAgICAgICAgcmVmZXJlbmNlcyAobmFtZWQgJiBudW1lcmljKSBhcmUgdGhy
b3duIGF0IHBhcnNlIHRpbWU7IGRyb3BzIGlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UoKQor
ICAgICAgICAgICBmcm9tIERlbGVnYXRlLCByZWZhY3RvcnMgc2F2ZVVubWF0Y2hlZE5hbWVkRm9y
d2FyZFJlZmVyZW5jZXMoKSwgYW5kIG92ZXJhbGwgaW1wcm92ZXMgY29oZXNpb24KKyAgICAgICAg
ICAgb2YgaWxsZWdhbCByZWZlcmVuY2VzIGxvZ2ljLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90
YzM5LmVzL2VjbWEyNjIvI3Byb2QtSWRlbnRpdHlFc2NhcGUKKyAgICAgICAgWzJdOiBodHRwczov
L3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXJlZ2V4cGluaXRpYWxpemUgKHN0ZXAgNy5iKQorCisgICAg
ICAgICogeWFyci9ZYXJyRXJyb3JDb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6WWFycjo6ZXJyb3JN
ZXNzYWdlKToKKyAgICAgICAgKEpTQzo6WWFycjo6ZXJyb3JUb1Rocm93KToKKyAgICAgICAgKiB5
YXJyL1lhcnJFcnJvckNvZGUuaDoKKyAgICAgICAgKiB5YXJyL1lhcnJQYXJzZXIuaDoKKyAgICAg
ICAgKEpTQzo6WWFycjo6UGFyc2VyOjpDaGFyYWN0ZXJDbGFzc1BhcnNlckRlbGVnYXRlOjphdG9t
TmFtZWRCYWNrUmVmZXJlbmNlKToKKyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjpQYXJzZXIp
OgorICAgICAgICAoSlNDOjpZYXJyOjpQYXJzZXI6OnBhcnNlRXNjYXBlKToKKyAgICAgICAgKEpT
Qzo6WWFycjo6UGFyc2VyOjpwYXJzZVBhcmVudGhlc2VzQmVnaW4pOgorICAgICAgICAoSlNDOjpZ
YXJyOjpQYXJzZXI6OnBhcnNlKToKKyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2VyOjpoYW5kbGVJ
bGxlZ2FsUmVmZXJlbmNlcyk6CisgICAgICAgIChKU0M6OllhcnI6OlBhcnNlcjo6Y29udGFpbnNJ
bGxlZ2FsTmFtZWRGb3J3YXJkUmVmZXJlbmNlKToKKyAgICAgICAgKEpTQzo6WWFycjo6UGFyc2Vy
OjpyZXNldEZvclJlcGFyc2luZyk6CisgICAgICAgIChKU0M6OllhcnI6OnBhcnNlKToKKyAgICAg
ICAgKEpTQzo6WWFycjo6UGFyc2VyOjpDaGFyYWN0ZXJDbGFzc1BhcnNlckRlbGVnYXRlOjppc1Zh
bGlkTmFtZWRGb3J3YXJkUmVmZXJlbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKiB5YXJyL1lhcnJQ
YXR0ZXJuLmNwcDoKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyclBhdHRlcm5Db25zdHJ1Y3Rvcjo6
YXRvbUJhY2tSZWZlcmVuY2UpOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyUGF0dGVybkNvbnN0
cnVjdG9yOjphdG9tTmFtZWRGb3J3YXJkUmVmZXJlbmNlKToKKyAgICAgICAgKEpTQzo6WWFycjo6
WWFyclBhdHRlcm46OmNvbXBpbGUpOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyUGF0dGVybkNv
bnN0cnVjdG9yOjpzYXZlVW5tYXRjaGVkTmFtZWRGb3J3YXJkUmVmZXJlbmNlcyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OllhcnI6OllhcnJQYXR0ZXJuQ29uc3RydWN0b3I6OmlzVmFsaWROYW1l
ZEZvcndhcmRSZWZlcmVuY2UpOiBEZWxldGVkLgorICAgICAgICAqIHlhcnIvWWFyclBhdHRlcm4u
aDoKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyclBhdHRlcm46OnJlc2V0Rm9yUmVwYXJzaW5nKToK
KyAgICAgICAgKEpTQzo6WWFycjo6WWFyclBhdHRlcm46OmNvbnRhaW5zSWxsZWdhbEJhY2tSZWZl
cmVuY2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyUGF0dGVybjo6Y29udGFp
bnNJbGxlZ2FsTmFtZWRGb3J3YXJkUmVmZXJlbmNlcyk6IERlbGV0ZWQuCisgICAgICAgICogeWFy
ci9ZYXJyU3ludGF4Q2hlY2tlci5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OlN5bnRheENoZWNr
ZXI6OmF0b21OYW1lZEJhY2tSZWZlcmVuY2UpOgorICAgICAgICAoSlNDOjpZYXJyOjpTeW50YXhD
aGVja2VyOjpyZXNldEZvclJlcGFyc2luZyk6CisgICAgICAgIChKU0M6OllhcnI6OlN5bnRheENo
ZWNrZXI6OmlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UpOiBEZWxldGVkLgorCiAyMDIwLTAz
LTIwICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBo
YXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JSZWdFeHBTcGxpdCBkb2Vzbid0IGNoZWNrIGZvciBA
QG1hdGNoIG92ZXJyaWRlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyRXJy
b3JDb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
RXJyb3JDb2RlLmNwcAkocmV2aXNpb24gMjU4ODE4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3lhcnIvWWFyckVycm9yQ29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAg
Y29uc3QgY2hhciogZXJyb3JNZXNzYWdlKEVycm9yQ29kZSBlcnJvcgogICAgICAgICBSRUdFWFBf
RVJST1JfUFJFRklYICJcXCBhdCBlbmQgb2YgcGF0dGVybiIsICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gRXNjYXBlVW50ZXJtaW5hdGVkCiAgICAgICAgIFJFR0VYUF9FUlJPUl9Q
UkVGSVggImludmFsaWQgVW5pY29kZSB7fSBlc2NhcGUiLCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBJbnZhbGlkVW5pY29kZUVzY2FwZQogICAgICAgICBSRUdFWFBfRVJST1JfUFJFRklY
ICJpbnZhbGlkIGJhY2tyZWZlcmVuY2UgZm9yIFVuaWNvZGUgcGF0dGVybiIsICAgICAgICAgICAg
Ly8gSW52YWxpZEJhY2tyZWZlcmVuY2UKKyAgICAgICAgUkVHRVhQX0VSUk9SX1BSRUZJWCAiaW52
YWxpZCBcXGs8PiBuYW1lZCBiYWNrcmVmZXJlbmNlIiwgICAgICAgICAgICAgICAgICAgIC8vIElu
dmFsaWROYW1lZEJhY2tyZWZlcmVuY2UKICAgICAgICAgUkVHRVhQX0VSUk9SX1BSRUZJWCAiaW52
YWxpZCBlc2NhcGVkIGNoYXJhY3RlciBmb3IgVW5pY29kZSBwYXR0ZXJuIiwgICAgICAgIC8vIElu
dmFsaWRJZGVudGl0eUVzY2FwZQogICAgICAgICBSRUdFWFBfRVJST1JfUFJFRklYICJpbnZhbGlk
IFxcYyBlc2NhcGUgZm9yIFVuaWNvZGUgcGF0dGVybiIsICAgICAgICAgICAgICAgLy8gSW52YWxp
ZENvbnRyb2xMZXR0ZXJFc2NhcGUKICAgICAgICAgUkVHRVhQX0VSUk9SX1BSRUZJWCAiaW52YWxp
ZCBwcm9wZXJ0eSBleHByZXNzaW9uIiwgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEludmFs
aWRVbmljb2RlUHJvcGVydHlFeHByZXNzaW9uCkBAIC04Nyw2ICs4OCw3IEBAIEpTT2JqZWN0KiBl
cnJvclRvVGhyb3coSlNHbG9iYWxPYmplY3QqIGcKICAgICBjYXNlIEVycm9yQ29kZTo6RXNjYXBl
VW50ZXJtaW5hdGVkOgogICAgIGNhc2UgRXJyb3JDb2RlOjpJbnZhbGlkVW5pY29kZUVzY2FwZToK
ICAgICBjYXNlIEVycm9yQ29kZTo6SW52YWxpZEJhY2tyZWZlcmVuY2U6CisgICAgY2FzZSBFcnJv
ckNvZGU6OkludmFsaWROYW1lZEJhY2tyZWZlcmVuY2U6CiAgICAgY2FzZSBFcnJvckNvZGU6Oklu
dmFsaWRJZGVudGl0eUVzY2FwZToKICAgICBjYXNlIEVycm9yQ29kZTo6SW52YWxpZENvbnRyb2xM
ZXR0ZXJFc2NhcGU6CiAgICAgY2FzZSBFcnJvckNvZGU6OkludmFsaWRVbmljb2RlUHJvcGVydHlF
eHByZXNzaW9uOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckVycm9yQ29k
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJFcnJvckNv
ZGUuaAkocmV2aXNpb24gMjU4ODE4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFy
ckVycm9yQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIGVudW0gY2xhc3Mg
RXJyb3JDb2RlIDogdWludDhfdCB7CiAgICAgRXNjYXBlVW50ZXJtaW5hdGVkLAogICAgIEludmFs
aWRVbmljb2RlRXNjYXBlLAogICAgIEludmFsaWRCYWNrcmVmZXJlbmNlLAorICAgIEludmFsaWRO
YW1lZEJhY2tyZWZlcmVuY2UsCiAgICAgSW52YWxpZElkZW50aXR5RXNjYXBlLAogICAgIEludmFs
aWRDb250cm9sTGV0dGVyRXNjYXBlLAogICAgIEludmFsaWRVbmljb2RlUHJvcGVydHlFeHByZXNz
aW9uLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaAkocmV2aXNp
b24gMjU4ODE4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOS0y
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBbGV4ZXkgU2h2YXlrYSA8c2h2YWlrYWxlc2hAZ21haWwuY29tPi4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAsMTcgKzExLDE3IEBACiAgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI3ByYWdtYSBv
bmNlCkBAIC00MSw3ICs0Miw3IEBAIHRlbXBsYXRlPGNsYXNzIERlbGVnYXRlLCB0eXBlbmFtZSBD
aGFyVHkKIGNsYXNzIFBhcnNlciB7CiBwcml2YXRlOgogICAgIHRlbXBsYXRlPGNsYXNzIEZyaWVu
ZERlbGVnYXRlPgotICAgIGZyaWVuZCBFcnJvckNvZGUgcGFyc2UoRnJpZW5kRGVsZWdhdGUmLCBj
b25zdCBTdHJpbmcmIHBhdHRlcm4sIGJvb2wgaXNVbmljb2RlLCB1bnNpZ25lZCBiYWNrUmVmZXJl
bmNlTGltaXQpOworICAgIGZyaWVuZCBFcnJvckNvZGUgcGFyc2UoRnJpZW5kRGVsZWdhdGUmLCBj
b25zdCBTdHJpbmcmIHBhdHRlcm4sIGJvb2wgaXNVbmljb2RlLCB1bnNpZ25lZCBiYWNrUmVmZXJl
bmNlTGltaXQsIGJvb2wgaXNOYW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkKTsKIAogICAgIC8q
CiAgICAgICogQ2hhcmFjdGVyQ2xhc3NQYXJzZXJEZWxlZ2F0ZToKQEAgLTIwMCw3ICsyMDEsNiBA
QCBwcml2YXRlOgogICAgICAgICBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGFzc2VydGlv
bldvcmRCb3VuZGFyeShib29sKSB7IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAg
ICAgICAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBhdG9tQmFja1JlZmVyZW5jZSh1bnNp
Z25lZCkgeyBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgICAgIE5PX1JFVFVS
Tl9EVUVfVE9fQVNTRVJUIHZvaWQgYXRvbU5hbWVkQmFja1JlZmVyZW5jZShjb25zdCBTdHJpbmcm
KSB7IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICAgICAgTk9fUkVUVVJOX0RV
RV9UT19BU1NFUlQgYm9vbCBpc1ZhbGlkTmFtZWRGb3J3YXJkUmVmZXJlbmNlKGNvbnN0IFN0cmlu
ZyYpIHsgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgICAgICBOT19SRVRVUk5f
RFVFX1RPX0FTU0VSVCB2b2lkIGF0b21OYW1lZEZvcndhcmRSZWZlcmVuY2UoY29uc3QgU3RyaW5n
JikgeyBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICBwcml2YXRlOgpAQCAt
MjE3LDEyICsyMTcsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgVUNoYXIzMiBtX2NoYXJhY3RlcjsK
ICAgICB9OwogCi0gICAgUGFyc2VyKERlbGVnYXRlJiBkZWxlZ2F0ZSwgY29uc3QgU3RyaW5nJiBw
YXR0ZXJuLCBib29sIGlzVW5pY29kZSwgdW5zaWduZWQgYmFja1JlZmVyZW5jZUxpbWl0KQorICAg
IFBhcnNlcihEZWxlZ2F0ZSYgZGVsZWdhdGUsIGNvbnN0IFN0cmluZyYgcGF0dGVybiwgYm9vbCBp
c1VuaWNvZGUsIHVuc2lnbmVkIGJhY2tSZWZlcmVuY2VMaW1pdCwgYm9vbCBpc05hbWVkRm9yd2Fy
ZFJlZmVyZW5jZUFsbG93ZWQpCiAgICAgICAgIDogbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKLSAgICAg
ICAgLCBtX2JhY2tSZWZlcmVuY2VMaW1pdChiYWNrUmVmZXJlbmNlTGltaXQpCiAgICAgICAgICwg
bV9kYXRhKHBhdHRlcm4uY2hhcmFjdGVyczxDaGFyVHlwZT4oKSkKICAgICAgICAgLCBtX3NpemUo
cGF0dGVybi5sZW5ndGgoKSkKICAgICAgICAgLCBtX2lzVW5pY29kZShpc1VuaWNvZGUpCisgICAg
ICAgICwgbV9iYWNrUmVmZXJlbmNlTGltaXQoYmFja1JlZmVyZW5jZUxpbWl0KQorICAgICAgICAs
IG1faXNOYW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkKGlzTmFtZWRGb3J3YXJkUmVmZXJlbmNl
QWxsb3dlZCkKICAgICB7CiAgICAgfQogCkBAIC0zNDEsMTYgKzM0MiwxMiBAQCBwcml2YXRlOgog
CiAgICAgICAgICAgICAgICAgdW5zaWduZWQgYmFja1JlZmVyZW5jZSA9IGNvbnN1bWVOdW1iZXIo
KTsKICAgICAgICAgICAgICAgICBpZiAoYmFja1JlZmVyZW5jZSA8PSBtX2JhY2tSZWZlcmVuY2VM
aW1pdCkgeworICAgICAgICAgICAgICAgICAgICBtX21heFNlZW5CYWNrUmVmZXJlbmNlID0gc3Rk
OjptYXgobV9tYXhTZWVuQmFja1JlZmVyZW5jZSwgYmFja1JlZmVyZW5jZSk7CiAgICAgICAgICAg
ICAgICAgICAgIGRlbGVnYXRlLmF0b21CYWNrUmVmZXJlbmNlKGJhY2tSZWZlcmVuY2UpOwogICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
ICAgICByZXN0b3JlU3RhdGUoc3RhdGUpOwotCi0gICAgICAgICAgICAgICAgaWYgKG1faXNVbmlj
b2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fZXJyb3JDb2RlID0gRXJyb3JDb2RlOjpJbnZh
bGlkQmFja3JlZmVyZW5jZTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gTm90IGEgYmFj
a3JlZmVyZW5jZSwgYW5kIG5vdCBvY3RhbC4gSnVzdCBhIG51bWJlci4KQEAgLTQ0MiwyOCArNDM5
LDI3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgJ2snOiB7CiAgICAgICAgICAgICBjb25zdW1l
KCk7CiAgICAgICAgICAgICBQYXJzZVN0YXRlIHN0YXRlID0gc2F2ZVN0YXRlKCk7Ci0gICAgICAg
ICAgICBpZiAoIWF0RW5kT2ZQYXR0ZXJuKCkgJiYgIWluQ2hhcmFjdGVyQ2xhc3MpIHsKLSAgICAg
ICAgICAgICAgICBpZiAoY29uc3VtZSgpID09ICc8JykgewotICAgICAgICAgICAgICAgICAgICBh
dXRvIGdyb3VwTmFtZSA9IHRyeUNvbnN1bWVHcm91cE5hbWUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKGdyb3VwTmFtZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fY2FwdHVy
ZUdyb3VwTmFtZXMuY29udGFpbnMoZ3JvdXBOYW1lLnZhbHVlKCkpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGVsZWdhdGUuYXRvbU5hbWVkQmFja1JlZmVyZW5jZShncm91cE5hbWUu
dmFsdWUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChkZWxlZ2F0ZS5pc1ZhbGlkTmFtZWRGb3J3YXJkUmVmZXJlbmNlKGdyb3Vw
TmFtZS52YWx1ZSgpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGVnYXRlLmF0
b21OYW1lZEZvcndhcmRSZWZlcmVuY2UoZ3JvdXBOYW1lLnZhbHVlKCkpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgaWYgKCFpbkNoYXJhY3RlckNsYXNzICYmIHRyeUNvbnN1bWUoJzwnKSkgeworICAgICAg
ICAgICAgICAgIGF1dG8gZ3JvdXBOYW1lID0gdHJ5Q29uc3VtZUdyb3VwTmFtZSgpOworICAgICAg
ICAgICAgICAgIGlmIChncm91cE5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fY2Fw
dHVyZUdyb3VwTmFtZXMuY29udGFpbnMoZ3JvdXBOYW1lLnZhbHVlKCkpKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBkZWxlZ2F0ZS5hdG9tTmFtZWRCYWNrUmVmZXJlbmNlKGdyb3VwTmFtZS52
YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtX2lzVW5pY29kZSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkludmFsaWRCYWNrcmVmZXJl
bmNlOworCisgICAgICAgICAgICAgICAgICAgIGlmIChtX2lzTmFtZWRGb3J3YXJkUmVmZXJlbmNl
QWxsb3dlZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9mb3J3YXJkUmVmZXJlbmNlTmFt
ZXMuYWRkKGdyb3VwTmFtZS52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlbGVn
YXRlLmF0b21OYW1lZEZvcndhcmRSZWZlcmVuY2UoZ3JvdXBOYW1lLnZhbHVlKCkpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB9CisKICAgICAgICAgICAgIHJlc3RvcmVTdGF0ZShzdGF0
ZSk7Ci0gICAgICAgICAgICBkZWxlZ2F0ZS5hdG9tUGF0dGVybkNoYXJhY3RlcignaycpOworICAg
ICAgICAgICAgaWYgKCFpc0lkZW50aXR5RXNjYXBlQW5FcnJvcignaycpKSB7CisgICAgICAgICAg
ICAgICAgZGVsZWdhdGUuYXRvbVBhdHRlcm5DaGFyYWN0ZXIoJ2snKTsKKyAgICAgICAgICAgICAg
ICBtX2tJZGVudGl0eUVzY2FwZVNlZW4gPSB0cnVlOyAKKyAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTY4MCw2ICs2NzYsMTEgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIGNhc2UgJzwnOiB7CiAgICAgICAgICAgICAgICAgYXV0byBncm91cE5hbWUgPSB0
cnlDb25zdW1lR3JvdXBOYW1lKCk7CiAgICAgICAgICAgICAgICAgaWYgKGdyb3VwTmFtZSkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAobV9rSWRlbnRpdHlFc2NhcGVTZWVuKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52YWxpZE5hbWVkQmFj
a3JlZmVyZW5jZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICB9CisKICAgICAgICAgICAgICAgICAgICAgYXV0byBzZXRBZGRSZXN1bHQgPSBtX2Nh
cHR1cmVHcm91cE5hbWVzLmFkZChncm91cE5hbWUudmFsdWUoKSk7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChzZXRBZGRSZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgICAgICAgICAgICAgICAg
IG1fZGVsZWdhdGUuYXRvbVBhcmVudGhlc2VzU3VicGF0dGVybkJlZ2luKHRydWUsIGdyb3VwTmFt
ZSk7CkBAIC02OTcsNiArNjk4LDkgQEAgcHJpdmF0ZToKICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICBtX2RlbGVnYXRlLmF0b21QYXJlbnRoZXNlc1N1YnBhdHRlcm5CZWdpbigpOwogCisgICAg
ICAgIGlmICh0eXBlID09IFBhcmVudGhlc2VzVHlwZTo6U3VicGF0dGVybikKKyAgICAgICAgICAg
ICsrbV9udW1TdWJwYXR0ZXJuczsKKwogICAgICAgICBtX3BhcmVudGhlc2VzU3RhY2suYXBwZW5k
KHR5cGUpOwogICAgIH0KIApAQCAtODg0LDE0ICs4ODgsODAgQEAgcHJpdmF0ZToKICAgICBFcnJv
ckNvZGUgcGFyc2UoKQogICAgIHsKICAgICAgICAgaWYgKG1fc2l6ZSA+IE1BWF9QQVRURVJOX1NJ
WkUpCi0gICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6UGF0dGVyblRvb0xhcmdl
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBwYXJzZVRva2VucygpOwotICAgICAgICBBU1NF
UlQoYXRFbmRPZlBhdHRlcm4oKSB8fCBoYXNFcnJvcihtX2Vycm9yQ29kZSkpOwotICAgICAgICAK
KyAgICAgICAgICAgIHJldHVybiBFcnJvckNvZGU6OlBhdHRlcm5Ub29MYXJnZTsKKworICAgICAg
ICBwYXJzZVRva2VucygpOworCisgICAgICAgIGlmICghaGFzRXJyb3IobV9lcnJvckNvZGUpKSB7
CisgICAgICAgICAgICBBU1NFUlQoYXRFbmRPZlBhdHRlcm4oKSk7CisgICAgICAgICAgICBoYW5k
bGVJbGxlZ2FsUmVmZXJlbmNlcygpOworICAgICAgICAgICAgQVNTRVJUKGF0RW5kT2ZQYXR0ZXJu
KCkpOworICAgICAgICB9CisKICAgICAgICAgcmV0dXJuIG1fZXJyb3JDb2RlOwogICAgIH0KIAor
ICAgIHZvaWQgaGFuZGxlSWxsZWdhbFJlZmVyZW5jZXMoKQorICAgIHsKKyAgICAgICAgYm9vbCBz
aG91bGRSZXBhcnNlID0gZmFsc2U7CisKKyAgICAgICAgaWYgKG1fbWF4U2VlbkJhY2tSZWZlcmVu
Y2UgPiBtX251bVN1YnBhdHRlcm5zKSB7CisgICAgICAgICAgICAvLyBDb250YWlucyBpbGxlZ2Fs
IG51bWVyaWMgYmFja3JlZmVyZW5jZS4gR3JhbW1hcjogaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIv
I3Byb2QtYW5uZXhCLUF0b21Fc2NhcGUKKyAgICAgICAgICAgIGlmIChtX2lzVW5pY29kZSkgewor
ICAgICAgICAgICAgICAgIG1fZXJyb3JDb2RlID0gRXJyb3JDb2RlOjpJbnZhbGlkQmFja3JlZmVy
ZW5jZTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIG1fYmFja1JlZmVyZW5jZUxpbWl0ID0gbV9udW1TdWJwYXR0ZXJuczsKKyAgICAgICAgICAg
IHNob3VsZFJlcGFyc2UgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNvbnRhaW5z
SWxsZWdhbE5hbWVkRm9yd2FyZFJlZmVyZW5jZSgpKSB7CisgICAgICAgICAgICBpZiAobV9pc1Vu
aWNvZGUgfHwgIW1fY2FwdHVyZUdyb3VwTmFtZXMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAg
ICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkludmFsaWROYW1lZEJhY2tyZWZlcmVuY2U7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtX2lz
TmFtZWRGb3J3YXJkUmVmZXJlbmNlQWxsb3dlZCA9IGZhbHNlOworICAgICAgICAgICAgc2hvdWxk
UmVwYXJzZSA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc2hvdWxkUmVwYXJzZSkg
eworICAgICAgICAgICAgcmVzZXRGb3JSZXBhcnNpbmcoKTsKKyAgICAgICAgICAgIHBhcnNlVG9r
ZW5zKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBib29sIGNvbnRhaW5zSWxsZWdhbE5hbWVk
Rm9yd2FyZFJlZmVyZW5jZSgpCisgICAgeworICAgICAgICBpZiAobV9mb3J3YXJkUmVmZXJlbmNl
TmFtZXMuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlm
IChtX2NhcHR1cmVHcm91cE5hbWVzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBtX2ZvcndhcmRSZWZlcmVuY2VOYW1lcykg
eworICAgICAgICAgICAgaWYgKCFtX2NhcHR1cmVHcm91cE5hbWVzLmNvbnRhaW5zKGVudHJ5KSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICB2b2lkIHJlc2V0Rm9yUmVwYXJzaW5nKCkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVCghaGFzRXJyb3IobV9lcnJvckNvZGUpKTsKKworICAgICAgICBtX2RlbGVn
YXRlLnJlc2V0Rm9yUmVwYXJzaW5nKCk7CisgICAgICAgIG1faW5kZXggPSAwOworICAgICAgICBt
X251bVN1YnBhdHRlcm5zID0gMDsKKyAgICAgICAgbV9tYXhTZWVuQmFja1JlZmVyZW5jZSA9IDA7
CisgICAgICAgIG1fa0lkZW50aXR5RXNjYXBlU2VlbiA9IGZhbHNlOworICAgICAgICBtX3BhcmVu
dGhlc2VzU3RhY2suY2xlYXIoKTsKKyAgICAgICAgbV9jYXB0dXJlR3JvdXBOYW1lcy5jbGVhcigp
OworICAgICAgICBtX2ZvcndhcmRSZWZlcmVuY2VOYW1lcy5jbGVhcigpOworICAgIH0KKwogICAg
IC8vIE1pc2MgaGVscGVyIGZ1bmN0aW9uczoKIAogICAgIHR5cGVkZWYgdW5zaWduZWQgUGFyc2VT
dGF0ZTsKQEAgLTExNTYsMTQgKzEyMjYsMTkgQEAgcHJpdmF0ZToKICAgICBlbnVtIGNsYXNzIFBh
cmVudGhlc2VzVHlwZSA6IHVpbnQ4X3QgeyBTdWJwYXR0ZXJuLCBBc3NlcnRpb24gfTsKIAogICAg
IERlbGVnYXRlJiBtX2RlbGVnYXRlOwotICAgIHVuc2lnbmVkIG1fYmFja1JlZmVyZW5jZUxpbWl0
OwogICAgIEVycm9yQ29kZSBtX2Vycm9yQ29kZSB7IEVycm9yQ29kZTo6Tm9FcnJvciB9OwogICAg
IGNvbnN0IENoYXJUeXBlKiBtX2RhdGE7CiAgICAgdW5zaWduZWQgbV9zaXplOwogICAgIHVuc2ln
bmVkIG1faW5kZXggeyAwIH07CiAgICAgYm9vbCBtX2lzVW5pY29kZTsKKyAgICB1bnNpZ25lZCBt
X2JhY2tSZWZlcmVuY2VMaW1pdDsKKyAgICB1bnNpZ25lZCBtX251bVN1YnBhdHRlcm5zIHsgMCB9
OworICAgIHVuc2lnbmVkIG1fbWF4U2VlbkJhY2tSZWZlcmVuY2UgeyAwIH07CisgICAgYm9vbCBt
X2lzTmFtZWRGb3J3YXJkUmVmZXJlbmNlQWxsb3dlZDsKKyAgICBib29sIG1fa0lkZW50aXR5RXNj
YXBlU2VlbiB7IGZhbHNlIH07CiAgICAgVmVjdG9yPFBhcmVudGhlc2VzVHlwZSwgMTY+IG1fcGFy
ZW50aGVzZXNTdGFjazsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9jYXB0dXJlR3JvdXBOYW1lczsK
KyAgICBIYXNoU2V0PFN0cmluZz4gbV9mb3J3YXJkUmVmZXJlbmNlTmFtZXM7CiAKICAgICAvLyBE
ZXJpdmVkIGJ5IGVtcGlyaWNhbCB0ZXN0aW5nIG9mIGNvbXBpbGUgdGltZSBpbiBQQ1JFIGFuZCBX
UkVDLgogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgTUFYX1BBVFRFUk5fU0laRSA9IDEw
MjQgKiAxMDI0OwpAQCAtMTE5NSwxMyArMTI3MCwxNCBAQCBwcml2YXRlOgogICogICAgdm9pZCBh
dG9tUGFyZW50aGVzZXNFbmQoKTsKICAqICAgIHZvaWQgYXRvbUJhY2tSZWZlcmVuY2UodW5zaWdu
ZWQgc3VicGF0dGVybklkKTsKICAqICAgIHZvaWQgYXRvbU5hbWVkQmFja1JlZmVyZW5jZShjb25z
dCBTdHJpbmcmIHN1YnBhdHRlcm5OYW1lKTsKLSAqICAgIGJvb2wgaXNWYWxpZE5hbWVkRm9yd2Fy
ZFJlZmVyZW5jZShjb25zdCBTdHJpbmcmIHN1YnBhdHRlcm5OYW1lKTsKICAqICAgIHZvaWQgYXRv
bU5hbWVkRm9yd2FyZFJlZmVyZW5jZShjb25zdCBTdHJpbmcmIHN1YnBhdHRlcm5OYW1lKTsKICAq
CiAgKiAgICB2b2lkIHF1YW50aWZ5QXRvbSh1bnNpZ25lZCBtaW4sIHVuc2lnbmVkIG1heCwgYm9v
bCBncmVlZHkpOwogICoKICAqICAgIHZvaWQgZGlzanVuY3Rpb24oKTsKICAqCisgKiAgICB2b2lk
IHJlc2V0Rm9yUmVwYXJzaW5nKCk7CisgKgogICogVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBpcyBk
ZXNjcmliZWQgYnkgYSBzZXF1ZW5jZSBvZiBhc3NlcnRpb24qKCkgYW5kIGF0b20qKCkKICAqIGNh
bGxiYWNrcyB0byB0aGUgZGVsZWdhdGUsIGRlc2NyaWJpbmcgdGhlIHRlcm1zIGluIHRoZSByZWd1
bGFyIGV4cHJlc3Npb24uCiAgKiBGb2xsb3dpbmcgYW4gYXRvbSBhIHF1YW50aWZ5QXRvbSgpIGNh
bGwgbWF5IG9jY3VyIHRvIGluZGljYXRlIHRoYXQgdGhlIHByZXZpb3VzCkBAIC0xMjMyLDExICsx
MzA4LDExIEBAIHByaXZhdGU6CiAgKi8KIAogdGVtcGxhdGU8Y2xhc3MgRGVsZWdhdGU+Ci1FcnJv
ckNvZGUgcGFyc2UoRGVsZWdhdGUmIGRlbGVnYXRlLCBjb25zdCBTdHJpbmcmIHBhdHRlcm4sIGJv
b2wgaXNVbmljb2RlLCB1bnNpZ25lZCBiYWNrUmVmZXJlbmNlTGltaXQgPSBxdWFudGlmeUluZmlu
aXRlKQorRXJyb3JDb2RlIHBhcnNlKERlbGVnYXRlJiBkZWxlZ2F0ZSwgY29uc3QgU3RyaW5nJiBw
YXR0ZXJuLCBib29sIGlzVW5pY29kZSwgdW5zaWduZWQgYmFja1JlZmVyZW5jZUxpbWl0ID0gcXVh
bnRpZnlJbmZpbml0ZSwgYm9vbCBpc05hbWVkRm9yd2FyZFJlZmVyZW5jZUFsbG93ZWQgPSB0cnVl
KQogewogICAgIGlmIChwYXR0ZXJuLmlzOEJpdCgpKQotICAgICAgICByZXR1cm4gUGFyc2VyPERl
bGVnYXRlLCBMQ2hhcj4oZGVsZWdhdGUsIHBhdHRlcm4sIGlzVW5pY29kZSwgYmFja1JlZmVyZW5j
ZUxpbWl0KS5wYXJzZSgpOwotICAgIHJldHVybiBQYXJzZXI8RGVsZWdhdGUsIFVDaGFyPihkZWxl
Z2F0ZSwgcGF0dGVybiwgaXNVbmljb2RlLCBiYWNrUmVmZXJlbmNlTGltaXQpLnBhcnNlKCk7Cisg
ICAgICAgIHJldHVybiBQYXJzZXI8RGVsZWdhdGUsIExDaGFyPihkZWxlZ2F0ZSwgcGF0dGVybiwg
aXNVbmljb2RlLCBiYWNrUmVmZXJlbmNlTGltaXQsIGlzTmFtZWRGb3J3YXJkUmVmZXJlbmNlQWxs
b3dlZCkucGFyc2UoKTsKKyAgICByZXR1cm4gUGFyc2VyPERlbGVnYXRlLCBVQ2hhcj4oZGVsZWdh
dGUsIHBhdHRlcm4sIGlzVW5pY29kZSwgYmFja1JlZmVyZW5jZUxpbWl0LCBpc05hbWVkRm9yd2Fy
ZFJlZmVyZW5jZUFsbG93ZWQpLnBhcnNlKCk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpZ
YXJyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGF0dGVybi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uY3BwCShy
ZXZpc2lvbiAyNTg4MTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGF0dGVy
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2MiwxNiArNDYyLDYgQEAgcHVibGljOgogICAgICAg
ICBtX3BhdHRlcm4ubV9kaXNqdW5jdGlvbnMuYXBwZW5kKFdURk1vdmUoYm9keSkpOwogICAgIH0K
IAotICAgIHZvaWQgc2F2ZVVubWF0Y2hlZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMoKQotICAgIHsK
LSAgICAgICAgbV91bm1hdGNoZWROYW1lZEZvcndhcmRSZWZlcmVuY2VzLnNocmluaygwKTsKLSAg
ICAgICAgCi0gICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBtX3BhdHRlcm4ubV9uYW1lZEZvcndh
cmRSZWZlcmVuY2VzKSB7Ci0gICAgICAgICAgICBpZiAoIW1fcGF0dGVybi5tX2NhcHR1cmVHcm91
cE5hbWVzLmNvbnRhaW5zKGVudHJ5KSkKLSAgICAgICAgICAgICAgICBtX3VubWF0Y2hlZE5hbWVk
Rm9yd2FyZFJlZmVyZW5jZXMuYXBwZW5kKGVudHJ5KTsKLSAgICAgICAgfQotICAgIH0KLQogICAg
IHZvaWQgYXNzZXJ0aW9uQk9MKCkKICAgICB7CiAgICAgICAgIGlmICghbV9hbHRlcm5hdGl2ZS0+
bV90ZXJtcy5zaXplKCkgJiYgIW1faW52ZXJ0UGFyZW50aGV0aWNhbEFzc2VydGlvbikgewpAQCAt
NjU3LDcgKzY0Nyw2IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVChzdWJwYXR0ZXJu
SWQpOwogICAgICAgICBtX3BhdHRlcm4ubV9jb250YWluc0JhY2tyZWZlcmVuY2VzID0gdHJ1ZTsK
LSAgICAgICAgbV9wYXR0ZXJuLm1fbWF4QmFja1JlZmVyZW5jZSA9IHN0ZDo6bWF4KG1fcGF0dGVy
bi5tX21heEJhY2tSZWZlcmVuY2UsIHN1YnBhdHRlcm5JZCk7CiAKICAgICAgICAgaWYgKHN1YnBh
dHRlcm5JZCA+IG1fcGF0dGVybi5tX251bVN1YnBhdHRlcm5zKSB7CiAgICAgICAgICAgICBtX2Fs
dGVybmF0aXZlLT5tX3Rlcm1zLmFwcGVuZChQYXR0ZXJuVGVybTo6Rm9yd2FyZFJlZmVyZW5jZSgp
KTsKQEAgLTY4NywxNCArNjc2LDggQEAgcHVibGljOgogICAgICAgICBhdG9tQmFja1JlZmVyZW5j
ZShtX3BhdHRlcm4ubV9uYW1lZEdyb3VwVG9QYXJlbkluZGV4LmdldChzdWJwYXR0ZXJuTmFtZSkp
OwogICAgIH0KIAotICAgIGJvb2wgaXNWYWxpZE5hbWVkRm9yd2FyZFJlZmVyZW5jZShjb25zdCBT
dHJpbmcmIHN1YnBhdHRlcm5OYW1lKQorICAgIHZvaWQgYXRvbU5hbWVkRm9yd2FyZFJlZmVyZW5j
ZShjb25zdCBTdHJpbmcmKQogICAgIHsKLSAgICAgICAgcmV0dXJuICFtX3VubWF0Y2hlZE5hbWVk
Rm9yd2FyZFJlZmVyZW5jZXMuY29udGFpbnMoc3VicGF0dGVybk5hbWUpOwotICAgIH0KLQotICAg
IHZvaWQgYXRvbU5hbWVkRm9yd2FyZFJlZmVyZW5jZShjb25zdCBTdHJpbmcmIHN1YnBhdHRlcm5O
YW1lKQotICAgIHsKLSAgICAgICAgbV9wYXR0ZXJuLm1fbmFtZWRGb3J3YXJkUmVmZXJlbmNlcy5h
cHBlbmRJZk5vdENvbnRhaW5zKHN1YnBhdHRlcm5OYW1lKTsKICAgICAgICAgbV9hbHRlcm5hdGl2
ZS0+bV90ZXJtcy5hcHBlbmQoUGF0dGVyblRlcm06OkZvcndhcmRSZWZlcmVuY2UoKSk7CiAgICAg
fQogICAgIApAQCAtMTEzMCw3ICsxMTEzLDYgQEAgcHJpdmF0ZToKICAgICBZYXJyUGF0dGVybiYg
bV9wYXR0ZXJuOwogICAgIFBhdHRlcm5BbHRlcm5hdGl2ZSogbV9hbHRlcm5hdGl2ZTsKICAgICBD
aGFyYWN0ZXJDbGFzc0NvbnN0cnVjdG9yIG1fY2hhcmFjdGVyQ2xhc3NDb25zdHJ1Y3RvcjsKLSAg
ICBWZWN0b3I8U3RyaW5nPiBtX3VubWF0Y2hlZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXM7CiAgICAg
dm9pZCogbV9zdGFja0xpbWl0OwogICAgIEVycm9yQ29kZSBtX2Vycm9yIHsgRXJyb3JDb2RlOjpO
b0Vycm9yIH07CiAgICAgYm9vbCBtX2ludmVydENoYXJhY3RlckNsYXNzOwpAQCAtMTE0NiwyMyAr
MTEyOCw2IEBAIEVycm9yQ29kZSBZYXJyUGF0dGVybjo6Y29tcGlsZShjb25zdCBTdHIKICAgICAg
ICAgaWYgKGhhc0Vycm9yKGVycm9yKSkKICAgICAgICAgICAgIHJldHVybiBlcnJvcjsKICAgICB9
Ci0gICAgCi0gICAgLy8gSWYgdGhlIHBhdHRlcm4gY29udGFpbnMgaWxsZWdhbCBiYWNrcmVmZXJl
bmNlcyByZXNldCAmIHJlcGFyc2UuCi0gICAgLy8gUXVvdGluZyBOZXRzY2FwZSdzICJXaGF0J3Mg
bmV3IGluIEphdmFTY3JpcHQgMS4yIiwKLSAgICAvLyAgICAgICJOb3RlOiBpZiB0aGUgbnVtYmVy
IG9mIGxlZnQgcGFyZW50aGVzZXMgaXMgbGVzcyB0aGFuIHRoZSBudW1iZXIgc3BlY2lmaWVkCi0g
ICAgLy8gICAgICAgaW4gXCMsIHRoZSBcIyBpcyB0YWtlbiBhcyBhbiBvY3RhbCBlc2NhcGUgYXMg
ZGVzY3JpYmVkIGluIHRoZSBuZXh0IHJvdy4iCi0gICAgaWYgKGNvbnRhaW5zSWxsZWdhbEJhY2tS
ZWZlcmVuY2UoKSB8fCBjb250YWluc0lsbGVnYWxOYW1lZEZvcndhcmRSZWZlcmVuY2VzKCkpIHsK
LSAgICAgICAgaWYgKHVuaWNvZGUoKSkKLSAgICAgICAgICAgIHJldHVybiBFcnJvckNvZGU6Oklu
dmFsaWRCYWNrcmVmZXJlbmNlOwotCi0gICAgICAgIHVuc2lnbmVkIG51bVN1YnBhdHRlcm5zID0g
bV9udW1TdWJwYXR0ZXJuczsKLQotICAgICAgICBjb25zdHJ1Y3Rvci5zYXZlVW5tYXRjaGVkTmFt
ZWRGb3J3YXJkUmVmZXJlbmNlcygpOwotICAgICAgICBjb25zdHJ1Y3Rvci5yZXNldEZvclJlcGFy
c2luZygpOwotICAgICAgICBFcnJvckNvZGUgZXJyb3IgPSBwYXJzZShjb25zdHJ1Y3RvciwgcGF0
dGVyblN0cmluZywgdW5pY29kZSgpLCBudW1TdWJwYXR0ZXJucyk7Ci0gICAgICAgIEFTU0VSVF9V
TlVTRUQoZXJyb3IsICFoYXNFcnJvcihlcnJvcikpOwotICAgICAgICBBU1NFUlQobnVtU3VicGF0
dGVybnMgPT0gbV9udW1TdWJwYXR0ZXJucyk7Ci0gICAgfQogCiAgICAgY29uc3RydWN0b3IuY2hl
Y2tGb3JUZXJtaW5hbFBhcmVudGhlc2VzKCk7CiAgICAgY29uc3RydWN0b3Iub3B0aW1pemVEb3RT
dGFyV3JhcHBlZEV4cHJlc3Npb25zKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFy
ci9ZYXJyUGF0dGVybi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJQYXR0ZXJuLmgJKHJldmlzaW9uIDI1ODgxOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1lhcnJQYXR0ZXJuLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5MSw3ICszOTEsNiBAQCBz
dHJ1Y3QgWWFyclBhdHRlcm4gewogICAgIHZvaWQgcmVzZXRGb3JSZXBhcnNpbmcoKQogICAgIHsK
ICAgICAgICAgbV9udW1TdWJwYXR0ZXJucyA9IDA7Ci0gICAgICAgIG1fbWF4QmFja1JlZmVyZW5j
ZSA9IDA7CiAgICAgICAgIG1faW5pdGlhbFN0YXJ0VmFsdWVGcmFtZUxvY2F0aW9uID0gMDsKIAog
ICAgICAgICBtX2NvbnRhaW5zQmFja3JlZmVyZW5jZXMgPSBmYWxzZTsKQEAgLTQxNSwyNSArNDE0
LDYgQEAgc3RydWN0IFlhcnJQYXR0ZXJuIHsKICAgICAgICAgbV9kaXNqdW5jdGlvbnMuY2xlYXIo
KTsKICAgICAgICAgbV91c2VyQ2hhcmFjdGVyQ2xhc3Nlcy5jbGVhcigpOwogICAgICAgICBtX2Nh
cHR1cmVHcm91cE5hbWVzLnNocmluaygwKTsKLSAgICAgICAgbV9uYW1lZEZvcndhcmRSZWZlcmVu
Y2VzLnNocmluaygwKTsKLSAgICB9Ci0KLSAgICBib29sIGNvbnRhaW5zSWxsZWdhbEJhY2tSZWZl
cmVuY2UoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fbWF4QmFja1JlZmVyZW5jZSA+IG1fbnVt
U3VicGF0dGVybnM7Ci0gICAgfQotICAgIAotICAgIGJvb2wgY29udGFpbnNJbGxlZ2FsTmFtZWRG
b3J3YXJkUmVmZXJlbmNlcygpCi0gICAgewotICAgICAgICBpZiAobV9uYW1lZEZvcndhcmRSZWZl
cmVuY2VzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBm
b3IgKGF1dG8mIGVudHJ5IDogbV9uYW1lZEZvcndhcmRSZWZlcmVuY2VzKSB7Ci0gICAgICAgICAg
ICBpZiAoIW1fY2FwdHVyZUdyb3VwTmFtZXMuY29udGFpbnMoZW50cnkpKQotICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIAogICAgIGJvb2wgY29udGFpbnNVbnNpZ25lZExlbmd0aFBhdHRlcm4oKQpAQCAtNTU1LDEz
ICs1MzUsMTEgQEAgc3RydWN0IFlhcnJQYXR0ZXJuIHsKICAgICBib29sIG1fc2F2ZUluaXRpYWxT
dGFydFZhbHVlIDogMTsKICAgICBPcHRpb25TZXQ8RmxhZ3M+IG1fZmxhZ3M7CiAgICAgdW5zaWdu
ZWQgbV9udW1TdWJwYXR0ZXJucyB7IDAgfTsKLSAgICB1bnNpZ25lZCBtX21heEJhY2tSZWZlcmVu
Y2UgeyAwIH07CiAgICAgdW5zaWduZWQgbV9pbml0aWFsU3RhcnRWYWx1ZUZyYW1lTG9jYXRpb24g
eyAwIH07CiAgICAgUGF0dGVybkRpc2p1bmN0aW9uKiBtX2JvZHk7CiAgICAgVmVjdG9yPHN0ZDo6
dW5pcXVlX3B0cjxQYXR0ZXJuRGlzanVuY3Rpb24+LCA0PiBtX2Rpc2p1bmN0aW9uczsKICAgICBW
ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENoYXJhY3RlckNsYXNzPj4gbV91c2VyQ2hhcmFjdGVyQ2xh
c3NlczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2NhcHR1cmVHcm91cE5hbWVzOwotICAgIFZlY3Rv
cjxTdHJpbmc+IG1fbmFtZWRGb3J3YXJkUmVmZXJlbmNlczsKICAgICBIYXNoTWFwPFN0cmluZywg
dW5zaWduZWQ+IG1fbmFtZWRHcm91cFRvUGFyZW5JbmRleDsKIAogcHJpdmF0ZToKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJTeW50YXhDaGVja2VyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyU3ludGF4Q2hlY2tlci5jcHAJKHJl
dmlzaW9uIDI1ODgxOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJTeW50YXhD
aGVja2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksMTAgKzQ5LDEwIEBAIHB1YmxpYzoKICAg
ICB2b2lkIGF0b21QYXJlbnRoZXNlc0VuZCgpIHt9CiAgICAgdm9pZCBhdG9tQmFja1JlZmVyZW5j
ZSh1bnNpZ25lZCkge30KICAgICB2b2lkIGF0b21OYW1lZEJhY2tSZWZlcmVuY2UoY29uc3QgU3Ry
aW5nJikge30KLSAgICBib29sIGlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UoY29uc3QgU3Ry
aW5nJikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgYXRvbU5hbWVkRm9yd2FyZFJlZmVyZW5j
ZShjb25zdCBTdHJpbmcmKSB7fQogICAgIHZvaWQgcXVhbnRpZnlBdG9tKHVuc2lnbmVkLCB1bnNp
Z25lZCwgYm9vbCkge30KICAgICB2b2lkIGRpc2p1bmN0aW9uKCkge30KKyAgICB2b2lkIHJlc2V0
Rm9yUmVwYXJzaW5nKCkge30KIH07CiAKIEVycm9yQ29kZSBjaGVja1N5bnRheChjb25zdCBTdHJp
bmcmIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgZmxhZ3MpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lv
biAyNTg4MTgpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwyMSBAQAorMjAyMC0wMy0yNCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBn
bWFpbC5jb20+CisKKyAgICAgICAgSW52YWxpZCBudW1lcmljIGFuZCBuYW1lZCByZWZlcmVuY2Vz
IHNob3VsZCBiZSBlYXJseSBzeW50YXggZXJyb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgxNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBY2NvdW50cyBmb3IgY2hhbmdlcyBvZiBZYXJyUGFyc2Vy
J3MgRGVsZWdhdGUgaW50ZXJmYWNlLCBubyBiZWhhdmlvcmFsIGNoYW5nZXMuCisgICAgICAgIHJl
c2V0Rm9yUmVwYXJzaW5nKCkgaXMgbmV2ZXIgY2FsbGVkIGJlY2F1c2Ugd2UgZGlzYWJsZSBudW1l
cmljIGJhY2tyZWZlbmNlcworICAgICAgICBhbmQgbmFtZWQgZm9yd2FyZCByZWZlcmVuY2VzIChz
ZWUgYXJndW1lbnRzIG9mIFlhcnI6OnBhcnNlKCkgY2FsbCkuCisKKyAgICAgICAgVGVzdDogVGVz
dFdlYktpdEFQSS5Db250ZW50RXh0ZW5zaW9uVGVzdC5QYXJzaW5nRmFpbHVyZXMKKworICAgICAg
ICAqIGNvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UGF0dGVyblBhcnNlcjo6cmVzZXRGb3JSZXBhcnNpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6
YWRkUGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UGF0dGVy
blBhcnNlcjo6aXNWYWxpZE5hbWVkRm9yd2FyZFJlZmVyZW5jZSk6IERlbGV0ZWQuCisKIDIwMjAt
MDMtMjEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBbiBhbmltYXRlZCBQTkcgcGxheXMgdGhlIGZyYW1lcyBvbmUgdGltZSBtb3JlIHRoYW4g
dGhlIGltYWdlIGxvb3BDb3VudApJbmRleDogU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvVVJMRmlsdGVyUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwCShyZXZpc2lvbiAyNTg4MTgpCisrKyBT
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzQsMTEgKzEzNCw2IEBAIHB1YmxpYzoKICAgICAgICAgZmFpbChVUkxG
aWx0ZXJQYXJzZXI6OkJhY2tSZWZlcmVuY2UpOwogICAgIH0KIAotICAgIGJvb2wgaXNWYWxpZE5h
bWVkRm9yd2FyZFJlZmVyZW5jZShjb25zdCBTdHJpbmcmKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIH0KLQogICAgIHZvaWQgYXRvbU5hbWVkRm9yd2FyZFJlZmVyZW5jZShjb25z
dCBTdHJpbmcmKQogICAgIHsKICAgICAgICAgZmFpbChVUkxGaWx0ZXJQYXJzZXI6OkZvcndhcmRS
ZWZlcmVuY2UpOwpAQCAtMjQ5LDYgKzI0NCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIGZhaWwoVVJM
RmlsdGVyUGFyc2VyOjpEaXNqdW5jdGlvbik7CiAgICAgfQogCisgICAgTk9fUkVUVVJOX0RVRV9U
T19DUkFTSCB2b2lkIHJlc2V0Rm9yUmVwYXJzaW5nKCkKKyAgICB7CisgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCiBwcml2YXRlOgogICAgIGJvb2wgaGFzRXJy
b3IoKSBjb25zdAogICAgIHsKQEAgLTM1OCw3ICszNTgsNyBAQCBVUkxGaWx0ZXJQYXJzZXI6OlBh
cnNlU3RhdHVzIFVSTEZpbHRlclBhCiAKICAgICBQYXJzZVN0YXR1cyBzdGF0dXMgPSBPazsKICAg
ICBQYXR0ZXJuUGFyc2VyIHBhdHRlcm5QYXJzZXIocGF0dGVybklzQ2FzZVNlbnNpdGl2ZSk7Ci0g
ICAgaWYgKCFKU0M6OllhcnI6Omhhc0Vycm9yKEpTQzo6WWFycjo6cGFyc2UocGF0dGVyblBhcnNl
ciwgcGF0dGVybiwgZmFsc2UsIDApKSkKKyAgICBpZiAoIUpTQzo6WWFycjo6aGFzRXJyb3IoSlND
OjpZYXJyOjpwYXJzZShwYXR0ZXJuUGFyc2VyLCBwYXR0ZXJuLCBmYWxzZSwgMCwgZmFsc2UpKSkK
ICAgICAgICAgcGF0dGVyblBhcnNlci5maW5hbGl6ZShwYXR0ZXJuSWQsIG1fY29tYmluZWRVUkxG
aWx0ZXJzKTsKICAgICBlbHNlCiAgICAgICAgIHN0YXR1cyA9IFlhcnJFcnJvcjsKSW5kZXg6IFRv
b2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1
ODkyOCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDIwLTAzLTI0ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKwor
ICAgICAgICBJbnZhbGlkIG51bWVyaWMgYW5kIG5hbWVkIHJlZmVyZW5jZXMgc2hvdWxkIGJlIGVh
cmx5IHN5bnRheCBlcnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3ODE3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlbW92ZXMgRklYTUUgYXMgWWFyclBhcnNlciBpcyBjb3JyZWN0IG5vdCB0byB0
aHJvdyBlcnJvcnMgYXMgaXQgaXMKKyAgICAgICAgcGFyc2luZyBpbiBub24tVW5pY29kZSBtb2Rl
LiBBbHNvIGFkZHMgYSBmZXcgbmFtZWQgZ3JvdXBzIHRlc3RzLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcDoKKwogMjAyMC0wMy0y
NCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU11bV0sy
XSBTZXQgdGV4dCB0cmFpdCBpc1NpbmdsZUxpbmVEb2N1bWVudApJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3Bw
CShyZXZpc2lvbiAyNTg4MTgpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q29udGVudEV4dGVuc2lvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzYwLDcgKzE3NjAsNiBA
QCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFBhcnNpbmdGYWlsCiAgICAgdGVzdFBhdHRl
cm5TdGF0dXMoIlsiLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0
YXR1czo6WWFyckVycm9yKTsKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiW2F9IiwgQ29udGVudEV4
dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6OllhcnJFcnJvcik7CiAgICAg
Ci0gICAgLy8gRklYTUU6IExvb2sgaW50byB3aHkgdGhlc2UgZG8gbm90IGNhdXNlIFlBUlIgcGFy
c2luZyBlcnJvcnMuICBUaGV5IHByb2JhYmx5IHNob3VsZC4KICAgICB0ZXN0UGF0dGVyblN0YXR1
cygiYV0iLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6
T2spOwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJ7IiwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZp
bHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKICAgICB0ZXN0UGF0dGVyblN0YXR1cygie1th
XSIsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7
CkBAIC0xNzg5LDEwICsxNzg4LDEyIEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgUGFy
c2luZ0ZhaWwKICAgICAKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiKGEpXFwxIiwgQ29udGVudEV4
dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsgLy8gQmFjayByZWZl
cmVuY2VzIGFyZSBkaXNhYmxlZCwgaXQgcGFyc2UgYXMgb2N0YWwgMQogICAgIHRlc3RQYXR0ZXJu
U3RhdHVzKCIoPEE+YSlcXGs8QT4iLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2Vy
OjpQYXJzZVN0YXR1czo6T2spOyAvLyBOYW1lZCBiYWNrIHJlZmVyZW5jZXMgYXJlbid0IGhhbmRs
ZWQsIGl0IHBhcnNlIGFzICJrPEE+IgorICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCIoPzxBPmEpXFxr
PEE+IiwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6OkJh
Y2tSZWZlcmVuY2UpOwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXDEoYSkiLCBDb250ZW50RXh0
ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOyAvLyBGb3J3YXJkIHJl
ZmVyZW5jZXMgYXJlIGRpc2FibGVkLCBpdCBwYXJzZSBhcyBvY3RhbCAxCiAgICAgdGVzdFBhdHRl
cm5TdGF0dXMoIlxcOChhKSIsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBh
cnNlU3RhdHVzOjpPayk7IC8vIEZvcndhcmQgcmVmZXJlbmNlcyBhcmUgZGlzYWJsZWQsIGl0IHBh
cnNlIGFzICc4JwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXDkoYSkiLCBDb250ZW50RXh0ZW5z
aW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOyAvLyBGb3J3YXJkIHJlZmVy
ZW5jZXMgYXJlIGRpc2FibGVkLCBpdCBwYXJzZSBhcyAnOScKICAgICB0ZXN0UGF0dGVyblN0YXR1
cygiXFxrPEE+KDxBPmEpIiwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFy
c2VTdGF0dXM6Ok9rKTsgLy8gTmFtZWQgZm9yd2FyZCByZWZlcmVuY2VzIGFyZW4ndCBoYW5kbGVk
LCBpdCBwYXJzZSBhcyAiazxBPiIKKyAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFxrPEE+KD88QT5h
KSIsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpZYXJy
RXJyb3IpOwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXGs8QT4oYSkiLCBDb250ZW50RXh0ZW5z
aW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOyAvLyBVbm1hdGNoZWQgbmFt
ZWQgZm9yd2FyZCByZWZlcmVuY2VzIGFyZW4ndCBoYW5kbGVkLCBpdCBwYXJzZSBhcyAiazxBPiIK
IH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU4ODE4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDMtMjQgIEFsZXhleSBTaHZh
eWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIEludmFsaWQgbnVtZXJpYyBh
bmQgbmFtZWQgcmVmZXJlbmNlcyBzaG91bGQgYmUgZWFybHkgc3ludGF4IGVycm9ycworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MTc1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9yZWdleHAtbmFt
ZWQtY2FwdHVyZS1ncm91cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0
cy9yZWdleHAtbmFtZWQtY2FwdHVyZS1ncm91cHMuanM6CisKIDIwMjAtMDMtMjEgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBBbiBhbmltYXRl
ZCBQTkcgcGxheXMgdGhlIGZyYW1lcyBvbmUgdGltZSBtb3JlIHRoYW4gdGhlIGltYWdlIGxvb3BD
b3VudApJbmRleDogTGF5b3V0VGVzdHMvanMvcmVnZXhwLW5hbWVkLWNhcHR1cmUtZ3JvdXBzLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdleHAtbmFtZWQtY2Fw
dHVyZS1ncm91cHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNTg4MTgpCisrKyBMYXlvdXRUZXN0
cy9qcy9yZWdleHAtbmFtZWQtY2FwdHVyZS1ncm91cHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC02Niw3ICs2Niw4IEBAIFBBU1MgIlh6elh6eiIubWF0Y2goL1xrPHo+WCg/PHo+eiop
WFxrPHoKIFBBU1MgIjExMjIzMzIyMTEiLm1hdGNoKC9cazxvbmVzPlxrPHR3b3M+XGs8dGhyZWVz
Pig/PG9uZXM+MSopKD88dHdvcz4yKikoPzx0aHJlZXM+MyopXGs8dGhyZWVzPlxrPHR3b3M+XGs8
b25lcz4vKSBpcyBbIjExMjIzMzIyMTEiLCAiMTEiLCAiMjIiLCAiMyJdCiBQQVNTICIxMTIyMzMy
MjExIi5tYXRjaCgvXGs8b25lcz5cazx0d29zPlxrPHRocmVlcz4oPzxvbmVzPjEqKSg/PHR3b3M+
MiopKD88dGhyZWVzPjMqKVxrPHRocmVlcz5cazx0d29zPlxrPG9uZXM+L3UpIGlzIFsiMTEyMjMz
MjIxMSIsICIxMSIsICIyMiIsICIzIl0KIFBBU1MgIlxrPHo+WHp6WCIubWF0Y2goL1xrPHo+WCh6
KilYLykgaXMgWyJrPHo+WHp6WCIsICJ6eiJdCi1QQVNTICJcazx6Plh6elgiLm1hdGNoKC9cazx6
PlgoeiopWC91KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IEludmFsaWQgcmVndWxhciBl
eHByZXNzaW9uOiBpbnZhbGlkIGJhY2tyZWZlcmVuY2UgZm9yIFVuaWNvZGUgcGF0dGVybi4KK1BB
U1MgIlxrPHo+WHp6WCIubWF0Y2goL1xrPHo+WCh6KilYL3UpIHRocmV3IGV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IGludmFsaWQgXGs8PiBuYW1lZCBi
YWNrcmVmZXJlbmNlLgorUEFTUyAvXGs8eHh4KD88YT55KSgvIHRocmV3IGV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IGludmFsaWQgXGs8PiBuYW1lZCBi
YWNrcmVmZXJlbmNlLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvcmVnZXhwLW5hbWVkLWNh
cHR1cmUtZ3JvdXBzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0
cy9yZWdleHAtbmFtZWQtY2FwdHVyZS1ncm91cHMuanMJKHJldmlzaW9uIDI1ODgxOCkKKysrIExh
eW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9yZWdleHAtbmFtZWQtY2FwdHVyZS1ncm91cHMuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTExMSw2ICsxMTEsNyBAQCBzaG91bGRCZSgnIjExMjIzMzIyMTEi
Lm1hdGNoKC9cXFxrPG9uZXM+CiBzaG91bGRCZSgnIjExMjIzMzIyMTEiLm1hdGNoKC9cXFxrPG9u
ZXM+XFxcazx0d29zPlxcXGs8dGhyZWVzPig/PG9uZXM+MSopKD88dHdvcz4yKikoPzx0aHJlZXM+
MyopXFxcazx0aHJlZXM+XFxcazx0d29zPlxcXGs8b25lcz4vdSknLCAnWyIxMTIyMzMyMjExIiwg
IjExIiwgIjIyIiwgIjMiXScpOwogCiAvLyBDaGVjayB0aGF0IGEgbmFtZWQgZm9yd2FyZCByZWZl
cmVuY2UgZm9yIGEgbm9uLWV4aXN0ZW50IG5hbWVkIGNhcHR1cmUKLS8vIG1hdGNoZXMgZm9yIG5v
bi11bmljb2RlIHBhdHRlcm5zIGFuZCB0aHJvd3MgZm9yIHVuaWNvZGUgcGF0dGVybnMuCisvLyBt
YXRjaGVzIGZvciBub24tVW5pY29kZSBwYXR0ZXJucyB3L28gYSBuYW1lZCBncm91cCBhbmQgdGhy
b3dzIGZvciBwYXR0ZXJucyB3aXRoIGEgbmFtZWQgZ3JvdXAgb3IgVW5pY29kZSBmbGFnLgogc2hv
dWxkQmUoJyJcXFxrPHo+WHp6WCIubWF0Y2goL1xcXGs8ej5YKHoqKVgvKScsICdbIms8ej5YenpY
IiwgInp6Il0nKTsKLXNob3VsZFRocm93KCciXFxcazx6Plh6elgiLm1hdGNoKC9cXFxrPHo+WCh6
KilYL3UpJywgJyJTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IGludmFs
aWQgYmFja3JlZmVyZW5jZSBmb3IgVW5pY29kZSBwYXR0ZXJuIicpOworc2hvdWxkVGhyb3coJyJc
XFxrPHo+WHp6WCIubWF0Y2goL1xcXGs8ej5YKHoqKVgvdSknLCAnIlN5bnRheEVycm9yOiBJbnZh
bGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogaW52YWxpZCBcXFxcazw+IG5hbWVkIGJhY2tyZWZlcmVu
Y2UiJyk7CitzaG91bGRUaHJvdygnL1xcXGs8eHh4KD88YT55KSgvJywgJyJTeW50YXhFcnJvcjog
SW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IGludmFsaWQgXFxcXGs8PiBuYW1lZCBiYWNrcmVm
ZXJlbmNlIicpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394553</attachid>
            <date>2020-03-25 15:45:10 -0700</date>
            <delta_ts>2020-03-25 15:52:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178175-20200326004508.patch</filename>
            <type>text/plain</type>
            <size>39046</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MjlkZGE2M2RjYjBiMmRjY2Y4ZDU0ZGZlOGM2YTlmYTQ1N2NiZTJmLi42MTcwZjk2NDkyZTQ1ZTJi
MzVmNzFhMGM5NmRlYTI0Y2UzMDRmM2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NiBAQAorMjAyMC0wMy0yNSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgSW52YWxpZCBudW1lcmljIGFuZCBuYW1lZCByZWZlcmVuY2VzIHNo
b3VsZCBiZSBlYXJseSBzeW50YXggZXJyb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgxNzUKKworICAgICAgICBSZXZpZXdlZCBieSBSb3NzIEtp
cnNsaW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2g6CisKKyAgICAgICAgMS4gRml4ZXMgbmFtZWQg
cmVmZXJlbmNlIHBhcnNpbmcgaW4gcGFyc2VFc2NhcGUoKSwgbWFraW5nIC9cay91IHRocm93IFN5
bnRheEVycm9yIHBlciBzcGVjIFsxXS4KKworICAgICAgICAyLiBSZXdvcmtzIGNvbnRhaW5zSWxs
ZWdhbE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMoKSwgbWFraW5nIGRhbmdsaW5nIChlLmcuIC9cazxh
Pig/PGI+LikvKSBhbmQKKyAgICAgICAgICAgaW5jb21wbGV0ZSAoZS5nLiAvXGs8KD88YT4uKS8p
IG5hbWVkIHJlZmVyZW5jZXMgdGhyb3cgU3ludGF4RXJyb3IgaWYgdGhlIG5vbi1Vbmljb2RlIHBh
dHRlcm4KKyAgICAgICAgICAgY29udGFpbnMgYSBuYW1lZCBncm91cCBbMl0uCisKKyAgICAgICAg
My4gTW92ZXMgcmVwYXJzaW5nIGxvZ2ljIGZyb20gWWFyclBhdHRlcm4gdG8gWWFyclBhcnNlciwg
ZW5zdXJpbmcgc3ludGF4IGVycm9ycyBkdWUgdG8gaWxsZWdhbAorICAgICAgICAgICByZWZlcmVu
Y2VzIChuYW1lZCAmIG51bWVyaWMpIGFyZSB0aHJvd24gYXQgcGFyc2UgdGltZTsgZHJvcHMgaXNW
YWxpZE5hbWVkRm9yd2FyZFJlZmVyZW5jZSgpCisgICAgICAgICAgIGZyb20gRGVsZWdhdGUsIHJl
ZmFjdG9ycyBzYXZlVW5tYXRjaGVkTmFtZWRGb3J3YXJkUmVmZXJlbmNlcygpLCBhbmQgb3ZlcmFs
bCBpbXByb3ZlcyBjb2hlc2lvbgorICAgICAgICAgICBvZiBpbGxlZ2FsIHJlZmVyZW5jZXMgbG9n
aWMuCisKKyAgICAgICAgWzFdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jcHJvZC1JZGVudGl0
eUVzY2FwZQorICAgICAgICBbMl06IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhw
aW5pdGlhbGl6ZSAoc3RlcCA3LmIpCisKKyAgICAgICAgKiB5YXJyL1lhcnJFcnJvckNvZGUuY3Bw
OgorICAgICAgICAoSlNDOjpZYXJyOjplcnJvck1lc3NhZ2UpOgorICAgICAgICAoSlNDOjpZYXJy
OjplcnJvclRvVGhyb3cpOgorICAgICAgICAqIHlhcnIvWWFyckVycm9yQ29kZS5oOgorICAgICAg
ICAqIHlhcnIvWWFyclBhcnNlci5oOgorICAgICAgICAoSlNDOjpZYXJyOjpQYXJzZXI6OkNoYXJh
Y3RlckNsYXNzUGFyc2VyRGVsZWdhdGU6OmF0b21OYW1lZEJhY2tSZWZlcmVuY2UpOgorICAgICAg
ICAoSlNDOjpZYXJyOjpQYXJzZXI6OlBhcnNlcik6CisgICAgICAgIChKU0M6OllhcnI6OlBhcnNl
cjo6cGFyc2VFc2NhcGUpOgorICAgICAgICAoSlNDOjpZYXJyOjpQYXJzZXI6OnBhcnNlUGFyZW50
aGVzZXNCZWdpbik6CisgICAgICAgIChKU0M6OllhcnI6OlBhcnNlcjo6cGFyc2UpOgorICAgICAg
ICAoSlNDOjpZYXJyOjpQYXJzZXI6OmhhbmRsZUlsbGVnYWxSZWZlcmVuY2VzKToKKyAgICAgICAg
KEpTQzo6WWFycjo6UGFyc2VyOjpjb250YWluc0lsbGVnYWxOYW1lZEZvcndhcmRSZWZlcmVuY2Up
OgorICAgICAgICAoSlNDOjpZYXJyOjpQYXJzZXI6OnJlc2V0Rm9yUmVwYXJzaW5nKToKKyAgICAg
ICAgKEpTQzo6WWFycjo6cGFyc2UpOgorICAgICAgICAoSlNDOjpZYXJyOjpQYXJzZXI6OkNoYXJh
Y3RlckNsYXNzUGFyc2VyRGVsZWdhdGU6OmlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UpOiBE
ZWxldGVkLgorICAgICAgICAqIHlhcnIvWWFyclBhdHRlcm4uY3BwOgorICAgICAgICAoSlNDOjpZ
YXJyOjpZYXJyUGF0dGVybkNvbnN0cnVjdG9yOjphdG9tQmFja1JlZmVyZW5jZSk6CisgICAgICAg
IChKU0M6OllhcnI6OllhcnJQYXR0ZXJuQ29uc3RydWN0b3I6OmF0b21OYW1lZEZvcndhcmRSZWZl
cmVuY2UpOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyUGF0dGVybjo6Y29tcGlsZSk6CisgICAg
ICAgIChKU0M6OllhcnI6OllhcnJQYXR0ZXJuQ29uc3RydWN0b3I6OnNhdmVVbm1hdGNoZWROYW1l
ZEZvcndhcmRSZWZlcmVuY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6WWFycjo6WWFyclBh
dHRlcm5Db25zdHJ1Y3Rvcjo6aXNWYWxpZE5hbWVkRm9yd2FyZFJlZmVyZW5jZSk6IERlbGV0ZWQu
CisgICAgICAgICogeWFyci9ZYXJyUGF0dGVybi5oOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJy
UGF0dGVybjo6cmVzZXRGb3JSZXBhcnNpbmcpOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyUGF0
dGVybjo6Y29udGFpbnNJbGxlZ2FsQmFja1JlZmVyZW5jZSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OllhcnI6OllhcnJQYXR0ZXJuOjpjb250YWluc0lsbGVnYWxOYW1lZEZvcndhcmRSZWZlcmVu
Y2VzKTogRGVsZXRlZC4KKyAgICAgICAgKiB5YXJyL1lhcnJTeW50YXhDaGVja2VyLmNwcDoKKyAg
ICAgICAgKEpTQzo6WWFycjo6U3ludGF4Q2hlY2tlcjo6YXRvbU5hbWVkQmFja1JlZmVyZW5jZSk6
CisgICAgICAgIChKU0M6OllhcnI6OlN5bnRheENoZWNrZXI6OnJlc2V0Rm9yUmVwYXJzaW5nKToK
KyAgICAgICAgKEpTQzo6WWFycjo6U3ludGF4Q2hlY2tlcjo6aXNWYWxpZE5hbWVkRm9yd2FyZFJl
ZmVyZW5jZSk6IERlbGV0ZWQuCisKIDIwMjAtMDMtMjUgIEFsZXhleSBTaHZheWthICA8c2h2YWlr
YWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFxiIGVzY2FwZXMgaW5zaWRlIGNoYXJhY3RlciBj
bGFzc2VzIHNob3VsZCBiZSB2YWxpZCBpbiBVbmljb2RlIHBhdHRlcm5zCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZjY4MmU1NzdlMWJkY2Q4MmJhZmMwY2YyOGU5ZTU3OTNmZGJmMTZkMC4uNzI1NTE5MWM1ZjY4YjQz
ODhjOWZhYjBhODQ5NTA3ZDZkZDFiZTM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisy
MDIwLTAzLTI1ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAg
ICAgICBJbnZhbGlkIG51bWVyaWMgYW5kIG5hbWVkIHJlZmVyZW5jZXMgc2hvdWxkIGJlIGVhcmx5
IHN5bnRheCBlcnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3ODE3NQorCisgICAgICAgIFJldmlld2VkIGJ5IFJvc3MgS2lyc2xpbmcuCisKKyAg
ICAgICAgQWNjb3VudHMgZm9yIGNoYW5nZXMgb2YgWWFyclBhcnNlcidzIERlbGVnYXRlIGludGVy
ZmFjZSwgbm8gYmVoYXZpb3JhbCBjaGFuZ2VzLgorICAgICAgICByZXNldEZvclJlcGFyc2luZygp
IGlzIG5ldmVyIGNhbGxlZCBiZWNhdXNlIHdlIGRpc2FibGUgbnVtZXJpYyBiYWNrcmVmZW5jZXMK
KyAgICAgICAgYW5kIG5hbWVkIGZvcndhcmQgcmVmZXJlbmNlcyAoc2VlIGFyZ3VtZW50cyBvZiBZ
YXJyOjpwYXJzZSgpIGNhbGwpLgorCisgICAgICAgIFRlc3Q6IFRlc3RXZWJLaXRBUEkuQ29udGVu
dEV4dGVuc2lvblRlc3QuUGFyc2luZ0ZhaWx1cmVzCisKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5z
aW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVu
c2lvbnM6OlBhdHRlcm5QYXJzZXI6OnJlc2V0Rm9yUmVwYXJzaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OmFkZFBhdHRlcm4pOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlBhdHRlcm5QYXJzZXI6OmlzVmFsaWRO
YW1lZEZvcndhcmRSZWZlcmVuY2UpOiBEZWxldGVkLgorCiAyMDIwLTAzLTI1ICBGcmFuayBZYW5n
ICA8Z3Vvd2VpX3lhbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFVucHJlZml4IC13ZWJraXQtdGV4
dC1vcmllbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFy
ckVycm9yQ29kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyRXJyb3JDb2Rl
LmNwcAppbmRleCAzMzcyYmFkZTJkOTkyNzAyMzRjNDZkMWY5NDdkZmVlNDUyNDA1OTczLi41NWEw
YmVkMDJiN2U2OTVkYzIxN2I0YjE3NWVjMGE5Y2M5N2ZiOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUveWFyci9ZYXJyRXJyb3JDb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJyRXJyb3JDb2RlLmNwcApAQCAtNTMsNiArNTMsNyBAQCBjb25zdCBj
aGFyKiBlcnJvck1lc3NhZ2UoRXJyb3JDb2RlIGVycm9yKQogICAgICAgICBSRUdFWFBfRVJST1Jf
UFJFRklYICJcXCBhdCBlbmQgb2YgcGF0dGVybiIsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gRXNjYXBlVW50ZXJtaW5hdGVkCiAgICAgICAgIFJFR0VYUF9FUlJPUl9QUkVGSVgg
ImludmFsaWQgVW5pY29kZSB7fSBlc2NhcGUiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBJbnZhbGlkVW5pY29kZUVzY2FwZQogICAgICAgICBSRUdFWFBfRVJST1JfUFJFRklYICJpbnZh
bGlkIGJhY2tyZWZlcmVuY2UgZm9yIFVuaWNvZGUgcGF0dGVybiIsICAgICAgICAgICAgLy8gSW52
YWxpZEJhY2tyZWZlcmVuY2UKKyAgICAgICAgUkVHRVhQX0VSUk9SX1BSRUZJWCAiaW52YWxpZCBc
XGs8PiBuYW1lZCBiYWNrcmVmZXJlbmNlIiwgICAgICAgICAgICAgICAgICAgIC8vIEludmFsaWRO
YW1lZEJhY2tyZWZlcmVuY2UKICAgICAgICAgUkVHRVhQX0VSUk9SX1BSRUZJWCAiaW52YWxpZCBl
c2NhcGVkIGNoYXJhY3RlciBmb3IgVW5pY29kZSBwYXR0ZXJuIiwgICAgICAgIC8vIEludmFsaWRJ
ZGVudGl0eUVzY2FwZQogICAgICAgICBSRUdFWFBfRVJST1JfUFJFRklYICJpbnZhbGlkIFxcYyBl
c2NhcGUgZm9yIFVuaWNvZGUgcGF0dGVybiIsICAgICAgICAgICAgICAgLy8gSW52YWxpZENvbnRy
b2xMZXR0ZXJFc2NhcGUKICAgICAgICAgUkVHRVhQX0VSUk9SX1BSRUZJWCAiaW52YWxpZCBwcm9w
ZXJ0eSBleHByZXNzaW9uIiwgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEludmFsaWRVbmlj
b2RlUHJvcGVydHlFeHByZXNzaW9uCkBAIC04Nyw2ICs4OCw3IEBAIEpTT2JqZWN0KiBlcnJvclRv
VGhyb3coSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JDb2RlIGVycm9yKQogICAg
IGNhc2UgRXJyb3JDb2RlOjpFc2NhcGVVbnRlcm1pbmF0ZWQ6CiAgICAgY2FzZSBFcnJvckNvZGU6
OkludmFsaWRVbmljb2RlRXNjYXBlOgogICAgIGNhc2UgRXJyb3JDb2RlOjpJbnZhbGlkQmFja3Jl
ZmVyZW5jZToKKyAgICBjYXNlIEVycm9yQ29kZTo6SW52YWxpZE5hbWVkQmFja3JlZmVyZW5jZToK
ICAgICBjYXNlIEVycm9yQ29kZTo6SW52YWxpZElkZW50aXR5RXNjYXBlOgogICAgIGNhc2UgRXJy
b3JDb2RlOjpJbnZhbGlkQ29udHJvbExldHRlckVzY2FwZToKICAgICBjYXNlIEVycm9yQ29kZTo6
SW52YWxpZFVuaWNvZGVQcm9wZXJ0eUV4cHJlc3Npb246CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJyRXJyb3JDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
eWFyci9ZYXJyRXJyb3JDb2RlLmgKaW5kZXggM2MzYjY5ZDMyZjEzZjA1MzZlNjRiMzIzY2ZjNTI0
MTNlOWY3NzZhYy4uNTI1OTE5NTU4NGM2ZmZlOTE2ZmY5NThkYTgzODIwOTM1NWVlOTk1YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckVycm9yQ29kZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJFcnJvckNvZGUuaApAQCAtNTIsNiArNTIs
NyBAQCBlbnVtIGNsYXNzIEVycm9yQ29kZSA6IHVpbnQ4X3QgewogICAgIEVzY2FwZVVudGVybWlu
YXRlZCwKICAgICBJbnZhbGlkVW5pY29kZUVzY2FwZSwKICAgICBJbnZhbGlkQmFja3JlZmVyZW5j
ZSwKKyAgICBJbnZhbGlkTmFtZWRCYWNrcmVmZXJlbmNlLAogICAgIEludmFsaWRJZGVudGl0eUVz
Y2FwZSwKICAgICBJbnZhbGlkQ29udHJvbExldHRlckVzY2FwZSwKICAgICBJbnZhbGlkVW5pY29k
ZVByb3BlcnR5RXhwcmVzc2lvbiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJQYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIu
aAppbmRleCBjMjhiZmViODk5MzI3YTg4OGJmNDZmYzMwNmE3ODZlZTliZjcyNDAzLi4zZDRiMTIw
ZjU3YjQ0OWM3NTVhODkwYTVjYmMxNGM1NTAxYWJiNWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3lhcnIvWWFyclBhcnNlci5oCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBbGV4ZXkgU2h2YXlrYSA8c2h2YWlrYWxlc2hAZ21haWwuY29tPi4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAsMTcgKzExLDE3IEBACiAgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI3By
YWdtYSBvbmNlCkBAIC00MSw3ICs0Miw3IEBAIHRlbXBsYXRlPGNsYXNzIERlbGVnYXRlLCB0eXBl
bmFtZSBDaGFyVHlwZT4KIGNsYXNzIFBhcnNlciB7CiBwcml2YXRlOgogICAgIHRlbXBsYXRlPGNs
YXNzIEZyaWVuZERlbGVnYXRlPgotICAgIGZyaWVuZCBFcnJvckNvZGUgcGFyc2UoRnJpZW5kRGVs
ZWdhdGUmLCBjb25zdCBTdHJpbmcmIHBhdHRlcm4sIGJvb2wgaXNVbmljb2RlLCB1bnNpZ25lZCBi
YWNrUmVmZXJlbmNlTGltaXQpOworICAgIGZyaWVuZCBFcnJvckNvZGUgcGFyc2UoRnJpZW5kRGVs
ZWdhdGUmLCBjb25zdCBTdHJpbmcmIHBhdHRlcm4sIGJvb2wgaXNVbmljb2RlLCB1bnNpZ25lZCBi
YWNrUmVmZXJlbmNlTGltaXQsIGJvb2wgaXNOYW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkKTsK
IAogICAgIC8qCiAgICAgICogQ2hhcmFjdGVyQ2xhc3NQYXJzZXJEZWxlZ2F0ZToKQEAgLTIwMCw3
ICsyMDEsNiBAQCBwcml2YXRlOgogICAgICAgICBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lk
IGFzc2VydGlvbldvcmRCb3VuZGFyeShib29sKSB7IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KICAgICAgICAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBhdG9tQmFja1JlZmVy
ZW5jZSh1bnNpZ25lZCkgeyBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgICAg
IE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgYXRvbU5hbWVkQmFja1JlZmVyZW5jZShjb25z
dCBTdHJpbmcmKSB7IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICAgICAgTk9f
UkVUVVJOX0RVRV9UT19BU1NFUlQgYm9vbCBpc1ZhbGlkTmFtZWRGb3J3YXJkUmVmZXJlbmNlKGNv
bnN0IFN0cmluZyYpIHsgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgICAgICBO
T19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGF0b21OYW1lZEZvcndhcmRSZWZlcmVuY2UoY29u
c3QgU3RyaW5nJikgeyBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICBwcml2
YXRlOgpAQCAtMjE3LDEyICsyMTcsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgVUNoYXIzMiBtX2No
YXJhY3RlcjsKICAgICB9OwogCi0gICAgUGFyc2VyKERlbGVnYXRlJiBkZWxlZ2F0ZSwgY29uc3Qg
U3RyaW5nJiBwYXR0ZXJuLCBib29sIGlzVW5pY29kZSwgdW5zaWduZWQgYmFja1JlZmVyZW5jZUxp
bWl0KQorICAgIFBhcnNlcihEZWxlZ2F0ZSYgZGVsZWdhdGUsIGNvbnN0IFN0cmluZyYgcGF0dGVy
biwgYm9vbCBpc1VuaWNvZGUsIHVuc2lnbmVkIGJhY2tSZWZlcmVuY2VMaW1pdCwgYm9vbCBpc05h
bWVkRm9yd2FyZFJlZmVyZW5jZUFsbG93ZWQpCiAgICAgICAgIDogbV9kZWxlZ2F0ZShkZWxlZ2F0
ZSkKLSAgICAgICAgLCBtX2JhY2tSZWZlcmVuY2VMaW1pdChiYWNrUmVmZXJlbmNlTGltaXQpCiAg
ICAgICAgICwgbV9kYXRhKHBhdHRlcm4uY2hhcmFjdGVyczxDaGFyVHlwZT4oKSkKICAgICAgICAg
LCBtX3NpemUocGF0dGVybi5sZW5ndGgoKSkKICAgICAgICAgLCBtX2lzVW5pY29kZShpc1VuaWNv
ZGUpCisgICAgICAgICwgbV9iYWNrUmVmZXJlbmNlTGltaXQoYmFja1JlZmVyZW5jZUxpbWl0KQor
ICAgICAgICAsIG1faXNOYW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkKGlzTmFtZWRGb3J3YXJk
UmVmZXJlbmNlQWxsb3dlZCkKICAgICB7CiAgICAgfQogCkBAIC0zMzgsMTYgKzMzOSwxMiBAQCBw
cml2YXRlOgogCiAgICAgICAgICAgICAgICAgdW5zaWduZWQgYmFja1JlZmVyZW5jZSA9IGNvbnN1
bWVOdW1iZXIoKTsKICAgICAgICAgICAgICAgICBpZiAoYmFja1JlZmVyZW5jZSA8PSBtX2JhY2tS
ZWZlcmVuY2VMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBtX21heFNlZW5CYWNrUmVmZXJl
bmNlID0gc3RkOjptYXgobV9tYXhTZWVuQmFja1JlZmVyZW5jZSwgYmFja1JlZmVyZW5jZSk7CiAg
ICAgICAgICAgICAgICAgICAgIGRlbGVnYXRlLmF0b21CYWNrUmVmZXJlbmNlKGJhY2tSZWZlcmVu
Y2UpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAKICAg
ICAgICAgICAgICAgICByZXN0b3JlU3RhdGUoc3RhdGUpOwotCi0gICAgICAgICAgICAgICAgaWYg
KG1faXNVbmljb2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fZXJyb3JDb2RlID0gRXJyb3JD
b2RlOjpJbnZhbGlkQmFja3JlZmVyZW5jZTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8g
Tm90IGEgYmFja3JlZmVyZW5jZSwgYW5kIG5vdCBvY3RhbC4gSnVzdCBhIG51bWJlci4KQEAgLTQz
OSwyOCArNDM2LDI3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgJ2snOiB7CiAgICAgICAgICAg
ICBjb25zdW1lKCk7CiAgICAgICAgICAgICBQYXJzZVN0YXRlIHN0YXRlID0gc2F2ZVN0YXRlKCk7
Ci0gICAgICAgICAgICBpZiAoIWF0RW5kT2ZQYXR0ZXJuKCkgJiYgIWluQ2hhcmFjdGVyQ2xhc3Mp
IHsKLSAgICAgICAgICAgICAgICBpZiAoY29uc3VtZSgpID09ICc8JykgewotICAgICAgICAgICAg
ICAgICAgICBhdXRvIGdyb3VwTmFtZSA9IHRyeUNvbnN1bWVHcm91cE5hbWUoKTsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKGdyb3VwTmFtZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KG1fY2FwdHVyZUdyb3VwTmFtZXMuY29udGFpbnMoZ3JvdXBOYW1lLnZhbHVlKCkpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVsZWdhdGUuYXRvbU5hbWVkQmFja1JlZmVyZW5jZShn
cm91cE5hbWUudmFsdWUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChkZWxlZ2F0ZS5pc1ZhbGlkTmFtZWRGb3J3YXJkUmVmZXJl
bmNlKGdyb3VwTmFtZS52YWx1ZSgpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRl
bGVnYXRlLmF0b21OYW1lZEZvcndhcmRSZWZlcmVuY2UoZ3JvdXBOYW1lLnZhbHVlKCkpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgaWYgKCFpbkNoYXJhY3RlckNsYXNzICYmIHRyeUNvbnN1bWUoJzwnKSkg
eworICAgICAgICAgICAgICAgIGF1dG8gZ3JvdXBOYW1lID0gdHJ5Q29uc3VtZUdyb3VwTmFtZSgp
OworICAgICAgICAgICAgICAgIGlmIChncm91cE5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKG1fY2FwdHVyZUdyb3VwTmFtZXMuY29udGFpbnMoZ3JvdXBOYW1lLnZhbHVlKCkpKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBkZWxlZ2F0ZS5hdG9tTmFtZWRCYWNrUmVmZXJlbmNlKGdy
b3VwTmFtZS52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtX2lzVW5pY29kZSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkludmFsaWRC
YWNrcmVmZXJlbmNlOworCisgICAgICAgICAgICAgICAgICAgIGlmIChtX2lzTmFtZWRGb3J3YXJk
UmVmZXJlbmNlQWxsb3dlZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9mb3J3YXJkUmVm
ZXJlbmNlTmFtZXMuYWRkKGdyb3VwTmFtZS52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGRlbGVnYXRlLmF0b21OYW1lZEZvcndhcmRSZWZlcmVuY2UoZ3JvdXBOYW1lLnZhbHVlKCkp
OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CisKICAgICAgICAgICAgIHJlc3RvcmVT
dGF0ZShzdGF0ZSk7Ci0gICAgICAgICAgICBkZWxlZ2F0ZS5hdG9tUGF0dGVybkNoYXJhY3Rlcign
aycpOworICAgICAgICAgICAgaWYgKCFpc0lkZW50aXR5RXNjYXBlQW5FcnJvcignaycpKSB7Cisg
ICAgICAgICAgICAgICAgZGVsZWdhdGUuYXRvbVBhdHRlcm5DaGFyYWN0ZXIoJ2snKTsKKyAgICAg
ICAgICAgICAgICBtX2tJZGVudGl0eUVzY2FwZVNlZW4gPSB0cnVlOyAKKyAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTY3Nyw2ICs2NzMsMTEgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIGNhc2UgJzwnOiB7CiAgICAgICAgICAgICAgICAgYXV0byBncm91
cE5hbWUgPSB0cnlDb25zdW1lR3JvdXBOYW1lKCk7CiAgICAgICAgICAgICAgICAgaWYgKGdyb3Vw
TmFtZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobV9rSWRlbnRpdHlFc2NhcGVTZWVuKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52YWxp
ZE5hbWVkQmFja3JlZmVyZW5jZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICAgICAgYXV0byBzZXRBZGRSZXN1
bHQgPSBtX2NhcHR1cmVHcm91cE5hbWVzLmFkZChncm91cE5hbWUudmFsdWUoKSk7CiAgICAgICAg
ICAgICAgICAgICAgIGlmIChzZXRBZGRSZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZGVsZWdhdGUuYXRvbVBhcmVudGhlc2VzU3VicGF0dGVybkJlZ2luKHRydWUs
IGdyb3VwTmFtZSk7CkBAIC02OTQsNiArNjk1LDkgQEAgcHJpdmF0ZToKICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICBtX2RlbGVnYXRlLmF0b21QYXJlbnRoZXNlc1N1YnBhdHRlcm5CZWdpbigp
OwogCisgICAgICAgIGlmICh0eXBlID09IFBhcmVudGhlc2VzVHlwZTo6U3VicGF0dGVybikKKyAg
ICAgICAgICAgICsrbV9udW1TdWJwYXR0ZXJuczsKKwogICAgICAgICBtX3BhcmVudGhlc2VzU3Rh
Y2suYXBwZW5kKHR5cGUpOwogICAgIH0KIApAQCAtODgxLDE0ICs4ODUsODcgQEAgcHJpdmF0ZToK
ICAgICBFcnJvckNvZGUgcGFyc2UoKQogICAgIHsKICAgICAgICAgaWYgKG1fc2l6ZSA+IE1BWF9Q
QVRURVJOX1NJWkUpCi0gICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6UGF0dGVy
blRvb0xhcmdlOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBwYXJzZVRva2VucygpOwotICAg
ICAgICBBU1NFUlQoYXRFbmRPZlBhdHRlcm4oKSB8fCBoYXNFcnJvcihtX2Vycm9yQ29kZSkpOwot
ICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBFcnJvckNvZGU6OlBhdHRlcm5Ub29MYXJnZTsK
KworICAgICAgICBwYXJzZVRva2VucygpOworCisgICAgICAgIGlmICghaGFzRXJyb3IobV9lcnJv
ckNvZGUpKSB7CisgICAgICAgICAgICBBU1NFUlQoYXRFbmRPZlBhdHRlcm4oKSk7CisgICAgICAg
ICAgICBoYW5kbGVJbGxlZ2FsUmVmZXJlbmNlcygpOworICAgICAgICAgICAgQVNTRVJUKGF0RW5k
T2ZQYXR0ZXJuKCkpOworICAgICAgICB9CisKICAgICAgICAgcmV0dXJuIG1fZXJyb3JDb2RlOwog
ICAgIH0KIAorICAgIHZvaWQgaGFuZGxlSWxsZWdhbFJlZmVyZW5jZXMoKQorICAgIHsKKyAgICAg
ICAgYm9vbCBzaG91bGRSZXBhcnNlID0gZmFsc2U7CisKKyAgICAgICAgaWYgKG1fbWF4U2VlbkJh
Y2tSZWZlcmVuY2UgPiBtX251bVN1YnBhdHRlcm5zKSB7CisgICAgICAgICAgICAvLyBDb250YWlu
cyBpbGxlZ2FsIG51bWVyaWMgYmFja3JlZmVyZW5jZS4gU2VlIGh0dHBzOi8vdGMzOS5lcy9lY21h
MjYyLyNwcm9kLWFubmV4Qi1BdG9tRXNjYXBlCisgICAgICAgICAgICBpZiAobV9pc1VuaWNvZGUp
IHsKKyAgICAgICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52YWxpZEJhY2ty
ZWZlcmVuY2U7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBtX2JhY2tSZWZlcmVuY2VMaW1pdCA9IG1fbnVtU3VicGF0dGVybnM7CisgICAgICAg
ICAgICBzaG91bGRSZXBhcnNlID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX2tJ
ZGVudGl0eUVzY2FwZVNlZW4gJiYgIW1fY2FwdHVyZUdyb3VwTmFtZXMuaXNFbXB0eSgpKSB7Cisg
ICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52YWxpZE5hbWVkQmFja3JlZmVy
ZW5jZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjb250
YWluc0lsbGVnYWxOYW1lZEZvcndhcmRSZWZlcmVuY2UoKSkgeworICAgICAgICAgICAgLy8gXGs8
YT4gaXMgcGFyc2VkIGFzIG5hbWVkIHJlZmVyZW5jZSBpbiBVbmljb2RlIHBhdHRlcm5zIGJlY2F1
c2Ugb2Ygc3RyaWN0IElkZW50aXR5RXNjYXBlIGdyYW1tYXIuCisgICAgICAgICAgICAvLyBTZWUg
aHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1wYXR0ZXJucy1zdGF0aWMtc2VtYW50aWNzLWVh
cmx5LWVycm9ycworICAgICAgICAgICAgaWYgKG1faXNVbmljb2RlIHx8ICFtX2NhcHR1cmVHcm91
cE5hbWVzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIG1fZXJyb3JDb2RlID0gRXJyb3JD
b2RlOjpJbnZhbGlkTmFtZWRCYWNrcmVmZXJlbmNlOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9pc05hbWVkRm9yd2FyZFJlZmVyZW5jZUFs
bG93ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHNob3VsZFJlcGFyc2UgPSB0cnVlOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKHNob3VsZFJlcGFyc2UpIHsKKyAgICAgICAgICAgIHJlc2V0Rm9y
UmVwYXJzaW5nKCk7CisgICAgICAgICAgICBwYXJzZVRva2VucygpOworICAgICAgICB9CisgICAg
fQorCisgICAgYm9vbCBjb250YWluc0lsbGVnYWxOYW1lZEZvcndhcmRSZWZlcmVuY2UoKQorICAg
IHsKKyAgICAgICAgaWYgKG1fZm9yd2FyZFJlZmVyZW5jZU5hbWVzLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAobV9jYXB0dXJlR3JvdXBOYW1lcy5p
c0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBmb3IgKGF1dG8m
IGVudHJ5IDogbV9mb3J3YXJkUmVmZXJlbmNlTmFtZXMpIHsKKyAgICAgICAgICAgIGlmICghbV9j
YXB0dXJlR3JvdXBOYW1lcy5jb250YWlucyhlbnRyeSkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAg
dm9pZCByZXNldEZvclJlcGFyc2luZygpCisgICAgeworICAgICAgICBBU1NFUlQoIWhhc0Vycm9y
KG1fZXJyb3JDb2RlKSk7CisKKyAgICAgICAgbV9kZWxlZ2F0ZS5yZXNldEZvclJlcGFyc2luZygp
OworICAgICAgICBtX2luZGV4ID0gMDsKKyAgICAgICAgbV9udW1TdWJwYXR0ZXJucyA9IDA7Cisg
ICAgICAgIG1fbWF4U2VlbkJhY2tSZWZlcmVuY2UgPSAwOworICAgICAgICBtX2tJZGVudGl0eUVz
Y2FwZVNlZW4gPSBmYWxzZTsKKyAgICAgICAgbV9wYXJlbnRoZXNlc1N0YWNrLmNsZWFyKCk7Cisg
ICAgICAgIG1fY2FwdHVyZUdyb3VwTmFtZXMuY2xlYXIoKTsKKyAgICAgICAgbV9mb3J3YXJkUmVm
ZXJlbmNlTmFtZXMuY2xlYXIoKTsKKyAgICB9CisKICAgICAvLyBNaXNjIGhlbHBlciBmdW5jdGlv
bnM6CiAKICAgICB0eXBlZGVmIHVuc2lnbmVkIFBhcnNlU3RhdGU7CkBAIC0xMTUzLDE0ICsxMjMw
LDE5IEBAIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBQYXJlbnRoZXNlc1R5cGUgOiB1aW50OF90
IHsgU3VicGF0dGVybiwgQXNzZXJ0aW9uIH07CiAKICAgICBEZWxlZ2F0ZSYgbV9kZWxlZ2F0ZTsK
LSAgICB1bnNpZ25lZCBtX2JhY2tSZWZlcmVuY2VMaW1pdDsKICAgICBFcnJvckNvZGUgbV9lcnJv
ckNvZGUgeyBFcnJvckNvZGU6Ok5vRXJyb3IgfTsKICAgICBjb25zdCBDaGFyVHlwZSogbV9kYXRh
OwogICAgIHVuc2lnbmVkIG1fc2l6ZTsKICAgICB1bnNpZ25lZCBtX2luZGV4IHsgMCB9OwogICAg
IGJvb2wgbV9pc1VuaWNvZGU7CisgICAgdW5zaWduZWQgbV9iYWNrUmVmZXJlbmNlTGltaXQ7Cisg
ICAgdW5zaWduZWQgbV9udW1TdWJwYXR0ZXJucyB7IDAgfTsKKyAgICB1bnNpZ25lZCBtX21heFNl
ZW5CYWNrUmVmZXJlbmNlIHsgMCB9OworICAgIGJvb2wgbV9pc05hbWVkRm9yd2FyZFJlZmVyZW5j
ZUFsbG93ZWQ7CisgICAgYm9vbCBtX2tJZGVudGl0eUVzY2FwZVNlZW4geyBmYWxzZSB9OwogICAg
IFZlY3RvcjxQYXJlbnRoZXNlc1R5cGUsIDE2PiBtX3BhcmVudGhlc2VzU3RhY2s7CiAgICAgSGFz
aFNldDxTdHJpbmc+IG1fY2FwdHVyZUdyb3VwTmFtZXM7CisgICAgSGFzaFNldDxTdHJpbmc+IG1f
Zm9yd2FyZFJlZmVyZW5jZU5hbWVzOwogCiAgICAgLy8gRGVyaXZlZCBieSBlbXBpcmljYWwgdGVz
dGluZyBvZiBjb21waWxlIHRpbWUgaW4gUENSRSBhbmQgV1JFQy4KICAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIE1BWF9QQVRURVJOX1NJWkUgPSAxMDI0ICogMTAyNDsKQEAgLTExOTIsMTMg
KzEyNzQsMTQgQEAgcHJpdmF0ZToKICAqICAgIHZvaWQgYXRvbVBhcmVudGhlc2VzRW5kKCk7CiAg
KiAgICB2b2lkIGF0b21CYWNrUmVmZXJlbmNlKHVuc2lnbmVkIHN1YnBhdHRlcm5JZCk7CiAgKiAg
ICB2b2lkIGF0b21OYW1lZEJhY2tSZWZlcmVuY2UoY29uc3QgU3RyaW5nJiBzdWJwYXR0ZXJuTmFt
ZSk7Ci0gKiAgICBib29sIGlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UoY29uc3QgU3RyaW5n
JiBzdWJwYXR0ZXJuTmFtZSk7CiAgKiAgICB2b2lkIGF0b21OYW1lZEZvcndhcmRSZWZlcmVuY2Uo
Y29uc3QgU3RyaW5nJiBzdWJwYXR0ZXJuTmFtZSk7CiAgKgogICogICAgdm9pZCBxdWFudGlmeUF0
b20odW5zaWduZWQgbWluLCB1bnNpZ25lZCBtYXgsIGJvb2wgZ3JlZWR5KTsKICAqCiAgKiAgICB2
b2lkIGRpc2p1bmN0aW9uKCk7CiAgKgorICogICAgdm9pZCByZXNldEZvclJlcGFyc2luZygpOwor
ICoKICAqIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gaXMgZGVzY3JpYmVkIGJ5IGEgc2VxdWVuY2Ug
b2YgYXNzZXJ0aW9uKigpIGFuZCBhdG9tKigpCiAgKiBjYWxsYmFja3MgdG8gdGhlIGRlbGVnYXRl
LCBkZXNjcmliaW5nIHRoZSB0ZXJtcyBpbiB0aGUgcmVndWxhciBleHByZXNzaW9uLgogICogRm9s
bG93aW5nIGFuIGF0b20gYSBxdWFudGlmeUF0b20oKSBjYWxsIG1heSBvY2N1ciB0byBpbmRpY2F0
ZSB0aGF0IHRoZSBwcmV2aW91cwpAQCAtMTIyOSwxMSArMTMxMiwxMSBAQCBwcml2YXRlOgogICov
CiAKIHRlbXBsYXRlPGNsYXNzIERlbGVnYXRlPgotRXJyb3JDb2RlIHBhcnNlKERlbGVnYXRlJiBk
ZWxlZ2F0ZSwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBib29sIGlzVW5pY29kZSwgdW5zaWduZWQg
YmFja1JlZmVyZW5jZUxpbWl0ID0gcXVhbnRpZnlJbmZpbml0ZSkKK0Vycm9yQ29kZSBwYXJzZShE
ZWxlZ2F0ZSYgZGVsZWdhdGUsIGNvbnN0IFN0cmluZyYgcGF0dGVybiwgYm9vbCBpc1VuaWNvZGUs
IHVuc2lnbmVkIGJhY2tSZWZlcmVuY2VMaW1pdCA9IHF1YW50aWZ5SW5maW5pdGUsIGJvb2wgaXNO
YW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkID0gdHJ1ZSkKIHsKICAgICBpZiAocGF0dGVybi5p
czhCaXQoKSkKLSAgICAgICAgcmV0dXJuIFBhcnNlcjxEZWxlZ2F0ZSwgTENoYXI+KGRlbGVnYXRl
LCBwYXR0ZXJuLCBpc1VuaWNvZGUsIGJhY2tSZWZlcmVuY2VMaW1pdCkucGFyc2UoKTsKLSAgICBy
ZXR1cm4gUGFyc2VyPERlbGVnYXRlLCBVQ2hhcj4oZGVsZWdhdGUsIHBhdHRlcm4sIGlzVW5pY29k
ZSwgYmFja1JlZmVyZW5jZUxpbWl0KS5wYXJzZSgpOworICAgICAgICByZXR1cm4gUGFyc2VyPERl
bGVnYXRlLCBMQ2hhcj4oZGVsZWdhdGUsIHBhdHRlcm4sIGlzVW5pY29kZSwgYmFja1JlZmVyZW5j
ZUxpbWl0LCBpc05hbWVkRm9yd2FyZFJlZmVyZW5jZUFsbG93ZWQpLnBhcnNlKCk7CisgICAgcmV0
dXJuIFBhcnNlcjxEZWxlZ2F0ZSwgVUNoYXI+KGRlbGVnYXRlLCBwYXR0ZXJuLCBpc1VuaWNvZGUs
IGJhY2tSZWZlcmVuY2VMaW1pdCwgaXNOYW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkKS5wYXJz
ZSgpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6WWFycgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3lhcnIvWWFyclBhdHRlcm4uY3BwCmluZGV4IGM1MDgyMDg1NjJhNzUyN2E2MGY1YzMwM2Qx
Y2NkYjE3ZTFmMDZhZDIuLjk3ZmI4Njg0N2MwYTIzOTJjMGM1YWRjN2Y4MjMyMWMzZTY1MmNiMTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXR0ZXJuLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGF0dGVybi5jcHAKQEAgLTQ2Miwx
NiArNDYyLDYgQEAgcHVibGljOgogICAgICAgICBtX3BhdHRlcm4ubV9kaXNqdW5jdGlvbnMuYXBw
ZW5kKFdURk1vdmUoYm9keSkpOwogICAgIH0KIAotICAgIHZvaWQgc2F2ZVVubWF0Y2hlZE5hbWVk
Rm9yd2FyZFJlZmVyZW5jZXMoKQotICAgIHsKLSAgICAgICAgbV91bm1hdGNoZWROYW1lZEZvcndh
cmRSZWZlcmVuY2VzLnNocmluaygwKTsKLSAgICAgICAgCi0gICAgICAgIGZvciAoYXV0byYgZW50
cnkgOiBtX3BhdHRlcm4ubV9uYW1lZEZvcndhcmRSZWZlcmVuY2VzKSB7Ci0gICAgICAgICAgICBp
ZiAoIW1fcGF0dGVybi5tX2NhcHR1cmVHcm91cE5hbWVzLmNvbnRhaW5zKGVudHJ5KSkKLSAgICAg
ICAgICAgICAgICBtX3VubWF0Y2hlZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMuYXBwZW5kKGVudHJ5
KTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIHZvaWQgYXNzZXJ0aW9uQk9MKCkKICAgICB7CiAg
ICAgICAgIGlmICghbV9hbHRlcm5hdGl2ZS0+bV90ZXJtcy5zaXplKCkgJiYgIW1faW52ZXJ0UGFy
ZW50aGV0aWNhbEFzc2VydGlvbikgewpAQCAtNjU3LDcgKzY0Nyw2IEBAIHB1YmxpYzoKICAgICB7
CiAgICAgICAgIEFTU0VSVChzdWJwYXR0ZXJuSWQpOwogICAgICAgICBtX3BhdHRlcm4ubV9jb250
YWluc0JhY2tyZWZlcmVuY2VzID0gdHJ1ZTsKLSAgICAgICAgbV9wYXR0ZXJuLm1fbWF4QmFja1Jl
ZmVyZW5jZSA9IHN0ZDo6bWF4KG1fcGF0dGVybi5tX21heEJhY2tSZWZlcmVuY2UsIHN1YnBhdHRl
cm5JZCk7CiAKICAgICAgICAgaWYgKHN1YnBhdHRlcm5JZCA+IG1fcGF0dGVybi5tX251bVN1YnBh
dHRlcm5zKSB7CiAgICAgICAgICAgICBtX2FsdGVybmF0aXZlLT5tX3Rlcm1zLmFwcGVuZChQYXR0
ZXJuVGVybTo6Rm9yd2FyZFJlZmVyZW5jZSgpKTsKQEAgLTY4NywxNCArNjc2LDggQEAgcHVibGlj
OgogICAgICAgICBhdG9tQmFja1JlZmVyZW5jZShtX3BhdHRlcm4ubV9uYW1lZEdyb3VwVG9QYXJl
bkluZGV4LmdldChzdWJwYXR0ZXJuTmFtZSkpOwogICAgIH0KIAotICAgIGJvb2wgaXNWYWxpZE5h
bWVkRm9yd2FyZFJlZmVyZW5jZShjb25zdCBTdHJpbmcmIHN1YnBhdHRlcm5OYW1lKQorICAgIHZv
aWQgYXRvbU5hbWVkRm9yd2FyZFJlZmVyZW5jZShjb25zdCBTdHJpbmcmKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuICFtX3VubWF0Y2hlZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMuY29udGFpbnMoc3Vi
cGF0dGVybk5hbWUpOwotICAgIH0KLQotICAgIHZvaWQgYXRvbU5hbWVkRm9yd2FyZFJlZmVyZW5j
ZShjb25zdCBTdHJpbmcmIHN1YnBhdHRlcm5OYW1lKQotICAgIHsKLSAgICAgICAgbV9wYXR0ZXJu
Lm1fbmFtZWRGb3J3YXJkUmVmZXJlbmNlcy5hcHBlbmRJZk5vdENvbnRhaW5zKHN1YnBhdHRlcm5O
YW1lKTsKICAgICAgICAgbV9hbHRlcm5hdGl2ZS0+bV90ZXJtcy5hcHBlbmQoUGF0dGVyblRlcm06
OkZvcndhcmRSZWZlcmVuY2UoKSk7CiAgICAgfQogICAgIApAQCAtMTEzMCw3ICsxMTEzLDYgQEAg
cHJpdmF0ZToKICAgICBZYXJyUGF0dGVybiYgbV9wYXR0ZXJuOwogICAgIFBhdHRlcm5BbHRlcm5h
dGl2ZSogbV9hbHRlcm5hdGl2ZTsKICAgICBDaGFyYWN0ZXJDbGFzc0NvbnN0cnVjdG9yIG1fY2hh
cmFjdGVyQ2xhc3NDb25zdHJ1Y3RvcjsKLSAgICBWZWN0b3I8U3RyaW5nPiBtX3VubWF0Y2hlZE5h
bWVkRm9yd2FyZFJlZmVyZW5jZXM7CiAgICAgdm9pZCogbV9zdGFja0xpbWl0OwogICAgIEVycm9y
Q29kZSBtX2Vycm9yIHsgRXJyb3JDb2RlOjpOb0Vycm9yIH07CiAgICAgYm9vbCBtX2ludmVydENo
YXJhY3RlckNsYXNzOwpAQCAtMTE0NiwyMyArMTEyOCw2IEBAIEVycm9yQ29kZSBZYXJyUGF0dGVy
bjo6Y29tcGlsZShjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIHZvaWQqIHN0YWNrTGltaXQp
CiAgICAgICAgIGlmIChoYXNFcnJvcihlcnJvcikpCiAgICAgICAgICAgICByZXR1cm4gZXJyb3I7
CiAgICAgfQotICAgIAotICAgIC8vIElmIHRoZSBwYXR0ZXJuIGNvbnRhaW5zIGlsbGVnYWwgYmFj
a3JlZmVyZW5jZXMgcmVzZXQgJiByZXBhcnNlLgotICAgIC8vIFF1b3RpbmcgTmV0c2NhcGUncyAi
V2hhdCdzIG5ldyBpbiBKYXZhU2NyaXB0IDEuMiIsCi0gICAgLy8gICAgICAiTm90ZTogaWYgdGhl
IG51bWJlciBvZiBsZWZ0IHBhcmVudGhlc2VzIGlzIGxlc3MgdGhhbiB0aGUgbnVtYmVyIHNwZWNp
ZmllZAotICAgIC8vICAgICAgIGluIFwjLCB0aGUgXCMgaXMgdGFrZW4gYXMgYW4gb2N0YWwgZXNj
YXBlIGFzIGRlc2NyaWJlZCBpbiB0aGUgbmV4dCByb3cuIgotICAgIGlmIChjb250YWluc0lsbGVn
YWxCYWNrUmVmZXJlbmNlKCkgfHwgY29udGFpbnNJbGxlZ2FsTmFtZWRGb3J3YXJkUmVmZXJlbmNl
cygpKSB7Ci0gICAgICAgIGlmICh1bmljb2RlKCkpCi0gICAgICAgICAgICByZXR1cm4gRXJyb3JD
b2RlOjpJbnZhbGlkQmFja3JlZmVyZW5jZTsKLQotICAgICAgICB1bnNpZ25lZCBudW1TdWJwYXR0
ZXJucyA9IG1fbnVtU3VicGF0dGVybnM7Ci0KLSAgICAgICAgY29uc3RydWN0b3Iuc2F2ZVVubWF0
Y2hlZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMoKTsKLSAgICAgICAgY29uc3RydWN0b3IucmVzZXRG
b3JSZXBhcnNpbmcoKTsKLSAgICAgICAgRXJyb3JDb2RlIGVycm9yID0gcGFyc2UoY29uc3RydWN0
b3IsIHBhdHRlcm5TdHJpbmcsIHVuaWNvZGUoKSwgbnVtU3VicGF0dGVybnMpOwotICAgICAgICBB
U1NFUlRfVU5VU0VEKGVycm9yLCAhaGFzRXJyb3IoZXJyb3IpKTsKLSAgICAgICAgQVNTRVJUKG51
bVN1YnBhdHRlcm5zID09IG1fbnVtU3VicGF0dGVybnMpOwotICAgIH0KIAogICAgIGNvbnN0cnVj
dG9yLmNoZWNrRm9yVGVybWluYWxQYXJlbnRoZXNlcygpOwogICAgIGNvbnN0cnVjdG9yLm9wdGlt
aXplRG90U3RhcldyYXBwZWRFeHByZXNzaW9ucygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJQYXR0ZXJuLmgKaW5kZXggZjZiMjJlNTdlOGYwYjA5ZDU1NDhlYmIxNjQxMjYyZjYwMmMw
M2I3Ny4uMjc3ZjIwYjc0N2EyZWE5MGRhZGI2YjExYmE0Y2FjZTA4YTE4NDg2OSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGF0dGVybi5oCkBAIC0zOTEsNyArMzkxLDYgQEAgc3Ry
dWN0IFlhcnJQYXR0ZXJuIHsKICAgICB2b2lkIHJlc2V0Rm9yUmVwYXJzaW5nKCkKICAgICB7CiAg
ICAgICAgIG1fbnVtU3VicGF0dGVybnMgPSAwOwotICAgICAgICBtX21heEJhY2tSZWZlcmVuY2Ug
PSAwOwogICAgICAgICBtX2luaXRpYWxTdGFydFZhbHVlRnJhbWVMb2NhdGlvbiA9IDA7CiAKICAg
ICAgICAgbV9jb250YWluc0JhY2tyZWZlcmVuY2VzID0gZmFsc2U7CkBAIC00MTUsMjUgKzQxNCw2
IEBAIHN0cnVjdCBZYXJyUGF0dGVybiB7CiAgICAgICAgIG1fZGlzanVuY3Rpb25zLmNsZWFyKCk7
CiAgICAgICAgIG1fdXNlckNoYXJhY3RlckNsYXNzZXMuY2xlYXIoKTsKICAgICAgICAgbV9jYXB0
dXJlR3JvdXBOYW1lcy5zaHJpbmsoMCk7Ci0gICAgICAgIG1fbmFtZWRGb3J3YXJkUmVmZXJlbmNl
cy5zaHJpbmsoMCk7Ci0gICAgfQotCi0gICAgYm9vbCBjb250YWluc0lsbGVnYWxCYWNrUmVmZXJl
bmNlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX21heEJhY2tSZWZlcmVuY2UgPiBtX251bVN1
YnBhdHRlcm5zOwotICAgIH0KLSAgICAKLSAgICBib29sIGNvbnRhaW5zSWxsZWdhbE5hbWVkRm9y
d2FyZFJlZmVyZW5jZXMoKQotICAgIHsKLSAgICAgICAgaWYgKG1fbmFtZWRGb3J3YXJkUmVmZXJl
bmNlcy5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgZm9y
IChhdXRvJiBlbnRyeSA6IG1fbmFtZWRGb3J3YXJkUmVmZXJlbmNlcykgewotICAgICAgICAgICAg
aWYgKCFtX2NhcHR1cmVHcm91cE5hbWVzLmNvbnRhaW5zKGVudHJ5KSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKICAgICBib29sIGNvbnRhaW5zVW5zaWduZWRMZW5ndGhQYXR0ZXJuKCkKQEAgLTU1NSwxMyAr
NTM1LDExIEBAIHN0cnVjdCBZYXJyUGF0dGVybiB7CiAgICAgYm9vbCBtX3NhdmVJbml0aWFsU3Rh
cnRWYWx1ZSA6IDE7CiAgICAgT3B0aW9uU2V0PEZsYWdzPiBtX2ZsYWdzOwogICAgIHVuc2lnbmVk
IG1fbnVtU3VicGF0dGVybnMgeyAwIH07Ci0gICAgdW5zaWduZWQgbV9tYXhCYWNrUmVmZXJlbmNl
IHsgMCB9OwogICAgIHVuc2lnbmVkIG1faW5pdGlhbFN0YXJ0VmFsdWVGcmFtZUxvY2F0aW9uIHsg
MCB9OwogICAgIFBhdHRlcm5EaXNqdW5jdGlvbiogbV9ib2R5OwogICAgIFZlY3RvcjxzdGQ6OnVu
aXF1ZV9wdHI8UGF0dGVybkRpc2p1bmN0aW9uPiwgND4gbV9kaXNqdW5jdGlvbnM7CiAgICAgVmVj
dG9yPHN0ZDo6dW5pcXVlX3B0cjxDaGFyYWN0ZXJDbGFzcz4+IG1fdXNlckNoYXJhY3RlckNsYXNz
ZXM7CiAgICAgVmVjdG9yPFN0cmluZz4gbV9jYXB0dXJlR3JvdXBOYW1lczsKLSAgICBWZWN0b3I8
U3RyaW5nPiBtX25hbWVkRm9yd2FyZFJlZmVyZW5jZXM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIHVu
c2lnbmVkPiBtX25hbWVkR3JvdXBUb1BhcmVuSW5kZXg7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyU3ludGF4Q2hlY2tlci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyU3ludGF4Q2hlY2tlci5jcHAKaW5kZXggODZiMGU2
N2QxNDZjMjYxNzY0NmQ4YzYzMjQ2Y2M2MjQ1YjQ3YjIyZC4uM2M3YTVkYzM0ODJmZjJlNzMxZGQ3
ZjgyZWY2Y2Q2ZjA1ODMyNDAwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyclN5bnRheENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJTeW50YXhDaGVja2VyLmNwcApAQCAtNDksMTAgKzQ5LDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIGF0b21QYXJlbnRoZXNlc0VuZCgpIHt9CiAgICAgdm9pZCBhdG9tQmFja1JlZmVyZW5jZSh1
bnNpZ25lZCkge30KICAgICB2b2lkIGF0b21OYW1lZEJhY2tSZWZlcmVuY2UoY29uc3QgU3RyaW5n
Jikge30KLSAgICBib29sIGlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UoY29uc3QgU3RyaW5n
JikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgYXRvbU5hbWVkRm9yd2FyZFJlZmVyZW5jZShj
b25zdCBTdHJpbmcmKSB7fQogICAgIHZvaWQgcXVhbnRpZnlBdG9tKHVuc2lnbmVkLCB1bnNpZ25l
ZCwgYm9vbCkge30KICAgICB2b2lkIGRpc2p1bmN0aW9uKCkge30KKyAgICB2b2lkIHJlc2V0Rm9y
UmVwYXJzaW5nKCkge30KIH07CiAKIEVycm9yQ29kZSBjaGVja1N5bnRheChjb25zdCBTdHJpbmcm
IHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFyc2VyLmNwcAppbmRleCBmMDQyMGQ1MTU4Yzcz
NGNmMTA1MDRjN2E3YzRiYzBmMjQyNGQ4MzFhLi5lZjUwY2JiMjNkYmMzZjFkYTU1Y2ZhNGFiZTRj
MTc1M2I4YzhhNzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9u
cy9VUkxGaWx0ZXJQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL1VSTEZpbHRlclBhcnNlci5jcHAKQEAgLTEzNCwxMSArMTM0LDYgQEAgcHVibGljOgogICAg
ICAgICBmYWlsKFVSTEZpbHRlclBhcnNlcjo6QmFja1JlZmVyZW5jZSk7CiAgICAgfQogCi0gICAg
Ym9vbCBpc1ZhbGlkTmFtZWRGb3J3YXJkUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYpCi0gICAgewot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgdm9pZCBhdG9tTmFtZWRGb3J3YXJk
UmVmZXJlbmNlKGNvbnN0IFN0cmluZyYpCiAgICAgewogICAgICAgICBmYWlsKFVSTEZpbHRlclBh
cnNlcjo6Rm9yd2FyZFJlZmVyZW5jZSk7CkBAIC0yNDksNiArMjQ0LDExIEBAIHB1YmxpYzoKICAg
ICAgICAgZmFpbChVUkxGaWx0ZXJQYXJzZXI6OkRpc2p1bmN0aW9uKTsKICAgICB9CiAKKyAgICBO
T19SRVRVUk5fRFVFX1RPX0NSQVNIIHZvaWQgcmVzZXRGb3JSZXBhcnNpbmcoKQorICAgIHsKKyAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKIHByaXZhdGU6CiAg
ICAgYm9vbCBoYXNFcnJvcigpIGNvbnN0CiAgICAgewpAQCAtMzU4LDcgKzM1OCw3IEBAIFVSTEZp
bHRlclBhcnNlcjo6UGFyc2VTdGF0dXMgVVJMRmlsdGVyUGFyc2VyOjphZGRQYXR0ZXJuKGNvbnN0
IFN0cmluZyYgcGF0dGVybiwKIAogICAgIFBhcnNlU3RhdHVzIHN0YXR1cyA9IE9rOwogICAgIFBh
dHRlcm5QYXJzZXIgcGF0dGVyblBhcnNlcihwYXR0ZXJuSXNDYXNlU2Vuc2l0aXZlKTsKLSAgICBp
ZiAoIUpTQzo6WWFycjo6aGFzRXJyb3IoSlNDOjpZYXJyOjpwYXJzZShwYXR0ZXJuUGFyc2VyLCBw
YXR0ZXJuLCBmYWxzZSwgMCkpKQorICAgIGlmICghSlNDOjpZYXJyOjpoYXNFcnJvcihKU0M6Ollh
cnI6OnBhcnNlKHBhdHRlcm5QYXJzZXIsIHBhdHRlcm4sIGZhbHNlLCAwLCBmYWxzZSkpKQogICAg
ICAgICBwYXR0ZXJuUGFyc2VyLmZpbmFsaXplKHBhdHRlcm5JZCwgbV9jb21iaW5lZFVSTEZpbHRl
cnMpOwogICAgIGVsc2UKICAgICAgICAgc3RhdHVzID0gWWFyckVycm9yOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGIwYWQ2ZWI4ZmY2YmJkMzg2
MTc4OGE4ZWMyMzNjYjQ1MWU1YjAwMmUuLjk1NmI1ZDlmYzkwYjQyMGZhYTYyZWI5ZmI4OTA0OTFk
OGVjODY1MjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wMy0yNSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWth
bGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgSW52YWxpZCBudW1lcmljIGFuZCBuYW1lZCByZWZl
cmVuY2VzIHNob3VsZCBiZSBlYXJseSBzeW50YXggZXJyb3JzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgxNzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBSb3NzIEtpcnNsaW5nLgorCisgICAgICAgIFJlbW92ZXMgRklYTUUgYXMgWWFyclBhcnNlciBp
cyBjb3JyZWN0IG5vdCB0byB0aHJvdyBlcnJvcnMgYXMgaXQgaXMKKyAgICAgICAgcGFyc2luZyBp
biBub24tVW5pY29kZSBtb2RlLiBBbHNvIGFkZHMgYSBmZXcgbmFtZWQgZ3JvdXBzIHRlc3RzLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25z
LmNwcDoKKwogMjAyMC0wMy0yNSAgRnJhbmsgWWFuZyAgPGd1b3dlaV95YW5nQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnByZWZpeCAtd2Via2l0LXRleHQtb3JpZW50YXRpb24KZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3Bw
CmluZGV4IDhlMTM3YTgwNDc3ZmYwMGJlOWIzNTkyNzE4YTIzZjI0MTY5MzMxN2UuLmMzNTAyOGVj
MGE4ODg4OTY5ZWIzZjQ5ODYyYjIwMmIzZGQ2YmE5N2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTc2
MCw3ICsxNzYwLDYgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBQYXJzaW5nRmFpbHVy
ZXMpCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlsiLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmls
dGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6WWFyckVycm9yKTsKICAgICB0ZXN0UGF0dGVyblN0YXR1
cygiW2F9IiwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6
OllhcnJFcnJvcik7CiAgICAgCi0gICAgLy8gRklYTUU6IExvb2sgaW50byB3aHkgdGhlc2UgZG8g
bm90IGNhdXNlIFlBUlIgcGFyc2luZyBlcnJvcnMuICBUaGV5IHByb2JhYmx5IHNob3VsZC4KICAg
ICB0ZXN0UGF0dGVyblN0YXR1cygiYV0iLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFy
c2VyOjpQYXJzZVN0YXR1czo6T2spOwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJ7IiwgQ29udGVu
dEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKICAgICB0ZXN0
UGF0dGVyblN0YXR1cygie1thXSIsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6
OlBhcnNlU3RhdHVzOjpPayk7CkBAIC0xNzg5LDEwICsxNzg4LDEyIEBAIFRFU1RfRihDb250ZW50
RXh0ZW5zaW9uVGVzdCwgUGFyc2luZ0ZhaWx1cmVzKQogICAgIAogICAgIHRlc3RQYXR0ZXJuU3Rh
dHVzKCIoYSlcXDEiLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0
YXR1czo6T2spOyAvLyBCYWNrIHJlZmVyZW5jZXMgYXJlIGRpc2FibGVkLCBpdCBwYXJzZSBhcyBv
Y3RhbCAxCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIig8QT5hKVxcazxBPiIsIENvbnRlbnRFeHRl
bnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7IC8vIE5hbWVkIGJhY2sg
cmVmZXJlbmNlcyBhcmVuJ3QgaGFuZGxlZCwgaXQgcGFyc2UgYXMgIms8QT4iCisgICAgdGVzdFBh
dHRlcm5TdGF0dXMoIig/PEE+YSlcXGs8QT4iLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVy
UGFyc2VyOjpQYXJzZVN0YXR1czo6QmFja1JlZmVyZW5jZSk7CiAgICAgdGVzdFBhdHRlcm5TdGF0
dXMoIlxcMShhKSIsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3Rh
dHVzOjpPayk7IC8vIEZvcndhcmQgcmVmZXJlbmNlcyBhcmUgZGlzYWJsZWQsIGl0IHBhcnNlIGFz
IG9jdGFsIDEKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFw4KGEpIiwgQ29udGVudEV4dGVuc2lv
bnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsgLy8gRm9yd2FyZCByZWZlcmVu
Y2VzIGFyZSBkaXNhYmxlZCwgaXQgcGFyc2UgYXMgJzgnCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMo
IlxcOShhKSIsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVz
OjpPayk7IC8vIEZvcndhcmQgcmVmZXJlbmNlcyBhcmUgZGlzYWJsZWQsIGl0IHBhcnNlIGFzICc5
JwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXGs8QT4oPEE+YSkiLCBDb250ZW50RXh0ZW5zaW9u
czo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOyAvLyBOYW1lZCBmb3J3YXJkIHJl
ZmVyZW5jZXMgYXJlbid0IGhhbmRsZWQsIGl0IHBhcnNlIGFzICJrPEE+IgorICAgIHRlc3RQYXR0
ZXJuU3RhdHVzKCJcXGs8QT4oPzxBPmEpIiwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBh
cnNlcjo6UGFyc2VTdGF0dXM6OllhcnJFcnJvcik7CiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxc
azxBPihhKSIsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVz
OjpPayk7IC8vIFVubWF0Y2hlZCBuYW1lZCBmb3J3YXJkIHJlZmVyZW5jZXMgYXJlbid0IGhhbmRs
ZWQsIGl0IHBhcnNlIGFzICJrPEE+IgogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjgzYTYyZjBjNzE0NWM1M2VjZDYx
NTJjNTVkMWEwMzJhY2I1NWNkZS4uZWU1YmFkZGU2YmQyMTkyM2JhOWVkYWIzMDFmNmRhMTFlNmYy
NTZjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAzLTI1ICBBbGV4ZXkgU2h2YXlrYSAg
PHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBJbnZhbGlkIG51bWVyaWMgYW5kIG5h
bWVkIHJlZmVyZW5jZXMgc2hvdWxkIGJlIGVhcmx5IHN5bnRheCBlcnJvcnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODE3NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IFJvc3MgS2lyc2xpbmcuCisKKyAgICAgICAgKiBqcy9yZWdleHAtbmFtZWQtY2Fw
dHVyZS1ncm91cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9yZWdl
eHAtbmFtZWQtY2FwdHVyZS1ncm91cHMuanM6CisKIDIwMjAtMDMtMjUgIEZyYW5rIFlhbmcgIDxn
dW93ZWlfeWFuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5wcmVmaXggLXdlYmtpdC10ZXh0LW9y
aWVudGF0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdleHAtbmFtZWQtY2FwdHVy
ZS1ncm91cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVnZXhwLW5hbWVkLWNhcHR1
cmUtZ3JvdXBzLWV4cGVjdGVkLnR4dAppbmRleCAwODRmYjUxMzBkNWZiZmM5ZmM4MWIyMDU3Zjlk
MzEwODRkOGZjMmQ1Li5kMzIwMzYzNWI1YTc2NThiN2YyN2Q0NDQ4ZTZiZGQ3N2EyMzllYzhiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdleHAtbmFtZWQtY2FwdHVyZS1ncm91cHMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ2V4cC1uYW1lZC1jYXB0dXJlLWdyb3Vw
cy1leHBlY3RlZC50eHQKQEAgLTY2LDcgKzY2LDggQEAgUEFTUyAiWHp6WHp6Ii5tYXRjaCgvXGs8
ej5YKD88ej56KilYXGs8ej4vdSkgaXMgWyJYenpYenoiLCAienoiXQogUEFTUyAiMTEyMjMzMjIx
MSIubWF0Y2goL1xrPG9uZXM+XGs8dHdvcz5cazx0aHJlZXM+KD88b25lcz4xKikoPzx0d29zPjIq
KSg/PHRocmVlcz4zKilcazx0aHJlZXM+XGs8dHdvcz5cazxvbmVzPi8pIGlzIFsiMTEyMjMzMjIx
MSIsICIxMSIsICIyMiIsICIzIl0KIFBBU1MgIjExMjIzMzIyMTEiLm1hdGNoKC9cazxvbmVzPlxr
PHR3b3M+XGs8dGhyZWVzPig/PG9uZXM+MSopKD88dHdvcz4yKikoPzx0aHJlZXM+MyopXGs8dGhy
ZWVzPlxrPHR3b3M+XGs8b25lcz4vdSkgaXMgWyIxMTIyMzMyMjExIiwgIjExIiwgIjIyIiwgIjMi
XQogUEFTUyAiXGs8ej5YenpYIi5tYXRjaCgvXGs8ej5YKHoqKVgvKSBpcyBbIms8ej5YenpYIiwg
Inp6Il0KLVBBU1MgIlxrPHo+WHp6WCIubWF0Y2goL1xrPHo+WCh6KilYL3UpIHRocmV3IGV4Y2Vw
dGlvbiBTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IGludmFsaWQgYmFj
a3JlZmVyZW5jZSBmb3IgVW5pY29kZSBwYXR0ZXJuLgorUEFTUyAiXGs8ej5YenpYIi5tYXRjaCgv
XGs8ej5YKHoqKVgvdSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBJbnZhbGlkIHJlZ3Vs
YXIgZXhwcmVzc2lvbjogaW52YWxpZCBcazw+IG5hbWVkIGJhY2tyZWZlcmVuY2UuCitQQVNTIC9c
azx4eHgoPzxhPnkpKC8gdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBJbnZhbGlkIHJlZ3Vs
YXIgZXhwcmVzc2lvbjogaW52YWxpZCBcazw+IG5hbWVkIGJhY2tyZWZlcmVuY2UuCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9yZWdleHAtbmFtZWQtY2FwdHVyZS1ncm91cHMuanMg
Yi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvcmVnZXhwLW5hbWVkLWNhcHR1cmUtZ3JvdXBz
LmpzCmluZGV4IGQxYjk1YTEzYjIzZWM3M2QxNTA0YmVhY2E1ZjUyNmFjMDVlMzhmMzUuLjFlZWE2
ZGU3NjUyMTUwODExYmVmYmZmNGJkY2Q0ODVjYzc5MTgyYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2pzL3NjcmlwdC10ZXN0cy9yZWdleHAtbmFtZWQtY2FwdHVyZS1ncm91cHMuanMKKysrIGIv
TGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3JlZ2V4cC1uYW1lZC1jYXB0dXJlLWdyb3Vwcy5q
cwpAQCAtMTExLDYgKzExMSw3IEBAIHNob3VsZEJlKCciMTEyMjMzMjIxMSIubWF0Y2goL1xcXGs8
b25lcz5cXFxrPHR3b3M+XFxcazx0aHJlZXM+KD88b25lcz4xKikoPzx0d29zCiBzaG91bGRCZSgn
IjExMjIzMzIyMTEiLm1hdGNoKC9cXFxrPG9uZXM+XFxcazx0d29zPlxcXGs8dGhyZWVzPig/PG9u
ZXM+MSopKD88dHdvcz4yKikoPzx0aHJlZXM+MyopXFxcazx0aHJlZXM+XFxcazx0d29zPlxcXGs8
b25lcz4vdSknLCAnWyIxMTIyMzMyMjExIiwgIjExIiwgIjIyIiwgIjMiXScpOwogCiAvLyBDaGVj
ayB0aGF0IGEgbmFtZWQgZm9yd2FyZCByZWZlcmVuY2UgZm9yIGEgbm9uLWV4aXN0ZW50IG5hbWVk
IGNhcHR1cmUKLS8vIG1hdGNoZXMgZm9yIG5vbi11bmljb2RlIHBhdHRlcm5zIGFuZCB0aHJvd3Mg
Zm9yIHVuaWNvZGUgcGF0dGVybnMuCisvLyBtYXRjaGVzIGZvciBub24tVW5pY29kZSBwYXR0ZXJu
cyB3L28gYSBuYW1lZCBncm91cCBhbmQgdGhyb3dzIGZvciBwYXR0ZXJucyB3aXRoIGEgbmFtZWQg
Z3JvdXAgb3IgVW5pY29kZSBmbGFnLgogc2hvdWxkQmUoJyJcXFxrPHo+WHp6WCIubWF0Y2goL1xc
XGs8ej5YKHoqKVgvKScsICdbIms8ej5YenpYIiwgInp6Il0nKTsKLXNob3VsZFRocm93KCciXFxc
azx6Plh6elgiLm1hdGNoKC9cXFxrPHo+WCh6KilYL3UpJywgJyJTeW50YXhFcnJvcjogSW52YWxp
ZCByZWd1bGFyIGV4cHJlc3Npb246IGludmFsaWQgYmFja3JlZmVyZW5jZSBmb3IgVW5pY29kZSBw
YXR0ZXJuIicpOworc2hvdWxkVGhyb3coJyJcXFxrPHo+WHp6WCIubWF0Y2goL1xcXGs8ej5YKHoq
KVgvdSknLCAnIlN5bnRheEVycm9yOiBJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogaW52YWxp
ZCBcXFxcazw+IG5hbWVkIGJhY2tyZWZlcmVuY2UiJyk7CitzaG91bGRUaHJvdygnL1xcXGs8eHh4
KD88YT55KSgvJywgJyJTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IGlu
dmFsaWQgXFxcXGs8PiBuYW1lZCBiYWNrcmVmZXJlbmNlIicpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAwNmJkM2ZlYzY2MjIyYTFiNmVk
NjhlMThhMDBmYTkxYWRlODRkZTIxLi5hZjMwMDg2Y2M2NTIwMzQ5NzhhNGJmOGQ3NTVmYTE5YjZl
NWFkMjViIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTI1ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFp
a2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBJbnZhbGlkIG51bWVyaWMgYW5kIG5hbWVkIHJl
ZmVyZW5jZXMgc2hvdWxkIGJlIGVhcmx5IHN5bnRheCBlcnJvcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODE3NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IFJvc3MgS2lyc2xpbmcuCisKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1s
OiBNYXJrIDQ0IHRlc3QgY2FzZXMgYXMgcGFzc2luZy4KKwogMjAyMC0wMy0yNSAgQWxleGV5IFNo
dmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgXGIgZXNjYXBlcyBpbnNp
ZGUgY2hhcmFjdGVyIGNsYXNzZXMgc2hvdWxkIGJlIHZhbGlkIGluIFVuaWNvZGUgcGF0dGVybnMK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMv
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAppbmRleCA0ZTQ5ZTZiNzNkNTNiMGExYzUyYTFlMTM4
YTgxMzhiNmNhOGM4Y2VjLi41NDcxMDQ2MmM1MDIxZjU3MzgwYTI4Mzg4NjJmN2U5ZWJmZjgxYTAx
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNU
ZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC0xNzExLDkgKzE3MTEsNiBAQCB0ZXN0
L2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL3VuaWNvZGUvY3Jvc3MtcmVhbG0uanM6CiB0ZXN0
L2J1aWx0LWlucy9SZWdFeHAvcXVhbnRpZmllci1pbnRlZ2VyLWxpbWl0LmpzOgogICBkZWZhdWx0
OiAnU3ludGF4RXJyb3I6IEludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiBudW1iZXIgdG9vIGxh
cmdlIGluIHt9IHF1YW50aWZpZXInCiAgIHN0cmljdCBtb2RlOiAnU3ludGF4RXJyb3I6IEludmFs
aWQgcmVndWxhciBleHByZXNzaW9uOiBudW1iZXIgdG9vIGxhcmdlIGluIHt9IHF1YW50aWZpZXIn
Ci10ZXN0L2J1aWx0LWlucy9SZWdFeHAvdW5pY29kZV9yZXN0cmljdGVkX2lkZW50aXR5X2VzY2Fw
ZV9hbHBoYS5qczoKLSAgZGVmYXVsdDogIlRlc3QyNjJFcnJvcjogSWRlbnRpdHlFc2NhcGUgaW4g
QXRvbUVzY2FwZTogJ2snIEV4cGVjdGVkIGEgU3ludGF4RXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBu
byBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwiCi0gIHN0cmljdCBtb2RlOiAiVGVzdDI2MkVy
cm9yOiBJZGVudGl0eUVzY2FwZSBpbiBBdG9tRXNjYXBlOiAnaycgRXhwZWN0ZWQgYSBTeW50YXhF
cnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCIKIHRl
c3QvYnVpbHQtaW5zL1JlZ0V4cC91bmljb2RlX3Jlc3RyaWN0ZWRfb2N0YWxfZXNjYXBlLmpzOgog
ICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBSZWdFeHAoIltcMV0iLCAidSIpOiAgRXhwZWN0ZWQg
YSBTeW50YXhFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IFJlZ0V4cCgiW1wxXSIsICJ1Iik6
ICBFeHBlY3RlZCBhIFN5bnRheEVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdh
cyB0aHJvd24gYXQgYWxsJwpAQCAtMzI2NCw3MiArMzI2MSw5IEBAIHRlc3QvbGFuZ3VhZ2UvaWRl
bnRpZmllcnMvc3RhcnQtdW5pY29kZS0xMy4wLjAtZXNjYXBlZC5qczoKIHRlc3QvbGFuZ3VhZ2Uv
aWRlbnRpZmllcnMvc3RhcnQtdW5pY29kZS0xMy4wLjAuanM6CiAgIGRlZmF1bHQ6ICJTeW50YXhF
cnJvcjogSW52YWxpZCBjaGFyYWN0ZXIgJ1xcdTA4YmUnIgogICBzdHJpY3QgbW9kZTogIlN5bnRh
eEVycm9yOiBJbnZhbGlkIGNoYXJhY3RlciAnXFx1MDhiZSciCi10ZXN0L2xhbmd1YWdlL2xpdGVy
YWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1kYW5nbGluZy1ncm91cG5hbWUtMi11Lmpz
OgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFs
dWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBu
b3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdy
b3Vwcy9pbnZhbGlkLWRhbmdsaW5nLWdyb3VwbmFtZS0yLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2
MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRl
c3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWRhbmdsaW5n
LWdyb3VwbmFtZS0zLXUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBz
aG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBz
dGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFs
cy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtZGFuZ2xpbmctZ3JvdXBuYW1lLTMuanM6Ci0g
IGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRl
ZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBi
ZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBz
L2ludmFsaWQtZGFuZ2xpbmctZ3JvdXBuYW1lLTQtdS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6
IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0
L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1kYW5nbGluZy1n
cm91cG5hbWUtNC5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3Vs
ZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRl
bWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3Jl
Z2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1kYW5nbGluZy1ncm91cG5hbWUtNS5qczoKLSAgZGVm
YXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicK
LSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2
YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52
YWxpZC1kYW5nbGluZy1ncm91cG5hbWUtdS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMg
c3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1
YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1kYW5nbGluZy1ncm91cG5h
bWUtd2l0aG91dC1ncm91cC11LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1l
bnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRo
aXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0
ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWRhbmdsaW5nLWdyb3VwbmFtZS5qczoK
LSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVh
dGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90
IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91
cHMvaW52YWxpZC1pbmNvbXBsZXRlLWdyb3VwbmFtZS0yLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2
MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRl
c3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWluY29tcGxl
dGUtZ3JvdXBuYW1lLTMuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBz
aG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBz
dGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFs
cy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtaW5jb21wbGV0ZS1ncm91cG5hbWUtNC5qczoK
LSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVh
dGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90
IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91
cHMvaW52YWxpZC1pbmNvbXBsZXRlLWdyb3VwbmFtZS01LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2
MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRl
c3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWluY29tcGxl
dGUtZ3JvdXBuYW1lLTYuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBz
aG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBz
dGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFs
cy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtaW5jb21wbGV0ZS1ncm91cG5hbWUtdS5qczoK
LSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVh
dGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90
IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91
cHMvaW52YWxpZC1pbmNvbXBsZXRlLWdyb3VwbmFtZS13aXRob3V0LWdyb3VwLTMtdS5qczoKLSAg
ZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVk
LicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJl
IGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMv
aW52YWxpZC1pbmNvbXBsZXRlLWdyb3VwbmFtZS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRo
aXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCiB0ZXN0L2xh
bmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC91LWFzdHJhbC1jaGFyLWNsYXNzLWludmVydC5qczoKICAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr77+9wrssIMKrbnVs
bMK7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQg
U2FtZVZhbHVlKMKr77+9wrssIMKrbnVsbMK7KSB0byBiZSB0cnVlJwotdGVzdC9sYW5ndWFnZS9s
aXRlcmFscy9yZWdleHAvdS1kZWMtZXNjLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBz
dGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3Qy
NjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3Vh
Z2UvbGl0ZXJhbHMvcmVnZXhwL3UtaW52YWxpZC1sZWdhY3ktb2N0YWwtZXNjYXBlLmpzOgotICBk
ZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQu
JwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUg
ZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL3UtaW52YWxpZC1vb2It
ZGVjaW1hbC1lc2NhcGUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBz
aG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBz
dGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwogdGVzdC9sYW5ndWFnZS9tb2R1bGUt
Y29kZS9ldmFsLXJxc3RkLW9uY2UuanM6CiAgIG1vZHVsZTogIlN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIGlkZW50aWZpZXIgJ2FzJy4gRXhwZWN0ZWQgJ2Zyb20nIGJlZm9yZSBleHBvcnRlZCBtb2R1
bGUgbmFtZS4iCiB0ZXN0L2xhbmd1YWdlL21vZHVsZS1jb2RlL2V2YWwtcnFzdGQtb3JkZXIuanM6
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394555</attachid>
            <date>2020-03-25 15:52:20 -0700</date>
            <delta_ts>2020-03-25 18:24:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178175-20200326005218.patch</filename>
            <type>text/plain</type>
            <size>39046</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MjlkZGE2M2RjYjBiMmRjY2Y4ZDU0ZGZlOGM2YTlmYTQ1N2NiZTJmLi42MTcwZjk2NDkyZTQ1ZTJi
MzVmNzFhMGM5NmRlYTI0Y2UzMDRmM2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NiBAQAorMjAyMC0wMy0yNSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgSW52YWxpZCBudW1lcmljIGFuZCBuYW1lZCByZWZlcmVuY2VzIHNo
b3VsZCBiZSBlYXJseSBzeW50YXggZXJyb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgxNzUKKworICAgICAgICBSZXZpZXdlZCBieSBSb3NzIEtp
cnNsaW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2g6CisKKyAgICAgICAgMS4gRml4ZXMgbmFtZWQg
cmVmZXJlbmNlIHBhcnNpbmcgaW4gcGFyc2VFc2NhcGUoKSwgbWFraW5nIC9cay91IHRocm93IFN5
bnRheEVycm9yIHBlciBzcGVjIFsxXS4KKworICAgICAgICAyLiBSZXdvcmtzIGNvbnRhaW5zSWxs
ZWdhbE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMoKSwgbWFraW5nIGRhbmdsaW5nIChlLmcuIC9cazxh
Pig/PGI+LikvKSBhbmQKKyAgICAgICAgICAgaW5jb21wbGV0ZSAoZS5nLiAvXGs8KD88YT4uKS8p
IG5hbWVkIHJlZmVyZW5jZXMgdGhyb3cgU3ludGF4RXJyb3IgaWYgdGhlIG5vbi1Vbmljb2RlIHBh
dHRlcm4KKyAgICAgICAgICAgY29udGFpbnMgYSBuYW1lZCBncm91cCBbMl0uCisKKyAgICAgICAg
My4gTW92ZXMgcmVwYXJzaW5nIGxvZ2ljIGZyb20gWWFyclBhdHRlcm4gdG8gWWFyclBhcnNlciwg
ZW5zdXJpbmcgc3ludGF4IGVycm9ycyBkdWUgdG8gaWxsZWdhbAorICAgICAgICAgICByZWZlcmVu
Y2VzIChuYW1lZCAmIG51bWVyaWMpIGFyZSB0aHJvd24gYXQgcGFyc2UgdGltZTsgZHJvcHMgaXNW
YWxpZE5hbWVkRm9yd2FyZFJlZmVyZW5jZSgpCisgICAgICAgICAgIGZyb20gRGVsZWdhdGUsIHJl
ZmFjdG9ycyBzYXZlVW5tYXRjaGVkTmFtZWRGb3J3YXJkUmVmZXJlbmNlcygpLCBhbmQgb3ZlcmFs
bCBpbXByb3ZlcyBjb2hlc2lvbgorICAgICAgICAgICBvZiBpbGxlZ2FsIHJlZmVyZW5jZXMgbG9n
aWMuCisKKyAgICAgICAgWzFdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jcHJvZC1JZGVudGl0
eUVzY2FwZQorICAgICAgICBbMl06IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhw
aW5pdGlhbGl6ZSAoc3RlcCA3LmIpCisKKyAgICAgICAgKiB5YXJyL1lhcnJFcnJvckNvZGUuY3Bw
OgorICAgICAgICAoSlNDOjpZYXJyOjplcnJvck1lc3NhZ2UpOgorICAgICAgICAoSlNDOjpZYXJy
OjplcnJvclRvVGhyb3cpOgorICAgICAgICAqIHlhcnIvWWFyckVycm9yQ29kZS5oOgorICAgICAg
ICAqIHlhcnIvWWFyclBhcnNlci5oOgorICAgICAgICAoSlNDOjpZYXJyOjpQYXJzZXI6OkNoYXJh
Y3RlckNsYXNzUGFyc2VyRGVsZWdhdGU6OmF0b21OYW1lZEJhY2tSZWZlcmVuY2UpOgorICAgICAg
ICAoSlNDOjpZYXJyOjpQYXJzZXI6OlBhcnNlcik6CisgICAgICAgIChKU0M6OllhcnI6OlBhcnNl
cjo6cGFyc2VFc2NhcGUpOgorICAgICAgICAoSlNDOjpZYXJyOjpQYXJzZXI6OnBhcnNlUGFyZW50
aGVzZXNCZWdpbik6CisgICAgICAgIChKU0M6OllhcnI6OlBhcnNlcjo6cGFyc2UpOgorICAgICAg
ICAoSlNDOjpZYXJyOjpQYXJzZXI6OmhhbmRsZUlsbGVnYWxSZWZlcmVuY2VzKToKKyAgICAgICAg
KEpTQzo6WWFycjo6UGFyc2VyOjpjb250YWluc0lsbGVnYWxOYW1lZEZvcndhcmRSZWZlcmVuY2Up
OgorICAgICAgICAoSlNDOjpZYXJyOjpQYXJzZXI6OnJlc2V0Rm9yUmVwYXJzaW5nKToKKyAgICAg
ICAgKEpTQzo6WWFycjo6cGFyc2UpOgorICAgICAgICAoSlNDOjpZYXJyOjpQYXJzZXI6OkNoYXJh
Y3RlckNsYXNzUGFyc2VyRGVsZWdhdGU6OmlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UpOiBE
ZWxldGVkLgorICAgICAgICAqIHlhcnIvWWFyclBhdHRlcm4uY3BwOgorICAgICAgICAoSlNDOjpZ
YXJyOjpZYXJyUGF0dGVybkNvbnN0cnVjdG9yOjphdG9tQmFja1JlZmVyZW5jZSk6CisgICAgICAg
IChKU0M6OllhcnI6OllhcnJQYXR0ZXJuQ29uc3RydWN0b3I6OmF0b21OYW1lZEZvcndhcmRSZWZl
cmVuY2UpOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyUGF0dGVybjo6Y29tcGlsZSk6CisgICAg
ICAgIChKU0M6OllhcnI6OllhcnJQYXR0ZXJuQ29uc3RydWN0b3I6OnNhdmVVbm1hdGNoZWROYW1l
ZEZvcndhcmRSZWZlcmVuY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6WWFycjo6WWFyclBh
dHRlcm5Db25zdHJ1Y3Rvcjo6aXNWYWxpZE5hbWVkRm9yd2FyZFJlZmVyZW5jZSk6IERlbGV0ZWQu
CisgICAgICAgICogeWFyci9ZYXJyUGF0dGVybi5oOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJy
UGF0dGVybjo6cmVzZXRGb3JSZXBhcnNpbmcpOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyUGF0
dGVybjo6Y29udGFpbnNJbGxlZ2FsQmFja1JlZmVyZW5jZSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OllhcnI6OllhcnJQYXR0ZXJuOjpjb250YWluc0lsbGVnYWxOYW1lZEZvcndhcmRSZWZlcmVu
Y2VzKTogRGVsZXRlZC4KKyAgICAgICAgKiB5YXJyL1lhcnJTeW50YXhDaGVja2VyLmNwcDoKKyAg
ICAgICAgKEpTQzo6WWFycjo6U3ludGF4Q2hlY2tlcjo6YXRvbU5hbWVkQmFja1JlZmVyZW5jZSk6
CisgICAgICAgIChKU0M6OllhcnI6OlN5bnRheENoZWNrZXI6OnJlc2V0Rm9yUmVwYXJzaW5nKToK
KyAgICAgICAgKEpTQzo6WWFycjo6U3ludGF4Q2hlY2tlcjo6aXNWYWxpZE5hbWVkRm9yd2FyZFJl
ZmVyZW5jZSk6IERlbGV0ZWQuCisKIDIwMjAtMDMtMjUgIEFsZXhleSBTaHZheWthICA8c2h2YWlr
YWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFxiIGVzY2FwZXMgaW5zaWRlIGNoYXJhY3RlciBj
bGFzc2VzIHNob3VsZCBiZSB2YWxpZCBpbiBVbmljb2RlIHBhdHRlcm5zCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZjY4MmU1NzdlMWJkY2Q4MmJhZmMwY2YyOGU5ZTU3OTNmZGJmMTZkMC4uNzI1NTE5MWM1ZjY4YjQz
ODhjOWZhYjBhODQ5NTA3ZDZkZDFiZTM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisy
MDIwLTAzLTI1ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAg
ICAgICBJbnZhbGlkIG51bWVyaWMgYW5kIG5hbWVkIHJlZmVyZW5jZXMgc2hvdWxkIGJlIGVhcmx5
IHN5bnRheCBlcnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3ODE3NQorCisgICAgICAgIFJldmlld2VkIGJ5IFJvc3MgS2lyc2xpbmcuCisKKyAg
ICAgICAgQWNjb3VudHMgZm9yIGNoYW5nZXMgb2YgWWFyclBhcnNlcidzIERlbGVnYXRlIGludGVy
ZmFjZSwgbm8gYmVoYXZpb3JhbCBjaGFuZ2VzLgorICAgICAgICByZXNldEZvclJlcGFyc2luZygp
IGlzIG5ldmVyIGNhbGxlZCBiZWNhdXNlIHdlIGRpc2FibGUgbnVtZXJpYyBiYWNrcmVmZW5jZXMK
KyAgICAgICAgYW5kIG5hbWVkIGZvcndhcmQgcmVmZXJlbmNlcyAoc2VlIGFyZ3VtZW50cyBvZiBZ
YXJyOjpwYXJzZSgpIGNhbGwpLgorCisgICAgICAgIFRlc3Q6IFRlc3RXZWJLaXRBUEkuQ29udGVu
dEV4dGVuc2lvblRlc3QuUGFyc2luZ0ZhaWx1cmVzCisKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5z
aW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVu
c2lvbnM6OlBhdHRlcm5QYXJzZXI6OnJlc2V0Rm9yUmVwYXJzaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OmFkZFBhdHRlcm4pOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlBhdHRlcm5QYXJzZXI6OmlzVmFsaWRO
YW1lZEZvcndhcmRSZWZlcmVuY2UpOiBEZWxldGVkLgorCiAyMDIwLTAzLTI1ICBGcmFuayBZYW5n
ICA8Z3Vvd2VpX3lhbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFVucHJlZml4IC13ZWJraXQtdGV4
dC1vcmllbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFy
ckVycm9yQ29kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyRXJyb3JDb2Rl
LmNwcAppbmRleCAzMzcyYmFkZTJkOTkyNzAyMzRjNDZkMWY5NDdkZmVlNDUyNDA1OTczLi4zNDI1
ZDEzMThmYzUxYTdlNzU4YjU0YzUyNjAwMDU3ZWY3YzBlOWYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUveWFyci9ZYXJyRXJyb3JDb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJyRXJyb3JDb2RlLmNwcApAQCAtNTMsNiArNTMsNyBAQCBjb25zdCBj
aGFyKiBlcnJvck1lc3NhZ2UoRXJyb3JDb2RlIGVycm9yKQogICAgICAgICBSRUdFWFBfRVJST1Jf
UFJFRklYICJcXCBhdCBlbmQgb2YgcGF0dGVybiIsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gRXNjYXBlVW50ZXJtaW5hdGVkCiAgICAgICAgIFJFR0VYUF9FUlJPUl9QUkVGSVgg
ImludmFsaWQgVW5pY29kZSB7fSBlc2NhcGUiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBJbnZhbGlkVW5pY29kZUVzY2FwZQogICAgICAgICBSRUdFWFBfRVJST1JfUFJFRklYICJpbnZh
bGlkIGJhY2tyZWZlcmVuY2UgZm9yIFVuaWNvZGUgcGF0dGVybiIsICAgICAgICAgICAgLy8gSW52
YWxpZEJhY2tyZWZlcmVuY2UKKyAgICAgICAgUkVHRVhQX0VSUk9SX1BSRUZJWCAiaW52YWxpZCBc
XGs8PiBuYW1lZCBiYWNrcmVmZXJlbmNlIiwgICAgICAgICAgICAgICAgICAgIC8vIEludmFsaWRO
YW1lZEJhY2tSZWZlcmVuY2UKICAgICAgICAgUkVHRVhQX0VSUk9SX1BSRUZJWCAiaW52YWxpZCBl
c2NhcGVkIGNoYXJhY3RlciBmb3IgVW5pY29kZSBwYXR0ZXJuIiwgICAgICAgIC8vIEludmFsaWRJ
ZGVudGl0eUVzY2FwZQogICAgICAgICBSRUdFWFBfRVJST1JfUFJFRklYICJpbnZhbGlkIFxcYyBl
c2NhcGUgZm9yIFVuaWNvZGUgcGF0dGVybiIsICAgICAgICAgICAgICAgLy8gSW52YWxpZENvbnRy
b2xMZXR0ZXJFc2NhcGUKICAgICAgICAgUkVHRVhQX0VSUk9SX1BSRUZJWCAiaW52YWxpZCBwcm9w
ZXJ0eSBleHByZXNzaW9uIiwgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEludmFsaWRVbmlj
b2RlUHJvcGVydHlFeHByZXNzaW9uCkBAIC04Nyw2ICs4OCw3IEBAIEpTT2JqZWN0KiBlcnJvclRv
VGhyb3coSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JDb2RlIGVycm9yKQogICAg
IGNhc2UgRXJyb3JDb2RlOjpFc2NhcGVVbnRlcm1pbmF0ZWQ6CiAgICAgY2FzZSBFcnJvckNvZGU6
OkludmFsaWRVbmljb2RlRXNjYXBlOgogICAgIGNhc2UgRXJyb3JDb2RlOjpJbnZhbGlkQmFja3Jl
ZmVyZW5jZToKKyAgICBjYXNlIEVycm9yQ29kZTo6SW52YWxpZE5hbWVkQmFja1JlZmVyZW5jZToK
ICAgICBjYXNlIEVycm9yQ29kZTo6SW52YWxpZElkZW50aXR5RXNjYXBlOgogICAgIGNhc2UgRXJy
b3JDb2RlOjpJbnZhbGlkQ29udHJvbExldHRlckVzY2FwZToKICAgICBjYXNlIEVycm9yQ29kZTo6
SW52YWxpZFVuaWNvZGVQcm9wZXJ0eUV4cHJlc3Npb246CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJyRXJyb3JDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
eWFyci9ZYXJyRXJyb3JDb2RlLmgKaW5kZXggM2MzYjY5ZDMyZjEzZjA1MzZlNjRiMzIzY2ZjNTI0
MTNlOWY3NzZhYy4uMWNiMGRiZjgwYWIxYzQ1Y2MwZThkZjJiMThhNmQyOTNkYTViODE4OSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckVycm9yQ29kZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJFcnJvckNvZGUuaApAQCAtNTIsNiArNTIs
NyBAQCBlbnVtIGNsYXNzIEVycm9yQ29kZSA6IHVpbnQ4X3QgewogICAgIEVzY2FwZVVudGVybWlu
YXRlZCwKICAgICBJbnZhbGlkVW5pY29kZUVzY2FwZSwKICAgICBJbnZhbGlkQmFja3JlZmVyZW5j
ZSwKKyAgICBJbnZhbGlkTmFtZWRCYWNrUmVmZXJlbmNlLAogICAgIEludmFsaWRJZGVudGl0eUVz
Y2FwZSwKICAgICBJbnZhbGlkQ29udHJvbExldHRlckVzY2FwZSwKICAgICBJbnZhbGlkVW5pY29k
ZVByb3BlcnR5RXhwcmVzc2lvbiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJQYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIu
aAppbmRleCBjMjhiZmViODk5MzI3YTg4OGJmNDZmYzMwNmE3ODZlZTliZjcyNDAzLi4zMDA5MmJh
ODhkNTQxNDdkYzI2NDI4M2FhNDgzMmZkZTJkZTYxYjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3lhcnIvWWFyclBhcnNlci5oCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBbGV4ZXkgU2h2YXlrYSA8c2h2YWlrYWxlc2hAZ21haWwuY29tPi4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAsMTcgKzExLDE3IEBACiAgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI3By
YWdtYSBvbmNlCkBAIC00MSw3ICs0Miw3IEBAIHRlbXBsYXRlPGNsYXNzIERlbGVnYXRlLCB0eXBl
bmFtZSBDaGFyVHlwZT4KIGNsYXNzIFBhcnNlciB7CiBwcml2YXRlOgogICAgIHRlbXBsYXRlPGNs
YXNzIEZyaWVuZERlbGVnYXRlPgotICAgIGZyaWVuZCBFcnJvckNvZGUgcGFyc2UoRnJpZW5kRGVs
ZWdhdGUmLCBjb25zdCBTdHJpbmcmIHBhdHRlcm4sIGJvb2wgaXNVbmljb2RlLCB1bnNpZ25lZCBi
YWNrUmVmZXJlbmNlTGltaXQpOworICAgIGZyaWVuZCBFcnJvckNvZGUgcGFyc2UoRnJpZW5kRGVs
ZWdhdGUmLCBjb25zdCBTdHJpbmcmIHBhdHRlcm4sIGJvb2wgaXNVbmljb2RlLCB1bnNpZ25lZCBi
YWNrUmVmZXJlbmNlTGltaXQsIGJvb2wgaXNOYW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkKTsK
IAogICAgIC8qCiAgICAgICogQ2hhcmFjdGVyQ2xhc3NQYXJzZXJEZWxlZ2F0ZToKQEAgLTIwMCw3
ICsyMDEsNiBAQCBwcml2YXRlOgogICAgICAgICBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lk
IGFzc2VydGlvbldvcmRCb3VuZGFyeShib29sKSB7IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KICAgICAgICAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBhdG9tQmFja1JlZmVy
ZW5jZSh1bnNpZ25lZCkgeyBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgICAg
IE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgYXRvbU5hbWVkQmFja1JlZmVyZW5jZShjb25z
dCBTdHJpbmcmKSB7IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICAgICAgTk9f
UkVUVVJOX0RVRV9UT19BU1NFUlQgYm9vbCBpc1ZhbGlkTmFtZWRGb3J3YXJkUmVmZXJlbmNlKGNv
bnN0IFN0cmluZyYpIHsgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgICAgICBO
T19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGF0b21OYW1lZEZvcndhcmRSZWZlcmVuY2UoY29u
c3QgU3RyaW5nJikgeyBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICBwcml2
YXRlOgpAQCAtMjE3LDEyICsyMTcsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgVUNoYXIzMiBtX2No
YXJhY3RlcjsKICAgICB9OwogCi0gICAgUGFyc2VyKERlbGVnYXRlJiBkZWxlZ2F0ZSwgY29uc3Qg
U3RyaW5nJiBwYXR0ZXJuLCBib29sIGlzVW5pY29kZSwgdW5zaWduZWQgYmFja1JlZmVyZW5jZUxp
bWl0KQorICAgIFBhcnNlcihEZWxlZ2F0ZSYgZGVsZWdhdGUsIGNvbnN0IFN0cmluZyYgcGF0dGVy
biwgYm9vbCBpc1VuaWNvZGUsIHVuc2lnbmVkIGJhY2tSZWZlcmVuY2VMaW1pdCwgYm9vbCBpc05h
bWVkRm9yd2FyZFJlZmVyZW5jZUFsbG93ZWQpCiAgICAgICAgIDogbV9kZWxlZ2F0ZShkZWxlZ2F0
ZSkKLSAgICAgICAgLCBtX2JhY2tSZWZlcmVuY2VMaW1pdChiYWNrUmVmZXJlbmNlTGltaXQpCiAg
ICAgICAgICwgbV9kYXRhKHBhdHRlcm4uY2hhcmFjdGVyczxDaGFyVHlwZT4oKSkKICAgICAgICAg
LCBtX3NpemUocGF0dGVybi5sZW5ndGgoKSkKICAgICAgICAgLCBtX2lzVW5pY29kZShpc1VuaWNv
ZGUpCisgICAgICAgICwgbV9iYWNrUmVmZXJlbmNlTGltaXQoYmFja1JlZmVyZW5jZUxpbWl0KQor
ICAgICAgICAsIG1faXNOYW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkKGlzTmFtZWRGb3J3YXJk
UmVmZXJlbmNlQWxsb3dlZCkKICAgICB7CiAgICAgfQogCkBAIC0zMzgsMTYgKzMzOSwxMiBAQCBw
cml2YXRlOgogCiAgICAgICAgICAgICAgICAgdW5zaWduZWQgYmFja1JlZmVyZW5jZSA9IGNvbnN1
bWVOdW1iZXIoKTsKICAgICAgICAgICAgICAgICBpZiAoYmFja1JlZmVyZW5jZSA8PSBtX2JhY2tS
ZWZlcmVuY2VMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBtX21heFNlZW5CYWNrUmVmZXJl
bmNlID0gc3RkOjptYXgobV9tYXhTZWVuQmFja1JlZmVyZW5jZSwgYmFja1JlZmVyZW5jZSk7CiAg
ICAgICAgICAgICAgICAgICAgIGRlbGVnYXRlLmF0b21CYWNrUmVmZXJlbmNlKGJhY2tSZWZlcmVu
Y2UpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAKICAg
ICAgICAgICAgICAgICByZXN0b3JlU3RhdGUoc3RhdGUpOwotCi0gICAgICAgICAgICAgICAgaWYg
KG1faXNVbmljb2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fZXJyb3JDb2RlID0gRXJyb3JD
b2RlOjpJbnZhbGlkQmFja3JlZmVyZW5jZTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8g
Tm90IGEgYmFja3JlZmVyZW5jZSwgYW5kIG5vdCBvY3RhbC4gSnVzdCBhIG51bWJlci4KQEAgLTQz
OSwyOCArNDM2LDI3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgJ2snOiB7CiAgICAgICAgICAg
ICBjb25zdW1lKCk7CiAgICAgICAgICAgICBQYXJzZVN0YXRlIHN0YXRlID0gc2F2ZVN0YXRlKCk7
Ci0gICAgICAgICAgICBpZiAoIWF0RW5kT2ZQYXR0ZXJuKCkgJiYgIWluQ2hhcmFjdGVyQ2xhc3Mp
IHsKLSAgICAgICAgICAgICAgICBpZiAoY29uc3VtZSgpID09ICc8JykgewotICAgICAgICAgICAg
ICAgICAgICBhdXRvIGdyb3VwTmFtZSA9IHRyeUNvbnN1bWVHcm91cE5hbWUoKTsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKGdyb3VwTmFtZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KG1fY2FwdHVyZUdyb3VwTmFtZXMuY29udGFpbnMoZ3JvdXBOYW1lLnZhbHVlKCkpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVsZWdhdGUuYXRvbU5hbWVkQmFja1JlZmVyZW5jZShn
cm91cE5hbWUudmFsdWUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChkZWxlZ2F0ZS5pc1ZhbGlkTmFtZWRGb3J3YXJkUmVmZXJl
bmNlKGdyb3VwTmFtZS52YWx1ZSgpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRl
bGVnYXRlLmF0b21OYW1lZEZvcndhcmRSZWZlcmVuY2UoZ3JvdXBOYW1lLnZhbHVlKCkpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgaWYgKCFpbkNoYXJhY3RlckNsYXNzICYmIHRyeUNvbnN1bWUoJzwnKSkg
eworICAgICAgICAgICAgICAgIGF1dG8gZ3JvdXBOYW1lID0gdHJ5Q29uc3VtZUdyb3VwTmFtZSgp
OworICAgICAgICAgICAgICAgIGlmIChncm91cE5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKG1fY2FwdHVyZUdyb3VwTmFtZXMuY29udGFpbnMoZ3JvdXBOYW1lLnZhbHVlKCkpKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBkZWxlZ2F0ZS5hdG9tTmFtZWRCYWNrUmVmZXJlbmNlKGdy
b3VwTmFtZS52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtX2lzVW5pY29kZSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgbV9lcnJvckNvZGUgPSBFcnJvckNvZGU6OkludmFsaWRC
YWNrcmVmZXJlbmNlOworCisgICAgICAgICAgICAgICAgICAgIGlmIChtX2lzTmFtZWRGb3J3YXJk
UmVmZXJlbmNlQWxsb3dlZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9mb3J3YXJkUmVm
ZXJlbmNlTmFtZXMuYWRkKGdyb3VwTmFtZS52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGRlbGVnYXRlLmF0b21OYW1lZEZvcndhcmRSZWZlcmVuY2UoZ3JvdXBOYW1lLnZhbHVlKCkp
OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CisKICAgICAgICAgICAgIHJlc3RvcmVT
dGF0ZShzdGF0ZSk7Ci0gICAgICAgICAgICBkZWxlZ2F0ZS5hdG9tUGF0dGVybkNoYXJhY3Rlcign
aycpOworICAgICAgICAgICAgaWYgKCFpc0lkZW50aXR5RXNjYXBlQW5FcnJvcignaycpKSB7Cisg
ICAgICAgICAgICAgICAgZGVsZWdhdGUuYXRvbVBhdHRlcm5DaGFyYWN0ZXIoJ2snKTsKKyAgICAg
ICAgICAgICAgICBtX2tJZGVudGl0eUVzY2FwZVNlZW4gPSB0cnVlOyAKKyAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTY3Nyw2ICs2NzMsMTEgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIGNhc2UgJzwnOiB7CiAgICAgICAgICAgICAgICAgYXV0byBncm91
cE5hbWUgPSB0cnlDb25zdW1lR3JvdXBOYW1lKCk7CiAgICAgICAgICAgICAgICAgaWYgKGdyb3Vw
TmFtZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobV9rSWRlbnRpdHlFc2NhcGVTZWVuKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52YWxp
ZE5hbWVkQmFja1JlZmVyZW5jZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICAgICAgYXV0byBzZXRBZGRSZXN1
bHQgPSBtX2NhcHR1cmVHcm91cE5hbWVzLmFkZChncm91cE5hbWUudmFsdWUoKSk7CiAgICAgICAg
ICAgICAgICAgICAgIGlmIChzZXRBZGRSZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZGVsZWdhdGUuYXRvbVBhcmVudGhlc2VzU3VicGF0dGVybkJlZ2luKHRydWUs
IGdyb3VwTmFtZSk7CkBAIC02OTQsNiArNjk1LDkgQEAgcHJpdmF0ZToKICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICBtX2RlbGVnYXRlLmF0b21QYXJlbnRoZXNlc1N1YnBhdHRlcm5CZWdpbigp
OwogCisgICAgICAgIGlmICh0eXBlID09IFBhcmVudGhlc2VzVHlwZTo6U3VicGF0dGVybikKKyAg
ICAgICAgICAgICsrbV9udW1TdWJwYXR0ZXJuczsKKwogICAgICAgICBtX3BhcmVudGhlc2VzU3Rh
Y2suYXBwZW5kKHR5cGUpOwogICAgIH0KIApAQCAtODgxLDE0ICs4ODUsODcgQEAgcHJpdmF0ZToK
ICAgICBFcnJvckNvZGUgcGFyc2UoKQogICAgIHsKICAgICAgICAgaWYgKG1fc2l6ZSA+IE1BWF9Q
QVRURVJOX1NJWkUpCi0gICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6UGF0dGVy
blRvb0xhcmdlOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBwYXJzZVRva2VucygpOwotICAg
ICAgICBBU1NFUlQoYXRFbmRPZlBhdHRlcm4oKSB8fCBoYXNFcnJvcihtX2Vycm9yQ29kZSkpOwot
ICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBFcnJvckNvZGU6OlBhdHRlcm5Ub29MYXJnZTsK
KworICAgICAgICBwYXJzZVRva2VucygpOworCisgICAgICAgIGlmICghaGFzRXJyb3IobV9lcnJv
ckNvZGUpKSB7CisgICAgICAgICAgICBBU1NFUlQoYXRFbmRPZlBhdHRlcm4oKSk7CisgICAgICAg
ICAgICBoYW5kbGVJbGxlZ2FsUmVmZXJlbmNlcygpOworICAgICAgICAgICAgQVNTRVJUKGF0RW5k
T2ZQYXR0ZXJuKCkpOworICAgICAgICB9CisKICAgICAgICAgcmV0dXJuIG1fZXJyb3JDb2RlOwog
ICAgIH0KIAorICAgIHZvaWQgaGFuZGxlSWxsZWdhbFJlZmVyZW5jZXMoKQorICAgIHsKKyAgICAg
ICAgYm9vbCBzaG91bGRSZXBhcnNlID0gZmFsc2U7CisKKyAgICAgICAgaWYgKG1fbWF4U2VlbkJh
Y2tSZWZlcmVuY2UgPiBtX251bVN1YnBhdHRlcm5zKSB7CisgICAgICAgICAgICAvLyBDb250YWlu
cyBpbGxlZ2FsIG51bWVyaWMgYmFja3JlZmVyZW5jZS4gU2VlIGh0dHBzOi8vdGMzOS5lcy9lY21h
MjYyLyNwcm9kLWFubmV4Qi1BdG9tRXNjYXBlCisgICAgICAgICAgICBpZiAobV9pc1VuaWNvZGUp
IHsKKyAgICAgICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52YWxpZEJhY2ty
ZWZlcmVuY2U7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBtX2JhY2tSZWZlcmVuY2VMaW1pdCA9IG1fbnVtU3VicGF0dGVybnM7CisgICAgICAg
ICAgICBzaG91bGRSZXBhcnNlID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX2tJ
ZGVudGl0eUVzY2FwZVNlZW4gJiYgIW1fY2FwdHVyZUdyb3VwTmFtZXMuaXNFbXB0eSgpKSB7Cisg
ICAgICAgICAgICBtX2Vycm9yQ29kZSA9IEVycm9yQ29kZTo6SW52YWxpZE5hbWVkQmFja1JlZmVy
ZW5jZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjb250
YWluc0lsbGVnYWxOYW1lZEZvcndhcmRSZWZlcmVuY2UoKSkgeworICAgICAgICAgICAgLy8gXGs8
YT4gaXMgcGFyc2VkIGFzIG5hbWVkIHJlZmVyZW5jZSBpbiBVbmljb2RlIHBhdHRlcm5zIGJlY2F1
c2Ugb2Ygc3RyaWN0IElkZW50aXR5RXNjYXBlIGdyYW1tYXIuCisgICAgICAgICAgICAvLyBTZWUg
aHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1wYXR0ZXJucy1zdGF0aWMtc2VtYW50aWNzLWVh
cmx5LWVycm9ycworICAgICAgICAgICAgaWYgKG1faXNVbmljb2RlIHx8ICFtX2NhcHR1cmVHcm91
cE5hbWVzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIG1fZXJyb3JDb2RlID0gRXJyb3JD
b2RlOjpJbnZhbGlkTmFtZWRCYWNrUmVmZXJlbmNlOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9pc05hbWVkRm9yd2FyZFJlZmVyZW5jZUFs
bG93ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHNob3VsZFJlcGFyc2UgPSB0cnVlOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKHNob3VsZFJlcGFyc2UpIHsKKyAgICAgICAgICAgIHJlc2V0Rm9y
UmVwYXJzaW5nKCk7CisgICAgICAgICAgICBwYXJzZVRva2VucygpOworICAgICAgICB9CisgICAg
fQorCisgICAgYm9vbCBjb250YWluc0lsbGVnYWxOYW1lZEZvcndhcmRSZWZlcmVuY2UoKQorICAg
IHsKKyAgICAgICAgaWYgKG1fZm9yd2FyZFJlZmVyZW5jZU5hbWVzLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAobV9jYXB0dXJlR3JvdXBOYW1lcy5p
c0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBmb3IgKGF1dG8m
IGVudHJ5IDogbV9mb3J3YXJkUmVmZXJlbmNlTmFtZXMpIHsKKyAgICAgICAgICAgIGlmICghbV9j
YXB0dXJlR3JvdXBOYW1lcy5jb250YWlucyhlbnRyeSkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAg
dm9pZCByZXNldEZvclJlcGFyc2luZygpCisgICAgeworICAgICAgICBBU1NFUlQoIWhhc0Vycm9y
KG1fZXJyb3JDb2RlKSk7CisKKyAgICAgICAgbV9kZWxlZ2F0ZS5yZXNldEZvclJlcGFyc2luZygp
OworICAgICAgICBtX2luZGV4ID0gMDsKKyAgICAgICAgbV9udW1TdWJwYXR0ZXJucyA9IDA7Cisg
ICAgICAgIG1fbWF4U2VlbkJhY2tSZWZlcmVuY2UgPSAwOworICAgICAgICBtX2tJZGVudGl0eUVz
Y2FwZVNlZW4gPSBmYWxzZTsKKyAgICAgICAgbV9wYXJlbnRoZXNlc1N0YWNrLmNsZWFyKCk7Cisg
ICAgICAgIG1fY2FwdHVyZUdyb3VwTmFtZXMuY2xlYXIoKTsKKyAgICAgICAgbV9mb3J3YXJkUmVm
ZXJlbmNlTmFtZXMuY2xlYXIoKTsKKyAgICB9CisKICAgICAvLyBNaXNjIGhlbHBlciBmdW5jdGlv
bnM6CiAKICAgICB0eXBlZGVmIHVuc2lnbmVkIFBhcnNlU3RhdGU7CkBAIC0xMTUzLDE0ICsxMjMw
LDE5IEBAIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBQYXJlbnRoZXNlc1R5cGUgOiB1aW50OF90
IHsgU3VicGF0dGVybiwgQXNzZXJ0aW9uIH07CiAKICAgICBEZWxlZ2F0ZSYgbV9kZWxlZ2F0ZTsK
LSAgICB1bnNpZ25lZCBtX2JhY2tSZWZlcmVuY2VMaW1pdDsKICAgICBFcnJvckNvZGUgbV9lcnJv
ckNvZGUgeyBFcnJvckNvZGU6Ok5vRXJyb3IgfTsKICAgICBjb25zdCBDaGFyVHlwZSogbV9kYXRh
OwogICAgIHVuc2lnbmVkIG1fc2l6ZTsKICAgICB1bnNpZ25lZCBtX2luZGV4IHsgMCB9OwogICAg
IGJvb2wgbV9pc1VuaWNvZGU7CisgICAgdW5zaWduZWQgbV9iYWNrUmVmZXJlbmNlTGltaXQ7Cisg
ICAgdW5zaWduZWQgbV9udW1TdWJwYXR0ZXJucyB7IDAgfTsKKyAgICB1bnNpZ25lZCBtX21heFNl
ZW5CYWNrUmVmZXJlbmNlIHsgMCB9OworICAgIGJvb2wgbV9pc05hbWVkRm9yd2FyZFJlZmVyZW5j
ZUFsbG93ZWQ7CisgICAgYm9vbCBtX2tJZGVudGl0eUVzY2FwZVNlZW4geyBmYWxzZSB9OwogICAg
IFZlY3RvcjxQYXJlbnRoZXNlc1R5cGUsIDE2PiBtX3BhcmVudGhlc2VzU3RhY2s7CiAgICAgSGFz
aFNldDxTdHJpbmc+IG1fY2FwdHVyZUdyb3VwTmFtZXM7CisgICAgSGFzaFNldDxTdHJpbmc+IG1f
Zm9yd2FyZFJlZmVyZW5jZU5hbWVzOwogCiAgICAgLy8gRGVyaXZlZCBieSBlbXBpcmljYWwgdGVz
dGluZyBvZiBjb21waWxlIHRpbWUgaW4gUENSRSBhbmQgV1JFQy4KICAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIE1BWF9QQVRURVJOX1NJWkUgPSAxMDI0ICogMTAyNDsKQEAgLTExOTIsMTMg
KzEyNzQsMTQgQEAgcHJpdmF0ZToKICAqICAgIHZvaWQgYXRvbVBhcmVudGhlc2VzRW5kKCk7CiAg
KiAgICB2b2lkIGF0b21CYWNrUmVmZXJlbmNlKHVuc2lnbmVkIHN1YnBhdHRlcm5JZCk7CiAgKiAg
ICB2b2lkIGF0b21OYW1lZEJhY2tSZWZlcmVuY2UoY29uc3QgU3RyaW5nJiBzdWJwYXR0ZXJuTmFt
ZSk7Ci0gKiAgICBib29sIGlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UoY29uc3QgU3RyaW5n
JiBzdWJwYXR0ZXJuTmFtZSk7CiAgKiAgICB2b2lkIGF0b21OYW1lZEZvcndhcmRSZWZlcmVuY2Uo
Y29uc3QgU3RyaW5nJiBzdWJwYXR0ZXJuTmFtZSk7CiAgKgogICogICAgdm9pZCBxdWFudGlmeUF0
b20odW5zaWduZWQgbWluLCB1bnNpZ25lZCBtYXgsIGJvb2wgZ3JlZWR5KTsKICAqCiAgKiAgICB2
b2lkIGRpc2p1bmN0aW9uKCk7CiAgKgorICogICAgdm9pZCByZXNldEZvclJlcGFyc2luZygpOwor
ICoKICAqIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gaXMgZGVzY3JpYmVkIGJ5IGEgc2VxdWVuY2Ug
b2YgYXNzZXJ0aW9uKigpIGFuZCBhdG9tKigpCiAgKiBjYWxsYmFja3MgdG8gdGhlIGRlbGVnYXRl
LCBkZXNjcmliaW5nIHRoZSB0ZXJtcyBpbiB0aGUgcmVndWxhciBleHByZXNzaW9uLgogICogRm9s
bG93aW5nIGFuIGF0b20gYSBxdWFudGlmeUF0b20oKSBjYWxsIG1heSBvY2N1ciB0byBpbmRpY2F0
ZSB0aGF0IHRoZSBwcmV2aW91cwpAQCAtMTIyOSwxMSArMTMxMiwxMSBAQCBwcml2YXRlOgogICov
CiAKIHRlbXBsYXRlPGNsYXNzIERlbGVnYXRlPgotRXJyb3JDb2RlIHBhcnNlKERlbGVnYXRlJiBk
ZWxlZ2F0ZSwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBib29sIGlzVW5pY29kZSwgdW5zaWduZWQg
YmFja1JlZmVyZW5jZUxpbWl0ID0gcXVhbnRpZnlJbmZpbml0ZSkKK0Vycm9yQ29kZSBwYXJzZShE
ZWxlZ2F0ZSYgZGVsZWdhdGUsIGNvbnN0IFN0cmluZyYgcGF0dGVybiwgYm9vbCBpc1VuaWNvZGUs
IHVuc2lnbmVkIGJhY2tSZWZlcmVuY2VMaW1pdCA9IHF1YW50aWZ5SW5maW5pdGUsIGJvb2wgaXNO
YW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkID0gdHJ1ZSkKIHsKICAgICBpZiAocGF0dGVybi5p
czhCaXQoKSkKLSAgICAgICAgcmV0dXJuIFBhcnNlcjxEZWxlZ2F0ZSwgTENoYXI+KGRlbGVnYXRl
LCBwYXR0ZXJuLCBpc1VuaWNvZGUsIGJhY2tSZWZlcmVuY2VMaW1pdCkucGFyc2UoKTsKLSAgICBy
ZXR1cm4gUGFyc2VyPERlbGVnYXRlLCBVQ2hhcj4oZGVsZWdhdGUsIHBhdHRlcm4sIGlzVW5pY29k
ZSwgYmFja1JlZmVyZW5jZUxpbWl0KS5wYXJzZSgpOworICAgICAgICByZXR1cm4gUGFyc2VyPERl
bGVnYXRlLCBMQ2hhcj4oZGVsZWdhdGUsIHBhdHRlcm4sIGlzVW5pY29kZSwgYmFja1JlZmVyZW5j
ZUxpbWl0LCBpc05hbWVkRm9yd2FyZFJlZmVyZW5jZUFsbG93ZWQpLnBhcnNlKCk7CisgICAgcmV0
dXJuIFBhcnNlcjxEZWxlZ2F0ZSwgVUNoYXI+KGRlbGVnYXRlLCBwYXR0ZXJuLCBpc1VuaWNvZGUs
IGJhY2tSZWZlcmVuY2VMaW1pdCwgaXNOYW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkKS5wYXJz
ZSgpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6WWFycgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3lhcnIvWWFyclBhdHRlcm4uY3BwCmluZGV4IGM1MDgyMDg1NjJhNzUyN2E2MGY1YzMwM2Qx
Y2NkYjE3ZTFmMDZhZDIuLjk3ZmI4Njg0N2MwYTIzOTJjMGM1YWRjN2Y4MjMyMWMzZTY1MmNiMTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXR0ZXJuLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGF0dGVybi5jcHAKQEAgLTQ2Miwx
NiArNDYyLDYgQEAgcHVibGljOgogICAgICAgICBtX3BhdHRlcm4ubV9kaXNqdW5jdGlvbnMuYXBw
ZW5kKFdURk1vdmUoYm9keSkpOwogICAgIH0KIAotICAgIHZvaWQgc2F2ZVVubWF0Y2hlZE5hbWVk
Rm9yd2FyZFJlZmVyZW5jZXMoKQotICAgIHsKLSAgICAgICAgbV91bm1hdGNoZWROYW1lZEZvcndh
cmRSZWZlcmVuY2VzLnNocmluaygwKTsKLSAgICAgICAgCi0gICAgICAgIGZvciAoYXV0byYgZW50
cnkgOiBtX3BhdHRlcm4ubV9uYW1lZEZvcndhcmRSZWZlcmVuY2VzKSB7Ci0gICAgICAgICAgICBp
ZiAoIW1fcGF0dGVybi5tX2NhcHR1cmVHcm91cE5hbWVzLmNvbnRhaW5zKGVudHJ5KSkKLSAgICAg
ICAgICAgICAgICBtX3VubWF0Y2hlZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMuYXBwZW5kKGVudHJ5
KTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIHZvaWQgYXNzZXJ0aW9uQk9MKCkKICAgICB7CiAg
ICAgICAgIGlmICghbV9hbHRlcm5hdGl2ZS0+bV90ZXJtcy5zaXplKCkgJiYgIW1faW52ZXJ0UGFy
ZW50aGV0aWNhbEFzc2VydGlvbikgewpAQCAtNjU3LDcgKzY0Nyw2IEBAIHB1YmxpYzoKICAgICB7
CiAgICAgICAgIEFTU0VSVChzdWJwYXR0ZXJuSWQpOwogICAgICAgICBtX3BhdHRlcm4ubV9jb250
YWluc0JhY2tyZWZlcmVuY2VzID0gdHJ1ZTsKLSAgICAgICAgbV9wYXR0ZXJuLm1fbWF4QmFja1Jl
ZmVyZW5jZSA9IHN0ZDo6bWF4KG1fcGF0dGVybi5tX21heEJhY2tSZWZlcmVuY2UsIHN1YnBhdHRl
cm5JZCk7CiAKICAgICAgICAgaWYgKHN1YnBhdHRlcm5JZCA+IG1fcGF0dGVybi5tX251bVN1YnBh
dHRlcm5zKSB7CiAgICAgICAgICAgICBtX2FsdGVybmF0aXZlLT5tX3Rlcm1zLmFwcGVuZChQYXR0
ZXJuVGVybTo6Rm9yd2FyZFJlZmVyZW5jZSgpKTsKQEAgLTY4NywxNCArNjc2LDggQEAgcHVibGlj
OgogICAgICAgICBhdG9tQmFja1JlZmVyZW5jZShtX3BhdHRlcm4ubV9uYW1lZEdyb3VwVG9QYXJl
bkluZGV4LmdldChzdWJwYXR0ZXJuTmFtZSkpOwogICAgIH0KIAotICAgIGJvb2wgaXNWYWxpZE5h
bWVkRm9yd2FyZFJlZmVyZW5jZShjb25zdCBTdHJpbmcmIHN1YnBhdHRlcm5OYW1lKQorICAgIHZv
aWQgYXRvbU5hbWVkRm9yd2FyZFJlZmVyZW5jZShjb25zdCBTdHJpbmcmKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuICFtX3VubWF0Y2hlZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMuY29udGFpbnMoc3Vi
cGF0dGVybk5hbWUpOwotICAgIH0KLQotICAgIHZvaWQgYXRvbU5hbWVkRm9yd2FyZFJlZmVyZW5j
ZShjb25zdCBTdHJpbmcmIHN1YnBhdHRlcm5OYW1lKQotICAgIHsKLSAgICAgICAgbV9wYXR0ZXJu
Lm1fbmFtZWRGb3J3YXJkUmVmZXJlbmNlcy5hcHBlbmRJZk5vdENvbnRhaW5zKHN1YnBhdHRlcm5O
YW1lKTsKICAgICAgICAgbV9hbHRlcm5hdGl2ZS0+bV90ZXJtcy5hcHBlbmQoUGF0dGVyblRlcm06
OkZvcndhcmRSZWZlcmVuY2UoKSk7CiAgICAgfQogICAgIApAQCAtMTEzMCw3ICsxMTEzLDYgQEAg
cHJpdmF0ZToKICAgICBZYXJyUGF0dGVybiYgbV9wYXR0ZXJuOwogICAgIFBhdHRlcm5BbHRlcm5h
dGl2ZSogbV9hbHRlcm5hdGl2ZTsKICAgICBDaGFyYWN0ZXJDbGFzc0NvbnN0cnVjdG9yIG1fY2hh
cmFjdGVyQ2xhc3NDb25zdHJ1Y3RvcjsKLSAgICBWZWN0b3I8U3RyaW5nPiBtX3VubWF0Y2hlZE5h
bWVkRm9yd2FyZFJlZmVyZW5jZXM7CiAgICAgdm9pZCogbV9zdGFja0xpbWl0OwogICAgIEVycm9y
Q29kZSBtX2Vycm9yIHsgRXJyb3JDb2RlOjpOb0Vycm9yIH07CiAgICAgYm9vbCBtX2ludmVydENo
YXJhY3RlckNsYXNzOwpAQCAtMTE0NiwyMyArMTEyOCw2IEBAIEVycm9yQ29kZSBZYXJyUGF0dGVy
bjo6Y29tcGlsZShjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIHZvaWQqIHN0YWNrTGltaXQp
CiAgICAgICAgIGlmIChoYXNFcnJvcihlcnJvcikpCiAgICAgICAgICAgICByZXR1cm4gZXJyb3I7
CiAgICAgfQotICAgIAotICAgIC8vIElmIHRoZSBwYXR0ZXJuIGNvbnRhaW5zIGlsbGVnYWwgYmFj
a3JlZmVyZW5jZXMgcmVzZXQgJiByZXBhcnNlLgotICAgIC8vIFF1b3RpbmcgTmV0c2NhcGUncyAi
V2hhdCdzIG5ldyBpbiBKYXZhU2NyaXB0IDEuMiIsCi0gICAgLy8gICAgICAiTm90ZTogaWYgdGhl
IG51bWJlciBvZiBsZWZ0IHBhcmVudGhlc2VzIGlzIGxlc3MgdGhhbiB0aGUgbnVtYmVyIHNwZWNp
ZmllZAotICAgIC8vICAgICAgIGluIFwjLCB0aGUgXCMgaXMgdGFrZW4gYXMgYW4gb2N0YWwgZXNj
YXBlIGFzIGRlc2NyaWJlZCBpbiB0aGUgbmV4dCByb3cuIgotICAgIGlmIChjb250YWluc0lsbGVn
YWxCYWNrUmVmZXJlbmNlKCkgfHwgY29udGFpbnNJbGxlZ2FsTmFtZWRGb3J3YXJkUmVmZXJlbmNl
cygpKSB7Ci0gICAgICAgIGlmICh1bmljb2RlKCkpCi0gICAgICAgICAgICByZXR1cm4gRXJyb3JD
b2RlOjpJbnZhbGlkQmFja3JlZmVyZW5jZTsKLQotICAgICAgICB1bnNpZ25lZCBudW1TdWJwYXR0
ZXJucyA9IG1fbnVtU3VicGF0dGVybnM7Ci0KLSAgICAgICAgY29uc3RydWN0b3Iuc2F2ZVVubWF0
Y2hlZE5hbWVkRm9yd2FyZFJlZmVyZW5jZXMoKTsKLSAgICAgICAgY29uc3RydWN0b3IucmVzZXRG
b3JSZXBhcnNpbmcoKTsKLSAgICAgICAgRXJyb3JDb2RlIGVycm9yID0gcGFyc2UoY29uc3RydWN0
b3IsIHBhdHRlcm5TdHJpbmcsIHVuaWNvZGUoKSwgbnVtU3VicGF0dGVybnMpOwotICAgICAgICBB
U1NFUlRfVU5VU0VEKGVycm9yLCAhaGFzRXJyb3IoZXJyb3IpKTsKLSAgICAgICAgQVNTRVJUKG51
bVN1YnBhdHRlcm5zID09IG1fbnVtU3VicGF0dGVybnMpOwotICAgIH0KIAogICAgIGNvbnN0cnVj
dG9yLmNoZWNrRm9yVGVybWluYWxQYXJlbnRoZXNlcygpOwogICAgIGNvbnN0cnVjdG9yLm9wdGlt
aXplRG90U3RhcldyYXBwZWRFeHByZXNzaW9ucygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJQYXR0ZXJuLmgKaW5kZXggZjZiMjJlNTdlOGYwYjA5ZDU1NDhlYmIxNjQxMjYyZjYwMmMw
M2I3Ny4uMjc3ZjIwYjc0N2EyZWE5MGRhZGI2YjExYmE0Y2FjZTA4YTE4NDg2OSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGF0dGVybi5oCkBAIC0zOTEsNyArMzkxLDYgQEAgc3Ry
dWN0IFlhcnJQYXR0ZXJuIHsKICAgICB2b2lkIHJlc2V0Rm9yUmVwYXJzaW5nKCkKICAgICB7CiAg
ICAgICAgIG1fbnVtU3VicGF0dGVybnMgPSAwOwotICAgICAgICBtX21heEJhY2tSZWZlcmVuY2Ug
PSAwOwogICAgICAgICBtX2luaXRpYWxTdGFydFZhbHVlRnJhbWVMb2NhdGlvbiA9IDA7CiAKICAg
ICAgICAgbV9jb250YWluc0JhY2tyZWZlcmVuY2VzID0gZmFsc2U7CkBAIC00MTUsMjUgKzQxNCw2
IEBAIHN0cnVjdCBZYXJyUGF0dGVybiB7CiAgICAgICAgIG1fZGlzanVuY3Rpb25zLmNsZWFyKCk7
CiAgICAgICAgIG1fdXNlckNoYXJhY3RlckNsYXNzZXMuY2xlYXIoKTsKICAgICAgICAgbV9jYXB0
dXJlR3JvdXBOYW1lcy5zaHJpbmsoMCk7Ci0gICAgICAgIG1fbmFtZWRGb3J3YXJkUmVmZXJlbmNl
cy5zaHJpbmsoMCk7Ci0gICAgfQotCi0gICAgYm9vbCBjb250YWluc0lsbGVnYWxCYWNrUmVmZXJl
bmNlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX21heEJhY2tSZWZlcmVuY2UgPiBtX251bVN1
YnBhdHRlcm5zOwotICAgIH0KLSAgICAKLSAgICBib29sIGNvbnRhaW5zSWxsZWdhbE5hbWVkRm9y
d2FyZFJlZmVyZW5jZXMoKQotICAgIHsKLSAgICAgICAgaWYgKG1fbmFtZWRGb3J3YXJkUmVmZXJl
bmNlcy5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgZm9y
IChhdXRvJiBlbnRyeSA6IG1fbmFtZWRGb3J3YXJkUmVmZXJlbmNlcykgewotICAgICAgICAgICAg
aWYgKCFtX2NhcHR1cmVHcm91cE5hbWVzLmNvbnRhaW5zKGVudHJ5KSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKICAgICBib29sIGNvbnRhaW5zVW5zaWduZWRMZW5ndGhQYXR0ZXJuKCkKQEAgLTU1NSwxMyAr
NTM1LDExIEBAIHN0cnVjdCBZYXJyUGF0dGVybiB7CiAgICAgYm9vbCBtX3NhdmVJbml0aWFsU3Rh
cnRWYWx1ZSA6IDE7CiAgICAgT3B0aW9uU2V0PEZsYWdzPiBtX2ZsYWdzOwogICAgIHVuc2lnbmVk
IG1fbnVtU3VicGF0dGVybnMgeyAwIH07Ci0gICAgdW5zaWduZWQgbV9tYXhCYWNrUmVmZXJlbmNl
IHsgMCB9OwogICAgIHVuc2lnbmVkIG1faW5pdGlhbFN0YXJ0VmFsdWVGcmFtZUxvY2F0aW9uIHsg
MCB9OwogICAgIFBhdHRlcm5EaXNqdW5jdGlvbiogbV9ib2R5OwogICAgIFZlY3RvcjxzdGQ6OnVu
aXF1ZV9wdHI8UGF0dGVybkRpc2p1bmN0aW9uPiwgND4gbV9kaXNqdW5jdGlvbnM7CiAgICAgVmVj
dG9yPHN0ZDo6dW5pcXVlX3B0cjxDaGFyYWN0ZXJDbGFzcz4+IG1fdXNlckNoYXJhY3RlckNsYXNz
ZXM7CiAgICAgVmVjdG9yPFN0cmluZz4gbV9jYXB0dXJlR3JvdXBOYW1lczsKLSAgICBWZWN0b3I8
U3RyaW5nPiBtX25hbWVkRm9yd2FyZFJlZmVyZW5jZXM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIHVu
c2lnbmVkPiBtX25hbWVkR3JvdXBUb1BhcmVuSW5kZXg7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyU3ludGF4Q2hlY2tlci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyU3ludGF4Q2hlY2tlci5jcHAKaW5kZXggODZiMGU2
N2QxNDZjMjYxNzY0NmQ4YzYzMjQ2Y2M2MjQ1YjQ3YjIyZC4uM2M3YTVkYzM0ODJmZjJlNzMxZGQ3
ZjgyZWY2Y2Q2ZjA1ODMyNDAwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyclN5bnRheENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJTeW50YXhDaGVja2VyLmNwcApAQCAtNDksMTAgKzQ5LDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIGF0b21QYXJlbnRoZXNlc0VuZCgpIHt9CiAgICAgdm9pZCBhdG9tQmFja1JlZmVyZW5jZSh1
bnNpZ25lZCkge30KICAgICB2b2lkIGF0b21OYW1lZEJhY2tSZWZlcmVuY2UoY29uc3QgU3RyaW5n
Jikge30KLSAgICBib29sIGlzVmFsaWROYW1lZEZvcndhcmRSZWZlcmVuY2UoY29uc3QgU3RyaW5n
JikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgYXRvbU5hbWVkRm9yd2FyZFJlZmVyZW5jZShj
b25zdCBTdHJpbmcmKSB7fQogICAgIHZvaWQgcXVhbnRpZnlBdG9tKHVuc2lnbmVkLCB1bnNpZ25l
ZCwgYm9vbCkge30KICAgICB2b2lkIGRpc2p1bmN0aW9uKCkge30KKyAgICB2b2lkIHJlc2V0Rm9y
UmVwYXJzaW5nKCkge30KIH07CiAKIEVycm9yQ29kZSBjaGVja1N5bnRheChjb25zdCBTdHJpbmcm
IHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFyc2VyLmNwcAppbmRleCBmMDQyMGQ1MTU4Yzcz
NGNmMTA1MDRjN2E3YzRiYzBmMjQyNGQ4MzFhLi5lZjUwY2JiMjNkYmMzZjFkYTU1Y2ZhNGFiZTRj
MTc1M2I4YzhhNzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9u
cy9VUkxGaWx0ZXJQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL1VSTEZpbHRlclBhcnNlci5jcHAKQEAgLTEzNCwxMSArMTM0LDYgQEAgcHVibGljOgogICAg
ICAgICBmYWlsKFVSTEZpbHRlclBhcnNlcjo6QmFja1JlZmVyZW5jZSk7CiAgICAgfQogCi0gICAg
Ym9vbCBpc1ZhbGlkTmFtZWRGb3J3YXJkUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYpCi0gICAgewot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgdm9pZCBhdG9tTmFtZWRGb3J3YXJk
UmVmZXJlbmNlKGNvbnN0IFN0cmluZyYpCiAgICAgewogICAgICAgICBmYWlsKFVSTEZpbHRlclBh
cnNlcjo6Rm9yd2FyZFJlZmVyZW5jZSk7CkBAIC0yNDksNiArMjQ0LDExIEBAIHB1YmxpYzoKICAg
ICAgICAgZmFpbChVUkxGaWx0ZXJQYXJzZXI6OkRpc2p1bmN0aW9uKTsKICAgICB9CiAKKyAgICBO
T19SRVRVUk5fRFVFX1RPX0NSQVNIIHZvaWQgcmVzZXRGb3JSZXBhcnNpbmcoKQorICAgIHsKKyAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKIHByaXZhdGU6CiAg
ICAgYm9vbCBoYXNFcnJvcigpIGNvbnN0CiAgICAgewpAQCAtMzU4LDcgKzM1OCw3IEBAIFVSTEZp
bHRlclBhcnNlcjo6UGFyc2VTdGF0dXMgVVJMRmlsdGVyUGFyc2VyOjphZGRQYXR0ZXJuKGNvbnN0
IFN0cmluZyYgcGF0dGVybiwKIAogICAgIFBhcnNlU3RhdHVzIHN0YXR1cyA9IE9rOwogICAgIFBh
dHRlcm5QYXJzZXIgcGF0dGVyblBhcnNlcihwYXR0ZXJuSXNDYXNlU2Vuc2l0aXZlKTsKLSAgICBp
ZiAoIUpTQzo6WWFycjo6aGFzRXJyb3IoSlNDOjpZYXJyOjpwYXJzZShwYXR0ZXJuUGFyc2VyLCBw
YXR0ZXJuLCBmYWxzZSwgMCkpKQorICAgIGlmICghSlNDOjpZYXJyOjpoYXNFcnJvcihKU0M6Ollh
cnI6OnBhcnNlKHBhdHRlcm5QYXJzZXIsIHBhdHRlcm4sIGZhbHNlLCAwLCBmYWxzZSkpKQogICAg
ICAgICBwYXR0ZXJuUGFyc2VyLmZpbmFsaXplKHBhdHRlcm5JZCwgbV9jb21iaW5lZFVSTEZpbHRl
cnMpOwogICAgIGVsc2UKICAgICAgICAgc3RhdHVzID0gWWFyckVycm9yOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGIwYWQ2ZWI4ZmY2YmJkMzg2
MTc4OGE4ZWMyMzNjYjQ1MWU1YjAwMmUuLjk1NmI1ZDlmYzkwYjQyMGZhYTYyZWI5ZmI4OTA0OTFk
OGVjODY1MjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wMy0yNSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWth
bGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgSW52YWxpZCBudW1lcmljIGFuZCBuYW1lZCByZWZl
cmVuY2VzIHNob3VsZCBiZSBlYXJseSBzeW50YXggZXJyb3JzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgxNzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBSb3NzIEtpcnNsaW5nLgorCisgICAgICAgIFJlbW92ZXMgRklYTUUgYXMgWWFyclBhcnNlciBp
cyBjb3JyZWN0IG5vdCB0byB0aHJvdyBlcnJvcnMgYXMgaXQgaXMKKyAgICAgICAgcGFyc2luZyBp
biBub24tVW5pY29kZSBtb2RlLiBBbHNvIGFkZHMgYSBmZXcgbmFtZWQgZ3JvdXBzIHRlc3RzLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25z
LmNwcDoKKwogMjAyMC0wMy0yNSAgRnJhbmsgWWFuZyAgPGd1b3dlaV95YW5nQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnByZWZpeCAtd2Via2l0LXRleHQtb3JpZW50YXRpb24KZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3Bw
CmluZGV4IDhlMTM3YTgwNDc3ZmYwMGJlOWIzNTkyNzE4YTIzZjI0MTY5MzMxN2UuLmMzNTAyOGVj
MGE4ODg4OTY5ZWIzZjQ5ODYyYjIwMmIzZGQ2YmE5N2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTc2
MCw3ICsxNzYwLDYgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBQYXJzaW5nRmFpbHVy
ZXMpCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlsiLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmls
dGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6WWFyckVycm9yKTsKICAgICB0ZXN0UGF0dGVyblN0YXR1
cygiW2F9IiwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6
OllhcnJFcnJvcik7CiAgICAgCi0gICAgLy8gRklYTUU6IExvb2sgaW50byB3aHkgdGhlc2UgZG8g
bm90IGNhdXNlIFlBUlIgcGFyc2luZyBlcnJvcnMuICBUaGV5IHByb2JhYmx5IHNob3VsZC4KICAg
ICB0ZXN0UGF0dGVyblN0YXR1cygiYV0iLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFy
c2VyOjpQYXJzZVN0YXR1czo6T2spOwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJ7IiwgQ29udGVu
dEV4dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsKICAgICB0ZXN0
UGF0dGVyblN0YXR1cygie1thXSIsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6
OlBhcnNlU3RhdHVzOjpPayk7CkBAIC0xNzg5LDEwICsxNzg4LDEyIEBAIFRFU1RfRihDb250ZW50
RXh0ZW5zaW9uVGVzdCwgUGFyc2luZ0ZhaWx1cmVzKQogICAgIAogICAgIHRlc3RQYXR0ZXJuU3Rh
dHVzKCIoYSlcXDEiLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0
YXR1czo6T2spOyAvLyBCYWNrIHJlZmVyZW5jZXMgYXJlIGRpc2FibGVkLCBpdCBwYXJzZSBhcyBv
Y3RhbCAxCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIig8QT5hKVxcazxBPiIsIENvbnRlbnRFeHRl
bnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzOjpPayk7IC8vIE5hbWVkIGJhY2sg
cmVmZXJlbmNlcyBhcmVuJ3QgaGFuZGxlZCwgaXQgcGFyc2UgYXMgIms8QT4iCisgICAgdGVzdFBh
dHRlcm5TdGF0dXMoIig/PEE+YSlcXGs8QT4iLCBDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVy
UGFyc2VyOjpQYXJzZVN0YXR1czo6QmFja1JlZmVyZW5jZSk7CiAgICAgdGVzdFBhdHRlcm5TdGF0
dXMoIlxcMShhKSIsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3Rh
dHVzOjpPayk7IC8vIEZvcndhcmQgcmVmZXJlbmNlcyBhcmUgZGlzYWJsZWQsIGl0IHBhcnNlIGFz
IG9jdGFsIDEKICAgICB0ZXN0UGF0dGVyblN0YXR1cygiXFw4KGEpIiwgQ29udGVudEV4dGVuc2lv
bnM6OlVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXM6Ok9rKTsgLy8gRm9yd2FyZCByZWZlcmVu
Y2VzIGFyZSBkaXNhYmxlZCwgaXQgcGFyc2UgYXMgJzgnCiAgICAgdGVzdFBhdHRlcm5TdGF0dXMo
IlxcOShhKSIsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVz
OjpPayk7IC8vIEZvcndhcmQgcmVmZXJlbmNlcyBhcmUgZGlzYWJsZWQsIGl0IHBhcnNlIGFzICc5
JwogICAgIHRlc3RQYXR0ZXJuU3RhdHVzKCJcXGs8QT4oPEE+YSkiLCBDb250ZW50RXh0ZW5zaW9u
czo6VVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1czo6T2spOyAvLyBOYW1lZCBmb3J3YXJkIHJl
ZmVyZW5jZXMgYXJlbid0IGhhbmRsZWQsIGl0IHBhcnNlIGFzICJrPEE+IgorICAgIHRlc3RQYXR0
ZXJuU3RhdHVzKCJcXGs8QT4oPzxBPmEpIiwgQ29udGVudEV4dGVuc2lvbnM6OlVSTEZpbHRlclBh
cnNlcjo6UGFyc2VTdGF0dXM6OllhcnJFcnJvcik7CiAgICAgdGVzdFBhdHRlcm5TdGF0dXMoIlxc
azxBPihhKSIsIENvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVz
OjpPayk7IC8vIFVubWF0Y2hlZCBuYW1lZCBmb3J3YXJkIHJlZmVyZW5jZXMgYXJlbid0IGhhbmRs
ZWQsIGl0IHBhcnNlIGFzICJrPEE+IgogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjgzYTYyZjBjNzE0NWM1M2VjZDYx
NTJjNTVkMWEwMzJhY2I1NWNkZS4uZWU1YmFkZGU2YmQyMTkyM2JhOWVkYWIzMDFmNmRhMTFlNmYy
NTZjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAzLTI1ICBBbGV4ZXkgU2h2YXlrYSAg
PHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBJbnZhbGlkIG51bWVyaWMgYW5kIG5h
bWVkIHJlZmVyZW5jZXMgc2hvdWxkIGJlIGVhcmx5IHN5bnRheCBlcnJvcnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODE3NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IFJvc3MgS2lyc2xpbmcuCisKKyAgICAgICAgKiBqcy9yZWdleHAtbmFtZWQtY2Fw
dHVyZS1ncm91cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9yZWdl
eHAtbmFtZWQtY2FwdHVyZS1ncm91cHMuanM6CisKIDIwMjAtMDMtMjUgIEZyYW5rIFlhbmcgIDxn
dW93ZWlfeWFuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5wcmVmaXggLXdlYmtpdC10ZXh0LW9y
aWVudGF0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdleHAtbmFtZWQtY2FwdHVy
ZS1ncm91cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVnZXhwLW5hbWVkLWNhcHR1
cmUtZ3JvdXBzLWV4cGVjdGVkLnR4dAppbmRleCAwODRmYjUxMzBkNWZiZmM5ZmM4MWIyMDU3Zjlk
MzEwODRkOGZjMmQ1Li5kMzIwMzYzNWI1YTc2NThiN2YyN2Q0NDQ4ZTZiZGQ3N2EyMzllYzhiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdleHAtbmFtZWQtY2FwdHVyZS1ncm91cHMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ2V4cC1uYW1lZC1jYXB0dXJlLWdyb3Vw
cy1leHBlY3RlZC50eHQKQEAgLTY2LDcgKzY2LDggQEAgUEFTUyAiWHp6WHp6Ii5tYXRjaCgvXGs8
ej5YKD88ej56KilYXGs8ej4vdSkgaXMgWyJYenpYenoiLCAienoiXQogUEFTUyAiMTEyMjMzMjIx
MSIubWF0Y2goL1xrPG9uZXM+XGs8dHdvcz5cazx0aHJlZXM+KD88b25lcz4xKikoPzx0d29zPjIq
KSg/PHRocmVlcz4zKilcazx0aHJlZXM+XGs8dHdvcz5cazxvbmVzPi8pIGlzIFsiMTEyMjMzMjIx
MSIsICIxMSIsICIyMiIsICIzIl0KIFBBU1MgIjExMjIzMzIyMTEiLm1hdGNoKC9cazxvbmVzPlxr
PHR3b3M+XGs8dGhyZWVzPig/PG9uZXM+MSopKD88dHdvcz4yKikoPzx0aHJlZXM+MyopXGs8dGhy
ZWVzPlxrPHR3b3M+XGs8b25lcz4vdSkgaXMgWyIxMTIyMzMyMjExIiwgIjExIiwgIjIyIiwgIjMi
XQogUEFTUyAiXGs8ej5YenpYIi5tYXRjaCgvXGs8ej5YKHoqKVgvKSBpcyBbIms8ej5YenpYIiwg
Inp6Il0KLVBBU1MgIlxrPHo+WHp6WCIubWF0Y2goL1xrPHo+WCh6KilYL3UpIHRocmV3IGV4Y2Vw
dGlvbiBTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IGludmFsaWQgYmFj
a3JlZmVyZW5jZSBmb3IgVW5pY29kZSBwYXR0ZXJuLgorUEFTUyAiXGs8ej5YenpYIi5tYXRjaCgv
XGs8ej5YKHoqKVgvdSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBJbnZhbGlkIHJlZ3Vs
YXIgZXhwcmVzc2lvbjogaW52YWxpZCBcazw+IG5hbWVkIGJhY2tyZWZlcmVuY2UuCitQQVNTIC9c
azx4eHgoPzxhPnkpKC8gdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBJbnZhbGlkIHJlZ3Vs
YXIgZXhwcmVzc2lvbjogaW52YWxpZCBcazw+IG5hbWVkIGJhY2tyZWZlcmVuY2UuCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9yZWdleHAtbmFtZWQtY2FwdHVyZS1ncm91cHMuanMg
Yi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvcmVnZXhwLW5hbWVkLWNhcHR1cmUtZ3JvdXBz
LmpzCmluZGV4IGQxYjk1YTEzYjIzZWM3M2QxNTA0YmVhY2E1ZjUyNmFjMDVlMzhmMzUuLjFlZWE2
ZGU3NjUyMTUwODExYmVmYmZmNGJkY2Q0ODVjYzc5MTgyYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2pzL3NjcmlwdC10ZXN0cy9yZWdleHAtbmFtZWQtY2FwdHVyZS1ncm91cHMuanMKKysrIGIv
TGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3JlZ2V4cC1uYW1lZC1jYXB0dXJlLWdyb3Vwcy5q
cwpAQCAtMTExLDYgKzExMSw3IEBAIHNob3VsZEJlKCciMTEyMjMzMjIxMSIubWF0Y2goL1xcXGs8
b25lcz5cXFxrPHR3b3M+XFxcazx0aHJlZXM+KD88b25lcz4xKikoPzx0d29zCiBzaG91bGRCZSgn
IjExMjIzMzIyMTEiLm1hdGNoKC9cXFxrPG9uZXM+XFxcazx0d29zPlxcXGs8dGhyZWVzPig/PG9u
ZXM+MSopKD88dHdvcz4yKikoPzx0aHJlZXM+MyopXFxcazx0aHJlZXM+XFxcazx0d29zPlxcXGs8
b25lcz4vdSknLCAnWyIxMTIyMzMyMjExIiwgIjExIiwgIjIyIiwgIjMiXScpOwogCiAvLyBDaGVj
ayB0aGF0IGEgbmFtZWQgZm9yd2FyZCByZWZlcmVuY2UgZm9yIGEgbm9uLWV4aXN0ZW50IG5hbWVk
IGNhcHR1cmUKLS8vIG1hdGNoZXMgZm9yIG5vbi11bmljb2RlIHBhdHRlcm5zIGFuZCB0aHJvd3Mg
Zm9yIHVuaWNvZGUgcGF0dGVybnMuCisvLyBtYXRjaGVzIGZvciBub24tVW5pY29kZSBwYXR0ZXJu
cyB3L28gYSBuYW1lZCBncm91cCBhbmQgdGhyb3dzIGZvciBwYXR0ZXJucyB3aXRoIGEgbmFtZWQg
Z3JvdXAgb3IgVW5pY29kZSBmbGFnLgogc2hvdWxkQmUoJyJcXFxrPHo+WHp6WCIubWF0Y2goL1xc
XGs8ej5YKHoqKVgvKScsICdbIms8ej5YenpYIiwgInp6Il0nKTsKLXNob3VsZFRocm93KCciXFxc
azx6Plh6elgiLm1hdGNoKC9cXFxrPHo+WCh6KilYL3UpJywgJyJTeW50YXhFcnJvcjogSW52YWxp
ZCByZWd1bGFyIGV4cHJlc3Npb246IGludmFsaWQgYmFja3JlZmVyZW5jZSBmb3IgVW5pY29kZSBw
YXR0ZXJuIicpOworc2hvdWxkVGhyb3coJyJcXFxrPHo+WHp6WCIubWF0Y2goL1xcXGs8ej5YKHoq
KVgvdSknLCAnIlN5bnRheEVycm9yOiBJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogaW52YWxp
ZCBcXFxcazw+IG5hbWVkIGJhY2tyZWZlcmVuY2UiJyk7CitzaG91bGRUaHJvdygnL1xcXGs8eHh4
KD88YT55KSgvJywgJyJTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IGlu
dmFsaWQgXFxcXGs8PiBuYW1lZCBiYWNrcmVmZXJlbmNlIicpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAwNmJkM2ZlYzY2MjIyYTFiNmVk
NjhlMThhMDBmYTkxYWRlODRkZTIxLi5hZjMwMDg2Y2M2NTIwMzQ5NzhhNGJmOGQ3NTVmYTE5YjZl
NWFkMjViIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTI1ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFp
a2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBJbnZhbGlkIG51bWVyaWMgYW5kIG5hbWVkIHJl
ZmVyZW5jZXMgc2hvdWxkIGJlIGVhcmx5IHN5bnRheCBlcnJvcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODE3NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IFJvc3MgS2lyc2xpbmcuCisKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1s
OiBNYXJrIDQ0IHRlc3QgY2FzZXMgYXMgcGFzc2luZy4KKwogMjAyMC0wMy0yNSAgQWxleGV5IFNo
dmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgXGIgZXNjYXBlcyBpbnNp
ZGUgY2hhcmFjdGVyIGNsYXNzZXMgc2hvdWxkIGJlIHZhbGlkIGluIFVuaWNvZGUgcGF0dGVybnMK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMv
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAppbmRleCA0ZTQ5ZTZiNzNkNTNiMGExYzUyYTFlMTM4
YTgxMzhiNmNhOGM4Y2VjLi41NDcxMDQ2MmM1MDIxZjU3MzgwYTI4Mzg4NjJmN2U5ZWJmZjgxYTAx
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNU
ZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC0xNzExLDkgKzE3MTEsNiBAQCB0ZXN0
L2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL3VuaWNvZGUvY3Jvc3MtcmVhbG0uanM6CiB0ZXN0
L2J1aWx0LWlucy9SZWdFeHAvcXVhbnRpZmllci1pbnRlZ2VyLWxpbWl0LmpzOgogICBkZWZhdWx0
OiAnU3ludGF4RXJyb3I6IEludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiBudW1iZXIgdG9vIGxh
cmdlIGluIHt9IHF1YW50aWZpZXInCiAgIHN0cmljdCBtb2RlOiAnU3ludGF4RXJyb3I6IEludmFs
aWQgcmVndWxhciBleHByZXNzaW9uOiBudW1iZXIgdG9vIGxhcmdlIGluIHt9IHF1YW50aWZpZXIn
Ci10ZXN0L2J1aWx0LWlucy9SZWdFeHAvdW5pY29kZV9yZXN0cmljdGVkX2lkZW50aXR5X2VzY2Fw
ZV9hbHBoYS5qczoKLSAgZGVmYXVsdDogIlRlc3QyNjJFcnJvcjogSWRlbnRpdHlFc2NhcGUgaW4g
QXRvbUVzY2FwZTogJ2snIEV4cGVjdGVkIGEgU3ludGF4RXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBu
byBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwiCi0gIHN0cmljdCBtb2RlOiAiVGVzdDI2MkVy
cm9yOiBJZGVudGl0eUVzY2FwZSBpbiBBdG9tRXNjYXBlOiAnaycgRXhwZWN0ZWQgYSBTeW50YXhF
cnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCIKIHRl
c3QvYnVpbHQtaW5zL1JlZ0V4cC91bmljb2RlX3Jlc3RyaWN0ZWRfb2N0YWxfZXNjYXBlLmpzOgog
ICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBSZWdFeHAoIltcMV0iLCAidSIpOiAgRXhwZWN0ZWQg
YSBTeW50YXhFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IFJlZ0V4cCgiW1wxXSIsICJ1Iik6
ICBFeHBlY3RlZCBhIFN5bnRheEVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdh
cyB0aHJvd24gYXQgYWxsJwpAQCAtMzI2NCw3MiArMzI2MSw5IEBAIHRlc3QvbGFuZ3VhZ2UvaWRl
bnRpZmllcnMvc3RhcnQtdW5pY29kZS0xMy4wLjAtZXNjYXBlZC5qczoKIHRlc3QvbGFuZ3VhZ2Uv
aWRlbnRpZmllcnMvc3RhcnQtdW5pY29kZS0xMy4wLjAuanM6CiAgIGRlZmF1bHQ6ICJTeW50YXhF
cnJvcjogSW52YWxpZCBjaGFyYWN0ZXIgJ1xcdTA4YmUnIgogICBzdHJpY3QgbW9kZTogIlN5bnRh
eEVycm9yOiBJbnZhbGlkIGNoYXJhY3RlciAnXFx1MDhiZSciCi10ZXN0L2xhbmd1YWdlL2xpdGVy
YWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1kYW5nbGluZy1ncm91cG5hbWUtMi11Lmpz
OgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFs
dWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBu
b3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdy
b3Vwcy9pbnZhbGlkLWRhbmdsaW5nLWdyb3VwbmFtZS0yLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2
MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRl
c3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWRhbmdsaW5n
LWdyb3VwbmFtZS0zLXUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBz
aG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBz
dGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFs
cy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtZGFuZ2xpbmctZ3JvdXBuYW1lLTMuanM6Ci0g
IGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRl
ZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBi
ZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbmFtZWQtZ3JvdXBz
L2ludmFsaWQtZGFuZ2xpbmctZ3JvdXBuYW1lLTQtdS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6
IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0
L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1kYW5nbGluZy1n
cm91cG5hbWUtNC5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3Vs
ZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRl
bWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3Jl
Z2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1kYW5nbGluZy1ncm91cG5hbWUtNS5qczoKLSAgZGVm
YXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicK
LSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2
YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52
YWxpZC1kYW5nbGluZy1ncm91cG5hbWUtdS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMg
c3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1
YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMvaW52YWxpZC1kYW5nbGluZy1ncm91cG5h
bWUtd2l0aG91dC1ncm91cC11LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1l
bnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRo
aXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0
ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWRhbmdsaW5nLWdyb3VwbmFtZS5qczoK
LSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVh
dGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90
IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91
cHMvaW52YWxpZC1pbmNvbXBsZXRlLWdyb3VwbmFtZS0yLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2
MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRl
c3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWluY29tcGxl
dGUtZ3JvdXBuYW1lLTMuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBz
aG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBz
dGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFs
cy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtaW5jb21wbGV0ZS1ncm91cG5hbWUtNC5qczoK
LSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVh
dGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90
IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91
cHMvaW52YWxpZC1pbmNvbXBsZXRlLWdyb3VwbmFtZS01LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2
MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRl
c3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL25hbWVkLWdyb3Vwcy9pbnZhbGlkLWluY29tcGxl
dGUtZ3JvdXBuYW1lLTYuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBz
aG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBz
dGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9saXRlcmFs
cy9yZWdleHAvbmFtZWQtZ3JvdXBzL2ludmFsaWQtaW5jb21wbGV0ZS1ncm91cG5hbWUtdS5qczoK
LSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVh
dGVkLicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90
IGJlIGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91
cHMvaW52YWxpZC1pbmNvbXBsZXRlLWdyb3VwbmFtZS13aXRob3V0LWdyb3VwLTMtdS5qczoKLSAg
ZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVk
LicKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJl
IGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9uYW1lZC1ncm91cHMv
aW52YWxpZC1pbmNvbXBsZXRlLWdyb3VwbmFtZS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRo
aXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLSAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCiB0ZXN0L2xh
bmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC91LWFzdHJhbC1jaGFyLWNsYXNzLWludmVydC5qczoKICAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr77+9wrssIMKrbnVs
bMK7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQg
U2FtZVZhbHVlKMKr77+9wrssIMKrbnVsbMK7KSB0byBiZSB0cnVlJwotdGVzdC9sYW5ndWFnZS9s
aXRlcmFscy9yZWdleHAvdS1kZWMtZXNjLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBz
dGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotICBzdHJpY3QgbW9kZTogJ1Rlc3Qy
NjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3Vh
Z2UvbGl0ZXJhbHMvcmVnZXhwL3UtaW52YWxpZC1sZWdhY3ktb2N0YWwtZXNjYXBlLmpzOgotICBk
ZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQu
JwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUg
ZXZhbHVhdGVkLicKLXRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL3UtaW52YWxpZC1vb2It
ZGVjaW1hbC1lc2NhcGUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBz
aG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBz
dGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwogdGVzdC9sYW5ndWFnZS9tb2R1bGUt
Y29kZS9ldmFsLXJxc3RkLW9uY2UuanM6CiAgIG1vZHVsZTogIlN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIGlkZW50aWZpZXIgJ2FzJy4gRXhwZWN0ZWQgJ2Zyb20nIGJlZm9yZSBleHBvcnRlZCBtb2R1
bGUgbmFtZS4iCiB0ZXN0L2xhbmd1YWdlL21vZHVsZS1jb2RlL2V2YWwtcnFzdGQtb3JkZXIuanM6
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>