<?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>236479</bug_id>
          
          <creation_ts>2022-02-10 18:46:25 -0800</creation_ts>
          <short_desc>Enable grammar checking on Mac Catalyst.</short_desc>
          <delta_ts>2022-02-11 15:05:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>mifenton</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1840083</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-02-10 18:46:25 -0800</bug_when>
    <thetext>Enable grammar checking on Mac Catalyst.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840085</commentid>
    <comment_count>1</comment_count>
      <attachid>451627</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-02-10 18:54:22 -0800</bug_when>
    <thetext>Created attachment 451627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840098</commentid>
    <comment_count>2</comment_count>
      <attachid>451632</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-02-10 19:26:28 -0800</bug_when>
    <thetext>Created attachment 451632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840494</commentid>
    <comment_count>3</comment_count>
      <attachid>451632</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-02-11 12:38:56 -0800</bug_when>
    <thetext>Comment on attachment 451632
Patch

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

r=mews, nice! :)

&gt; Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm:66
&gt; +

Style: extra whitespace

&gt; Source/WebKit/UIProcess/ios/TextCheckerIOS.mm:254
&gt; +                    ASSERT(detailRangeAsNSValue);
&gt; +                    NSRange detailNSRange = [detailRangeAsNSValue rangeValue];

Style: I&apos;d maybe sprinkle some newlines in here so it&apos;s a bit less &quot;wall-of-text&quot;-y 😅

&gt; Source/WebKit/UIProcess/ios/TextCheckerIOS.mm:261
&gt; +                        detail.guesses.append(String(guess));

NIT: Is the `String` necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840557</commentid>
    <comment_count>4</comment_count>
      <attachid>451745</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-02-11 14:31:37 -0800</bug_when>
    <thetext>Created attachment 451745
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840585</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-11 15:04:34 -0800</bug_when>
    <thetext>Committed r289673 (247161@main): &lt;https://commits.webkit.org/247161@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 451745.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840586</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-11 15:05:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/88837575&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451627</attachid>
            <date>2022-02-10 18:54:22 -0800</date>
            <delta_ts>2022-02-10 20:00:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236479-20220210185421.patch</filename>
            <type>text/plain</type>
            <size>11912</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGRhZmZiMDI2NTBkOTA1
YTRjMGFjMzRmZmI5YmZiZTk0MjEyY2FlMC4uODdiNzQ3YWRlM2E4YTVkNGFlZmJkOWU5NDliYjlh
OWNlZDRkYzYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAyLTEwICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIGdy
YW1tYXIgY2hlY2tpbmcgb24gTWFjIENhdGFseXN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NDc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvV29yZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW06Cisg
ICAgICAgIChXZWJDb3JlOjpncmFtbWFyQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6Y29sb3JG
b3JNYXJrZXJMaW5lU3R5bGUpOgorCiAyMDIyLTAyLTEwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBEbyBub3QgZXhwb3NlIGluIFdlYklETCB0aGUgcGFydHMg
b2YgdGhlIHBlcm1pc3Npb24gQVBJIHRoYXQgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDAwYjBjMjMzMmNkMGZkYWI2ODBkNzAyY2MyNDZiYzRkYTRjMDE3ZGIuLjZkY2EzYTk2OTYy
OWQwYTJmMWZmMDgxODg1NDAxODBmZjVkOGE3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjItMDItMTAgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBFbmFibGUgZ3JhbW1hciBjaGVja2luZyBvbiBNYWMgQ2F0YWx5c3QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY0NzkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL3NwaS9p
b3MvVUlLaXRTUEkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1RleHRDaGVja2VySU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjptdXRhYmxlU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpUZXh0
Q2hlY2tlcjo6c2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OlRl
eHRDaGVja2VyOjpjaGVja1RleHRPZlBhcmFncmFwaCk6CisKIDIwMjItMDItMTAgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0g
UmVmYWN0b3IgdGhlIFhER0RCdXNQcm94eSBsYXVuY2hlciB0byBzaW1wbGlmeSBpdCBhbmQgZml4
IHNvbWUgaXNzdWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggYjNlNDViMjAwMDg2
MGUyYjAyZmZjMWYyMWI1NjUwYjhmZDk2ZjE3My4uYTkzZDFmY2ZjZjVlYzJmZTM2MzRiYmFlYWVm
NzdkZTcxODViMjQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjUyMiw3ICsy
NTIyLDIzIEBAIHZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1dvcmQo
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiB3b3JkU3RhcnQsCiAKICAgICBhdXRvIGFkamFjZW50V29y
ZHMgPSBWaXNpYmxlU2VsZWN0aW9uKHN0YXJ0T2ZXb3JkKHdvcmRTdGFydCwgTGVmdFdvcmRJZk9u
Qm91bmRhcnkpLCBlbmRPZldvcmQod29yZFN0YXJ0LCBSaWdodFdvcmRJZk9uQm91bmRhcnkpKTsK
ICAgICBhdXRvIGFkamFjZW50V29yZFJhbmdlID0gYWRqYWNlbnRXb3Jkcy50b05vcm1hbGl6ZWRS
YW5nZSgpOwotICAgIG1hcmtBbGxNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXModGV4
dENoZWNraW5nT3B0aW9ucywgYWRqYWNlbnRXb3JkUmFuZ2UsIGFkamFjZW50V29yZFJhbmdlLCBh
ZGphY2VudFdvcmRSYW5nZSk7CisKKyNpZiBFTkFCTEUoTUFDX0NBVEFMWVNUX0dSQU1NQVJfQ0hF
Q0tJTkcpCisgICAgaWYgKGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCgpKSB7CisgICAgICAgIHRl
eHRDaGVja2luZ09wdGlvbnMuYWRkKFRleHRDaGVja2luZ1R5cGU6OkdyYW1tYXIpOworICAgICAg
ICBhdXRvIHNlbnRlbmNlU3RhcnQgPSBzdGFydE9mU2VudGVuY2Uod29yZFN0YXJ0KTsKKyAgICAg
ICAgYXV0byBzZW50ZW5jZUVuZCA9IGVuZE9mU2VudGVuY2Uod29yZFN0YXJ0KTsKKyAgICAgICAg
VmlzaWJsZVNlbGVjdGlvbiBmdWxsU2VudGVuY2Uoc2VudGVuY2VTdGFydCwgc2VudGVuY2VFbmQp
OworICAgICAgICBhdXRvIGZ1bGxTZW50ZW5jZVJhbmdlID0gZnVsbFNlbnRlbmNlLnRvTm9ybWFs
aXplZFJhbmdlKCk7CisgICAgICAgIGlmICghZnVsbFNlbnRlbmNlUmFuZ2UpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgbWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJh
bmdlcyh0ZXh0Q2hlY2tpbmdPcHRpb25zLCBhZGphY2VudFdvcmRSYW5nZSwgYWRqYWNlbnRXb3Jk
UmFuZ2UsIGZ1bGxTZW50ZW5jZVJhbmdlKTsKKyAgICB9IGVsc2UKKyNlbmRpZgorICAgIHsKKyAg
ICAgICAgbWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyh0ZXh0Q2hlY2tp
bmdPcHRpb25zLCBhZGphY2VudFdvcmRSYW5nZSwgYWRqYWNlbnRXb3JkUmFuZ2UsIGFkamFjZW50
V29yZFJhbmdlKTsKKyAgICB9CiAjZWxzZQogI2lmICFVU0UoQVVUT01BVElDX1RFWFRfUkVQTEFD
RU1FTlQpCiAgICAgVU5VU0VEX1BBUkFNKGRvUmVwbGFjZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRl
eHRDb2NvYS5tbQppbmRleCBhNTgwNDRmMjAzZmVlODJhYTVhZjJmZTVhM2RmMjljMzQ1YmNlYjc4
Li4yZmY4YmRkYzZlZDEzNDMxN2FmM2I5N2JhNWQyZjQ2YjAxNmFiN2ZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRDb2NvYS5tbQpAQCAtNjAsNiArNjAsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Ly8gTlNDb2xvciwgTlNCZXppZXJQYXRoLCBhbmQgTlNHcmFwaGljc0NvbnRleHQgY2FsbHMgZG8g
bm90IHJhaXNlIGV4Y2VwdGlvbnMKIC8vIHNvIHdlIGRvbid0IGJsb2NrIGV4Y2VwdGlvbnMuCiAK
KyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9H
cmFwaGljc0NvbnRleHRDb2NvYS5tbT4KKyNlbHNlCisKK3N0YXRpYyBSZXRhaW5QdHI8Q0dDb2xv
clJlZj4gU3RyaW5nIGdyYW1tYXJDb2xvcihib29sIHVzZURhcmtNb2RlKQoreworICAgIHJldHVy
biBjYWNoZWRDR0NvbG9yKHVzZURhcmtNb2RlID8gU1JHQkE8dWludDhfdD4geyA1MCwgMjE1LCA3
NSwgMjE3IH0gOiBTUkdCQTx1aW50OF90PiB7IDI1LCAxNzUsIDUwLCAxOTEgfSk7Cit9CisjZW5k
aWYKKwogc3RhdGljIGJvb2wgZHJhd0ZvY3VzUmluZ0F0VGltZShDR0NvbnRleHRSZWYgY29udGV4
dCwgTlNUaW1lSW50ZXJ2YWwgdGltZU9mZnNldCwgY29uc3QgQ29sb3ImIGNvbG9yKQogewogI2lm
IFVTRShBUFBLSVQpCkBAIC0xNzAsOSArMTgwLDggQEAgc3RhdGljIFJldGFpblB0cjxDR0NvbG9y
UmVmPiBjb2xvckZvck1hcmtlckxpbmVTdHlsZShEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6TW8K
ICAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpNb2RlOjpUZXh0Q2hlY2tpbmdEaWN0
YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzOgogICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5l
U3R5bGU6Ok1vZGU6OkF1dG9jb3JyZWN0aW9uUmVwbGFjZW1lbnQ6CiAgICAgICAgIHJldHVybiBj
YWNoZWRDR0NvbG9yKHVzZURhcmtNb2RlID8gU1JHQkE8dWludDhfdD4geyA0MCwgMTQ1LCAyNTUs
IDIxNyB9IDogU1JHQkE8dWludDhfdD4geyAwLCAxMjIsIDI1NSwgMTkxIH0pOwotICAgIC8vIEdy
ZWVuCiAgICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6TW9kZTo6R3JhbW1hcjoKLSAg
ICAgICAgcmV0dXJuIGNhY2hlZENHQ29sb3IodXNlRGFya01vZGUgPyBTUkdCQTx1aW50OF90PiB7
IDUwLCAyMTUsIDc1LCAyMTcgfSA6IFNSR0JBPHVpbnQ4X3Q+IHsgMjUsIDE3NSwgNTAsIDE5MSB9
KTsKKyAgICAgICAgcmV0dXJuIGdyYW1tYXJDb2xvcih1c2VEYXJrTW9kZSk7CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaCBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IDg1MjJkOWNh
Zjc2MWZlYjU0MDNlYTQ0Y2VjNzgyMjliYjk5YzBiZTYuLjUzNGZiNGE1MWUxOGU5OGE5OGZmNWZi
MTBmMjJlYzM1YTE0N2RjNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L2lvcy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtp
dFNQSS5oCkBAIC0xNDk2LDYgKzE0OTYsMTMgQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIs
IF9VSUNvbnRleHRNZW51TGF5b3V0KSB7CiBAZW5kCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNQUNf
Q0FUQUxZU1RfR1JBTU1BUl9DSEVDS0lORykKK0BpbnRlcmZhY2UgVUlUZXh0Q2hlY2tlciAoKQor
KyAoQk9PTClncmFtbWFyQ2hlY2tpbmdFbmFibGVkOworLSAoTlNBcnJheTxOU1RleHRDaGVja2lu
Z1Jlc3VsdCAqPiAqKWNoZWNrU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZ1RvQ2hlY2sgcmFuZ2U6
KE5TUmFuZ2UpcmFuZ2UgdHlwZXM6KE5TVGV4dENoZWNraW5nVHlwZXMpY2hlY2tpbmdUeXBlcyBs
YW5ndWFnZXM6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsYW5ndWFnZXNBcnJheSBvcHRpb25zOihO
U0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopb3B0aW9uczsKK0BlbmQKKyNlbmRpZgorCiBA
cHJvdG9jb2wgVUlUZXh0SW5wdXRJbnRlcm5hbCA8VUlUZXh0SW5wdXRQcml2YXRlPgogQG9wdGlv
bmFsCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVjdCBfc2VsZWN0aW9uQ2xp
cFJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvVGV4dENoZWNr
ZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvVGV4dENoZWNrZXJJT1MubW0K
aW5kZXggN2FmYTZhMzE5NzlhZWI1MTc1N2FjZDZhMTE2NDQ3MjE5ZThjMGVkZC4uMzZjMWRlYWU4
YjkxOGQ3MDkzMTkwZDEyNDU5ZTExNzkwMmViYWI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1RleHRDaGVja2VySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9UZXh0Q2hlY2tlcklPUy5tbQpAQCAtNDQsNyArNDQsMTEgQEAgc3RhdGljIFRl
eHRDaGVja2VyU3RhdGUmIG11dGFibGVTdGF0ZSgpCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
IHN0YXRlID0gW10gewogICAgICAgICBUZXh0Q2hlY2tlclN0YXRlIGluaXRpYWxTdGF0ZTsKICAg
ICAgICAgaW5pdGlhbFN0YXRlLmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkID0gVGV4
dENoZWNrZXI6OmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdBbGxvd2VkKCk7CisjaWYgRU5BQkxF
KE1BQ19DQVRBTFlTVF9HUkFNTUFSX0NIRUNLSU5HKQorICAgICAgICBpbml0aWFsU3RhdGUuaXNH
cmFtbWFyQ2hlY2tpbmdFbmFibGVkID0gW1VJVGV4dENoZWNrZXIgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3RvcihncmFtbWFyQ2hlY2tpbmdFbmFibGVkKV0gJiYgW1VJVGV4dENoZWNrZXIgZ3Jh
bW1hckNoZWNraW5nRW5hYmxlZF07CisjZWxzZQogICAgICAgICBpbml0aWFsU3RhdGUuaXNHcmFt
bWFyQ2hlY2tpbmdFbmFibGVkID0gZmFsc2U7CisjZW5kaWYKICAgICAgICAgcmV0dXJuIGluaXRp
YWxTdGF0ZTsKICAgICB9KCk7CiAgICAgcmV0dXJuIHN0YXRlOwpAQCAtNzMsOSArNzcsMTYgQEAg
Ym9vbCBUZXh0Q2hlY2tlcjo6c2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBUZXh0Q2hlY2tlcjo6c2V0R3Jh
bW1hckNoZWNraW5nRW5hYmxlZChib29sKQordm9pZCBUZXh0Q2hlY2tlcjo6c2V0R3JhbW1hckNo
ZWNraW5nRW5hYmxlZChib29sIGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCkKIHsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOworI2lmIEVOQUJMRShNQUNfQ0FUQUxZU1RfR1JBTU1BUl9DSEVDS0lORykK
KyAgICBpZiAoc3RhdGUoKS5pc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQgPT0gaXNHcmFtbWFyQ2hl
Y2tpbmdFbmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBtdXRhYmxlU3RhdGUoKS5pc0dy
YW1tYXJDaGVja2luZ0VuYWJsZWQgPSBpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQ7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQpOworI2VuZGlmCiB9CiAK
IHZvaWQgVGV4dENoZWNrZXI6OnNldEF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQo
Ym9vbCkKQEAgLTE4OSw3ICsyMDAsNyBAQCBzdGF0aWMgUmV0YWluUHRyPFVJVGV4dENoZWNrZXI+
IHRleHRDaGVja2VyRm9yKFNwZWxsRG9jdW1lbnRUYWcgc3BlbGxEb2N1bWVudFRhZwogICAgIHJl
dHVybiBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwogfQogCi1WZWN0b3I8VGV4dENoZWNraW5n
UmVzdWx0PiBUZXh0Q2hlY2tlcjo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoU3BlbGxEb2N1bWVudFRh
ZyBzcGVsbERvY3VtZW50VGFnLCBTdHJpbmdWaWV3IHRleHQsIGludDMyX3QgLyogaW5zZXJ0aW9u
UG9pbnQgKi8sIE9wdGlvblNldDxUZXh0Q2hlY2tpbmdUeXBlPiBjaGVja2luZ1R5cGVzLCBib29s
IC8qIGluaXRpYWxDYXBpdGFsaXphdGlvbkVuYWJsZWQgKi8pCitWZWN0b3I8VGV4dENoZWNraW5n
UmVzdWx0PiBUZXh0Q2hlY2tlcjo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoU3BlbGxEb2N1bWVudFRh
ZyBzcGVsbERvY3VtZW50VGFnLCBTdHJpbmdWaWV3IHRleHQsIGludDMyX3QgaW5zZXJ0aW9uUG9p
bnQsIE9wdGlvblNldDxUZXh0Q2hlY2tpbmdUeXBlPiBjaGVja2luZ1R5cGVzLCBib29sIC8qIGlu
aXRpYWxDYXBpdGFsaXphdGlvbkVuYWJsZWQgKi8pCiB7CiAgICAgVmVjdG9yPFRleHRDaGVja2lu
Z1Jlc3VsdD4gcmVzdWx0czsKICAgICBpZiAoIWNoZWNraW5nVHlwZXMuY29udGFpbnMoVGV4dENo
ZWNraW5nVHlwZTo6U3BlbGxpbmcpKQpAQCAtMjA4LDE5ICsyMTksNjggQEAgVmVjdG9yPFRleHRD
aGVja2luZ1Jlc3VsdD4gVGV4dENoZWNrZXI6OmNoZWNrVGV4dE9mUGFyYWdyYXBoKFNwZWxsRG9j
dW1lbnRUYWcgc3AKIAogICAgIGF1dG8gc3RyaW5nVG9DaGVjayA9IHRleHQuY3JlYXRlTlNTdHJp
bmdXaXRob3V0Q29weWluZygpOwogICAgIGF1dG8gcmFuZ2UgPSBOU01ha2VSYW5nZSgwLCBbc3Ry
aW5nVG9DaGVjayBsZW5ndGhdKTsKLSAgICBOU1VJbnRlZ2VyIG9mZnNldFNvRmFyID0gMDsKLSAg
ICBkbyB7Ci0gICAgICAgIGF1dG8gbWlzc3BlbGxlZFJhbmdlID0gW3RleHRDaGVja2VyIHJhbmdl
T2ZNaXNzcGVsbGVkV29yZEluU3RyaW5nOnN0cmluZ1RvQ2hlY2suZ2V0KCkgcmFuZ2U6cmFuZ2Ug
c3RhcnRpbmdBdDpvZmZzZXRTb0ZhciB3cmFwOk5PIGxhbmd1YWdlczprZXlib2FyZExhbmd1YWdl
c107Ci0gICAgICAgIGlmIChtaXNzcGVsbGVkUmFuZ2UubG9jYXRpb24gPT0gTlNOb3RGb3VuZCkK
LSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIFRleHRDaGVja2luZ1Jlc3VsdCByZXN1bHQ7
Ci0gICAgICAgIHJlc3VsdC50eXBlID0gVGV4dENoZWNraW5nVHlwZTo6U3BlbGxpbmc7Ci0gICAg
ICAgIHJlc3VsdC5yYW5nZSA9IG1pc3NwZWxsZWRSYW5nZTsKLSAgICAgICAgcmVzdWx0cy5hcHBl
bmQoV1RGTW92ZShyZXN1bHQpKTsKLQotICAgICAgICBvZmZzZXRTb0ZhciA9IG1pc3NwZWxsZWRS
YW5nZS5sb2NhdGlvbiArIG1pc3NwZWxsZWRSYW5nZS5sZW5ndGg7Ci0gICAgfSB3aGlsZSAob2Zm
c2V0U29GYXIgPCBbc3RyaW5nVG9DaGVjayBsZW5ndGhdKTsKKworI2lmIEVOQUJMRShNQUNfQ0FU
QUxZU1RfR1JBTU1BUl9DSEVDS0lORykKKyAgICBpZiAoW3RleHRDaGVja2VyIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoY2hlY2tTdHJpbmc6cmFuZ2U6dHlwZXM6bGFuZ3VhZ2VzOm9wdGlv
bnM6KV0pIHsKKyAgICAgICAgTlNUZXh0Q2hlY2tpbmdUeXBlcyB0eXBlcyA9IDA7CisgICAgICAg
IGlmIChjaGVja2luZ1R5cGVzLmNvbnRhaW5zKFRleHRDaGVja2luZ1R5cGU6OlNwZWxsaW5nKSkK
KyAgICAgICAgICAgIHR5cGVzIHw9IE5TVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nOworICAgICAg
ICBpZiAoY2hlY2tpbmdUeXBlcy5jb250YWlucyhUZXh0Q2hlY2tpbmdUeXBlOjpHcmFtbWFyKSkK
KyAgICAgICAgICAgIHR5cGVzIHw9IE5TVGV4dENoZWNraW5nVHlwZUdyYW1tYXI7CisgICAgICAg
IE5TRGljdGlvbmFyeSAqb3B0aW9ucyA9IEB7CisgICAgICAgICAgICBAIkluc2VydGlvblBvaW50
IiA6IEAoaW5zZXJ0aW9uUG9pbnQpCisgICAgICAgIH07CisgICAgICAgIE5TQXJyYXkgKmluY29t
aW5nUmVzdWx0cyA9IFt0ZXh0Q2hlY2tlciBjaGVja1N0cmluZzpzdHJpbmdUb0NoZWNrLmdldCgp
IHJhbmdlOnJhbmdlIHR5cGVzOnR5cGVzIGxhbmd1YWdlczprZXlib2FyZExhbmd1YWdlcyBvcHRp
b25zOm9wdGlvbnNdOworICAgICAgICBmb3IgKE5TVGV4dENoZWNraW5nUmVzdWx0ICppbmNvbWlu
Z1Jlc3VsdCBpbiBpbmNvbWluZ1Jlc3VsdHMpIHsKKyAgICAgICAgICAgIE5TVGV4dENoZWNraW5n
VHlwZSByZXN1bHRUeXBlID0gW2luY29taW5nUmVzdWx0IHJlc3VsdFR5cGVdOworICAgICAgICAg
ICAgQVNTRVJUKGluY29taW5nUmVzdWx0LnJhbmdlLmxvY2F0aW9uICE9IE5TTm90Rm91bmQpOwor
ICAgICAgICAgICAgQVNTRVJUKGluY29taW5nUmVzdWx0LnJhbmdlLmxlbmd0aCA+IDApOworICAg
ICAgICAgICAgYXV0byByZXN1bHRSYW5nZSA9IGluY29taW5nUmVzdWx0LnJhbmdlOworICAgICAg
ICAgICAgaWYgKHJlc3VsdFR5cGUgPT0gTlNUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgJiYgY2hl
Y2tpbmdUeXBlcy5jb250YWlucyhUZXh0Q2hlY2tpbmdUeXBlOjpTcGVsbGluZykpIHsKKyAgICAg
ICAgICAgICAgICBUZXh0Q2hlY2tpbmdSZXN1bHQgcmVzdWx0OworICAgICAgICAgICAgICAgIHJl
c3VsdC50eXBlID0gVGV4dENoZWNraW5nVHlwZTo6U3BlbGxpbmc7CisgICAgICAgICAgICAgICAg
cmVzdWx0LnJhbmdlID0gcmVzdWx0UmFuZ2U7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBl
bmQocmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0VHlwZSA9PSBOU1RleHRD
aGVja2luZ1R5cGVHcmFtbWFyICYmIGNoZWNraW5nVHlwZXMuY29udGFpbnMoVGV4dENoZWNraW5n
VHlwZTo6R3JhbW1hcikpIHsKKyAgICAgICAgICAgICAgICBUZXh0Q2hlY2tpbmdSZXN1bHQgcmVz
dWx0OworICAgICAgICAgICAgICAgIE5TQXJyYXkgKmRldGFpbHMgPSBbaW5jb21pbmdSZXN1bHQg
Z3JhbW1hckRldGFpbHNdOworICAgICAgICAgICAgICAgIHJlc3VsdC50eXBlID0gVGV4dENoZWNr
aW5nVHlwZTo6R3JhbW1hcjsKKyAgICAgICAgICAgICAgICByZXN1bHQucmFuZ2UgPSByZXN1bHRS
YW5nZTsKKyAgICAgICAgICAgICAgICBmb3IgKE5TRGljdGlvbmFyeSAqaW5jb21pbmdEZXRhaWwg
aW4gZGV0YWlscykgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoaW5jb21pbmdEZXRhaWwp
OworICAgICAgICAgICAgICAgICAgICBHcmFtbWFyRGV0YWlsIGRldGFpbDsKKyAgICAgICAgICAg
ICAgICAgICAgTlNWYWx1ZSAqZGV0YWlsUmFuZ2VBc05TVmFsdWUgPSBbaW5jb21pbmdEZXRhaWwg
b2JqZWN0Rm9yS2V5OkAiTlNHcmFtbWFyUmFuZ2UiXTsKKyAgICAgICAgICAgICAgICAgICAgQVNT
RVJUKGRldGFpbFJhbmdlQXNOU1ZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgTlNSYW5nZSBk
ZXRhaWxOU1JhbmdlID0gW2RldGFpbFJhbmdlQXNOU1ZhbHVlIHJhbmdlVmFsdWVdOworICAgICAg
ICAgICAgICAgICAgICBBU1NFUlQoZGV0YWlsTlNSYW5nZS5sb2NhdGlvbiAhPSBOU05vdEZvdW5k
KTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGRldGFpbE5TUmFuZ2UubGVuZ3RoID4gMCk7
CisgICAgICAgICAgICAgICAgICAgIGRldGFpbC5yYW5nZSA9IGRldGFpbE5TUmFuZ2U7CisgICAg
ICAgICAgICAgICAgICAgIGRldGFpbC51c2VyRGVzY3JpcHRpb24gPSBbaW5jb21pbmdEZXRhaWwg
b2JqZWN0Rm9yS2V5OkAiTlNHcmFtbWFyVXNlckRlc2NyaXB0aW9uIl07CisgICAgICAgICAgICAg
ICAgICAgIE5TQXJyYXkgKmd1ZXNzZXMgPSBbaW5jb21pbmdEZXRhaWwgb2JqZWN0Rm9yS2V5OkAi
TlNHcmFtbWFyQ29ycmVjdGlvbnMiXTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChOU1N0cmlu
ZyAqZ3Vlc3MgaW4gZ3Vlc3NlcykKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbC5ndWVz
c2VzLmFwcGVuZChTdHJpbmcoZ3Vlc3MpKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmRl
dGFpbHMuYXBwZW5kKGRldGFpbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IHJlc3VsdHMuYXBwZW5kKHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
IGVsc2UKKyNlbmRpZgorICAgIHsKKyAgICAgICAgTlNVSW50ZWdlciBvZmZzZXRTb0ZhciA9IDA7
CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIGF1dG8gbWlzc3BlbGxlZFJhbmdlID0gW3RleHRD
aGVja2VyIHJhbmdlT2ZNaXNzcGVsbGVkV29yZEluU3RyaW5nOnN0cmluZ1RvQ2hlY2suZ2V0KCkg
cmFuZ2U6cmFuZ2Ugc3RhcnRpbmdBdDpvZmZzZXRTb0ZhciB3cmFwOk5PIGxhbmd1YWdlczprZXli
b2FyZExhbmd1YWdlc107CisgICAgICAgICAgICBpZiAobWlzc3BlbGxlZFJhbmdlLmxvY2F0aW9u
ID09IE5TTm90Rm91bmQpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIFRl
eHRDaGVja2luZ1Jlc3VsdCByZXN1bHQ7CisgICAgICAgICAgICByZXN1bHQudHlwZSA9IFRleHRD
aGVja2luZ1R5cGU6OlNwZWxsaW5nOworICAgICAgICAgICAgcmVzdWx0LnJhbmdlID0gbWlzc3Bl
bGxlZFJhbmdlOworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoV1RGTW92ZShyZXN1bHQpKTsK
KworICAgICAgICAgICAgb2Zmc2V0U29GYXIgPSBtaXNzcGVsbGVkUmFuZ2UubG9jYXRpb24gKyBt
aXNzcGVsbGVkUmFuZ2UubGVuZ3RoOworICAgICAgICB9IHdoaWxlIChvZmZzZXRTb0ZhciA8IFtz
dHJpbmdUb0NoZWNrIGxlbmd0aF0pOworICAgIH0KICAgICByZXR1cm4gcmVzdWx0czsKIH0KIAo=
</data>
<flag name="commit-queue"
          id="478420"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451632</attachid>
            <date>2022-02-10 19:26:28 -0800</date>
            <delta_ts>2022-02-11 14:31:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236479-20220210192627.patch</filename>
            <type>text/plain</type>
            <size>11905</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGRhZmZiMDI2NTBkOTA1
YTRjMGFjMzRmZmI5YmZiZTk0MjEyY2FlMC4uODdiNzQ3YWRlM2E4YTVkNGFlZmJkOWU5NDliYjlh
OWNlZDRkYzYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAyLTEwICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIGdy
YW1tYXIgY2hlY2tpbmcgb24gTWFjIENhdGFseXN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NDc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvV29yZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW06Cisg
ICAgICAgIChXZWJDb3JlOjpncmFtbWFyQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6Y29sb3JG
b3JNYXJrZXJMaW5lU3R5bGUpOgorCiAyMDIyLTAyLTEwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBEbyBub3QgZXhwb3NlIGluIFdlYklETCB0aGUgcGFydHMg
b2YgdGhlIHBlcm1pc3Npb24gQVBJIHRoYXQgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDAwYjBjMjMzMmNkMGZkYWI2ODBkNzAyY2MyNDZiYzRkYTRjMDE3ZGIuLjZkY2EzYTk2OTYy
OWQwYTJmMWZmMDgxODg1NDAxODBmZjVkOGE3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjItMDItMTAgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBFbmFibGUgZ3JhbW1hciBjaGVja2luZyBvbiBNYWMgQ2F0YWx5c3QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY0NzkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL3NwaS9p
b3MvVUlLaXRTUEkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1RleHRDaGVja2VySU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjptdXRhYmxlU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpUZXh0
Q2hlY2tlcjo6c2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OlRl
eHRDaGVja2VyOjpjaGVja1RleHRPZlBhcmFncmFwaCk6CisKIDIwMjItMDItMTAgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0g
UmVmYWN0b3IgdGhlIFhER0RCdXNQcm94eSBsYXVuY2hlciB0byBzaW1wbGlmeSBpdCBhbmQgZml4
IHNvbWUgaXNzdWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggYjNlNDViMjAwMDg2
MGUyYjAyZmZjMWYyMWI1NjUwYjhmZDk2ZjE3My4uYTkzZDFmY2ZjZjVlYzJmZTM2MzRiYmFlYWVm
NzdkZTcxODViMjQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjUyMiw3ICsy
NTIyLDIzIEBAIHZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1dvcmQo
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiB3b3JkU3RhcnQsCiAKICAgICBhdXRvIGFkamFjZW50V29y
ZHMgPSBWaXNpYmxlU2VsZWN0aW9uKHN0YXJ0T2ZXb3JkKHdvcmRTdGFydCwgTGVmdFdvcmRJZk9u
Qm91bmRhcnkpLCBlbmRPZldvcmQod29yZFN0YXJ0LCBSaWdodFdvcmRJZk9uQm91bmRhcnkpKTsK
ICAgICBhdXRvIGFkamFjZW50V29yZFJhbmdlID0gYWRqYWNlbnRXb3Jkcy50b05vcm1hbGl6ZWRS
YW5nZSgpOwotICAgIG1hcmtBbGxNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFySW5SYW5nZXModGV4
dENoZWNraW5nT3B0aW9ucywgYWRqYWNlbnRXb3JkUmFuZ2UsIGFkamFjZW50V29yZFJhbmdlLCBh
ZGphY2VudFdvcmRSYW5nZSk7CisKKyNpZiBFTkFCTEUoTUFDX0NBVEFMWVNUX0dSQU1NQVJfQ0hF
Q0tJTkcpCisgICAgaWYgKGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCgpKSB7CisgICAgICAgIHRl
eHRDaGVja2luZ09wdGlvbnMuYWRkKFRleHRDaGVja2luZ1R5cGU6OkdyYW1tYXIpOworICAgICAg
ICBhdXRvIHNlbnRlbmNlU3RhcnQgPSBzdGFydE9mU2VudGVuY2Uod29yZFN0YXJ0KTsKKyAgICAg
ICAgYXV0byBzZW50ZW5jZUVuZCA9IGVuZE9mU2VudGVuY2Uod29yZFN0YXJ0KTsKKyAgICAgICAg
VmlzaWJsZVNlbGVjdGlvbiBmdWxsU2VudGVuY2Uoc2VudGVuY2VTdGFydCwgc2VudGVuY2VFbmQp
OworICAgICAgICBhdXRvIGZ1bGxTZW50ZW5jZVJhbmdlID0gZnVsbFNlbnRlbmNlLnRvTm9ybWFs
aXplZFJhbmdlKCk7CisgICAgICAgIGlmICghZnVsbFNlbnRlbmNlUmFuZ2UpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgbWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJh
bmdlcyh0ZXh0Q2hlY2tpbmdPcHRpb25zLCBhZGphY2VudFdvcmRSYW5nZSwgYWRqYWNlbnRXb3Jk
UmFuZ2UsIGZ1bGxTZW50ZW5jZVJhbmdlKTsKKyAgICB9IGVsc2UKKyNlbmRpZgorICAgIHsKKyAg
ICAgICAgbWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyh0ZXh0Q2hlY2tp
bmdPcHRpb25zLCBhZGphY2VudFdvcmRSYW5nZSwgYWRqYWNlbnRXb3JkUmFuZ2UsIGFkamFjZW50
V29yZFJhbmdlKTsKKyAgICB9CiAjZWxzZQogI2lmICFVU0UoQVVUT01BVElDX1RFWFRfUkVQTEFD
RU1FTlQpCiAgICAgVU5VU0VEX1BBUkFNKGRvUmVwbGFjZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRl
eHRDb2NvYS5tbQppbmRleCBhNTgwNDRmMjAzZmVlODJhYTVhZjJmZTVhM2RmMjljMzQ1YmNlYjc4
Li5lMDE5ODc5YTY1ZDkwNTM2Y2I3YjFmMjc1MzgxMGVlNTY0NGFhNTRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRDb2NvYS5tbQpAQCAtNjAsNiArNjAsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Ly8gTlNDb2xvciwgTlNCZXppZXJQYXRoLCBhbmQgTlNHcmFwaGljc0NvbnRleHQgY2FsbHMgZG8g
bm90IHJhaXNlIGV4Y2VwdGlvbnMKIC8vIHNvIHdlIGRvbid0IGJsb2NrIGV4Y2VwdGlvbnMuCiAK
KyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9H
cmFwaGljc0NvbnRleHRDb2NvYS5tbT4KKyNlbHNlCisKK3N0YXRpYyBSZXRhaW5QdHI8Q0dDb2xv
clJlZj4gZ3JhbW1hckNvbG9yKGJvb2wgdXNlRGFya01vZGUpCit7CisgICAgcmV0dXJuIGNhY2hl
ZENHQ29sb3IodXNlRGFya01vZGUgPyBTUkdCQTx1aW50OF90PiB7IDUwLCAyMTUsIDc1LCAyMTcg
fSA6IFNSR0JBPHVpbnQ4X3Q+IHsgMjUsIDE3NSwgNTAsIDE5MSB9KTsKK30KKyNlbmRpZgorCiBz
dGF0aWMgYm9vbCBkcmF3Rm9jdXNSaW5nQXRUaW1lKENHQ29udGV4dFJlZiBjb250ZXh0LCBOU1Rp
bWVJbnRlcnZhbCB0aW1lT2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCiB7CiAjaWYgVVNFKEFQ
UEtJVCkKQEAgLTE3MCw5ICsxODAsOCBAQCBzdGF0aWMgUmV0YWluUHRyPENHQ29sb3JSZWY+IGNv
bG9yRm9yTWFya2VyTGluZVN0eWxlKERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpNbwogICAgIGNh
c2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6Ok1vZGU6OlRleHRDaGVja2luZ0RpY3RhdGlvblBo
cmFzZVdpdGhBbHRlcm5hdGl2ZXM6CiAgICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6
TW9kZTo6QXV0b2NvcnJlY3Rpb25SZXBsYWNlbWVudDoKICAgICAgICAgcmV0dXJuIGNhY2hlZENH
Q29sb3IodXNlRGFya01vZGUgPyBTUkdCQTx1aW50OF90PiB7IDQwLCAxNDUsIDI1NSwgMjE3IH0g
OiBTUkdCQTx1aW50OF90PiB7IDAsIDEyMiwgMjU1LCAxOTEgfSk7Ci0gICAgLy8gR3JlZW4KICAg
ICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpNb2RlOjpHcmFtbWFyOgotICAgICAgICBy
ZXR1cm4gY2FjaGVkQ0dDb2xvcih1c2VEYXJrTW9kZSA/IFNSR0JBPHVpbnQ4X3Q+IHsgNTAsIDIx
NSwgNzUsIDIxNyB9IDogU1JHQkE8dWludDhfdD4geyAyNSwgMTc1LCA1MCwgMTkxIH0pOworICAg
ICAgICByZXR1cm4gZ3JhbW1hckNvbG9yKHVzZURhcmtNb2RlKTsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggODUyMmQ5Y2FmNzYxZmVi
NTQwM2VhNDRjZWM3ODIyOWJiOTljMGJlNi4uNTM0ZmI0YTUxZTE4ZTk4YTk4ZmY1ZmIxMGYyMmVj
MzVhMTQ3ZGM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJ
S2l0U1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgK
QEAgLTE0OTYsNiArMTQ5NiwxMyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1VJQ29u
dGV4dE1lbnVMYXlvdXQpIHsKIEBlbmQKICNlbmRpZgogCisjaWYgRU5BQkxFKE1BQ19DQVRBTFlT
VF9HUkFNTUFSX0NIRUNLSU5HKQorQGludGVyZmFjZSBVSVRleHRDaGVja2VyICgpCisrIChCT09M
KWdyYW1tYXJDaGVja2luZ0VuYWJsZWQ7CistIChOU0FycmF5PE5TVGV4dENoZWNraW5nUmVzdWx0
ICo+ICopY2hlY2tTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nVG9DaGVjayByYW5nZTooTlNSYW5n
ZSlyYW5nZSB0eXBlczooTlNUZXh0Q2hlY2tpbmdUeXBlcyljaGVja2luZ1R5cGVzIGxhbmd1YWdl
czooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxhbmd1YWdlc0FycmF5IG9wdGlvbnM6KE5TRGljdGlv
bmFyeTxOU1N0cmluZyAqLCBpZD4gKilvcHRpb25zOworQGVuZAorI2VuZGlmCisKIEBwcm90b2Nv
bCBVSVRleHRJbnB1dEludGVybmFsIDxVSVRleHRJbnB1dFByaXZhdGU+CiBAb3B0aW9uYWwKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0dSZWN0IF9zZWxlY3Rpb25DbGlwUmVjdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9UZXh0Q2hlY2tlcklPUy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9UZXh0Q2hlY2tlcklPUy5tbQppbmRleCA3
YWZhNmEzMTk3OWFlYjUxNzU3YWNkNmExMTY0NDcyMTllOGMwZWRkLi4zNmMxZGVhZThiOTE4ZDcw
OTMxOTBkMTI0NTllMTE3OTAyZWJhYjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvVGV4dENoZWNrZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1RleHRDaGVja2VySU9TLm1tCkBAIC00NCw3ICs0NCwxMSBAQCBzdGF0aWMgVGV4dENoZWNr
ZXJTdGF0ZSYgbXV0YWJsZVN0YXRlKCkKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgc3RhdGUg
PSBbXSB7CiAgICAgICAgIFRleHRDaGVja2VyU3RhdGUgaW5pdGlhbFN0YXRlOwogICAgICAgICBp
bml0aWFsU3RhdGUuaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQgPSBUZXh0Q2hlY2tl
cjo6aXNDb250aW51b3VzU3BlbGxDaGVja2luZ0FsbG93ZWQoKTsKKyNpZiBFTkFCTEUoTUFDX0NB
VEFMWVNUX0dSQU1NQVJfQ0hFQ0tJTkcpCisgICAgICAgIGluaXRpYWxTdGF0ZS5pc0dyYW1tYXJD
aGVja2luZ0VuYWJsZWQgPSBbVUlUZXh0Q2hlY2tlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKGdyYW1tYXJDaGVja2luZ0VuYWJsZWQpXSAmJiBbVUlUZXh0Q2hlY2tlciBncmFtbWFyQ2hl
Y2tpbmdFbmFibGVkXTsKKyNlbHNlCiAgICAgICAgIGluaXRpYWxTdGF0ZS5pc0dyYW1tYXJDaGVj
a2luZ0VuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgogICAgICAgICByZXR1cm4gaW5pdGlhbFN0YXRl
OwogICAgIH0oKTsKICAgICByZXR1cm4gc3RhdGU7CkBAIC03Myw5ICs3NywxNiBAQCBib29sIFRl
eHRDaGVja2VyOjpzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCBlbmFibGVk
KQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFRleHRDaGVja2VyOjpzZXRHcmFtbWFyQ2hl
Y2tpbmdFbmFibGVkKGJvb2wpCit2b2lkIFRleHRDaGVja2VyOjpzZXRHcmFtbWFyQ2hlY2tpbmdF
bmFibGVkKGJvb2wgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKQogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7CisjaWYgRU5BQkxFKE1BQ19DQVRBTFlTVF9HUkFNTUFSX0NIRUNLSU5HKQorICAgIGlm
IChzdGF0ZSgpLmlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCA9PSBpc0dyYW1tYXJDaGVja2luZ0Vu
YWJsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG11dGFibGVTdGF0ZSgpLmlzR3JhbW1hckNo
ZWNraW5nRW5hYmxlZCA9IGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZDsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCk7CisjZW5kaWYKIH0KIAogdm9pZCBU
ZXh0Q2hlY2tlcjo6c2V0QXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZChib29sKQpA
QCAtMTg5LDcgKzIwMCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8VUlUZXh0Q2hlY2tlcj4gdGV4dENo
ZWNrZXJGb3IoU3BlbGxEb2N1bWVudFRhZyBzcGVsbERvY3VtZW50VGFnCiAgICAgcmV0dXJuIGFk
ZFJlc3VsdC5pdGVyYXRvci0+dmFsdWU7CiB9CiAKLVZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+
IFRleHRDaGVja2VyOjpjaGVja1RleHRPZlBhcmFncmFwaChTcGVsbERvY3VtZW50VGFnIHNwZWxs
RG9jdW1lbnRUYWcsIFN0cmluZ1ZpZXcgdGV4dCwgaW50MzJfdCAvKiBpbnNlcnRpb25Qb2ludCAq
LywgT3B0aW9uU2V0PFRleHRDaGVja2luZ1R5cGU+IGNoZWNraW5nVHlwZXMsIGJvb2wgLyogaW5p
dGlhbENhcGl0YWxpemF0aW9uRW5hYmxlZCAqLykKK1ZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+
IFRleHRDaGVja2VyOjpjaGVja1RleHRPZlBhcmFncmFwaChTcGVsbERvY3VtZW50VGFnIHNwZWxs
RG9jdW1lbnRUYWcsIFN0cmluZ1ZpZXcgdGV4dCwgaW50MzJfdCBpbnNlcnRpb25Qb2ludCwgT3B0
aW9uU2V0PFRleHRDaGVja2luZ1R5cGU+IGNoZWNraW5nVHlwZXMsIGJvb2wgLyogaW5pdGlhbENh
cGl0YWxpemF0aW9uRW5hYmxlZCAqLykKIHsKICAgICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0
PiByZXN1bHRzOwogICAgIGlmICghY2hlY2tpbmdUeXBlcy5jb250YWlucyhUZXh0Q2hlY2tpbmdU
eXBlOjpTcGVsbGluZykpCkBAIC0yMDgsMTkgKzIxOSw2OCBAQCBWZWN0b3I8VGV4dENoZWNraW5n
UmVzdWx0PiBUZXh0Q2hlY2tlcjo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoU3BlbGxEb2N1bWVudFRh
ZyBzcAogCiAgICAgYXV0byBzdHJpbmdUb0NoZWNrID0gdGV4dC5jcmVhdGVOU1N0cmluZ1dpdGhv
dXRDb3B5aW5nKCk7CiAgICAgYXV0byByYW5nZSA9IE5TTWFrZVJhbmdlKDAsIFtzdHJpbmdUb0No
ZWNrIGxlbmd0aF0pOwotICAgIE5TVUludGVnZXIgb2Zmc2V0U29GYXIgPSAwOwotICAgIGRvIHsK
LSAgICAgICAgYXV0byBtaXNzcGVsbGVkUmFuZ2UgPSBbdGV4dENoZWNrZXIgcmFuZ2VPZk1pc3Nw
ZWxsZWRXb3JkSW5TdHJpbmc6c3RyaW5nVG9DaGVjay5nZXQoKSByYW5nZTpyYW5nZSBzdGFydGlu
Z0F0Om9mZnNldFNvRmFyIHdyYXA6Tk8gbGFuZ3VhZ2VzOmtleWJvYXJkTGFuZ3VhZ2VzXTsKLSAg
ICAgICAgaWYgKG1pc3NwZWxsZWRSYW5nZS5sb2NhdGlvbiA9PSBOU05vdEZvdW5kKQotICAgICAg
ICAgICAgYnJlYWs7Ci0KLSAgICAgICAgVGV4dENoZWNraW5nUmVzdWx0IHJlc3VsdDsKLSAgICAg
ICAgcmVzdWx0LnR5cGUgPSBUZXh0Q2hlY2tpbmdUeXBlOjpTcGVsbGluZzsKLSAgICAgICAgcmVz
dWx0LnJhbmdlID0gbWlzc3BlbGxlZFJhbmdlOwotICAgICAgICByZXN1bHRzLmFwcGVuZChXVEZN
b3ZlKHJlc3VsdCkpOwotCi0gICAgICAgIG9mZnNldFNvRmFyID0gbWlzc3BlbGxlZFJhbmdlLmxv
Y2F0aW9uICsgbWlzc3BlbGxlZFJhbmdlLmxlbmd0aDsKLSAgICB9IHdoaWxlIChvZmZzZXRTb0Zh
ciA8IFtzdHJpbmdUb0NoZWNrIGxlbmd0aF0pOworCisjaWYgRU5BQkxFKE1BQ19DQVRBTFlTVF9H
UkFNTUFSX0NIRUNLSU5HKQorICAgIGlmIChbdGV4dENoZWNrZXIgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3RvcihjaGVja1N0cmluZzpyYW5nZTp0eXBlczpsYW5ndWFnZXM6b3B0aW9uczopXSkg
eworICAgICAgICBOU1RleHRDaGVja2luZ1R5cGVzIHR5cGVzID0gMDsKKyAgICAgICAgaWYgKGNo
ZWNraW5nVHlwZXMuY29udGFpbnMoVGV4dENoZWNraW5nVHlwZTo6U3BlbGxpbmcpKQorICAgICAg
ICAgICAgdHlwZXMgfD0gTlNUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmc7CisgICAgICAgIGlmIChj
aGVja2luZ1R5cGVzLmNvbnRhaW5zKFRleHRDaGVja2luZ1R5cGU6OkdyYW1tYXIpKQorICAgICAg
ICAgICAgdHlwZXMgfD0gTlNUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcjsKKyAgICAgICAgTlNEaWN0
aW9uYXJ5ICpvcHRpb25zID0gQHsKKyAgICAgICAgICAgIEAiSW5zZXJ0aW9uUG9pbnQiIDogQChp
bnNlcnRpb25Qb2ludCkKKyAgICAgICAgfTsKKyAgICAgICAgTlNBcnJheSAqaW5jb21pbmdSZXN1
bHRzID0gW3RleHRDaGVja2VyIGNoZWNrU3RyaW5nOnN0cmluZ1RvQ2hlY2suZ2V0KCkgcmFuZ2U6
cmFuZ2UgdHlwZXM6dHlwZXMgbGFuZ3VhZ2VzOmtleWJvYXJkTGFuZ3VhZ2VzIG9wdGlvbnM6b3B0
aW9uc107CisgICAgICAgIGZvciAoTlNUZXh0Q2hlY2tpbmdSZXN1bHQgKmluY29taW5nUmVzdWx0
IGluIGluY29taW5nUmVzdWx0cykgeworICAgICAgICAgICAgTlNUZXh0Q2hlY2tpbmdUeXBlIHJl
c3VsdFR5cGUgPSBbaW5jb21pbmdSZXN1bHQgcmVzdWx0VHlwZV07CisgICAgICAgICAgICBBU1NF
UlQoaW5jb21pbmdSZXN1bHQucmFuZ2UubG9jYXRpb24gIT0gTlNOb3RGb3VuZCk7CisgICAgICAg
ICAgICBBU1NFUlQoaW5jb21pbmdSZXN1bHQucmFuZ2UubGVuZ3RoID4gMCk7CisgICAgICAgICAg
ICBhdXRvIHJlc3VsdFJhbmdlID0gaW5jb21pbmdSZXN1bHQucmFuZ2U7CisgICAgICAgICAgICBp
ZiAocmVzdWx0VHlwZSA9PSBOU1RleHRDaGVja2luZ1R5cGVTcGVsbGluZyAmJiBjaGVja2luZ1R5
cGVzLmNvbnRhaW5zKFRleHRDaGVja2luZ1R5cGU6OlNwZWxsaW5nKSkgeworICAgICAgICAgICAg
ICAgIFRleHRDaGVja2luZ1Jlc3VsdCByZXN1bHQ7CisgICAgICAgICAgICAgICAgcmVzdWx0LnR5
cGUgPSBUZXh0Q2hlY2tpbmdUeXBlOjpTcGVsbGluZzsKKyAgICAgICAgICAgICAgICByZXN1bHQu
cmFuZ2UgPSByZXN1bHRSYW5nZTsKKyAgICAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChyZXN1
bHQpOworICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHRUeXBlID09IE5TVGV4dENoZWNraW5n
VHlwZUdyYW1tYXIgJiYgY2hlY2tpbmdUeXBlcy5jb250YWlucyhUZXh0Q2hlY2tpbmdUeXBlOjpH
cmFtbWFyKSkgeworICAgICAgICAgICAgICAgIFRleHRDaGVja2luZ1Jlc3VsdCByZXN1bHQ7Cisg
ICAgICAgICAgICAgICAgTlNBcnJheSAqZGV0YWlscyA9IFtpbmNvbWluZ1Jlc3VsdCBncmFtbWFy
RGV0YWlsc107CisgICAgICAgICAgICAgICAgcmVzdWx0LnR5cGUgPSBUZXh0Q2hlY2tpbmdUeXBl
OjpHcmFtbWFyOworICAgICAgICAgICAgICAgIHJlc3VsdC5yYW5nZSA9IHJlc3VsdFJhbmdlOwor
ICAgICAgICAgICAgICAgIGZvciAoTlNEaWN0aW9uYXJ5ICppbmNvbWluZ0RldGFpbCBpbiBkZXRh
aWxzKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChpbmNvbWluZ0RldGFpbCk7CisgICAg
ICAgICAgICAgICAgICAgIEdyYW1tYXJEZXRhaWwgZGV0YWlsOworICAgICAgICAgICAgICAgICAg
ICBOU1ZhbHVlICpkZXRhaWxSYW5nZUFzTlNWYWx1ZSA9IFtpbmNvbWluZ0RldGFpbCBvYmplY3RG
b3JLZXk6QCJOU0dyYW1tYXJSYW5nZSJdOworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoZGV0
YWlsUmFuZ2VBc05TVmFsdWUpOworICAgICAgICAgICAgICAgICAgICBOU1JhbmdlIGRldGFpbE5T
UmFuZ2UgPSBbZGV0YWlsUmFuZ2VBc05TVmFsdWUgcmFuZ2VWYWx1ZV07CisgICAgICAgICAgICAg
ICAgICAgIEFTU0VSVChkZXRhaWxOU1JhbmdlLmxvY2F0aW9uICE9IE5TTm90Rm91bmQpOworICAg
ICAgICAgICAgICAgICAgICBBU1NFUlQoZGV0YWlsTlNSYW5nZS5sZW5ndGggPiAwKTsKKyAgICAg
ICAgICAgICAgICAgICAgZGV0YWlsLnJhbmdlID0gZGV0YWlsTlNSYW5nZTsKKyAgICAgICAgICAg
ICAgICAgICAgZGV0YWlsLnVzZXJEZXNjcmlwdGlvbiA9IFtpbmNvbWluZ0RldGFpbCBvYmplY3RG
b3JLZXk6QCJOU0dyYW1tYXJVc2VyRGVzY3JpcHRpb24iXTsKKyAgICAgICAgICAgICAgICAgICAg
TlNBcnJheSAqZ3Vlc3NlcyA9IFtpbmNvbWluZ0RldGFpbCBvYmplY3RGb3JLZXk6QCJOU0dyYW1t
YXJDb3JyZWN0aW9ucyJdOworICAgICAgICAgICAgICAgICAgICBmb3IgKE5TU3RyaW5nICpndWVz
cyBpbiBndWVzc2VzKQorICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsLmd1ZXNzZXMuYXBw
ZW5kKFN0cmluZyhndWVzcykpOworICAgICAgICAgICAgICAgICAgICByZXN1bHQuZGV0YWlscy5h
cHBlbmQoZGV0YWlsKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVzdWx0
cy5hcHBlbmQocmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gZWxzZQor
I2VuZGlmCisgICAgeworICAgICAgICBOU1VJbnRlZ2VyIG9mZnNldFNvRmFyID0gMDsKKyAgICAg
ICAgZG8geworICAgICAgICAgICAgYXV0byBtaXNzcGVsbGVkUmFuZ2UgPSBbdGV4dENoZWNrZXIg
cmFuZ2VPZk1pc3NwZWxsZWRXb3JkSW5TdHJpbmc6c3RyaW5nVG9DaGVjay5nZXQoKSByYW5nZTpy
YW5nZSBzdGFydGluZ0F0Om9mZnNldFNvRmFyIHdyYXA6Tk8gbGFuZ3VhZ2VzOmtleWJvYXJkTGFu
Z3VhZ2VzXTsKKyAgICAgICAgICAgIGlmIChtaXNzcGVsbGVkUmFuZ2UubG9jYXRpb24gPT0gTlNO
b3RGb3VuZCkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgVGV4dENoZWNr
aW5nUmVzdWx0IHJlc3VsdDsKKyAgICAgICAgICAgIHJlc3VsdC50eXBlID0gVGV4dENoZWNraW5n
VHlwZTo6U3BlbGxpbmc7CisgICAgICAgICAgICByZXN1bHQucmFuZ2UgPSBtaXNzcGVsbGVkUmFu
Z2U7CisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChXVEZNb3ZlKHJlc3VsdCkpOworCisgICAg
ICAgICAgICBvZmZzZXRTb0ZhciA9IG1pc3NwZWxsZWRSYW5nZS5sb2NhdGlvbiArIG1pc3NwZWxs
ZWRSYW5nZS5sZW5ndGg7CisgICAgICAgIH0gd2hpbGUgKG9mZnNldFNvRmFyIDwgW3N0cmluZ1Rv
Q2hlY2sgbGVuZ3RoXSk7CisgICAgfQogICAgIHJldHVybiByZXN1bHRzOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451745</attachid>
            <date>2022-02-11 14:31:37 -0800</date>
            <delta_ts>2022-02-11 15:04:36 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236479-20220211143136.patch</filename>
            <type>text/plain</type>
            <size>11979</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGRhZmZiMDI2NTBkOTA1
YTRjMGFjMzRmZmI5YmZiZTk0MjEyY2FlMC4uYmJhZjYzMWJlNGI2YzE1NWExOTM0NGY1M2Y4Yzhl
MTMyZWU1NmU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAyLTEwICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIGdy
YW1tYXIgY2hlY2tpbmcgb24gTWFjIENhdGFseXN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NDc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2
aW4gUm91c3NvLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1dvcmQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dENvY29hLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6Z3JhbW1hckNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbG9yRm9y
TWFya2VyTGluZVN0eWxlKToKKwogMjAyMi0wMi0xMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgRG8gbm90IGV4cG9zZSBpbiBXZWJJREwgdGhlIHBhcnRzIG9m
IHRoZSBwZXJtaXNzaW9uIEFQSSB0aGF0IGFyZSBub3QgeWV0IHN1cHBvcnRlZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCAwMGIwYzIzMzJjZDBmZGFiNjgwZDcwMmNjMjQ2YmM0ZGE0YzAxN2RiLi44Nzk5NmE3NWY0Mjdj
ZTcxZTczNjIzMjQwZTgyNjE2ODQ4ZWFlM2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDIyLTAyLTEwICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAg
ICAgICAgRW5hYmxlIGdyYW1tYXIgY2hlY2tpbmcgb24gTWFjIENhdGFseXN0LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NDc5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgICogUGxhdGZvcm0vc3BpL2lvcy9V
SUtpdFNQSS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvVGV4dENoZWNrZXJJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6Om11dGFibGVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVj
a2VyOjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6VGV4dENo
ZWNrZXI6OmNoZWNrVGV4dE9mUGFyYWdyYXBoKToKKwogMjAyMi0wMi0xMCAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBSZWZh
Y3RvciB0aGUgWERHREJ1c1Byb3h5IGxhdW5jaGVyIHRvIHNpbXBsaWZ5IGl0IGFuZCBmaXggc29t
ZSBpc3N1ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCBiM2U0NWIyMDAwODYwZTJi
MDJmZmMxZjIxYjU2NTBiOGZkOTZmMTczLi5hOTNkMWZjZmNmNWVjMmZlMzYzNGJiYWVhZWY3N2Rl
NzE4NWIyNDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0yNTIyLDcgKzI1MjIs
MjMgQEAgdm9pZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvV29yZChjb25z
dCBWaXNpYmxlUG9zaXRpb24mIHdvcmRTdGFydCwKIAogICAgIGF1dG8gYWRqYWNlbnRXb3JkcyA9
IFZpc2libGVTZWxlY3Rpb24oc3RhcnRPZldvcmQod29yZFN0YXJ0LCBMZWZ0V29yZElmT25Cb3Vu
ZGFyeSksIGVuZE9mV29yZCh3b3JkU3RhcnQsIFJpZ2h0V29yZElmT25Cb3VuZGFyeSkpOwogICAg
IGF1dG8gYWRqYWNlbnRXb3JkUmFuZ2UgPSBhZGphY2VudFdvcmRzLnRvTm9ybWFsaXplZFJhbmdl
KCk7Ci0gICAgbWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyh0ZXh0Q2hl
Y2tpbmdPcHRpb25zLCBhZGphY2VudFdvcmRSYW5nZSwgYWRqYWNlbnRXb3JkUmFuZ2UsIGFkamFj
ZW50V29yZFJhbmdlKTsKKworI2lmIEVOQUJMRShNQUNfQ0FUQUxZU1RfR1JBTU1BUl9DSEVDS0lO
RykKKyAgICBpZiAoaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCkpIHsKKyAgICAgICAgdGV4dENo
ZWNraW5nT3B0aW9ucy5hZGQoVGV4dENoZWNraW5nVHlwZTo6R3JhbW1hcik7CisgICAgICAgIGF1
dG8gc2VudGVuY2VTdGFydCA9IHN0YXJ0T2ZTZW50ZW5jZSh3b3JkU3RhcnQpOworICAgICAgICBh
dXRvIHNlbnRlbmNlRW5kID0gZW5kT2ZTZW50ZW5jZSh3b3JkU3RhcnQpOworICAgICAgICBWaXNp
YmxlU2VsZWN0aW9uIGZ1bGxTZW50ZW5jZShzZW50ZW5jZVN0YXJ0LCBzZW50ZW5jZUVuZCk7Cisg
ICAgICAgIGF1dG8gZnVsbFNlbnRlbmNlUmFuZ2UgPSBmdWxsU2VudGVuY2UudG9Ob3JtYWxpemVk
UmFuZ2UoKTsKKyAgICAgICAgaWYgKCFmdWxsU2VudGVuY2VSYW5nZSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBtYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hckluUmFuZ2Vz
KHRleHRDaGVja2luZ09wdGlvbnMsIGFkamFjZW50V29yZFJhbmdlLCBhZGphY2VudFdvcmRSYW5n
ZSwgZnVsbFNlbnRlbmNlUmFuZ2UpOworICAgIH0gZWxzZQorI2VuZGlmCisgICAgeworICAgICAg
ICBtYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hckluUmFuZ2VzKHRleHRDaGVja2luZ09w
dGlvbnMsIGFkamFjZW50V29yZFJhbmdlLCBhZGphY2VudFdvcmRSYW5nZSwgYWRqYWNlbnRXb3Jk
UmFuZ2UpOworICAgIH0KICNlbHNlCiAjaWYgIVVTRShBVVRPTUFUSUNfVEVYVF9SRVBMQUNFTUVO
VCkKICAgICBVTlVTRURfUEFSQU0oZG9SZXBsYWNlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dENv
Y29hLm1tCmluZGV4IGE1ODA0NGYyMDNmZWU4MmFhNWFmMmZlNWEzZGYyOWMzNDViY2ViNzguLjdj
MjljYmIyNTA1NmQxYzcwZDA0YjdmMmQ5NjQxMWZlYzc4M2UzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dENvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29u
dGV4dENvY29hLm1tCkBAIC02MCw2ICs2MCwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBO
U0NvbG9yLCBOU0JlemllclBhdGgsIGFuZCBOU0dyYXBoaWNzQ29udGV4dCBjYWxscyBkbyBub3Qg
cmFpc2UgZXhjZXB0aW9ucwogLy8gc28gd2UgZG9uJ3QgYmxvY2sgZXhjZXB0aW9ucy4KIAorI2lm
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0dyYXBo
aWNzQ29udGV4dENvY29hLm1tPgorI2Vsc2UKK3N0YXRpYyBSZXRhaW5QdHI8Q0dDb2xvclJlZj4g
Z3JhbW1hckNvbG9yKGJvb2wgdXNlRGFya01vZGUpCit7CisgICAgcmV0dXJuIGNhY2hlZENHQ29s
b3IodXNlRGFya01vZGUgPyBTUkdCQTx1aW50OF90PiB7IDUwLCAyMTUsIDc1LCAyMTcgfSA6IFNS
R0JBPHVpbnQ4X3Q+IHsgMjUsIDE3NSwgNTAsIDE5MSB9KTsKK30KKyNlbmRpZgorCiBzdGF0aWMg
Ym9vbCBkcmF3Rm9jdXNSaW5nQXRUaW1lKENHQ29udGV4dFJlZiBjb250ZXh0LCBOU1RpbWVJbnRl
cnZhbCB0aW1lT2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCiB7CiAjaWYgVVNFKEFQUEtJVCkK
QEAgLTE3MCw5ICsxNzksOCBAQCBzdGF0aWMgUmV0YWluUHRyPENHQ29sb3JSZWY+IGNvbG9yRm9y
TWFya2VyTGluZVN0eWxlKERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpNbwogICAgIGNhc2UgRG9j
dW1lbnRNYXJrZXJMaW5lU3R5bGU6Ok1vZGU6OlRleHRDaGVja2luZ0RpY3RhdGlvblBocmFzZVdp
dGhBbHRlcm5hdGl2ZXM6CiAgICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6TW9kZTo6
QXV0b2NvcnJlY3Rpb25SZXBsYWNlbWVudDoKICAgICAgICAgcmV0dXJuIGNhY2hlZENHQ29sb3Io
dXNlRGFya01vZGUgPyBTUkdCQTx1aW50OF90PiB7IDQwLCAxNDUsIDI1NSwgMjE3IH0gOiBTUkdC
QTx1aW50OF90PiB7IDAsIDEyMiwgMjU1LCAxOTEgfSk7Ci0gICAgLy8gR3JlZW4KICAgICBjYXNl
IERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpNb2RlOjpHcmFtbWFyOgotICAgICAgICByZXR1cm4g
Y2FjaGVkQ0dDb2xvcih1c2VEYXJrTW9kZSA/IFNSR0JBPHVpbnQ4X3Q+IHsgNTAsIDIxNSwgNzUs
IDIxNyB9IDogU1JHQkE8dWludDhfdD4geyAyNSwgMTc1LCA1MCwgMTkxIH0pOworICAgICAgICBy
ZXR1cm4gZ3JhbW1hckNvbG9yKHVzZURhcmtNb2RlKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggODUyMmQ5Y2FmNzYxZmViNTQwM2Vh
NDRjZWM3ODIyOWJiOTljMGJlNi4uNTM0ZmI0YTUxZTE4ZTk4YTk4ZmY1ZmIxMGYyMmVjMzVhMTQ3
ZGM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJ
LmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAgLTE0
OTYsNiArMTQ5NiwxMyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1VJQ29udGV4dE1l
bnVMYXlvdXQpIHsKIEBlbmQKICNlbmRpZgogCisjaWYgRU5BQkxFKE1BQ19DQVRBTFlTVF9HUkFN
TUFSX0NIRUNLSU5HKQorQGludGVyZmFjZSBVSVRleHRDaGVja2VyICgpCisrIChCT09MKWdyYW1t
YXJDaGVja2luZ0VuYWJsZWQ7CistIChOU0FycmF5PE5TVGV4dENoZWNraW5nUmVzdWx0ICo+ICop
Y2hlY2tTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nVG9DaGVjayByYW5nZTooTlNSYW5nZSlyYW5n
ZSB0eXBlczooTlNUZXh0Q2hlY2tpbmdUeXBlcyljaGVja2luZ1R5cGVzIGxhbmd1YWdlczooTlNB
cnJheTxOU1N0cmluZyAqPiAqKWxhbmd1YWdlc0FycmF5IG9wdGlvbnM6KE5TRGljdGlvbmFyeTxO
U1N0cmluZyAqLCBpZD4gKilvcHRpb25zOworQGVuZAorI2VuZGlmCisKIEBwcm90b2NvbCBVSVRl
eHRJbnB1dEludGVybmFsIDxVSVRleHRJbnB1dFByaXZhdGU+CiBAb3B0aW9uYWwKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0dSZWN0IF9zZWxlY3Rpb25DbGlwUmVjdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9UZXh0Q2hlY2tlcklPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9UZXh0Q2hlY2tlcklPUy5tbQppbmRleCA3YWZhNmEz
MTk3OWFlYjUxNzU3YWNkNmExMTY0NDcyMTllOGMwZWRkLi5mYTNiYzUwYjI0ZmFmMmVlNWZlZTc0
NmQyYmVjODA0YWE0YWZiNzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvVGV4dENoZWNrZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Rl
eHRDaGVja2VySU9TLm1tCkBAIC00NCw3ICs0NCwxMSBAQCBzdGF0aWMgVGV4dENoZWNrZXJTdGF0
ZSYgbXV0YWJsZVN0YXRlKCkKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgc3RhdGUgPSBbXSB7
CiAgICAgICAgIFRleHRDaGVja2VyU3RhdGUgaW5pdGlhbFN0YXRlOwogICAgICAgICBpbml0aWFs
U3RhdGUuaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQgPSBUZXh0Q2hlY2tlcjo6aXND
b250aW51b3VzU3BlbGxDaGVja2luZ0FsbG93ZWQoKTsKKyNpZiBFTkFCTEUoTUFDX0NBVEFMWVNU
X0dSQU1NQVJfQ0hFQ0tJTkcpCisgICAgICAgIGluaXRpYWxTdGF0ZS5pc0dyYW1tYXJDaGVja2lu
Z0VuYWJsZWQgPSBbVUlUZXh0Q2hlY2tlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGdy
YW1tYXJDaGVja2luZ0VuYWJsZWQpXSAmJiBbVUlUZXh0Q2hlY2tlciBncmFtbWFyQ2hlY2tpbmdF
bmFibGVkXTsKKyNlbHNlCiAgICAgICAgIGluaXRpYWxTdGF0ZS5pc0dyYW1tYXJDaGVja2luZ0Vu
YWJsZWQgPSBmYWxzZTsKKyNlbmRpZgogICAgICAgICByZXR1cm4gaW5pdGlhbFN0YXRlOwogICAg
IH0oKTsKICAgICByZXR1cm4gc3RhdGU7CkBAIC03Myw5ICs3NywxNiBAQCBib29sIFRleHRDaGVj
a2VyOjpzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIFRleHRDaGVja2VyOjpzZXRHcmFtbWFyQ2hlY2tpbmdF
bmFibGVkKGJvb2wpCit2b2lkIFRleHRDaGVja2VyOjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVk
KGJvb2wgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7
CisjaWYgRU5BQkxFKE1BQ19DQVRBTFlTVF9HUkFNTUFSX0NIRUNLSU5HKQorICAgIGlmIChzdGF0
ZSgpLmlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCA9PSBpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIG11dGFibGVTdGF0ZSgpLmlzR3JhbW1hckNoZWNraW5n
RW5hYmxlZCA9IGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZDsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCk7CisjZW5kaWYKIH0KIAogdm9pZCBUZXh0Q2hl
Y2tlcjo6c2V0QXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZChib29sKQpAQCAtMTg5
LDcgKzIwMCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8VUlUZXh0Q2hlY2tlcj4gdGV4dENoZWNrZXJG
b3IoU3BlbGxEb2N1bWVudFRhZyBzcGVsbERvY3VtZW50VGFnCiAgICAgcmV0dXJuIGFkZFJlc3Vs
dC5pdGVyYXRvci0+dmFsdWU7CiB9CiAKLVZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+IFRleHRD
aGVja2VyOjpjaGVja1RleHRPZlBhcmFncmFwaChTcGVsbERvY3VtZW50VGFnIHNwZWxsRG9jdW1l
bnRUYWcsIFN0cmluZ1ZpZXcgdGV4dCwgaW50MzJfdCAvKiBpbnNlcnRpb25Qb2ludCAqLywgT3B0
aW9uU2V0PFRleHRDaGVja2luZ1R5cGU+IGNoZWNraW5nVHlwZXMsIGJvb2wgLyogaW5pdGlhbENh
cGl0YWxpemF0aW9uRW5hYmxlZCAqLykKK1ZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+IFRleHRD
aGVja2VyOjpjaGVja1RleHRPZlBhcmFncmFwaChTcGVsbERvY3VtZW50VGFnIHNwZWxsRG9jdW1l
bnRUYWcsIFN0cmluZ1ZpZXcgdGV4dCwgaW50MzJfdCBpbnNlcnRpb25Qb2ludCwgT3B0aW9uU2V0
PFRleHRDaGVja2luZ1R5cGU+IGNoZWNraW5nVHlwZXMsIGJvb2wgLyogaW5pdGlhbENhcGl0YWxp
emF0aW9uRW5hYmxlZCAqLykKIHsKICAgICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiByZXN1
bHRzOwogICAgIGlmICghY2hlY2tpbmdUeXBlcy5jb250YWlucyhUZXh0Q2hlY2tpbmdUeXBlOjpT
cGVsbGluZykpCkBAIC0yMDgsMTkgKzIxOSw3MiBAQCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0
PiBUZXh0Q2hlY2tlcjo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoU3BlbGxEb2N1bWVudFRhZyBzcAog
CiAgICAgYXV0byBzdHJpbmdUb0NoZWNrID0gdGV4dC5jcmVhdGVOU1N0cmluZ1dpdGhvdXRDb3B5
aW5nKCk7CiAgICAgYXV0byByYW5nZSA9IE5TTWFrZVJhbmdlKDAsIFtzdHJpbmdUb0NoZWNrIGxl
bmd0aF0pOwotICAgIE5TVUludGVnZXIgb2Zmc2V0U29GYXIgPSAwOwotICAgIGRvIHsKLSAgICAg
ICAgYXV0byBtaXNzcGVsbGVkUmFuZ2UgPSBbdGV4dENoZWNrZXIgcmFuZ2VPZk1pc3NwZWxsZWRX
b3JkSW5TdHJpbmc6c3RyaW5nVG9DaGVjay5nZXQoKSByYW5nZTpyYW5nZSBzdGFydGluZ0F0Om9m
ZnNldFNvRmFyIHdyYXA6Tk8gbGFuZ3VhZ2VzOmtleWJvYXJkTGFuZ3VhZ2VzXTsKLSAgICAgICAg
aWYgKG1pc3NwZWxsZWRSYW5nZS5sb2NhdGlvbiA9PSBOU05vdEZvdW5kKQotICAgICAgICAgICAg
YnJlYWs7Ci0KLSAgICAgICAgVGV4dENoZWNraW5nUmVzdWx0IHJlc3VsdDsKLSAgICAgICAgcmVz
dWx0LnR5cGUgPSBUZXh0Q2hlY2tpbmdUeXBlOjpTcGVsbGluZzsKLSAgICAgICAgcmVzdWx0LnJh
bmdlID0gbWlzc3BlbGxlZFJhbmdlOwotICAgICAgICByZXN1bHRzLmFwcGVuZChXVEZNb3ZlKHJl
c3VsdCkpOwotCi0gICAgICAgIG9mZnNldFNvRmFyID0gbWlzc3BlbGxlZFJhbmdlLmxvY2F0aW9u
ICsgbWlzc3BlbGxlZFJhbmdlLmxlbmd0aDsKLSAgICB9IHdoaWxlIChvZmZzZXRTb0ZhciA8IFtz
dHJpbmdUb0NoZWNrIGxlbmd0aF0pOworCisjaWYgRU5BQkxFKE1BQ19DQVRBTFlTVF9HUkFNTUFS
X0NIRUNLSU5HKQorICAgIGlmIChbdGV4dENoZWNrZXIgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3RvcihjaGVja1N0cmluZzpyYW5nZTp0eXBlczpsYW5ndWFnZXM6b3B0aW9uczopXSkgeworICAg
ICAgICBOU1RleHRDaGVja2luZ1R5cGVzIHR5cGVzID0gMDsKKyAgICAgICAgaWYgKGNoZWNraW5n
VHlwZXMuY29udGFpbnMoVGV4dENoZWNraW5nVHlwZTo6U3BlbGxpbmcpKQorICAgICAgICAgICAg
dHlwZXMgfD0gTlNUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmc7CisgICAgICAgIGlmIChjaGVja2lu
Z1R5cGVzLmNvbnRhaW5zKFRleHRDaGVja2luZ1R5cGU6OkdyYW1tYXIpKQorICAgICAgICAgICAg
dHlwZXMgfD0gTlNUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcjsKKyAgICAgICAgTlNEaWN0aW9uYXJ5
ICpvcHRpb25zID0gQHsKKyAgICAgICAgICAgIEAiSW5zZXJ0aW9uUG9pbnQiIDogQChpbnNlcnRp
b25Qb2ludCkKKyAgICAgICAgfTsKKyAgICAgICAgTlNBcnJheSAqaW5jb21pbmdSZXN1bHRzID0g
W3RleHRDaGVja2VyIGNoZWNrU3RyaW5nOnN0cmluZ1RvQ2hlY2suZ2V0KCkgcmFuZ2U6cmFuZ2Ug
dHlwZXM6dHlwZXMgbGFuZ3VhZ2VzOmtleWJvYXJkTGFuZ3VhZ2VzIG9wdGlvbnM6b3B0aW9uc107
CisgICAgICAgIGZvciAoTlNUZXh0Q2hlY2tpbmdSZXN1bHQgKmluY29taW5nUmVzdWx0IGluIGlu
Y29taW5nUmVzdWx0cykgeworICAgICAgICAgICAgTlNUZXh0Q2hlY2tpbmdUeXBlIHJlc3VsdFR5
cGUgPSBbaW5jb21pbmdSZXN1bHQgcmVzdWx0VHlwZV07CisgICAgICAgICAgICBBU1NFUlQoaW5j
b21pbmdSZXN1bHQucmFuZ2UubG9jYXRpb24gIT0gTlNOb3RGb3VuZCk7CisgICAgICAgICAgICBB
U1NFUlQoaW5jb21pbmdSZXN1bHQucmFuZ2UubGVuZ3RoID4gMCk7CisgICAgICAgICAgICBhdXRv
IHJlc3VsdFJhbmdlID0gaW5jb21pbmdSZXN1bHQucmFuZ2U7CisgICAgICAgICAgICBpZiAocmVz
dWx0VHlwZSA9PSBOU1RleHRDaGVja2luZ1R5cGVTcGVsbGluZyAmJiBjaGVja2luZ1R5cGVzLmNv
bnRhaW5zKFRleHRDaGVja2luZ1R5cGU6OlNwZWxsaW5nKSkgeworICAgICAgICAgICAgICAgIFRl
eHRDaGVja2luZ1Jlc3VsdCByZXN1bHQ7CisgICAgICAgICAgICAgICAgcmVzdWx0LnR5cGUgPSBU
ZXh0Q2hlY2tpbmdUeXBlOjpTcGVsbGluZzsKKyAgICAgICAgICAgICAgICByZXN1bHQucmFuZ2Ug
PSByZXN1bHRSYW5nZTsKKyAgICAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChyZXN1bHQpOwor
ICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHRUeXBlID09IE5TVGV4dENoZWNraW5nVHlwZUdy
YW1tYXIgJiYgY2hlY2tpbmdUeXBlcy5jb250YWlucyhUZXh0Q2hlY2tpbmdUeXBlOjpHcmFtbWFy
KSkgeworICAgICAgICAgICAgICAgIFRleHRDaGVja2luZ1Jlc3VsdCByZXN1bHQ7CisgICAgICAg
ICAgICAgICAgTlNBcnJheSAqZGV0YWlscyA9IFtpbmNvbWluZ1Jlc3VsdCBncmFtbWFyRGV0YWls
c107CisgICAgICAgICAgICAgICAgcmVzdWx0LnR5cGUgPSBUZXh0Q2hlY2tpbmdUeXBlOjpHcmFt
bWFyOworICAgICAgICAgICAgICAgIHJlc3VsdC5yYW5nZSA9IHJlc3VsdFJhbmdlOworICAgICAg
ICAgICAgICAgIGZvciAoTlNEaWN0aW9uYXJ5ICppbmNvbWluZ0RldGFpbCBpbiBkZXRhaWxzKSB7
CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChpbmNvbWluZ0RldGFpbCk7CisgICAgICAgICAg
ICAgICAgICAgIEdyYW1tYXJEZXRhaWwgZGV0YWlsOworICAgICAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICAgICAgTlNWYWx1ZSAqZGV0YWlsUmFuZ2VBc05TVmFsdWUgPSBbaW5jb21p
bmdEZXRhaWwgb2JqZWN0Rm9yS2V5OkAiTlNHcmFtbWFyUmFuZ2UiXTsKKyAgICAgICAgICAgICAg
ICAgICAgQVNTRVJUKGRldGFpbFJhbmdlQXNOU1ZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAgICAgIE5TUmFuZ2UgZGV0YWlsTlNSYW5nZSA9IFtkZXRhaWxSYW5n
ZUFzTlNWYWx1ZSByYW5nZVZhbHVlXTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGRldGFp
bE5TUmFuZ2UubG9jYXRpb24gIT0gTlNOb3RGb3VuZCk7CisgICAgICAgICAgICAgICAgICAgIEFT
U0VSVChkZXRhaWxOU1JhbmdlLmxlbmd0aCA+IDApOworICAgICAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICAgICAgZGV0YWlsLnJhbmdlID0gZGV0YWlsTlNSYW5nZTsKKyAgICAgICAg
ICAgICAgICAgICAgZGV0YWlsLnVzZXJEZXNjcmlwdGlvbiA9IFtpbmNvbWluZ0RldGFpbCBvYmpl
Y3RGb3JLZXk6QCJOU0dyYW1tYXJVc2VyRGVzY3JpcHRpb24iXTsKKyAgICAgICAgICAgICAgICAg
ICAgTlNBcnJheSAqZ3Vlc3NlcyA9IFtpbmNvbWluZ0RldGFpbCBvYmplY3RGb3JLZXk6QCJOU0dy
YW1tYXJDb3JyZWN0aW9ucyJdOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICAgICAgZm9yIChOU1N0cmluZyAqZ3Vlc3MgaW4gZ3Vlc3NlcykKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGRldGFpbC5ndWVzc2VzLmFwcGVuZChndWVzcyk7CisgICAgICAgICAgICAgICAgICAg
IHJlc3VsdC5kZXRhaWxzLmFwcGVuZChkZXRhaWwpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICByZXN1bHRzLmFwcGVuZChyZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgfSBlbHNlCisjZW5kaWYKKyAgICB7CisgICAgICAgIE5TVUludGVnZXIgb2Zmc2V0
U29GYXIgPSAwOworICAgICAgICBkbyB7CisgICAgICAgICAgICBhdXRvIG1pc3NwZWxsZWRSYW5n
ZSA9IFt0ZXh0Q2hlY2tlciByYW5nZU9mTWlzc3BlbGxlZFdvcmRJblN0cmluZzpzdHJpbmdUb0No
ZWNrLmdldCgpIHJhbmdlOnJhbmdlIHN0YXJ0aW5nQXQ6b2Zmc2V0U29GYXIgd3JhcDpOTyBsYW5n
dWFnZXM6a2V5Ym9hcmRMYW5ndWFnZXNdOworICAgICAgICAgICAgaWYgKG1pc3NwZWxsZWRSYW5n
ZS5sb2NhdGlvbiA9PSBOU05vdEZvdW5kKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgICBUZXh0Q2hlY2tpbmdSZXN1bHQgcmVzdWx0OworICAgICAgICAgICAgcmVzdWx0LnR5
cGUgPSBUZXh0Q2hlY2tpbmdUeXBlOjpTcGVsbGluZzsKKyAgICAgICAgICAgIHJlc3VsdC5yYW5n
ZSA9IG1pc3NwZWxsZWRSYW5nZTsKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKFdURk1vdmUo
cmVzdWx0KSk7CisKKyAgICAgICAgICAgIG9mZnNldFNvRmFyID0gbWlzc3BlbGxlZFJhbmdlLmxv
Y2F0aW9uICsgbWlzc3BlbGxlZFJhbmdlLmxlbmd0aDsKKyAgICAgICAgfSB3aGlsZSAob2Zmc2V0
U29GYXIgPCBbc3RyaW5nVG9DaGVjayBsZW5ndGhdKTsKKyAgICB9CiAgICAgcmV0dXJuIHJlc3Vs
dHM7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>