<?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>241442</bug_id>
          
          <creation_ts>2022-06-08 18:03:00 -0700</creation_ts>
          <short_desc>Repaint rect does not take into account text-underline-offset</short_desc>
          <delta_ts>2022-07-10 06:54:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>241471</dependson>
    
    <dependson>241474</dependson>
    
    <dependson>241488</dependson>
    
    <dependson>241490</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee554</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>koivisto</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1874864</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee554</who>
    <bug_when>2022-06-08 18:03:00 -0700</bug_when>
    <thetext>https://codepen.io/legion80/pen/MWQPoRZ

Hover over the two links.

The hover should turn the underline color to red. It does when the decoration is within the bounding box of the text, but does not when it&apos;s outside.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874872</commentid>
    <comment_count>1</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-06-08 19:11:29 -0700</bug_when>
    <thetext>It looks like the underline is supposed to be part of the ink overflow but for some reason we don&apos;t take it into account when computing it. When ink overflow is inflated with box-shadow, repaint works just fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874875</commentid>
    <comment_count>2</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-06-08 19:15:24 -0700</bug_when>
    <thetext>https://jsfiddle.net/7f16hr4d/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874876</commentid>
    <comment_count>3</comment_count>
      <attachid>460109</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-06-08 19:30:28 -0700</bug_when>
    <thetext>Created attachment 460109
Test reduction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874878</commentid>
    <comment_count>4</comment_count>
      <attachid>460110</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-06-08 19:32:35 -0700</bug_when>
    <thetext>Created attachment 460110
Test reduction

make it less flaky by adding some non-zero timeout</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874879</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-06-08 19:50:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/94686075&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875173</commentid>
    <comment_count>6</comment_count>
      <attachid>460155</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-06-09 21:34:33 -0700</bug_when>
    <thetext>Created attachment 460155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875175</commentid>
    <comment_count>7</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-06-09 21:40:53 -0700</bug_when>
    <thetext>(In reply to zalan from comment #6)
&gt; Created attachment 460155 [details]
&gt; Patch
need to come up with some test cases including vertical and flipped modes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875269</commentid>
    <comment_count>8</comment_count>
      <attachid>460163</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-06-10 10:46:13 -0700</bug_when>
    <thetext>Created attachment 460163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875274</commentid>
    <comment_count>9</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-06-10 11:24:55 -0700</bug_when>
    <thetext>Last time I tried to do this, it caused a large performance regression due to repaint rects intersecting new renderers, which caused more to be rendered than used to be rendered. Are you confident this doesn&apos;t cause a performance regression?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875275</commentid>
    <comment_count>10</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-06-10 11:26:37 -0700</bug_when>
    <thetext>See https://bugs.webkit.org/show_bug.cgi?id=190774</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875277</commentid>
    <comment_count>11</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-06-10 11:39:04 -0700</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #9)
&gt; Last time I tried to do this, it caused a large performance regression due
&gt; to repaint rects intersecting new renderers, which caused more to be
&gt; rendered than used to be rendered. Are you confident this doesn&apos;t cause a
&gt; performance regression?
Wasn&apos;t that mostly about RenderStyle::changeAffectsVisualOverflow (https://trac.webkit.org/changeset/244277)? None of that has changed here. This is about matching ink overflow produced by legacy line layout (and while this patch certainly has performance implications when certain properties are present, we don&apos;t really have a choice but inflate the ink overflow rect as needed).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875286</commentid>
    <comment_count>12</comment_count>
      <attachid>460163</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-06-10 12:13:18 -0700</bug_when>
    <thetext>Comment on attachment 460163
Patch

repaintrect height went from 12 to 13 (probably because of the +1 to compensate for the integral ceiling in GraphicsContext::computeLineBoundsAndAntialiasingModeForText()
will rebaseline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875343</commentid>
    <comment_count>13</comment_count>
      <attachid>460171</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-06-10 17:01:44 -0700</bug_when>
    <thetext>Created attachment 460171
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875371</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-06-10 22:34:51 -0700</bug_when>
    <thetext>Committed r295472 (251477@main): &lt;https://commits.webkit.org/251477@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 460171.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875386</commentid>
    <comment_count>15</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-06-11 06:56:29 -0700</bug_when>
    <thetext>Thank you for reporting this bug!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875394</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-06-11 09:52:19 -0700</bug_when>
    <thetext>In future can just use “internals” instead of “window.internals” in almost all cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875405</commentid>
    <comment_count>17</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-06-11 15:51:17 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #16)
&gt; In future can just use “internals” instead of “window.internals” in almost
&gt; all cases.
Thanks, will do!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1881941</commentid>
    <comment_count>18</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-07-10 06:54:29 -0700</bug_when>
    <thetext>*** Bug 242570 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>460109</attachid>
            <date>2022-06-08 19:30:28 -0700</date>
            <delta_ts>2022-06-08 19:32:35 -0700</delta_ts>
            <desc>Test reduction</desc>
            <filename>241442.html</filename>
            <type>text/html</type>
            <size>253</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">PHN0eWxlPgpzcGFuIHsKICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICB0ZXh0LXVuZGVy
bGluZS1vZmZzZXQ6IDEwcHg7CiAgY29sb3I6IHJlZDsKfQo8L3N0eWxlPgo8ZGl2PjxzcGFuIGlk
PSJiIj5QQVNTIGlmIHRoZSB1bmRlcmxpbmUgaXMgZ3JlZW48L3NwYW4+PC9kaXY+CjxzY3JpcHQ+
CnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgYi5zdHlsZS50ZXh0RGVjb3JhdGlvbkNvbG9yID0g
ImdyZWVuIjsKfSwgMCk7Cjwvc2NyaXB0Pg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>460110</attachid>
            <date>2022-06-08 19:32:35 -0700</date>
            <delta_ts>2022-06-08 19:32:35 -0700</delta_ts>
            <desc>Test reduction</desc>
            <filename>241442.html</filename>
            <type>text/html</type>
            <size>256</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">PHN0eWxlPgpzcGFuIHsKICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICB0ZXh0LXVuZGVy
bGluZS1vZmZzZXQ6IDEwcHg7CiAgY29sb3I6IHJlZDsKfQo8L3N0eWxlPgo8ZGl2PjxzcGFuIGlk
PSJiIj5QQVNTIGlmIHRoZSB1bmRlcmxpbmUgaXMgZ3JlZW48L3NwYW4+PC9kaXY+CjxzY3JpcHQ+
CnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgYi5zdHlsZS50ZXh0RGVjb3JhdGlvbkNvbG9yID0g
ImdyZWVuIjsKfSwgMTAwMCk7Cjwvc2NyaXB0Pg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>460155</attachid>
            <date>2022-06-09 21:34:33 -0700</date>
            <delta_ts>2022-06-10 10:46:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-241442-20220609213433.patch</filename>
            <type>text/plain</type>
            <size>9366</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBhYWIyNzFhNmM1NjY3NzM0NmY1ZTJjOGI4NWI2NGYzMWRiNzY0YTZhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBU
aHUsIDkgSnVuIDIwMjIgMjE6Mjk6NDcgLTA3MDAKU3ViamVjdDogW1BBVENIXSBSZXBhaW50IHJl
Y3QgZG9lcyBub3QgdGFrZSBpbnRvIGFjY291bnQgdGV4dC11bmRlcmxpbmUtb2Zmc2V0CiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQxNDQyCgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCk5lZWQgdGVzdCBjYXNlLgoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVp
bGRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6
YnVpbGQpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmNv
bGxlY3RJbmtPdmVyZmxvd0ZvcklubGluZUJveGVzKToKKFdlYkNvcmU6OkxheW91dDo6dmlzdWFs
Qm90dG9tRm9yVGV4dERlY29yYXRpb25Db250ZW50KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5l
RGlzcGxheUNvbnRlbnRCdWlsZGVyOjpjb2xsZWN0SW5rT3ZlcmZsb3dGb3JUZXh0RGVjb3JhdGlv
bnMpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rp
c3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmg6CiogU291cmNlL1dlYkNvcmUvc3R5
bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcDoKKFdlYkNvcmU6OnZpc3VhbE92ZXJmbG93Rm9yRGVj
b3JhdGlvbnMpOgooV2ViQ29yZTo6ZGVmYXVsdEdhcCk6CiogU291cmNlL1dlYkNvcmUvc3R5bGUv
SW5saW5lVGV4dEJveFN0eWxlLmg6Ci0tLQogLi4uL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRl
bnRCdWlsZGVyLmNwcCAgIHwgNTIgKysrKysrKysrKysrKysrKysrLQogLi4uL2Rpc3BsYXkvSW5s
aW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmggICAgIHwgIDEgKwogU291cmNlL1dlYkNvcmUvc3R5
bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcCAgIHwgMTQgKysrLS0KIFNvdXJjZS9XZWJDb3JlL3N0
eWxlL0lubGluZVRleHRCb3hTdHlsZS5oICAgICB8ICAyICsKIDQgZmlsZXMgY2hhbmdlZCwgNjMg
aW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlD
b250ZW50QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKaW5kZXgg
OWJkNjcxZjk1MTQyLi42NGIwMGNlZjVlMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRl
bnRCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKQEAgLTI5
LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAogI2lu
Y2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiSW5saW5lVGV4dEJveFN0eWxlLmgiCiAj
aW5jbHVkZSAiTGF5b3V0Qm94R2VvbWV0cnkuaCIKICNpbmNsdWRlICJMYXlvdXRJbml0aWFsQ29u
dGFpbmluZ0Jsb2NrLmgiCiAjaW5jbHVkZSAiVGV4dFV0aWwuaCIKQEAgLTEwMiw2ICsxMDMsNyBA
QCBEaXNwbGF5Qm94ZXMgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpidWlsZChjb25zdCBM
aW5lQnVpbGRlcjo6TGluZUNvbnRlbnQmCiAgICAgZWxzZQogICAgICAgICBwcm9jZXNzTm9uQmlk
aUNvbnRlbnQobGluZUNvbnRlbnQsIGxpbmVCb3gsIGRpc3BsYXlMaW5lLCBib3hlcyk7CiAgICAg
cHJvY2Vzc092ZXJmbG93blJ1bnNGb3JFbGxpcHNpcyhib3hlcywgZGlzcGxheUxpbmUucmlnaHQo
KSk7CisgICAgY29sbGVjdElua092ZXJmbG93Rm9yVGV4dERlY29yYXRpb25zKGJveGVzLCBkaXNw
bGF5TGluZSk7CiAgICAgY29sbGVjdElua092ZXJmbG93Rm9ySW5saW5lQm94ZXMoYm94ZXMpOwog
ICAgIHJldHVybiBib3hlczsKIH0KQEAgLTc4OCw3ICs3OTAsNyBAQCB2b2lkIElubGluZURpc3Bs
YXlDb250ZW50QnVpbGRlcjo6Y29sbGVjdElua092ZXJmbG93Rm9ySW5saW5lQm94ZXMoRGlzcGxh
eUJveGVzJgogICAgIGZvciAoc2l6ZV90IGluZGV4ID0gYm94ZXMuc2l6ZSgpOyBpbmRleC0tOykg
ewogICAgICAgICBhdXRvJiBkaXNwbGF5Qm94ID0gYm94ZXNbaW5kZXhdOwogCi0gICAgICAgIGF1
dG8gbWF5SGF2ZUlua092ZXJmbG93ID0gZGlzcGxheUJveC5pc0F0b21pY0lubGluZUxldmVsQm94
KCkgfHwgZGlzcGxheUJveC5pc0dlbmVyaWNJbmxpbmVMZXZlbEJveCgpIHx8IGRpc3BsYXlCb3gu
aXNOb25Sb290SW5saW5lQm94KCk7CisgICAgICAgIGF1dG8gbWF5SGF2ZUlua092ZXJmbG93ID0g
ZGlzcGxheUJveC5pc1RleHQoKSB8fCBkaXNwbGF5Qm94LmlzQXRvbWljSW5saW5lTGV2ZWxCb3go
KSB8fCBkaXNwbGF5Qm94LmlzR2VuZXJpY0lubGluZUxldmVsQm94KCkgfHwgZGlzcGxheUJveC5p
c05vblJvb3RJbmxpbmVCb3goKTsKICAgICAgICAgaWYgKCFtYXlIYXZlSW5rT3ZlcmZsb3cpCiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKGRpc3BsYXlCb3guaXNOb25Sb290SW5s
aW5lQm94KCkgJiYgIWFjY3VtdWxhdGVkSW5rT3ZlcmZsb3dSZWN0LmlzRW1wdHkoKSkKQEAgLTgw
NSw2ICs4MDcsNTQgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmNvbGxlY3RJ
bmtPdmVyZmxvd0ZvcklubGluZUJveGVzKERpc3BsYXlCb3hlcyYKICAgICB9CiB9CiAKK3N0YXRp
YyBmbG9hdCB2aXN1YWxCb3R0b21Gb3JUZXh0RGVjb3JhdGlvbkNvbnRlbnQoY29uc3QgRGlzcGxh
eUJveGVzJiBib3hlcykKK3sKKyAgICBhdXRvIHZpc3VhbEJvdHRvbSA9IHN0ZDo6b3B0aW9uYWw8
ZmxvYXQ+IHsgfTsKKyAgICBmb3IgKGF1dG8mIGRpc3BsYXlCb3ggOiBib3hlcykgeworICAgICAg
ICBpZiAoZGlzcGxheUJveC5pc1Jvb3RJbmxpbmVCb3goKSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICBpZiAoIWRpc3BsYXlCb3guc3R5bGUoKS50ZXh0RGVjb3JhdGlvbnNJbkVmZmVj
dCgpLmNvbnRhaW5zKFRleHREZWNvcmF0aW9uTGluZTo6VW5kZXJsaW5lKSkKKyAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICBpZiAoZGlzcGxheUJveC5pc1RleHQoKSB8fCBkaXNwbGF5Qm94
LnN0eWxlKCkudGV4dERlY29yYXRpb25Ta2lwSW5rKCkgPT0gVGV4dERlY29yYXRpb25Ta2lwSW5r
OjpOb25lKQorICAgICAgICAgICAgdmlzdWFsQm90dG9tID0gdmlzdWFsQm90dG9tID8gc3RkOjpt
YXgoKnZpc3VhbEJvdHRvbSwgZGlzcGxheUJveC5ib3R0b20oKSkgOiBkaXNwbGF5Qm94LmJvdHRv
bSgpOworICAgIH0KKyAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBjYWxsZWQgdW5sZXNzIHRo
ZXJlJ3MgYXQgbGVhc3Qgb25lIHJ1biBvbiB0aGUgbGluZSB3aXRoIFRleHREZWNvcmF0aW9uTGlu
ZTo6VW5kZXJsaW5lLgorICAgIEFTU0VSVCh2aXN1YWxCb3R0b20pOworICAgIHJldHVybiB2aXN1
YWxCb3R0b20udmFsdWVfb3IoMC5mKTsKK30KKwordm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1
aWxkZXI6OmNvbGxlY3RJbmtPdmVyZmxvd0ZvclRleHREZWNvcmF0aW9ucyhEaXNwbGF5Qm94ZXMm
IGJveGVzLCBjb25zdCBJbmxpbmVEaXNwbGF5OjpMaW5lJiBkaXNwbGF5TGluZSkKK3sKKyAgICBh
dXRvIHZpc3VhbEJvdHRvbUZvclRleHREZWNvcmF0aW9uID0gc3RkOjpvcHRpb25hbDxmbG9hdD4g
eyB9OworICAgIGZvciAoYXV0byYgZGlzcGxheUJveCA6IGJveGVzKSB7CisgICAgICAgIGlmICgh
ZGlzcGxheUJveC5pc1RleHQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGF1
dG8mIHN0eWxlID0gZGlzcGxheUJveC5zdHlsZSgpOworICAgICAgICBhdXRvIHRleHREZWNvcmF0
aW9ucyA9IHN0eWxlLnRleHREZWNvcmF0aW9uc0luRWZmZWN0KCk7CisgICAgICAgIGlmICghdGV4
dERlY29yYXRpb25zKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0byB1bmRl
cmxpbmVPZmZzZXQgPSBbJl0oKSAtPiBzdGQ6Om9wdGlvbmFsPGZsb2F0PiB7CisgICAgICAgICAg
ICBpZiAoIXRleHREZWNvcmF0aW9ucy5jb250YWlucyhUZXh0RGVjb3JhdGlvbkxpbmU6OlVuZGVy
bGluZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgICAgIGlmICghdmlz
dWFsQm90dG9tRm9yVGV4dERlY29yYXRpb24pCisgICAgICAgICAgICAgICAgdmlzdWFsQm90dG9t
Rm9yVGV4dERlY29yYXRpb24gPSB2aXN1YWxCb3R0b21Gb3JUZXh0RGVjb3JhdGlvbkNvbnRlbnQo
Ym94ZXMpOworICAgICAgICAgICAgYXV0byB0ZXh0UnVuTG9naWNhbE9mZnNldEZyb21MaW5lQm90
dG9tID0gKnZpc3VhbEJvdHRvbUZvclRleHREZWNvcmF0aW9uIC0gZGlzcGxheUJveC5ib3R0b20o
KTsKKyAgICAgICAgICAgIC8vIENvbXBlbnNhdGUgZm9yIHRoZSBpbnRlZ3JhbCBjZWlsaW5nIGlu
IEdyYXBoaWNzQ29udGV4dDo6Y29tcHV0ZUxpbmVCb3VuZHNBbmRBbnRpYWxpYXNpbmdNb2RlRm9y
VGV4dCgpCisgICAgICAgICAgICByZXR1cm4gY29tcHV0ZVVuZGVybGluZU9mZnNldCh7IHN0eWxl
LCBkZWZhdWx0R2FwKHN0eWxlKSwgVW5kZXJsaW5lT2Zmc2V0QXJndW1lbnRzOjpUZXh0VW5kZXJs
aW5lUG9zaXRpb25VbmRlciB7IGRpc3BsYXlMaW5lLmJhc2VsaW5lVHlwZSgpLCBkaXNwbGF5Qm94
LmhlaWdodCgpLCB0ZXh0UnVuTG9naWNhbE9mZnNldEZyb21MaW5lQm90dG9tIH0gfSkgKyAxLjBm
OworICAgICAgICB9OworCisgICAgICAgIGF1dG8gZGVjb3JhdGlvbk92ZXJmbG93ID0gdmlzdWFs
T3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhzdHlsZSwgdW5kZXJsaW5lT2Zmc2V0KCkpOworICAgICAg
ICBpZiAoIWRlY29yYXRpb25PdmVyZmxvdy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIG1fY29u
dGVudEhhc0lua092ZXJmbG93ID0gdHJ1ZTsKKyAgICAgICAgICAgIGF1dG8gaW5rT3ZlcmZsb3dS
ZWN0ID0gZGlzcGxheUJveC5pbmtPdmVyZmxvdygpOworICAgICAgICAgICAgaW5rT3ZlcmZsb3dS
ZWN0LmluZmxhdGUoZGVjb3JhdGlvbk92ZXJmbG93LmxlZnQsIGRlY29yYXRpb25PdmVyZmxvdy50
b3AsIGRlY29yYXRpb25PdmVyZmxvdy5yaWdodCwgZGVjb3JhdGlvbk92ZXJmbG93LmJvdHRvbSk7
CisgICAgICAgICAgICBkaXNwbGF5Qm94LmFkanVzdElua092ZXJmbG93KGlua092ZXJmbG93UmVj
dCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWls
ZGVyOjpjb21wdXRlSXNGaXJzdElzTGFzdEJveEZvcklubGluZUNvbnRlbnQoRGlzcGxheUJveGVz
JiBib3hlcykKIHsKICAgICBIYXNoTWFwPGNvbnN0IEJveCosIHNpemVfdD4gbGFzdERpc3BsYXlC
b3hGb3JMYXlvdXRCb3hJbmRleGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1
aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmgKaW5kZXggNzg3MzhjZGIxYzc2
Li4xOTJjNDU3YTk0YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlz
cGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuaApAQCAtNTMsNiArNTMsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgcHJvY2Vzc0JpZGlDb250ZW50KGNvbnN0IExpbmVCdWlsZGVyOjpMaW5l
Q29udGVudCYsIGNvbnN0IExpbmVCb3gmLCBjb25zdCBJbmxpbmVEaXNwbGF5OjpMaW5lJiwgRGlz
cGxheUJveGVzJik7CiAgICAgdm9pZCBwcm9jZXNzT3ZlcmZsb3duUnVuc0ZvckVsbGlwc2lzKERp
c3BsYXlCb3hlcyYsIElubGluZUxheW91dFVuaXQgbGluZUJveFJpZ2h0KTsKICAgICB2b2lkIGNv
bGxlY3RJbmtPdmVyZmxvd0ZvcklubGluZUJveGVzKERpc3BsYXlCb3hlcyYpOworICAgIHZvaWQg
Y29sbGVjdElua092ZXJmbG93Rm9yVGV4dERlY29yYXRpb25zKERpc3BsYXlCb3hlcyYsIGNvbnN0
IElubGluZURpc3BsYXk6OkxpbmUmKTsKIAogICAgIHZvaWQgYXBwZW5kVGV4dERpc3BsYXlCb3go
Y29uc3QgTGluZTo6UnVuJiwgY29uc3QgSW5saW5lUmVjdCYsIERpc3BsYXlCb3hlcyYpOwogICAg
IHZvaWQgYXBwZW5kU29mdExpbmVCcmVha0Rpc3BsYXlCb3goY29uc3QgTGluZTo6UnVuJiwgY29u
c3QgSW5saW5lUmVjdCYsIERpc3BsYXlCb3hlcyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lu
bGluZVRleHRCb3hTdHlsZS5jcHAKaW5kZXggOTYwZWQ4MTU5YmE4Li5mNDg1Njk5MzNiM2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcApAQCAtMjQ0LDE1
ICsyNDQsMTMgQEAgR2x5cGhPdmVyZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNv
bnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUsIGNvbnN0IEkKIAogICAgIC8vIENvbXBlbnNhdGUg
Zm9yIHRoZSBpbnRlZ3JhbCBjZWlsaW5nIGluIEdyYXBoaWNzQ29udGV4dDo6Y29tcHV0ZUxpbmVC
b3VuZHNBbmRBbnRpYWxpYXNpbmdNb2RlRm9yVGV4dCgpCiAgICAgaW50IHVuZGVybGluZU9mZnNl
dCA9IDE7Ci0gICAgZmxvYXQgdGV4dERlY29yYXRpb25CYXNlRm9udFNpemUgPSAxNjsKLSAgICBh
dXRvIGRlZmF1bHRHYXAgPSBsaW5lU3R5bGUuY29tcHV0ZWRGb250U2l6ZSgpIC8gdGV4dERlY29y
YXRpb25CYXNlRm9udFNpemU7CiAgICAgLy8gRklYTUU6IFJlbmRlclN0eWxlIGNhbGxzIHVzIHdp
dGggZW1wdHkgdGV4dFJ1biBidXQgb25seSB3aGVuIFRleHRVbmRlcmxpbmVQb3NpdGlvbiBpcyBu
b3QgVW5kZXIuCiAgICAgQVNTRVJUKHRleHRSdW4gfHwgbGluZVN0eWxlLnRleHRVbmRlcmxpbmVQ
b3NpdGlvbigpICE9IFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6VW5kZXIpOwogICAgIGlmICghdGV4
dFJ1bikKLSAgICAgICAgdW5kZXJsaW5lT2Zmc2V0ICs9IGNvbXB1dGVVbmRlcmxpbmVPZmZzZXQo
eyBsaW5lU3R5bGUsIGRlZmF1bHRHYXAgfSk7CisgICAgICAgIHVuZGVybGluZU9mZnNldCArPSBj
b21wdXRlVW5kZXJsaW5lT2Zmc2V0KHsgbGluZVN0eWxlLCBkZWZhdWx0R2FwKGxpbmVTdHlsZSkg
fSk7CiAgICAgZWxzZSB7CiAgICAgICAgIHVuZGVybGluZU9mZnNldCArPSBjb21wdXRlVW5kZXJs
aW5lT2Zmc2V0KHsgbGluZVN0eWxlCi0gICAgICAgICAgICAsIGRlZmF1bHRHYXAKKyAgICAgICAg
ICAgICwgZGVmYXVsdEdhcChsaW5lU3R5bGUpCiAgICAgICAgICAgICAsIFVuZGVybGluZU9mZnNl
dEFyZ3VtZW50czo6VGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIgeyB0ZXh0UnVuLT5saW5lQm94
KCktPmJhc2VsaW5lVHlwZSgpLCB0ZXh0UnVuLT5sb2dpY2FsQm90dG9tKCkgLSB0ZXh0UnVuLT5s
b2dpY2FsVG9wKCksIHRleHRSdW5Mb2dpY2FsT2Zmc2V0RnJvbUxpbmVCb3R0b20odGV4dFJ1bikg
fQogICAgICAgICB9KTsKICAgICB9CkBAIC0yNjMsNSArMjYxLDExIEBAIEdseXBoT3ZlcmZsb3cg
dmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJTdHlsZSYgbGluZVN0eWxl
KQogewogICAgIHJldHVybiB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGxpbmVTdHlsZSwg
SW5saW5lSXRlcmF0b3I6OlRleHRCb3hJdGVyYXRvciB7IH0pOwogfQotICAgIAorCitmbG9hdCBk
ZWZhdWx0R2FwKGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUpCit7CisgICAgY29uc3QgZmxv
YXQgdGV4dERlY29yYXRpb25CYXNlRm9udFNpemUgPSAxNi5mOworICAgIHJldHVybiBsaW5lU3R5
bGUuY29tcHV0ZWRGb250U2l6ZSgpIC8gdGV4dERlY29yYXRpb25CYXNlRm9udFNpemU7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5o
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmgKaW5kZXggYzk2YjMw
NWFmOTlhLi4xOGYxNWY4OWMxOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lu
bGluZVRleHRCb3hTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRC
b3hTdHlsZS5oCkBAIC01Myw2ICs1Myw3IEBAIHN0cnVjdCBXYXZ5U3Ryb2tlUGFyYW1ldGVycyB7
CiAgICAgZmxvYXQgc3RlcCB7IDAgfTsKIH07CiBXYXZ5U3Ryb2tlUGFyYW1ldGVycyBnZXRXYXZ5
U3Ryb2tlUGFyYW1ldGVycyhmbG9hdCBmb250U2l6ZSk7CisKIEdseXBoT3ZlcmZsb3cgdmlzdWFs
T3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJTdHlsZSYgbGluZVN0eWxlKTsKIEds
eXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJTdHls
ZSYgbGluZVN0eWxlLCBjb25zdCBJbmxpbmVJdGVyYXRvcjo6VGV4dEJveEl0ZXJhdG9yJik7CiBH
bHlwaE92ZXJmbG93IHZpc3VhbE92ZXJmbG93Rm9yRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyU3R5
bGUmIGxpbmVTdHlsZSwgc3RkOjpvcHRpb25hbDxmbG9hdD4gdW5kZXJsaW5lT2Zmc2V0KTsKQEAg
LTY5LDUgKzcwLDYgQEAgc3RydWN0IFVuZGVybGluZU9mZnNldEFyZ3VtZW50cyB7CiB9OwogZmxv
YXQgY29tcHV0ZVVuZGVybGluZU9mZnNldChjb25zdCBVbmRlcmxpbmVPZmZzZXRBcmd1bWVudHMm
KTsKIGZsb2F0IHRleHRSdW5Mb2dpY2FsT2Zmc2V0RnJvbUxpbmVCb3R0b20oY29uc3QgSW5saW5l
SXRlcmF0b3I6OlRleHRCb3hJdGVyYXRvciYpOworZmxvYXQgZGVmYXVsdEdhcChjb25zdCBSZW5k
ZXJTdHlsZSYgbGluZVN0eWxlKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotLSAKMi4zMi4w
IChBcHBsZSBHaXQtMTMyKQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>460163</attachid>
            <date>2022-06-10 10:46:13 -0700</date>
            <delta_ts>2022-06-10 17:01:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-241442-20220610104612.patch</filename>
            <type>text/plain</type>
            <size>13463</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBkNmI3ODdiNTg3NTQ1YTA0MzZmMTEzMDljMzljYTYxZWU2OTNkZGI4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBU
aHUsIDkgSnVuIDIwMjIgMjE6Mjk6NDcgLTA3MDAKU3ViamVjdDogW1BBVENIXSBSZXBhaW50IHJl
Y3QgZG9lcyBub3QgdGFrZSBpbnRvIGFjY291bnQgdGV4dC11bmRlcmxpbmUtb2Zmc2V0CiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQxNDQyCgpSZXZpZXdlZCBieSBB
bnR0aSBLb2l2aXN0by4KClRoaXMgcGF0Y2ggYWRkIHN1cHBvcnQgZm9yIHRleHQgZGVjb3JhdGlv
biBpbmsgb3ZlcmZsb3cgKElGQykuCgoxLiBDb2xsZWN0IGRlY29yYXRpb24gaW5rIG92ZXJmbG93
IChsb2dpY2FsKQoyLiBVcGRhdGUgZGlzcGxheSBib3ggaW5rIG92ZXJmbG93ICh2aXN1YWwpCgoq
IFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkv
SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6SW5saW5l
RGlzcGxheUNvbnRlbnRCdWlsZGVyOjpidWlsZCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZURp
c3BsYXlDb250ZW50QnVpbGRlcjo6Y29sbGVjdElua092ZXJmbG93Rm9ySW5saW5lQm94ZXMpOgoo
V2ViQ29yZTo6TGF5b3V0Ojp2aXN1YWxCb3R0b21Gb3JUZXh0RGVjb3JhdGlvbkNvbnRlbnQpOgoo
V2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmNvbGxlY3RJbmtP
dmVyZmxvd0ZvclRleHREZWNvcmF0aW9ucyk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIu
aDoKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwOgooV2ViQ29y
ZTo6dmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyk6CihXZWJDb3JlOjpkZWZhdWx0R2FwKToK
KiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuaDoKLS0tCiAuLi4vaW5s
aW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oICAgICAgICAgfCAgMiArLQogLi4uL2Rpc3Bs
YXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcCAgIHwgNzMgKysrKysrKysrKysrKysr
KysrLQogLi4uL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmggICAgIHwgIDEg
KwogU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcCAgIHwgMTQgKyst
LQogU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmggICAgIHwgIDIgKwog
Li4udC1kZWNvcmF0aW9uLW92ZXJmbG93LXJlcGFpbnQtZXhwZWN0ZWQudHh0IHwgMTAgKysrCiAu
Li4vdGV4dC1kZWNvcmF0aW9uLW92ZXJmbG93LXJlcGFpbnQuaHRtbCAgICAgfCAzNiArKysrKysr
KysKIDcgZmlsZXMgY2hhbmdlZCwgMTMxIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtZGVjb3JhdGlv
bi1vdmVyZmxvdy1yZXBhaW50LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LWRlY29yYXRpb24tb3ZlcmZsb3ctcmVwYWludC5odG1s
CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlCb3guaAppbmRl
eCA0ZDZlODgxM2E5OWQuLjgyNjg0Nzk1NTQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
ZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94LmgKQEAgLTEzNyw3ICsxMzcsNyBAQCBzdHJ1Y3QgQm94
IHsKICAgICB7CiAgICAgICAgIGF1dG8gb2Zmc2V0ID0gcGh5c2ljYWxUb3AgLSB0b3AoKTsKICAg
ICAgICAgbV91bmZsaXBwZWRWaXN1YWxSZWN0LnNldFkocGh5c2ljYWxUb3ApOwotICAgICAgICBt
X2lua092ZXJmbG93LnNoaWZ0TWF4WUVkZ2VUbyhtX2lua092ZXJmbG93LnkoKSArIG9mZnNldCk7
CisgICAgICAgIG1faW5rT3ZlcmZsb3cuc2V0WShtX2lua092ZXJmbG93LnkoKSArIG9mZnNldCk7
CiAgICAgfQogICAgIHZvaWQgc2V0Qm90dG9tKGZsb2F0IHBoeXNpY2FsQm90dG9tKQogICAgIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxh
eUNvbnRlbnRCdWlsZGVyLmNwcAppbmRleCA5YmQ2NzFmOTUxNDIuLjE4YTFmZmRhZGQwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
ZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxh
eUNvbnRlbnRCdWlsZGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShMQVlPVVRf
Rk9STUFUVElOR19DT05URVhUKQogCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKyNpbmNsdWRl
ICJJbmxpbmVUZXh0Qm94U3R5bGUuaCIKICNpbmNsdWRlICJMYXlvdXRCb3hHZW9tZXRyeS5oIgog
I2luY2x1ZGUgIkxheW91dEluaXRpYWxDb250YWluaW5nQmxvY2suaCIKICNpbmNsdWRlICJUZXh0
VXRpbC5oIgpAQCAtMTAyLDYgKzEwMyw3IEBAIERpc3BsYXlCb3hlcyBJbmxpbmVEaXNwbGF5Q29u
dGVudEJ1aWxkZXI6OmJ1aWxkKGNvbnN0IExpbmVCdWlsZGVyOjpMaW5lQ29udGVudCYKICAgICBl
bHNlCiAgICAgICAgIHByb2Nlc3NOb25CaWRpQ29udGVudChsaW5lQ29udGVudCwgbGluZUJveCwg
ZGlzcGxheUxpbmUsIGJveGVzKTsKICAgICBwcm9jZXNzT3ZlcmZsb3duUnVuc0ZvckVsbGlwc2lz
KGJveGVzLCBkaXNwbGF5TGluZS5yaWdodCgpKTsKKyAgICBjb2xsZWN0SW5rT3ZlcmZsb3dGb3JU
ZXh0RGVjb3JhdGlvbnMoYm94ZXMsIGRpc3BsYXlMaW5lKTsKICAgICBjb2xsZWN0SW5rT3ZlcmZs
b3dGb3JJbmxpbmVCb3hlcyhib3hlcyk7CiAgICAgcmV0dXJuIGJveGVzOwogfQpAQCAtNzg4LDcg
Kzc5MCw3IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpjb2xsZWN0SW5rT3Zl
cmZsb3dGb3JJbmxpbmVCb3hlcyhEaXNwbGF5Qm94ZXMmCiAgICAgZm9yIChzaXplX3QgaW5kZXgg
PSBib3hlcy5zaXplKCk7IGluZGV4LS07KSB7CiAgICAgICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBi
b3hlc1tpbmRleF07CiAKLSAgICAgICAgYXV0byBtYXlIYXZlSW5rT3ZlcmZsb3cgPSBkaXNwbGF5
Qm94LmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSB8fCBkaXNwbGF5Qm94LmlzR2VuZXJpY0lubGlu
ZUxldmVsQm94KCkgfHwgZGlzcGxheUJveC5pc05vblJvb3RJbmxpbmVCb3goKTsKKyAgICAgICAg
YXV0byBtYXlIYXZlSW5rT3ZlcmZsb3cgPSBkaXNwbGF5Qm94LmlzVGV4dCgpIHx8IGRpc3BsYXlC
b3guaXNBdG9taWNJbmxpbmVMZXZlbEJveCgpIHx8IGRpc3BsYXlCb3guaXNHZW5lcmljSW5saW5l
TGV2ZWxCb3goKSB8fCBkaXNwbGF5Qm94LmlzTm9uUm9vdElubGluZUJveCgpOwogICAgICAgICBp
ZiAoIW1heUhhdmVJbmtPdmVyZmxvdykKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBp
ZiAoZGlzcGxheUJveC5pc05vblJvb3RJbmxpbmVCb3goKSAmJiAhYWNjdW11bGF0ZWRJbmtPdmVy
Zmxvd1JlY3QuaXNFbXB0eSgpKQpAQCAtODA1LDYgKzgwNyw3NSBAQCB2b2lkIElubGluZURpc3Bs
YXlDb250ZW50QnVpbGRlcjo6Y29sbGVjdElua092ZXJmbG93Rm9ySW5saW5lQm94ZXMoRGlzcGxh
eUJveGVzJgogICAgIH0KIH0KIAorc3RhdGljIGZsb2F0IGxvZ2ljYWxCb3R0b21Gb3JUZXh0RGVj
b3JhdGlvbkNvbnRlbnQoY29uc3QgRGlzcGxheUJveGVzJiBib3hlcywgYm9vbCBpc0hvcml6b250
YWxXcml0aW5nTW9kZSkKK3sKKyAgICBhdXRvIGxvZ2ljYWxCb3R0b20gPSBzdGQ6Om9wdGlvbmFs
PGZsb2F0PiB7IH07CisgICAgZm9yIChhdXRvJiBkaXNwbGF5Qm94IDogYm94ZXMpIHsKKyAgICAg
ICAgaWYgKGRpc3BsYXlCb3guaXNSb290SW5saW5lQm94KCkpCisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgaWYgKCFkaXNwbGF5Qm94LnN0eWxlKCkudGV4dERlY29yYXRpb25zSW5FZmZl
Y3QoKS5jb250YWlucyhUZXh0RGVjb3JhdGlvbkxpbmU6OlVuZGVybGluZSkpCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgaWYgKGRpc3BsYXlCb3guaXNUZXh0KCkgfHwgZGlzcGxheUJv
eC5zdHlsZSgpLnRleHREZWNvcmF0aW9uU2tpcEluaygpID09IFRleHREZWNvcmF0aW9uU2tpcElu
azo6Tm9uZSkgeworICAgICAgICAgICAgYXV0byBjb250ZW50TG9naWNhbEJvdHRvbSA9IGlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlID8gZGlzcGxheUJveC5ib3R0b20oKSA6IGRpc3BsYXlCb3gucmln
aHQoKTsKKyAgICAgICAgICAgIGxvZ2ljYWxCb3R0b20gPSBsb2dpY2FsQm90dG9tID8gc3RkOjpt
YXgoKmxvZ2ljYWxCb3R0b20sIGNvbnRlbnRMb2dpY2FsQm90dG9tKSA6IGNvbnRlbnRMb2dpY2Fs
Qm90dG9tOworICAgICAgICB9CisgICAgfQorICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgbm90IGNh
bGxlZCB1bmxlc3MgdGhlcmUncyBhdCBsZWFzdCBvbmUgcnVuIG9uIHRoZSBsaW5lIHdpdGggVGV4
dERlY29yYXRpb25MaW5lOjpVbmRlcmxpbmUuCisgICAgQVNTRVJUKGxvZ2ljYWxCb3R0b20pOwor
ICAgIHJldHVybiBsb2dpY2FsQm90dG9tLnZhbHVlX29yKDAuZik7Cit9CisKK3ZvaWQgSW5saW5l
RGlzcGxheUNvbnRlbnRCdWlsZGVyOjpjb2xsZWN0SW5rT3ZlcmZsb3dGb3JUZXh0RGVjb3JhdGlv
bnMoRGlzcGxheUJveGVzJiBib3hlcywgY29uc3QgSW5saW5lRGlzcGxheTo6TGluZSYgZGlzcGxh
eUxpbmUpCit7CisgICAgYXV0byBsb2dpY2FsQm90dG9tRm9yVGV4dERlY29yYXRpb24gPSBzdGQ6
Om9wdGlvbmFsPGZsb2F0PiB7IH07CisgICAgYXV0byB3cml0aW5nTW9kZSA9IHJvb3QoKS5zdHls
ZSgpLndyaXRpbmdNb2RlKCk7CisgICAgYXV0byBpc0hvcml6b250YWxXcml0aW5nTW9kZSA9IFdl
YkNvcmU6OmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKTsKKworICAgIGZvciAo
YXV0byYgZGlzcGxheUJveCA6IGJveGVzKSB7CisgICAgICAgIGlmICghZGlzcGxheUJveC5pc1Rl
eHQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGF1dG8mIHN0eWxlID0gZGlz
cGxheUJveC5zdHlsZSgpOworICAgICAgICBhdXRvIHRleHREZWNvcmF0aW9ucyA9IHN0eWxlLnRl
eHREZWNvcmF0aW9uc0luRWZmZWN0KCk7CisgICAgICAgIGlmICghdGV4dERlY29yYXRpb25zKQor
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0byB1bmRlcmxpbmVPZmZzZXQgPSBb
Jl0oKSAtPiBzdGQ6Om9wdGlvbmFsPGZsb2F0PiB7CisgICAgICAgICAgICBpZiAoIXRleHREZWNv
cmF0aW9ucy5jb250YWlucyhUZXh0RGVjb3JhdGlvbkxpbmU6OlVuZGVybGluZSkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgICAgIGlmICghbG9naWNhbEJvdHRvbUZvclRl
eHREZWNvcmF0aW9uKQorICAgICAgICAgICAgICAgIGxvZ2ljYWxCb3R0b21Gb3JUZXh0RGVjb3Jh
dGlvbiA9IGxvZ2ljYWxCb3R0b21Gb3JUZXh0RGVjb3JhdGlvbkNvbnRlbnQoYm94ZXMsIGlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKTsKKyAgICAgICAgICAgIGF1dG8gdGV4dFJ1bkxvZ2ljYWxPZmZz
ZXRGcm9tTGluZUJvdHRvbSA9ICpsb2dpY2FsQm90dG9tRm9yVGV4dERlY29yYXRpb24gLSAoaXNI
b3Jpem9udGFsV3JpdGluZ01vZGUgPyBkaXNwbGF5Qm94LmJvdHRvbSgpIDogZGlzcGxheUJveC5y
aWdodCgpKTsKKyAgICAgICAgICAgIC8vIENvbXBlbnNhdGUgZm9yIHRoZSBpbnRlZ3JhbCBjZWls
aW5nIGluIEdyYXBoaWNzQ29udGV4dDo6Y29tcHV0ZUxpbmVCb3VuZHNBbmRBbnRpYWxpYXNpbmdN
b2RlRm9yVGV4dCgpCisgICAgICAgICAgICByZXR1cm4gY29tcHV0ZVVuZGVybGluZU9mZnNldCh7
IHN0eWxlLCBkZWZhdWx0R2FwKHN0eWxlKSwgVW5kZXJsaW5lT2Zmc2V0QXJndW1lbnRzOjpUZXh0
VW5kZXJsaW5lUG9zaXRpb25VbmRlciB7IGRpc3BsYXlMaW5lLmJhc2VsaW5lVHlwZSgpLCBkaXNw
bGF5Qm94LmhlaWdodCgpLCB0ZXh0UnVuTG9naWNhbE9mZnNldEZyb21MaW5lQm90dG9tIH0gfSkg
KyAxLjBmOworICAgICAgICB9OworCisgICAgICAgIGF1dG8gZGVjb3JhdGlvbk92ZXJmbG93ID0g
dmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhzdHlsZSwgdW5kZXJsaW5lT2Zmc2V0KCkpOwor
ICAgICAgICBpZiAoIWRlY29yYXRpb25PdmVyZmxvdy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAg
IG1fY29udGVudEhhc0lua092ZXJmbG93ID0gdHJ1ZTsKKyAgICAgICAgICAgIGF1dG8gaW5mbGF0
ZWRWaXN1YWxPdmVyZmxvd1JlY3QgPSBbJl0geworICAgICAgICAgICAgICAgIGF1dG8gaW5rT3Zl
cmZsb3dSZWN0ID0gZGlzcGxheUJveC5pbmtPdmVyZmxvdygpOworICAgICAgICAgICAgICAgIHN3
aXRjaCAod3JpdGluZ01vZGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFdyaXRpbmdNb2RlOjpU
b3BUb0JvdHRvbToKKyAgICAgICAgICAgICAgICAgICAgaW5rT3ZlcmZsb3dSZWN0LmluZmxhdGUo
ZGVjb3JhdGlvbk92ZXJmbG93LmxlZnQsIGRlY29yYXRpb25PdmVyZmxvdy50b3AsIGRlY29yYXRp
b25PdmVyZmxvdy5yaWdodCwgZGVjb3JhdGlvbk92ZXJmbG93LmJvdHRvbSk7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgV3JpdGluZ01vZGU6OkxlZnRU
b1JpZ2h0OgorICAgICAgICAgICAgICAgICAgICBpbmtPdmVyZmxvd1JlY3QuaW5mbGF0ZShkZWNv
cmF0aW9uT3ZlcmZsb3cuYm90dG9tLCBkZWNvcmF0aW9uT3ZlcmZsb3cucmlnaHQsIGRlY29yYXRp
b25PdmVyZmxvdy50b3AsIGRlY29yYXRpb25PdmVyZmxvdy5sZWZ0KTsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBXcml0aW5nTW9kZTo6UmlnaHRUb0xl
ZnQ6CisgICAgICAgICAgICAgICAgICAgIGlua092ZXJmbG93UmVjdC5pbmZsYXRlKGRlY29yYXRp
b25PdmVyZmxvdy50b3AsIGRlY29yYXRpb25PdmVyZmxvdy5yaWdodCwgZGVjb3JhdGlvbk92ZXJm
bG93LmJvdHRvbSwgZGVjb3JhdGlvbk92ZXJmbG93LmxlZnQpOworICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBpbmtPdmVyZmxvd1JlY3Q7CisgICAg
ICAgICAgICB9OworICAgICAgICAgICAgZGlzcGxheUJveC5hZGp1c3RJbmtPdmVyZmxvdyhpbmZs
YXRlZFZpc3VhbE92ZXJmbG93UmVjdCgpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBJ
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmNvbXB1dGVJc0ZpcnN0SXNMYXN0Qm94Rm9ySW5s
aW5lQ29udGVudChEaXNwbGF5Qm94ZXMmIGJveGVzKQogewogICAgIEhhc2hNYXA8Y29uc3QgQm94
Kiwgc2l6ZV90PiBsYXN0RGlzcGxheUJveEZvckxheW91dEJveEluZGV4ZXM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5
L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxk
ZXIuaAppbmRleCA3ODczOGNkYjFjNzYuLjE5MmM0NTdhOTRhZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVE
aXNwbGF5Q29udGVudEJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5o
CkBAIC01Myw2ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcm9jZXNzQmlkaUNvbnRlbnQo
Y29uc3QgTGluZUJ1aWxkZXI6OkxpbmVDb250ZW50JiwgY29uc3QgTGluZUJveCYsIGNvbnN0IElu
bGluZURpc3BsYXk6OkxpbmUmLCBEaXNwbGF5Qm94ZXMmKTsKICAgICB2b2lkIHByb2Nlc3NPdmVy
Zmxvd25SdW5zRm9yRWxsaXBzaXMoRGlzcGxheUJveGVzJiwgSW5saW5lTGF5b3V0VW5pdCBsaW5l
Qm94UmlnaHQpOwogICAgIHZvaWQgY29sbGVjdElua092ZXJmbG93Rm9ySW5saW5lQm94ZXMoRGlz
cGxheUJveGVzJik7CisgICAgdm9pZCBjb2xsZWN0SW5rT3ZlcmZsb3dGb3JUZXh0RGVjb3JhdGlv
bnMoRGlzcGxheUJveGVzJiwgY29uc3QgSW5saW5lRGlzcGxheTo6TGluZSYpOwogCiAgICAgdm9p
ZCBhcHBlbmRUZXh0RGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4mLCBjb25zdCBJbmxpbmVSZWN0
JiwgRGlzcGxheUJveGVzJik7CiAgICAgdm9pZCBhcHBlbmRTb2Z0TGluZUJyZWFrRGlzcGxheUJv
eChjb25zdCBMaW5lOjpSdW4mLCBjb25zdCBJbmxpbmVSZWN0JiwgRGlzcGxheUJveGVzJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcAppbmRleCA5NjBlZDgx
NTliYTguLmY0ODU2OTkzM2IzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvSW5s
aW5lVGV4dEJveFN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0
Qm94U3R5bGUuY3BwCkBAIC0yNDQsMTUgKzI0NCwxMyBAQCBHbHlwaE92ZXJmbG93IHZpc3VhbE92
ZXJmbG93Rm9yRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUmIGxpbmVTdHlsZSwgY29uc3Qg
SQogCiAgICAgLy8gQ29tcGVuc2F0ZSBmb3IgdGhlIGludGVncmFsIGNlaWxpbmcgaW4gR3JhcGhp
Y3NDb250ZXh0Ojpjb21wdXRlTGluZUJvdW5kc0FuZEFudGlhbGlhc2luZ01vZGVGb3JUZXh0KCkK
ICAgICBpbnQgdW5kZXJsaW5lT2Zmc2V0ID0gMTsKLSAgICBmbG9hdCB0ZXh0RGVjb3JhdGlvbkJh
c2VGb250U2l6ZSA9IDE2OwotICAgIGF1dG8gZGVmYXVsdEdhcCA9IGxpbmVTdHlsZS5jb21wdXRl
ZEZvbnRTaXplKCkgLyB0ZXh0RGVjb3JhdGlvbkJhc2VGb250U2l6ZTsKICAgICAvLyBGSVhNRTog
UmVuZGVyU3R5bGUgY2FsbHMgdXMgd2l0aCBlbXB0eSB0ZXh0UnVuIGJ1dCBvbmx5IHdoZW4gVGV4
dFVuZGVybGluZVBvc2l0aW9uIGlzIG5vdCBVbmRlci4KICAgICBBU1NFUlQodGV4dFJ1biB8fCBs
aW5lU3R5bGUudGV4dFVuZGVybGluZVBvc2l0aW9uKCkgIT0gVGV4dFVuZGVybGluZVBvc2l0aW9u
OjpVbmRlcik7CiAgICAgaWYgKCF0ZXh0UnVuKQotICAgICAgICB1bmRlcmxpbmVPZmZzZXQgKz0g
Y29tcHV0ZVVuZGVybGluZU9mZnNldCh7IGxpbmVTdHlsZSwgZGVmYXVsdEdhcCB9KTsKKyAgICAg
ICAgdW5kZXJsaW5lT2Zmc2V0ICs9IGNvbXB1dGVVbmRlcmxpbmVPZmZzZXQoeyBsaW5lU3R5bGUs
IGRlZmF1bHRHYXAobGluZVN0eWxlKSB9KTsKICAgICBlbHNlIHsKICAgICAgICAgdW5kZXJsaW5l
T2Zmc2V0ICs9IGNvbXB1dGVVbmRlcmxpbmVPZmZzZXQoeyBsaW5lU3R5bGUKLSAgICAgICAgICAg
ICwgZGVmYXVsdEdhcAorICAgICAgICAgICAgLCBkZWZhdWx0R2FwKGxpbmVTdHlsZSkKICAgICAg
ICAgICAgICwgVW5kZXJsaW5lT2Zmc2V0QXJndW1lbnRzOjpUZXh0VW5kZXJsaW5lUG9zaXRpb25V
bmRlciB7IHRleHRSdW4tPmxpbmVCb3goKS0+YmFzZWxpbmVUeXBlKCksIHRleHRSdW4tPmxvZ2lj
YWxCb3R0b20oKSAtIHRleHRSdW4tPmxvZ2ljYWxUb3AoKSwgdGV4dFJ1bkxvZ2ljYWxPZmZzZXRG
cm9tTGluZUJvdHRvbSh0ZXh0UnVuKSB9CiAgICAgICAgIH0pOwogICAgIH0KQEAgLTI2Myw1ICsy
NjEsMTEgQEAgR2x5cGhPdmVyZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0
IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUpCiB7CiAgICAgcmV0dXJuIHZpc3VhbE92ZXJmbG93Rm9y
RGVjb3JhdGlvbnMobGluZVN0eWxlLCBJbmxpbmVJdGVyYXRvcjo6VGV4dEJveEl0ZXJhdG9yIHsg
fSk7CiB9Ci0gICAgCisKK2Zsb2F0IGRlZmF1bHRHYXAoY29uc3QgUmVuZGVyU3R5bGUmIGxpbmVT
dHlsZSkKK3sKKyAgICBjb25zdCBmbG9hdCB0ZXh0RGVjb3JhdGlvbkJhc2VGb250U2l6ZSA9IDE2
LmY7CisgICAgcmV0dXJuIGxpbmVTdHlsZS5jb21wdXRlZEZvbnRTaXplKCkgLyB0ZXh0RGVjb3Jh
dGlvbkJhc2VGb250U2l6ZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvSW5saW5lVGV4dEJveFN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0
Qm94U3R5bGUuaAppbmRleCBjOTZiMzA1YWY5OWEuLjE4ZjE1Zjg5YzE5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmgKQEAgLTUzLDYgKzUzLDcgQEAgc3RydWN0
IFdhdnlTdHJva2VQYXJhbWV0ZXJzIHsKICAgICBmbG9hdCBzdGVwIHsgMCB9OwogfTsKIFdhdnlT
dHJva2VQYXJhbWV0ZXJzIGdldFdhdnlTdHJva2VQYXJhbWV0ZXJzKGZsb2F0IGZvbnRTaXplKTsK
KwogR2x5cGhPdmVyZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0IFJlbmRl
clN0eWxlJiBsaW5lU3R5bGUpOwogR2x5cGhPdmVyZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29y
YXRpb25zKGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUsIGNvbnN0IElubGluZUl0ZXJhdG9y
OjpUZXh0Qm94SXRlcmF0b3ImKTsKIEdseXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNv
cmF0aW9ucyhjb25zdCBSZW5kZXJTdHlsZSYgbGluZVN0eWxlLCBzdGQ6Om9wdGlvbmFsPGZsb2F0
PiB1bmRlcmxpbmVPZmZzZXQpOwpAQCAtNjksNSArNzAsNiBAQCBzdHJ1Y3QgVW5kZXJsaW5lT2Zm
c2V0QXJndW1lbnRzIHsKIH07CiBmbG9hdCBjb21wdXRlVW5kZXJsaW5lT2Zmc2V0KGNvbnN0IFVu
ZGVybGluZU9mZnNldEFyZ3VtZW50cyYpOwogZmxvYXQgdGV4dFJ1bkxvZ2ljYWxPZmZzZXRGcm9t
TGluZUJvdHRvbShjb25zdCBJbmxpbmVJdGVyYXRvcjo6VGV4dEJveEl0ZXJhdG9yJik7CitmbG9h
dCBkZWZhdWx0R2FwKGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUpOwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1k
ZWNvcmF0aW9uLW92ZXJmbG93LXJlcGFpbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3RleHQtZGVjb3JhdGlvbi1vdmVyZmxvdy1yZXBhaW50LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmVlYTVmZmE1YTAzNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LWRlY29yYXRpb24t
b3ZlcmZsb3ctcmVwYWludC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorUEFTUyBpZiB0
aGUgdW5kZXJsaW5lcyBhcmUgZ3JlZW4uCitjb250ZW50Citjb250ZW50Citjb250ZW50CisocmVw
YWludCByZWN0cworICAocmVjdCA0OCA0NiAxMTIgMjUpCisgIChyZWN0IDM5IDgyIDI1IDExMikK
KyAgKHJlY3QgMzkgMjE0IDI1IDExMikKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3RleHQtZGVjb3JhdGlvbi1vdmVyZmxvdy1yZXBhaW50Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1kZWNvcmF0aW9uLW92ZXJmbG93LXJlcGFpbnQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjA1MjkyY2JjODcyZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC90ZXh0LWRlY29yYXRpb24t
b3ZlcmZsb3ctcmVwYWludC5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzxzdHlsZT4KK2RpdiB7Cisg
IG1hcmdpbjogMjBweDsKKyAgZm9udC1mYW1pbHk6IEFoZW07Cit9CitzcGFuIHsKKyAgdGV4dC1k
ZWNvcmF0aW9uOiB1bmRlcmxpbmU7CisgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMTBweDsKKyAg
Y29sb3I6IGJsdWU7Cit9Cis8L3N0eWxlPgorUEFTUyBpZiB0aGUgdW5kZXJsaW5lcyBhcmUgZ3Jl
ZW4uCis8ZGl2IGlkPWNvbnRhaW5lcj4KKzxkaXY+PHNwYW4+Y29udGVudDwvc3Bhbj48L2Rpdj4K
KzxkaXYgc3R5bGU9IndyaXRpbmctbW9kZTogdmVydGljYWwtbHIiPjxzcGFuPmNvbnRlbnQ8L3Nw
YW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSJ3cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsIj48c3Bhbj5j
b250ZW50PC9zcGFuPjwvZGl2PgorPC9kaXY+Cis8cHJlIGlkPXJlc3VsdD48L3ByZT4KKzxzY3Jp
cHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorc2V0VGltZW91dChmdW5jdGlvbigp
IHsKKyAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgd2luZG93LmludGVybmFscy5zdGFydFRy
YWNraW5nUmVwYWludHMoKTsKKyAgZm9yIChsZXQgY2hhbmdlVGhpcyBvZiBjb250YWluZXIuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoInNwYW4iKSkKKyAgICBjaGFuZ2VUaGlzLnN0eWxlLnRleHREZWNv
cmF0aW9uQ29sb3IgPSAiZ3JlZW4iOworICBpZiAod2luZG93LmludGVybmFscykgeworICAgIHJl
c3VsdC5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOwor
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKKyAgfQorICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9LCAxMCk7
Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0tIAoyLjMyLjAgKEFwcGxl
IEdpdC0xMzIpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>460171</attachid>
            <date>2022-06-10 17:01:44 -0700</date>
            <delta_ts>2022-06-10 22:34:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-241442-20220610170143.patch</filename>
            <type>text/plain</type>
            <size>15716</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBlMzc3YmQxMWJkODVmOTNkNWJhZWNkYWVhMDQzYWNlMDRjMGVmNzEwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBU
aHUsIDkgSnVuIDIwMjIgMjE6Mjk6NDcgLTA3MDAKU3ViamVjdDogW1BBVENIXSBSZXBhaW50IHJl
Y3QgZG9lcyBub3QgdGFrZSBpbnRvIGFjY291bnQgdGV4dC11bmRlcmxpbmUtb2Zmc2V0CiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQxNDQyCgpSZXZpZXdlZCBieSBB
bnR0aSBLb2l2aXN0by4KClRoaXMgcGF0Y2ggYWRkIHN1cHBvcnQgZm9yIHRleHQgZGVjb3JhdGlv
biBpbmsgb3ZlcmZsb3cgKElGQykuCgoxLiBDb2xsZWN0IGRlY29yYXRpb24gaW5rIG92ZXJmbG93
IChsb2dpY2FsKQoyLiBVcGRhdGUgZGlzcGxheSBib3ggaW5rIG92ZXJmbG93ICh2aXN1YWwpCgoq
IFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkv
SW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6SW5saW5l
RGlzcGxheUNvbnRlbnRCdWlsZGVyOjpidWlsZCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZURp
c3BsYXlDb250ZW50QnVpbGRlcjo6Y29sbGVjdElua092ZXJmbG93Rm9ySW5saW5lQm94ZXMpOgoo
V2ViQ29yZTo6TGF5b3V0Ojp2aXN1YWxCb3R0b21Gb3JUZXh0RGVjb3JhdGlvbkNvbnRlbnQpOgoo
V2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmNvbGxlY3RJbmtP
dmVyZmxvd0ZvclRleHREZWNvcmF0aW9ucyk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIu
aDoKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwOgooV2ViQ29y
ZTo6dmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyk6CihXZWJDb3JlOjpkZWZhdWx0R2FwKToK
KiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuaDoKLS0tCiAuLi4vaW5s
aW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oICAgICAgICAgfCAgMiArLQogLi4uL2Rpc3Bs
YXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcCAgIHwgNzMgKysrKysrKysrKysrKysr
KysrLQogLi4uL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmggICAgIHwgIDEg
KwogU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcCAgIHwgMTQgKyst
LQogU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmggICAgIHwgIDIgKwog
Li4uZXJmbG93LXdpdGgtc3VicGl4ZWwtcG9zaXRpb24tZXhwZWN0ZWQudHh0IHwgIDQgKy0KIC4u
LmlzdWFsLW92ZXJmbG93LXdpdGgtc3VicGl4ZWwtcG9zaXRpb24uaHRtbCB8ICA0ICstCiAuLi50
LWRlY29yYXRpb24tb3ZlcmZsb3ctcmVwYWludC1leHBlY3RlZC50eHQgfCAxMCArKysKIC4uLi90
ZXh0LWRlY29yYXRpb24tb3ZlcmZsb3ctcmVwYWludC5odG1sICAgICB8IDM2ICsrKysrKysrKwog
OSBmaWxlcyBjaGFuZ2VkLCAxMzUgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtZGVjb3JhdGlvbi1v
dmVyZmxvdy1yZXBhaW50LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2Zhc3QvcmVwYWludC90ZXh0LWRlY29yYXRpb24tb3ZlcmZsb3ctcmVwYWludC5odG1sCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlCb3guaAppbmRleCA0
ZDZlODgxM2E5OWQuLjgyNjg0Nzk1NTQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlz
cGxheS9JbmxpbmVEaXNwbGF5Qm94LmgKQEAgLTEzNyw3ICsxMzcsNyBAQCBzdHJ1Y3QgQm94IHsK
ICAgICB7CiAgICAgICAgIGF1dG8gb2Zmc2V0ID0gcGh5c2ljYWxUb3AgLSB0b3AoKTsKICAgICAg
ICAgbV91bmZsaXBwZWRWaXN1YWxSZWN0LnNldFkocGh5c2ljYWxUb3ApOwotICAgICAgICBtX2lu
a092ZXJmbG93LnNoaWZ0TWF4WUVkZ2VUbyhtX2lua092ZXJmbG93LnkoKSArIG9mZnNldCk7Cisg
ICAgICAgIG1faW5rT3ZlcmZsb3cuc2V0WShtX2lua092ZXJmbG93LnkoKSArIG9mZnNldCk7CiAg
ICAgfQogICAgIHZvaWQgc2V0Qm90dG9tKGZsb2F0IHBoeXNpY2FsQm90dG9tKQogICAgIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNv
bnRlbnRCdWlsZGVyLmNwcAppbmRleCA5YmQ2NzFmOTUxNDIuLjE4YTFmZmRhZGQwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlz
cGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNv
bnRlbnRCdWlsZGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShMQVlPVVRfRk9S
TUFUVElOR19DT05URVhUKQogCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKyNpbmNsdWRlICJJ
bmxpbmVUZXh0Qm94U3R5bGUuaCIKICNpbmNsdWRlICJMYXlvdXRCb3hHZW9tZXRyeS5oIgogI2lu
Y2x1ZGUgIkxheW91dEluaXRpYWxDb250YWluaW5nQmxvY2suaCIKICNpbmNsdWRlICJUZXh0VXRp
bC5oIgpAQCAtMTAyLDYgKzEwMyw3IEBAIERpc3BsYXlCb3hlcyBJbmxpbmVEaXNwbGF5Q29udGVu
dEJ1aWxkZXI6OmJ1aWxkKGNvbnN0IExpbmVCdWlsZGVyOjpMaW5lQ29udGVudCYKICAgICBlbHNl
CiAgICAgICAgIHByb2Nlc3NOb25CaWRpQ29udGVudChsaW5lQ29udGVudCwgbGluZUJveCwgZGlz
cGxheUxpbmUsIGJveGVzKTsKICAgICBwcm9jZXNzT3ZlcmZsb3duUnVuc0ZvckVsbGlwc2lzKGJv
eGVzLCBkaXNwbGF5TGluZS5yaWdodCgpKTsKKyAgICBjb2xsZWN0SW5rT3ZlcmZsb3dGb3JUZXh0
RGVjb3JhdGlvbnMoYm94ZXMsIGRpc3BsYXlMaW5lKTsKICAgICBjb2xsZWN0SW5rT3ZlcmZsb3dG
b3JJbmxpbmVCb3hlcyhib3hlcyk7CiAgICAgcmV0dXJuIGJveGVzOwogfQpAQCAtNzg4LDcgKzc5
MCw3IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpjb2xsZWN0SW5rT3ZlcmZs
b3dGb3JJbmxpbmVCb3hlcyhEaXNwbGF5Qm94ZXMmCiAgICAgZm9yIChzaXplX3QgaW5kZXggPSBi
b3hlcy5zaXplKCk7IGluZGV4LS07KSB7CiAgICAgICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBib3hl
c1tpbmRleF07CiAKLSAgICAgICAgYXV0byBtYXlIYXZlSW5rT3ZlcmZsb3cgPSBkaXNwbGF5Qm94
LmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSB8fCBkaXNwbGF5Qm94LmlzR2VuZXJpY0lubGluZUxl
dmVsQm94KCkgfHwgZGlzcGxheUJveC5pc05vblJvb3RJbmxpbmVCb3goKTsKKyAgICAgICAgYXV0
byBtYXlIYXZlSW5rT3ZlcmZsb3cgPSBkaXNwbGF5Qm94LmlzVGV4dCgpIHx8IGRpc3BsYXlCb3gu
aXNBdG9taWNJbmxpbmVMZXZlbEJveCgpIHx8IGRpc3BsYXlCb3guaXNHZW5lcmljSW5saW5lTGV2
ZWxCb3goKSB8fCBkaXNwbGF5Qm94LmlzTm9uUm9vdElubGluZUJveCgpOwogICAgICAgICBpZiAo
IW1heUhhdmVJbmtPdmVyZmxvdykKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAo
ZGlzcGxheUJveC5pc05vblJvb3RJbmxpbmVCb3goKSAmJiAhYWNjdW11bGF0ZWRJbmtPdmVyZmxv
d1JlY3QuaXNFbXB0eSgpKQpAQCAtODA1LDYgKzgwNyw3NSBAQCB2b2lkIElubGluZURpc3BsYXlD
b250ZW50QnVpbGRlcjo6Y29sbGVjdElua092ZXJmbG93Rm9ySW5saW5lQm94ZXMoRGlzcGxheUJv
eGVzJgogICAgIH0KIH0KIAorc3RhdGljIGZsb2F0IGxvZ2ljYWxCb3R0b21Gb3JUZXh0RGVjb3Jh
dGlvbkNvbnRlbnQoY29uc3QgRGlzcGxheUJveGVzJiBib3hlcywgYm9vbCBpc0hvcml6b250YWxX
cml0aW5nTW9kZSkKK3sKKyAgICBhdXRvIGxvZ2ljYWxCb3R0b20gPSBzdGQ6Om9wdGlvbmFsPGZs
b2F0PiB7IH07CisgICAgZm9yIChhdXRvJiBkaXNwbGF5Qm94IDogYm94ZXMpIHsKKyAgICAgICAg
aWYgKGRpc3BsYXlCb3guaXNSb290SW5saW5lQm94KCkpCisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgaWYgKCFkaXNwbGF5Qm94LnN0eWxlKCkudGV4dERlY29yYXRpb25zSW5FZmZlY3Qo
KS5jb250YWlucyhUZXh0RGVjb3JhdGlvbkxpbmU6OlVuZGVybGluZSkpCisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgaWYgKGRpc3BsYXlCb3guaXNUZXh0KCkgfHwgZGlzcGxheUJveC5z
dHlsZSgpLnRleHREZWNvcmF0aW9uU2tpcEluaygpID09IFRleHREZWNvcmF0aW9uU2tpcEluazo6
Tm9uZSkgeworICAgICAgICAgICAgYXV0byBjb250ZW50TG9naWNhbEJvdHRvbSA9IGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlID8gZGlzcGxheUJveC5ib3R0b20oKSA6IGRpc3BsYXlCb3gucmlnaHQo
KTsKKyAgICAgICAgICAgIGxvZ2ljYWxCb3R0b20gPSBsb2dpY2FsQm90dG9tID8gc3RkOjptYXgo
KmxvZ2ljYWxCb3R0b20sIGNvbnRlbnRMb2dpY2FsQm90dG9tKSA6IGNvbnRlbnRMb2dpY2FsQm90
dG9tOworICAgICAgICB9CisgICAgfQorICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgbm90IGNhbGxl
ZCB1bmxlc3MgdGhlcmUncyBhdCBsZWFzdCBvbmUgcnVuIG9uIHRoZSBsaW5lIHdpdGggVGV4dERl
Y29yYXRpb25MaW5lOjpVbmRlcmxpbmUuCisgICAgQVNTRVJUKGxvZ2ljYWxCb3R0b20pOworICAg
IHJldHVybiBsb2dpY2FsQm90dG9tLnZhbHVlX29yKDAuZik7Cit9CisKK3ZvaWQgSW5saW5lRGlz
cGxheUNvbnRlbnRCdWlsZGVyOjpjb2xsZWN0SW5rT3ZlcmZsb3dGb3JUZXh0RGVjb3JhdGlvbnMo
RGlzcGxheUJveGVzJiBib3hlcywgY29uc3QgSW5saW5lRGlzcGxheTo6TGluZSYgZGlzcGxheUxp
bmUpCit7CisgICAgYXV0byBsb2dpY2FsQm90dG9tRm9yVGV4dERlY29yYXRpb24gPSBzdGQ6Om9w
dGlvbmFsPGZsb2F0PiB7IH07CisgICAgYXV0byB3cml0aW5nTW9kZSA9IHJvb3QoKS5zdHlsZSgp
LndyaXRpbmdNb2RlKCk7CisgICAgYXV0byBpc0hvcml6b250YWxXcml0aW5nTW9kZSA9IFdlYkNv
cmU6OmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKTsKKworICAgIGZvciAoYXV0
byYgZGlzcGxheUJveCA6IGJveGVzKSB7CisgICAgICAgIGlmICghZGlzcGxheUJveC5pc1RleHQo
KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGF1dG8mIHN0eWxlID0gZGlzcGxh
eUJveC5zdHlsZSgpOworICAgICAgICBhdXRvIHRleHREZWNvcmF0aW9ucyA9IHN0eWxlLnRleHRE
ZWNvcmF0aW9uc0luRWZmZWN0KCk7CisgICAgICAgIGlmICghdGV4dERlY29yYXRpb25zKQorICAg
ICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0byB1bmRlcmxpbmVPZmZzZXQgPSBbJl0o
KSAtPiBzdGQ6Om9wdGlvbmFsPGZsb2F0PiB7CisgICAgICAgICAgICBpZiAoIXRleHREZWNvcmF0
aW9ucy5jb250YWlucyhUZXh0RGVjb3JhdGlvbkxpbmU6OlVuZGVybGluZSkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgICAgIGlmICghbG9naWNhbEJvdHRvbUZvclRleHRE
ZWNvcmF0aW9uKQorICAgICAgICAgICAgICAgIGxvZ2ljYWxCb3R0b21Gb3JUZXh0RGVjb3JhdGlv
biA9IGxvZ2ljYWxCb3R0b21Gb3JUZXh0RGVjb3JhdGlvbkNvbnRlbnQoYm94ZXMsIGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKTsKKyAgICAgICAgICAgIGF1dG8gdGV4dFJ1bkxvZ2ljYWxPZmZzZXRG
cm9tTGluZUJvdHRvbSA9ICpsb2dpY2FsQm90dG9tRm9yVGV4dERlY29yYXRpb24gLSAoaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUgPyBkaXNwbGF5Qm94LmJvdHRvbSgpIDogZGlzcGxheUJveC5yaWdo
dCgpKTsKKyAgICAgICAgICAgIC8vIENvbXBlbnNhdGUgZm9yIHRoZSBpbnRlZ3JhbCBjZWlsaW5n
IGluIEdyYXBoaWNzQ29udGV4dDo6Y29tcHV0ZUxpbmVCb3VuZHNBbmRBbnRpYWxpYXNpbmdNb2Rl
Rm9yVGV4dCgpCisgICAgICAgICAgICByZXR1cm4gY29tcHV0ZVVuZGVybGluZU9mZnNldCh7IHN0
eWxlLCBkZWZhdWx0R2FwKHN0eWxlKSwgVW5kZXJsaW5lT2Zmc2V0QXJndW1lbnRzOjpUZXh0VW5k
ZXJsaW5lUG9zaXRpb25VbmRlciB7IGRpc3BsYXlMaW5lLmJhc2VsaW5lVHlwZSgpLCBkaXNwbGF5
Qm94LmhlaWdodCgpLCB0ZXh0UnVuTG9naWNhbE9mZnNldEZyb21MaW5lQm90dG9tIH0gfSkgKyAx
LjBmOworICAgICAgICB9OworCisgICAgICAgIGF1dG8gZGVjb3JhdGlvbk92ZXJmbG93ID0gdmlz
dWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhzdHlsZSwgdW5kZXJsaW5lT2Zmc2V0KCkpOworICAg
ICAgICBpZiAoIWRlY29yYXRpb25PdmVyZmxvdy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIG1f
Y29udGVudEhhc0lua092ZXJmbG93ID0gdHJ1ZTsKKyAgICAgICAgICAgIGF1dG8gaW5mbGF0ZWRW
aXN1YWxPdmVyZmxvd1JlY3QgPSBbJl0geworICAgICAgICAgICAgICAgIGF1dG8gaW5rT3ZlcmZs
b3dSZWN0ID0gZGlzcGxheUJveC5pbmtPdmVyZmxvdygpOworICAgICAgICAgICAgICAgIHN3aXRj
aCAod3JpdGluZ01vZGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFdyaXRpbmdNb2RlOjpUb3BU
b0JvdHRvbToKKyAgICAgICAgICAgICAgICAgICAgaW5rT3ZlcmZsb3dSZWN0LmluZmxhdGUoZGVj
b3JhdGlvbk92ZXJmbG93LmxlZnQsIGRlY29yYXRpb25PdmVyZmxvdy50b3AsIGRlY29yYXRpb25P
dmVyZmxvdy5yaWdodCwgZGVjb3JhdGlvbk92ZXJmbG93LmJvdHRvbSk7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgV3JpdGluZ01vZGU6OkxlZnRUb1Jp
Z2h0OgorICAgICAgICAgICAgICAgICAgICBpbmtPdmVyZmxvd1JlY3QuaW5mbGF0ZShkZWNvcmF0
aW9uT3ZlcmZsb3cuYm90dG9tLCBkZWNvcmF0aW9uT3ZlcmZsb3cucmlnaHQsIGRlY29yYXRpb25P
dmVyZmxvdy50b3AsIGRlY29yYXRpb25PdmVyZmxvdy5sZWZ0KTsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBXcml0aW5nTW9kZTo6UmlnaHRUb0xlZnQ6
CisgICAgICAgICAgICAgICAgICAgIGlua092ZXJmbG93UmVjdC5pbmZsYXRlKGRlY29yYXRpb25P
dmVyZmxvdy50b3AsIGRlY29yYXRpb25PdmVyZmxvdy5yaWdodCwgZGVjb3JhdGlvbk92ZXJmbG93
LmJvdHRvbSwgZGVjb3JhdGlvbk92ZXJmbG93LmxlZnQpOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBpbmtPdmVyZmxvd1JlY3Q7CisgICAgICAg
ICAgICB9OworICAgICAgICAgICAgZGlzcGxheUJveC5hZGp1c3RJbmtPdmVyZmxvdyhpbmZsYXRl
ZFZpc3VhbE92ZXJmbG93UmVjdCgpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBJbmxp
bmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmNvbXB1dGVJc0ZpcnN0SXNMYXN0Qm94Rm9ySW5saW5l
Q29udGVudChEaXNwbGF5Qm94ZXMmIGJveGVzKQogewogICAgIEhhc2hNYXA8Y29uc3QgQm94Kiwg
c2l6ZV90PiBsYXN0RGlzcGxheUJveEZvckxheW91dEJveEluZGV4ZXM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lu
bGluZURpc3BsYXlDb250ZW50QnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIu
aAppbmRleCA3ODczOGNkYjFjNzYuLjE5MmM0NTdhOTRhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNw
bGF5Q29udGVudEJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5oCkBA
IC01Myw2ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcm9jZXNzQmlkaUNvbnRlbnQoY29u
c3QgTGluZUJ1aWxkZXI6OkxpbmVDb250ZW50JiwgY29uc3QgTGluZUJveCYsIGNvbnN0IElubGlu
ZURpc3BsYXk6OkxpbmUmLCBEaXNwbGF5Qm94ZXMmKTsKICAgICB2b2lkIHByb2Nlc3NPdmVyZmxv
d25SdW5zRm9yRWxsaXBzaXMoRGlzcGxheUJveGVzJiwgSW5saW5lTGF5b3V0VW5pdCBsaW5lQm94
UmlnaHQpOwogICAgIHZvaWQgY29sbGVjdElua092ZXJmbG93Rm9ySW5saW5lQm94ZXMoRGlzcGxh
eUJveGVzJik7CisgICAgdm9pZCBjb2xsZWN0SW5rT3ZlcmZsb3dGb3JUZXh0RGVjb3JhdGlvbnMo
RGlzcGxheUJveGVzJiwgY29uc3QgSW5saW5lRGlzcGxheTo6TGluZSYpOwogCiAgICAgdm9pZCBh
cHBlbmRUZXh0RGlzcGxheUJveChjb25zdCBMaW5lOjpSdW4mLCBjb25zdCBJbmxpbmVSZWN0Jiwg
RGlzcGxheUJveGVzJik7CiAgICAgdm9pZCBhcHBlbmRTb2Z0TGluZUJyZWFrRGlzcGxheUJveChj
b25zdCBMaW5lOjpSdW4mLCBjb25zdCBJbmxpbmVSZWN0JiwgRGlzcGxheUJveGVzJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcAppbmRleCA5NjBlZDgxNTli
YTguLmY0ODU2OTkzM2IzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5l
VGV4dEJveFN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94
U3R5bGUuY3BwCkBAIC0yNDQsMTUgKzI0NCwxMyBAQCBHbHlwaE92ZXJmbG93IHZpc3VhbE92ZXJm
bG93Rm9yRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUmIGxpbmVTdHlsZSwgY29uc3QgSQog
CiAgICAgLy8gQ29tcGVuc2F0ZSBmb3IgdGhlIGludGVncmFsIGNlaWxpbmcgaW4gR3JhcGhpY3ND
b250ZXh0Ojpjb21wdXRlTGluZUJvdW5kc0FuZEFudGlhbGlhc2luZ01vZGVGb3JUZXh0KCkKICAg
ICBpbnQgdW5kZXJsaW5lT2Zmc2V0ID0gMTsKLSAgICBmbG9hdCB0ZXh0RGVjb3JhdGlvbkJhc2VG
b250U2l6ZSA9IDE2OwotICAgIGF1dG8gZGVmYXVsdEdhcCA9IGxpbmVTdHlsZS5jb21wdXRlZEZv
bnRTaXplKCkgLyB0ZXh0RGVjb3JhdGlvbkJhc2VGb250U2l6ZTsKICAgICAvLyBGSVhNRTogUmVu
ZGVyU3R5bGUgY2FsbHMgdXMgd2l0aCBlbXB0eSB0ZXh0UnVuIGJ1dCBvbmx5IHdoZW4gVGV4dFVu
ZGVybGluZVBvc2l0aW9uIGlzIG5vdCBVbmRlci4KICAgICBBU1NFUlQodGV4dFJ1biB8fCBsaW5l
U3R5bGUudGV4dFVuZGVybGluZVBvc2l0aW9uKCkgIT0gVGV4dFVuZGVybGluZVBvc2l0aW9uOjpV
bmRlcik7CiAgICAgaWYgKCF0ZXh0UnVuKQotICAgICAgICB1bmRlcmxpbmVPZmZzZXQgKz0gY29t
cHV0ZVVuZGVybGluZU9mZnNldCh7IGxpbmVTdHlsZSwgZGVmYXVsdEdhcCB9KTsKKyAgICAgICAg
dW5kZXJsaW5lT2Zmc2V0ICs9IGNvbXB1dGVVbmRlcmxpbmVPZmZzZXQoeyBsaW5lU3R5bGUsIGRl
ZmF1bHRHYXAobGluZVN0eWxlKSB9KTsKICAgICBlbHNlIHsKICAgICAgICAgdW5kZXJsaW5lT2Zm
c2V0ICs9IGNvbXB1dGVVbmRlcmxpbmVPZmZzZXQoeyBsaW5lU3R5bGUKLSAgICAgICAgICAgICwg
ZGVmYXVsdEdhcAorICAgICAgICAgICAgLCBkZWZhdWx0R2FwKGxpbmVTdHlsZSkKICAgICAgICAg
ICAgICwgVW5kZXJsaW5lT2Zmc2V0QXJndW1lbnRzOjpUZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRl
ciB7IHRleHRSdW4tPmxpbmVCb3goKS0+YmFzZWxpbmVUeXBlKCksIHRleHRSdW4tPmxvZ2ljYWxC
b3R0b20oKSAtIHRleHRSdW4tPmxvZ2ljYWxUb3AoKSwgdGV4dFJ1bkxvZ2ljYWxPZmZzZXRGcm9t
TGluZUJvdHRvbSh0ZXh0UnVuKSB9CiAgICAgICAgIH0pOwogICAgIH0KQEAgLTI2Myw1ICsyNjEs
MTEgQEAgR2x5cGhPdmVyZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0IFJl
bmRlclN0eWxlJiBsaW5lU3R5bGUpCiB7CiAgICAgcmV0dXJuIHZpc3VhbE92ZXJmbG93Rm9yRGVj
b3JhdGlvbnMobGluZVN0eWxlLCBJbmxpbmVJdGVyYXRvcjo6VGV4dEJveEl0ZXJhdG9yIHsgfSk7
CiB9Ci0gICAgCisKK2Zsb2F0IGRlZmF1bHRHYXAoY29uc3QgUmVuZGVyU3R5bGUmIGxpbmVTdHls
ZSkKK3sKKyAgICBjb25zdCBmbG9hdCB0ZXh0RGVjb3JhdGlvbkJhc2VGb250U2l6ZSA9IDE2LmY7
CisgICAgcmV0dXJuIGxpbmVTdHlsZS5jb21wdXRlZEZvbnRTaXplKCkgLyB0ZXh0RGVjb3JhdGlv
bkJhc2VGb250U2l6ZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
SW5saW5lVGV4dEJveFN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94
U3R5bGUuaAppbmRleCBjOTZiMzA1YWY5OWEuLjE4ZjE1Zjg5YzE5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmgKQEAgLTUzLDYgKzUzLDcgQEAgc3RydWN0IFdh
dnlTdHJva2VQYXJhbWV0ZXJzIHsKICAgICBmbG9hdCBzdGVwIHsgMCB9OwogfTsKIFdhdnlTdHJv
a2VQYXJhbWV0ZXJzIGdldFdhdnlTdHJva2VQYXJhbWV0ZXJzKGZsb2F0IGZvbnRTaXplKTsKKwog
R2x5cGhPdmVyZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0IFJlbmRlclN0
eWxlJiBsaW5lU3R5bGUpOwogR2x5cGhPdmVyZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRp
b25zKGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUsIGNvbnN0IElubGluZUl0ZXJhdG9yOjpU
ZXh0Qm94SXRlcmF0b3ImKTsKIEdseXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0
aW9ucyhjb25zdCBSZW5kZXJTdHlsZSYgbGluZVN0eWxlLCBzdGQ6Om9wdGlvbmFsPGZsb2F0PiB1
bmRlcmxpbmVPZmZzZXQpOwpAQCAtNjksNSArNzAsNiBAQCBzdHJ1Y3QgVW5kZXJsaW5lT2Zmc2V0
QXJndW1lbnRzIHsKIH07CiBmbG9hdCBjb21wdXRlVW5kZXJsaW5lT2Zmc2V0KGNvbnN0IFVuZGVy
bGluZU9mZnNldEFyZ3VtZW50cyYpOwogZmxvYXQgdGV4dFJ1bkxvZ2ljYWxPZmZzZXRGcm9tTGlu
ZUJvdHRvbShjb25zdCBJbmxpbmVJdGVyYXRvcjo6VGV4dEJveEl0ZXJhdG9yJik7CitmbG9hdCBk
ZWZhdWx0R2FwKGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUpOwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtZGVjb3JhdGlvbi90ZXh0LXVuZGVybGluZS1wb3NpdGlvbi91bmRlcmxpbmUtdmlzdWFsLW92
ZXJmbG93LXdpdGgtc3VicGl4ZWwtcG9zaXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC11bmRlcmxpbmUtcG9zaXRp
b24vdW5kZXJsaW5lLXZpc3VhbC1vdmVyZmxvdy13aXRoLXN1YnBpeGVsLXBvc2l0aW9uLWV4cGVj
dGVkLnR4dAppbmRleCBlNjNhMTA1ZmEyZDEuLjVhMWIwODk2YTQwOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC11bmRlcmxp
bmUtcG9zaXRpb24vdW5kZXJsaW5lLXZpc3VhbC1vdmVyZmxvdy13aXRoLXN1YnBpeGVsLXBvc2l0
aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtZGVjb3JhdGlvbi90ZXh0LXVuZGVybGluZS1wb3NpdGlvbi91bmRlcmxpbmUtdmlzdWFsLW92
ZXJmbG93LXdpdGgtc3VicGl4ZWwtcG9zaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBA
QAotUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpLmluZGV4T2YoJzgg
OCA3ODQgMTInKSBpcyBub3QgLTEKLVBBU1Mgd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNB
c1RleHQoKS5pbmRleE9mKCc4IDIwIDc4NCAxMicpIGlzIG5vdCAtMQorUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpLmluZGV4T2YoJzggOCA3ODQgMTMnKSBpcyBub3Qg
LTEKK1BBU1Mgd2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKS5pbmRleE9mKCc4
IDIwIDc4NCAxMycpIGlzIG5vdCAtMQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LXVuZGVybGluZS1wb3NpdGlvbi91bmRlcmxpbmUtdmlz
dWFsLW92ZXJmbG93LXdpdGgtc3VicGl4ZWwtcG9zaXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL3RleHQtdW5kZXJsaW5lLXBvc2l0aW9u
L3VuZGVybGluZS12aXN1YWwtb3ZlcmZsb3ctd2l0aC1zdWJwaXhlbC1wb3NpdGlvbi5odG1sCmlu
ZGV4IDM5ZWUzMzAyNjUwNy4uZDEwYjBmYzgzYmEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0LXVuZGVybGluZS1wb3NpdGlv
bi91bmRlcmxpbmUtdmlzdWFsLW92ZXJmbG93LXdpdGgtc3VicGl4ZWwtcG9zaXRpb24uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi90ZXh0
LXVuZGVybGluZS1wb3NpdGlvbi91bmRlcmxpbmUtdmlzdWFsLW92ZXJmbG93LXdpdGgtc3VicGl4
ZWwtcG9zaXRpb24uaHRtbApAQCAtMzEsOCArMzEsOCBAQCBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
ewogICAgICAgZWxlbWVudHNbaV0uc3R5bGUudGV4dERlY29yYXRpb24gPSAidW5kZXJsaW5lIjsK
ICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKICAgICBpZiAod2luZG93LmludGVybmFs
cykgewotICAgICAgICBzaG91bGROb3RCZSgid2luZG93LmludGVybmFscy5yZXBhaW50UmVjdHNB
c1RleHQoKS5pbmRleE9mKCc4IDggNzg0IDEyJykiLCAiLTEiKTsKLSAgICAgICAgc2hvdWxkTm90
QmUoIndpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCkuaW5kZXhPZignOCAyMCA3
ODQgMTInKSIsICItMSIpOworICAgICAgICBzaG91bGROb3RCZSgid2luZG93LmludGVybmFscy5y
ZXBhaW50UmVjdHNBc1RleHQoKS5pbmRleE9mKCc4IDggNzg0IDEzJykiLCAiLTEiKTsKKyAgICAg
ICAgc2hvdWxkTm90QmUoIndpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCkuaW5k
ZXhPZignOCAyMCA3ODQgMTMnKSIsICItMSIpOwogICAgICAgICBpbnRlcm5hbHMuc3RvcFRyYWNr
aW5nUmVwYWludHMoKTsKICAgICB9CiAgICAgZmluaXNoSlNUZXN0KCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1kZWNvcmF0aW9uLW92ZXJmbG93LXJlcGFpbnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtZGVjb3JhdGlvbi1v
dmVyZmxvdy1yZXBhaW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAuLmVlYTVmZmE1YTAzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC90ZXh0LWRlY29yYXRpb24tb3ZlcmZsb3ctcmVwYWludC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMCBAQAorUEFTUyBpZiB0aGUgdW5kZXJsaW5lcyBhcmUgZ3JlZW4uCitj
b250ZW50Citjb250ZW50Citjb250ZW50CisocmVwYWludCByZWN0cworICAocmVjdCA0OCA0NiAx
MTIgMjUpCisgIChyZWN0IDM5IDgyIDI1IDExMikKKyAgKHJlY3QgMzkgMjE0IDI1IDExMikKKykK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3RleHQtZGVjb3JhdGlvbi1v
dmVyZmxvdy1yZXBhaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdGV4dC1kZWNv
cmF0aW9uLW92ZXJmbG93LXJlcGFpbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAuLjA1MjkyY2JjODcyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC90ZXh0LWRlY29yYXRpb24tb3ZlcmZsb3ctcmVwYWludC5odG1sCkBAIC0w
LDAgKzEsMzYgQEAKKzxzdHlsZT4KK2RpdiB7CisgIG1hcmdpbjogMjBweDsKKyAgZm9udC1mYW1p
bHk6IEFoZW07Cit9CitzcGFuIHsKKyAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CisgIHRl
eHQtdW5kZXJsaW5lLW9mZnNldDogMTBweDsKKyAgY29sb3I6IGJsdWU7Cit9Cis8L3N0eWxlPgor
UEFTUyBpZiB0aGUgdW5kZXJsaW5lcyBhcmUgZ3JlZW4uCis8ZGl2IGlkPWNvbnRhaW5lcj4KKzxk
aXY+PHNwYW4+Y29udGVudDwvc3Bhbj48L2Rpdj4KKzxkaXYgc3R5bGU9IndyaXRpbmctbW9kZTog
dmVydGljYWwtbHIiPjxzcGFuPmNvbnRlbnQ8L3NwYW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSJ3cml0
aW5nLW1vZGU6IHZlcnRpY2FsLXJsIj48c3Bhbj5jb250ZW50PC9zcGFuPjwvZGl2PgorPC9kaXY+
Cis8cHJlIGlkPXJlc3VsdD48L3ByZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworfQorc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgd2luZG93LmludGVybmFscy5zdGFydFRyYWNraW5nUmVwYWludHMoKTsKKyAgZm9yIChs
ZXQgY2hhbmdlVGhpcyBvZiBjb250YWluZXIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNwYW4iKSkK
KyAgICBjaGFuZ2VUaGlzLnN0eWxlLnRleHREZWNvcmF0aW9uQ29sb3IgPSAiZ3JlZW4iOworICBp
ZiAod2luZG93LmludGVybmFscykgeworICAgIHJlc3VsdC5pbm5lclRleHQgPSB3aW5kb3cuaW50
ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc3RvcFRy
YWNraW5nUmVwYWludHMoKTsKKyAgfQorICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9LCAxMCk7Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCi0tIAoyLjMyLjAgKEFwcGxlIEdpdC0xMzIpCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>