<?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>119712</bug_id>
          
          <creation_ts>2013-08-12 18:12:10 -0700</creation_ts>
          <short_desc>Remove support for &apos;pixel&apos; and &apos;pos&apos; CSSOM prefixes</short_desc>
          <delta_ts>2021-02-27 11:51:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=218158</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>BlinkMergeCandidate, InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>218525</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hyatt</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonlee</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mkwst</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>syoichi</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>916479</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-12 18:12:10 -0700</bug_when>
    <thetext>Consider merging https://chromium.googlesource.com/chromium/blink/+/7cb1d002fd79604c9e8d0bd810ba6f8f21ca78af

These prefixes are:

1. Non-standard: the CSSOM standard doesn&apos;t mention them.

2. Broken: &apos;pixelWidth&apos; should automagically convert from whatever unit the
   stylesheet specified into CSS pixels[1]. We&apos;re currently not doing that at
   all: if an element has a &apos;width&apos; of 100em, pixelWidth is &apos;100&apos;, which is
   probably wildly inaccurate.

3. Not covered by any tests (&apos;fast/dom/CSSStyleDeclaration/css-properties-case-sensitive.html&apos;
   is the only test mentioning these properties, and it only checks
   case-sensitivity: it doesn&apos;t validate behavior).

This patch drops support completely.

[1]: http://msdn.microsoft.com/en-us/library/ie/ms531135(v=vs.85).aspx</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916489</commentid>
    <comment_count>1</comment_count>
      <attachid>208584</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-12 19:16:50 -0700</bug_when>
    <thetext>Created attachment 208584
Merges the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916513</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-08-12 20:36:22 -0700</bug_when>
    <thetext>Hmm, would be nice to know if these are used in the wild.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916514</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-12 20:42:12 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Hmm, would be nice to know if these are used in the wild.

Indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916517</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-08-12 20:44:45 -0700</bug_when>
    <thetext>Here&apos;s blink-dev thread: https://groups.google.com/a/chromium.org/forum/#!searchin/blink-dev/pixel$20pos/blink-dev/JS4nH_d1YkA/xd99lydDTfcJ

We might want to discuss this on webkit-dev.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1141658</commentid>
    <comment_count>5</comment_count>
      <attachid>208584</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-11-12 15:29:17 -0800</bug_when>
    <thetext>Comment on attachment 208584
Merges the patch

I think this is a great idea. I just tested and both Firefox / Chrome no longer support this, so it doesn&apos;t seem like too controversial a change. Clearing flags to rebaseline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701136</commentid>
    <comment_count>6</comment_count>
      <attachid>412209</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-23 13:43:35 -0700</bug_when>
    <thetext>Created attachment 412209
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701139</commentid>
    <comment_count>7</comment_count>
      <attachid>412210</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-23 13:53:19 -0700</bug_when>
    <thetext>Created attachment 412210
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701243</commentid>
    <comment_count>8</comment_count>
      <attachid>412241</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-24 10:55:10 -0700</bug_when>
    <thetext>Created attachment 412241
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701302</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-25 09:34:51 -0700</bug_when>
    <thetext>Committed r268957: &lt;https://trac.webkit.org/changeset/268957&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412241.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701303</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-25 09:35:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/70660490&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704074</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-11-03 10:43:22 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 218525</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734082</commentid>
    <comment_count>12</comment_count>
      <attachid>421728</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-26 16:54:15 -0800</bug_when>
    <thetext>Created attachment 421728
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734087</commentid>
    <comment_count>13</comment_count>
      <attachid>421729</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-26 16:57:30 -0800</bug_when>
    <thetext>Created attachment 421729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734108</commentid>
    <comment_count>14</comment_count>
      <attachid>421732</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-26 18:32:04 -0800</bug_when>
    <thetext>Created attachment 421732
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734109</commentid>
    <comment_count>15</comment_count>
      <attachid>421733</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-26 18:34:51 -0800</bug_when>
    <thetext>Created attachment 421733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734199</commentid>
    <comment_count>16</comment_count>
      <attachid>421748</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-27 09:50:01 -0800</bug_when>
    <thetext>Created attachment 421748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734215</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-27 11:51:51 -0800</bug_when>
    <thetext>Committed r273627: &lt;https://commits.webkit.org/r273627&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421748.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208584</attachid>
            <date>2013-08-12 19:16:50 -0700</date>
            <delta_ts>2020-10-23 13:43:27 -0700</delta_ts>
            <desc>Merges the patch</desc>
            <filename>bug-119712-20130812191650.patch</filename>
            <type>text/plain</type>
            <size>9208</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1Mzk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDEzLTA4LTEyICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciAn
cGl4ZWwnIGFuZCAncG9zJyBDU1NPTSBwcmVmaXhlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NzEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTWVyZ2UgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3Vy
Y2UuY29tL2Nocm9taXVtL2JsaW5rLysvN2NiMWQwMDJmZDc5NjA0YzllOGQwYmQ4MTBiYTZmOGYy
MWNhNzhhZgorCisgICAgICAgIFRoZXNlIHByZWZpeGVzIGFyZToKKworICAgICAgICAxLiBOb24t
c3RhbmRhcmQ6IHRoZSBDU1NPTSBzdGFuZGFyZCBkb2Vzbid0IG1lbnRpb24gdGhlbS4KKworICAg
ICAgICAyLiBCcm9rZW46ICdwaXhlbFdpZHRoJyBzaG91bGQgYXV0b21hZ2ljYWxseSBjb252ZXJ0
IGZyb20gd2hhdGV2ZXIgdW5pdCB0aGUKKyAgICAgICAgICAgc3R5bGVzaGVldCBzcGVjaWZpZWQg
aW50byBDU1MgcGl4ZWxzWzFdLiBXZSdyZSBjdXJyZW50bHkgbm90IGRvaW5nIHRoYXQgYXQKKyAg
ICAgICAgICAgYWxsOiBpZiBhbiBlbGVtZW50IGhhcyBhICd3aWR0aCcgb2YgMTAwZW0sIHBpeGVs
V2lkdGggaXMgJzEwMCcsIHdoaWNoIGlzCisgICAgICAgICAgIHByb2JhYmx5IHdpbGRseSBpbmFj
Y3VyYXRlLgorCisgICAgICAgIDMuIE5vdCBjb3ZlcmVkIGJ5IGFueSB0ZXN0cyAoJ2Zhc3QvZG9t
L0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXByb3BlcnRpZXMtY2FzZS1zZW5zaXRpdmUuaHRtbCcK
KyAgICAgICAgICAgaXMgdGhlIG9ubHkgdGVzdCBtZW50aW9uaW5nIHRoZXNlIHByb3BlcnRpZXMs
IGFuZCBpdCBvbmx5IGNoZWNrcworICAgICAgICAgICBjYXNlLXNlbnNpdGl2aXR5OiBpdCBkb2Vz
bid0IHZhbGlkYXRlIGJlaGF2aW9yKS4KKworICAgICAgICBUaGlzIHBhdGNoIGRyb3BzIHN1cHBv
cnQgY29tcGxldGVseS4KKworICAgICAgICBbMV06IGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20v
ZW4tdXMvbGlicmFyeS9pZS9tczUzMTEzNSh2PXZzLjg1KS5hc3B4CisKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Z2V0Q1NTUHJvcGVydHlOYW1lUHJlZml4KToKKyAgICAgICAgKFdlYkNvcmU6OmNzc1Byb3Bl
cnR5SURGb3JKU0NTU1Byb3BlcnR5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NTU1N0eWxl
RGVjbGFyYXRpb246OmdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTQ1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRGVsZWdh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNDU1NTdHlsZURlY2xhcmF0aW9uOjpwdXREZWxlZ2F0
ZSk6CisKIDIwMTMtMDgtMTIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgRW5jYXBzdWxhdGUgYWNjZXNzIHRvIGRvY3VtZW50TmFtZWRJdGVtTWFwIGFuZCB3aW5k
b3dOYW1lZEl0ZW1NYXAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5
bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAkocmV2aXNpb24gMTUzOTUz
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3Vz
dG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsMTUgKzYyLDEyIEBAIHZvaWQgSlNDU1NTdHls
ZURlY2xhcmF0aW9uOjp2aXNpdENoaWxkcmUKIGNsYXNzIENTU1Byb3BlcnR5SW5mbyB7CiBwdWJs
aWM6CiAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEOwotICAgIGJvb2wgaGFkUGl4ZWxPclBv
c1ByZWZpeDsKIH07CiAKIGVudW0gUHJvcGVydHlOYW1lUHJlZml4CiB7CiAgICAgUHJvcGVydHlO
YW1lUHJlZml4Tm9uZSwKICAgICBQcm9wZXJ0eU5hbWVQcmVmaXhDU1MsCi0gICAgUHJvcGVydHlO
YW1lUHJlZml4UGl4ZWwsCi0gICAgUHJvcGVydHlOYW1lUHJlZml4UG9zLAogI2lmIEVOQUJMRShM
RUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykKICAgICBQcm9wZXJ0eU5hbWVQcmVmaXhBcHBsZSwK
ICNlbmRpZgpAQCAtMTM4LDEyICsxMzUsNiBAQCBzdGF0aWMgUHJvcGVydHlOYW1lUHJlZml4IGdl
dENTU1Byb3BlcnR5CiAgICAgICAgIGlmIChtYXRjaGVzQ1NTUHJvcGVydHlOYW1lUHJlZml4KHBy
b3BlcnR5TmFtZSwgImVwdWIiKSkKICAgICAgICAgICAgIHJldHVybiBQcm9wZXJ0eU5hbWVQcmVm
aXhFcHViOwogICAgICAgICBicmVhazsKLSAgICBjYXNlICdwJzoKLSAgICAgICAgaWYgKG1hdGNo
ZXNDU1NQcm9wZXJ0eU5hbWVQcmVmaXgocHJvcGVydHlOYW1lLCAicG9zIikpCi0gICAgICAgICAg
ICByZXR1cm4gUHJvcGVydHlOYW1lUHJlZml4UG9zOwotICAgICAgICBpZiAobWF0Y2hlc0NTU1By
b3BlcnR5TmFtZVByZWZpeChwcm9wZXJ0eU5hbWUsICJwaXhlbCIpKQotICAgICAgICAgICAgcmV0
dXJuIFByb3BlcnR5TmFtZVByZWZpeFBpeGVsOwotICAgICAgICBicmVhazsKICAgICBjYXNlICd3
JzoKICAgICAgICAgaWYgKG1hdGNoZXNDU1NQcm9wZXJ0eU5hbWVQcmVmaXgocHJvcGVydHlOYW1l
LCAid2Via2l0IikpCiAgICAgICAgICAgICByZXR1cm4gUHJvcGVydHlOYW1lUHJlZml4V2ViS2l0
OwpAQCAtMTc4LDggKzE2OSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB3cml0ZUVwdWJQcmVmaXgo
Y2hhcioKIAogc3RhdGljIENTU1Byb3BlcnR5SW5mbyBjc3NQcm9wZXJ0eUlERm9ySlNDU1NQcm9w
ZXJ0eU5hbWUoUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAgICBDU1NQcm9wZXJ0eUlu
Zm8gcHJvcGVydHlJbmZvID0ge0NTU1Byb3BlcnR5SW52YWxpZCwgZmFsc2V9OwotICAgIGJvb2wg
aGFkUGl4ZWxPclBvc1ByZWZpeCA9IGZhbHNlOworICAgIENTU1Byb3BlcnR5SW5mbyBwcm9wZXJ0
eUluZm8gPSB7Q1NTUHJvcGVydHlJbnZhbGlkfTsKIAogICAgIFN0cmluZ0ltcGwqIHByb3BlcnR5
TmFtZVN0cmluZyA9IHByb3BlcnR5TmFtZS5wdWJsaWNOYW1lKCk7CiAgICAgaWYgKCFwcm9wZXJ0
eU5hbWVTdHJpbmcpCkBAIC0yMTIsMTQgKzIwMiw2IEBAIHN0YXRpYyBDU1NQcm9wZXJ0eUluZm8g
Y3NzUHJvcGVydHlJREZvckoKICAgICBjYXNlIFByb3BlcnR5TmFtZVByZWZpeENTUzoKICAgICAg
ICAgaSArPSAzOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3BlcnR5TmFtZVByZWZpeFBp
eGVsOgotICAgICAgICBpICs9IDU7Ci0gICAgICAgIGhhZFBpeGVsT3JQb3NQcmVmaXggPSB0cnVl
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3BlcnR5TmFtZVByZWZpeFBvczoKLSAgICAg
ICAgaSArPSAzOwotICAgICAgICBoYWRQaXhlbE9yUG9zUHJlZml4ID0gdHJ1ZTsKLSAgICAgICAg
YnJlYWs7CiAjaWYgRU5BQkxFKExFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKQogICAgIGNhc2Ug
UHJvcGVydHlOYW1lUHJlZml4QXBwbGU6CiAgICAgY2FzZSBQcm9wZXJ0eU5hbWVQcmVmaXhLSFRN
TDoKQEAgLTI3Myw3ICsyNTUsNiBAQCBzdGF0aWMgQ1NTUHJvcGVydHlJbmZvIGNzc1Byb3BlcnR5
SURGb3JKCiAgICAgY29uc3QgUHJvcGVydHkqIGhhc2hUYWJsZUVudHJ5ID0gZmluZFByb3BlcnR5
KG5hbWUsIG91dHB1dExlbmd0aCk7CiAgICAgaW50IHByb3BlcnR5SUQgPSBoYXNoVGFibGVFbnRy
eSA/IGhhc2hUYWJsZUVudHJ5LT5pZCA6IDA7CiAgICAgaWYgKHByb3BlcnR5SUQpIHsKLSAgICAg
ICAgcHJvcGVydHlJbmZvLmhhZFBpeGVsT3JQb3NQcmVmaXggPSBoYWRQaXhlbE9yUG9zUHJlZml4
OwogICAgICAgICBwcm9wZXJ0eUluZm8ucHJvcGVydHlJRCA9IHN0YXRpY19jYXN0PENTU1Byb3Bl
cnR5SUQ+KHByb3BlcnR5SUQpOwogICAgICAgICBwcm9wZXJ0eUluZm9DYWNoZS5hZGQoc3RyaW5n
Rm9yQ2FjaGUsIHByb3BlcnR5SW5mbyk7CiAgICAgfQpAQCAtMzA0LDExICsyODUsNiBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUgY3NzUHJvcGVydHlHZXR0ZXJQCiAgICAgcmV0dXJuIGdldFByb3Bl
cnR5VmFsdWVGYWxsYmFjayhleGVjLCB0aGlzT2JqLCBwcm9wZXJ0eUlEKTsKIH0KIAotc3RhdGlj
IEpTVmFsdWUgY3NzUHJvcGVydHlHZXR0ZXJQaXhlbE9yUG9zUHJlZml4Q2FsbGJhY2soRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCB1bnNpZ25lZCBwcm9wZXJ0eUlEKQotewotICAg
IHJldHVybiBjc3NQcm9wZXJ0eUdldHRlclBpeGVsT3JQb3NQcmVmaXgoZXhlYywganNDYXN0PEpT
Q1NTU3R5bGVEZWNsYXJhdGlvbio+KGFzT2JqZWN0KHNsb3RCYXNlKSksIHByb3BlcnR5SUQpOwot
fQotCiBzdGF0aWMgaW5saW5lIEpTVmFsdWUgY3NzUHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBl
eGVjLCBKU0NTU1N0eWxlRGVjbGFyYXRpb24qIHRoaXNPYmosIHVuc2lnbmVkIHByb3BlcnR5SUQp
CiB7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiB2ID0gdGhpc09iai0+aW1wbCgpLT5nZXRQcm9wZXJ0
eUNTU1ZhbHVlSW50ZXJuYWwoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4ocHJvcGVydHlJRCkp
OwpAQCAtMzI5LDEwICszMDUsNyBAQCBib29sIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0T3du
UHJvcGVyCiAgICAgaWYgKCFwcm9wZXJ0eUluZm8ucHJvcGVydHlJRCkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgaWYgKHByb3BlcnR5SW5mby5oYWRQaXhlbE9yUG9zUHJlZml4KQotICAg
ICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRoaXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihwcm9w
ZXJ0eUluZm8ucHJvcGVydHlJRCksIGNzc1Byb3BlcnR5R2V0dGVyUGl4ZWxPclBvc1ByZWZpeENh
bGxiYWNrKTsKLSAgICBlbHNlCi0gICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5kZXgodGhpcywgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHByb3BlcnR5SW5mby5wcm9wZXJ0eUlEKSwgY3NzUHJvcGVydHlH
ZXR0ZXJDYWxsYmFjayk7CisgICAgc2xvdC5zZXRDdXN0b21JbmRleCh0aGlzLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4ocHJvcGVydHlJbmZvLnByb3BlcnR5SUQpLCBjc3NQcm9wZXJ0eUdldHRlckNh
bGxiYWNrKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMzQyLDEyICszMTUsNyBAQCBib29s
IEpTQ1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0T3duUHJvcGVyCiAgICAgaWYgKCFwcm9wZXJ0eUlu
Zm8ucHJvcGVydHlJRCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgSlNWYWx1ZSB2YWx1
ZTsKLSAgICBpZiAocHJvcGVydHlJbmZvLmhhZFBpeGVsT3JQb3NQcmVmaXgpCi0gICAgICAgIHZh
bHVlID0gY3NzUHJvcGVydHlHZXR0ZXJQaXhlbE9yUG9zUHJlZml4KGV4ZWMsIHRoaXMsIHByb3Bl
cnR5SW5mby5wcm9wZXJ0eUlEKTsKLSAgICBlbHNlCi0gICAgICAgIHZhbHVlID0gY3NzUHJvcGVy
dHlHZXR0ZXIoZXhlYywgdGhpcywgcHJvcGVydHlJbmZvLnByb3BlcnR5SUQpOwotICAgIGRlc2Ny
aXB0b3Iuc2V0RGVzY3JpcHRvcih2YWx1ZSwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVu
dW0pOworICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihjc3NQcm9wZXJ0eUdldHRlcihleGVj
LCB0aGlzLCBwcm9wZXJ0eUluZm8ucHJvcGVydHlJRCksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8
IERvbnRFbnVtKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMzU4LDggKzMyNiw2IEBAIGJv
b2wgSlNDU1NTdHlsZURlY2xhcmF0aW9uOjpwdXREZWxlZ2F0ZSgKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgU3RyaW5nIHByb3BWYWx1ZSA9IHZhbHVlVG9TdHJpbmdXaXRoTnVsbENoZWNr
KGV4ZWMsIHZhbHVlKTsKLSAgICBpZiAocHJvcGVydHlJbmZvLmhhZFBpeGVsT3JQb3NQcmVmaXgp
Ci0gICAgICAgIHByb3BWYWx1ZS5hcHBlbmQoInB4Iik7CiAKICAgICBib29sIGltcG9ydGFudCA9
IGZhbHNlOwogICAgIGlmIChTZXR0aW5nczo6c2hvdWxkUmVzcGVjdFByaW9yaXR5SW5DU1NBdHRy
aWJ1dGVTZXR0ZXJzKCkpIHsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1Mzk3MSkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTA4LTEy
ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBzdXBw
b3J0IGZvciAncGl4ZWwnIGFuZCAncG9zJyBDU1NPTSBwcmVmaXhlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NzEyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBNZXJnZSBodHRwczovL2No
cm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vYmxpbmsvKy83Y2IxZDAwMmZkNzk2MDRj
OWU4ZDBiZDgxMGJhNmY4ZjIxY2E3OGFmCisKKyAgICAgICAgKiBmYXN0L2RvbS9DU1NTdHlsZURl
Y2xhcmF0aW9uL2Nzcy1wcm9wZXJ0aWVzLWNhc2Utc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL3NjcmlwdC10ZXN0cy9jc3MtcHJv
cGVydGllcy1jYXNlLXNlbnNpdGl2ZS5qczoKKwogMjAxMy0wOC0xMiAgUnl1YW4gQ2hvaSAgPHJ5
dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gVW5yZXZpZXdlZCBnYXJkZW5p
bmcuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzcy1w
cm9wZXJ0aWVzLWNhc2Utc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzcy1wcm9wZXJ0aWVzLWNhc2Ut
c2Vuc2l0aXZlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTUzOTUzKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3MtcHJvcGVydGllcy1jYXNlLXNlbnNpdGl2
ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE3LDE1ICsxNywxNSBAQCBQQVNTIGVs
ZW1lbnQuc3R5bGUuY3NzekluZGV4IGlzIHVuZGVmaW5lCiAKICJwaXhlbCIgcHJlZml4CiAKLVBB
U1MgZWxlbWVudC5zdHlsZS5waXhlbFpJbmRleCBpcyAxCi1QQVNTIGVsZW1lbnQuc3R5bGUuUGl4
ZWxaSW5kZXggaXMgMQorUEFTUyBlbGVtZW50LnN0eWxlLnBpeGVsWkluZGV4IGlzIHVuZGVmaW5l
ZC4KK1BBU1MgZWxlbWVudC5zdHlsZS5QaXhlbFpJbmRleCBpcyB1bmRlZmluZWQuCiBQQVNTIGVs
ZW1lbnQuc3R5bGUucGl4ZWx6SW5kZXggaXMgdW5kZWZpbmVkLgogUEFTUyBlbGVtZW50LnN0eWxl
LlBpeGVsekluZGV4IGlzIHVuZGVmaW5lZC4KIAogInBvcyIgcHJlZml4CiAKLVBBU1MgZWxlbWVu
dC5zdHlsZS5wb3NaSW5kZXggaXMgMQotUEFTUyBlbGVtZW50LnN0eWxlLlBvc1pJbmRleCBpcyAx
CitQQVNTIGVsZW1lbnQuc3R5bGUucG9zWkluZGV4IGlzIHVuZGVmaW5lZC4KK1BBU1MgZWxlbWVu
dC5zdHlsZS5Qb3NaSW5kZXggaXMgdW5kZWZpbmVkLgogUEFTUyBlbGVtZW50LnN0eWxlLnBvc3pJ
bmRleCBpcyB1bmRlZmluZWQuCiBQQVNTIGVsZW1lbnQuc3R5bGUuUG9zekluZGV4IGlzIHVuZGVm
aW5lZC4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vc2NyaXB0LXRlc3RzL2Nzcy1wcm9wZXJ0aWVz
LWNhc2Utc2Vuc2l0aXZlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0NT
U1N0eWxlRGVjbGFyYXRpb24vc2NyaXB0LXRlc3RzL2Nzcy1wcm9wZXJ0aWVzLWNhc2Utc2Vuc2l0
aXZlLmpzCShyZXZpc2lvbiAxNTM5NTMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHls
ZURlY2xhcmF0aW9uL3NjcmlwdC10ZXN0cy9jc3MtcHJvcGVydGllcy1jYXNlLXNlbnNpdGl2ZS5q
cwkod29ya2luZyBjb3B5KQpAQCAtMjQsOCArMjQsOCBAQCBkZWJ1ZygnJyk7CiBkZWJ1ZygnInBp
eGVsIiBwcmVmaXgnKTsKIGRlYnVnKCcnKTsKIAotc2hvdWxkQmUoImVsZW1lbnQuc3R5bGUucGl4
ZWxaSW5kZXgiLCAiMSIpOwotc2hvdWxkQmUoImVsZW1lbnQuc3R5bGUuUGl4ZWxaSW5kZXgiLCAi
MSIpOworc2hvdWxkQmVVbmRlZmluZWQoImVsZW1lbnQuc3R5bGUucGl4ZWxaSW5kZXgiKTsKK3No
b3VsZEJlVW5kZWZpbmVkKCJlbGVtZW50LnN0eWxlLlBpeGVsWkluZGV4Iik7CiBzaG91bGRCZVVu
ZGVmaW5lZCgiZWxlbWVudC5zdHlsZS5waXhlbHpJbmRleCIpOwogc2hvdWxkQmVVbmRlZmluZWQo
ImVsZW1lbnQuc3R5bGUuUGl4ZWx6SW5kZXgiKTsKIApAQCAtMzMsNyArMzMsNyBAQCBkZWJ1Zygn
Jyk7CiBkZWJ1ZygnInBvcyIgcHJlZml4Jyk7CiBkZWJ1ZygnJyk7CiAKLXNob3VsZEJlKCJlbGVt
ZW50LnN0eWxlLnBvc1pJbmRleCIsICIxIik7Ci1zaG91bGRCZSgiZWxlbWVudC5zdHlsZS5Qb3Na
SW5kZXgiLCAiMSIpOworc2hvdWxkQmVVbmRlZmluZWQoImVsZW1lbnQuc3R5bGUucG9zWkluZGV4
Iik7CitzaG91bGRCZVVuZGVmaW5lZCgiZWxlbWVudC5zdHlsZS5Qb3NaSW5kZXgiKTsKIHNob3Vs
ZEJlVW5kZWZpbmVkKCJlbGVtZW50LnN0eWxlLnBvc3pJbmRleCIpOwogc2hvdWxkQmVVbmRlZmlu
ZWQoImVsZW1lbnQuc3R5bGUuUG9zekluZGV4Iik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412209</attachid>
            <date>2020-10-23 13:43:35 -0700</date>
            <delta_ts>2020-10-23 13:59:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119712-20201023134333.patch</filename>
            <type>text/plain</type>
            <size>12630</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODkzOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTEwLTIzICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgJ3Bp
eGVsJyBhbmQgJ3BvcycgQ1NTT00gcHJlZml4ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTcxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciBwaXhlbC9wb3MgcHJlZml4
ZWQgcHJvcGVydGllcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIHdoaWNoCisgICAgICAgIGFyZSBu
byBsb25nZXIgc3VwcG9ydGVkIGJ5IGFueSBvdGhlciBicm93c2VyLgorCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUF0dHJp
YnV0ZUdldHRlckJvZHlEZWZpbml0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlQXR0cmlidXRlU2V0
dGVyQm9keURlZmluaXRpb24pOgorICAgICAgICAqIGNzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb246OmdldENTU1Byb3BlcnR5
SURGcm9tSmF2YVNjcmlwdFByb3BlcnR5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWxGb3JQb3NPclBpeGVsUHJlZml4
ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbjo6c2V0
UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAqIGNzcy9tYWtlcHJv
cC5wbDoKKwogMjAyMC0xMC0yMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBbTWVkaWEgaW4gR1BVIFByb2Nlc3NdIGluLWJhbmQgbWV0YWRhdGEgY3Vl
cyBzb21ldGltZXMgY3Jhc2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyNjg4NzIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5
KQpAQCAtNTI4Myw4ICs1MjgzLDcgQEAgc3ViIEdlbmVyYXRlQXR0cmlidXRlR2V0dGVyQm9keURl
ZmluaXRpbwogICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NQcm9wZXJ0eU5hbWVzLmgifSA9IDE7
CiAgICAgICAgIG15ICRwcm9wZXJ0eUlEID0gJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Q1NTUHJvcGVydHl9OwogICAgICAgICAKLSAgICAgICAgbXkgJGdldHRlck5hbWUgPSAkYXR0
cmlidXRlLT50eXBlLT5pc1VuaW9uID8gImdldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09y
UGl4ZWxQcmVmaXhlZCIgOiAiZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsIjsKLSAgICAgICAgCisg
ICAgICAgIG15ICRnZXR0ZXJOYW1lID0gImdldFByb3BlcnR5VmFsdWVJbnRlcm5hbCI7CiAgICAg
ICAgIG15ICR0b0pTRXhwcmVzc2lvbiA9IE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUmVmZXJlbmNlcygk
YXR0cmlidXRlLCAkaW50ZXJmYWNlLCAiaW1wbC4ke2dldHRlck5hbWV9KENTU1Byb3BlcnR5JHtw
cm9wZXJ0eUlEfSkiLCAiKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkiKTsKICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTtc
biIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICgke3RvSlNFeHByZXNzaW9ufSkpO1xuIik7CkBAIC01NDM3LDggKzU0MzYs
OCBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVTZXR0ZXJCb2R5RGVmaW5pdGlvCiAKICAgICAgICAg
bXkgJHByb3BlcnR5SUQgPSAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDU1NQcm9w
ZXJ0eX07CiAgICAgICAgIAotICAgICAgICBteSAkc2V0dGVyTmFtZSA9ICRhdHRyaWJ1dGUtPnR5
cGUtPmlzVW5pb24gPyAic2V0UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZp
eGVkIiA6ICJzZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwiOwotICAgICAgICAKKyAgICAgICAgbXkg
JHNldHRlck5hbWUgPSAic2V0UHJvcGVydHlWYWx1ZUludGVybmFsIjsKKwogICAgICAgICBteSAk
ZXhjZXB0aW9uVGhyb3dlciA9IEdldEF0dHJpYnV0ZUV4Y2VwdGlvblRocm93ZXIoJGludGVyZmFj
ZSwgJGF0dHJpYnV0ZSk7CiAgICAgICAgIG15ICR0b05hdGl2ZUV4cHJlc3Npb24gPSBKU1ZhbHVl
VG9OYXRpdmUoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSwgInZhbHVlIiwgJGF0dHJpYnV0ZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Q29uZGl0aW9uYWx9LCAiJmxleGljYWxHbG9iYWxPYmplY3QiLCAi
bGV4aWNhbEdsb2JhbE9iamVjdCIsICJ0aGlzT2JqZWN0IiwgIip0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpIiwgJGV4Y2VwdGlvblRocm93ZXIpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlRGVjbGFyYXRpb24uY3BwCShyZXZpc2lvbiAyNjg4NzIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDEz
ICs0NywxMCBAQCBlbnVtIGNsYXNzIFByb3BlcnR5TmFtZVByZWZpeCB7CiAgICAgTm9uZSwKICAg
ICBFcHViLAogICAgIENTUywKLSAgICBQaXhlbCwKLSAgICBQb3MsCiAgICAgV2ViS2l0CiB9Owog
Ci10ZW1wbGF0ZTxzaXplX3QgcHJlZml4Q1N0cmluZ0xlbmd0aD4KLXN0YXRpYyBpbmxpbmUgYm9v
bCBtYXRjaGVzQ1NTUHJvcGVydHlOYW1lUHJlZml4KGNvbnN0IFN0cmluZ0ltcGwmIHByb3BlcnR5
TmFtZSwgY29uc3QgY2hhciAoJnByZWZpeClbcHJlZml4Q1N0cmluZ0xlbmd0aF0pCit0ZW1wbGF0
ZTxzaXplX3QgcHJlZml4Q1N0cmluZ0xlbmd0aD4gc3RhdGljIGlubGluZSBib29sIG1hdGNoZXND
U1NQcm9wZXJ0eU5hbWVQcmVmaXgoY29uc3QgU3RyaW5nSW1wbCYgcHJvcGVydHlOYW1lLCBjb25z
dCBjaGFyICgmcHJlZml4KVtwcmVmaXhDU3RyaW5nTGVuZ3RoXSkKIHsKICAgICBzaXplX3QgcHJl
Zml4TGVuZ3RoID0gcHJlZml4Q1N0cmluZ0xlbmd0aCAtIDE7CiAKQEAgLTk4LDEyICs5NSw2IEBA
IHN0YXRpYyBQcm9wZXJ0eU5hbWVQcmVmaXggcHJvcGVydHlOYW1lUHIKICAgICAgICAgaWYgKG1h
dGNoZXNDU1NQcm9wZXJ0eU5hbWVQcmVmaXgocHJvcGVydHlOYW1lLCAiZXB1YiIpKQogICAgICAg
ICAgICAgcmV0dXJuIFByb3BlcnR5TmFtZVByZWZpeDo6RXB1YjsKICAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSAncCc6Ci0gICAgICAgIGlmIChtYXRjaGVzQ1NTUHJvcGVydHlOYW1lUHJlZml4KHBy
b3BlcnR5TmFtZSwgInBvcyIpKQotICAgICAgICAgICAgcmV0dXJuIFByb3BlcnR5TmFtZVByZWZp
eDo6UG9zOwotICAgICAgICBpZiAobWF0Y2hlc0NTU1Byb3BlcnR5TmFtZVByZWZpeChwcm9wZXJ0
eU5hbWUsICJwaXhlbCIpKQotICAgICAgICAgICAgcmV0dXJuIFByb3BlcnR5TmFtZVByZWZpeDo6
UGl4ZWw7Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgJ3cnOgogICAgICAgICBpZiAobWF0Y2hl
c0NTU1Byb3BlcnR5TmFtZVByZWZpeChwcm9wZXJ0eU5hbWUsICJ3ZWJraXQiKSkKICAgICAgICAg
ICAgIHJldHVybiBQcm9wZXJ0eU5hbWVQcmVmaXg6OldlYktpdDsKQEAgLTEzNiwzMCArMTI3LDIz
IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB3cml0ZUVwdWJQcmVmaXgoY2hhcioKICAgICAqYnVmZmVy
KysgPSAnLSc7CiB9CiAKLXN0cnVjdCBDU1NQcm9wZXJ0eUluZm8gewotICAgIENTU1Byb3BlcnR5
SUQgcHJvcGVydHlJRDsKLSAgICBib29sIGhhZFBpeGVsT3JQb3NQcmVmaXg7Ci19OwotCi1zdGF0
aWMgQ1NTUHJvcGVydHlJbmZvIHBhcnNlSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFtZShjb25zdCBB
dG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCitzdGF0aWMgQ1NTUHJvcGVydHlJRCBwYXJzZUphdmFT
Y3JpcHRDU1NQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKQogewot
ICAgIHVzaW5nIENTU1Byb3BlcnR5SW5mb01hcCA9IEhhc2hNYXA8U3RyaW5nLCBDU1NQcm9wZXJ0
eUluZm8+OwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDU1NQcm9wZXJ0eUluZm9NYXA+IHBy
b3BlcnR5SW5mb0NhY2hlOworICAgIHVzaW5nIENTU1Byb3BlcnR5SURNYXAgPSBIYXNoTWFwPFN0
cmluZywgQ1NTUHJvcGVydHlJRD47CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENTU1Byb3Bl
cnR5SURNYXA+IHByb3BlcnR5SWRDYWNoZTsKIAotICAgIENTU1Byb3BlcnR5SW5mbyBwcm9wZXJ0
eUluZm8gPSB7IENTU1Byb3BlcnR5SW52YWxpZCwgZmFsc2UgfTsKKyAgICBDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eUludmFsaWQ7CiAKICAgICBhdXRvKiBwcm9wZXJ0eU5h
bWVTdHJpbmcgPSBwcm9wZXJ0eU5hbWUuaW1wbCgpOwogICAgIGlmICghcHJvcGVydHlOYW1lU3Ry
aW5nKQotICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOworICAgICAgICByZXR1cm4gcHJvcGVy
dHlJRDsKICAgICB1bnNpZ25lZCBsZW5ndGggPSBwcm9wZXJ0eU5hbWVTdHJpbmctPmxlbmd0aCgp
OwogICAgIGlmICghbGVuZ3RoKQotICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOworICAgICAg
ICByZXR1cm4gcHJvcGVydHlJRDsKIAotICAgIHByb3BlcnR5SW5mbyA9IHByb3BlcnR5SW5mb0Nh
Y2hlLmdldCgpLmdldChwcm9wZXJ0eU5hbWVTdHJpbmcpOwotICAgIGlmIChwcm9wZXJ0eUluZm8u
cHJvcGVydHlJRCkKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5SW5mbzsKLQotICAgIGJvb2wgaGFk
UGl4ZWxPclBvc1ByZWZpeCA9IGZhbHNlOworICAgIHByb3BlcnR5SUQgPSBwcm9wZXJ0eUlEQ2Fj
aGUuZ2V0KCkuZ2V0KHByb3BlcnR5TmFtZVN0cmluZyk7CisgICAgaWYgKHByb3BlcnR5SUQpCisg
ICAgICAgIHJldHVybiBwcm9wZXJ0eUlEOwogCiAgICAgY29uc3RleHByIHNpemVfdCBidWZmZXJT
aXplID0gbWF4Q1NTUHJvcGVydHlOYW1lTGVuZ3RoICsgMTsKICAgICBjaGFyIGJ1ZmZlcltidWZm
ZXJTaXplXTsKQEAgLTE2NywyNSArMTUxLDE3IEBAIHN0YXRpYyBDU1NQcm9wZXJ0eUluZm8gcGFy
c2VKYXZhU2NyaXB0Q1MKICAgICBjb25zdCBjaGFyKiBuYW1lID0gYnVmZmVyUHRyOwogCiAgICAg
dW5zaWduZWQgaSA9IDA7Ci0gICAgLy8gUHJlZml4ZXMgQ1NTLCBQaXhlbCwgUG9zIGFyZSBpZ25v
cmVkLgotICAgIC8vIFByZWZpeGVzIEFwcGxlLCBLSFRNTCBhbmQgV2Via2l0IGFyZSB0cmFuc3Bv
c2VkIHRvICItd2Via2l0LSIuCi0gICAgLy8gVGhlIHByZWZpeCAiRXB1YiIgYmVjb21lcyAiLWVw
dWItIi4KKyAgICAvLyBQcmVmaXggQ1NTIGlzIGlnbm9yZWQuCisgICAgLy8gUHJlZml4IFdlYmtp
dCBiZWNvbWVzICItd2Via2l0LSIuCisgICAgLy8gUHJlZml4IEVwdWIgYmVjb21lcyAiLWVwdWIt
Ii4KICAgICBzd2l0Y2ggKHByb3BlcnR5TmFtZVByZWZpeCgqcHJvcGVydHlOYW1lU3RyaW5nKSkg
ewogICAgIGNhc2UgUHJvcGVydHlOYW1lUHJlZml4OjpOb25lOgogICAgICAgICBpZiAoaXNBU0NJ
SVVwcGVyKCgqcHJvcGVydHlOYW1lU3RyaW5nKVswXSkpCi0gICAgICAgICAgICByZXR1cm4gcHJv
cGVydHlJbmZvOworICAgICAgICAgICAgcmV0dXJuIHByb3BlcnR5SUQ7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgUHJvcGVydHlOYW1lUHJlZml4OjpDU1M6CiAgICAgICAgIGkgKz0gMzsKICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm9wZXJ0eU5hbWVQcmVmaXg6OlBpeGVsOgotICAgICAg
ICBpICs9IDU7Ci0gICAgICAgIGhhZFBpeGVsT3JQb3NQcmVmaXggPSB0cnVlOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFByb3BlcnR5TmFtZVByZWZpeDo6UG9zOgotICAgICAgICBpICs9IDM7
Ci0gICAgICAgIGhhZFBpeGVsT3JQb3NQcmVmaXggPSB0cnVlOwotICAgICAgICBicmVhazsKICAg
ICBjYXNlIFByb3BlcnR5TmFtZVByZWZpeDo6RXB1YjoKICAgICAgICAgd3JpdGVFcHViUHJlZml4
KGJ1ZmZlclB0cik7CiAgICAgICAgIGkgKz0gNDsKQEAgLTIwMywxNyArMTc5LDE3IEBAIHN0YXRp
YyBDU1NQcm9wZXJ0eUluZm8gcGFyc2VKYXZhU2NyaXB0Q1MKICAgICBzaXplX3QgYnVmZmVyU2l6
ZUxlZnQgPSBzdHJpbmdFbmQgLSBidWZmZXJQdHI7CiAgICAgc2l6ZV90IHByb3BlcnR5U2l6ZUxl
ZnQgPSBsZW5ndGggLSBpOwogICAgIGlmIChwcm9wZXJ0eVNpemVMZWZ0ID4gYnVmZmVyU2l6ZUxl
ZnQpCi0gICAgICAgIHJldHVybiBwcm9wZXJ0eUluZm87CisgICAgICAgIHJldHVybiBwcm9wZXJ0
eUlEOwogCiAgICAgZm9yICg7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICBVQ2hhciBjID0g
KCpwcm9wZXJ0eU5hbWVTdHJpbmcpW2ldOwogICAgICAgICBpZiAoIWMgfHwgIWlzQVNDSUkoYykp
Ci0gICAgICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOyAvLyBpbGxlZ2FsIGNoYXJhY3Rlcgor
ICAgICAgICAgICAgcmV0dXJuIHByb3BlcnR5SUQ7IC8vIGlsbGVnYWwgY2hhcmFjdGVyCiAgICAg
ICAgIGlmIChpc0FTQ0lJVXBwZXIoYykpIHsKICAgICAgICAgICAgIHNpemVfdCBidWZmZXJTaXpl
TGVmdCA9IHN0cmluZ0VuZCAtIGJ1ZmZlclB0cjsKICAgICAgICAgICAgIHNpemVfdCBwcm9wZXJ0
eVNpemVMZWZ0ID0gbGVuZ3RoIC0gaSArIDE7CiAgICAgICAgICAgICBpZiAocHJvcGVydHlTaXpl
TGVmdCA+IGJ1ZmZlclNpemVMZWZ0KQotICAgICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eUlu
Zm87CisgICAgICAgICAgICAgICAgcmV0dXJuIHByb3BlcnR5SUQ7CiAgICAgICAgICAgICAqYnVm
ZmVyUHRyKysgPSAnLSc7CiAgICAgICAgICAgICAqYnVmZmVyUHRyKysgPSB0b0FTQ0lJTG93ZXJV
bmNoZWNrZWQoYyk7CiAgICAgICAgIH0gZWxzZQpAQCAtMjI5LDIyICsyMDUsMTkgQEAgc3RhdGlj
IENTU1Byb3BlcnR5SW5mbyBwYXJzZUphdmFTY3JpcHRDUwogI2VuZGlmCiAKICAgICBhdXRvKiBo
YXNoVGFibGVFbnRyeSA9IGZpbmRQcm9wZXJ0eShuYW1lLCBvdXRwdXRMZW5ndGgpOwotICAgIGlm
IChhdXRvIHByb3BlcnR5SUQgPSBoYXNoVGFibGVFbnRyeSA/IGhhc2hUYWJsZUVudHJ5LT5pZCA6
IDApIHsKLSAgICAgICAgYXV0byBpZCA9IHN0YXRpY19jYXN0PENTU1Byb3BlcnR5SUQ+KHByb3Bl
cnR5SUQpOwotICAgICAgICBwcm9wZXJ0eUluZm8uaGFkUGl4ZWxPclBvc1ByZWZpeCA9IGhhZFBp
eGVsT3JQb3NQcmVmaXg7Ci0gICAgICAgIHByb3BlcnR5SW5mby5wcm9wZXJ0eUlEID0gaWQ7Ci0g
ICAgICAgIHByb3BlcnR5SW5mb0NhY2hlLmdldCgpLmFkZChwcm9wZXJ0eU5hbWVTdHJpbmcsIHBy
b3BlcnR5SW5mbyk7CisgICAgaWYgKGF1dG8gaWQgPSBoYXNoVGFibGVFbnRyeSA/IGhhc2hUYWJs
ZUVudHJ5LT5pZCA6IDApIHsKKyAgICAgICAgcHJvcGVydHlJRCA9IHN0YXRpY19jYXN0PENTU1By
b3BlcnR5SUQ+KGlkKTsKKyAgICAgICAgcHJvcGVydHlJRENhY2hlLmdldCgpLmFkZChwcm9wZXJ0
eU5hbWVTdHJpbmcsIHByb3BlcnR5SUQpOwogICAgIH0KLSAgICByZXR1cm4gcHJvcGVydHlJbmZv
OworICAgIHJldHVybiBwcm9wZXJ0eUlEOwogfQogCi1zdGF0aWMgQ1NTUHJvcGVydHlJbmZvIHBy
b3BlcnR5SW5mb0Zyb21KYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKGNvbnN0IEF0b21TdHJpbmcm
IHByb3BlcnR5TmFtZSwgY29uc3QgU2V0dGluZ3MqIHNldHRpbmdzKQorc3RhdGljIENTU1Byb3Bl
cnR5SUQgcHJvcGVydHlJREZyb21KYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKGNvbnN0IEF0b21T
dHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3QgU2V0dGluZ3MqIHNldHRpbmdzKQogewotICAgIGF1
dG8gcHJvcGVydHlJbmZvID0gcGFyc2VKYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKHByb3BlcnR5
TmFtZSk7Ci0gICAgYXV0byBpZCA9IHByb3BlcnR5SW5mby5wcm9wZXJ0eUlEOworICAgIGF1dG8g
aWQgPSBwYXJzZUphdmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKTsKICAgICBp
ZiAoIWlzRW5hYmxlZENTU1Byb3BlcnR5KGlkKSB8fCAhaXNDU1NQcm9wZXJ0eUVuYWJsZWRCeVNl
dHRpbmdzKGlkLCBzZXR0aW5ncykpCi0gICAgICAgIHJldHVybiB7IENTU1Byb3BlcnR5SW52YWxp
ZCwgZmFsc2UgfTsKLSAgICByZXR1cm4gcHJvcGVydHlJbmZvOworICAgICAgICByZXR1cm4gQ1NT
UHJvcGVydHlJbnZhbGlkOworICAgIHJldHVybiBpZDsKIH0KIAogfQpAQCAtMjY3LDM2ICsyNDAs
OSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDU1NTdHlsZURlY2xhcmF0aW9uOjpzCiAgICAgcmV0dXJu
IHsgfTsKIH0KIAotVmFyaWFudDxkb3VibGUsIFN0cmluZz4gQ1NTU3R5bGVEZWNsYXJhdGlvbjo6
Z2V0UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkKENTU1Byb3BlcnR5
SUQgcHJvcGVydHlJRCkKLXsKLSAgICBhdXRvIHZhbHVlID0gZ2V0UHJvcGVydHlDU1NWYWx1ZUlu
dGVybmFsKHByb3BlcnR5SUQpOwotICAgIGlmICghdmFsdWUpIHsKLSAgICAgICAgLy8gSWYgdGhl
IHByb3BlcnR5IGlzIGEgc2hvcnRoYW5kIHByb3BlcnR5IChzdWNoIGFzICJwYWRkaW5nIiksIGl0
IGNhbiBvbmx5IGJlIGFjY2Vzc2VkIHVzaW5nIGdldFByb3BlcnR5VmFsdWUuCi0gICAgICAgIHJl
dHVybiBnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwocHJvcGVydHlJRCk7Ci0gICAgfQotICAgIAot
ICAgIGlmIChpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKSkgewotICAgICAgICAvLyBDYWxs
IHRoaXMgdmVyc2lvbiBvZiB0aGUgZ2V0dGVyIHNvIHRoYXQsIGUuZy4sIHBpeGVsVG9wIHJldHVy
bnMgdG9wIGFzIGEgbnVtYmVyCi0gICAgICAgIC8vIGluIHBpeGVsIHVuaXRzIGFuZCBwb3NUb3Ag
c2hvdWxkIGRvZXMgdGhlIHNhbWUgX2lmXyB0aGlzIGlzIGEgcG9zaXRpb25lZCBlbGVtZW50Lgot
ICAgICAgICAvLyBGSVhNRTogSWYgbm90IGEgcG9zaXRpb25lZCBlbGVtZW50LCBNU0lFIGRvY3Vt
ZW50YXRpb24gc2F5cyBwb3NUb3Agc2hvdWxkIHJldHVybiAwOyB0aGlzIHJ1bGUgaXMgbm90IGlt
cGxlbWVudGVkLgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2
YWx1ZSkuZmxvYXRWYWx1ZShDU1NVbml0VHlwZTo6Q1NTX1BYKTsKLSAgICB9Ci0KLSAgICByZXR1
cm4gdmFsdWUtPmNzc1RleHQoKTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQ1NTU3R5bGVEZWNs
YXJhdGlvbjo6c2V0UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkKENT
U1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgVmFyaWFudDxkb3VibGUsIFN0cmluZz4gdmFsdWUpCi17
Ci0gICAgYXV0byBzdHJpbmdWYWx1ZSA9IFdURjo6c3dpdGNoT24odmFsdWUsIFsmXSAoY29uc3Qg
YXV0byYgaW5wdXQpIHsKLSAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoaW5wdXQsICJweCIpOwot
ICAgIH0pOwotCi0gICAgcmV0dXJuIHNldFByb3BlcnR5VmFsdWVJbnRlcm5hbChwcm9wZXJ0eUlE
LCBXVEZNb3ZlKHN0cmluZ1ZhbHVlKSk7Ci19Ci0KIENTU1Byb3BlcnR5SUQgQ1NTU3R5bGVEZWNs
YXJhdGlvbjo6Z2V0Q1NTUHJvcGVydHlJREZyb21KYXZhU2NyaXB0UHJvcGVydHlOYW1lKGNvbnN0
IEF0b21TdHJpbmcmIHByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gcHJvcGVydHlJbmZvRnJv
bUphdmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lLCBudWxscHRyKS5wcm9wZXJ0
eUlEOworICAgIHJldHVybiBwcm9wZXJ0eUlERnJvbUphdmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUo
cHJvcGVydHlOYW1lLCBudWxscHRyKTsKIH0KIAogU3RyaW5nIENTU1N0eWxlRGVjbGFyYXRpb246
OmNzc0Zsb2F0KCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24u
aAkocmV2aXNpb24gMjY4ODcyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFy
YXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNzMsOCArNzMsNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0KCkgY29uc3QgeyByZXR1cm4gbnVs
bHB0cjsgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0UHJvcGVydHlWYWx1ZUludGVybmFs
KENTU1Byb3BlcnR5SUQsIFN0cmluZyk7Ci0gICAgVmFyaWFudDxkb3VibGUsIFN0cmluZz4gZ2V0
UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkKENTU1Byb3BlcnR5SUQp
OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09y
UGl4ZWxQcmVmaXhlZChDU1NQcm9wZXJ0eUlELCBWYXJpYW50PGRvdWJsZSwgU3RyaW5nPik7CiAK
ICAgICBzdGF0aWMgQ1NTUHJvcGVydHlJRCBnZXRDU1NQcm9wZXJ0eUlERnJvbUphdmFTY3JpcHRQ
cm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvbWFrZXByb3AucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL21ha2Vwcm9w
LnBsCShyZXZpc2lvbiAyNjg4NzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwJ
KHdvcmtpbmcgY29weSkKQEAgLTE1MTksMTAgKzE1MTksNiBAQCBmb3JlYWNoIG15ICRuYW1lT3JB
bGlhcyAoZ3JlcCB7ICRfICF+IC9eCiAKICAgICBwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05f
UFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRl
c31dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNzcyR7
Y2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIiB1bmxlc3MgJGNhbWVsQ2FzZWRBdHRyaWJ1dGVO
YW1lIGVxICJGbG9hdCI7CiAgICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZ
X05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0ZXN9XSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBDc3Mke2NhbWVsQ2Fz
ZWRBdHRyaWJ1dGVOYW1lfTtcbiIgdW5sZXNzICRjYW1lbENhc2VkQXR0cmlidXRlTmFtZSBlcSAi
RmxvYXQiOwotICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19J
REwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIChk
b3VibGUgb3IgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZykgcG9zJHtjYW1l
bENhc2VkQXR0cmlidXRlTmFtZX07XG4iOwotICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElP
Tl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1
dGVzfV0gYXR0cmlidXRlIChkb3VibGUgb3IgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZykgUG9zJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07XG4iOwotICAgIHByaW50IENT
U19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMs
ICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIChkb3VibGUgb3IgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZykgcGl4ZWwke2NhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1l
fTtcbiI7Ci0gICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lE
TCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1dGUgKGRv
dWJsZSBvciBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nKSBQaXhlbCR7Y2Ft
ZWxDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKIH0KIAogcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFU
SU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsK
</data>
<flag name="commit-queue"
          id="428609"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412210</attachid>
            <date>2020-10-23 13:53:19 -0700</date>
            <delta_ts>2020-10-24 10:55:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119712-20201023135318.patch</filename>
            <type>text/plain</type>
            <size>13446</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODkzOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTEwLTIzICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgJ3Bp
eGVsJyBhbmQgJ3BvcycgQ1NTT00gcHJlZml4ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTcxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciBwaXhlbC9wb3MgcHJlZml4
ZWQgcHJvcGVydGllcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIHdoaWNoCisgICAgICAgIGFyZSBu
byBsb25nZXIgc3VwcG9ydGVkIGJ5IGFueSBvdGhlciBicm93c2VyLgorCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUF0dHJp
YnV0ZUdldHRlckJvZHlEZWZpbml0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlQXR0cmlidXRlU2V0
dGVyQm9keURlZmluaXRpb24pOgorICAgICAgICAqIGNzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb246OmdldENTU1Byb3BlcnR5
SURGcm9tSmF2YVNjcmlwdFByb3BlcnR5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWxGb3JQb3NPclBpeGVsUHJlZml4
ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbjo6c2V0
UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAqIGNzcy9tYWtlcHJv
cC5wbDoKKwogMjAyMC0xMC0yMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBbTWVkaWEgaW4gR1BVIFByb2Nlc3NdIGluLWJhbmQgbWV0YWRhdGEgY3Vl
cyBzb21ldGltZXMgY3Jhc2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyNjg4NzIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5
KQpAQCAtNTI4Myw4ICs1MjgzLDcgQEAgc3ViIEdlbmVyYXRlQXR0cmlidXRlR2V0dGVyQm9keURl
ZmluaXRpbwogICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NQcm9wZXJ0eU5hbWVzLmgifSA9IDE7
CiAgICAgICAgIG15ICRwcm9wZXJ0eUlEID0gJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Q1NTUHJvcGVydHl9OwogICAgICAgICAKLSAgICAgICAgbXkgJGdldHRlck5hbWUgPSAkYXR0
cmlidXRlLT50eXBlLT5pc1VuaW9uID8gImdldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09y
UGl4ZWxQcmVmaXhlZCIgOiAiZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsIjsKLSAgICAgICAgCisg
ICAgICAgIG15ICRnZXR0ZXJOYW1lID0gImdldFByb3BlcnR5VmFsdWVJbnRlcm5hbCI7CiAgICAg
ICAgIG15ICR0b0pTRXhwcmVzc2lvbiA9IE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUmVmZXJlbmNlcygk
YXR0cmlidXRlLCAkaW50ZXJmYWNlLCAiaW1wbC4ke2dldHRlck5hbWV9KENTU1Byb3BlcnR5JHtw
cm9wZXJ0eUlEfSkiLCAiKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkiKTsKICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTtc
biIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICgke3RvSlNFeHByZXNzaW9ufSkpO1xuIik7CkBAIC01NDM3LDggKzU0MzYs
OCBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVTZXR0ZXJCb2R5RGVmaW5pdGlvCiAKICAgICAgICAg
bXkgJHByb3BlcnR5SUQgPSAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDU1NQcm9w
ZXJ0eX07CiAgICAgICAgIAotICAgICAgICBteSAkc2V0dGVyTmFtZSA9ICRhdHRyaWJ1dGUtPnR5
cGUtPmlzVW5pb24gPyAic2V0UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZp
eGVkIiA6ICJzZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwiOwotICAgICAgICAKKyAgICAgICAgbXkg
JHNldHRlck5hbWUgPSAic2V0UHJvcGVydHlWYWx1ZUludGVybmFsIjsKKwogICAgICAgICBteSAk
ZXhjZXB0aW9uVGhyb3dlciA9IEdldEF0dHJpYnV0ZUV4Y2VwdGlvblRocm93ZXIoJGludGVyZmFj
ZSwgJGF0dHJpYnV0ZSk7CiAgICAgICAgIG15ICR0b05hdGl2ZUV4cHJlc3Npb24gPSBKU1ZhbHVl
VG9OYXRpdmUoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSwgInZhbHVlIiwgJGF0dHJpYnV0ZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Q29uZGl0aW9uYWx9LCAiJmxleGljYWxHbG9iYWxPYmplY3QiLCAi
bGV4aWNhbEdsb2JhbE9iamVjdCIsICJ0aGlzT2JqZWN0IiwgIip0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpIiwgJGV4Y2VwdGlvblRocm93ZXIpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlRGVjbGFyYXRpb24uY3BwCShyZXZpc2lvbiAyNjg4NzIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDEz
ICs0NywxMCBAQCBlbnVtIGNsYXNzIFByb3BlcnR5TmFtZVByZWZpeCB7CiAgICAgTm9uZSwKICAg
ICBFcHViLAogICAgIENTUywKLSAgICBQaXhlbCwKLSAgICBQb3MsCiAgICAgV2ViS2l0CiB9Owog
Ci10ZW1wbGF0ZTxzaXplX3QgcHJlZml4Q1N0cmluZ0xlbmd0aD4KLXN0YXRpYyBpbmxpbmUgYm9v
bCBtYXRjaGVzQ1NTUHJvcGVydHlOYW1lUHJlZml4KGNvbnN0IFN0cmluZ0ltcGwmIHByb3BlcnR5
TmFtZSwgY29uc3QgY2hhciAoJnByZWZpeClbcHJlZml4Q1N0cmluZ0xlbmd0aF0pCit0ZW1wbGF0
ZTxzaXplX3QgcHJlZml4Q1N0cmluZ0xlbmd0aD4gc3RhdGljIGlubGluZSBib29sIG1hdGNoZXND
U1NQcm9wZXJ0eU5hbWVQcmVmaXgoY29uc3QgU3RyaW5nSW1wbCYgcHJvcGVydHlOYW1lLCBjb25z
dCBjaGFyICgmcHJlZml4KVtwcmVmaXhDU3RyaW5nTGVuZ3RoXSkKIHsKICAgICBzaXplX3QgcHJl
Zml4TGVuZ3RoID0gcHJlZml4Q1N0cmluZ0xlbmd0aCAtIDE7CiAKQEAgLTk4LDEyICs5NSw2IEBA
IHN0YXRpYyBQcm9wZXJ0eU5hbWVQcmVmaXggcHJvcGVydHlOYW1lUHIKICAgICAgICAgaWYgKG1h
dGNoZXNDU1NQcm9wZXJ0eU5hbWVQcmVmaXgocHJvcGVydHlOYW1lLCAiZXB1YiIpKQogICAgICAg
ICAgICAgcmV0dXJuIFByb3BlcnR5TmFtZVByZWZpeDo6RXB1YjsKICAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSAncCc6Ci0gICAgICAgIGlmIChtYXRjaGVzQ1NTUHJvcGVydHlOYW1lUHJlZml4KHBy
b3BlcnR5TmFtZSwgInBvcyIpKQotICAgICAgICAgICAgcmV0dXJuIFByb3BlcnR5TmFtZVByZWZp
eDo6UG9zOwotICAgICAgICBpZiAobWF0Y2hlc0NTU1Byb3BlcnR5TmFtZVByZWZpeChwcm9wZXJ0
eU5hbWUsICJwaXhlbCIpKQotICAgICAgICAgICAgcmV0dXJuIFByb3BlcnR5TmFtZVByZWZpeDo6
UGl4ZWw7Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgJ3cnOgogICAgICAgICBpZiAobWF0Y2hl
c0NTU1Byb3BlcnR5TmFtZVByZWZpeChwcm9wZXJ0eU5hbWUsICJ3ZWJraXQiKSkKICAgICAgICAg
ICAgIHJldHVybiBQcm9wZXJ0eU5hbWVQcmVmaXg6OldlYktpdDsKQEAgLTEzNiwzMCArMTI3LDIz
IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB3cml0ZUVwdWJQcmVmaXgoY2hhcioKICAgICAqYnVmZmVy
KysgPSAnLSc7CiB9CiAKLXN0cnVjdCBDU1NQcm9wZXJ0eUluZm8gewotICAgIENTU1Byb3BlcnR5
SUQgcHJvcGVydHlJRDsKLSAgICBib29sIGhhZFBpeGVsT3JQb3NQcmVmaXg7Ci19OwotCi1zdGF0
aWMgQ1NTUHJvcGVydHlJbmZvIHBhcnNlSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFtZShjb25zdCBB
dG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCitzdGF0aWMgQ1NTUHJvcGVydHlJRCBwYXJzZUphdmFT
Y3JpcHRDU1NQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKQogewot
ICAgIHVzaW5nIENTU1Byb3BlcnR5SW5mb01hcCA9IEhhc2hNYXA8U3RyaW5nLCBDU1NQcm9wZXJ0
eUluZm8+OwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDU1NQcm9wZXJ0eUluZm9NYXA+IHBy
b3BlcnR5SW5mb0NhY2hlOworICAgIHVzaW5nIENTU1Byb3BlcnR5SURNYXAgPSBIYXNoTWFwPFN0
cmluZywgQ1NTUHJvcGVydHlJRD47CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENTU1Byb3Bl
cnR5SURNYXA+IHByb3BlcnR5SURDYWNoZTsKIAotICAgIENTU1Byb3BlcnR5SW5mbyBwcm9wZXJ0
eUluZm8gPSB7IENTU1Byb3BlcnR5SW52YWxpZCwgZmFsc2UgfTsKKyAgICBDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SUQgPSBDU1NQcm9wZXJ0eUludmFsaWQ7CiAKICAgICBhdXRvKiBwcm9wZXJ0eU5h
bWVTdHJpbmcgPSBwcm9wZXJ0eU5hbWUuaW1wbCgpOwogICAgIGlmICghcHJvcGVydHlOYW1lU3Ry
aW5nKQotICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOworICAgICAgICByZXR1cm4gcHJvcGVy
dHlJRDsKICAgICB1bnNpZ25lZCBsZW5ndGggPSBwcm9wZXJ0eU5hbWVTdHJpbmctPmxlbmd0aCgp
OwogICAgIGlmICghbGVuZ3RoKQotICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOworICAgICAg
ICByZXR1cm4gcHJvcGVydHlJRDsKIAotICAgIHByb3BlcnR5SW5mbyA9IHByb3BlcnR5SW5mb0Nh
Y2hlLmdldCgpLmdldChwcm9wZXJ0eU5hbWVTdHJpbmcpOwotICAgIGlmIChwcm9wZXJ0eUluZm8u
cHJvcGVydHlJRCkKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5SW5mbzsKLQotICAgIGJvb2wgaGFk
UGl4ZWxPclBvc1ByZWZpeCA9IGZhbHNlOworICAgIHByb3BlcnR5SUQgPSBwcm9wZXJ0eUlEQ2Fj
aGUuZ2V0KCkuZ2V0KHByb3BlcnR5TmFtZVN0cmluZyk7CisgICAgaWYgKHByb3BlcnR5SUQpCisg
ICAgICAgIHJldHVybiBwcm9wZXJ0eUlEOwogCiAgICAgY29uc3RleHByIHNpemVfdCBidWZmZXJT
aXplID0gbWF4Q1NTUHJvcGVydHlOYW1lTGVuZ3RoICsgMTsKICAgICBjaGFyIGJ1ZmZlcltidWZm
ZXJTaXplXTsKQEAgLTE2NywyNSArMTUxLDE3IEBAIHN0YXRpYyBDU1NQcm9wZXJ0eUluZm8gcGFy
c2VKYXZhU2NyaXB0Q1MKICAgICBjb25zdCBjaGFyKiBuYW1lID0gYnVmZmVyUHRyOwogCiAgICAg
dW5zaWduZWQgaSA9IDA7Ci0gICAgLy8gUHJlZml4ZXMgQ1NTLCBQaXhlbCwgUG9zIGFyZSBpZ25v
cmVkLgotICAgIC8vIFByZWZpeGVzIEFwcGxlLCBLSFRNTCBhbmQgV2Via2l0IGFyZSB0cmFuc3Bv
c2VkIHRvICItd2Via2l0LSIuCi0gICAgLy8gVGhlIHByZWZpeCAiRXB1YiIgYmVjb21lcyAiLWVw
dWItIi4KKyAgICAvLyBQcmVmaXggQ1NTIGlzIGlnbm9yZWQuCisgICAgLy8gUHJlZml4IFdlYmtp
dCBiZWNvbWVzICItd2Via2l0LSIuCisgICAgLy8gUHJlZml4IEVwdWIgYmVjb21lcyAiLWVwdWIt
Ii4KICAgICBzd2l0Y2ggKHByb3BlcnR5TmFtZVByZWZpeCgqcHJvcGVydHlOYW1lU3RyaW5nKSkg
ewogICAgIGNhc2UgUHJvcGVydHlOYW1lUHJlZml4OjpOb25lOgogICAgICAgICBpZiAoaXNBU0NJ
SVVwcGVyKCgqcHJvcGVydHlOYW1lU3RyaW5nKVswXSkpCi0gICAgICAgICAgICByZXR1cm4gcHJv
cGVydHlJbmZvOworICAgICAgICAgICAgcmV0dXJuIHByb3BlcnR5SUQ7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgUHJvcGVydHlOYW1lUHJlZml4OjpDU1M6CiAgICAgICAgIGkgKz0gMzsKICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm9wZXJ0eU5hbWVQcmVmaXg6OlBpeGVsOgotICAgICAg
ICBpICs9IDU7Ci0gICAgICAgIGhhZFBpeGVsT3JQb3NQcmVmaXggPSB0cnVlOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFByb3BlcnR5TmFtZVByZWZpeDo6UG9zOgotICAgICAgICBpICs9IDM7
Ci0gICAgICAgIGhhZFBpeGVsT3JQb3NQcmVmaXggPSB0cnVlOwotICAgICAgICBicmVhazsKICAg
ICBjYXNlIFByb3BlcnR5TmFtZVByZWZpeDo6RXB1YjoKICAgICAgICAgd3JpdGVFcHViUHJlZml4
KGJ1ZmZlclB0cik7CiAgICAgICAgIGkgKz0gNDsKQEAgLTIwMywxNyArMTc5LDE3IEBAIHN0YXRp
YyBDU1NQcm9wZXJ0eUluZm8gcGFyc2VKYXZhU2NyaXB0Q1MKICAgICBzaXplX3QgYnVmZmVyU2l6
ZUxlZnQgPSBzdHJpbmdFbmQgLSBidWZmZXJQdHI7CiAgICAgc2l6ZV90IHByb3BlcnR5U2l6ZUxl
ZnQgPSBsZW5ndGggLSBpOwogICAgIGlmIChwcm9wZXJ0eVNpemVMZWZ0ID4gYnVmZmVyU2l6ZUxl
ZnQpCi0gICAgICAgIHJldHVybiBwcm9wZXJ0eUluZm87CisgICAgICAgIHJldHVybiBwcm9wZXJ0
eUlEOwogCiAgICAgZm9yICg7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICBVQ2hhciBjID0g
KCpwcm9wZXJ0eU5hbWVTdHJpbmcpW2ldOwogICAgICAgICBpZiAoIWMgfHwgIWlzQVNDSUkoYykp
Ci0gICAgICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOyAvLyBpbGxlZ2FsIGNoYXJhY3Rlcgor
ICAgICAgICAgICAgcmV0dXJuIHByb3BlcnR5SUQ7IC8vIGlsbGVnYWwgY2hhcmFjdGVyCiAgICAg
ICAgIGlmIChpc0FTQ0lJVXBwZXIoYykpIHsKICAgICAgICAgICAgIHNpemVfdCBidWZmZXJTaXpl
TGVmdCA9IHN0cmluZ0VuZCAtIGJ1ZmZlclB0cjsKICAgICAgICAgICAgIHNpemVfdCBwcm9wZXJ0
eVNpemVMZWZ0ID0gbGVuZ3RoIC0gaSArIDE7CiAgICAgICAgICAgICBpZiAocHJvcGVydHlTaXpl
TGVmdCA+IGJ1ZmZlclNpemVMZWZ0KQotICAgICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eUlu
Zm87CisgICAgICAgICAgICAgICAgcmV0dXJuIHByb3BlcnR5SUQ7CiAgICAgICAgICAgICAqYnVm
ZmVyUHRyKysgPSAnLSc7CiAgICAgICAgICAgICAqYnVmZmVyUHRyKysgPSB0b0FTQ0lJTG93ZXJV
bmNoZWNrZWQoYyk7CiAgICAgICAgIH0gZWxzZQpAQCAtMjI5LDIyICsyMDUsMTkgQEAgc3RhdGlj
IENTU1Byb3BlcnR5SW5mbyBwYXJzZUphdmFTY3JpcHRDUwogI2VuZGlmCiAKICAgICBhdXRvKiBo
YXNoVGFibGVFbnRyeSA9IGZpbmRQcm9wZXJ0eShuYW1lLCBvdXRwdXRMZW5ndGgpOwotICAgIGlm
IChhdXRvIHByb3BlcnR5SUQgPSBoYXNoVGFibGVFbnRyeSA/IGhhc2hUYWJsZUVudHJ5LT5pZCA6
IDApIHsKLSAgICAgICAgYXV0byBpZCA9IHN0YXRpY19jYXN0PENTU1Byb3BlcnR5SUQ+KHByb3Bl
cnR5SUQpOwotICAgICAgICBwcm9wZXJ0eUluZm8uaGFkUGl4ZWxPclBvc1ByZWZpeCA9IGhhZFBp
eGVsT3JQb3NQcmVmaXg7Ci0gICAgICAgIHByb3BlcnR5SW5mby5wcm9wZXJ0eUlEID0gaWQ7Ci0g
ICAgICAgIHByb3BlcnR5SW5mb0NhY2hlLmdldCgpLmFkZChwcm9wZXJ0eU5hbWVTdHJpbmcsIHBy
b3BlcnR5SW5mbyk7CisgICAgaWYgKGF1dG8gaWQgPSBoYXNoVGFibGVFbnRyeSA/IGhhc2hUYWJs
ZUVudHJ5LT5pZCA6IDApIHsKKyAgICAgICAgcHJvcGVydHlJRCA9IHN0YXRpY19jYXN0PENTU1By
b3BlcnR5SUQ+KGlkKTsKKyAgICAgICAgcHJvcGVydHlJRENhY2hlLmdldCgpLmFkZChwcm9wZXJ0
eU5hbWVTdHJpbmcsIHByb3BlcnR5SUQpOwogICAgIH0KLSAgICByZXR1cm4gcHJvcGVydHlJbmZv
OworICAgIHJldHVybiBwcm9wZXJ0eUlEOwogfQogCi1zdGF0aWMgQ1NTUHJvcGVydHlJbmZvIHBy
b3BlcnR5SW5mb0Zyb21KYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKGNvbnN0IEF0b21TdHJpbmcm
IHByb3BlcnR5TmFtZSwgY29uc3QgU2V0dGluZ3MqIHNldHRpbmdzKQorc3RhdGljIENTU1Byb3Bl
cnR5SUQgcHJvcGVydHlJREZyb21KYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKGNvbnN0IEF0b21T
dHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3QgU2V0dGluZ3MqIHNldHRpbmdzKQogewotICAgIGF1
dG8gcHJvcGVydHlJbmZvID0gcGFyc2VKYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKHByb3BlcnR5
TmFtZSk7Ci0gICAgYXV0byBpZCA9IHByb3BlcnR5SW5mby5wcm9wZXJ0eUlEOworICAgIGF1dG8g
aWQgPSBwYXJzZUphdmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKTsKICAgICBp
ZiAoIWlzRW5hYmxlZENTU1Byb3BlcnR5KGlkKSB8fCAhaXNDU1NQcm9wZXJ0eUVuYWJsZWRCeVNl
dHRpbmdzKGlkLCBzZXR0aW5ncykpCi0gICAgICAgIHJldHVybiB7IENTU1Byb3BlcnR5SW52YWxp
ZCwgZmFsc2UgfTsKLSAgICByZXR1cm4gcHJvcGVydHlJbmZvOworICAgICAgICByZXR1cm4gQ1NT
UHJvcGVydHlJbnZhbGlkOworICAgIHJldHVybiBpZDsKIH0KIAogfQpAQCAtMjY3LDM2ICsyNDAs
OSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDU1NTdHlsZURlY2xhcmF0aW9uOjpzCiAgICAgcmV0dXJu
IHsgfTsKIH0KIAotVmFyaWFudDxkb3VibGUsIFN0cmluZz4gQ1NTU3R5bGVEZWNsYXJhdGlvbjo6
Z2V0UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkKENTU1Byb3BlcnR5
SUQgcHJvcGVydHlJRCkKLXsKLSAgICBhdXRvIHZhbHVlID0gZ2V0UHJvcGVydHlDU1NWYWx1ZUlu
dGVybmFsKHByb3BlcnR5SUQpOwotICAgIGlmICghdmFsdWUpIHsKLSAgICAgICAgLy8gSWYgdGhl
IHByb3BlcnR5IGlzIGEgc2hvcnRoYW5kIHByb3BlcnR5IChzdWNoIGFzICJwYWRkaW5nIiksIGl0
IGNhbiBvbmx5IGJlIGFjY2Vzc2VkIHVzaW5nIGdldFByb3BlcnR5VmFsdWUuCi0gICAgICAgIHJl
dHVybiBnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwocHJvcGVydHlJRCk7Ci0gICAgfQotICAgIAot
ICAgIGlmIChpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKSkgewotICAgICAgICAvLyBDYWxs
IHRoaXMgdmVyc2lvbiBvZiB0aGUgZ2V0dGVyIHNvIHRoYXQsIGUuZy4sIHBpeGVsVG9wIHJldHVy
bnMgdG9wIGFzIGEgbnVtYmVyCi0gICAgICAgIC8vIGluIHBpeGVsIHVuaXRzIGFuZCBwb3NUb3Ag
c2hvdWxkIGRvZXMgdGhlIHNhbWUgX2lmXyB0aGlzIGlzIGEgcG9zaXRpb25lZCBlbGVtZW50Lgot
ICAgICAgICAvLyBGSVhNRTogSWYgbm90IGEgcG9zaXRpb25lZCBlbGVtZW50LCBNU0lFIGRvY3Vt
ZW50YXRpb24gc2F5cyBwb3NUb3Agc2hvdWxkIHJldHVybiAwOyB0aGlzIHJ1bGUgaXMgbm90IGlt
cGxlbWVudGVkLgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2
YWx1ZSkuZmxvYXRWYWx1ZShDU1NVbml0VHlwZTo6Q1NTX1BYKTsKLSAgICB9Ci0KLSAgICByZXR1
cm4gdmFsdWUtPmNzc1RleHQoKTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQ1NTU3R5bGVEZWNs
YXJhdGlvbjo6c2V0UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkKENT
U1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgVmFyaWFudDxkb3VibGUsIFN0cmluZz4gdmFsdWUpCi17
Ci0gICAgYXV0byBzdHJpbmdWYWx1ZSA9IFdURjo6c3dpdGNoT24odmFsdWUsIFsmXSAoY29uc3Qg
YXV0byYgaW5wdXQpIHsKLSAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoaW5wdXQsICJweCIpOwot
ICAgIH0pOwotCi0gICAgcmV0dXJuIHNldFByb3BlcnR5VmFsdWVJbnRlcm5hbChwcm9wZXJ0eUlE
LCBXVEZNb3ZlKHN0cmluZ1ZhbHVlKSk7Ci19Ci0KIENTU1Byb3BlcnR5SUQgQ1NTU3R5bGVEZWNs
YXJhdGlvbjo6Z2V0Q1NTUHJvcGVydHlJREZyb21KYXZhU2NyaXB0UHJvcGVydHlOYW1lKGNvbnN0
IEF0b21TdHJpbmcmIHByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gcHJvcGVydHlJbmZvRnJv
bUphdmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lLCBudWxscHRyKS5wcm9wZXJ0
eUlEOworICAgIHJldHVybiBwcm9wZXJ0eUlERnJvbUphdmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUo
cHJvcGVydHlOYW1lLCBudWxscHRyKTsKIH0KIAogU3RyaW5nIENTU1N0eWxlRGVjbGFyYXRpb246
OmNzc0Zsb2F0KCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24u
aAkocmV2aXNpb24gMjY4ODcyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFy
YXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNzMsOCArNzMsNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0KCkgY29uc3QgeyByZXR1cm4gbnVs
bHB0cjsgfQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0UHJvcGVydHlWYWx1ZUludGVybmFs
KENTU1Byb3BlcnR5SUQsIFN0cmluZyk7Ci0gICAgVmFyaWFudDxkb3VibGUsIFN0cmluZz4gZ2V0
UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkKENTU1Byb3BlcnR5SUQp
OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09y
UGl4ZWxQcmVmaXhlZChDU1NQcm9wZXJ0eUlELCBWYXJpYW50PGRvdWJsZSwgU3RyaW5nPik7CiAK
ICAgICBzdGF0aWMgQ1NTUHJvcGVydHlJRCBnZXRDU1NQcm9wZXJ0eUlERnJvbUphdmFTY3JpcHRQ
cm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvbWFrZXByb3AucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL21ha2Vwcm9w
LnBsCShyZXZpc2lvbiAyNjg4NzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwJ
KHdvcmtpbmcgY29weSkKQEAgLTE1MDIsMTAgKzE1MDIsMTAgQEAgZm9yZWFjaCBteSAkbmFtZU9y
QWxpYXMgKGdyZXAgeyAkXyA9fiAvXgogCiBwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJP
UEVSVFlfTkFNRVNfSURMIDw8ICJFT0YiOwogCi0gICAgLy8gTm9uLXN0YW5kYXJkLiBBZGQgc3Bl
Y2lhbCBjYXNlcyBmb3IgYWxsIHByb3BlcnRpZXMgbm90IHN0YXJ0aW5nIHdpdGggLXdlYmtpdC0g
b3IgLWVwdWItCi0gICAgLy8gdGhhdCBwdXRzIGFuIG5ldyBwcmVmaXggb2YgY3NzLCBDc3MsIHBv
cywgUG9zLCBwaXhlbCBhbmQgUGl4ZWwgb24gZWFjaC4KLSAgICAvLyBFeGFtcGxlIHRvcCAtPiBl
bGVtZW50LnN0eWxlLnBvc1RvcAotICAgIC8vIEV4YW1wbGUgdG9wIC0+IGVsZW1lbnQuc3R5bGUu
UGl4ZWxUb3AKKyAgICAvLyBOb24tc3RhbmRhcmQuIEFkZHMgYW4gYWRkaXRpb25hbCB2YXJpYW50
IG9mIGFsbCBwcm9wZXJ0aWVzIG5vdCBzdGFydGluZyB3aXRoIC13ZWJraXQtIG9yIC1lcHViLQor
ICAgIC8vIHRoYXQgaXMgdGhlIHByb3BlcnR5IG5hbWUgcHJlZml4ZWQgYnkgY3NzIGFuZCBDc3Mu
CisgICAgLy8gRXhhbXBsZSB0b3AgLT4gZWxlbWVudC5zdHlsZS5jc3NUb3AKKyAgICAvLyBFeGFt
cGxlIHRvcCAtPiBlbGVtZW50LnN0eWxlLkNzc1RvcAogRU9GCiBmb3JlYWNoIG15ICRuYW1lT3JB
bGlhcyAoZ3JlcCB7ICRfICF+IC9eXC13ZWJraXRcLXxeXC1lcHViXC0vIH0gQG5hbWVzQW5kQWxp
YXNlcykgewogICAgIG15ICRjYW1lbENhc2VkQXR0cmlidXRlTmFtZSA9IGNzc1Byb3BlcnR5VG9J
RExBdHRyaWJ1dGUoJG5hbWVPckFsaWFzLCAwLCAxKTsKQEAgLTE1MTksMTAgKzE1MTksNiBAQCBm
b3JlYWNoIG15ICRuYW1lT3JBbGlhcyAoZ3JlcCB7ICRfICF+IC9eCiAKICAgICBwcmludCBDU1Nf
U1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAk
e2V4dGVuZGVkQXR0cmlidXRlc31dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIGNzcyR7Y2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIiB1bmxlc3MgJGNh
bWVsQ2FzZWRBdHRyaWJ1dGVOYW1lIGVxICJGbG9hdCI7CiAgICAgcHJpbnQgQ1NTX1NUWUxFX0RF
Q0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRl
ZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBDc3Mke2NhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiIgdW5sZXNzICRjYW1lbENhc2Vk
QXR0cmlidXRlTmFtZSBlcSAiRmxvYXQiOwotICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElP
Tl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1
dGVzfV0gYXR0cmlidXRlIChkb3VibGUgb3IgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZykgcG9zJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07XG4iOwotICAgIHByaW50IENT
U19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMs
ICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIChkb3VibGUgb3IgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZykgUG9zJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07
XG4iOwotICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwg
IiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIChkb3Vi
bGUgb3IgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZykgcGl4ZWwke2NhbWVs
Q2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiI7Ci0gICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9O
X1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0
ZXN9XSBhdHRyaWJ1dGUgKGRvdWJsZSBvciBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nKSBQaXhlbCR7Y2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKIH0KIAogcHJpbnQg
Q1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412241</attachid>
            <date>2020-10-24 10:55:10 -0700</date>
            <delta_ts>2021-02-26 16:54:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119712-20201024105509.patch</filename>
            <type>text/plain</type>
            <size>16442</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODk1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTEwLTIzICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgJ3Bp
eGVsJyBhbmQgJ3BvcycgQ1NTT00gcHJlZml4ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTcxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciBwaXhlbC9wb3MgcHJlZml4
ZWQgcHJvcGVydGllcyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIHdoaWNoCisgICAgICAgIGFyZSBu
byBsb25nZXIgc3VwcG9ydGVkIGJ5IGFueSBvdGhlciBicm93c2VyLgorCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUF0dHJp
YnV0ZUdldHRlckJvZHlEZWZpbml0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlQXR0cmlidXRlU2V0
dGVyQm9keURlZmluaXRpb24pOgorICAgICAgICAqIGNzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb246OmdldENTU1Byb3BlcnR5
SURGcm9tSmF2YVNjcmlwdFByb3BlcnR5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWxGb3JQb3NPclBpeGVsUHJlZml4
ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbjo6c2V0
UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAqIGNzcy9tYWtlcHJv
cC5wbDoKKwogMjAyMC0xMC0yNCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIFJlcGxhY2VkIGVsZW1lbnRzIGluIG5ld2x5IGNy
ZWF0ZWQgbGluZSBsYXlvdXQgc2hvdWxkIGFsd2F5cyBiZSB1cGRhdGVkCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2
aXNpb24gMjY4OTUxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTUyODMsOCArNTI4Myw3IEBAIHN1YiBHZW5l
cmF0ZUF0dHJpYnV0ZUdldHRlckJvZHlEZWZpbml0aW8KICAgICAgICAgJGltcGxJbmNsdWRlc3si
Q1NTUHJvcGVydHlOYW1lcy5oIn0gPSAxOwogICAgICAgICBteSAkcHJvcGVydHlJRCA9ICRhdHRy
aWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NTU1Byb3BlcnR5fTsKICAgICAgICAgCi0gICAg
ICAgIG15ICRnZXR0ZXJOYW1lID0gJGF0dHJpYnV0ZS0+dHlwZS0+aXNVbmlvbiA/ICJnZXRQcm9w
ZXJ0eVZhbHVlSW50ZXJuYWxGb3JQb3NPclBpeGVsUHJlZml4ZWQiIDogImdldFByb3BlcnR5VmFs
dWVJbnRlcm5hbCI7Ci0gICAgICAgIAorICAgICAgICBteSAkZ2V0dGVyTmFtZSA9ICJnZXRQcm9w
ZXJ0eVZhbHVlSW50ZXJuYWwiOwogICAgICAgICBteSAkdG9KU0V4cHJlc3Npb24gPSBOYXRpdmVU
b0pTVmFsdWVVc2luZ1JlZmVyZW5jZXMoJGF0dHJpYnV0ZSwgJGludGVyZmFjZSwgImltcGwuJHtn
ZXR0ZXJOYW1lfShDU1NQcm9wZXJ0eSR7cHJvcGVydHlJRH0pIiwgIip0aGlzT2JqZWN0Lmdsb2Jh
bE9iamVjdCgpIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvJiBpbXBs
ID0gdGhpc09iamVjdC53cmFwcGVkKCk7XG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoJHt0b0pTRXhwcmVzc2lvbn0p
KTtcbiIpOwpAQCAtNTQzNyw4ICs1NDM2LDggQEAgc3ViIEdlbmVyYXRlQXR0cmlidXRlU2V0dGVy
Qm9keURlZmluaXRpbwogCiAgICAgICAgIG15ICRwcm9wZXJ0eUlEID0gJGF0dHJpYnV0ZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Q1NTUHJvcGVydHl9OwogICAgICAgICAKLSAgICAgICAgbXkgJHNl
dHRlck5hbWUgPSAkYXR0cmlidXRlLT50eXBlLT5pc1VuaW9uID8gInNldFByb3BlcnR5VmFsdWVJ
bnRlcm5hbEZvclBvc09yUGl4ZWxQcmVmaXhlZCIgOiAic2V0UHJvcGVydHlWYWx1ZUludGVybmFs
IjsKLSAgICAgICAgCisgICAgICAgIG15ICRzZXR0ZXJOYW1lID0gInNldFByb3BlcnR5VmFsdWVJ
bnRlcm5hbCI7CisKICAgICAgICAgbXkgJGV4Y2VwdGlvblRocm93ZXIgPSBHZXRBdHRyaWJ1dGVF
eGNlcHRpb25UaHJvd2VyKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwogICAgICAgICBteSAkdG9O
YXRpdmVFeHByZXNzaW9uID0gSlNWYWx1ZVRvTmF0aXZlKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUs
ICJ2YWx1ZSIsICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NvbmRpdGlvbmFsfSwg
IiZsZXhpY2FsR2xvYmFsT2JqZWN0IiwgImxleGljYWxHbG9iYWxPYmplY3QiLCAidGhpc09iamVj
dCIsICIqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSIsICRleGNlcHRpb25UaHJvd2VyKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAkocmV2aXNp
b24gMjY4OTUxKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNCw4ICszNCw2IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJTdHlsZWRFbGVtZW50LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KLSNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KLSNpbmNsdWRlIDx3dGYvVmFyaWFudC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ3LDEzICs0NSwxMCBAQCBlbnVtIGNsYXNz
IFByb3BlcnR5TmFtZVByZWZpeCB7CiAgICAgTm9uZSwKICAgICBFcHViLAogICAgIENTUywKLSAg
ICBQaXhlbCwKLSAgICBQb3MsCiAgICAgV2ViS2l0CiB9OwogCi10ZW1wbGF0ZTxzaXplX3QgcHJl
Zml4Q1N0cmluZ0xlbmd0aD4KLXN0YXRpYyBpbmxpbmUgYm9vbCBtYXRjaGVzQ1NTUHJvcGVydHlO
YW1lUHJlZml4KGNvbnN0IFN0cmluZ0ltcGwmIHByb3BlcnR5TmFtZSwgY29uc3QgY2hhciAoJnBy
ZWZpeClbcHJlZml4Q1N0cmluZ0xlbmd0aF0pCit0ZW1wbGF0ZTxzaXplX3QgcHJlZml4Q1N0cmlu
Z0xlbmd0aD4gc3RhdGljIGlubGluZSBib29sIG1hdGNoZXNDU1NQcm9wZXJ0eU5hbWVQcmVmaXgo
Y29uc3QgU3RyaW5nSW1wbCYgcHJvcGVydHlOYW1lLCBjb25zdCBjaGFyICgmcHJlZml4KVtwcmVm
aXhDU3RyaW5nTGVuZ3RoXSkKIHsKICAgICBzaXplX3QgcHJlZml4TGVuZ3RoID0gcHJlZml4Q1N0
cmluZ0xlbmd0aCAtIDE7CiAKQEAgLTk4LDEyICs5Myw2IEBAIHN0YXRpYyBQcm9wZXJ0eU5hbWVQ
cmVmaXggcHJvcGVydHlOYW1lUHIKICAgICAgICAgaWYgKG1hdGNoZXNDU1NQcm9wZXJ0eU5hbWVQ
cmVmaXgocHJvcGVydHlOYW1lLCAiZXB1YiIpKQogICAgICAgICAgICAgcmV0dXJuIFByb3BlcnR5
TmFtZVByZWZpeDo6RXB1YjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAncCc6Ci0gICAgICAg
IGlmIChtYXRjaGVzQ1NTUHJvcGVydHlOYW1lUHJlZml4KHByb3BlcnR5TmFtZSwgInBvcyIpKQot
ICAgICAgICAgICAgcmV0dXJuIFByb3BlcnR5TmFtZVByZWZpeDo6UG9zOwotICAgICAgICBpZiAo
bWF0Y2hlc0NTU1Byb3BlcnR5TmFtZVByZWZpeChwcm9wZXJ0eU5hbWUsICJwaXhlbCIpKQotICAg
ICAgICAgICAgcmV0dXJuIFByb3BlcnR5TmFtZVByZWZpeDo6UGl4ZWw7Ci0gICAgICAgIGJyZWFr
OwogICAgIGNhc2UgJ3cnOgogICAgICAgICBpZiAobWF0Y2hlc0NTU1Byb3BlcnR5TmFtZVByZWZp
eChwcm9wZXJ0eU5hbWUsICJ3ZWJraXQiKSkKICAgICAgICAgICAgIHJldHVybiBQcm9wZXJ0eU5h
bWVQcmVmaXg6OldlYktpdDsKQEAgLTEzNiwzMCArMTI1LDIzIEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCB3cml0ZUVwdWJQcmVmaXgoY2hhcioKICAgICAqYnVmZmVyKysgPSAnLSc7CiB9CiAKLXN0cnVj
dCBDU1NQcm9wZXJ0eUluZm8gewotICAgIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRDsKLSAgICBi
b29sIGhhZFBpeGVsT3JQb3NQcmVmaXg7Ci19OwotCi1zdGF0aWMgQ1NTUHJvcGVydHlJbmZvIHBh
cnNlSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFtZShjb25zdCBBdG9tU3RyaW5nJiBwcm9wZXJ0eU5h
bWUpCitzdGF0aWMgQ1NTUHJvcGVydHlJRCBwYXJzZUphdmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUo
Y29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKQogewotICAgIHVzaW5nIENTU1Byb3BlcnR5
SW5mb01hcCA9IEhhc2hNYXA8U3RyaW5nLCBDU1NQcm9wZXJ0eUluZm8+OwotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxDU1NQcm9wZXJ0eUluZm9NYXA+IHByb3BlcnR5SW5mb0NhY2hlOworICAg
IHVzaW5nIENTU1Byb3BlcnR5SURNYXAgPSBIYXNoTWFwPFN0cmluZywgQ1NTUHJvcGVydHlJRD47
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENTU1Byb3BlcnR5SURNYXA+IHByb3BlcnR5SURD
YWNoZTsKIAotICAgIENTU1Byb3BlcnR5SW5mbyBwcm9wZXJ0eUluZm8gPSB7IENTU1Byb3BlcnR5
SW52YWxpZCwgZmFsc2UgfTsKKyAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQgPSBDU1NQcm9w
ZXJ0eUludmFsaWQ7CiAKICAgICBhdXRvKiBwcm9wZXJ0eU5hbWVTdHJpbmcgPSBwcm9wZXJ0eU5h
bWUuaW1wbCgpOwogICAgIGlmICghcHJvcGVydHlOYW1lU3RyaW5nKQotICAgICAgICByZXR1cm4g
cHJvcGVydHlJbmZvOworICAgICAgICByZXR1cm4gcHJvcGVydHlJRDsKICAgICB1bnNpZ25lZCBs
ZW5ndGggPSBwcm9wZXJ0eU5hbWVTdHJpbmctPmxlbmd0aCgpOwogICAgIGlmICghbGVuZ3RoKQot
ICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOworICAgICAgICByZXR1cm4gcHJvcGVydHlJRDsK
IAotICAgIHByb3BlcnR5SW5mbyA9IHByb3BlcnR5SW5mb0NhY2hlLmdldCgpLmdldChwcm9wZXJ0
eU5hbWVTdHJpbmcpOwotICAgIGlmIChwcm9wZXJ0eUluZm8ucHJvcGVydHlJRCkKLSAgICAgICAg
cmV0dXJuIHByb3BlcnR5SW5mbzsKLQotICAgIGJvb2wgaGFkUGl4ZWxPclBvc1ByZWZpeCA9IGZh
bHNlOworICAgIHByb3BlcnR5SUQgPSBwcm9wZXJ0eUlEQ2FjaGUuZ2V0KCkuZ2V0KHByb3BlcnR5
TmFtZVN0cmluZyk7CisgICAgaWYgKHByb3BlcnR5SUQpCisgICAgICAgIHJldHVybiBwcm9wZXJ0
eUlEOwogCiAgICAgY29uc3RleHByIHNpemVfdCBidWZmZXJTaXplID0gbWF4Q1NTUHJvcGVydHlO
YW1lTGVuZ3RoICsgMTsKICAgICBjaGFyIGJ1ZmZlcltidWZmZXJTaXplXTsKQEAgLTE2NywyNSAr
MTQ5LDE3IEBAIHN0YXRpYyBDU1NQcm9wZXJ0eUluZm8gcGFyc2VKYXZhU2NyaXB0Q1MKICAgICBj
b25zdCBjaGFyKiBuYW1lID0gYnVmZmVyUHRyOwogCiAgICAgdW5zaWduZWQgaSA9IDA7Ci0gICAg
Ly8gUHJlZml4ZXMgQ1NTLCBQaXhlbCwgUG9zIGFyZSBpZ25vcmVkLgotICAgIC8vIFByZWZpeGVz
IEFwcGxlLCBLSFRNTCBhbmQgV2Via2l0IGFyZSB0cmFuc3Bvc2VkIHRvICItd2Via2l0LSIuCi0g
ICAgLy8gVGhlIHByZWZpeCAiRXB1YiIgYmVjb21lcyAiLWVwdWItIi4KKyAgICAvLyBQcmVmaXgg
Q1NTIGlzIGlnbm9yZWQuCisgICAgLy8gUHJlZml4IFdlYmtpdCBiZWNvbWVzICItd2Via2l0LSIu
CisgICAgLy8gUHJlZml4IEVwdWIgYmVjb21lcyAiLWVwdWItIi4KICAgICBzd2l0Y2ggKHByb3Bl
cnR5TmFtZVByZWZpeCgqcHJvcGVydHlOYW1lU3RyaW5nKSkgewogICAgIGNhc2UgUHJvcGVydHlO
YW1lUHJlZml4OjpOb25lOgogICAgICAgICBpZiAoaXNBU0NJSVVwcGVyKCgqcHJvcGVydHlOYW1l
U3RyaW5nKVswXSkpCi0gICAgICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOworICAgICAgICAg
ICAgcmV0dXJuIHByb3BlcnR5SUQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUHJvcGVydHlO
YW1lUHJlZml4OjpDU1M6CiAgICAgICAgIGkgKz0gMzsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBQcm9wZXJ0eU5hbWVQcmVmaXg6OlBpeGVsOgotICAgICAgICBpICs9IDU7Ci0gICAgICAgIGhh
ZFBpeGVsT3JQb3NQcmVmaXggPSB0cnVlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3Bl
cnR5TmFtZVByZWZpeDo6UG9zOgotICAgICAgICBpICs9IDM7Ci0gICAgICAgIGhhZFBpeGVsT3JQ
b3NQcmVmaXggPSB0cnVlOwotICAgICAgICBicmVhazsKICAgICBjYXNlIFByb3BlcnR5TmFtZVBy
ZWZpeDo6RXB1YjoKICAgICAgICAgd3JpdGVFcHViUHJlZml4KGJ1ZmZlclB0cik7CiAgICAgICAg
IGkgKz0gNDsKQEAgLTIwMywxNyArMTc3LDE3IEBAIHN0YXRpYyBDU1NQcm9wZXJ0eUluZm8gcGFy
c2VKYXZhU2NyaXB0Q1MKICAgICBzaXplX3QgYnVmZmVyU2l6ZUxlZnQgPSBzdHJpbmdFbmQgLSBi
dWZmZXJQdHI7CiAgICAgc2l6ZV90IHByb3BlcnR5U2l6ZUxlZnQgPSBsZW5ndGggLSBpOwogICAg
IGlmIChwcm9wZXJ0eVNpemVMZWZ0ID4gYnVmZmVyU2l6ZUxlZnQpCi0gICAgICAgIHJldHVybiBw
cm9wZXJ0eUluZm87CisgICAgICAgIHJldHVybiBwcm9wZXJ0eUlEOwogCiAgICAgZm9yICg7IGkg
PCBsZW5ndGg7ICsraSkgewogICAgICAgICBVQ2hhciBjID0gKCpwcm9wZXJ0eU5hbWVTdHJpbmcp
W2ldOwogICAgICAgICBpZiAoIWMgfHwgIWlzQVNDSUkoYykpCi0gICAgICAgICAgICByZXR1cm4g
cHJvcGVydHlJbmZvOyAvLyBpbGxlZ2FsIGNoYXJhY3RlcgorICAgICAgICAgICAgcmV0dXJuIHBy
b3BlcnR5SUQ7IC8vIGlsbGVnYWwgY2hhcmFjdGVyCiAgICAgICAgIGlmIChpc0FTQ0lJVXBwZXIo
YykpIHsKICAgICAgICAgICAgIHNpemVfdCBidWZmZXJTaXplTGVmdCA9IHN0cmluZ0VuZCAtIGJ1
ZmZlclB0cjsKICAgICAgICAgICAgIHNpemVfdCBwcm9wZXJ0eVNpemVMZWZ0ID0gbGVuZ3RoIC0g
aSArIDE7CiAgICAgICAgICAgICBpZiAocHJvcGVydHlTaXplTGVmdCA+IGJ1ZmZlclNpemVMZWZ0
KQotICAgICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eUluZm87CisgICAgICAgICAgICAgICAg
cmV0dXJuIHByb3BlcnR5SUQ7CiAgICAgICAgICAgICAqYnVmZmVyUHRyKysgPSAnLSc7CiAgICAg
ICAgICAgICAqYnVmZmVyUHRyKysgPSB0b0FTQ0lJTG93ZXJVbmNoZWNrZWQoYyk7CiAgICAgICAg
IH0gZWxzZQpAQCAtMjI5LDIyICsyMDMsMTkgQEAgc3RhdGljIENTU1Byb3BlcnR5SW5mbyBwYXJz
ZUphdmFTY3JpcHRDUwogI2VuZGlmCiAKICAgICBhdXRvKiBoYXNoVGFibGVFbnRyeSA9IGZpbmRQ
cm9wZXJ0eShuYW1lLCBvdXRwdXRMZW5ndGgpOwotICAgIGlmIChhdXRvIHByb3BlcnR5SUQgPSBo
YXNoVGFibGVFbnRyeSA/IGhhc2hUYWJsZUVudHJ5LT5pZCA6IDApIHsKLSAgICAgICAgYXV0byBp
ZCA9IHN0YXRpY19jYXN0PENTU1Byb3BlcnR5SUQ+KHByb3BlcnR5SUQpOwotICAgICAgICBwcm9w
ZXJ0eUluZm8uaGFkUGl4ZWxPclBvc1ByZWZpeCA9IGhhZFBpeGVsT3JQb3NQcmVmaXg7Ci0gICAg
ICAgIHByb3BlcnR5SW5mby5wcm9wZXJ0eUlEID0gaWQ7Ci0gICAgICAgIHByb3BlcnR5SW5mb0Nh
Y2hlLmdldCgpLmFkZChwcm9wZXJ0eU5hbWVTdHJpbmcsIHByb3BlcnR5SW5mbyk7CisgICAgaWYg
KGF1dG8gaWQgPSBoYXNoVGFibGVFbnRyeSA/IGhhc2hUYWJsZUVudHJ5LT5pZCA6IDApIHsKKyAg
ICAgICAgcHJvcGVydHlJRCA9IHN0YXRpY19jYXN0PENTU1Byb3BlcnR5SUQ+KGlkKTsKKyAgICAg
ICAgcHJvcGVydHlJRENhY2hlLmdldCgpLmFkZChwcm9wZXJ0eU5hbWVTdHJpbmcsIHByb3BlcnR5
SUQpOwogICAgIH0KLSAgICByZXR1cm4gcHJvcGVydHlJbmZvOworICAgIHJldHVybiBwcm9wZXJ0
eUlEOwogfQogCi1zdGF0aWMgQ1NTUHJvcGVydHlJbmZvIHByb3BlcnR5SW5mb0Zyb21KYXZhU2Ny
aXB0Q1NTUHJvcGVydHlOYW1lKGNvbnN0IEF0b21TdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3Qg
U2V0dGluZ3MqIHNldHRpbmdzKQorc3RhdGljIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJREZyb21K
YXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKGNvbnN0IEF0b21TdHJpbmcmIHByb3BlcnR5TmFtZSwg
Y29uc3QgU2V0dGluZ3MqIHNldHRpbmdzKQogewotICAgIGF1dG8gcHJvcGVydHlJbmZvID0gcGFy
c2VKYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSk7Ci0gICAgYXV0byBpZCA9
IHByb3BlcnR5SW5mby5wcm9wZXJ0eUlEOworICAgIGF1dG8gaWQgPSBwYXJzZUphdmFTY3JpcHRD
U1NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKTsKICAgICBpZiAoIWlzRW5hYmxlZENTU1Byb3Bl
cnR5KGlkKSB8fCAhaXNDU1NQcm9wZXJ0eUVuYWJsZWRCeVNldHRpbmdzKGlkLCBzZXR0aW5ncykp
Ci0gICAgICAgIHJldHVybiB7IENTU1Byb3BlcnR5SW52YWxpZCwgZmFsc2UgfTsKLSAgICByZXR1
cm4gcHJvcGVydHlJbmZvOworICAgICAgICByZXR1cm4gQ1NTUHJvcGVydHlJbnZhbGlkOworICAg
IHJldHVybiBpZDsKIH0KIAogfQpAQCAtMjY3LDM2ICsyMzgsOSBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBDU1NTdHlsZURlY2xhcmF0aW9uOjpzCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotVmFyaWFudDxk
b3VibGUsIFN0cmluZz4gQ1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlWYWx1ZUludGVy
bmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkKLXsKLSAg
ICBhdXRvIHZhbHVlID0gZ2V0UHJvcGVydHlDU1NWYWx1ZUludGVybmFsKHByb3BlcnR5SUQpOwot
ICAgIGlmICghdmFsdWUpIHsKLSAgICAgICAgLy8gSWYgdGhlIHByb3BlcnR5IGlzIGEgc2hvcnRo
YW5kIHByb3BlcnR5IChzdWNoIGFzICJwYWRkaW5nIiksIGl0IGNhbiBvbmx5IGJlIGFjY2Vzc2Vk
IHVzaW5nIGdldFByb3BlcnR5VmFsdWUuCi0gICAgICAgIHJldHVybiBnZXRQcm9wZXJ0eVZhbHVl
SW50ZXJuYWwocHJvcGVydHlJRCk7Ci0gICAgfQotICAgIAotICAgIGlmIChpczxDU1NQcmltaXRp
dmVWYWx1ZT4oKnZhbHVlKSkgewotICAgICAgICAvLyBDYWxsIHRoaXMgdmVyc2lvbiBvZiB0aGUg
Z2V0dGVyIHNvIHRoYXQsIGUuZy4sIHBpeGVsVG9wIHJldHVybnMgdG9wIGFzIGEgbnVtYmVyCi0g
ICAgICAgIC8vIGluIHBpeGVsIHVuaXRzIGFuZCBwb3NUb3Agc2hvdWxkIGRvZXMgdGhlIHNhbWUg
X2lmXyB0aGlzIGlzIGEgcG9zaXRpb25lZCBlbGVtZW50LgotICAgICAgICAvLyBGSVhNRTogSWYg
bm90IGEgcG9zaXRpb25lZCBlbGVtZW50LCBNU0lFIGRvY3VtZW50YXRpb24gc2F5cyBwb3NUb3Ag
c2hvdWxkIHJldHVybiAwOyB0aGlzIHJ1bGUgaXMgbm90IGltcGxlbWVudGVkLgotICAgICAgICBy
ZXR1cm4gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkuZmxvYXRWYWx1ZShDU1NV
bml0VHlwZTo6Q1NTX1BYKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdmFsdWUtPmNzc1RleHQoKTsK
LX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQ1NTU3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHlW
YWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJ
RCwgVmFyaWFudDxkb3VibGUsIFN0cmluZz4gdmFsdWUpCi17Ci0gICAgYXV0byBzdHJpbmdWYWx1
ZSA9IFdURjo6c3dpdGNoT24odmFsdWUsIFsmXSAoY29uc3QgYXV0byYgaW5wdXQpIHsKLSAgICAg
ICAgcmV0dXJuIG1ha2VTdHJpbmcoaW5wdXQsICJweCIpOwotICAgIH0pOwotCi0gICAgcmV0dXJu
IHNldFByb3BlcnR5VmFsdWVJbnRlcm5hbChwcm9wZXJ0eUlELCBXVEZNb3ZlKHN0cmluZ1ZhbHVl
KSk7Ci19Ci0KIENTU1Byb3BlcnR5SUQgQ1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0Q1NTUHJvcGVy
dHlJREZyb21KYXZhU2NyaXB0UHJvcGVydHlOYW1lKGNvbnN0IEF0b21TdHJpbmcmIHByb3BlcnR5
TmFtZSkKIHsKLSAgICByZXR1cm4gcHJvcGVydHlJbmZvRnJvbUphdmFTY3JpcHRDU1NQcm9wZXJ0
eU5hbWUocHJvcGVydHlOYW1lLCBudWxscHRyKS5wcm9wZXJ0eUlEOworICAgIHJldHVybiBwcm9w
ZXJ0eUlERnJvbUphdmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lLCBudWxscHRy
KTsKIH0KIAogU3RyaW5nIENTU1N0eWxlRGVjbGFyYXRpb246OmNzc0Zsb2F0KCkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaAkocmV2aXNpb24gMjY4OTUxKQor
KysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtNzMsOCArNzMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBDU1NTdHlsZVNoZWV0KiBw
YXJlbnRTdHlsZVNoZWV0KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogCiAgICAgRXhjZXB0
aW9uT3I8dm9pZD4gc2V0UHJvcGVydHlWYWx1ZUludGVybmFsKENTU1Byb3BlcnR5SUQsIFN0cmlu
Zyk7Ci0gICAgVmFyaWFudDxkb3VibGUsIFN0cmluZz4gZ2V0UHJvcGVydHlWYWx1ZUludGVybmFs
Rm9yUG9zT3JQaXhlbFByZWZpeGVkKENTU1Byb3BlcnR5SUQpOwotICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09yUGl4ZWxQcmVmaXhlZChDU1NQcm9w
ZXJ0eUlELCBWYXJpYW50PGRvdWJsZSwgU3RyaW5nPik7CiAKICAgICBzdGF0aWMgQ1NTUHJvcGVy
dHlJRCBnZXRDU1NQcm9wZXJ0eUlERnJvbUphdmFTY3JpcHRQcm9wZXJ0eU5hbWUoY29uc3QgQXRv
bVN0cmluZyYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCShyZXZpc2lvbiAyNjg5NTEp
CisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwJKHdvcmtpbmcgY29weSkKQEAgLTE1
MDIsMTAgKzE1MDIsMTAgQEAgZm9yZWFjaCBteSAkbmFtZU9yQWxpYXMgKGdyZXAgeyAkXyA9fiAv
XgogCiBwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMIDw8ICJF
T0YiOwogCi0gICAgLy8gTm9uLXN0YW5kYXJkLiBBZGQgc3BlY2lhbCBjYXNlcyBmb3IgYWxsIHBy
b3BlcnRpZXMgbm90IHN0YXJ0aW5nIHdpdGggLXdlYmtpdC0gb3IgLWVwdWItCi0gICAgLy8gdGhh
dCBwdXRzIGFuIG5ldyBwcmVmaXggb2YgY3NzLCBDc3MsIHBvcywgUG9zLCBwaXhlbCBhbmQgUGl4
ZWwgb24gZWFjaC4KLSAgICAvLyBFeGFtcGxlIHRvcCAtPiBlbGVtZW50LnN0eWxlLnBvc1RvcAot
ICAgIC8vIEV4YW1wbGUgdG9wIC0+IGVsZW1lbnQuc3R5bGUuUGl4ZWxUb3AKKyAgICAvLyBOb24t
c3RhbmRhcmQuIEFkZHMgYW4gYWRkaXRpb25hbCB2YXJpYW50IG9mIGFsbCBwcm9wZXJ0aWVzIG5v
dCBzdGFydGluZyB3aXRoIC13ZWJraXQtIG9yIC1lcHViLQorICAgIC8vIHRoYXQgaXMgdGhlIHBy
b3BlcnR5IG5hbWUgcHJlZml4ZWQgYnkgY3NzIGFuZCBDc3MuCisgICAgLy8gRXhhbXBsZSB0b3Ag
LT4gZWxlbWVudC5zdHlsZS5jc3NUb3AKKyAgICAvLyBFeGFtcGxlIHRvcCAtPiBlbGVtZW50LnN0
eWxlLkNzc1RvcAogRU9GCiBmb3JlYWNoIG15ICRuYW1lT3JBbGlhcyAoZ3JlcCB7ICRfICF+IC9e
XC13ZWJraXRcLXxeXC1lcHViXC0vIH0gQG5hbWVzQW5kQWxpYXNlcykgewogICAgIG15ICRjYW1l
bENhc2VkQXR0cmlidXRlTmFtZSA9IGNzc1Byb3BlcnR5VG9JRExBdHRyaWJ1dGUoJG5hbWVPckFs
aWFzLCAwLCAxKTsKQEAgLTE1MTksMTAgKzE1MTksNiBAQCBmb3JlYWNoIG15ICRuYW1lT3JBbGlh
cyAoZ3JlcCB7ICRfICF+IC9eCiAKICAgICBwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJP
UEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRlc31d
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNzcyR7Y2Ft
ZWxDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIiB1bmxlc3MgJGNhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1l
IGVxICJGbG9hdCI7CiAgICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05B
TUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBDc3Mke2NhbWVsQ2FzZWRB
dHRyaWJ1dGVOYW1lfTtcbiIgdW5sZXNzICRjYW1lbENhc2VkQXR0cmlidXRlTmFtZSBlcSAiRmxv
YXQiOwotICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwg
IiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIChkb3Vi
bGUgb3IgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZykgcG9zJHtjYW1lbENh
c2VkQXR0cmlidXRlTmFtZX07XG4iOwotICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9Q
Uk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVz
fV0gYXR0cmlidXRlIChkb3VibGUgb3IgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZykgUG9zJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07XG4iOwotICAgIHByaW50IENTU19T
VFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7
ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIChkb3VibGUgb3IgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZykgcGl4ZWwke2NhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lfTtc
biI7Ci0gICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCAi
ICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1dGUgKGRvdWJs
ZSBvciBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nKSBQaXhlbCR7Y2FtZWxD
YXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKIH0KIAogcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9O
X1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODk1MSkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDIwLTEwLTI0ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW1vdmUgc3VwcG9ydCBmb3IgJ3BpeGVsJyBhbmQgJ3BvcycgQ1NTT00gcHJlZml4ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTcxMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vQ1NT
U3R5bGVEZWNsYXJhdGlvbi9jc3MtcHJvcGVydGllcy1jYXNlLXNlbnNpdGl2ZS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3MtcHJvcGVydGll
cy1jYXNlLXNlbnNpdGl2ZS5odG1sOgorICAgICAgICBVcGRhdGUgdGVzdCB0byByZWZsZWN0IHJl
bW92YWwgb2YgcG9zL3BpeGVsIHByZWZpeGVzLgorCiAyMDIwLTEwLTI0ICBBbnR0aSBLb2l2aXN0
byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUmVwbGFj
ZWQgZWxlbWVudHMgaW4gbmV3bHkgY3JlYXRlZCBsaW5lIGxheW91dCBzaG91bGQgYWx3YXlzIGJl
IHVwZGF0ZWQKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24v
Y3NzLXByb3BlcnRpZXMtY2FzZS1zZW5zaXRpdmUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXByb3BlcnRpZXMt
Y2FzZS1zZW5zaXRpdmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjg5NTEpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzcy1wcm9wZXJ0aWVzLWNhc2Utc2Vu
c2l0aXZlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTQsMjAgKzE0LDYgQEAgUEFT
UyBlbGVtZW50LnN0eWxlLmNzc1pJbmRleCBpcyAnMScKIFBBU1MgZWxlbWVudC5zdHlsZS5Dc3Na
SW5kZXggaXMgJzEnCiBQQVNTIGVsZW1lbnQuc3R5bGUuQ3NzekluZGV4IGlzIHVuZGVmaW5lZC4K
IFBBU1MgZWxlbWVudC5zdHlsZS5jc3N6SW5kZXggaXMgdW5kZWZpbmVkLgotCi0icGl4ZWwiIHBy
ZWZpeAotCi1QQVNTIGVsZW1lbnQuc3R5bGUucGl4ZWxaSW5kZXggaXMgMQotUEFTUyBlbGVtZW50
LnN0eWxlLlBpeGVsWkluZGV4IGlzIDEKLVBBU1MgZWxlbWVudC5zdHlsZS5waXhlbHpJbmRleCBp
cyB1bmRlZmluZWQuCi1QQVNTIGVsZW1lbnQuc3R5bGUuUGl4ZWx6SW5kZXggaXMgdW5kZWZpbmVk
LgotCi0icG9zIiBwcmVmaXgKLQotUEFTUyBlbGVtZW50LnN0eWxlLnBvc1pJbmRleCBpcyAxCi1Q
QVNTIGVsZW1lbnQuc3R5bGUuUG9zWkluZGV4IGlzIDEKLVBBU1MgZWxlbWVudC5zdHlsZS5wb3N6
SW5kZXggaXMgdW5kZWZpbmVkLgotUEFTUyBlbGVtZW50LnN0eWxlLlBvc3pJbmRleCBpcyB1bmRl
ZmluZWQuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXByb3Bl
cnRpZXMtY2FzZS1zZW5zaXRpdmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzcy1wcm9wZXJ0aWVzLWNhc2Utc2Vuc2l0aXZlLmh0
bWwJKHJldmlzaW9uIDI2ODk1MSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVj
bGFyYXRpb24vY3NzLXByb3BlcnRpZXMtY2FzZS1zZW5zaXRpdmUuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMjcsMjMgKzI3LDYgQEAgc2hvdWxkQmUoImVsZW1lbnQuc3R5bGUuQ3NzWkluZGV4Iiwg
IicxJwogc2hvdWxkQmVVbmRlZmluZWQoImVsZW1lbnQuc3R5bGUuQ3NzekluZGV4Iik7CiBzaG91
bGRCZVVuZGVmaW5lZCgiZWxlbWVudC5zdHlsZS5jc3N6SW5kZXgiKTsKIAotZGVidWcoJycpOwot
ZGVidWcoJyJwaXhlbCIgcHJlZml4Jyk7Ci1kZWJ1ZygnJyk7Ci0KLXNob3VsZEJlKCJlbGVtZW50
LnN0eWxlLnBpeGVsWkluZGV4IiwgIjEiKTsKLXNob3VsZEJlKCJlbGVtZW50LnN0eWxlLlBpeGVs
WkluZGV4IiwgIjEiKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJlbGVtZW50LnN0eWxlLnBpeGVseklu
ZGV4Iik7Ci1zaG91bGRCZVVuZGVmaW5lZCgiZWxlbWVudC5zdHlsZS5QaXhlbHpJbmRleCIpOwot
Ci1kZWJ1ZygnJyk7Ci1kZWJ1ZygnInBvcyIgcHJlZml4Jyk7Ci1kZWJ1ZygnJyk7Ci0KLXNob3Vs
ZEJlKCJlbGVtZW50LnN0eWxlLnBvc1pJbmRleCIsICIxIik7Ci1zaG91bGRCZSgiZWxlbWVudC5z
dHlsZS5Qb3NaSW5kZXgiLCAiMSIpOwotc2hvdWxkQmVVbmRlZmluZWQoImVsZW1lbnQuc3R5bGUu
cG9zekluZGV4Iik7Ci1zaG91bGRCZVVuZGVmaW5lZCgiZWxlbWVudC5zdHlsZS5Qb3N6SW5kZXgi
KTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421728</attachid>
            <date>2021-02-26 16:54:15 -0800</date>
            <delta_ts>2021-02-26 16:57:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119712-20210226165414.patch</filename>
            <type>text/plain</type>
            <size>23960</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MzYwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDIxLTAyLTI2ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgJ3Bp
eGVsJyBhbmQgJ3BvcycgQ1NTT00gcHJlZml4ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTcxMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA2
NjA0OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlIHN1cHBvcnQgZm9yIHBpeGVsL3BvcyBwcmVmaXhlZCBwcm9wZXJ0aWVzIG9mIENTU1N0
eWxlRGVjbGFyYXRpb24gd2hpY2gKKyAgICAgICAgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQgYnkg
YW55IG90aGVyIGJyb3dzZXIuCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRDU1NQcm9wZXJ0
eUlERnJvbUphdmFTY3JpcHRQcm9wZXJ0eU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5
bGVEZWNsYXJhdGlvbjo6bmFtZWRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlRGVj
bGFyYXRpb246OnNldE5hbWVkSXRlbSk6CisKIDIwMjEtMDItMjYgIEplYW4tWXZlcyBBdmVuYXJk
ICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNFXSBXZWJDb250ZW50L0dQVSBwcm9jZXNz
IHdpbGwgaGFuZyB3aGVuIGFwcGVuZGluZyBkYXRhIHVuZGVyIHNvbWUgY2lyY3Vtc3RhbmNlcy4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlz
aW9uIDI3MzYwMykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTMgKzQzLDcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKENTU1N0eWxlRGVjbAogCiBuYW1lc3BhY2UgewogCi1lbnVtIGNsYXNzIFByb3BlcnR5
TmFtZVByZWZpeCB7Ci0gICAgTm9uZSwKLSAgICBFcHViLAotICAgIFBpeGVsLAotICAgIFBvcywK
LSAgICBXZWJLaXQKLX07CitlbnVtIGNsYXNzIFByb3BlcnR5TmFtZVByZWZpeCB7IE5vbmUsIEVw
dWIsIFdlYktpdCB9OwogCiB0ZW1wbGF0ZTxzaXplX3QgcHJlZml4Q1N0cmluZ0xlbmd0aD4KIHN0
YXRpYyBpbmxpbmUgYm9vbCBtYXRjaGVzQ1NTUHJvcGVydHlOYW1lUHJlZml4KGNvbnN0IFN0cmlu
Z0ltcGwmIHByb3BlcnR5TmFtZSwgY29uc3QgY2hhciAoJnByZWZpeClbcHJlZml4Q1N0cmluZ0xl
bmd0aF0pCkBAIC05MywxMiArODcsNiBAQCBzdGF0aWMgUHJvcGVydHlOYW1lUHJlZml4IHByb3Bl
cnR5TmFtZVByCiAgICAgICAgIGlmIChtYXRjaGVzQ1NTUHJvcGVydHlOYW1lUHJlZml4KHByb3Bl
cnR5TmFtZSwgImVwdWIiKSkKICAgICAgICAgICAgIHJldHVybiBQcm9wZXJ0eU5hbWVQcmVmaXg6
OkVwdWI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgJ3AnOgotICAgICAgICBpZiAobWF0Y2hl
c0NTU1Byb3BlcnR5TmFtZVByZWZpeChwcm9wZXJ0eU5hbWUsICJwb3MiKSkKLSAgICAgICAgICAg
IHJldHVybiBQcm9wZXJ0eU5hbWVQcmVmaXg6OlBvczsKLSAgICAgICAgaWYgKG1hdGNoZXNDU1NQ
cm9wZXJ0eU5hbWVQcmVmaXgocHJvcGVydHlOYW1lLCAicGl4ZWwiKSkKLSAgICAgICAgICAgIHJl
dHVybiBQcm9wZXJ0eU5hbWVQcmVmaXg6OlBpeGVsOwotICAgICAgICBicmVhazsKICAgICBjYXNl
ICd3JzoKICAgICAgICAgaWYgKG1hdGNoZXNDU1NQcm9wZXJ0eU5hbWVQcmVmaXgocHJvcGVydHlO
YW1lLCAid2Via2l0IikpCiAgICAgICAgICAgICByZXR1cm4gUHJvcGVydHlOYW1lUHJlZml4OjpX
ZWJLaXQ7CkBAIC0xMzEsMzAgKzExOSwyMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgd3JpdGVFcHVi
UHJlZml4KGNoYXIqCiAgICAgKmJ1ZmZlcisrID0gJy0nOwogfQogCi1zdHJ1Y3QgQ1NTUHJvcGVy
dHlJbmZvIHsKLSAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQ7Ci0gICAgYm9vbCBoYWRQaXhl
bE9yUG9zUHJlZml4OwotfTsKLQotc3RhdGljIENTU1Byb3BlcnR5SW5mbyBwYXJzZUphdmFTY3Jp
cHRDU1NQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKQorc3RhdGlj
IENTU1Byb3BlcnR5SUQgcGFyc2VKYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKGNvbnN0IEF0b21T
dHJpbmcmIHByb3BlcnR5TmFtZSkKIHsKLSAgICB1c2luZyBDU1NQcm9wZXJ0eUluZm9NYXAgPSBI
YXNoTWFwPFN0cmluZywgQ1NTUHJvcGVydHlJbmZvPjsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Q1NTUHJvcGVydHlJbmZvTWFwPiBwcm9wZXJ0eUluZm9DYWNoZTsKKyAgICB1c2luZyBDU1NQ
cm9wZXJ0eUlETWFwID0gSGFzaE1hcDxTdHJpbmcsIENTU1Byb3BlcnR5SUQ+OworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxDU1NQcm9wZXJ0eUlETWFwPiBwcm9wZXJ0eUlEQ2FjaGU7CiAKLSAg
ICBDU1NQcm9wZXJ0eUluZm8gcHJvcGVydHlJbmZvID0geyBDU1NQcm9wZXJ0eUludmFsaWQsIGZh
bHNlIH07CisgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlJbnZhbGlk
OwogCiAgICAgYXV0byogcHJvcGVydHlOYW1lU3RyaW5nID0gcHJvcGVydHlOYW1lLmltcGwoKTsK
ICAgICBpZiAoIXByb3BlcnR5TmFtZVN0cmluZykKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5SW5m
bzsKKyAgICAgICAgcmV0dXJuIHByb3BlcnR5SUQ7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gcHJv
cGVydHlOYW1lU3RyaW5nLT5sZW5ndGgoKTsKICAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0
dXJuIHByb3BlcnR5SW5mbzsKLQotICAgIHByb3BlcnR5SW5mbyA9IHByb3BlcnR5SW5mb0NhY2hl
LmdldCgpLmdldChwcm9wZXJ0eU5hbWVTdHJpbmcpOwotICAgIGlmIChwcm9wZXJ0eUluZm8ucHJv
cGVydHlJRCkKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5SW5mbzsKKyAgICAgICAgcmV0dXJuIHBy
b3BlcnR5SUQ7CiAKLSAgICBib29sIGhhZFBpeGVsT3JQb3NQcmVmaXggPSBmYWxzZTsKKyAgICBw
cm9wZXJ0eUlEID0gcHJvcGVydHlJRENhY2hlLmdldCgpLmdldChwcm9wZXJ0eU5hbWVTdHJpbmcp
OworICAgIGlmIChwcm9wZXJ0eUlEKQorICAgICAgICByZXR1cm4gcHJvcGVydHlJRDsKIAogICAg
IGNvbnN0ZXhwciBzaXplX3QgYnVmZmVyU2l6ZSA9IG1heENTU1Byb3BlcnR5TmFtZUxlbmd0aCAr
IDE7CiAgICAgY2hhciBidWZmZXJbYnVmZmVyU2l6ZV07CkBAIC0xNjIsMjEgKzE0MywxMiBAQCBz
dGF0aWMgQ1NTUHJvcGVydHlJbmZvIHBhcnNlSmF2YVNjcmlwdENTCiAgICAgY29uc3QgY2hhciog
bmFtZSA9IGJ1ZmZlclB0cjsKIAogICAgIHVuc2lnbmVkIGkgPSAwOwotICAgIC8vIFByZWZpeGVz
IFBpeGVsIGFuZCBQb3MgYXJlIGlnbm9yZWQuCiAgICAgLy8gUHJlZml4ZXMgQXBwbGUsIEtIVE1M
IGFuZCBXZWJraXQgYXJlIHRyYW5zcG9zZWQgdG8gIi13ZWJraXQtIi4KICAgICAvLyBUaGUgcHJl
Zml4ICJFcHViIiBiZWNvbWVzICItZXB1Yi0iLgogICAgIHN3aXRjaCAocHJvcGVydHlOYW1lUHJl
Zml4KCpwcm9wZXJ0eU5hbWVTdHJpbmcpKSB7CiAgICAgY2FzZSBQcm9wZXJ0eU5hbWVQcmVmaXg6
Ok5vbmU6CiAgICAgICAgIGlmIChpc0FTQ0lJVXBwZXIoKCpwcm9wZXJ0eU5hbWVTdHJpbmcpWzBd
KSkKLSAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eUluZm87Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgUHJvcGVydHlOYW1lUHJlZml4OjpQaXhlbDoKLSAgICAgICAgaSArPSA1OwotICAgICAg
ICBoYWRQaXhlbE9yUG9zUHJlZml4ID0gdHJ1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQ
cm9wZXJ0eU5hbWVQcmVmaXg6OlBvczoKLSAgICAgICAgaSArPSAzOwotICAgICAgICBoYWRQaXhl
bE9yUG9zUHJlZml4ID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eUlEOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFByb3BlcnR5TmFtZVByZWZpeDo6RXB1YjoKICAgICAgICAg
d3JpdGVFcHViUHJlZml4KGJ1ZmZlclB0cik7CkBAIC0xOTUsMTcgKzE2NywxNyBAQCBzdGF0aWMg
Q1NTUHJvcGVydHlJbmZvIHBhcnNlSmF2YVNjcmlwdENTCiAgICAgc2l6ZV90IGJ1ZmZlclNpemVM
ZWZ0ID0gc3RyaW5nRW5kIC0gYnVmZmVyUHRyOwogICAgIHNpemVfdCBwcm9wZXJ0eVNpemVMZWZ0
ID0gbGVuZ3RoIC0gaTsKICAgICBpZiAocHJvcGVydHlTaXplTGVmdCA+IGJ1ZmZlclNpemVMZWZ0
KQotICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOworICAgICAgICByZXR1cm4gcHJvcGVydHlJ
RDsKIAogICAgIGZvciAoOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgVUNoYXIgYyA9ICgq
cHJvcGVydHlOYW1lU3RyaW5nKVtpXTsKICAgICAgICAgaWYgKCFjIHx8ICFpc0FTQ0lJKGMpKQot
ICAgICAgICAgICAgcmV0dXJuIHByb3BlcnR5SW5mbzsgLy8gaWxsZWdhbCBjaGFyYWN0ZXIKKyAg
ICAgICAgICAgIHJldHVybiBwcm9wZXJ0eUlEOyAvLyBpbGxlZ2FsIGNoYXJhY3RlcgogICAgICAg
ICBpZiAoaXNBU0NJSVVwcGVyKGMpKSB7CiAgICAgICAgICAgICBzaXplX3QgYnVmZmVyU2l6ZUxl
ZnQgPSBzdHJpbmdFbmQgLSBidWZmZXJQdHI7CiAgICAgICAgICAgICBzaXplX3QgcHJvcGVydHlT
aXplTGVmdCA9IGxlbmd0aCAtIGkgKyAxOwogICAgICAgICAgICAgaWYgKHByb3BlcnR5U2l6ZUxl
ZnQgPiBidWZmZXJTaXplTGVmdCkKLSAgICAgICAgICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZv
OworICAgICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eUlEOwogICAgICAgICAgICAgKmJ1ZmZl
clB0cisrID0gJy0nOwogICAgICAgICAgICAgKmJ1ZmZlclB0cisrID0gdG9BU0NJSUxvd2VyVW5j
aGVja2VkKGMpOwogICAgICAgICB9IGVsc2UKQEAgLTIyMSwyMSArMTkzLDE3IEBAIHN0YXRpYyBD
U1NQcm9wZXJ0eUluZm8gcGFyc2VKYXZhU2NyaXB0Q1MKICNlbmRpZgogCiAgICAgYXV0byogaGFz
aFRhYmxlRW50cnkgPSBmaW5kUHJvcGVydHkobmFtZSwgb3V0cHV0TGVuZ3RoKTsKLSAgICBpZiAo
YXV0byBwcm9wZXJ0eUlEID0gaGFzaFRhYmxlRW50cnkgPyBoYXNoVGFibGVFbnRyeS0+aWQgOiAw
KSB7Ci0gICAgICAgIGF1dG8gaWQgPSBzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPihwcm9wZXJ0
eUlEKTsKLSAgICAgICAgcHJvcGVydHlJbmZvLmhhZFBpeGVsT3JQb3NQcmVmaXggPSBoYWRQaXhl
bE9yUG9zUHJlZml4OwotICAgICAgICBwcm9wZXJ0eUluZm8ucHJvcGVydHlJRCA9IGlkOwotICAg
ICAgICBwcm9wZXJ0eUluZm9DYWNoZS5nZXQoKS5hZGQocHJvcGVydHlOYW1lU3RyaW5nLCBwcm9w
ZXJ0eUluZm8pOwotICAgIH0KLSAgICByZXR1cm4gcHJvcGVydHlJbmZvOworICAgIGlmIChhdXRv
IHByb3BlcnR5SUQgPSBoYXNoVGFibGVFbnRyeSA/IGhhc2hUYWJsZUVudHJ5LT5pZCA6IDApCisg
ICAgICAgIHByb3BlcnR5SURDYWNoZS5nZXQoKS5hZGQocHJvcGVydHlOYW1lU3RyaW5nLCBzdGF0
aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPihwcm9wZXJ0eUlEKSk7CisgICAgcmV0dXJuIHByb3BlcnR5
SUQ7CiB9CiAKLXN0YXRpYyBDU1NQcm9wZXJ0eUluZm8gcHJvcGVydHlJbmZvRnJvbUphdmFTY3Jp
cHRDU1NQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lLCBjb25zdCBT
ZXR0aW5ncyogc2V0dGluZ3MpCitzdGF0aWMgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUluZm9Gcm9t
SmF2YVNjcmlwdENTU1Byb3BlcnR5TmFtZShjb25zdCBBdG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUs
IGNvbnN0IFNldHRpbmdzKiBzZXR0aW5ncykKIHsKICAgICBhdXRvIHByb3BlcnR5SW5mbyA9IHBh
cnNlSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUpOwogICAgIGF1dG8gaWQg
PSBwcm9wZXJ0eUluZm8ucHJvcGVydHlJRDsKICAgICBpZiAoIWlzRW5hYmxlZENTU1Byb3BlcnR5
KGlkKSB8fCAhaXNDU1NQcm9wZXJ0eUVuYWJsZWRCeVNldHRpbmdzKGlkLCBzZXR0aW5ncykpCi0g
ICAgICAgIHJldHVybiB7IENTU1Byb3BlcnR5SW52YWxpZCwgZmFsc2UgfTsKKyAgICAgICAgcmV0
dXJuIENTU1Byb3BlcnR5SW52YWxpZDsKICAgICByZXR1cm4gcHJvcGVydHlJbmZvOwogfQogCkBA
IC0yNDMsNyArMjExLDggQEAgc3RhdGljIENTU1Byb3BlcnR5SW5mbyBwcm9wZXJ0eUluZm9Gcm9t
SgogCiBDU1NQcm9wZXJ0eUlEIENTU1N0eWxlRGVjbGFyYXRpb246OmdldENTU1Byb3BlcnR5SURG
cm9tSmF2YVNjcmlwdFByb3BlcnR5TmFtZShjb25zdCBBdG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUp
CiB7Ci0gICAgcmV0dXJuIHByb3BlcnR5SW5mb0Zyb21KYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1l
KHByb3BlcnR5TmFtZSwgbnVsbHB0cikucHJvcGVydHlJRDsKKyAgICAvLyBGSVhNRTogVGhpcyBp
cyBnb2luZyB0byByZXR1cm4gaW5jb3JyZWN0IHJlc3VsdHMgZm9yIGNzcyBwcm9wZXJ0aWVzIGRp
c2FibGVkIGJ5IFNldHRpbmdzLgorICAgIHJldHVybiBwcm9wZXJ0eUlERnJvbUphdmFTY3JpcHRD
U1NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lLCBudWxscHRyKTsKIH0KIAogY29uc3QgU2V0dGlu
Z3MqIENTU1N0eWxlRGVjbGFyYXRpb246OnNldHRpbmdzKCkgY29uc3QKQEAgLTI1MywzOSArMjIy
LDI5IEBAIGNvbnN0IFNldHRpbmdzKiBDU1NTdHlsZURlY2xhcmF0aW9uOjpzZXQKIAogT3B0aW9u
YWw8VmFyaWFudDxTdHJpbmcsIGRvdWJsZT4+IENTU1N0eWxlRGVjbGFyYXRpb246Om5hbWVkSXRl
bShjb25zdCBBdG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgYXV0byBwcm9wZXJ0eUlu
Zm8gPSBwcm9wZXJ0eUluZm9Gcm9tSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFtZShwcm9wZXJ0eU5h
bWUsIHNldHRpbmdzKCkpOwotICAgIGlmICghcHJvcGVydHlJbmZvLnByb3BlcnR5SUQpCisgICAg
Ly8gRklYTUU6IFRoaXMgaXMgZ29pbmcgdG8gcmV0dXJuIGluY29ycmVjdCByZXN1bHRzIGZvciBj
c3MgcHJvcGVydGllcyBkaXNhYmxlZCBieSBTZXR0aW5ncyBpZiBzZXR0aW5ncygpIHJldHVybnMg
bnVsbHB0ci4KKyAgICBhdXRvIHByb3BlcnR5SUQgPSBwcm9wZXJ0eUlERnJvbUphdmFTY3JpcHRD
U1NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lLCBzZXR0aW5ncygpKTsKKyAgICBpZiAoIXByb3Bl
cnR5SUQpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBhdXRvIHZhbHVlID0g
Z2V0UHJvcGVydHlDU1NWYWx1ZUludGVybmFsKHByb3BlcnR5SW5mby5wcm9wZXJ0eUlEKTsKLSAg
ICBpZiAoIXZhbHVlKSB7Ci0gICAgICAgIC8vIElmIHRoZSBwcm9wZXJ0eSBpcyBhIHNob3J0aGFu
ZCBwcm9wZXJ0eSAoc3VjaCBhcyAicGFkZGluZyIpLCBpdCBjYW4gb25seSBiZSBhY2Nlc3NlZCB1
c2luZyBnZXRQcm9wZXJ0eVZhbHVlLgotICAgICAgICByZXR1cm4gVmFyaWFudDxTdHJpbmcsIGRv
dWJsZT4geyBnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwocHJvcGVydHlJbmZvLnByb3BlcnR5SUQp
IH07Ci0gICAgfQotICAgIAotICAgIGlmIChwcm9wZXJ0eUluZm8uaGFkUGl4ZWxPclBvc1ByZWZp
eCAmJiBpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKSkgewotICAgICAgICAvLyBDYWxsIHRo
aXMgdmVyc2lvbiBvZiB0aGUgZ2V0dGVyIHNvIHRoYXQsIGUuZy4sIHBpeGVsVG9wIHJldHVybnMg
dG9wIGFzIGEgbnVtYmVyCi0gICAgICAgIC8vIGluIHBpeGVsIHVuaXRzIGFuZCBwb3NUb3Agc2hv
dWxkIGRvZXMgdGhlIHNhbWUgX2lmXyB0aGlzIGlzIGEgcG9zaXRpb25lZCBlbGVtZW50LgotICAg
ICAgICAvLyBGSVhNRTogSWYgbm90IGEgcG9zaXRpb25lZCBlbGVtZW50LCBNU0lFIGRvY3VtZW50
YXRpb24gc2F5cyBwb3NUb3Agc2hvdWxkIHJldHVybiAwOyB0aGlzIHJ1bGUgaXMgbm90IGltcGxl
bWVudGVkLgotICAgICAgICByZXR1cm4gVmFyaWFudDxTdHJpbmcsIGRvdWJsZT4geyBkb3duY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5mbG9hdFZhbHVlKENTU1VuaXRUeXBlOjpDU1Nf
UFgpIH07Ci0gICAgfQorICAgIGlmIChhdXRvIHZhbHVlID0gZ2V0UHJvcGVydHlDU1NWYWx1ZUlu
dGVybmFsKHByb3BlcnR5SUQpKQorICAgICAgICByZXR1cm4gVmFyaWFudDxTdHJpbmcsIGRvdWJs
ZT4geyB2YWx1ZS0+Y3NzVGV4dCgpIH07CiAKLSAgICByZXR1cm4gVmFyaWFudDxTdHJpbmcsIGRv
dWJsZT4geyB2YWx1ZS0+Y3NzVGV4dCgpIH07CisgICAgLy8gSWYgdGhlIHByb3BlcnR5IGlzIGEg
c2hvcnRoYW5kIHByb3BlcnR5IChzdWNoIGFzICJwYWRkaW5nIiksIGl0IGNhbiBvbmx5IGJlIGFj
Y2Vzc2VkIHVzaW5nIGdldFByb3BlcnR5VmFsdWUuCisgICAgcmV0dXJuIFZhcmlhbnQ8U3RyaW5n
LCBkb3VibGU+IHsgZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsKHByb3BlcnR5SUQpIH07CiB9CiAK
IEV4Y2VwdGlvbk9yPHZvaWQ+IENTU1N0eWxlRGVjbGFyYXRpb246OnNldE5hbWVkSXRlbShjb25z
dCBBdG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIFN0cmluZyB2YWx1ZSwgYm9vbCYgcHJvcGVydHlT
dXBwb3J0ZWQpCiB7Ci0gICAgYXV0byBwcm9wZXJ0eUluZm8gPSBwcm9wZXJ0eUluZm9Gcm9tSmF2
YVNjcmlwdENTU1Byb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUsIHNldHRpbmdzKCkpOwotICAgIGlm
ICghcHJvcGVydHlJbmZvLnByb3BlcnR5SUQpIHsKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBnb2lu
ZyB0byByZXR1cm4gaW5jb3JyZWN0IHJlc3VsdHMgZm9yIGNzcyBwcm9wZXJ0aWVzIGRpc2FibGVk
IGJ5IFNldHRpbmdzIGlmIHNldHRpbmdzKCkgcmV0dXJucyBudWxscHRyLgorICAgIGF1dG8gcHJv
cGVydHlJRCA9IHByb3BlcnR5SURGcm9tSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFtZShwcm9wZXJ0
eU5hbWUsIHNldHRpbmdzKCkpOworICAgIGlmICghcHJvcGVydHlJRCkgewogICAgICAgICBwcm9w
ZXJ0eVN1cHBvcnRlZCA9IGZhbHNlOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAg
IHByb3BlcnR5U3VwcG9ydGVkID0gdHJ1ZTsKIAotICAgIGlmIChwcm9wZXJ0eUluZm8uaGFkUGl4
ZWxPclBvc1ByZWZpeCkKLSAgICAgICAgdmFsdWUuYXBwZW5kKCJweCIpOwotCiAgICAgYm9vbCBp
bXBvcnRhbnQgPSBmYWxzZTsKICAgICBpZiAoRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzaG91
bGRSZXNwZWN0UHJpb3JpdHlJbkNTU0F0dHJpYnV0ZVNldHRlcnMoKSkgewogICAgICAgICBhdXRv
IGltcG9ydGFudEluZGV4ID0gdmFsdWUuZmluZElnbm9yaW5nQVNDSUlDYXNlKCIhaW1wb3J0YW50
Iik7CkBAIC0yOTUsNyArMjU0LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ1NTU3R5bGVEZWNsYXJh
dGlvbjo6cwogICAgICAgICB9CiAgICAgfQogCi0gICAgYXV0byBzZXRQcm9wZXJ0eUludGVybmFs
UmVzdWx0ID0gc2V0UHJvcGVydHlJbnRlcm5hbChwcm9wZXJ0eUluZm8ucHJvcGVydHlJRCwgdmFs
dWUsIGltcG9ydGFudCk7CisgICAgYXV0byBzZXRQcm9wZXJ0eUludGVybmFsUmVzdWx0ID0gc2V0
UHJvcGVydHlJbnRlcm5hbChwcm9wZXJ0eUlELCB2YWx1ZSwgaW1wb3J0YW50KTsKICAgICBpZiAo
c2V0UHJvcGVydHlJbnRlcm5hbFJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJu
IHNldFByb3BlcnR5SW50ZXJuYWxSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCkluZGV4OiBT
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzM2MDMpCisrKyBTb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNCBAQAor
MjAyMS0wMi0yMyAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgU2lt
cGxpZnkgRHVtcFJlbmRlclRyZWUgV2ViUHJlZmVyZW5jZXMgcmVzZXQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODAyNAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzA3NjQ1Njg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoV2ViUHJl
ZmVyZW5jZXNQcml2YXRlOjpXZWJQcmVmZXJlbmNlc1ByaXZhdGUpOgorICAgICAgICAoLVtXZWJQ
cmVmZXJlbmNlcyBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2Vz
IF92YWx1ZUZvcktleTpdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgX3NldFN0cmluZ1Zh
bHVlOmZvcktleTpdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgX3NldFN0cmluZ0FycmF5
VmFsdWVGb3JLZXk6Zm9yS2V5Ol0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBfc2V0SW50
ZWdlclZhbHVlOmZvcktleTpdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgX3NldFVuc2ln
bmVkSW50VmFsdWU6Zm9yS2V5Ol0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBfc2V0Rmxv
YXRWYWx1ZTpmb3JLZXk6XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIF9zZXRCb29sVmFs
dWU6Zm9yS2V5Ol0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBfc2V0TG9uZ0xvbmdWYWx1
ZTpmb3JLZXk6XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIF9zZXRVbnNpZ25lZExvbmdM
b25nVmFsdWU6Zm9yS2V5Ol0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBfc3RhcnRCYXRj
aGluZ1VwZGF0ZXNdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgX3N0b3BCYXRjaGluZ1Vw
ZGF0ZXNdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgX2JhdGNoVXBkYXRlUHJlZmVyZW5j
ZXNJbkJsb2NrOl0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBfcmVzZXRGb3JUZXN0aW5n
XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIF9wb3N0UHJlZmVyZW5jZXNDaGFuZ2VkTm90
aWZpY2F0aW9uXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIF9wb3N0UHJlZmVyZW5jZXND
aGFuZ2VkQVBJTm90aWZpY2F0aW9uXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIF9pbnZh
bGlkYXRlQ2FjaGVkUHJlZmVyZW5jZXNdKToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzUHJpdmF0
ZTo6fldlYlByZWZlcmVuY2VzUHJpdmF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViVmlldy9X
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgQWRkIG5ldyBoZWxwZXJzIGZvciB0ZXN0
aW5nIHRvIHJlc2V0IGFuZCBiYXRjaCB1cGRhdGVzLgorCiAyMDIxLTAyLTI1ICBUcnVpdHQgU2F2
ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5n
IHIyNzM0NjIuCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXMubW0JKHJldmlzaW9uIDI3MzYwMykKKysrIFNvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTU0LDYg
KzU0LDcgQEAKICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3
dGYvQ29tcGlsZXIuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYv
T3B0aW9uU2V0Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvUnVu
TG9vcC5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29h
Lmg+CkBAIC0xOTEsMzYgKzE5MiwzMiBAQCArIChOU1N0cmluZyAqKV9jb25jYXRlbmF0ZUtleVdp
dGhJQkNyZWF0CiArIChOU1N0cmluZyAqKV9JQkNyZWF0b3JJRDsKIEBlbmQKIAorZW51bSBjbGFz
cyBVcGRhdGVBZnRlckJhdGNoVHlwZSA6IHVpbnQ4X3QgeworICAgIEFQSSAgICAgICAgID0gMSA8
PCAwLAorICAgIEludGVybmFsICAgID0gMSA8PCAxCit9OworCiBzdHJ1Y3QgV2ViUHJlZmVyZW5j
ZXNQcml2YXRlCiB7CiBwdWJsaWM6CiAgICAgV2ViUHJlZmVyZW5jZXNQcml2YXRlKCkKLSAgICA6
IGluUHJpdmF0ZUJyb3dzaW5nKE5PKQotICAgICwgYXV0b3NhdmVzKE5PKQotICAgICwgYXV0b21h
dGljYWxseURldGVjdHNDYWNoZU1vZGVsKE5PKQotICAgICwgbnVtV2ViVmlld3MoMCkKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgICwgcmVhZFdyaXRlUXVldWUoZGlzcGF0Y2hfcXVldWVf
Y3JlYXRlKCJjb20uYXBwbGUuV2ViUHJlZmVyZW5jZXMuUmVhZFdyaXRlUXVldWUiLCBESVNQQVRD
SF9RVUVVRV9DT05DVVJSRU5UKSkKKyAgICAgICAgOiByZWFkV3JpdGVRdWV1ZSB7IGFkb3B0TlMo
ZGlzcGF0Y2hfcXVldWVfY3JlYXRlKCJjb20uYXBwbGUuV2ViUHJlZmVyZW5jZXMuUmVhZFdyaXRl
UXVldWUiLCBESVNQQVRDSF9RVUVVRV9DT05DVVJSRU5UKSkgfQogI2VuZGlmCiAgICAgewogICAg
IH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgfldlYlByZWZlcmVuY2VzUHJpdmF0
ZSgpCi0gICAgewotICAgICAgICBkaXNwYXRjaF9yZWxlYXNlKHJlYWRXcml0ZVF1ZXVlKTsKLSAg
ICB9CisgICAgUmV0YWluUHRyPGRpc3BhdGNoX3F1ZXVlX3Q+IHJlYWRXcml0ZVF1ZXVlOwogI2Vu
ZGlmCi0KICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gdmFsdWVzOwotICAgIEJP
T0wgaW5Qcml2YXRlQnJvd3Npbmc7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBpZGVudGlmaWVy
OwotICAgIEJPT0wgYXV0b3NhdmVzOwotICAgIEJPT0wgYXV0b21hdGljYWxseURldGVjdHNDYWNo
ZU1vZGVsOwotICAgIHVuc2lnbmVkIG51bVdlYlZpZXdzOwotI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCi0gICAgZGlzcGF0Y2hfcXVldWVfdCByZWFkV3JpdGVRdWV1ZTsKLSNlbmRpZgorICAgIEJP
T0wgaW5Qcml2YXRlQnJvd3NpbmcgeyBOTyB9OworICAgIEJPT0wgYXV0b3NhdmVzIHsgTk8gfTsK
KyAgICBCT09MIGF1dG9tYXRpY2FsbHlEZXRlY3RzQ2FjaGVNb2RlbCB7IE5PIH07CisgICAgdW5z
aWduZWQgbnVtV2ViVmlld3MgeyAwIH07CisgICAgdW5zaWduZWQgdXBkYXRlQmF0Y2hDb3VudCB7
IDAgfTsKKyAgICBPcHRpb25TZXQ8VXBkYXRlQWZ0ZXJCYXRjaFR5cGU+IHVwZGF0ZUFmdGVyQmF0
Y2hUeXBlOwogfTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0zNDUsNyArMzQyLDcg
QEAgLSAodm9pZCllbmNvZGVXaXRoQ29kZXI6KE5TQ29kZXIgKillbmNvZAogICAgIGlmIChbZW5j
b2RlciBhbGxvd3NLZXllZENvZGluZ10pewogICAgICAgICBbZW5jb2RlciBlbmNvZGVPYmplY3Q6
X3ByaXZhdGUtPmlkZW50aWZpZXIuZ2V0KCkgZm9yS2V5OkAiSWRlbnRpZmllciJdOwogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIGRpc3BhdGNoX3N5bmMoX3ByaXZhdGUtPnJlYWRX
cml0ZVF1ZXVlLCBeeworICAgICAgICBkaXNwYXRjaF9zeW5jKF9wcml2YXRlLT5yZWFkV3JpdGVR
dWV1ZS5nZXQoKSwgXnsKICNlbmRpZgogICAgICAgICBbZW5jb2RlciBlbmNvZGVPYmplY3Q6X3By
aXZhdGUtPnZhbHVlcy5nZXQoKSBmb3JLZXk6QCJWYWx1ZXMiXTsKICAgICAgICAgTE9HIChFbmNv
ZGluZywgIklkZW50aWZpZXIgPSAlQCwgVmFsdWVzID0gJUBcbiIsIF9wcml2YXRlLT5pZGVudGlm
aWVyLmdldCgpLCBfcHJpdmF0ZS0+dmFsdWVzLmdldCgpKTsKQEAgLTM1OCw3ICszNTUsNyBAQCAt
ICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWVuY29kCiAgICAgICAgIFtlbmNvZGVy
IGVuY29kZVZhbHVlT2ZPYmpDVHlwZTpAZW5jb2RlKGludCkgYXQ6JnZlcnNpb25dOwogICAgICAg
ICBbZW5jb2RlciBlbmNvZGVPYmplY3Q6X3ByaXZhdGUtPmlkZW50aWZpZXIuZ2V0KCldOwogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIGRpc3BhdGNoX3N5bmMoX3ByaXZhdGUtPnJl
YWRXcml0ZVF1ZXVlLCBeeworICAgICAgICBkaXNwYXRjaF9zeW5jKF9wcml2YXRlLT5yZWFkV3Jp
dGVRdWV1ZS5nZXQoKSwgXnsKICNlbmRpZgogICAgICAgICBbZW5jb2RlciBlbmNvZGVPYmplY3Q6
X3ByaXZhdGUtPnZhbHVlcy5nZXQoKV07CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTQ2
Nyw3ICs0NjQsNyBAQCAtIChpZClfdmFsdWVGb3JLZXk6KE5TU3RyaW5nICopa2V5CiAgICAgTlNT
dHJpbmcgKl9rZXkgPSBLRVkoa2V5KTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIF9f
YmxvY2sgaWQgbyA9IG5pbDsKLSAgICBkaXNwYXRjaF9zeW5jKF9wcml2YXRlLT5yZWFkV3JpdGVR
dWV1ZSwgXnsKKyAgICBkaXNwYXRjaF9zeW5jKF9wcml2YXRlLT5yZWFkV3JpdGVRdWV1ZS5nZXQo
KSwgXnsKICAgICAgICAgbyA9IFtfcHJpdmF0ZS0+dmFsdWVzLmdldCgpIG9iamVjdEZvcktleTpf
a2V5XTsKICAgICB9KTsKICNlbHNlCkBAIC00OTMsNyArNDkwLDcgQEAgLSAodm9pZClfc2V0U3Ry
aW5nVmFsdWU6KE5TU3RyaW5nICopdmFsdQogICAgICAgICByZXR1cm47CiAgICAgTlNTdHJpbmcg
Kl9rZXkgPSBLRVkoa2V5KTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGRpc3BhdGNo
X2JhcnJpZXJfc3luYyhfcHJpdmF0ZS0+cmVhZFdyaXRlUXVldWUsIF57CisgICAgZGlzcGF0Y2hf
YmFycmllcl9zeW5jKF9wcml2YXRlLT5yZWFkV3JpdGVRdWV1ZS5nZXQoKSwgXnsKICNlbmRpZgog
ICAgIFtfcHJpdmF0ZS0+dmFsdWVzLmdldCgpIHNldE9iamVjdDp2YWx1ZSBmb3JLZXk6X2tleV07
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTUyMyw3ICs1MjAsNyBAQCAtICh2b2lkKV9z
ZXRTdHJpbmdBcnJheVZhbHVlRm9yS2V5OihOU0FyCiB7CiAgICAgTlNTdHJpbmcgKl9rZXkgPSBL
RVkoa2V5KTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGRpc3BhdGNoX2JhcnJpZXJf
c3luYyhfcHJpdmF0ZS0+cmVhZFdyaXRlUXVldWUsIF57CisgICAgZGlzcGF0Y2hfYmFycmllcl9z
eW5jKF9wcml2YXRlLT5yZWFkV3JpdGVRdWV1ZS5nZXQoKSwgXnsKICNlbmRpZgogICAgICAgICBb
X3ByaXZhdGUtPnZhbHVlcy5nZXQoKSBzZXRPYmplY3Q6dmFsdWUgZm9yS2V5Ol9rZXldOwogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC01NDYsNyArNTQzLDcgQEAgLSAodm9pZClfc2V0SW50
ZWdlclZhbHVlOihpbnQpdmFsdWUgZm9ySwogICAgICAgICByZXR1cm47CiAgICAgTlNTdHJpbmcg
Kl9rZXkgPSBLRVkoa2V5KTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGRpc3BhdGNo
X2JhcnJpZXJfc3luYyhfcHJpdmF0ZS0+cmVhZFdyaXRlUXVldWUsIF57CisgICAgZGlzcGF0Y2hf
YmFycmllcl9zeW5jKF9wcml2YXRlLT5yZWFkV3JpdGVRdWV1ZS5nZXQoKSwgXnsKICNlbmRpZgog
ICAgIFtfcHJpdmF0ZS0+dmFsdWVzLmdldCgpIHNldE9iamVjdDpAKHZhbHVlKSBmb3JLZXk6X2tl
eV07CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTU2OSw3ICs1NjYsNyBAQCAtICh2b2lk
KV9zZXRVbnNpZ25lZEludFZhbHVlOih1bnNpZ25lZCBpCiAgICAgICAgIHJldHVybjsKICAgICBO
U1N0cmluZyAqX2tleSA9IEtFWShrZXkpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
ZGlzcGF0Y2hfYmFycmllcl9zeW5jKF9wcml2YXRlLT5yZWFkV3JpdGVRdWV1ZSwgXnsKKyAgICBk
aXNwYXRjaF9iYXJyaWVyX3N5bmMoX3ByaXZhdGUtPnJlYWRXcml0ZVF1ZXVlLmdldCgpLCBeewog
I2VuZGlmCiAgICAgW19wcml2YXRlLT52YWx1ZXMuZ2V0KCkgc2V0T2JqZWN0OkAodmFsdWUpIGZv
cktleTpfa2V5XTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNTkyLDcgKzU4OSw3IEBA
IC0gKHZvaWQpX3NldEZsb2F0VmFsdWU6KGZsb2F0KXZhbHVlIGZvcksKICAgICAgICAgcmV0dXJu
OwogICAgIE5TU3RyaW5nICpfa2V5ID0gS0VZKGtleSk7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBkaXNwYXRjaF9iYXJyaWVyX3N5bmMoX3ByaXZhdGUtPnJlYWRXcml0ZVF1ZXVlLCBe
eworICAgIGRpc3BhdGNoX2JhcnJpZXJfc3luYyhfcHJpdmF0ZS0+cmVhZFdyaXRlUXVldWUuZ2V0
KCksIF57CiAjZW5kaWYKICAgICBbX3ByaXZhdGUtPnZhbHVlcy5nZXQoKSBzZXRPYmplY3Q6QCh2
YWx1ZSkgZm9yS2V5Ol9rZXldOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC02MTQsNyAr
NjExLDcgQEAgLSAodm9pZClfc2V0Qm9vbFZhbHVlOihCT09MKXZhbHVlIGZvcktleQogICAgICAg
ICByZXR1cm47CiAgICAgTlNTdHJpbmcgKl9rZXkgPSBLRVkoa2V5KTsKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQotICAgIGRpc3BhdGNoX2JhcnJpZXJfc3luYyhfcHJpdmF0ZS0+cmVhZFdyaXRl
UXVldWUsIF57CisgICAgZGlzcGF0Y2hfYmFycmllcl9zeW5jKF9wcml2YXRlLT5yZWFkV3JpdGVR
dWV1ZS5nZXQoKSwgXnsKICNlbmRpZgogICAgIFtfcHJpdmF0ZS0+dmFsdWVzLmdldCgpIHNldE9i
amVjdDpAKHZhbHVlKSBmb3JLZXk6X2tleV07CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAg
LTYzNyw3ICs2MzQsNyBAQCAtICh2b2lkKV9zZXRMb25nTG9uZ1ZhbHVlOihsb25nIGxvbmcpdmFs
CiAgICAgICAgIHJldHVybjsKICAgICBOU1N0cmluZyAqX2tleSA9IEtFWShrZXkpOwogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCi0gICAgZGlzcGF0Y2hfYmFycmllcl9zeW5jKF9wcml2YXRlLT5y
ZWFkV3JpdGVRdWV1ZSwgXnsKKyAgICBkaXNwYXRjaF9iYXJyaWVyX3N5bmMoX3ByaXZhdGUtPnJl
YWRXcml0ZVF1ZXVlLmdldCgpLCBeewogI2VuZGlmCiAgICAgW19wcml2YXRlLT52YWx1ZXMuZ2V0
KCkgc2V0T2JqZWN0OkAodmFsdWUpIGZvcktleTpfa2V5XTsKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQpAQCAtNjYwLDcgKzY1Nyw3IEBAIC0gKHZvaWQpX3NldFVuc2lnbmVkTG9uZ0xvbmdWYWx1
ZToodW5zaWcKICAgICAgICAgcmV0dXJuOwogICAgIE5TU3RyaW5nICpfa2V5ID0gS0VZKGtleSk7
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBkaXNwYXRjaF9iYXJyaWVyX3N5bmMoX3By
aXZhdGUtPnJlYWRXcml0ZVF1ZXVlLCBeeworICAgIGRpc3BhdGNoX2JhcnJpZXJfc3luYyhfcHJp
dmF0ZS0+cmVhZFdyaXRlUXVldWUuZ2V0KCksIF57CiAjZW5kaWYKICAgICBbX3ByaXZhdGUtPnZh
bHVlcy5nZXQoKSBzZXRPYmplY3Q6QCh2YWx1ZSkgZm9yS2V5Ol9rZXldOwogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCkBAIC0xNjIwLDYgKzE2MTcsNDQgQEAgKyAodm9pZClfcmVtb3ZlUmVmZXJl
bmNlRm9ySWRlbnRpZmllcjooTgogICAgICAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVj
dG9yKF9jaGVja0xhc3RSZWZlcmVuY2VGb3JJZGVudGlmaWVyOikgd2l0aE9iamVjdDpbc2VsZiBf
Y29uY2F0ZW5hdGVLZXlXaXRoSUJDcmVhdG9ySUQ6aWRlbnRdIGFmdGVyRGVsYXk6MC4xXTsKIH0K
IAorLSAodm9pZClfc3RhcnRCYXRjaGluZ1VwZGF0ZXMKK3sKKyAgICBpZiAoIV9wcml2YXRlLT51
cGRhdGVCYXRjaENvdW50KQorICAgICAgICBfcHJpdmF0ZS0+dXBkYXRlQWZ0ZXJCYXRjaFR5cGUg
PSB7IH07CisKKyAgICBfcHJpdmF0ZS0+dXBkYXRlQmF0Y2hDb3VudCsrOworfQorCistICh2b2lk
KV9zdG9wQmF0Y2hpbmdVcGRhdGVzCit7CisgICAgQVNTRVJUKF9wcml2YXRlLT51cGRhdGVCYXRj
aENvdW50IDw9IDApOworICAgIGlmIChfcHJpdmF0ZS0+dXBkYXRlQmF0Y2hDb3VudCA8PSAwKQor
ICAgICAgICBOU0xvZyhAIkVSUk9SOiBVbmJhbGFuY2VkIF9zdGFydEJhdGNoaW5nVXBkYXRlcy9f
c3RvcEJhdGNoaW5nVXBkYXRlcy4iKTsKKworICAgIF9wcml2YXRlLT51cGRhdGVCYXRjaENvdW50
LS07CisgICAgaWYgKCFfcHJpdmF0ZS0+dXBkYXRlQmF0Y2hDb3VudCkgeworICAgICAgICBpZiAo
X3ByaXZhdGUtPnVwZGF0ZUFmdGVyQmF0Y2hUeXBlLmNvbnRhaW5zKFVwZGF0ZUFmdGVyQmF0Y2hU
eXBlOjpJbnRlcm5hbCkpIHsKKyAgICAgICAgICAgIGlmIChfcHJpdmF0ZS0+dXBkYXRlQWZ0ZXJC
YXRjaFR5cGUuY29udGFpbnMoVXBkYXRlQWZ0ZXJCYXRjaFR5cGU6OkFQSSkpCisgICAgICAgICAg
ICAgICAgW3NlbGYgX3Bvc3RQcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb25dOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIFtzZWxmIF9wb3N0UHJlZmVyZW5jZXNDaGFuZ2Vk
QVBJTm90aWZpY2F0aW9uXTsKKyAgICAgICAgfQorICAgIH0KK30KKworLSAodm9pZClfYmF0Y2hV
cGRhdGVQcmVmZXJlbmNlc0luQmxvY2s6KHZvaWQgKF4pKFdlYlByZWZlcmVuY2VzICopKWJsb2Nr
Cit7CisgICAgW3NlbGYgX3N0YXJ0QmF0Y2hpbmdVcGRhdGVzXTsKKyAgICBibG9jayhzZWxmKTsK
KyAgICBbc2VsZiBfc3RvcEJhdGNoaW5nVXBkYXRlc107Cit9CisKKy0gKHZvaWQpX3Jlc2V0Rm9y
VGVzdGluZworeworICAgIF9wcml2YXRlLT52YWx1ZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGlj
dGlvbmFyeSBhbGxvY10gaW5pdF0pOworICAgIFtzZWxmIF9wb3N0UHJlZmVyZW5jZXNDaGFuZ2Vk
Tm90aWZpY2F0aW9uXTsKK30KKwogLSAodm9pZClfcG9zdFByZWZlcmVuY2VzQ2hhbmdlZE5vdGlm
aWNhdGlvbgogewogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTYyOSw2ICsxNjY0LDEx
IEBAIC0gKHZvaWQpX3Bvc3RQcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXQKICAgICB9CiAjZW5k
aWYKIAorICAgIGlmIChfcHJpdmF0ZS0+dXBkYXRlQmF0Y2hDb3VudCkgeworICAgICAgICBfcHJp
dmF0ZS0+dXBkYXRlQWZ0ZXJCYXRjaFR5cGUuYWRkKHsgVXBkYXRlQWZ0ZXJCYXRjaFR5cGU6OkFQ
SSwgVXBkYXRlQWZ0ZXJCYXRjaFR5cGU6OkludGVybmFsIH0pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90
aWZpY2F0aW9uTmFtZTpXZWJQcmVmZXJlbmNlc0NoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBv
YmplY3Q6c2VsZiB1c2VySW5mbzpuaWxdOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6V2ViUHJlZmVyZW5jZXNDaGFuZ2VkTm90
aWZpY2F0aW9uIG9iamVjdDpzZWxmIHVzZXJJbmZvOm5pbF07CiB9CkBAIC0xNjQwLDYgKzE2ODAs
MTEgQEAgLSAodm9pZClfcG9zdFByZWZlcmVuY2VzQ2hhbmdlZEFQSU5vdGlmaQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCisgICAgaWYgKF9wcml2YXRlLT51cGRhdGVCYXRjaENvdW50KSB7Cisg
ICAgICAgIF9wcml2YXRlLT51cGRhdGVBZnRlckJhdGNoVHlwZS5hZGQoeyBVcGRhdGVBZnRlckJh
dGNoVHlwZTo6SW50ZXJuYWwgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBbW05T
Tm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOldl
YlByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbiBvYmplY3Q6c2VsZiB1c2VySW5mbzpuaWxd
OwogfQogCkBAIC0yMjIxLDcgKzIyNjYsNyBAQCAtICh2b2lkKXNldFBhZ2VDYWNoZVN1cHBvcnRz
UGx1Z2luczooQk9PCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIC0gKHZvaWQpX2ludmFsaWRh
dGVDYWNoZWRQcmVmZXJlbmNlcwogewotICAgIGRpc3BhdGNoX2JhcnJpZXJfc3luYyhfcHJpdmF0
ZS0+cmVhZFdyaXRlUXVldWUsIF57CisgICAgZGlzcGF0Y2hfYmFycmllcl9zeW5jKF9wcml2YXRl
LT5yZWFkV3JpdGVRdWV1ZS5nZXQoKSwgXnsKICAgICAgICAgaWYgKF9wcml2YXRlLT52YWx1ZXMp
CiAgICAgICAgICAgICBfcHJpdmF0ZS0+dmFsdWVzID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rp
b25hcnkgYWxsb2NdIGluaXRdKTsKICAgICB9KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAkocmV2aXNp
b24gMjczNjAzKQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtODYsNiArODYsMTIgQEAgZXh0ZXJuIE5T
U3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hlTW9kZQogCiBAaW50ZXJmYWNlIFdlYlByZWZlcmVu
Y2VzIChXZWJQcml2YXRlKQogCistICh2b2lkKV9zdGFydEJhdGNoaW5nVXBkYXRlczsKKy0gKHZv
aWQpX3N0b3BCYXRjaGluZ1VwZGF0ZXM7CistICh2b2lkKV9iYXRjaFVwZGF0ZVByZWZlcmVuY2Vz
SW5CbG9jazoodm9pZCAoXikoV2ViUHJlZmVyZW5jZXMgKikpYmxvY2s7CisKKy0gKHZvaWQpX3Jl
c2V0Rm9yVGVzdGluZzsKKwogLSAodm9pZClfcG9zdFByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNh
dGlvbjsKIC0gKHZvaWQpX3Bvc3RQcmVmZXJlbmNlc0NoYW5nZWRBUElOb3RpZmljYXRpb247CiAr
IChXZWJQcmVmZXJlbmNlcyAqKV9nZXRJbnN0YW5jZUZvcklkZW50aWZpZXI6KE5TU3RyaW5nICop
aWRlbnRpZmllcjsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MzYwMykKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIxLTAyLTI2ICBTYW0g
V2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciAn
cGl4ZWwnIGFuZCAncG9zJyBDU1NPTSBwcmVmaXhlcworICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk3MTIKKworICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgKiBmYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzcy1w
cm9wZXJ0aWVzLWNhc2Utc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAqIGZhc3QvZG9t
L0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXByb3BlcnRpZXMtY2FzZS1zZW5zaXRpdmUuaHRtbDoK
KyAgICAgICAgVXBkYXRlIHRlc3QgdG8gcmVmbGVjdCByZW1vdmFsIG9mIHBvcy9waXhlbCBwcmVm
aXhlcy4KKwogMjAyMS0wMi0yNiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtMRkNdW0NvdmVyYWdlXSBEbyBub3QgYmFpbCBvdXQgb24gdGV4dCB1bmRlcmxpbmUg
cG9zaXRpb24gd2hlbiB0ZXh0LWRlY29yYXRpb24gaXMgJ25vbmUnCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzcy1wcm9wZXJ0aWVzLWNhc2Utc2Vuc2l0
aXZlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NT
dHlsZURlY2xhcmF0aW9uL2Nzcy1wcm9wZXJ0aWVzLWNhc2Utc2Vuc2l0aXZlLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMjczNjAzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNs
YXJhdGlvbi9jc3MtcHJvcGVydGllcy1jYXNlLXNlbnNpdGl2ZS1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTMsMjUgKzMsOCBAQCBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYWNjZXNzIHRv
IENTUyBwcm9wCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotbm9ybWFsIGNhc2VzCi0K
IFBBU1MgZWxlbWVudC5zdHlsZS56SW5kZXggaXMgJzEnCiBQQVNTIGVsZW1lbnQuc3R5bGUuWklu
ZGV4IGlzIHVuZGVmaW5lZC4KIAotInBpeGVsIiBwcmVmaXgKLQotUEFTUyBlbGVtZW50LnN0eWxl
LnBpeGVsWkluZGV4IGlzIDEKLVBBU1MgZWxlbWVudC5zdHlsZS5QaXhlbFpJbmRleCBpcyAxCi1Q
QVNTIGVsZW1lbnQuc3R5bGUucGl4ZWx6SW5kZXggaXMgdW5kZWZpbmVkLgotUEFTUyBlbGVtZW50
LnN0eWxlLlBpeGVsekluZGV4IGlzIHVuZGVmaW5lZC4KLQotInBvcyIgcHJlZml4Ci0KLVBBU1Mg
ZWxlbWVudC5zdHlsZS5wb3NaSW5kZXggaXMgMQotUEFTUyBlbGVtZW50LnN0eWxlLlBvc1pJbmRl
eCBpcyAxCi1QQVNTIGVsZW1lbnQuc3R5bGUucG9zekluZGV4IGlzIHVuZGVmaW5lZC4KLVBBU1Mg
ZWxlbWVudC5zdHlsZS5Qb3N6SW5kZXggaXMgdW5kZWZpbmVkLgotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCiBURVNUIENPTVBMRVRFCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXByb3BlcnRpZXMtY2FzZS1zZW5zaXRpdmUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9u
L2Nzcy1wcm9wZXJ0aWVzLWNhc2Utc2Vuc2l0aXZlLmh0bWwJKHJldmlzaW9uIDI3MzYwMykKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXByb3BlcnRpZXMt
Y2FzZS1zZW5zaXRpdmUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIsMjkgKzEyLDggQEAgZGVz
Y3JpcHRpb24oCiB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKIGVs
ZW1lbnQuc3R5bGUuekluZGV4ID0gMTsKIAotZGVidWcoJ25vcm1hbCBjYXNlcycpOwotZGVidWco
JycpOwotCiBzaG91bGRCZSgiZWxlbWVudC5zdHlsZS56SW5kZXgiLCAiJzEnIik7CiBzaG91bGRC
ZVVuZGVmaW5lZCgiZWxlbWVudC5zdHlsZS5aSW5kZXgiKTsKLQotZGVidWcoJycpOwotZGVidWco
JyJwaXhlbCIgcHJlZml4Jyk7Ci1kZWJ1ZygnJyk7Ci0KLXNob3VsZEJlKCJlbGVtZW50LnN0eWxl
LnBpeGVsWkluZGV4IiwgIjEiKTsKLXNob3VsZEJlKCJlbGVtZW50LnN0eWxlLlBpeGVsWkluZGV4
IiwgIjEiKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJlbGVtZW50LnN0eWxlLnBpeGVsekluZGV4Iik7
Ci1zaG91bGRCZVVuZGVmaW5lZCgiZWxlbWVudC5zdHlsZS5QaXhlbHpJbmRleCIpOwotCi1kZWJ1
ZygnJyk7Ci1kZWJ1ZygnInBvcyIgcHJlZml4Jyk7Ci1kZWJ1ZygnJyk7Ci0KLXNob3VsZEJlKCJl
bGVtZW50LnN0eWxlLnBvc1pJbmRleCIsICIxIik7Ci1zaG91bGRCZSgiZWxlbWVudC5zdHlsZS5Q
b3NaSW5kZXgiLCAiMSIpOwotc2hvdWxkQmVVbmRlZmluZWQoImVsZW1lbnQuc3R5bGUucG9zeklu
ZGV4Iik7Ci1zaG91bGRCZVVuZGVmaW5lZCgiZWxlbWVudC5zdHlsZS5Qb3N6SW5kZXgiKTsKIDwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421729</attachid>
            <date>2021-02-26 16:57:30 -0800</date>
            <delta_ts>2021-02-26 18:50:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119712-20210226165729.patch</filename>
            <type>text/plain</type>
            <size>12899</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MzYwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDIxLTAyLTI2ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgJ3Bp
eGVsJyBhbmQgJ3BvcycgQ1NTT00gcHJlZml4ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTcxMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA2
NjA0OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlIHN1cHBvcnQgZm9yIHBpeGVsL3BvcyBwcmVmaXhlZCBwcm9wZXJ0aWVzIG9mIENTU1N0
eWxlRGVjbGFyYXRpb24gd2hpY2gKKyAgICAgICAgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQgYnkg
YW55IG90aGVyIGJyb3dzZXIuCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRDU1NQcm9wZXJ0
eUlERnJvbUphdmFTY3JpcHRQcm9wZXJ0eU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5
bGVEZWNsYXJhdGlvbjo6bmFtZWRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlRGVj
bGFyYXRpb246OnNldE5hbWVkSXRlbSk6CisKIDIwMjEtMDItMjYgIEplYW4tWXZlcyBBdmVuYXJk
ICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNFXSBXZWJDb250ZW50L0dQVSBwcm9jZXNz
IHdpbGwgaGFuZyB3aGVuIGFwcGVuZGluZyBkYXRhIHVuZGVyIHNvbWUgY2lyY3Vtc3RhbmNlcy4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlz
aW9uIDI3MzYwMykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTMgKzQzLDcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKENTU1N0eWxlRGVjbAogCiBuYW1lc3BhY2UgewogCi1lbnVtIGNsYXNzIFByb3BlcnR5
TmFtZVByZWZpeCB7Ci0gICAgTm9uZSwKLSAgICBFcHViLAotICAgIFBpeGVsLAotICAgIFBvcywK
LSAgICBXZWJLaXQKLX07CitlbnVtIGNsYXNzIFByb3BlcnR5TmFtZVByZWZpeCB7IE5vbmUsIEVw
dWIsIFdlYktpdCB9OwogCiB0ZW1wbGF0ZTxzaXplX3QgcHJlZml4Q1N0cmluZ0xlbmd0aD4KIHN0
YXRpYyBpbmxpbmUgYm9vbCBtYXRjaGVzQ1NTUHJvcGVydHlOYW1lUHJlZml4KGNvbnN0IFN0cmlu
Z0ltcGwmIHByb3BlcnR5TmFtZSwgY29uc3QgY2hhciAoJnByZWZpeClbcHJlZml4Q1N0cmluZ0xl
bmd0aF0pCkBAIC05MywxMiArODcsNiBAQCBzdGF0aWMgUHJvcGVydHlOYW1lUHJlZml4IHByb3Bl
cnR5TmFtZVByCiAgICAgICAgIGlmIChtYXRjaGVzQ1NTUHJvcGVydHlOYW1lUHJlZml4KHByb3Bl
cnR5TmFtZSwgImVwdWIiKSkKICAgICAgICAgICAgIHJldHVybiBQcm9wZXJ0eU5hbWVQcmVmaXg6
OkVwdWI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgJ3AnOgotICAgICAgICBpZiAobWF0Y2hl
c0NTU1Byb3BlcnR5TmFtZVByZWZpeChwcm9wZXJ0eU5hbWUsICJwb3MiKSkKLSAgICAgICAgICAg
IHJldHVybiBQcm9wZXJ0eU5hbWVQcmVmaXg6OlBvczsKLSAgICAgICAgaWYgKG1hdGNoZXNDU1NQ
cm9wZXJ0eU5hbWVQcmVmaXgocHJvcGVydHlOYW1lLCAicGl4ZWwiKSkKLSAgICAgICAgICAgIHJl
dHVybiBQcm9wZXJ0eU5hbWVQcmVmaXg6OlBpeGVsOwotICAgICAgICBicmVhazsKICAgICBjYXNl
ICd3JzoKICAgICAgICAgaWYgKG1hdGNoZXNDU1NQcm9wZXJ0eU5hbWVQcmVmaXgocHJvcGVydHlO
YW1lLCAid2Via2l0IikpCiAgICAgICAgICAgICByZXR1cm4gUHJvcGVydHlOYW1lUHJlZml4OjpX
ZWJLaXQ7CkBAIC0xMzEsMzAgKzExOSwyMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgd3JpdGVFcHVi
UHJlZml4KGNoYXIqCiAgICAgKmJ1ZmZlcisrID0gJy0nOwogfQogCi1zdHJ1Y3QgQ1NTUHJvcGVy
dHlJbmZvIHsKLSAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQ7Ci0gICAgYm9vbCBoYWRQaXhl
bE9yUG9zUHJlZml4OwotfTsKLQotc3RhdGljIENTU1Byb3BlcnR5SW5mbyBwYXJzZUphdmFTY3Jp
cHRDU1NQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKQorc3RhdGlj
IENTU1Byb3BlcnR5SUQgcGFyc2VKYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKGNvbnN0IEF0b21T
dHJpbmcmIHByb3BlcnR5TmFtZSkKIHsKLSAgICB1c2luZyBDU1NQcm9wZXJ0eUluZm9NYXAgPSBI
YXNoTWFwPFN0cmluZywgQ1NTUHJvcGVydHlJbmZvPjsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Q1NTUHJvcGVydHlJbmZvTWFwPiBwcm9wZXJ0eUluZm9DYWNoZTsKKyAgICB1c2luZyBDU1NQ
cm9wZXJ0eUlETWFwID0gSGFzaE1hcDxTdHJpbmcsIENTU1Byb3BlcnR5SUQ+OworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxDU1NQcm9wZXJ0eUlETWFwPiBwcm9wZXJ0eUlEQ2FjaGU7CiAKLSAg
ICBDU1NQcm9wZXJ0eUluZm8gcHJvcGVydHlJbmZvID0geyBDU1NQcm9wZXJ0eUludmFsaWQsIGZh
bHNlIH07CisgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEID0gQ1NTUHJvcGVydHlJbnZhbGlk
OwogCiAgICAgYXV0byogcHJvcGVydHlOYW1lU3RyaW5nID0gcHJvcGVydHlOYW1lLmltcGwoKTsK
ICAgICBpZiAoIXByb3BlcnR5TmFtZVN0cmluZykKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5SW5m
bzsKKyAgICAgICAgcmV0dXJuIHByb3BlcnR5SUQ7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gcHJv
cGVydHlOYW1lU3RyaW5nLT5sZW5ndGgoKTsKICAgICBpZiAoIWxlbmd0aCkKLSAgICAgICAgcmV0
dXJuIHByb3BlcnR5SW5mbzsKLQotICAgIHByb3BlcnR5SW5mbyA9IHByb3BlcnR5SW5mb0NhY2hl
LmdldCgpLmdldChwcm9wZXJ0eU5hbWVTdHJpbmcpOwotICAgIGlmIChwcm9wZXJ0eUluZm8ucHJv
cGVydHlJRCkKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5SW5mbzsKKyAgICAgICAgcmV0dXJuIHBy
b3BlcnR5SUQ7CiAKLSAgICBib29sIGhhZFBpeGVsT3JQb3NQcmVmaXggPSBmYWxzZTsKKyAgICBw
cm9wZXJ0eUlEID0gcHJvcGVydHlJRENhY2hlLmdldCgpLmdldChwcm9wZXJ0eU5hbWVTdHJpbmcp
OworICAgIGlmIChwcm9wZXJ0eUlEKQorICAgICAgICByZXR1cm4gcHJvcGVydHlJRDsKIAogICAg
IGNvbnN0ZXhwciBzaXplX3QgYnVmZmVyU2l6ZSA9IG1heENTU1Byb3BlcnR5TmFtZUxlbmd0aCAr
IDE7CiAgICAgY2hhciBidWZmZXJbYnVmZmVyU2l6ZV07CkBAIC0xNjIsMjEgKzE0MywxMiBAQCBz
dGF0aWMgQ1NTUHJvcGVydHlJbmZvIHBhcnNlSmF2YVNjcmlwdENTCiAgICAgY29uc3QgY2hhciog
bmFtZSA9IGJ1ZmZlclB0cjsKIAogICAgIHVuc2lnbmVkIGkgPSAwOwotICAgIC8vIFByZWZpeGVz
IFBpeGVsIGFuZCBQb3MgYXJlIGlnbm9yZWQuCiAgICAgLy8gUHJlZml4ZXMgQXBwbGUsIEtIVE1M
IGFuZCBXZWJraXQgYXJlIHRyYW5zcG9zZWQgdG8gIi13ZWJraXQtIi4KICAgICAvLyBUaGUgcHJl
Zml4ICJFcHViIiBiZWNvbWVzICItZXB1Yi0iLgogICAgIHN3aXRjaCAocHJvcGVydHlOYW1lUHJl
Zml4KCpwcm9wZXJ0eU5hbWVTdHJpbmcpKSB7CiAgICAgY2FzZSBQcm9wZXJ0eU5hbWVQcmVmaXg6
Ok5vbmU6CiAgICAgICAgIGlmIChpc0FTQ0lJVXBwZXIoKCpwcm9wZXJ0eU5hbWVTdHJpbmcpWzBd
KSkKLSAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eUluZm87Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgUHJvcGVydHlOYW1lUHJlZml4OjpQaXhlbDoKLSAgICAgICAgaSArPSA1OwotICAgICAg
ICBoYWRQaXhlbE9yUG9zUHJlZml4ID0gdHJ1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQ
cm9wZXJ0eU5hbWVQcmVmaXg6OlBvczoKLSAgICAgICAgaSArPSAzOwotICAgICAgICBoYWRQaXhl
bE9yUG9zUHJlZml4ID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eUlEOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFByb3BlcnR5TmFtZVByZWZpeDo6RXB1YjoKICAgICAgICAg
d3JpdGVFcHViUHJlZml4KGJ1ZmZlclB0cik7CkBAIC0xOTUsMTcgKzE2NywxNyBAQCBzdGF0aWMg
Q1NTUHJvcGVydHlJbmZvIHBhcnNlSmF2YVNjcmlwdENTCiAgICAgc2l6ZV90IGJ1ZmZlclNpemVM
ZWZ0ID0gc3RyaW5nRW5kIC0gYnVmZmVyUHRyOwogICAgIHNpemVfdCBwcm9wZXJ0eVNpemVMZWZ0
ID0gbGVuZ3RoIC0gaTsKICAgICBpZiAocHJvcGVydHlTaXplTGVmdCA+IGJ1ZmZlclNpemVMZWZ0
KQotICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOworICAgICAgICByZXR1cm4gcHJvcGVydHlJ
RDsKIAogICAgIGZvciAoOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgVUNoYXIgYyA9ICgq
cHJvcGVydHlOYW1lU3RyaW5nKVtpXTsKICAgICAgICAgaWYgKCFjIHx8ICFpc0FTQ0lJKGMpKQot
ICAgICAgICAgICAgcmV0dXJuIHByb3BlcnR5SW5mbzsgLy8gaWxsZWdhbCBjaGFyYWN0ZXIKKyAg
ICAgICAgICAgIHJldHVybiBwcm9wZXJ0eUlEOyAvLyBpbGxlZ2FsIGNoYXJhY3RlcgogICAgICAg
ICBpZiAoaXNBU0NJSVVwcGVyKGMpKSB7CiAgICAgICAgICAgICBzaXplX3QgYnVmZmVyU2l6ZUxl
ZnQgPSBzdHJpbmdFbmQgLSBidWZmZXJQdHI7CiAgICAgICAgICAgICBzaXplX3QgcHJvcGVydHlT
aXplTGVmdCA9IGxlbmd0aCAtIGkgKyAxOwogICAgICAgICAgICAgaWYgKHByb3BlcnR5U2l6ZUxl
ZnQgPiBidWZmZXJTaXplTGVmdCkKLSAgICAgICAgICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZv
OworICAgICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eUlEOwogICAgICAgICAgICAgKmJ1ZmZl
clB0cisrID0gJy0nOwogICAgICAgICAgICAgKmJ1ZmZlclB0cisrID0gdG9BU0NJSUxvd2VyVW5j
aGVja2VkKGMpOwogICAgICAgICB9IGVsc2UKQEAgLTIyMSwyOSArMTkzLDI1IEBAIHN0YXRpYyBD
U1NQcm9wZXJ0eUluZm8gcGFyc2VKYXZhU2NyaXB0Q1MKICNlbmRpZgogCiAgICAgYXV0byogaGFz
aFRhYmxlRW50cnkgPSBmaW5kUHJvcGVydHkobmFtZSwgb3V0cHV0TGVuZ3RoKTsKLSAgICBpZiAo
YXV0byBwcm9wZXJ0eUlEID0gaGFzaFRhYmxlRW50cnkgPyBoYXNoVGFibGVFbnRyeS0+aWQgOiAw
KSB7Ci0gICAgICAgIGF1dG8gaWQgPSBzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPihwcm9wZXJ0
eUlEKTsKLSAgICAgICAgcHJvcGVydHlJbmZvLmhhZFBpeGVsT3JQb3NQcmVmaXggPSBoYWRQaXhl
bE9yUG9zUHJlZml4OwotICAgICAgICBwcm9wZXJ0eUluZm8ucHJvcGVydHlJRCA9IGlkOwotICAg
ICAgICBwcm9wZXJ0eUluZm9DYWNoZS5nZXQoKS5hZGQocHJvcGVydHlOYW1lU3RyaW5nLCBwcm9w
ZXJ0eUluZm8pOwotICAgIH0KLSAgICByZXR1cm4gcHJvcGVydHlJbmZvOworICAgIGlmIChhdXRv
IHByb3BlcnR5SUQgPSBoYXNoVGFibGVFbnRyeSA/IGhhc2hUYWJsZUVudHJ5LT5pZCA6IDApCisg
ICAgICAgIHByb3BlcnR5SURDYWNoZS5nZXQoKS5hZGQocHJvcGVydHlOYW1lU3RyaW5nLCBzdGF0
aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPihwcm9wZXJ0eUlEKSk7CisgICAgcmV0dXJuIHByb3BlcnR5
SUQ7CiB9CiAKLXN0YXRpYyBDU1NQcm9wZXJ0eUluZm8gcHJvcGVydHlJbmZvRnJvbUphdmFTY3Jp
cHRDU1NQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lLCBjb25zdCBT
ZXR0aW5ncyogc2V0dGluZ3MpCitzdGF0aWMgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlERnJvbUph
dmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lLCBj
b25zdCBTZXR0aW5ncyogc2V0dGluZ3MpCiB7Ci0gICAgYXV0byBwcm9wZXJ0eUluZm8gPSBwYXJz
ZUphdmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKTsKLSAgICBhdXRvIGlkID0g
cHJvcGVydHlJbmZvLnByb3BlcnR5SUQ7CisgICAgYXV0byBpZCA9IHBhcnNlSmF2YVNjcmlwdENT
U1Byb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUpOwogICAgIGlmICghaXNFbmFibGVkQ1NTUHJvcGVy
dHkoaWQpIHx8ICFpc0NTU1Byb3BlcnR5RW5hYmxlZEJ5U2V0dGluZ3MoaWQsIHNldHRpbmdzKSkK
LSAgICAgICAgcmV0dXJuIHsgQ1NTUHJvcGVydHlJbnZhbGlkLCBmYWxzZSB9OwotICAgIHJldHVy
biBwcm9wZXJ0eUluZm87CisgICAgICAgIHJldHVybiBDU1NQcm9wZXJ0eUludmFsaWQ7CisgICAg
cmV0dXJuIGlkOwogfQogCiB9CiAKIENTU1Byb3BlcnR5SUQgQ1NTU3R5bGVEZWNsYXJhdGlvbjo6
Z2V0Q1NTUHJvcGVydHlJREZyb21KYXZhU2NyaXB0UHJvcGVydHlOYW1lKGNvbnN0IEF0b21TdHJp
bmcmIHByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gcHJvcGVydHlJbmZvRnJvbUphdmFTY3Jp
cHRDU1NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lLCBudWxscHRyKS5wcm9wZXJ0eUlEOworICAg
IC8vIEZJWE1FOiBUaGlzIGlzIGdvaW5nIHRvIHJldHVybiBpbmNvcnJlY3QgcmVzdWx0cyBmb3Ig
Y3NzIHByb3BlcnRpZXMgZGlzYWJsZWQgYnkgU2V0dGluZ3MuCisgICAgcmV0dXJuIHByb3BlcnR5
SURGcm9tSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUsIG51bGxwdHIpOwog
fQogCiBjb25zdCBTZXR0aW5ncyogQ1NTU3R5bGVEZWNsYXJhdGlvbjo6c2V0dGluZ3MoKSBjb25z
dApAQCAtMjUzLDM5ICsyMjEsMjkgQEAgY29uc3QgU2V0dGluZ3MqIENTU1N0eWxlRGVjbGFyYXRp
b246OnNldAogCiBPcHRpb25hbDxWYXJpYW50PFN0cmluZywgZG91YmxlPj4gQ1NTU3R5bGVEZWNs
YXJhdGlvbjo6bmFtZWRJdGVtKGNvbnN0IEF0b21TdHJpbmcmIHByb3BlcnR5TmFtZSkKIHsKLSAg
ICBhdXRvIHByb3BlcnR5SW5mbyA9IHByb3BlcnR5SW5mb0Zyb21KYXZhU2NyaXB0Q1NTUHJvcGVy
dHlOYW1lKHByb3BlcnR5TmFtZSwgc2V0dGluZ3MoKSk7Ci0gICAgaWYgKCFwcm9wZXJ0eUluZm8u
cHJvcGVydHlJRCkKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBnb2luZyB0byByZXR1cm4gaW5jb3Jy
ZWN0IHJlc3VsdHMgZm9yIGNzcyBwcm9wZXJ0aWVzIGRpc2FibGVkIGJ5IFNldHRpbmdzIGlmIHNl
dHRpbmdzKCkgcmV0dXJucyBudWxscHRyLgorICAgIGF1dG8gcHJvcGVydHlJRCA9IHByb3BlcnR5
SURGcm9tSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUsIHNldHRpbmdzKCkp
OworICAgIGlmICghcHJvcGVydHlJRCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAot
ICAgIGF1dG8gdmFsdWUgPSBnZXRQcm9wZXJ0eUNTU1ZhbHVlSW50ZXJuYWwocHJvcGVydHlJbmZv
LnByb3BlcnR5SUQpOwotICAgIGlmICghdmFsdWUpIHsKLSAgICAgICAgLy8gSWYgdGhlIHByb3Bl
cnR5IGlzIGEgc2hvcnRoYW5kIHByb3BlcnR5IChzdWNoIGFzICJwYWRkaW5nIiksIGl0IGNhbiBv
bmx5IGJlIGFjY2Vzc2VkIHVzaW5nIGdldFByb3BlcnR5VmFsdWUuCi0gICAgICAgIHJldHVybiBW
YXJpYW50PFN0cmluZywgZG91YmxlPiB7IGdldFByb3BlcnR5VmFsdWVJbnRlcm5hbChwcm9wZXJ0
eUluZm8ucHJvcGVydHlJRCkgfTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKHByb3BlcnR5SW5mby5o
YWRQaXhlbE9yUG9zUHJlZml4ICYmIGlzPENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpKSB7Ci0g
ICAgICAgIC8vIENhbGwgdGhpcyB2ZXJzaW9uIG9mIHRoZSBnZXR0ZXIgc28gdGhhdCwgZS5nLiwg
cGl4ZWxUb3AgcmV0dXJucyB0b3AgYXMgYSBudW1iZXIKLSAgICAgICAgLy8gaW4gcGl4ZWwgdW5p
dHMgYW5kIHBvc1RvcCBzaG91bGQgZG9lcyB0aGUgc2FtZSBfaWZfIHRoaXMgaXMgYSBwb3NpdGlv
bmVkIGVsZW1lbnQuCi0gICAgICAgIC8vIEZJWE1FOiBJZiBub3QgYSBwb3NpdGlvbmVkIGVsZW1l
bnQsIE1TSUUgZG9jdW1lbnRhdGlvbiBzYXlzIHBvc1RvcCBzaG91bGQgcmV0dXJuIDA7IHRoaXMg
cnVsZSBpcyBub3QgaW1wbGVtZW50ZWQuCi0gICAgICAgIHJldHVybiBWYXJpYW50PFN0cmluZywg
ZG91YmxlPiB7IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLmZsb2F0VmFsdWUo
Q1NTVW5pdFR5cGU6OkNTU19QWCkgfTsKLSAgICB9CisgICAgaWYgKGF1dG8gdmFsdWUgPSBnZXRQ
cm9wZXJ0eUNTU1ZhbHVlSW50ZXJuYWwocHJvcGVydHlJRCkpCisgICAgICAgIHJldHVybiBWYXJp
YW50PFN0cmluZywgZG91YmxlPiB7IHZhbHVlLT5jc3NUZXh0KCkgfTsKIAotICAgIHJldHVybiBW
YXJpYW50PFN0cmluZywgZG91YmxlPiB7IHZhbHVlLT5jc3NUZXh0KCkgfTsKKyAgICAvLyBJZiB0
aGUgcHJvcGVydHkgaXMgYSBzaG9ydGhhbmQgcHJvcGVydHkgKHN1Y2ggYXMgInBhZGRpbmciKSwg
aXQgY2FuIG9ubHkgYmUgYWNjZXNzZWQgdXNpbmcgZ2V0UHJvcGVydHlWYWx1ZS4KKyAgICByZXR1
cm4gVmFyaWFudDxTdHJpbmcsIGRvdWJsZT4geyBnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwocHJv
cGVydHlJRCkgfTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gQ1NTU3R5bGVEZWNsYXJhdGlvbjo6
c2V0TmFtZWRJdGVtKGNvbnN0IEF0b21TdHJpbmcmIHByb3BlcnR5TmFtZSwgU3RyaW5nIHZhbHVl
LCBib29sJiBwcm9wZXJ0eVN1cHBvcnRlZCkKIHsKLSAgICBhdXRvIHByb3BlcnR5SW5mbyA9IHBy
b3BlcnR5SW5mb0Zyb21KYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSwgc2V0
dGluZ3MoKSk7Ci0gICAgaWYgKCFwcm9wZXJ0eUluZm8ucHJvcGVydHlJRCkgeworICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIGdvaW5nIHRvIHJldHVybiBpbmNvcnJlY3QgcmVzdWx0cyBmb3IgY3NzIHBy
b3BlcnRpZXMgZGlzYWJsZWQgYnkgU2V0dGluZ3MgaWYgc2V0dGluZ3MoKSByZXR1cm5zIG51bGxw
dHIuCisgICAgYXV0byBwcm9wZXJ0eUlEID0gcHJvcGVydHlJREZyb21KYXZhU2NyaXB0Q1NTUHJv
cGVydHlOYW1lKHByb3BlcnR5TmFtZSwgc2V0dGluZ3MoKSk7CisgICAgaWYgKCFwcm9wZXJ0eUlE
KSB7CiAgICAgICAgIHByb3BlcnR5U3VwcG9ydGVkID0gZmFsc2U7CiAgICAgICAgIHJldHVybiB7
IH07CiAgICAgfQogCiAgICAgcHJvcGVydHlTdXBwb3J0ZWQgPSB0cnVlOwogCi0gICAgaWYgKHBy
b3BlcnR5SW5mby5oYWRQaXhlbE9yUG9zUHJlZml4KQotICAgICAgICB2YWx1ZS5hcHBlbmQoInB4
Iik7Ci0KICAgICBib29sIGltcG9ydGFudCA9IGZhbHNlOwogICAgIGlmIChEZXByZWNhdGVkR2xv
YmFsU2V0dGluZ3M6OnNob3VsZFJlc3BlY3RQcmlvcml0eUluQ1NTQXR0cmlidXRlU2V0dGVycygp
KSB7CiAgICAgICAgIGF1dG8gaW1wb3J0YW50SW5kZXggPSB2YWx1ZS5maW5kSWdub3JpbmdBU0NJ
SUNhc2UoIiFpbXBvcnRhbnQiKTsKQEAgLTI5NSw3ICsyNTMsNyBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBDU1NTdHlsZURlY2xhcmF0aW9uOjpzCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBhdXRvIHNl
dFByb3BlcnR5SW50ZXJuYWxSZXN1bHQgPSBzZXRQcm9wZXJ0eUludGVybmFsKHByb3BlcnR5SW5m
by5wcm9wZXJ0eUlELCB2YWx1ZSwgaW1wb3J0YW50KTsKKyAgICBhdXRvIHNldFByb3BlcnR5SW50
ZXJuYWxSZXN1bHQgPSBzZXRQcm9wZXJ0eUludGVybmFsKHByb3BlcnR5SUQsIHZhbHVlLCBpbXBv
cnRhbnQpOwogICAgIGlmIChzZXRQcm9wZXJ0eUludGVybmFsUmVzdWx0Lmhhc0V4Y2VwdGlvbigp
KQogICAgICAgICByZXR1cm4gc2V0UHJvcGVydHlJbnRlcm5hbFJlc3VsdC5yZWxlYXNlRXhjZXB0
aW9uKCk7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MzYwMykKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIxLTAyLTI2ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciAncGl4
ZWwnIGFuZCAncG9zJyBDU1NPTSBwcmVmaXhlcworICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk3MTIKKworICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgKiBmYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzcy1wcm9w
ZXJ0aWVzLWNhc2Utc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAqIGZhc3QvZG9tL0NT
U1N0eWxlRGVjbGFyYXRpb24vY3NzLXByb3BlcnRpZXMtY2FzZS1zZW5zaXRpdmUuaHRtbDoKKyAg
ICAgICAgVXBkYXRlIHRlc3QgdG8gcmVmbGVjdCByZW1vdmFsIG9mIHBvcy9waXhlbCBwcmVmaXhl
cy4KKwogMjAyMS0wMi0yNiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMRkNdW0NvdmVyYWdlXSBEbyBub3QgYmFpbCBvdXQgb24gdGV4dCB1bmRlcmxpbmUgcG9z
aXRpb24gd2hlbiB0ZXh0LWRlY29yYXRpb24gaXMgJ25vbmUnCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzcy1wcm9wZXJ0aWVzLWNhc2Utc2Vuc2l0aXZl
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHls
ZURlY2xhcmF0aW9uL2Nzcy1wcm9wZXJ0aWVzLWNhc2Utc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMjczNjAzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJh
dGlvbi9jc3MtcHJvcGVydGllcy1jYXNlLXNlbnNpdGl2ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTMsMjUgKzMsOCBAQCBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYWNjZXNzIHRvIENT
UyBwcm9wCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotbm9ybWFsIGNhc2VzCi0KIFBB
U1MgZWxlbWVudC5zdHlsZS56SW5kZXggaXMgJzEnCiBQQVNTIGVsZW1lbnQuc3R5bGUuWkluZGV4
IGlzIHVuZGVmaW5lZC4KIAotInBpeGVsIiBwcmVmaXgKLQotUEFTUyBlbGVtZW50LnN0eWxlLnBp
eGVsWkluZGV4IGlzIDEKLVBBU1MgZWxlbWVudC5zdHlsZS5QaXhlbFpJbmRleCBpcyAxCi1QQVNT
IGVsZW1lbnQuc3R5bGUucGl4ZWx6SW5kZXggaXMgdW5kZWZpbmVkLgotUEFTUyBlbGVtZW50LnN0
eWxlLlBpeGVsekluZGV4IGlzIHVuZGVmaW5lZC4KLQotInBvcyIgcHJlZml4Ci0KLVBBU1MgZWxl
bWVudC5zdHlsZS5wb3NaSW5kZXggaXMgMQotUEFTUyBlbGVtZW50LnN0eWxlLlBvc1pJbmRleCBp
cyAxCi1QQVNTIGVsZW1lbnQuc3R5bGUucG9zekluZGV4IGlzIHVuZGVmaW5lZC4KLVBBU1MgZWxl
bWVudC5zdHlsZS5Qb3N6SW5kZXggaXMgdW5kZWZpbmVkLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCiBURVNUIENPTVBMRVRFCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXByb3BlcnRpZXMtY2FzZS1zZW5zaXRpdmUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nz
cy1wcm9wZXJ0aWVzLWNhc2Utc2Vuc2l0aXZlLmh0bWwJKHJldmlzaW9uIDI3MzYwMykKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXByb3BlcnRpZXMtY2Fz
ZS1zZW5zaXRpdmUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIsMjkgKzEyLDggQEAgZGVzY3Jp
cHRpb24oCiB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKIGVsZW1l
bnQuc3R5bGUuekluZGV4ID0gMTsKIAotZGVidWcoJ25vcm1hbCBjYXNlcycpOwotZGVidWcoJycp
OwotCiBzaG91bGRCZSgiZWxlbWVudC5zdHlsZS56SW5kZXgiLCAiJzEnIik7CiBzaG91bGRCZVVu
ZGVmaW5lZCgiZWxlbWVudC5zdHlsZS5aSW5kZXgiKTsKLQotZGVidWcoJycpOwotZGVidWcoJyJw
aXhlbCIgcHJlZml4Jyk7Ci1kZWJ1ZygnJyk7Ci0KLXNob3VsZEJlKCJlbGVtZW50LnN0eWxlLnBp
eGVsWkluZGV4IiwgIjEiKTsKLXNob3VsZEJlKCJlbGVtZW50LnN0eWxlLlBpeGVsWkluZGV4Iiwg
IjEiKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJlbGVtZW50LnN0eWxlLnBpeGVsekluZGV4Iik7Ci1z
aG91bGRCZVVuZGVmaW5lZCgiZWxlbWVudC5zdHlsZS5QaXhlbHpJbmRleCIpOwotCi1kZWJ1Zygn
Jyk7Ci1kZWJ1ZygnInBvcyIgcHJlZml4Jyk7Ci1kZWJ1ZygnJyk7Ci0KLXNob3VsZEJlKCJlbGVt
ZW50LnN0eWxlLnBvc1pJbmRleCIsICIxIik7Ci1zaG91bGRCZSgiZWxlbWVudC5zdHlsZS5Qb3Na
SW5kZXgiLCAiMSIpOwotc2hvdWxkQmVVbmRlZmluZWQoImVsZW1lbnQuc3R5bGUucG9zekluZGV4
Iik7Ci1zaG91bGRCZVVuZGVmaW5lZCgiZWxlbWVudC5zdHlsZS5Qb3N6SW5kZXgiKTsKIDwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5Pgo=
</data>
<flag name="commit-queue"
          id="440666"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421732</attachid>
            <date>2021-02-26 18:32:04 -0800</date>
            <delta_ts>2021-02-26 18:34:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119712-20210226183203.patch</filename>
            <type>text/plain</type>
            <size>12939</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MzYwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDIxLTAyLTI2ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgJ3Bp
eGVsJyBhbmQgJ3BvcycgQ1NTT00gcHJlZml4ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTcxMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA2
NjA0OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlIHN1cHBvcnQgZm9yIHBpeGVsL3BvcyBwcmVmaXhlZCBwcm9wZXJ0aWVzIG9mIENTU1N0
eWxlRGVjbGFyYXRpb24gd2hpY2gKKyAgICAgICAgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQgYnkg
YW55IG90aGVyIGJyb3dzZXIuCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRDU1NQcm9wZXJ0
eUlERnJvbUphdmFTY3JpcHRQcm9wZXJ0eU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5
bGVEZWNsYXJhdGlvbjo6bmFtZWRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlRGVj
bGFyYXRpb246OnNldE5hbWVkSXRlbSk6CisKIDIwMjEtMDItMjYgIEplYW4tWXZlcyBBdmVuYXJk
ICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNFXSBXZWJDb250ZW50L0dQVSBwcm9jZXNz
IHdpbGwgaGFuZyB3aGVuIGFwcGVuZGluZyBkYXRhIHVuZGVyIHNvbWUgY2lyY3Vtc3RhbmNlcy4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlz
aW9uIDI3MzYwMykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTMgKzQzLDcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKENTU1N0eWxlRGVjbAogCiBuYW1lc3BhY2UgewogCi1lbnVtIGNsYXNzIFByb3BlcnR5
TmFtZVByZWZpeCB7Ci0gICAgTm9uZSwKLSAgICBFcHViLAotICAgIFBpeGVsLAotICAgIFBvcywK
LSAgICBXZWJLaXQKLX07CitlbnVtIGNsYXNzIFByb3BlcnR5TmFtZVByZWZpeCB7IE5vbmUsIEVw
dWIsIFdlYktpdCB9OwogCiB0ZW1wbGF0ZTxzaXplX3QgcHJlZml4Q1N0cmluZ0xlbmd0aD4KIHN0
YXRpYyBpbmxpbmUgYm9vbCBtYXRjaGVzQ1NTUHJvcGVydHlOYW1lUHJlZml4KGNvbnN0IFN0cmlu
Z0ltcGwmIHByb3BlcnR5TmFtZSwgY29uc3QgY2hhciAoJnByZWZpeClbcHJlZml4Q1N0cmluZ0xl
bmd0aF0pCkBAIC05MywxMiArODcsNiBAQCBzdGF0aWMgUHJvcGVydHlOYW1lUHJlZml4IHByb3Bl
cnR5TmFtZVByCiAgICAgICAgIGlmIChtYXRjaGVzQ1NTUHJvcGVydHlOYW1lUHJlZml4KHByb3Bl
cnR5TmFtZSwgImVwdWIiKSkKICAgICAgICAgICAgIHJldHVybiBQcm9wZXJ0eU5hbWVQcmVmaXg6
OkVwdWI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgJ3AnOgotICAgICAgICBpZiAobWF0Y2hl
c0NTU1Byb3BlcnR5TmFtZVByZWZpeChwcm9wZXJ0eU5hbWUsICJwb3MiKSkKLSAgICAgICAgICAg
IHJldHVybiBQcm9wZXJ0eU5hbWVQcmVmaXg6OlBvczsKLSAgICAgICAgaWYgKG1hdGNoZXNDU1NQ
cm9wZXJ0eU5hbWVQcmVmaXgocHJvcGVydHlOYW1lLCAicGl4ZWwiKSkKLSAgICAgICAgICAgIHJl
dHVybiBQcm9wZXJ0eU5hbWVQcmVmaXg6OlBpeGVsOwotICAgICAgICBicmVhazsKICAgICBjYXNl
ICd3JzoKICAgICAgICAgaWYgKG1hdGNoZXNDU1NQcm9wZXJ0eU5hbWVQcmVmaXgocHJvcGVydHlO
YW1lLCAid2Via2l0IikpCiAgICAgICAgICAgICByZXR1cm4gUHJvcGVydHlOYW1lUHJlZml4OjpX
ZWJLaXQ7CkBAIC0xMzEsMzAgKzExOSwyMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgd3JpdGVFcHVi
UHJlZml4KGNoYXIqCiAgICAgKmJ1ZmZlcisrID0gJy0nOwogfQogCi1zdHJ1Y3QgQ1NTUHJvcGVy
dHlJbmZvIHsKLSAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQ7Ci0gICAgYm9vbCBoYWRQaXhl
bE9yUG9zUHJlZml4OwotfTsKLQotc3RhdGljIENTU1Byb3BlcnR5SW5mbyBwYXJzZUphdmFTY3Jp
cHRDU1NQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKQorc3RhdGlj
IENTU1Byb3BlcnR5SUQgcGFyc2VKYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKGNvbnN0IEF0b21T
dHJpbmcmIHByb3BlcnR5TmFtZSkKIHsKLSAgICB1c2luZyBDU1NQcm9wZXJ0eUluZm9NYXAgPSBI
YXNoTWFwPFN0cmluZywgQ1NTUHJvcGVydHlJbmZvPjsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Q1NTUHJvcGVydHlJbmZvTWFwPiBwcm9wZXJ0eUluZm9DYWNoZTsKLQotICAgIENTU1Byb3Bl
cnR5SW5mbyBwcm9wZXJ0eUluZm8gPSB7IENTU1Byb3BlcnR5SW52YWxpZCwgZmFsc2UgfTsKKyAg
ICB1c2luZyBDU1NQcm9wZXJ0eUlETWFwID0gSGFzaE1hcDxTdHJpbmcsIENTU1Byb3BlcnR5SUQ+
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDU1NQcm9wZXJ0eUlETWFwPiBwcm9wZXJ0eUlE
Q2FjaGU7CiAKICAgICBhdXRvKiBwcm9wZXJ0eU5hbWVTdHJpbmcgPSBwcm9wZXJ0eU5hbWUuaW1w
bCgpOwogICAgIGlmICghcHJvcGVydHlOYW1lU3RyaW5nKQotICAgICAgICByZXR1cm4gcHJvcGVy
dHlJbmZvOworICAgICAgICByZXR1cm4gQ1NTUHJvcGVydHlJbnZhbGlkOwogICAgIHVuc2lnbmVk
IGxlbmd0aCA9IHByb3BlcnR5TmFtZVN0cmluZy0+bGVuZ3RoKCk7CiAgICAgaWYgKCFsZW5ndGgp
Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eUluZm87CisgICAgICAgIHJldHVybiBDU1NQcm9wZXJ0
eUludmFsaWQ7CiAKLSAgICBwcm9wZXJ0eUluZm8gPSBwcm9wZXJ0eUluZm9DYWNoZS5nZXQoKS5n
ZXQocHJvcGVydHlOYW1lU3RyaW5nKTsKLSAgICBpZiAocHJvcGVydHlJbmZvLnByb3BlcnR5SUQp
Ci0gICAgICAgIHJldHVybiBwcm9wZXJ0eUluZm87Ci0KLSAgICBib29sIGhhZFBpeGVsT3JQb3NQ
cmVmaXggPSBmYWxzZTsKKyAgICBpZiAoYXV0byBpZCA9IHByb3BlcnR5SURDYWNoZS5nZXQoKS5n
ZXQocHJvcGVydHlOYW1lU3RyaW5nKSkKKyAgICAgICAgcmV0dXJuIGlkOwogCiAgICAgY29uc3Rl
eHByIHNpemVfdCBidWZmZXJTaXplID0gbWF4Q1NTUHJvcGVydHlOYW1lTGVuZ3RoICsgMTsKICAg
ICBjaGFyIGJ1ZmZlcltidWZmZXJTaXplXTsKQEAgLTE2MiwyMSArMTQwLDEyIEBAIHN0YXRpYyBD
U1NQcm9wZXJ0eUluZm8gcGFyc2VKYXZhU2NyaXB0Q1MKICAgICBjb25zdCBjaGFyKiBuYW1lID0g
YnVmZmVyUHRyOwogCiAgICAgdW5zaWduZWQgaSA9IDA7Ci0gICAgLy8gUHJlZml4ZXMgUGl4ZWwg
YW5kIFBvcyBhcmUgaWdub3JlZC4KICAgICAvLyBQcmVmaXhlcyBBcHBsZSwgS0hUTUwgYW5kIFdl
YmtpdCBhcmUgdHJhbnNwb3NlZCB0byAiLXdlYmtpdC0iLgogICAgIC8vIFRoZSBwcmVmaXggIkVw
dWIiIGJlY29tZXMgIi1lcHViLSIuCiAgICAgc3dpdGNoIChwcm9wZXJ0eU5hbWVQcmVmaXgoKnBy
b3BlcnR5TmFtZVN0cmluZykpIHsKICAgICBjYXNlIFByb3BlcnR5TmFtZVByZWZpeDo6Tm9uZToK
ICAgICAgICAgaWYgKGlzQVNDSUlVcHBlcigoKnByb3BlcnR5TmFtZVN0cmluZylbMF0pKQotICAg
ICAgICAgICAgcmV0dXJuIHByb3BlcnR5SW5mbzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQ
cm9wZXJ0eU5hbWVQcmVmaXg6OlBpeGVsOgotICAgICAgICBpICs9IDU7Ci0gICAgICAgIGhhZFBp
eGVsT3JQb3NQcmVmaXggPSB0cnVlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3BlcnR5
TmFtZVByZWZpeDo6UG9zOgotICAgICAgICBpICs9IDM7Ci0gICAgICAgIGhhZFBpeGVsT3JQb3NQ
cmVmaXggPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIENTU1Byb3BlcnR5SW52YWxpZDsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBQcm9wZXJ0eU5hbWVQcmVmaXg6OkVwdWI6CiAgICAgICAg
IHdyaXRlRXB1YlByZWZpeChidWZmZXJQdHIpOwpAQCAtMTk1LDE3ICsxNjQsMTcgQEAgc3RhdGlj
IENTU1Byb3BlcnR5SW5mbyBwYXJzZUphdmFTY3JpcHRDUwogICAgIHNpemVfdCBidWZmZXJTaXpl
TGVmdCA9IHN0cmluZ0VuZCAtIGJ1ZmZlclB0cjsKICAgICBzaXplX3QgcHJvcGVydHlTaXplTGVm
dCA9IGxlbmd0aCAtIGk7CiAgICAgaWYgKHByb3BlcnR5U2l6ZUxlZnQgPiBidWZmZXJTaXplTGVm
dCkKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5SW5mbzsKKyAgICAgICAgcmV0dXJuIENTU1Byb3Bl
cnR5SW52YWxpZDsKIAogICAgIGZvciAoOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgVUNo
YXIgYyA9ICgqcHJvcGVydHlOYW1lU3RyaW5nKVtpXTsKICAgICAgICAgaWYgKCFjIHx8ICFpc0FT
Q0lJKGMpKQotICAgICAgICAgICAgcmV0dXJuIHByb3BlcnR5SW5mbzsgLy8gaWxsZWdhbCBjaGFy
YWN0ZXIKKyAgICAgICAgICAgIHJldHVybiBDU1NQcm9wZXJ0eUludmFsaWQ7IC8vIGlsbGVnYWwg
Y2hhcmFjdGVyCiAgICAgICAgIGlmIChpc0FTQ0lJVXBwZXIoYykpIHsKICAgICAgICAgICAgIHNp
emVfdCBidWZmZXJTaXplTGVmdCA9IHN0cmluZ0VuZCAtIGJ1ZmZlclB0cjsKICAgICAgICAgICAg
IHNpemVfdCBwcm9wZXJ0eVNpemVMZWZ0ID0gbGVuZ3RoIC0gaSArIDE7CiAgICAgICAgICAgICBp
ZiAocHJvcGVydHlTaXplTGVmdCA+IGJ1ZmZlclNpemVMZWZ0KQotICAgICAgICAgICAgICAgIHJl
dHVybiBwcm9wZXJ0eUluZm87CisgICAgICAgICAgICAgICAgcmV0dXJuIENTU1Byb3BlcnR5SW52
YWxpZDsKICAgICAgICAgICAgICpidWZmZXJQdHIrKyA9ICctJzsKICAgICAgICAgICAgICpidWZm
ZXJQdHIrKyA9IHRvQVNDSUlMb3dlclVuY2hlY2tlZChjKTsKICAgICAgICAgfSBlbHNlCkBAIC0y
MjEsMjkgKzE5MCwzMSBAQCBzdGF0aWMgQ1NTUHJvcGVydHlJbmZvIHBhcnNlSmF2YVNjcmlwdENT
CiAjZW5kaWYKIAogICAgIGF1dG8qIGhhc2hUYWJsZUVudHJ5ID0gZmluZFByb3BlcnR5KG5hbWUs
IG91dHB1dExlbmd0aCk7Ci0gICAgaWYgKGF1dG8gcHJvcGVydHlJRCA9IGhhc2hUYWJsZUVudHJ5
ID8gaGFzaFRhYmxlRW50cnktPmlkIDogMCkgewotICAgICAgICBhdXRvIGlkID0gc3RhdGljX2Nh
c3Q8Q1NTUHJvcGVydHlJRD4ocHJvcGVydHlJRCk7Ci0gICAgICAgIHByb3BlcnR5SW5mby5oYWRQ
aXhlbE9yUG9zUHJlZml4ID0gaGFkUGl4ZWxPclBvc1ByZWZpeDsKLSAgICAgICAgcHJvcGVydHlJ
bmZvLnByb3BlcnR5SUQgPSBpZDsKLSAgICAgICAgcHJvcGVydHlJbmZvQ2FjaGUuZ2V0KCkuYWRk
KHByb3BlcnR5TmFtZVN0cmluZywgcHJvcGVydHlJbmZvKTsKLSAgICB9Ci0gICAgcmV0dXJuIHBy
b3BlcnR5SW5mbzsKKyAgICBpZiAoIWhhc2hUYWJsZUVudHJ5KQorICAgICAgICByZXR1cm4gQ1NT
UHJvcGVydHlJbnZhbGlkOworCisgICAgQ1NTUHJvcGVydHlJRCBpZCA9IHN0YXRpY19jYXN0PENT
U1Byb3BlcnR5SUQ+KGhhc2hUYWJsZUVudHJ5LT5pZCk7CisgICAgaWYgKCFpZCkKKyAgICAgICAg
cmV0dXJuIENTU1Byb3BlcnR5SW52YWxpZDsKKworICAgIHByb3BlcnR5SURDYWNoZS5nZXQoKS5h
ZGQocHJvcGVydHlOYW1lU3RyaW5nLCBpZCk7CisgICAgcmV0dXJuIGlkOwogfQogCi1zdGF0aWMg
Q1NTUHJvcGVydHlJbmZvIHByb3BlcnR5SW5mb0Zyb21KYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1l
KGNvbnN0IEF0b21TdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3QgU2V0dGluZ3MqIHNldHRpbmdz
KQorc3RhdGljIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJREZyb21KYXZhU2NyaXB0Q1NTUHJvcGVy
dHlOYW1lKGNvbnN0IEF0b21TdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3QgU2V0dGluZ3MqIHNl
dHRpbmdzKQogewotICAgIGF1dG8gcHJvcGVydHlJbmZvID0gcGFyc2VKYXZhU2NyaXB0Q1NTUHJv
cGVydHlOYW1lKHByb3BlcnR5TmFtZSk7Ci0gICAgYXV0byBpZCA9IHByb3BlcnR5SW5mby5wcm9w
ZXJ0eUlEOworICAgIGF1dG8gaWQgPSBwYXJzZUphdmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUocHJv
cGVydHlOYW1lKTsKICAgICBpZiAoIWlzRW5hYmxlZENTU1Byb3BlcnR5KGlkKSB8fCAhaXNDU1NQ
cm9wZXJ0eUVuYWJsZWRCeVNldHRpbmdzKGlkLCBzZXR0aW5ncykpCi0gICAgICAgIHJldHVybiB7
IENTU1Byb3BlcnR5SW52YWxpZCwgZmFsc2UgfTsKLSAgICByZXR1cm4gcHJvcGVydHlJbmZvOwor
ICAgICAgICByZXR1cm4gQ1NTUHJvcGVydHlJbnZhbGlkOworICAgIHJldHVybiBpZDsKIH0KIAog
fQogCiBDU1NQcm9wZXJ0eUlEIENTU1N0eWxlRGVjbGFyYXRpb246OmdldENTU1Byb3BlcnR5SURG
cm9tSmF2YVNjcmlwdFByb3BlcnR5TmFtZShjb25zdCBBdG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUp
CiB7Ci0gICAgcmV0dXJuIHByb3BlcnR5SW5mb0Zyb21KYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1l
KHByb3BlcnR5TmFtZSwgbnVsbHB0cikucHJvcGVydHlJRDsKKyAgICAvLyBGSVhNRTogVGhpcyBp
cyBnb2luZyB0byByZXR1cm4gaW5jb3JyZWN0IHJlc3VsdHMgZm9yIGNzcyBwcm9wZXJ0aWVzIGRp
c2FibGVkIGJ5IFNldHRpbmdzLgorICAgIHJldHVybiBwcm9wZXJ0eUlERnJvbUphdmFTY3JpcHRD
U1NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lLCBudWxscHRyKTsKIH0KIAogY29uc3QgU2V0dGlu
Z3MqIENTU1N0eWxlRGVjbGFyYXRpb246OnNldHRpbmdzKCkgY29uc3QKQEAgLTI1MywzOSArMjI0
LDI5IEBAIGNvbnN0IFNldHRpbmdzKiBDU1NTdHlsZURlY2xhcmF0aW9uOjpzZXQKIAogT3B0aW9u
YWw8VmFyaWFudDxTdHJpbmcsIGRvdWJsZT4+IENTU1N0eWxlRGVjbGFyYXRpb246Om5hbWVkSXRl
bShjb25zdCBBdG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgYXV0byBwcm9wZXJ0eUlu
Zm8gPSBwcm9wZXJ0eUluZm9Gcm9tSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFtZShwcm9wZXJ0eU5h
bWUsIHNldHRpbmdzKCkpOwotICAgIGlmICghcHJvcGVydHlJbmZvLnByb3BlcnR5SUQpCisgICAg
Ly8gRklYTUU6IFRoaXMgaXMgZ29pbmcgdG8gcmV0dXJuIGluY29ycmVjdCByZXN1bHRzIGZvciBj
c3MgcHJvcGVydGllcyBkaXNhYmxlZCBieSBTZXR0aW5ncyBpZiBzZXR0aW5ncygpIHJldHVybnMg
bnVsbHB0ci4KKyAgICBhdXRvIHByb3BlcnR5SUQgPSBwcm9wZXJ0eUlERnJvbUphdmFTY3JpcHRD
U1NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lLCBzZXR0aW5ncygpKTsKKyAgICBpZiAoIXByb3Bl
cnR5SUQpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBhdXRvIHZhbHVlID0g
Z2V0UHJvcGVydHlDU1NWYWx1ZUludGVybmFsKHByb3BlcnR5SW5mby5wcm9wZXJ0eUlEKTsKLSAg
ICBpZiAoIXZhbHVlKSB7Ci0gICAgICAgIC8vIElmIHRoZSBwcm9wZXJ0eSBpcyBhIHNob3J0aGFu
ZCBwcm9wZXJ0eSAoc3VjaCBhcyAicGFkZGluZyIpLCBpdCBjYW4gb25seSBiZSBhY2Nlc3NlZCB1
c2luZyBnZXRQcm9wZXJ0eVZhbHVlLgotICAgICAgICByZXR1cm4gVmFyaWFudDxTdHJpbmcsIGRv
dWJsZT4geyBnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwocHJvcGVydHlJbmZvLnByb3BlcnR5SUQp
IH07Ci0gICAgfQotICAgIAotICAgIGlmIChwcm9wZXJ0eUluZm8uaGFkUGl4ZWxPclBvc1ByZWZp
eCAmJiBpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKSkgewotICAgICAgICAvLyBDYWxsIHRo
aXMgdmVyc2lvbiBvZiB0aGUgZ2V0dGVyIHNvIHRoYXQsIGUuZy4sIHBpeGVsVG9wIHJldHVybnMg
dG9wIGFzIGEgbnVtYmVyCi0gICAgICAgIC8vIGluIHBpeGVsIHVuaXRzIGFuZCBwb3NUb3Agc2hv
dWxkIGRvZXMgdGhlIHNhbWUgX2lmXyB0aGlzIGlzIGEgcG9zaXRpb25lZCBlbGVtZW50LgotICAg
ICAgICAvLyBGSVhNRTogSWYgbm90IGEgcG9zaXRpb25lZCBlbGVtZW50LCBNU0lFIGRvY3VtZW50
YXRpb24gc2F5cyBwb3NUb3Agc2hvdWxkIHJldHVybiAwOyB0aGlzIHJ1bGUgaXMgbm90IGltcGxl
bWVudGVkLgotICAgICAgICByZXR1cm4gVmFyaWFudDxTdHJpbmcsIGRvdWJsZT4geyBkb3duY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5mbG9hdFZhbHVlKENTU1VuaXRUeXBlOjpDU1Nf
UFgpIH07Ci0gICAgfQorICAgIGlmIChhdXRvIHZhbHVlID0gZ2V0UHJvcGVydHlDU1NWYWx1ZUlu
dGVybmFsKHByb3BlcnR5SUQpKQorICAgICAgICByZXR1cm4gVmFyaWFudDxTdHJpbmcsIGRvdWJs
ZT4geyB2YWx1ZS0+Y3NzVGV4dCgpIH07CiAKLSAgICByZXR1cm4gVmFyaWFudDxTdHJpbmcsIGRv
dWJsZT4geyB2YWx1ZS0+Y3NzVGV4dCgpIH07CisgICAgLy8gSWYgdGhlIHByb3BlcnR5IGlzIGEg
c2hvcnRoYW5kIHByb3BlcnR5IChzdWNoIGFzICJwYWRkaW5nIiksIGl0IGNhbiBvbmx5IGJlIGFj
Y2Vzc2VkIHVzaW5nIGdldFByb3BlcnR5VmFsdWUuCisgICAgcmV0dXJuIFZhcmlhbnQ8U3RyaW5n
LCBkb3VibGU+IHsgZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsKHByb3BlcnR5SUQpIH07CiB9CiAK
IEV4Y2VwdGlvbk9yPHZvaWQ+IENTU1N0eWxlRGVjbGFyYXRpb246OnNldE5hbWVkSXRlbShjb25z
dCBBdG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIFN0cmluZyB2YWx1ZSwgYm9vbCYgcHJvcGVydHlT
dXBwb3J0ZWQpCiB7Ci0gICAgYXV0byBwcm9wZXJ0eUluZm8gPSBwcm9wZXJ0eUluZm9Gcm9tSmF2
YVNjcmlwdENTU1Byb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUsIHNldHRpbmdzKCkpOwotICAgIGlm
ICghcHJvcGVydHlJbmZvLnByb3BlcnR5SUQpIHsKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBnb2lu
ZyB0byByZXR1cm4gaW5jb3JyZWN0IHJlc3VsdHMgZm9yIGNzcyBwcm9wZXJ0aWVzIGRpc2FibGVk
IGJ5IFNldHRpbmdzIGlmIHNldHRpbmdzKCkgcmV0dXJucyBudWxscHRyLgorICAgIGF1dG8gcHJv
cGVydHlJRCA9IHByb3BlcnR5SURGcm9tSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFtZShwcm9wZXJ0
eU5hbWUsIHNldHRpbmdzKCkpOworICAgIGlmICghcHJvcGVydHlJRCkgewogICAgICAgICBwcm9w
ZXJ0eVN1cHBvcnRlZCA9IGZhbHNlOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAg
IHByb3BlcnR5U3VwcG9ydGVkID0gdHJ1ZTsKIAotICAgIGlmIChwcm9wZXJ0eUluZm8uaGFkUGl4
ZWxPclBvc1ByZWZpeCkKLSAgICAgICAgdmFsdWUuYXBwZW5kKCJweCIpOwotCiAgICAgYm9vbCBp
bXBvcnRhbnQgPSBmYWxzZTsKICAgICBpZiAoRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzaG91
bGRSZXNwZWN0UHJpb3JpdHlJbkNTU0F0dHJpYnV0ZVNldHRlcnMoKSkgewogICAgICAgICBhdXRv
IGltcG9ydGFudEluZGV4ID0gdmFsdWUuZmluZElnbm9yaW5nQVNDSUlDYXNlKCIhaW1wb3J0YW50
Iik7CkBAIC0yOTUsNyArMjU2LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ1NTU3R5bGVEZWNsYXJh
dGlvbjo6cwogICAgICAgICB9CiAgICAgfQogCi0gICAgYXV0byBzZXRQcm9wZXJ0eUludGVybmFs
UmVzdWx0ID0gc2V0UHJvcGVydHlJbnRlcm5hbChwcm9wZXJ0eUluZm8ucHJvcGVydHlJRCwgdmFs
dWUsIGltcG9ydGFudCk7CisgICAgYXV0byBzZXRQcm9wZXJ0eUludGVybmFsUmVzdWx0ID0gc2V0
UHJvcGVydHlJbnRlcm5hbChwcm9wZXJ0eUlELCB2YWx1ZSwgaW1wb3J0YW50KTsKICAgICBpZiAo
c2V0UHJvcGVydHlJbnRlcm5hbFJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJu
IHNldFByb3BlcnR5SW50ZXJuYWxSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzM2MDMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMi0yNiAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBs
ZS5jb20+CisKKyAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgJ3BpeGVsJyBhbmQgJ3BvcycgQ1NT
T00gcHJlZml4ZXMKKyAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE5NzEyCisKKyAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICogZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3MtcHJvcGVydGllcy1jYXNlLXNlbnNp
dGl2ZS1leHBlY3RlZC50eHQ6CisgICAgICAgKiBmYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9u
L2Nzcy1wcm9wZXJ0aWVzLWNhc2Utc2Vuc2l0aXZlLmh0bWw6CisgICAgICAgIFVwZGF0ZSB0ZXN0
IHRvIHJlZmxlY3QgcmVtb3ZhbCBvZiBwb3MvcGl4ZWwgcHJlZml4ZXMuCisKIDIwMjEtMDItMjYg
IFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtDb3ZlcmFn
ZV0gRG8gbm90IGJhaWwgb3V0IG9uIHRleHQgdW5kZXJsaW5lIHBvc2l0aW9uIHdoZW4gdGV4dC1k
ZWNvcmF0aW9uIGlzICdub25lJwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVE
ZWNsYXJhdGlvbi9jc3MtcHJvcGVydGllcy1jYXNlLXNlbnNpdGl2ZS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3Mt
cHJvcGVydGllcy1jYXNlLXNlbnNpdGl2ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3MzYwMykK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXByb3BlcnRp
ZXMtY2FzZS1zZW5zaXRpdmUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDI1ICsz
LDggQEAgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGFjY2VzcyB0byBDU1MgcHJvcAogT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgogCiAKLW5vcm1hbCBjYXNlcwotCiBQQVNTIGVsZW1lbnQuc3R5bGUu
ekluZGV4IGlzICcxJwogUEFTUyBlbGVtZW50LnN0eWxlLlpJbmRleCBpcyB1bmRlZmluZWQuCiAK
LSJwaXhlbCIgcHJlZml4Ci0KLVBBU1MgZWxlbWVudC5zdHlsZS5waXhlbFpJbmRleCBpcyAxCi1Q
QVNTIGVsZW1lbnQuc3R5bGUuUGl4ZWxaSW5kZXggaXMgMQotUEFTUyBlbGVtZW50LnN0eWxlLnBp
eGVsekluZGV4IGlzIHVuZGVmaW5lZC4KLVBBU1MgZWxlbWVudC5zdHlsZS5QaXhlbHpJbmRleCBp
cyB1bmRlZmluZWQuCi0KLSJwb3MiIHByZWZpeAotCi1QQVNTIGVsZW1lbnQuc3R5bGUucG9zWklu
ZGV4IGlzIDEKLVBBU1MgZWxlbWVudC5zdHlsZS5Qb3NaSW5kZXggaXMgMQotUEFTUyBlbGVtZW50
LnN0eWxlLnBvc3pJbmRleCBpcyB1bmRlZmluZWQuCi1QQVNTIGVsZW1lbnQuc3R5bGUuUG9zeklu
ZGV4IGlzIHVuZGVmaW5lZC4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQogVEVT
VCBDT01QTEVURQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0
aW9uL2Nzcy1wcm9wZXJ0aWVzLWNhc2Utc2Vuc2l0aXZlLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3MtcHJvcGVydGllcy1jYXNl
LXNlbnNpdGl2ZS5odG1sCShyZXZpc2lvbiAyNzM2MDMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzcy1wcm9wZXJ0aWVzLWNhc2Utc2Vuc2l0aXZlLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEyLDI5ICsxMiw4IEBAIGRlc2NyaXB0aW9uKAogdmFyIGVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiBlbGVtZW50LnN0eWxlLnpJbmRleCA9
IDE7CiAKLWRlYnVnKCdub3JtYWwgY2FzZXMnKTsKLWRlYnVnKCcnKTsKLQogc2hvdWxkQmUoImVs
ZW1lbnQuc3R5bGUuekluZGV4IiwgIicxJyIpOwogc2hvdWxkQmVVbmRlZmluZWQoImVsZW1lbnQu
c3R5bGUuWkluZGV4Iik7Ci0KLWRlYnVnKCcnKTsKLWRlYnVnKCcicGl4ZWwiIHByZWZpeCcpOwot
ZGVidWcoJycpOwotCi1zaG91bGRCZSgiZWxlbWVudC5zdHlsZS5waXhlbFpJbmRleCIsICIxIik7
Ci1zaG91bGRCZSgiZWxlbWVudC5zdHlsZS5QaXhlbFpJbmRleCIsICIxIik7Ci1zaG91bGRCZVVu
ZGVmaW5lZCgiZWxlbWVudC5zdHlsZS5waXhlbHpJbmRleCIpOwotc2hvdWxkQmVVbmRlZmluZWQo
ImVsZW1lbnQuc3R5bGUuUGl4ZWx6SW5kZXgiKTsKLQotZGVidWcoJycpOwotZGVidWcoJyJwb3Mi
IHByZWZpeCcpOwotZGVidWcoJycpOwotCi1zaG91bGRCZSgiZWxlbWVudC5zdHlsZS5wb3NaSW5k
ZXgiLCAiMSIpOwotc2hvdWxkQmUoImVsZW1lbnQuc3R5bGUuUG9zWkluZGV4IiwgIjEiKTsKLXNo
b3VsZEJlVW5kZWZpbmVkKCJlbGVtZW50LnN0eWxlLnBvc3pJbmRleCIpOwotc2hvdWxkQmVVbmRl
ZmluZWQoImVsZW1lbnQuc3R5bGUuUG9zekluZGV4Iik7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421733</attachid>
            <date>2021-02-26 18:34:51 -0800</date>
            <delta_ts>2021-02-27 09:49:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119712-20210226183450.patch</filename>
            <type>text/plain</type>
            <size>13054</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MzYwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDIxLTAyLTI2ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgJ3Bp
eGVsJyBhbmQgJ3BvcycgQ1NTT00gcHJlZml4ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTcxMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA2
NjA0OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlIHN1cHBvcnQgZm9yIHBpeGVsL3BvcyBwcmVmaXhlZCBwcm9wZXJ0aWVzIG9mIENTU1N0
eWxlRGVjbGFyYXRpb24gd2hpY2gKKyAgICAgICAgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQgYnkg
YW55IG90aGVyIGJyb3dzZXIuCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRDU1NQcm9wZXJ0
eUlERnJvbUphdmFTY3JpcHRQcm9wZXJ0eU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5
bGVEZWNsYXJhdGlvbjo6bmFtZWRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlRGVj
bGFyYXRpb246OnNldE5hbWVkSXRlbSk6CisKIDIwMjEtMDItMjYgIEplYW4tWXZlcyBBdmVuYXJk
ICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNFXSBXZWJDb250ZW50L0dQVSBwcm9jZXNz
IHdpbGwgaGFuZyB3aGVuIGFwcGVuZGluZyBkYXRhIHVuZGVyIHNvbWUgY2lyY3Vtc3RhbmNlcy4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlz
aW9uIDI3MzYwMykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTMgKzQzLDcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKENTU1N0eWxlRGVjbAogCiBuYW1lc3BhY2UgewogCi1lbnVtIGNsYXNzIFByb3BlcnR5
TmFtZVByZWZpeCB7Ci0gICAgTm9uZSwKLSAgICBFcHViLAotICAgIFBpeGVsLAotICAgIFBvcywK
LSAgICBXZWJLaXQKLX07CitlbnVtIGNsYXNzIFByb3BlcnR5TmFtZVByZWZpeCB7IE5vbmUsIEVw
dWIsIFdlYktpdCB9OwogCiB0ZW1wbGF0ZTxzaXplX3QgcHJlZml4Q1N0cmluZ0xlbmd0aD4KIHN0
YXRpYyBpbmxpbmUgYm9vbCBtYXRjaGVzQ1NTUHJvcGVydHlOYW1lUHJlZml4KGNvbnN0IFN0cmlu
Z0ltcGwmIHByb3BlcnR5TmFtZSwgY29uc3QgY2hhciAoJnByZWZpeClbcHJlZml4Q1N0cmluZ0xl
bmd0aF0pCkBAIC05MywxMiArODcsNiBAQCBzdGF0aWMgUHJvcGVydHlOYW1lUHJlZml4IHByb3Bl
cnR5TmFtZVByCiAgICAgICAgIGlmIChtYXRjaGVzQ1NTUHJvcGVydHlOYW1lUHJlZml4KHByb3Bl
cnR5TmFtZSwgImVwdWIiKSkKICAgICAgICAgICAgIHJldHVybiBQcm9wZXJ0eU5hbWVQcmVmaXg6
OkVwdWI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgJ3AnOgotICAgICAgICBpZiAobWF0Y2hl
c0NTU1Byb3BlcnR5TmFtZVByZWZpeChwcm9wZXJ0eU5hbWUsICJwb3MiKSkKLSAgICAgICAgICAg
IHJldHVybiBQcm9wZXJ0eU5hbWVQcmVmaXg6OlBvczsKLSAgICAgICAgaWYgKG1hdGNoZXNDU1NQ
cm9wZXJ0eU5hbWVQcmVmaXgocHJvcGVydHlOYW1lLCAicGl4ZWwiKSkKLSAgICAgICAgICAgIHJl
dHVybiBQcm9wZXJ0eU5hbWVQcmVmaXg6OlBpeGVsOwotICAgICAgICBicmVhazsKICAgICBjYXNl
ICd3JzoKICAgICAgICAgaWYgKG1hdGNoZXNDU1NQcm9wZXJ0eU5hbWVQcmVmaXgocHJvcGVydHlO
YW1lLCAid2Via2l0IikpCiAgICAgICAgICAgICByZXR1cm4gUHJvcGVydHlOYW1lUHJlZml4OjpX
ZWJLaXQ7CkBAIC0xMzEsMzAgKzExOSwyMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgd3JpdGVFcHVi
UHJlZml4KGNoYXIqCiAgICAgKmJ1ZmZlcisrID0gJy0nOwogfQogCi1zdHJ1Y3QgQ1NTUHJvcGVy
dHlJbmZvIHsKLSAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQ7Ci0gICAgYm9vbCBoYWRQaXhl
bE9yUG9zUHJlZml4OwotfTsKLQotc3RhdGljIENTU1Byb3BlcnR5SW5mbyBwYXJzZUphdmFTY3Jp
cHRDU1NQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKQorc3RhdGlj
IENTU1Byb3BlcnR5SUQgcGFyc2VKYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKGNvbnN0IEF0b21T
dHJpbmcmIHByb3BlcnR5TmFtZSkKIHsKLSAgICB1c2luZyBDU1NQcm9wZXJ0eUluZm9NYXAgPSBI
YXNoTWFwPFN0cmluZywgQ1NTUHJvcGVydHlJbmZvPjsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Q1NTUHJvcGVydHlJbmZvTWFwPiBwcm9wZXJ0eUluZm9DYWNoZTsKLQotICAgIENTU1Byb3Bl
cnR5SW5mbyBwcm9wZXJ0eUluZm8gPSB7IENTU1Byb3BlcnR5SW52YWxpZCwgZmFsc2UgfTsKKyAg
ICB1c2luZyBDU1NQcm9wZXJ0eUlETWFwID0gSGFzaE1hcDxTdHJpbmcsIENTU1Byb3BlcnR5SUQ+
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDU1NQcm9wZXJ0eUlETWFwPiBwcm9wZXJ0eUlE
Q2FjaGU7CiAKICAgICBhdXRvKiBwcm9wZXJ0eU5hbWVTdHJpbmcgPSBwcm9wZXJ0eU5hbWUuaW1w
bCgpOwogICAgIGlmICghcHJvcGVydHlOYW1lU3RyaW5nKQotICAgICAgICByZXR1cm4gcHJvcGVy
dHlJbmZvOworICAgICAgICByZXR1cm4gQ1NTUHJvcGVydHlJbnZhbGlkOworCiAgICAgdW5zaWdu
ZWQgbGVuZ3RoID0gcHJvcGVydHlOYW1lU3RyaW5nLT5sZW5ndGgoKTsKICAgICBpZiAoIWxlbmd0
aCkKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5SW5mbzsKKyAgICAgICAgcmV0dXJuIENTU1Byb3Bl
cnR5SW52YWxpZDsKIAotICAgIHByb3BlcnR5SW5mbyA9IHByb3BlcnR5SW5mb0NhY2hlLmdldCgp
LmdldChwcm9wZXJ0eU5hbWVTdHJpbmcpOwotICAgIGlmIChwcm9wZXJ0eUluZm8ucHJvcGVydHlJ
RCkKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5SW5mbzsKLQotICAgIGJvb2wgaGFkUGl4ZWxPclBv
c1ByZWZpeCA9IGZhbHNlOworICAgIGlmIChhdXRvIGlkID0gcHJvcGVydHlJRENhY2hlLmdldCgp
LmdldChwcm9wZXJ0eU5hbWVTdHJpbmcpKQorICAgICAgICByZXR1cm4gaWQ7CiAKICAgICBjb25z
dGV4cHIgc2l6ZV90IGJ1ZmZlclNpemUgPSBtYXhDU1NQcm9wZXJ0eU5hbWVMZW5ndGggKyAxOwog
ICAgIGNoYXIgYnVmZmVyW2J1ZmZlclNpemVdOwpAQCAtMTYyLDIxICsxNDEsMTAgQEAgc3RhdGlj
IENTU1Byb3BlcnR5SW5mbyBwYXJzZUphdmFTY3JpcHRDUwogICAgIGNvbnN0IGNoYXIqIG5hbWUg
PSBidWZmZXJQdHI7CiAKICAgICB1bnNpZ25lZCBpID0gMDsKLSAgICAvLyBQcmVmaXhlcyBQaXhl
bCBhbmQgUG9zIGFyZSBpZ25vcmVkLgotICAgIC8vIFByZWZpeGVzIEFwcGxlLCBLSFRNTCBhbmQg
V2Via2l0IGFyZSB0cmFuc3Bvc2VkIHRvICItd2Via2l0LSIuCi0gICAgLy8gVGhlIHByZWZpeCAi
RXB1YiIgYmVjb21lcyAiLWVwdWItIi4KICAgICBzd2l0Y2ggKHByb3BlcnR5TmFtZVByZWZpeCgq
cHJvcGVydHlOYW1lU3RyaW5nKSkgewogICAgIGNhc2UgUHJvcGVydHlOYW1lUHJlZml4OjpOb25l
OgogICAgICAgICBpZiAoaXNBU0NJSVVwcGVyKCgqcHJvcGVydHlOYW1lU3RyaW5nKVswXSkpCi0g
ICAgICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFByb3BlcnR5TmFtZVByZWZpeDo6UGl4ZWw6Ci0gICAgICAgIGkgKz0gNTsKLSAgICAgICAgaGFk
UGl4ZWxPclBvc1ByZWZpeCA9IHRydWU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvcGVy
dHlOYW1lUHJlZml4OjpQb3M6Ci0gICAgICAgIGkgKz0gMzsKLSAgICAgICAgaGFkUGl4ZWxPclBv
c1ByZWZpeCA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gQ1NTUHJvcGVydHlJbnZhbGlkOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFByb3BlcnR5TmFtZVByZWZpeDo6RXB1YjoKICAgICAg
ICAgd3JpdGVFcHViUHJlZml4KGJ1ZmZlclB0cik7CkBAIC0xOTUsMTcgKzE2MywxNyBAQCBzdGF0
aWMgQ1NTUHJvcGVydHlJbmZvIHBhcnNlSmF2YVNjcmlwdENTCiAgICAgc2l6ZV90IGJ1ZmZlclNp
emVMZWZ0ID0gc3RyaW5nRW5kIC0gYnVmZmVyUHRyOwogICAgIHNpemVfdCBwcm9wZXJ0eVNpemVM
ZWZ0ID0gbGVuZ3RoIC0gaTsKICAgICBpZiAocHJvcGVydHlTaXplTGVmdCA+IGJ1ZmZlclNpemVM
ZWZ0KQotICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOworICAgICAgICByZXR1cm4gQ1NTUHJv
cGVydHlJbnZhbGlkOwogCiAgICAgZm9yICg7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICBV
Q2hhciBjID0gKCpwcm9wZXJ0eU5hbWVTdHJpbmcpW2ldOwogICAgICAgICBpZiAoIWMgfHwgIWlz
QVNDSUkoYykpCi0gICAgICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOyAvLyBpbGxlZ2FsIGNo
YXJhY3RlcgorICAgICAgICAgICAgcmV0dXJuIENTU1Byb3BlcnR5SW52YWxpZDsgLy8gaWxsZWdh
bCBjaGFyYWN0ZXIKICAgICAgICAgaWYgKGlzQVNDSUlVcHBlcihjKSkgewogICAgICAgICAgICAg
c2l6ZV90IGJ1ZmZlclNpemVMZWZ0ID0gc3RyaW5nRW5kIC0gYnVmZmVyUHRyOwogICAgICAgICAg
ICAgc2l6ZV90IHByb3BlcnR5U2l6ZUxlZnQgPSBsZW5ndGggLSBpICsgMTsKICAgICAgICAgICAg
IGlmIChwcm9wZXJ0eVNpemVMZWZ0ID4gYnVmZmVyU2l6ZUxlZnQpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIHByb3BlcnR5SW5mbzsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJvcGVydHlJ
bnZhbGlkOwogICAgICAgICAgICAgKmJ1ZmZlclB0cisrID0gJy0nOwogICAgICAgICAgICAgKmJ1
ZmZlclB0cisrID0gdG9BU0NJSUxvd2VyVW5jaGVja2VkKGMpOwogICAgICAgICB9IGVsc2UKQEAg
LTIyMCwzMCArMTg4LDMyIEBAIHN0YXRpYyBDU1NQcm9wZXJ0eUluZm8gcGFyc2VKYXZhU2NyaXB0
Q1MKICAgICBjc3NQcm9wZXJ0eU5hbWVJT1NBbGlhc2luZyhidWZmZXIsIG5hbWUsIG91dHB1dExl
bmd0aCk7CiAjZW5kaWYKIAotICAgIGF1dG8qIGhhc2hUYWJsZUVudHJ5ID0gZmluZFByb3BlcnR5
KG5hbWUsIG91dHB1dExlbmd0aCk7Ci0gICAgaWYgKGF1dG8gcHJvcGVydHlJRCA9IGhhc2hUYWJs
ZUVudHJ5ID8gaGFzaFRhYmxlRW50cnktPmlkIDogMCkgewotICAgICAgICBhdXRvIGlkID0gc3Rh
dGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4ocHJvcGVydHlJRCk7Ci0gICAgICAgIHByb3BlcnR5SW5m
by5oYWRQaXhlbE9yUG9zUHJlZml4ID0gaGFkUGl4ZWxPclBvc1ByZWZpeDsKLSAgICAgICAgcHJv
cGVydHlJbmZvLnByb3BlcnR5SUQgPSBpZDsKLSAgICAgICAgcHJvcGVydHlJbmZvQ2FjaGUuZ2V0
KCkuYWRkKHByb3BlcnR5TmFtZVN0cmluZywgcHJvcGVydHlJbmZvKTsKLSAgICB9Ci0gICAgcmV0
dXJuIHByb3BlcnR5SW5mbzsKKyAgICBhdXRvIGhhc2hUYWJsZUVudHJ5ID0gZmluZFByb3BlcnR5
KG5hbWUsIG91dHB1dExlbmd0aCk7CisgICAgaWYgKCFoYXNoVGFibGVFbnRyeSkKKyAgICAgICAg
cmV0dXJuIENTU1Byb3BlcnR5SW52YWxpZDsKKworICAgIGF1dG8gaWQgPSBzdGF0aWNfY2FzdDxD
U1NQcm9wZXJ0eUlEPihoYXNoVGFibGVFbnRyeS0+aWQpOworICAgIGlmICghaWQpCisgICAgICAg
IHJldHVybiBDU1NQcm9wZXJ0eUludmFsaWQ7CisKKyAgICBwcm9wZXJ0eUlEQ2FjaGUuZ2V0KCku
YWRkKHByb3BlcnR5TmFtZVN0cmluZywgaWQpOworICAgIHJldHVybiBpZDsKIH0KIAotc3RhdGlj
IENTU1Byb3BlcnR5SW5mbyBwcm9wZXJ0eUluZm9Gcm9tSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFt
ZShjb25zdCBBdG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFNldHRpbmdzKiBzZXR0aW5n
cykKK3N0YXRpYyBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SURGcm9tSmF2YVNjcmlwdENTU1Byb3Bl
cnR5TmFtZShjb25zdCBBdG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFNldHRpbmdzKiBz
ZXR0aW5ncykKIHsKLSAgICBhdXRvIHByb3BlcnR5SW5mbyA9IHBhcnNlSmF2YVNjcmlwdENTU1By
b3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUpOwotICAgIGF1dG8gaWQgPSBwcm9wZXJ0eUluZm8ucHJv
cGVydHlJRDsKKyAgICBhdXRvIGlkID0gcGFyc2VKYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKHBy
b3BlcnR5TmFtZSk7CiAgICAgaWYgKCFpc0VuYWJsZWRDU1NQcm9wZXJ0eShpZCkgfHwgIWlzQ1NT
UHJvcGVydHlFbmFibGVkQnlTZXR0aW5ncyhpZCwgc2V0dGluZ3MpKQotICAgICAgICByZXR1cm4g
eyBDU1NQcm9wZXJ0eUludmFsaWQsIGZhbHNlIH07Ci0gICAgcmV0dXJuIHByb3BlcnR5SW5mbzsK
KyAgICAgICAgcmV0dXJuIENTU1Byb3BlcnR5SW52YWxpZDsKKyAgICByZXR1cm4gaWQ7CiB9CiAK
IH0KIAogQ1NTUHJvcGVydHlJRCBDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRDU1NQcm9wZXJ0eUlE
RnJvbUphdmFTY3JpcHRQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1l
KQogewotICAgIHJldHVybiBwcm9wZXJ0eUluZm9Gcm9tSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFt
ZShwcm9wZXJ0eU5hbWUsIG51bGxwdHIpLnByb3BlcnR5SUQ7CisgICAgLy8gRklYTUU6IFRoaXMg
aXMgZ29pbmcgdG8gcmV0dXJuIGluY29ycmVjdCByZXN1bHRzIGZvciBjc3MgcHJvcGVydGllcyBk
aXNhYmxlZCBieSBTZXR0aW5ncy4KKyAgICByZXR1cm4gcHJvcGVydHlJREZyb21KYXZhU2NyaXB0
Q1NTUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSwgbnVsbHB0cik7CiB9CiAKIGNvbnN0IFNldHRp
bmdzKiBDU1NTdHlsZURlY2xhcmF0aW9uOjpzZXR0aW5ncygpIGNvbnN0CkBAIC0yNTMsMzkgKzIy
MywyOSBAQCBjb25zdCBTZXR0aW5ncyogQ1NTU3R5bGVEZWNsYXJhdGlvbjo6c2V0CiAKIE9wdGlv
bmFsPFZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+PiBDU1NTdHlsZURlY2xhcmF0aW9uOjpuYW1lZEl0
ZW0oY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKQogewotICAgIGF1dG8gcHJvcGVydHlJ
bmZvID0gcHJvcGVydHlJbmZvRnJvbUphdmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUocHJvcGVydHlO
YW1lLCBzZXR0aW5ncygpKTsKLSAgICBpZiAoIXByb3BlcnR5SW5mby5wcm9wZXJ0eUlEKQorICAg
IC8vIEZJWE1FOiBUaGlzIGlzIGdvaW5nIHRvIHJldHVybiBpbmNvcnJlY3QgcmVzdWx0cyBmb3Ig
Y3NzIHByb3BlcnRpZXMgZGlzYWJsZWQgYnkgU2V0dGluZ3MgaWYgc2V0dGluZ3MoKSByZXR1cm5z
IG51bGxwdHIuCisgICAgYXV0byBwcm9wZXJ0eUlEID0gcHJvcGVydHlJREZyb21KYXZhU2NyaXB0
Q1NTUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSwgc2V0dGluZ3MoKSk7CisgICAgaWYgKCFwcm9w
ZXJ0eUlEKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgYXV0byB2YWx1ZSA9
IGdldFByb3BlcnR5Q1NTVmFsdWVJbnRlcm5hbChwcm9wZXJ0eUluZm8ucHJvcGVydHlJRCk7Ci0g
ICAgaWYgKCF2YWx1ZSkgewotICAgICAgICAvLyBJZiB0aGUgcHJvcGVydHkgaXMgYSBzaG9ydGhh
bmQgcHJvcGVydHkgKHN1Y2ggYXMgInBhZGRpbmciKSwgaXQgY2FuIG9ubHkgYmUgYWNjZXNzZWQg
dXNpbmcgZ2V0UHJvcGVydHlWYWx1ZS4KLSAgICAgICAgcmV0dXJuIFZhcmlhbnQ8U3RyaW5nLCBk
b3VibGU+IHsgZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsKHByb3BlcnR5SW5mby5wcm9wZXJ0eUlE
KSB9OwotICAgIH0KLSAgICAKLSAgICBpZiAocHJvcGVydHlJbmZvLmhhZFBpeGVsT3JQb3NQcmVm
aXggJiYgaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkpIHsKLSAgICAgICAgLy8gQ2FsbCB0
aGlzIHZlcnNpb24gb2YgdGhlIGdldHRlciBzbyB0aGF0LCBlLmcuLCBwaXhlbFRvcCByZXR1cm5z
IHRvcCBhcyBhIG51bWJlcgotICAgICAgICAvLyBpbiBwaXhlbCB1bml0cyBhbmQgcG9zVG9wIHNo
b3VsZCBkb2VzIHRoZSBzYW1lIF9pZl8gdGhpcyBpcyBhIHBvc2l0aW9uZWQgZWxlbWVudC4KLSAg
ICAgICAgLy8gRklYTUU6IElmIG5vdCBhIHBvc2l0aW9uZWQgZWxlbWVudCwgTVNJRSBkb2N1bWVu
dGF0aW9uIHNheXMgcG9zVG9wIHNob3VsZCByZXR1cm4gMDsgdGhpcyBydWxlIGlzIG5vdCBpbXBs
ZW1lbnRlZC4KLSAgICAgICAgcmV0dXJuIFZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+IHsgZG93bmNh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkuZmxvYXRWYWx1ZShDU1NVbml0VHlwZTo6Q1NT
X1BYKSB9OwotICAgIH0KKyAgICBpZiAoYXV0byB2YWx1ZSA9IGdldFByb3BlcnR5Q1NTVmFsdWVJ
bnRlcm5hbChwcm9wZXJ0eUlEKSkKKyAgICAgICAgcmV0dXJuIFZhcmlhbnQ8U3RyaW5nLCBkb3Vi
bGU+IHsgdmFsdWUtPmNzc1RleHQoKSB9OwogCi0gICAgcmV0dXJuIFZhcmlhbnQ8U3RyaW5nLCBk
b3VibGU+IHsgdmFsdWUtPmNzc1RleHQoKSB9OworICAgIC8vIElmIHRoZSBwcm9wZXJ0eSBpcyBh
IHNob3J0aGFuZCBwcm9wZXJ0eSAoc3VjaCBhcyAicGFkZGluZyIpLCBpdCBjYW4gb25seSBiZSBh
Y2Nlc3NlZCB1c2luZyBnZXRQcm9wZXJ0eVZhbHVlLgorICAgIHJldHVybiBWYXJpYW50PFN0cmlu
ZywgZG91YmxlPiB7IGdldFByb3BlcnR5VmFsdWVJbnRlcm5hbChwcm9wZXJ0eUlEKSB9OwogfQog
CiBFeGNlcHRpb25Pcjx2b2lkPiBDU1NTdHlsZURlY2xhcmF0aW9uOjpzZXROYW1lZEl0ZW0oY29u
c3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lLCBTdHJpbmcgdmFsdWUsIGJvb2wmIHByb3BlcnR5
U3VwcG9ydGVkKQogewotICAgIGF1dG8gcHJvcGVydHlJbmZvID0gcHJvcGVydHlJbmZvRnJvbUph
dmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lLCBzZXR0aW5ncygpKTsKLSAgICBp
ZiAoIXByb3BlcnR5SW5mby5wcm9wZXJ0eUlEKSB7CisgICAgLy8gRklYTUU6IFRoaXMgaXMgZ29p
bmcgdG8gcmV0dXJuIGluY29ycmVjdCByZXN1bHRzIGZvciBjc3MgcHJvcGVydGllcyBkaXNhYmxl
ZCBieSBTZXR0aW5ncyBpZiBzZXR0aW5ncygpIHJldHVybnMgbnVsbHB0ci4KKyAgICBhdXRvIHBy
b3BlcnR5SUQgPSBwcm9wZXJ0eUlERnJvbUphdmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUocHJvcGVy
dHlOYW1lLCBzZXR0aW5ncygpKTsKKyAgICBpZiAoIXByb3BlcnR5SUQpIHsKICAgICAgICAgcHJv
cGVydHlTdXBwb3J0ZWQgPSBmYWxzZTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKICAg
ICBwcm9wZXJ0eVN1cHBvcnRlZCA9IHRydWU7CiAKLSAgICBpZiAocHJvcGVydHlJbmZvLmhhZFBp
eGVsT3JQb3NQcmVmaXgpCi0gICAgICAgIHZhbHVlLmFwcGVuZCgicHgiKTsKLQogICAgIGJvb2wg
aW1wb3J0YW50ID0gZmFsc2U7CiAgICAgaWYgKERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2hv
dWxkUmVzcGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzKCkpIHsKICAgICAgICAgYXV0
byBpbXBvcnRhbnRJbmRleCA9IHZhbHVlLmZpbmRJZ25vcmluZ0FTQ0lJQ2FzZSgiIWltcG9ydGFu
dCIpOwpAQCAtMjk1LDcgKzI1NSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENTU1N0eWxlRGVjbGFy
YXRpb246OnMKICAgICAgICAgfQogICAgIH0KIAotICAgIGF1dG8gc2V0UHJvcGVydHlJbnRlcm5h
bFJlc3VsdCA9IHNldFByb3BlcnR5SW50ZXJuYWwocHJvcGVydHlJbmZvLnByb3BlcnR5SUQsIHZh
bHVlLCBpbXBvcnRhbnQpOworICAgIGF1dG8gc2V0UHJvcGVydHlJbnRlcm5hbFJlc3VsdCA9IHNl
dFByb3BlcnR5SW50ZXJuYWwocHJvcGVydHlJRCwgdmFsdWUsIGltcG9ydGFudCk7CiAgICAgaWYg
KHNldFByb3BlcnR5SW50ZXJuYWxSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVy
biBzZXRQcm9wZXJ0eUludGVybmFsUmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKIApJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjczNjAzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMjYgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBw
bGUuY29tPgorCisgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yICdwaXhlbCcgYW5kICdwb3MnIENT
U09NIHByZWZpeGVzCisgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExOTcxMgorCisgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAqIGZhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXByb3BlcnRpZXMtY2FzZS1zZW5z
aXRpdmUtZXhwZWN0ZWQudHh0OgorICAgICAgICogZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlv
bi9jc3MtcHJvcGVydGllcy1jYXNlLXNlbnNpdGl2ZS5odG1sOgorICAgICAgICBVcGRhdGUgdGVz
dCB0byByZWZsZWN0IHJlbW92YWwgb2YgcG9zL3BpeGVsIHByZWZpeGVzLgorCiAyMDIxLTAyLTI2
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bQ292ZXJh
Z2VdIERvIG5vdCBiYWlsIG91dCBvbiB0ZXh0IHVuZGVybGluZSBwb3NpdGlvbiB3aGVuIHRleHQt
ZGVjb3JhdGlvbiBpcyAnbm9uZScKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxl
RGVjbGFyYXRpb24vY3NzLXByb3BlcnRpZXMtY2FzZS1zZW5zaXRpdmUtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3Nz
LXByb3BlcnRpZXMtY2FzZS1zZW5zaXRpdmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNzM2MDMp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzcy1wcm9wZXJ0
aWVzLWNhc2Utc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMywyNSAr
Myw4IEBAIFRoaXMgdGVzdCBjaGVja3MgdGhhdCBhY2Nlc3MgdG8gQ1NTIHByb3AKIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KIAogCi1ub3JtYWwgY2FzZXMKLQogUEFTUyBlbGVtZW50LnN0eWxl
LnpJbmRleCBpcyAnMScKIFBBU1MgZWxlbWVudC5zdHlsZS5aSW5kZXggaXMgdW5kZWZpbmVkLgog
Ci0icGl4ZWwiIHByZWZpeAotCi1QQVNTIGVsZW1lbnQuc3R5bGUucGl4ZWxaSW5kZXggaXMgMQot
UEFTUyBlbGVtZW50LnN0eWxlLlBpeGVsWkluZGV4IGlzIDEKLVBBU1MgZWxlbWVudC5zdHlsZS5w
aXhlbHpJbmRleCBpcyB1bmRlZmluZWQuCi1QQVNTIGVsZW1lbnQuc3R5bGUuUGl4ZWx6SW5kZXgg
aXMgdW5kZWZpbmVkLgotCi0icG9zIiBwcmVmaXgKLQotUEFTUyBlbGVtZW50LnN0eWxlLnBvc1pJ
bmRleCBpcyAxCi1QQVNTIGVsZW1lbnQuc3R5bGUuUG9zWkluZGV4IGlzIDEKLVBBU1MgZWxlbWVu
dC5zdHlsZS5wb3N6SW5kZXggaXMgdW5kZWZpbmVkLgotUEFTUyBlbGVtZW50LnN0eWxlLlBvc3pJ
bmRleCBpcyB1bmRlZmluZWQuCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KIFRF
U1QgQ09NUExFVEUKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJh
dGlvbi9jc3MtcHJvcGVydGllcy1jYXNlLXNlbnNpdGl2ZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXByb3BlcnRpZXMtY2Fz
ZS1zZW5zaXRpdmUuaHRtbAkocmV2aXNpb24gMjczNjAzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3MtcHJvcGVydGllcy1jYXNlLXNlbnNpdGl2ZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMiwyOSArMTIsOCBAQCBkZXNjcmlwdGlvbigKIHZhciBlbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogZWxlbWVudC5zdHlsZS56SW5kZXgg
PSAxOwogCi1kZWJ1Zygnbm9ybWFsIGNhc2VzJyk7Ci1kZWJ1ZygnJyk7Ci0KIHNob3VsZEJlKCJl
bGVtZW50LnN0eWxlLnpJbmRleCIsICInMSciKTsKIHNob3VsZEJlVW5kZWZpbmVkKCJlbGVtZW50
LnN0eWxlLlpJbmRleCIpOwotCi1kZWJ1ZygnJyk7Ci1kZWJ1ZygnInBpeGVsIiBwcmVmaXgnKTsK
LWRlYnVnKCcnKTsKLQotc2hvdWxkQmUoImVsZW1lbnQuc3R5bGUucGl4ZWxaSW5kZXgiLCAiMSIp
Owotc2hvdWxkQmUoImVsZW1lbnQuc3R5bGUuUGl4ZWxaSW5kZXgiLCAiMSIpOwotc2hvdWxkQmVV
bmRlZmluZWQoImVsZW1lbnQuc3R5bGUucGl4ZWx6SW5kZXgiKTsKLXNob3VsZEJlVW5kZWZpbmVk
KCJlbGVtZW50LnN0eWxlLlBpeGVsekluZGV4Iik7Ci0KLWRlYnVnKCcnKTsKLWRlYnVnKCcicG9z
IiBwcmVmaXgnKTsKLWRlYnVnKCcnKTsKLQotc2hvdWxkQmUoImVsZW1lbnQuc3R5bGUucG9zWklu
ZGV4IiwgIjEiKTsKLXNob3VsZEJlKCJlbGVtZW50LnN0eWxlLlBvc1pJbmRleCIsICIxIik7Ci1z
aG91bGRCZVVuZGVmaW5lZCgiZWxlbWVudC5zdHlsZS5wb3N6SW5kZXgiKTsKLXNob3VsZEJlVW5k
ZWZpbmVkKCJlbGVtZW50LnN0eWxlLlBvc3pJbmRleCIpOwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421748</attachid>
            <date>2021-02-27 09:50:01 -0800</date>
            <delta_ts>2021-02-27 11:51:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119712-20210227095001.patch</filename>
            <type>text/plain</type>
            <size>13052</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MzYwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDIxLTAyLTI2ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgJ3Bp
eGVsJyBhbmQgJ3BvcycgQ1NTT00gcHJlZml4ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTcxMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA2
NjA0OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlIHN1cHBvcnQgZm9yIHBpeGVsL3BvcyBwcmVmaXhlZCBwcm9wZXJ0aWVzIG9mIENTU1N0
eWxlRGVjbGFyYXRpb24gd2hpY2gKKyAgICAgICAgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQgYnkg
YW55IG90aGVyIGJyb3dzZXIuCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRDU1NQcm9wZXJ0
eUlERnJvbUphdmFTY3JpcHRQcm9wZXJ0eU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5
bGVEZWNsYXJhdGlvbjo6bmFtZWRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlRGVj
bGFyYXRpb246OnNldE5hbWVkSXRlbSk6CisKIDIwMjEtMDItMjYgIEplYW4tWXZlcyBBdmVuYXJk
ICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNFXSBXZWJDb250ZW50L0dQVSBwcm9jZXNz
IHdpbGwgaGFuZyB3aGVuIGFwcGVuZGluZyBkYXRhIHVuZGVyIHNvbWUgY2lyY3Vtc3RhbmNlcy4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlz
aW9uIDI3MzYwMykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTMgKzQzLDcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKENTU1N0eWxlRGVjbAogCiBuYW1lc3BhY2UgewogCi1lbnVtIGNsYXNzIFByb3BlcnR5
TmFtZVByZWZpeCB7Ci0gICAgTm9uZSwKLSAgICBFcHViLAotICAgIFBpeGVsLAotICAgIFBvcywK
LSAgICBXZWJLaXQKLX07CitlbnVtIGNsYXNzIFByb3BlcnR5TmFtZVByZWZpeCB7IE5vbmUsIEVw
dWIsIFdlYktpdCB9OwogCiB0ZW1wbGF0ZTxzaXplX3QgcHJlZml4Q1N0cmluZ0xlbmd0aD4KIHN0
YXRpYyBpbmxpbmUgYm9vbCBtYXRjaGVzQ1NTUHJvcGVydHlOYW1lUHJlZml4KGNvbnN0IFN0cmlu
Z0ltcGwmIHByb3BlcnR5TmFtZSwgY29uc3QgY2hhciAoJnByZWZpeClbcHJlZml4Q1N0cmluZ0xl
bmd0aF0pCkBAIC05MywxMiArODcsNiBAQCBzdGF0aWMgUHJvcGVydHlOYW1lUHJlZml4IHByb3Bl
cnR5TmFtZVByCiAgICAgICAgIGlmIChtYXRjaGVzQ1NTUHJvcGVydHlOYW1lUHJlZml4KHByb3Bl
cnR5TmFtZSwgImVwdWIiKSkKICAgICAgICAgICAgIHJldHVybiBQcm9wZXJ0eU5hbWVQcmVmaXg6
OkVwdWI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgJ3AnOgotICAgICAgICBpZiAobWF0Y2hl
c0NTU1Byb3BlcnR5TmFtZVByZWZpeChwcm9wZXJ0eU5hbWUsICJwb3MiKSkKLSAgICAgICAgICAg
IHJldHVybiBQcm9wZXJ0eU5hbWVQcmVmaXg6OlBvczsKLSAgICAgICAgaWYgKG1hdGNoZXNDU1NQ
cm9wZXJ0eU5hbWVQcmVmaXgocHJvcGVydHlOYW1lLCAicGl4ZWwiKSkKLSAgICAgICAgICAgIHJl
dHVybiBQcm9wZXJ0eU5hbWVQcmVmaXg6OlBpeGVsOwotICAgICAgICBicmVhazsKICAgICBjYXNl
ICd3JzoKICAgICAgICAgaWYgKG1hdGNoZXNDU1NQcm9wZXJ0eU5hbWVQcmVmaXgocHJvcGVydHlO
YW1lLCAid2Via2l0IikpCiAgICAgICAgICAgICByZXR1cm4gUHJvcGVydHlOYW1lUHJlZml4OjpX
ZWJLaXQ7CkBAIC0xMzEsMzAgKzExOSwyMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgd3JpdGVFcHVi
UHJlZml4KGNoYXIqCiAgICAgKmJ1ZmZlcisrID0gJy0nOwogfQogCi1zdHJ1Y3QgQ1NTUHJvcGVy
dHlJbmZvIHsKLSAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQ7Ci0gICAgYm9vbCBoYWRQaXhl
bE9yUG9zUHJlZml4OwotfTsKLQotc3RhdGljIENTU1Byb3BlcnR5SW5mbyBwYXJzZUphdmFTY3Jp
cHRDU1NQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKQorc3RhdGlj
IENTU1Byb3BlcnR5SUQgcGFyc2VKYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKGNvbnN0IEF0b21T
dHJpbmcmIHByb3BlcnR5TmFtZSkKIHsKLSAgICB1c2luZyBDU1NQcm9wZXJ0eUluZm9NYXAgPSBI
YXNoTWFwPFN0cmluZywgQ1NTUHJvcGVydHlJbmZvPjsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Q1NTUHJvcGVydHlJbmZvTWFwPiBwcm9wZXJ0eUluZm9DYWNoZTsKLQotICAgIENTU1Byb3Bl
cnR5SW5mbyBwcm9wZXJ0eUluZm8gPSB7IENTU1Byb3BlcnR5SW52YWxpZCwgZmFsc2UgfTsKKyAg
ICB1c2luZyBDU1NQcm9wZXJ0eUlETWFwID0gSGFzaE1hcDxTdHJpbmcsIENTU1Byb3BlcnR5SUQ+
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDU1NQcm9wZXJ0eUlETWFwPiBwcm9wZXJ0eUlE
Q2FjaGU7CiAKICAgICBhdXRvKiBwcm9wZXJ0eU5hbWVTdHJpbmcgPSBwcm9wZXJ0eU5hbWUuaW1w
bCgpOwogICAgIGlmICghcHJvcGVydHlOYW1lU3RyaW5nKQotICAgICAgICByZXR1cm4gcHJvcGVy
dHlJbmZvOworICAgICAgICByZXR1cm4gQ1NTUHJvcGVydHlJbnZhbGlkOworCiAgICAgdW5zaWdu
ZWQgbGVuZ3RoID0gcHJvcGVydHlOYW1lU3RyaW5nLT5sZW5ndGgoKTsKICAgICBpZiAoIWxlbmd0
aCkKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5SW5mbzsKKyAgICAgICAgcmV0dXJuIENTU1Byb3Bl
cnR5SW52YWxpZDsKIAotICAgIHByb3BlcnR5SW5mbyA9IHByb3BlcnR5SW5mb0NhY2hlLmdldCgp
LmdldChwcm9wZXJ0eU5hbWVTdHJpbmcpOwotICAgIGlmIChwcm9wZXJ0eUluZm8ucHJvcGVydHlJ
RCkKLSAgICAgICAgcmV0dXJuIHByb3BlcnR5SW5mbzsKLQotICAgIGJvb2wgaGFkUGl4ZWxPclBv
c1ByZWZpeCA9IGZhbHNlOworICAgIGlmIChhdXRvIGlkID0gcHJvcGVydHlJRENhY2hlLmdldCgp
LmdldChwcm9wZXJ0eU5hbWVTdHJpbmcpKQorICAgICAgICByZXR1cm4gaWQ7CiAKICAgICBjb25z
dGV4cHIgc2l6ZV90IGJ1ZmZlclNpemUgPSBtYXhDU1NQcm9wZXJ0eU5hbWVMZW5ndGggKyAxOwog
ICAgIGNoYXIgYnVmZmVyW2J1ZmZlclNpemVdOwpAQCAtMTYyLDIxICsxNDEsMTAgQEAgc3RhdGlj
IENTU1Byb3BlcnR5SW5mbyBwYXJzZUphdmFTY3JpcHRDUwogICAgIGNvbnN0IGNoYXIqIG5hbWUg
PSBidWZmZXJQdHI7CiAKICAgICB1bnNpZ25lZCBpID0gMDsKLSAgICAvLyBQcmVmaXhlcyBQaXhl
bCBhbmQgUG9zIGFyZSBpZ25vcmVkLgotICAgIC8vIFByZWZpeGVzIEFwcGxlLCBLSFRNTCBhbmQg
V2Via2l0IGFyZSB0cmFuc3Bvc2VkIHRvICItd2Via2l0LSIuCi0gICAgLy8gVGhlIHByZWZpeCAi
RXB1YiIgYmVjb21lcyAiLWVwdWItIi4KICAgICBzd2l0Y2ggKHByb3BlcnR5TmFtZVByZWZpeCgq
cHJvcGVydHlOYW1lU3RyaW5nKSkgewogICAgIGNhc2UgUHJvcGVydHlOYW1lUHJlZml4OjpOb25l
OgogICAgICAgICBpZiAoaXNBU0NJSVVwcGVyKCgqcHJvcGVydHlOYW1lU3RyaW5nKVswXSkpCi0g
ICAgICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFByb3BlcnR5TmFtZVByZWZpeDo6UGl4ZWw6Ci0gICAgICAgIGkgKz0gNTsKLSAgICAgICAgaGFk
UGl4ZWxPclBvc1ByZWZpeCA9IHRydWU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvcGVy
dHlOYW1lUHJlZml4OjpQb3M6Ci0gICAgICAgIGkgKz0gMzsKLSAgICAgICAgaGFkUGl4ZWxPclBv
c1ByZWZpeCA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gQ1NTUHJvcGVydHlJbnZhbGlkOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFByb3BlcnR5TmFtZVByZWZpeDo6RXB1YjoKICAgICAg
ICAgd3JpdGVFcHViUHJlZml4KGJ1ZmZlclB0cik7CkBAIC0xOTUsMTcgKzE2MywxNyBAQCBzdGF0
aWMgQ1NTUHJvcGVydHlJbmZvIHBhcnNlSmF2YVNjcmlwdENTCiAgICAgc2l6ZV90IGJ1ZmZlclNp
emVMZWZ0ID0gc3RyaW5nRW5kIC0gYnVmZmVyUHRyOwogICAgIHNpemVfdCBwcm9wZXJ0eVNpemVM
ZWZ0ID0gbGVuZ3RoIC0gaTsKICAgICBpZiAocHJvcGVydHlTaXplTGVmdCA+IGJ1ZmZlclNpemVM
ZWZ0KQotICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOworICAgICAgICByZXR1cm4gQ1NTUHJv
cGVydHlJbnZhbGlkOwogCiAgICAgZm9yICg7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICBV
Q2hhciBjID0gKCpwcm9wZXJ0eU5hbWVTdHJpbmcpW2ldOwogICAgICAgICBpZiAoIWMgfHwgIWlz
QVNDSUkoYykpCi0gICAgICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOyAvLyBpbGxlZ2FsIGNo
YXJhY3RlcgorICAgICAgICAgICAgcmV0dXJuIENTU1Byb3BlcnR5SW52YWxpZDsgLy8gaWxsZWdh
bCBjaGFyYWN0ZXIKICAgICAgICAgaWYgKGlzQVNDSUlVcHBlcihjKSkgewogICAgICAgICAgICAg
c2l6ZV90IGJ1ZmZlclNpemVMZWZ0ID0gc3RyaW5nRW5kIC0gYnVmZmVyUHRyOwogICAgICAgICAg
ICAgc2l6ZV90IHByb3BlcnR5U2l6ZUxlZnQgPSBsZW5ndGggLSBpICsgMTsKICAgICAgICAgICAg
IGlmIChwcm9wZXJ0eVNpemVMZWZ0ID4gYnVmZmVyU2l6ZUxlZnQpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIHByb3BlcnR5SW5mbzsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJvcGVydHlJ
bnZhbGlkOwogICAgICAgICAgICAgKmJ1ZmZlclB0cisrID0gJy0nOwogICAgICAgICAgICAgKmJ1
ZmZlclB0cisrID0gdG9BU0NJSUxvd2VyVW5jaGVja2VkKGMpOwogICAgICAgICB9IGVsc2UKQEAg
LTIyMCwzMCArMTg4LDMyIEBAIHN0YXRpYyBDU1NQcm9wZXJ0eUluZm8gcGFyc2VKYXZhU2NyaXB0
Q1MKICAgICBjc3NQcm9wZXJ0eU5hbWVJT1NBbGlhc2luZyhidWZmZXIsIG5hbWUsIG91dHB1dExl
bmd0aCk7CiAjZW5kaWYKIAotICAgIGF1dG8qIGhhc2hUYWJsZUVudHJ5ID0gZmluZFByb3BlcnR5
KG5hbWUsIG91dHB1dExlbmd0aCk7Ci0gICAgaWYgKGF1dG8gcHJvcGVydHlJRCA9IGhhc2hUYWJs
ZUVudHJ5ID8gaGFzaFRhYmxlRW50cnktPmlkIDogMCkgewotICAgICAgICBhdXRvIGlkID0gc3Rh
dGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4ocHJvcGVydHlJRCk7Ci0gICAgICAgIHByb3BlcnR5SW5m
by5oYWRQaXhlbE9yUG9zUHJlZml4ID0gaGFkUGl4ZWxPclBvc1ByZWZpeDsKLSAgICAgICAgcHJv
cGVydHlJbmZvLnByb3BlcnR5SUQgPSBpZDsKLSAgICAgICAgcHJvcGVydHlJbmZvQ2FjaGUuZ2V0
KCkuYWRkKHByb3BlcnR5TmFtZVN0cmluZywgcHJvcGVydHlJbmZvKTsKLSAgICB9Ci0gICAgcmV0
dXJuIHByb3BlcnR5SW5mbzsKKyAgICBhdXRvIGhhc2hUYWJsZUVudHJ5ID0gZmluZFByb3BlcnR5
KG5hbWUsIG91dHB1dExlbmd0aCk7CisgICAgaWYgKCFoYXNoVGFibGVFbnRyeSkKKyAgICAgICAg
cmV0dXJuIENTU1Byb3BlcnR5SW52YWxpZDsKKworICAgIGF1dG8gaWQgPSBzdGF0aWNfY2FzdDxD
U1NQcm9wZXJ0eUlEPihoYXNoVGFibGVFbnRyeS0+aWQpOworICAgIGlmICghaWQpCisgICAgICAg
IHJldHVybiBDU1NQcm9wZXJ0eUludmFsaWQ7CisKKyAgICBwcm9wZXJ0eUlEQ2FjaGUuZ2V0KCku
YWRkKHByb3BlcnR5TmFtZVN0cmluZywgaWQpOworICAgIHJldHVybiBpZDsKIH0KIAotc3RhdGlj
IENTU1Byb3BlcnR5SW5mbyBwcm9wZXJ0eUluZm9Gcm9tSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFt
ZShjb25zdCBBdG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFNldHRpbmdzKiBzZXR0aW5n
cykKK3N0YXRpYyBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SURGcm9tSmF2YVNjcmlwdENTU1Byb3Bl
cnR5TmFtZShjb25zdCBBdG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFNldHRpbmdzKiBz
ZXR0aW5ncykKIHsKLSAgICBhdXRvIHByb3BlcnR5SW5mbyA9IHBhcnNlSmF2YVNjcmlwdENTU1By
b3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUpOwotICAgIGF1dG8gaWQgPSBwcm9wZXJ0eUluZm8ucHJv
cGVydHlJRDsKKyAgICBhdXRvIGlkID0gcGFyc2VKYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKHBy
b3BlcnR5TmFtZSk7CiAgICAgaWYgKCFpc0VuYWJsZWRDU1NQcm9wZXJ0eShpZCkgfHwgIWlzQ1NT
UHJvcGVydHlFbmFibGVkQnlTZXR0aW5ncyhpZCwgc2V0dGluZ3MpKQotICAgICAgICByZXR1cm4g
eyBDU1NQcm9wZXJ0eUludmFsaWQsIGZhbHNlIH07Ci0gICAgcmV0dXJuIHByb3BlcnR5SW5mbzsK
KyAgICAgICAgcmV0dXJuIENTU1Byb3BlcnR5SW52YWxpZDsKKyAgICByZXR1cm4gaWQ7CiB9CiAK
IH0KIAogQ1NTUHJvcGVydHlJRCBDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRDU1NQcm9wZXJ0eUlE
RnJvbUphdmFTY3JpcHRQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1l
KQogewotICAgIHJldHVybiBwcm9wZXJ0eUluZm9Gcm9tSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFt
ZShwcm9wZXJ0eU5hbWUsIG51bGxwdHIpLnByb3BlcnR5SUQ7CisgICAgLy8gRklYTUU6IFRoaXMg
aXMgZ29pbmcgdG8gcmV0dXJuIGluY29ycmVjdCByZXN1bHRzIGZvciBjc3MgcHJvcGVydGllcyBk
aXNhYmxlZCBieSBTZXR0aW5ncy4KKyAgICByZXR1cm4gcHJvcGVydHlJREZyb21KYXZhU2NyaXB0
Q1NTUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSwgbnVsbHB0cik7CiB9CiAKIGNvbnN0IFNldHRp
bmdzKiBDU1NTdHlsZURlY2xhcmF0aW9uOjpzZXR0aW5ncygpIGNvbnN0CkBAIC0yNTMsMzkgKzIy
MywyOSBAQCBjb25zdCBTZXR0aW5ncyogQ1NTU3R5bGVEZWNsYXJhdGlvbjo6c2V0CiAKIE9wdGlv
bmFsPFZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+PiBDU1NTdHlsZURlY2xhcmF0aW9uOjpuYW1lZEl0
ZW0oY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKQogewotICAgIGF1dG8gcHJvcGVydHlJ
bmZvID0gcHJvcGVydHlJbmZvRnJvbUphdmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUocHJvcGVydHlO
YW1lLCBzZXR0aW5ncygpKTsKLSAgICBpZiAoIXByb3BlcnR5SW5mby5wcm9wZXJ0eUlEKQorICAg
IC8vIEZJWE1FOiBUaGlzIGlzIGdvaW5nIHRvIHJldHVybiBpbmNvcnJlY3QgcmVzdWx0cyBmb3Ig
Y3NzIHByb3BlcnRpZXMgZGlzYWJsZWQgYnkgU2V0dGluZ3MgaWYgc2V0dGluZ3MoKSByZXR1cm5z
IG51bGxwdHIuCisgICAgYXV0byBwcm9wZXJ0eUlEID0gcHJvcGVydHlJREZyb21KYXZhU2NyaXB0
Q1NTUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSwgc2V0dGluZ3MoKSk7CisgICAgaWYgKCFwcm9w
ZXJ0eUlEKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgYXV0byB2YWx1ZSA9
IGdldFByb3BlcnR5Q1NTVmFsdWVJbnRlcm5hbChwcm9wZXJ0eUluZm8ucHJvcGVydHlJRCk7Ci0g
ICAgaWYgKCF2YWx1ZSkgewotICAgICAgICAvLyBJZiB0aGUgcHJvcGVydHkgaXMgYSBzaG9ydGhh
bmQgcHJvcGVydHkgKHN1Y2ggYXMgInBhZGRpbmciKSwgaXQgY2FuIG9ubHkgYmUgYWNjZXNzZWQg
dXNpbmcgZ2V0UHJvcGVydHlWYWx1ZS4KLSAgICAgICAgcmV0dXJuIFZhcmlhbnQ8U3RyaW5nLCBk
b3VibGU+IHsgZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsKHByb3BlcnR5SW5mby5wcm9wZXJ0eUlE
KSB9OwotICAgIH0KLSAgICAKLSAgICBpZiAocHJvcGVydHlJbmZvLmhhZFBpeGVsT3JQb3NQcmVm
aXggJiYgaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkpIHsKLSAgICAgICAgLy8gQ2FsbCB0
aGlzIHZlcnNpb24gb2YgdGhlIGdldHRlciBzbyB0aGF0LCBlLmcuLCBwaXhlbFRvcCByZXR1cm5z
IHRvcCBhcyBhIG51bWJlcgotICAgICAgICAvLyBpbiBwaXhlbCB1bml0cyBhbmQgcG9zVG9wIHNo
b3VsZCBkb2VzIHRoZSBzYW1lIF9pZl8gdGhpcyBpcyBhIHBvc2l0aW9uZWQgZWxlbWVudC4KLSAg
ICAgICAgLy8gRklYTUU6IElmIG5vdCBhIHBvc2l0aW9uZWQgZWxlbWVudCwgTVNJRSBkb2N1bWVu
dGF0aW9uIHNheXMgcG9zVG9wIHNob3VsZCByZXR1cm4gMDsgdGhpcyBydWxlIGlzIG5vdCBpbXBs
ZW1lbnRlZC4KLSAgICAgICAgcmV0dXJuIFZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+IHsgZG93bmNh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkuZmxvYXRWYWx1ZShDU1NVbml0VHlwZTo6Q1NT
X1BYKSB9OwotICAgIH0KKyAgICBpZiAoYXV0byB2YWx1ZSA9IGdldFByb3BlcnR5Q1NTVmFsdWVJ
bnRlcm5hbChwcm9wZXJ0eUlEKSkKKyAgICAgICAgcmV0dXJuIFZhcmlhbnQ8U3RyaW5nLCBkb3Vi
bGU+IHsgdmFsdWUtPmNzc1RleHQoKSB9OwogCi0gICAgcmV0dXJuIFZhcmlhbnQ8U3RyaW5nLCBk
b3VibGU+IHsgdmFsdWUtPmNzc1RleHQoKSB9OworICAgIC8vIElmIHRoZSBwcm9wZXJ0eSBpcyBh
IHNob3J0aGFuZCBwcm9wZXJ0eSAoc3VjaCBhcyAicGFkZGluZyIpLCBpdCBjYW4gb25seSBiZSBh
Y2Nlc3NlZCB1c2luZyBnZXRQcm9wZXJ0eVZhbHVlLgorICAgIHJldHVybiBWYXJpYW50PFN0cmlu
ZywgZG91YmxlPiB7IGdldFByb3BlcnR5VmFsdWVJbnRlcm5hbChwcm9wZXJ0eUlEKSB9OwogfQog
CiBFeGNlcHRpb25Pcjx2b2lkPiBDU1NTdHlsZURlY2xhcmF0aW9uOjpzZXROYW1lZEl0ZW0oY29u
c3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lLCBTdHJpbmcgdmFsdWUsIGJvb2wmIHByb3BlcnR5
U3VwcG9ydGVkKQogewotICAgIGF1dG8gcHJvcGVydHlJbmZvID0gcHJvcGVydHlJbmZvRnJvbUph
dmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lLCBzZXR0aW5ncygpKTsKLSAgICBp
ZiAoIXByb3BlcnR5SW5mby5wcm9wZXJ0eUlEKSB7CisgICAgLy8gRklYTUU6IFRoaXMgaXMgZ29p
bmcgdG8gcmV0dXJuIGluY29ycmVjdCByZXN1bHRzIGZvciBjc3MgcHJvcGVydGllcyBkaXNhYmxl
ZCBieSBTZXR0aW5ncyBpZiBzZXR0aW5ncygpIHJldHVybnMgbnVsbHB0ci4KKyAgICBhdXRvIHBy
b3BlcnR5SUQgPSBwcm9wZXJ0eUlERnJvbUphdmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUocHJvcGVy
dHlOYW1lLCBzZXR0aW5ncygpKTsKKyAgICBpZiAoIXByb3BlcnR5SUQpIHsKICAgICAgICAgcHJv
cGVydHlTdXBwb3J0ZWQgPSBmYWxzZTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKICAg
ICBwcm9wZXJ0eVN1cHBvcnRlZCA9IHRydWU7CiAKLSAgICBpZiAocHJvcGVydHlJbmZvLmhhZFBp
eGVsT3JQb3NQcmVmaXgpCi0gICAgICAgIHZhbHVlLmFwcGVuZCgicHgiKTsKLQogICAgIGJvb2wg
aW1wb3J0YW50ID0gZmFsc2U7CiAgICAgaWYgKERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2hv
dWxkUmVzcGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzKCkpIHsKICAgICAgICAgYXV0
byBpbXBvcnRhbnRJbmRleCA9IHZhbHVlLmZpbmRJZ25vcmluZ0FTQ0lJQ2FzZSgiIWltcG9ydGFu
dCIpOwpAQCAtMjk1LDcgKzI1NSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENTU1N0eWxlRGVjbGFy
YXRpb246OnMKICAgICAgICAgfQogICAgIH0KIAotICAgIGF1dG8gc2V0UHJvcGVydHlJbnRlcm5h
bFJlc3VsdCA9IHNldFByb3BlcnR5SW50ZXJuYWwocHJvcGVydHlJbmZvLnByb3BlcnR5SUQsIHZh
bHVlLCBpbXBvcnRhbnQpOworICAgIGF1dG8gc2V0UHJvcGVydHlJbnRlcm5hbFJlc3VsdCA9IHNl
dFByb3BlcnR5SW50ZXJuYWwocHJvcGVydHlJRCwgdmFsdWUsIGltcG9ydGFudCk7CiAgICAgaWYg
KHNldFByb3BlcnR5SW50ZXJuYWxSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVy
biBzZXRQcm9wZXJ0eUludGVybmFsUmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKIApJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjczNjAzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMjYgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBw
bGUuY29tPgorCisgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yICdwaXhlbCcgYW5kICdwb3MnIENT
U09NIHByZWZpeGVzCisgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExOTcxMgorCisgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAqIGZhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXByb3BlcnRpZXMtY2FzZS1zZW5z
aXRpdmUtZXhwZWN0ZWQudHh0OgorICAgICAgICogZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlv
bi9jc3MtcHJvcGVydGllcy1jYXNlLXNlbnNpdGl2ZS5odG1sOgorICAgICAgICBVcGRhdGUgdGVz
dCB0byByZWZsZWN0IHJlbW92YWwgb2YgcG9zL3BpeGVsIHByZWZpeGVzLgorCiAyMDIxLTAyLTI2
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bQ292ZXJh
Z2VdIERvIG5vdCBiYWlsIG91dCBvbiB0ZXh0IHVuZGVybGluZSBwb3NpdGlvbiB3aGVuIHRleHQt
ZGVjb3JhdGlvbiBpcyAnbm9uZScKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxl
RGVjbGFyYXRpb24vY3NzLXByb3BlcnRpZXMtY2FzZS1zZW5zaXRpdmUtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3Nz
LXByb3BlcnRpZXMtY2FzZS1zZW5zaXRpdmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNzM2MDMp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzcy1wcm9wZXJ0
aWVzLWNhc2Utc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMywyNCAr
Myw4IEBAIFRoaXMgdGVzdCBjaGVja3MgdGhhdCBhY2Nlc3MgdG8gQ1NTIHByb3AKIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KIAogCi1ub3JtYWwgY2FzZXMKLQogUEFTUyBlbGVtZW50LnN0eWxl
LnpJbmRleCBpcyAnMScKIFBBU1MgZWxlbWVudC5zdHlsZS5aSW5kZXggaXMgdW5kZWZpbmVkLgot
Ci0icGl4ZWwiIHByZWZpeAotCi1QQVNTIGVsZW1lbnQuc3R5bGUucGl4ZWxaSW5kZXggaXMgMQot
UEFTUyBlbGVtZW50LnN0eWxlLlBpeGVsWkluZGV4IGlzIDEKLVBBU1MgZWxlbWVudC5zdHlsZS5w
aXhlbHpJbmRleCBpcyB1bmRlZmluZWQuCi1QQVNTIGVsZW1lbnQuc3R5bGUuUGl4ZWx6SW5kZXgg
aXMgdW5kZWZpbmVkLgotCi0icG9zIiBwcmVmaXgKLQotUEFTUyBlbGVtZW50LnN0eWxlLnBvc1pJ
bmRleCBpcyAxCi1QQVNTIGVsZW1lbnQuc3R5bGUuUG9zWkluZGV4IGlzIDEKLVBBU1MgZWxlbWVu
dC5zdHlsZS5wb3N6SW5kZXggaXMgdW5kZWZpbmVkLgotUEFTUyBlbGVtZW50LnN0eWxlLlBvc3pJ
bmRleCBpcyB1bmRlZmluZWQuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRF
U1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRp
b24vY3NzLXByb3BlcnRpZXMtY2FzZS1zZW5zaXRpdmUuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzcy1wcm9wZXJ0aWVzLWNhc2Ut
c2Vuc2l0aXZlLmh0bWwJKHJldmlzaW9uIDI3MzYwMykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L0NTU1N0eWxlRGVjbGFyYXRpb24vY3NzLXByb3BlcnRpZXMtY2FzZS1zZW5zaXRpdmUuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMTIsMjkgKzEyLDggQEAgZGVzY3JpcHRpb24oCiB2YXIgZWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKIGVsZW1lbnQuc3R5bGUuekluZGV4ID0g
MTsKIAotZGVidWcoJ25vcm1hbCBjYXNlcycpOwotZGVidWcoJycpOwotCiBzaG91bGRCZSgiZWxl
bWVudC5zdHlsZS56SW5kZXgiLCAiJzEnIik7CiBzaG91bGRCZVVuZGVmaW5lZCgiZWxlbWVudC5z
dHlsZS5aSW5kZXgiKTsKLQotZGVidWcoJycpOwotZGVidWcoJyJwaXhlbCIgcHJlZml4Jyk7Ci1k
ZWJ1ZygnJyk7Ci0KLXNob3VsZEJlKCJlbGVtZW50LnN0eWxlLnBpeGVsWkluZGV4IiwgIjEiKTsK
LXNob3VsZEJlKCJlbGVtZW50LnN0eWxlLlBpeGVsWkluZGV4IiwgIjEiKTsKLXNob3VsZEJlVW5k
ZWZpbmVkKCJlbGVtZW50LnN0eWxlLnBpeGVsekluZGV4Iik7Ci1zaG91bGRCZVVuZGVmaW5lZCgi
ZWxlbWVudC5zdHlsZS5QaXhlbHpJbmRleCIpOwotCi1kZWJ1ZygnJyk7Ci1kZWJ1ZygnInBvcyIg
cHJlZml4Jyk7Ci1kZWJ1ZygnJyk7Ci0KLXNob3VsZEJlKCJlbGVtZW50LnN0eWxlLnBvc1pJbmRl
eCIsICIxIik7Ci1zaG91bGRCZSgiZWxlbWVudC5zdHlsZS5Qb3NaSW5kZXgiLCAiMSIpOwotc2hv
dWxkQmVVbmRlZmluZWQoImVsZW1lbnQuc3R5bGUucG9zekluZGV4Iik7Ci1zaG91bGRCZVVuZGVm
aW5lZCgiZWxlbWVudC5zdHlsZS5Qb3N6SW5kZXgiKTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>