<?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>226754</bug_id>
          
          <creation_ts>2021-06-07 20:14:17 -0700</creation_ts>
          <short_desc>iOS - VoiceOver reads the old heading text when updated with heading.firstChild.data.</short_desc>
          <delta_ts>2021-06-09 17:11:49 -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>Accessibility</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="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1767651</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-06-07 20:14:17 -0700</bug_when>
    <thetext>iOS - VoiceOver reads the old heading text when updated with heading.firstChild.data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767652</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-07 20:14:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/78979269&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767653</commentid>
    <comment_count>2</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-06-07 20:17:57 -0700</bug_when>
    <thetext>rdar://44949563</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767657</commentid>
    <comment_count>3</comment_count>
      <attachid>430804</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-06-07 20:32:55 -0700</bug_when>
    <thetext>Created attachment 430804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767659</commentid>
    <comment_count>4</comment_count>
      <attachid>430804</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-06-07 20:46:17 -0700</bug_when>
    <thetext>Comment on attachment 430804
Patch

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

&gt; Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:689
&gt; +                String headingLabel = parent-&gt;descriptionAttributeValue();

can use auto here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768036</commentid>
    <comment_count>5</comment_count>
      <attachid>430937</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-06-08 20:18:51 -0700</bug_when>
    <thetext>Created attachment 430937
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768037</commentid>
    <comment_count>6</comment_count>
      <attachid>430938</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-06-08 20:25:15 -0700</bug_when>
    <thetext>Created attachment 430938
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768038</commentid>
    <comment_count>7</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-06-08 20:27:58 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #4)
&gt; Comment on attachment 430804 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=430804&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:689
&gt; &gt; +                String headingLabel = parent-&gt;descriptionAttributeValue();
&gt; 
&gt; can use auto here

Done, although not a fan of using auto instead of types like String, unless there is a reason for it, don&apos;t think it gains in readability.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768040</commentid>
    <comment_count>8</comment_count>
      <attachid>430938</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-06-08 20:44:50 -0700</bug_when>
    <thetext>Comment on attachment 430938
Patch

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

&gt; Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:1191
&gt; +    if (backingObject-&gt;roleValue() == AccessibilityRole::StaticText) {

Can we check here if it has the heading trait before looking for the ancestor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768169</commentid>
    <comment_count>9</comment_count>
      <attachid>430964</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-06-09 07:41:51 -0700</bug_when>
    <thetext>Created attachment 430964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768170</commentid>
    <comment_count>10</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-06-09 07:43:21 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #8)
&gt; Comment on attachment 430938 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=430938&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:1191
&gt; &gt; +    if (backingObject-&gt;roleValue() == AccessibilityRole::StaticText) {
&gt; 
&gt; Can we check here if it has the heading trait before looking for the
&gt; ancestor?

Yes, done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768398</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-09 17:11:48 -0700</bug_when>
    <thetext>Committed r278683 (238660@main): &lt;https://commits.webkit.org/238660@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430964.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430804</attachid>
            <date>2021-06-07 20:32:55 -0700</date>
            <delta_ts>2021-06-08 20:18:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226754-20210607233254.patch</filename>
            <type>text/plain</type>
            <size>12495</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODc1ZjQ2ZGQ0MjAxYjA4
MDM0YTEyYWE1ZTU1OTJkOTk5MjRlNDRiOS4uYzRiZGMzZjUxODY4OGUxMmJlYWE0YmQ4ZTQ1MDRh
MjAyMzVjMWJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA2LTA3ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBpT1MgLSBWb2lj
ZU92ZXIgcmVhZHMgdGhlIG9sZCBoZWFkaW5nIHRleHQgd2hlbiB1cGRhdGVkIHdpdGggaGVhZGlu
Zy5maXJzdENoaWxkLmRhdGEuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjY3NTQKKyAgICAgICAgcmRhcjovLzQ0OTQ5NTYzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGFjY2Vzc2liaWxpdHkv
aW9zLXNpbXVsYXRvci9oZWFkaW5nLXRleHQtdXBkYXRlcy5odG1sCisgICAgICAgICAgICAgICBh
Y2Nlc3NpYmlsaXR5L21hYy9oZWFkaW5nLXRleHQtdXBkYXRlcy5odG1sCisKKyAgICAgICAgT24g
aU9TLCBzdGF0aWMgdGV4dCBiZW5lYXRoIGEgaGVhZGluZyBlbGVtZW50IGlzIGV4cG9zZWQgd2l0
aCB2YWx1ZQorICAgICAgICBlcXVhbHMgdG8gdGhlIGxldmVsIG9mIHRoZSBoZWFkaW5nIGVsZW1l
bnQgYW5kIGFjY2Vzc2liaWxpdHlMYWJlbCBlcXVhbHMKKyAgICAgICAgdG8gdGhlIGFjdHVhbCB0
ZXh0LiBUbyBwZXJmb3JtIHRoaXMgc3dhcCBvZiBwcm9wZXJ0aWVzLCBfYWNjZXNzaWJpbGl0eVRy
YWl0c0Zyb21BbmNlc3RvcnMKKyAgICAgICAgd2FzIGNhbGxpbmcgbXVsdGlwbGUgdGltZXMgc2Vs
Zi5heEJhY2tpbmdPYmplY3QgYW5kIG90aGVyIG1ldGhvZHMgb24gdGhlCisgICAgICAgIHBsYXRm
b3JtIHdyYXBwZXIgdW5uZWNlc3NhcmlseS4gVGhpcyBwYXRjaCByZXdyaXRlcyB0aGlzIG1ldGhv
ZCBpbiBhCisgICAgICAgIG1vcmUgc3RyYWlnaHRmb3J3YXJkIHdheSB0aGF0IGlzIG1vcmUgZWZm
aWNpZW50IGFuZCBzb2x2ZXMgdGhpcyBwcm9ibGVtLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW06CisgICAgICAgICgtW1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIF9hY2Nlc3NpYmlsaXR5VHJhaXRzRnJvbUFuY2Vz
dG9yc10pOgorCiAyMDIxLTA1LTI0ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBXZWJQcm9jZXNzIGNyYXNoZXMgd2hlbiBjZXJ0
YWluIGVsZW1lbnRzIGFyZSBtaXNzaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
SU9TLm1tCmluZGV4IGJkNzFjZjBkMzUzNjQwYjI1ZWM3ZTY3NjNlY2JkNjY4MjVlNTE4MTkuLjQ0
OGQ3YTgxNmY0YTE1NTBlOGIxOWI4MDUxZWY3MjM4MWQ5ODI3OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVySU9TLm1tCkBAIC02NjEsMTUgKzY2MSwxNSBAQCBzdGF0aWMgQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIqIEFjY2Vzc2liaWxpdHlVbmlnbm9yZWRBbmNlc3RvcihB
Y2Nlc3NpYmlsaXR5TwogLSAodWludDY0X3QpX2FjY2Vzc2liaWxpdHlUcmFpdHNGcm9tQW5jZXN0
b3JzCiB7CiAgICAgdWludDY0X3QgdHJhaXRzID0gMDsKLSAgICBBY2Nlc3NpYmlsaXR5Um9sZSBy
b2xlID0gc2VsZi5heEJhY2tpbmdPYmplY3QtPnJvbGVWYWx1ZSgpOwotICAgIAorICAgIGF1dG8q
IGJhY2tpbmdPYmplY3QgPSBzZWxmLmF4QmFja2luZ09iamVjdDsKKwogICAgIC8vIFRyYWl0IGlu
Zm9ybWF0aW9uIGFsc28gbmVlZHMgdG8gYmUgZ2F0aGVyZWQgZnJvbSB0aGUgcGFyZW50cyBhYm92
ZSB0aGUgb2JqZWN0LgotICAgIC8vIFRoZSBwYXJlbnRPYmplY3QgaXMgbmVlZGVkIGluc3RlYWQg
b2YgdGhlIHVuaWdub3JlZFBhcmVudE9iamVjdCwgYmVjYXVzZSBhIHRhYmxlIG1pZ2h0IGJlIGln
bm9yZWQsIGJ1dCBpbmZvcm1hdGlvbiBzdGlsbCBuZWVkcyB0byBiZSBnYXRoZXJlZCBmcm9tIGl0
LiAgICAKLSAgICBmb3IgKGF1dG8qIHBhcmVudCA9IHNlbGYuYXhCYWNraW5nT2JqZWN0LT5wYXJl
bnRPYmplY3QoKTsgcGFyZW50ICE9IG5pbDsgcGFyZW50ID0gcGFyZW50LT5wYXJlbnRPYmplY3Qo
KSkgeworICAgIC8vIFRoZSBwYXJlbnRPYmplY3QgaXMgbmVlZGVkIGluc3RlYWQgb2YgdGhlIHVu
aWdub3JlZFBhcmVudE9iamVjdCwgYmVjYXVzZSBhIHRhYmxlIG1pZ2h0IGJlIGlnbm9yZWQsIGJ1
dCBpbmZvcm1hdGlvbiBzdGlsbCBuZWVkcyB0byBiZSBnYXRoZXJlZCBmcm9tIGl0LgorICAgIGZv
ciAoYXV0byogcGFyZW50ID0gYmFja2luZ09iamVjdC0+cGFyZW50T2JqZWN0KCk7IHBhcmVudDsg
cGFyZW50ID0gcGFyZW50LT5wYXJlbnRPYmplY3QoKSkgewogICAgICAgICBBY2Nlc3NpYmlsaXR5
Um9sZSBwYXJlbnRSb2xlID0gcGFyZW50LT5yb2xlVmFsdWUoKTsKICAgICAgICAgaWYgKHBhcmVu
dFJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OldlYkFyZWEpCiAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgCisKICAgICAgICAgc3dpdGNoIChwYXJlbnRSb2xlKSB7CiAgICAgICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6Okxpbms6CiAgICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OldlYkNvcmVMaW5rOgpAQCAtNjc5LDIwICs2NzksMjEgQEAgc3RhdGljIEFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyKiBBY2Nlc3NpYmlsaXR5VW5pZ25vcmVkQW5jZXN0b3IoQWNjZXNzaWJpbGl0
eU8KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpI
ZWFkaW5nOiB7CiAgICAgICAgICAgICB0cmFpdHMgfD0gW3NlbGYgX2F4SGVhZGVyVHJhaXRdOwor
CiAgICAgICAgICAgICAvLyBJZiB0aGlzIG9iamVjdCBoYXMgdGhlIGhlYWRlciB0cmFpdCwgd2Ug
c2hvdWxkIHNldCB0aGUgdmFsdWUKLSAgICAgICAgICAgIC8vIHRvIHRoZSBoZWFkaW5nIGxldmVs
LiBJZiBpdCB3YXMgYSBzdGF0aWMgdGV4dCBlbGVtZW50LCB3ZSBuZWVkIHRvIHN0b3JlCi0gICAg
ICAgICAgICAvLyB0aGUgdmFsdWUgYXMgdGhlIGxhYmVsLCBiZWNhdXNlIHRoZSBoZWFkaW5nIGxl
dmVsIG5lZWRzIHRvIHRoZSB2YWx1ZS4KLSAgICAgICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyKiB3cmFwcGVyID0gcGFyZW50LT53cmFwcGVyKCk7Ci0gICAgICAgICAgICBpZiAocm9s
ZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3RhdGljVGV4dCkgeworICAgICAgICAgICAgLy8gdG8g
dGhlIGhlYWRpbmcgbGV2ZWwuIElmIGl0IGlzIHN0YXRpYyB0ZXh0LCB3ZSBuZWVkIHRvIHN0b3Jl
CisgICAgICAgICAgICAvLyB0aGUgdmFsdWUgYXMgdGhlIGxhYmVsLCBzaW5jZSB0aGUgaGVhZGlu
ZyBsZXZlbCBpcyB0aGUgdmFsdWUuCisgICAgICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+cm9s
ZVZhbHVlKCkgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlN0YXRpY1RleHQpIHsKICAgICAgICAgICAg
ICAgICAvLyBXZSBzaG91bGQgb25seSBzZXQgdGhlIHRleHQgdmFsdWUgYXMgdGhlIGxhYmVsIHdo
ZW4gdGhlcmUncyBubwogICAgICAgICAgICAgICAgIC8vIGFsdGVybmF0ZSB0ZXh0IG9uIHRoZSBo
ZWFkaW5nIHBhcmVudC4KLSAgICAgICAgICAgICAgICBOU1N0cmluZyAqaGVhZGluZ0xhYmVsID0g
W3dyYXBwZXIgYmFzZUFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbl07Ci0gICAgICAgICAgICAgICAg
aWYgKCFbaGVhZGluZ0xhYmVsIGxlbmd0aF0pCi0gICAgICAgICAgICAgICAgICAgIFtzZWxmIHNl
dEFjY2Vzc2liaWxpdHlMYWJlbDpzZWxmLmF4QmFja2luZ09iamVjdC0+c3RyaW5nVmFsdWUoKV07
CisgICAgICAgICAgICAgICAgU3RyaW5nIGhlYWRpbmdMYWJlbCA9IHBhcmVudC0+ZGVzY3JpcHRp
b25BdHRyaWJ1dGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIGlmIChoZWFkaW5nTGFiZWwuaXNF
bXB0eSgpKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmFjY2Vzc2liaWxpdHlMYWJlbCA9IGJh
Y2tpbmdPYmplY3QtPnN0cmluZ1ZhbHVlKCk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgICAgICBbc2VsZiBzZXRBY2Nlc3NpYmlsaXR5TGFiZWw6aGVhZGluZ0xhYmVsXTsK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5hY2Nlc3NpYmlsaXR5TGFiZWwgPSBoZWFkaW5nTGFi
ZWw7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBbc2VsZiBzZXRBY2Nlc3NpYmlsaXR5VmFs
dWU6W3dyYXBwZXIgYWNjZXNzaWJpbGl0eVZhbHVlXV07CisKKyAgICAgICAgICAgIFtzZWxmIHNl
dEFjY2Vzc2liaWxpdHlWYWx1ZTpbcGFyZW50LT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVZhbHVl
XV07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgpAQCAt
NzAwLDEyICs3MDEsMTIgQEAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyKiBBY2Nl
c3NpYmlsaXR5VW5pZ25vcmVkQW5jZXN0b3IoQWNjZXNzaWJpbGl0eU8KICAgICAgICAgICAgICAg
ICB0cmFpdHMgfD0gW3NlbGYgX2F4Q29udGFpbmVkQnlMYW5kbWFya1RyYWl0XTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIC8vIElmIHRoaXMgb2Jq
ZWN0IGhhcyBmaWVsZHNldCBwYXJlbnQsIHdlIHNob3VsZCBhZGQgY29udGFpbmVkQnlGaWVsZHNl
dFRyYWl0IHRvIGl0LgogICAgICAgICBpZiAocGFyZW50LT5pc0ZpZWxkc2V0KCkpCiAgICAgICAg
ICAgICB0cmFpdHMgfD0gW3NlbGYgX2F4Q29udGFpbmVkQnlGaWVsZHNldFRyYWl0XTsKICAgICB9
Ci0gICAgCisKICAgICByZXR1cm4gdHJhaXRzOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODI5ODllYzA3NjhhOGFl
ZWE1Y2Y3ZDg4ZTIyOWJmMWM2NWRhMTE4ZS4uYmIwZjVmOTIwYzA3ODY0YWZiNzg0YjRkMGNkZjgw
MzVhZTk4YmQyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA2LTA3ICBBbmRyZXMgR29u
emFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBpT1MgLSBWb2ljZU92ZXIg
cmVhZHMgdGhlIG9sZCBoZWFkaW5nIHRleHQgd2hlbiB1cGRhdGVkIHdpdGggaGVhZGluZy5maXJz
dENoaWxkLmRhdGEuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjY3NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9oZWFkaW5nLXRleHQtdXBkYXRlcy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRv
ci9oZWFkaW5nLXRleHQtdXBkYXRlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9oZWFkaW5nLXRleHQtdXBkYXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvbWFjL2hlYWRpbmctdGV4dC11cGRhdGVzLmh0bWw6IEFkZGVkLgor
CiAyMDIxLTA1LTI0ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgog
CiAgICAgICAgIFtXaW5DYWlyb10gVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2hlYWRpbmctdGV4dC11
cGRhdGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNpbXVs
YXRvci9oZWFkaW5nLXRleHQtdXBkYXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJlMTkw
MzFjYTA3YzgyN2FhZTRiZDZkN2QzNjVjYjQ2NTQyZTJmOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9oZWFkaW5nLXRleHQtdXBkYXRl
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NSBAQAorVGhpcyB0ZXN0cyB0aGF0IGNoYW5naW5n
IHRoZSB0ZXh0IGluIGhlYWRpbmdzIGJ5IGZvdXIgZGlmZmVyZW50IERPTSBtZXRob2RzLCByZXN1
bHRzIG9uIHRoZSBjb3JyZXNwb25kaW5nIHRleHQgYmVpbmcgcmV0cmlldmVkIHZpYSB0aGUgYWNj
ZXNzaWJpbGl0eSBwcm9wZXJ0eS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2gx
CitBWExhYmVsOiBvcmlnaW5hbCB0ZXh0CitoMgorQVhMYWJlbDogb3JpZ2luYWwgdGV4dAoraDMK
K0FYTGFiZWw6IG9yaWdpbmFsIHRleHQKK2RpdmhlYWRpbmcKK0FYTGFiZWw6IG9yaWdpbmFsIHRl
eHQKK2gxCitBWExhYmVsOiBpbm5lckhUTUwKK2gyCitBWExhYmVsOiBpbm5lckhUTUwKK2gzCitB
WExhYmVsOiBpbm5lckhUTUwKK2RpdmhlYWRpbmcKK0FYTGFiZWw6IGlubmVySFRNTAoraDEKK0FY
TGFiZWw6IGlubmVyVGV4dAoraDIKK0FYTGFiZWw6IGlubmVyVGV4dAoraDMKK0FYTGFiZWw6IGlu
bmVyVGV4dAorZGl2aGVhZGluZworQVhMYWJlbDogaW5uZXJUZXh0CitoMQorQVhMYWJlbDogdGV4
dENvbnRlbnQKK2gyCitBWExhYmVsOiB0ZXh0Q29udGVudAoraDMKK0FYTGFiZWw6IHRleHRDb250
ZW50CitkaXZoZWFkaW5nCitBWExhYmVsOiB0ZXh0Q29udGVudAoraDEKK0FYTGFiZWw6IGZpcnN0
Q2hpbGQuZGF0YQoraDIKK0FYTGFiZWw6IGZpcnN0Q2hpbGQuZGF0YQoraDMKK0FYTGFiZWw6IGZp
cnN0Q2hpbGQuZGF0YQorZGl2aGVhZGluZworQVhMYWJlbDogZmlyc3RDaGlsZC5kYXRhCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2ZpcnN0Q2hpbGQu
ZGF0YQorCitmaXJzdENoaWxkLmRhdGEKKworZmlyc3RDaGlsZC5kYXRhCisKK2ZpcnN0Q2hpbGQu
ZGF0YQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9y
L2hlYWRpbmctdGV4dC11cGRhdGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lv
cy1zaW11bGF0b3IvaGVhZGluZy10ZXh0LXVwZGF0ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNmY0YWJj
NGNmYTFkMzI0MjkyMjg2NmEyY2M4ZTliNDkxMzkxZjlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2hlYWRpbmctdGV4dC11cGRhdGVz
Lmh0bWwKQEAgLTAsMCArMSw1NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorCis8aDEgY2xhc3M9Im91dHB1dCIgaWQ9ImgxIj5vcmlnaW5hbCB0ZXh0PC9o
MT4KKzxoMiBjbGFzcz0ib3V0cHV0IiBpZD0iaDIiPm9yaWdpbmFsIHRleHQ8L2gyPgorPGgzIGNs
YXNzPSJvdXRwdXQiIGlkPSJoMyI+b3JpZ2luYWwgdGV4dDwvaDM+Cis8ZGl2IHJvbGU9ImhlYWRp
bmciIGNsYXNzPSJvdXRwdXQiIGlkPSJkaXZoZWFkaW5nIj5vcmlnaW5hbCB0ZXh0PC9kaXY+CisK
KzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBjaGFuZ2luZyB0aGUg
dGV4dCBpbiBoZWFkaW5ncyBieSBmb3VyIGRpZmZlcmVudCBET00gbWV0aG9kcywgcmVzdWx0cyBv
biB0aGUgY29ycmVzcG9uZGluZyB0ZXh0IGJlaW5nIHJldHJpZXZlZCB2aWEgdGhlIGFjY2Vzc2li
aWxpdHkgcHJvcGVydHkuIik7CisKKyAgICB2YXIgaWRzID0gWyAiaDEiLCAiaDIiLCAiaDMiLCAi
ZGl2aGVhZGluZyIgXTsKKworICAgIGZ1bmN0aW9uIHNldFZhbHVlKHZhbHVlKSB7CisgICAgICAg
IFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcub3V0cHV0JyldLmZvckVhY2goKG5vZGUp
ID0+IHsKKyAgICAgICAgICAgIG5vZGVbdmFsdWVdID0gYCR7dmFsdWV9YDsKKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0Rmlyc3RDaGlsZERhdGEodmFsdWUpIHsKKyAgICAg
ICAgWy4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5vdXRwdXQnKV0uZm9yRWFjaCgobm9k
ZSkgPT4geworICAgICAgICAgICAgbm9kZS5maXJzdENoaWxkLmRhdGEgPSBgJHt2YWx1ZX1gOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja0FYTGFiZWxzKCkgeworICAg
ICAgICBpZHMuZm9yRWFjaCgoaWQpID0+IHsKKyAgICAgICAgICAgIGRlYnVnKGlkKTsKKyAgICAg
ICAgICAgIGF4RWxlbWVudCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVt
ZW50QnlJZChpZCk7CisgICAgICAgICAgICBkZWJ1ZyhheEVsZW1lbnQuY2hpbGRBdEluZGV4KDAp
LmRlc2NyaXB0aW9uKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICAvLyBMb2cgb3JpZ2luYWwgdGV4dC4KKyAg
ICAgICAgY2hlY2tBWExhYmVscygpOworCisgICAgICAgIHNldFZhbHVlKCJpbm5lckhUTUwiKTsK
KyAgICAgICAgY2hlY2tBWExhYmVscygpOworCisgICAgICAgIHNldFZhbHVlKCJpbm5lclRleHQi
KTsKKyAgICAgICAgY2hlY2tBWExhYmVscygpOworCisgICAgICAgIHNldFZhbHVlKCJ0ZXh0Q29u
dGVudCIpOworICAgICAgICBjaGVja0FYTGFiZWxzKCk7CisKKyAgICAgICAgc2V0Rmlyc3RDaGls
ZERhdGEoImZpcnN0Q2hpbGQuZGF0YSIpOworICAgICAgICBjaGVja0FYTGFiZWxzKCk7CisgICAg
fQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L21hYy9oZWFkaW5nLXRleHQtdXBkYXRlcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9oZWFkaW5nLXRleHQtdXBkYXRlcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGJlM2Q1NDk0MDZkNjBkOTZmZDcxNWM2NGM3ZTQ5NjQzNmNmNzQzYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2hlYWRpbmct
dGV4dC11cGRhdGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU1IEBACitUaGlzIHRlc3RzIHRo
YXQgY2hhbmdpbmcgdGhlIHRleHQgaW4gaGVhZGluZ3MgYnkgZm91ciBkaWZmZXJlbnQgRE9NIG1l
dGhvZHMsIHJlc3VsdHMgb24gdGhlIGNvcnJlc3BvbmRpbmcgdGV4dCBiZWluZyByZXRyaWV2ZWQg
dmlhIHRoZSBhY2Nlc3NpYmlsaXR5IHByb3BlcnR5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworaDEKK0FYVmFsdWU6IG9yaWdpbmFsIHRleHQKK2gyCitBWFZhbHVlOiBvcmlnaW5h
bCB0ZXh0CitoMworQVhWYWx1ZTogb3JpZ2luYWwgdGV4dAorZGl2aGVhZGluZworQVhWYWx1ZTog
b3JpZ2luYWwgdGV4dAoraDEKK0FYVmFsdWU6IGlubmVySFRNTAoraDIKK0FYVmFsdWU6IGlubmVy
SFRNTAoraDMKK0FYVmFsdWU6IGlubmVySFRNTAorZGl2aGVhZGluZworQVhWYWx1ZTogaW5uZXJI
VE1MCitoMQorQVhWYWx1ZTogaW5uZXJUZXh0CitoMgorQVhWYWx1ZTogaW5uZXJUZXh0CitoMwor
QVhWYWx1ZTogaW5uZXJUZXh0CitkaXZoZWFkaW5nCitBWFZhbHVlOiBpbm5lclRleHQKK2gxCitB
WFZhbHVlOiB0ZXh0Q29udGVudAoraDIKK0FYVmFsdWU6IHRleHRDb250ZW50CitoMworQVhWYWx1
ZTogdGV4dENvbnRlbnQKK2RpdmhlYWRpbmcKK0FYVmFsdWU6IHRleHRDb250ZW50CitoMQorQVhW
YWx1ZTogZmlyc3RDaGlsZC5kYXRhCitoMgorQVhWYWx1ZTogZmlyc3RDaGlsZC5kYXRhCitoMwor
QVhWYWx1ZTogZmlyc3RDaGlsZC5kYXRhCitkaXZoZWFkaW5nCitBWFZhbHVlOiBmaXJzdENoaWxk
LmRhdGEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
Zmlyc3RDaGlsZC5kYXRhCisKK2ZpcnN0Q2hpbGQuZGF0YQorCitmaXJzdENoaWxkLmRhdGEKKwor
Zmlyc3RDaGlsZC5kYXRhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21h
Yy9oZWFkaW5nLXRleHQtdXBkYXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
YWMvaGVhZGluZy10ZXh0LXVwZGF0ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZjBlZThmZDhjMGU1MTQ1
NzVjNTBlMTgwZjFjODJlNzMxZDFjMWE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9tYWMvaGVhZGluZy10ZXh0LXVwZGF0ZXMuaHRtbApAQCAtMCwwICsxLDU2
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxoMSBj
bGFzcz0ib3V0cHV0IiBpZD0iaDEiPm9yaWdpbmFsIHRleHQ8L2gxPgorPGgyIGNsYXNzPSJvdXRw
dXQiIGlkPSJoMiI+b3JpZ2luYWwgdGV4dDwvaDI+Cis8aDMgY2xhc3M9Im91dHB1dCIgaWQ9Imgz
Ij5vcmlnaW5hbCB0ZXh0PC9oMz4KKzxkaXYgcm9sZT0iaGVhZGluZyIgY2xhc3M9Im91dHB1dCIg
aWQ9ImRpdmhlYWRpbmciPm9yaWdpbmFsIHRleHQ8L2Rpdj4KKworPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IGNoYW5naW5nIHRoZSB0ZXh0IGluIGhlYWRpbmdzIGJ5
IGZvdXIgZGlmZmVyZW50IERPTSBtZXRob2RzLCByZXN1bHRzIG9uIHRoZSBjb3JyZXNwb25kaW5n
IHRleHQgYmVpbmcgcmV0cmlldmVkIHZpYSB0aGUgYWNjZXNzaWJpbGl0eSBwcm9wZXJ0eS4iKTsK
KworICAgIHZhciBpZHMgPSBbICJoMSIsICJoMiIsICJoMyIsICJkaXZoZWFkaW5nIiBdOworCisg
ICAgZnVuY3Rpb24gc2V0VmFsdWUodmFsdWUpIHsKKyAgICAgICAgWy4uLmRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoJy5vdXRwdXQnKV0uZm9yRWFjaCgobm9kZSkgPT4geworICAgICAgICAgICAg
bm9kZVt2YWx1ZV0gPSBgJHt2YWx1ZX1gOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBzZXRGaXJzdENoaWxkRGF0YSh2YWx1ZSkgeworICAgICAgICBbLi4uZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgnLm91dHB1dCcpXS5mb3JFYWNoKChub2RlKSA9PiB7CisgICAgICAgICAg
ICBub2RlLmZpcnN0Q2hpbGQuZGF0YSA9IGAke3ZhbHVlfWA7CisgICAgICAgIH0pOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGNoZWNrQVhMYWJlbHMoKSB7CisgICAgICAgIGlkcy5mb3JFYWNoKChp
ZCkgPT4geworICAgICAgICAgICAgZGVidWcoaWQpOworICAgICAgICAgICAgYXhFbGVtZW50ID0g
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKGlkKTsKKyAgICAg
ICAgICAgIGRlYnVnKGF4RWxlbWVudC5jaGlsZEF0SW5kZXgoMCkuc3RyaW5nVmFsdWUpOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVy
KSB7CisgICAgICAgIC8vIExvZyBvcmlnaW5hbCB0ZXh0LgorICAgICAgICBjaGVja0FYTGFiZWxz
KCk7CisKKyAgICAgICAgc2V0VmFsdWUoImlubmVySFRNTCIpOworICAgICAgICBjaGVja0FYTGFi
ZWxzKCk7CisKKyAgICAgICAgc2V0VmFsdWUoImlubmVyVGV4dCIpOworICAgICAgICBjaGVja0FY
TGFiZWxzKCk7CisKKyAgICAgICAgc2V0VmFsdWUoInRleHRDb250ZW50Iik7CisgICAgICAgIGNo
ZWNrQVhMYWJlbHMoKTsKKworICAgICAgICBzZXRGaXJzdENoaWxkRGF0YSgiZmlyc3RDaGlsZC5k
YXRhIik7CisgICAgICAgIGNoZWNrQVhMYWJlbHMoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430937</attachid>
            <date>2021-06-08 20:18:51 -0700</date>
            <delta_ts>2021-06-08 20:25:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226754-20210608231850.patch</filename>
            <type>text/plain</type>
            <size>19593</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgxNWY5YTdiMjFhYmE3
NjRhZDExYmIwYjJkODI4NWI3MGViZDViNC4uZDEzNzliZGE2NmExNmRmNTgzMDkyOWIxNjQ4YTcx
ZTZlODUyMmUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA2LTA4ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBpT1MgLSBWb2lj
ZU92ZXIgcmVhZHMgdGhlIG9sZCBoZWFkaW5nIHRleHQgd2hlbiB1cGRhdGVkIHdpdGggaGVhZGlu
Zy5maXJzdENoaWxkLmRhdGEuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjY3NTQKKyAgICAgICAgcmRhcjovLzQ0OTQ5NTYzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGFjY2Vzc2liaWxpdHkv
aW9zLXNpbXVsYXRvci9oZWFkaW5nLXRleHQtdXBkYXRlcy5odG1sCisgICAgICAgICAgICAgICBh
Y2Nlc3NpYmlsaXR5L21hYy9oZWFkaW5nLXRleHQtdXBkYXRlcy5odG1sCisKKyAgICAgICAgVGhl
IHByb2JsZW0gd2FzIGNhdXNlZCBieSBbV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgX2Fj
Y2Vzc2liaWxpdHlUcmFpdHNGcm9tQW5jZXN0b3JzXQorICAgICAgICBzZXR0aW5nIHRoZSB2YWx1
ZSBhbmQgbGFiZWwgb2Ygc3RhdGljIHRleHQgaW5zaWRlIGhlYWRpbmdzLiBzaW5jZSB0aGlzCisg
ICAgICAgIG1ldGhvZCBpcyBjYWxsZWQgb25seSBvbiB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhl
IG9iamVjdCwgdGhlIGxhYmVsIGlzCisgICAgICAgIG5ldmVyIHVwZGF0ZWQgd2hlbiB0aGUgdGV4
dCBjaGFuZ2VzLgorICAgICAgICBUaGUgc29sdXRpb24gaXMgdG8gbW92ZSB0aGUgbG9naWMgdG8g
cmV0dXJuIHRoZSBsYWJlbCBhbmQgdmFsdWUgb2YKKyAgICAgICAgc3RhdGljIHRleHQgaW5zaWRl
IGhlYWRpbmdzIHRvIHRoZSBhY2Nlc3NpYmlsaXR5TGFiZWwgYW5kIGFjY2Vzc2liaWxpdHlWYWx1
ZQorICAgICAgICByZXNwZWN0aXZlbHkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgX2FjY2Vzc2liaWxpdHlUcmFpdHNGcm9tQW5jZXN0b3JzXSk6
CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlM
YWJlbF0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3Np
YmlsaXR5VmFsdWVdKToKKwogMjAyMS0wNi0wNyAgSW1hbm9sIEZlcm5hbmRleiAgPGlmZXJuYW5k
ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBDaGFuZ2UgV2ViWFJTcGFjZTo6ZWZlY3RpdmVPcmln
aW4oKSBtYXRyaXggbXVsdGlwbGljYXRpb24gb3JkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1t
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJJT1MubW0KaW5kZXggYTljYWU2ZDcwMTdkMTQzNTMxYWU3OTZmODNiMzM0N2VmYWNh
NWI5Ny4uYzQxNmUwNjYwMjViNDg2ZDQ1YmU3NzFkMWM2NTgzMmE1NjY0NWI0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0KQEAgLTY2MSwxNSArNjYxLDE1IEBAIHN0
YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciogQWNjZXNzaWJpbGl0eVVuaWdub3JlZEFu
Y2VzdG9yKEFjY2Vzc2liaWxpdHlPCiAtICh1aW50NjRfdClfYWNjZXNzaWJpbGl0eVRyYWl0c0Zy
b21BbmNlc3RvcnMKIHsKICAgICB1aW50NjRfdCB0cmFpdHMgPSAwOwotICAgIEFjY2Vzc2liaWxp
dHlSb2xlIHJvbGUgPSBzZWxmLmF4QmFja2luZ09iamVjdC0+cm9sZVZhbHVlKCk7Ci0gICAgCisg
ICAgYXV0byogYmFja2luZ09iamVjdCA9IHNlbGYuYXhCYWNraW5nT2JqZWN0OworCiAgICAgLy8g
VHJhaXQgaW5mb3JtYXRpb24gYWxzbyBuZWVkcyB0byBiZSBnYXRoZXJlZCBmcm9tIHRoZSBwYXJl
bnRzIGFib3ZlIHRoZSBvYmplY3QuCi0gICAgLy8gVGhlIHBhcmVudE9iamVjdCBpcyBuZWVkZWQg
aW5zdGVhZCBvZiB0aGUgdW5pZ25vcmVkUGFyZW50T2JqZWN0LCBiZWNhdXNlIGEgdGFibGUgbWln
aHQgYmUgaWdub3JlZCwgYnV0IGluZm9ybWF0aW9uIHN0aWxsIG5lZWRzIHRvIGJlIGdhdGhlcmVk
IGZyb20gaXQuICAgIAotICAgIGZvciAoYXV0byogcGFyZW50ID0gc2VsZi5heEJhY2tpbmdPYmpl
Y3QtPnBhcmVudE9iamVjdCgpOyBwYXJlbnQgIT0gbmlsOyBwYXJlbnQgPSBwYXJlbnQtPnBhcmVu
dE9iamVjdCgpKSB7CisgICAgLy8gVGhlIHBhcmVudE9iamVjdCBpcyBuZWVkZWQgaW5zdGVhZCBv
ZiB0aGUgdW5pZ25vcmVkUGFyZW50T2JqZWN0LCBiZWNhdXNlIGEgdGFibGUgbWlnaHQgYmUgaWdu
b3JlZCwgYnV0IGluZm9ybWF0aW9uIHN0aWxsIG5lZWRzIHRvIGJlIGdhdGhlcmVkIGZyb20gaXQu
CisgICAgZm9yIChhdXRvKiBwYXJlbnQgPSBiYWNraW5nT2JqZWN0LT5wYXJlbnRPYmplY3QoKTsg
cGFyZW50OyBwYXJlbnQgPSBwYXJlbnQtPnBhcmVudE9iamVjdCgpKSB7CiAgICAgICAgIEFjY2Vz
c2liaWxpdHlSb2xlIHBhcmVudFJvbGUgPSBwYXJlbnQtPnJvbGVWYWx1ZSgpOwogICAgICAgICBp
ZiAocGFyZW50Um9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXJlYSkKICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAKKwogICAgICAgICBzd2l0Y2ggKHBhcmVudFJvbGUpIHsKICAgICAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGluazoKICAgICAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6V2ViQ29yZUxpbms6CkBAIC02NzcsMzUgKzY3NywyMCBAQCBzdGF0aWMgQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIqIEFjY2Vzc2liaWxpdHlVbmlnbm9yZWRBbmNlc3RvcihBY2Nl
c3NpYmlsaXR5TwogICAgICAgICAgICAgaWYgKHBhcmVudC0+aXNWaXNpdGVkKCkpCiAgICAgICAg
ICAgICAgICAgdHJhaXRzIHw9IFtzZWxmIF9heFZpc2l0ZWRUcmFpdF07CiAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SGVhZGluZzogeworICAgICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpIZWFkaW5nOgogICAgICAgICAgICAgdHJhaXRzIHw9
IFtzZWxmIF9heEhlYWRlclRyYWl0XTsKLSAgICAgICAgICAgIC8vIElmIHRoaXMgb2JqZWN0IGhh
cyB0aGUgaGVhZGVyIHRyYWl0LCB3ZSBzaG91bGQgc2V0IHRoZSB2YWx1ZQotICAgICAgICAgICAg
Ly8gdG8gdGhlIGhlYWRpbmcgbGV2ZWwuIElmIGl0IHdhcyBhIHN0YXRpYyB0ZXh0IGVsZW1lbnQs
IHdlIG5lZWQgdG8gc3RvcmUKLSAgICAgICAgICAgIC8vIHRoZSB2YWx1ZSBhcyB0aGUgbGFiZWws
IGJlY2F1c2UgdGhlIGhlYWRpbmcgbGV2ZWwgbmVlZHMgdG8gdGhlIHZhbHVlLgotICAgICAgICAg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIqIHdyYXBwZXIgPSBwYXJlbnQtPndyYXBwZXIo
KTsKLSAgICAgICAgICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0aWNUZXh0
KSB7Ci0gICAgICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIG9ubHkgc2V0IHRoZSB0ZXh0IHZhbHVl
IGFzIHRoZSBsYWJlbCB3aGVuIHRoZXJlJ3Mgbm8KLSAgICAgICAgICAgICAgICAvLyBhbHRlcm5h
dGUgdGV4dCBvbiB0aGUgaGVhZGluZyBwYXJlbnQuCi0gICAgICAgICAgICAgICAgTlNTdHJpbmcg
KmhlYWRpbmdMYWJlbCA9IFt3cmFwcGVyIGJhc2VBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25dOwot
ICAgICAgICAgICAgICAgIGlmICghW2hlYWRpbmdMYWJlbCBsZW5ndGhdKQotICAgICAgICAgICAg
ICAgICAgICBbc2VsZiBzZXRBY2Nlc3NpYmlsaXR5TGFiZWw6c2VsZi5heEJhY2tpbmdPYmplY3Qt
PnN0cmluZ1ZhbHVlKCldOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAg
ICAgW3NlbGYgc2V0QWNjZXNzaWJpbGl0eUxhYmVsOmhlYWRpbmdMYWJlbF07Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBbc2VsZiBzZXRBY2Nlc3NpYmlsaXR5VmFsdWU6W3dyYXBwZXIgYWNj
ZXNzaWJpbGl0eVZhbHVlXV07CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQogICAgICAg
ICBkZWZhdWx0OgogICAgICAgICAgICAgaWYgKFtzZWxmIF9hY2Nlc3NpYmlsaXR5SXNMYW5kbWFy
a1JvbGU6cGFyZW50Um9sZV0pCiAgICAgICAgICAgICAgICAgdHJhaXRzIHw9IFtzZWxmIF9heENv
bnRhaW5lZEJ5TGFuZG1hcmtUcmFpdF07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQot
ICAgICAgICAKKwogICAgICAgICAvLyBJZiB0aGlzIG9iamVjdCBoYXMgZmllbGRzZXQgcGFyZW50
LCB3ZSBzaG91bGQgYWRkIGNvbnRhaW5lZEJ5RmllbGRzZXRUcmFpdCB0byBpdC4KICAgICAgICAg
aWYgKHBhcmVudC0+aXNGaWVsZHNldCgpKQogICAgICAgICAgICAgdHJhaXRzIHw9IFtzZWxmIF9h
eENvbnRhaW5lZEJ5RmllbGRzZXRUcmFpdF07CiAgICAgfQotICAgIAorCiAgICAgcmV0dXJuIHRy
YWl0czsKIH0KIApAQCAtMTE4OSwzNSArMTE3NCw1NSBAQCBzdGF0aWMgdm9pZCBhcHBlbmRTdHJp
bmdUb1Jlc3VsdChOU011dGFibGVTdHJpbmcgKnJlc3VsdCwgTlNTdHJpbmcgKnN0cmluZykKICAg
ICBpZiAobGFiZWwpCiAgICAgICAgIHJldHVybiBsYWJlbDsKIAorICAgIGF1dG8qIGJhY2tpbmdP
YmplY3QgPSBzZWxmLmF4QmFja2luZ09iamVjdDsKKwogICAgIC8vIGlPUyBkb2Vzbid0IGRpc3Rp
bmd1aXNoIGJldHdlZW4gYSB0aXRsZSBhbmQgZGVzY3JpcHRpb24gZmllbGQsCiAgICAgLy8gc28g
Y29uY2F0ZW50YXRpb24gd2lsbCB5aWVsZCB0aGUgYmVzdCByZXN1bHQuCi0gICAgTlNTdHJpbmcg
KmF4VGl0bGUgPSBzZWxmLmF4QmFja2luZ09iamVjdC0+dGl0bGVBdHRyaWJ1dGVWYWx1ZSgpOwot
ICAgIE5TU3RyaW5nICpheERlc2NyaXB0aW9uID0gW3NlbGYgYmFzZUFjY2Vzc2liaWxpdHlEZXNj
cmlwdGlvbl07CisgICAgTlNTdHJpbmcgKmF4VGl0bGUgPSBiYWNraW5nT2JqZWN0LT50aXRsZUF0
dHJpYnV0ZVZhbHVlKCk7CisgICAgTlNTdHJpbmcgKmF4RGVzY3JpcHRpb24gPSBiYWNraW5nT2Jq
ZWN0LT5kZXNjcmlwdGlvbkF0dHJpYnV0ZVZhbHVlKCk7CiAgICAgTlNTdHJpbmcgKmxhbmRtYXJr
RGVzY3JpcHRpb24gPSBbc2VsZiBhcmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRpb25dOwogICAgIE5T
U3RyaW5nICppbnRlcmFjdGl2ZVZpZGVvRGVzY3JpcHRpb24gPSBbc2VsZiBpbnRlcmFjdGl2ZVZp
ZGVvRGVzY3JpcHRpb25dOwotICAgIAorCisgICAgLy8gSWYgc2VsZiBpcyBzdGF0aWMgdGV4dCBp
bnNpZGUgYSBoZWFkaW5nLCB0aGUgbGFiZWwgc2hvdWxkIGJlIHRoZSBzdHJpbmcKKyAgICAvLyB2
YWx1ZSBvZiB0aGUgc3RhdGljIHRleHQgb2JqZWN0LCBleGNlcHQgd2hlbiB0aGUgaGVhZGluZyBo
YXMgYWx0ZXJuYXRpdmUKKyAgICAvLyB0ZXh0LCBpbiB3aGljaCBjYXNlLCB0aGF0IGFsdGVybmF0
aXZlIHRleHQgaXMgcmV0dXJuZWQgaGVyZS4KKyAgICAvLyBUaGUgcmVhc29uIGlzIHRoYXQgdGhl
IHN0cmluZyB2YWx1ZSBmb3Igc3RhdGljIHRleHQgaW5zaWRlIGEgaGVhZGluZyBpcworICAgIC8v
IHVzZWQgdG8gY29udmV5IHRoZSBoZWFkaW5nIGxldmVsIGluc3RlYWQuCisgICAgaWYgKGJhY2tp
bmdPYmplY3QtPnJvbGVWYWx1ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0aWNUZXh0KSB7
CisgICAgICAgIGF1dG8qIGhlYWRpbmcgPSBBY2Nlc3NpYmlsaXR5OjpmaW5kQW5jZXN0b3IoKmJh
Y2tpbmdPYmplY3QsIGZhbHNlLCBbXSAoY29uc3QgYXV0byYgYW5jZXN0b3IpIHsKKyAgICAgICAg
ICAgIHJldHVybiBhbmNlc3Rvci5yb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SGVh
ZGluZzsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaWYgKGhlYWRpbmcpIHsKKyAgICAgICAgICAg
IFN0cmluZyBoZWFkaW5nTGFiZWwgPSBoZWFkaW5nLT5kZXNjcmlwdGlvbkF0dHJpYnV0ZVZhbHVl
KCk7CisgICAgICAgICAgICBpZiAoIWhlYWRpbmdMYWJlbC5pc0VtcHR5KCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGhlYWRpbmdMYWJlbDsKKyAgICAgICAgICAgIHJldHVybiBiYWNraW5nT2Jq
ZWN0LT5zdHJpbmdWYWx1ZSgpOworICAgICAgICB9CisgICAgfQorCiAgICAgLy8gV2Ugc2hvdWxk
IGV4cG9zZSB0aGUgdmFsdWUgb2YgdGhlIGlucHV0IHR5cGUgZGF0ZSBvciB0aW1lIHRocm91Z2gg
QVhWYWx1ZSBpbnN0ZWFkIG9mIEFYVGl0bGUuCi0gICAgaWYgKHNlbGYuYXhCYWNraW5nT2JqZWN0
LT5pc0lucHV0VHlwZVBvcHVwQnV0dG9uKCkgJiYgW2F4VGl0bGUgaXNFcXVhbFRvU3RyaW5nOltz
ZWxmIGFjY2Vzc2liaWxpdHlWYWx1ZV1dKQorICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc0lucHV0
VHlwZVBvcHVwQnV0dG9uKCkgJiYgW2F4VGl0bGUgaXNFcXVhbFRvU3RyaW5nOltzZWxmIGFjY2Vz
c2liaWxpdHlWYWx1ZV1dKQogICAgICAgICBheFRpdGxlID0gbmlsOwogCiAgICAgLy8gRm9vdGVy
IGlzIG5vdCBjb25zaWRlcmVkIGEgbGFuZG1hcmssIGJ1dCB3ZSB3YW50IHRoZSByb2xlIGRlc2Ny
aXB0aW9uLgotICAgIGlmIChzZWxmLmF4QmFja2luZ09iamVjdC0+cm9sZVZhbHVlKCkgPT0gQWNj
ZXNzaWJpbGl0eVJvbGU6OkZvb3RlcikKKyAgICBpZiAoYmFja2luZ09iamVjdC0+cm9sZVZhbHVl
KCkgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkZvb3RlcikKICAgICAgICAgbGFuZG1hcmtEZXNjcmlw
dGlvbiA9IEFYRm9vdGVyUm9sZURlc2NyaXB0aW9uVGV4dCgpOwogCiAgICAgTlNNdXRhYmxlU3Ry
aW5nICpyZXN1bHQgPSBbTlNNdXRhYmxlU3RyaW5nIHN0cmluZ107Ci0gICAgaWYgKHNlbGYuYXhC
YWNraW5nT2JqZWN0LT5yb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SG9yaXpvbnRh
bFJ1bGUpCisgICAgaWYgKGJhY2tpbmdPYmplY3QtPnJvbGVWYWx1ZSgpID09IEFjY2Vzc2liaWxp
dHlSb2xlOjpIb3Jpem9udGFsUnVsZSkKICAgICAgICAgYXBwZW5kU3RyaW5nVG9SZXN1bHQocmVz
dWx0LCBBWEhvcml6b250YWxSdWxlRGVzY3JpcHRpb25UZXh0KCkpOwogCiAgICAgYXBwZW5kU3Ry
aW5nVG9SZXN1bHQocmVzdWx0LCBheFRpdGxlKTsKICAgICBhcHBlbmRTdHJpbmdUb1Jlc3VsdChy
ZXN1bHQsIGF4RGVzY3JpcHRpb24pOwogICAgIGlmIChbc2VsZiBzdHJpbmdWYWx1ZVNob3VsZEJl
VXNlZEluTGFiZWxdKSB7Ci0gICAgICAgIE5TU3RyaW5nICp2YWx1ZUxhYmVsID0gc2VsZi5heEJh
Y2tpbmdPYmplY3QtPnN0cmluZ1ZhbHVlKCk7CisgICAgICAgIE5TU3RyaW5nICp2YWx1ZUxhYmVs
ID0gYmFja2luZ09iamVjdC0+c3RyaW5nVmFsdWUoKTsKICAgICAgICAgdmFsdWVMYWJlbCA9IFt2
YWx1ZUxhYmVsIHN0cmluZ0J5VHJpbW1pbmdDaGFyYWN0ZXJzSW5TZXQ6W05TQ2hhcmFjdGVyU2V0
IHdoaXRlc3BhY2VDaGFyYWN0ZXJTZXRdXTsKICAgICAgICAgYXBwZW5kU3RyaW5nVG9SZXN1bHQo
cmVzdWx0LCB2YWx1ZUxhYmVsKTsKICAgICB9CiAgICAgYXBwZW5kU3RyaW5nVG9SZXN1bHQocmVz
dWx0LCBsYW5kbWFya0Rlc2NyaXB0aW9uKTsKICAgICBhcHBlbmRTdHJpbmdUb1Jlc3VsdChyZXN1
bHQsIGludGVyYWN0aXZlVmlkZW9EZXNjcmlwdGlvbik7Ci0gICAgCisKICAgICByZXR1cm4gW3Jl
c3VsdCBsZW5ndGhdID8gcmVzdWx0IDogbmlsOwogfQogCkBAIC0xNDY0LDE0ICsxNDY5LDE1IEBA
IHN0YXRpYyB2b2lkIGFwcGVuZFN0cmluZ1RvUmVzdWx0KE5TTXV0YWJsZVN0cmluZyAqcmVzdWx0
LCBOU1N0cmluZyAqc3RyaW5nKQogewogICAgIGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmls
aXR5Q2FsbF0pCiAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgCisKICAgICAvLyBjaGVjayBpZiB0
aGUgdmFsdWUgd2FzIG92ZXJyaWRkZW4KICAgICBOU1N0cmluZyAqdmFsdWUgPSBbc3VwZXIgYWNj
ZXNzaWJpbGl0eVZhbHVlXTsKICAgICBpZiAodmFsdWUpCiAgICAgICAgIHJldHVybiB2YWx1ZTsK
LSAgICAKLSAgICBpZiAoc2VsZi5heEJhY2tpbmdPYmplY3QtPnN1cHBvcnRzQ2hlY2tlZFN0YXRl
KCkpIHsKLSAgICAgICAgc3dpdGNoIChzZWxmLmF4QmFja2luZ09iamVjdC0+Y2hlY2tib3hPclJh
ZGlvVmFsdWUoKSkgeworCisgICAgYXV0byogYmFja2luZ09iamVjdCA9IHNlbGYuYXhCYWNraW5n
T2JqZWN0OworICAgIGlmIChiYWNraW5nT2JqZWN0LT5zdXBwb3J0c0NoZWNrZWRTdGF0ZSgpKSB7
CisgICAgICAgIHN3aXRjaCAoYmFja2luZ09iamVjdC0+Y2hlY2tib3hPclJhZGlvVmFsdWUoKSkg
ewogICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlCdXR0b25TdGF0ZTo6T2ZmOgogICAgICAgICAg
ICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJWQiLCAwXTsKICAgICAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5QnV0dG9uU3RhdGU6Ok9uOgpAQCAtMTQ4MiwzOCArMTQ4OCw0NiBA
QCBzdGF0aWMgdm9pZCBhcHBlbmRTdHJpbmdUb1Jlc3VsdChOU011dGFibGVTdHJpbmcgKnJlc3Vs
dCwgTlNTdHJpbmcgKnN0cmluZykKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVkIiwgMF07CiAgICAgfQot
ICAgIAotICAgIGlmIChzZWxmLmF4QmFja2luZ09iamVjdC0+aXNCdXR0b24oKSAmJiBzZWxmLmF4
QmFja2luZ09iamVjdC0+aXNQcmVzc2VkKCkpCisKKyAgICBpZiAoYmFja2luZ09iamVjdC0+aXNC
dXR0b24oKSAmJiBiYWNraW5nT2JqZWN0LT5pc1ByZXNzZWQoKSkKICAgICAgICAgcmV0dXJuIFtO
U1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJWQiLCAxXTsKIAorICAgIC8vIElmIHNlbGYgaGFz
IHRoZSBoZWFkZXIgdHJhaXQsIHZhbHVlIHNob3VsZCBiZSB0aGUgaGVhZGluZyBsZXZlbC4KKyAg
ICBpZiAoc2VsZi5hY2Nlc3NpYmlsaXR5VHJhaXRzICYgc2VsZi5fYXhIZWFkZXJUcmFpdCkgewor
ICAgICAgICBhdXRvKiBoZWFkaW5nID0gQWNjZXNzaWJpbGl0eTo6ZmluZEFuY2VzdG9yKCpiYWNr
aW5nT2JqZWN0LCB0cnVlLCBbXSAoY29uc3QgYXV0byYgYW5jZXN0b3IpIHsKKyAgICAgICAgICAg
IHJldHVybiBhbmNlc3Rvci5yb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SGVhZGlu
ZzsKKyAgICAgICAgfSk7CisgICAgICAgIEFTU0VSVChoZWFkaW5nKTsKKworICAgICAgICBpZiAo
aGVhZGluZykKKyAgICAgICAgICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpA
IiVkIiwgaGVhZGluZy0+aGVhZGluZ0xldmVsKCldOworICAgIH0KKwogICAgIC8vIHJkYXI6Ly84
MTMxMzg4IFdlYktpdCBzaG91bGQgZXhwb3NlIHRoZSBzYW1lIGluZm8gYXMgVUlLaXQgZm9yIGl0
cyBwYXNzd29yZCBmaWVsZHMuCi0gICAgaWYgKHNlbGYuYXhCYWNraW5nT2JqZWN0LT5pc1Bhc3N3
b3JkRmllbGQoKSAmJiAhW3NlbGYgX2FjY2Vzc2liaWxpdHlJc1N0cm9uZ1Bhc3N3b3JkRmllbGRd
KSB7Ci0gICAgICAgIGludCBwYXNzd29yZExlbmd0aCA9IHNlbGYuYXhCYWNraW5nT2JqZWN0LT5h
Y2Nlc3NpYmlsaXR5UGFzc3dvcmRGaWVsZExlbmd0aCgpOworICAgIGlmIChiYWNraW5nT2JqZWN0
LT5pc1Bhc3N3b3JkRmllbGQoKSAmJiAhW3NlbGYgX2FjY2Vzc2liaWxpdHlJc1N0cm9uZ1Bhc3N3
b3JkRmllbGRdKSB7CisgICAgICAgIGludCBwYXNzd29yZExlbmd0aCA9IGJhY2tpbmdPYmplY3Qt
PmFjY2Vzc2liaWxpdHlQYXNzd29yZEZpZWxkTGVuZ3RoKCk7CiAgICAgICAgIE5TTXV0YWJsZVN0
cmluZyogc3RyaW5nID0gW05TTXV0YWJsZVN0cmluZyBzdHJpbmddOwogICAgICAgICBmb3IgKGlu
dCBrID0gMDsgayA8IHBhc3N3b3JkTGVuZ3RoOyArK2spCiAgICAgICAgICAgICBbc3RyaW5nIGFw
cGVuZFN0cmluZzpAIuKAoiJdOwogICAgICAgICByZXR1cm4gc3RyaW5nOwogICAgIH0KLSAgICAK
KwogICAgIC8vIEEgdGV4dCBjb250cm9sIHNob3VsZCByZXR1cm4gaXRzIHRleHQgZGF0YSBhcyB0
aGUgYXhWYWx1ZSAocGVyIGlQaG9uZSBBWCBBUEkpLgogICAgIGlmICghW3NlbGYgc3RyaW5nVmFs
dWVTaG91bGRCZVVzZWRJbkxhYmVsXSkKLSAgICAgICAgcmV0dXJuIHNlbGYuYXhCYWNraW5nT2Jq
ZWN0LT5zdHJpbmdWYWx1ZSgpOwotICAgIAotICAgIGlmIChzZWxmLmF4QmFja2luZ09iamVjdC0+
aXNSYW5nZUNvbnRyb2woKSkgeworICAgICAgICByZXR1cm4gYmFja2luZ09iamVjdC0+c3RyaW5n
VmFsdWUoKTsKKworICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1JhbmdlQ29udHJvbCgpKSB7CiAg
ICAgICAgIC8vIFByZWZlciBhIHZhbHVlRGVzY3JpcHRpb24gaWYgcHJvdmlkZWQgYnkgdGhlIGF1
dGhvciAodGhyb3VnaCBhcmlhLXZhbHVldGV4dCkuCi0gICAgICAgIFN0cmluZyB2YWx1ZURlc2Ny
aXB0aW9uID0gc2VsZi5heEJhY2tpbmdPYmplY3QtPnZhbHVlRGVzY3JpcHRpb24oKTsKKyAgICAg
ICAgU3RyaW5nIHZhbHVlRGVzY3JpcHRpb24gPSBiYWNraW5nT2JqZWN0LT52YWx1ZURlc2NyaXB0
aW9uKCk7CiAgICAgICAgIGlmICghdmFsdWVEZXNjcmlwdGlvbi5pc0VtcHR5KCkpCiAgICAgICAg
ICAgICByZXR1cm4gdmFsdWVEZXNjcmlwdGlvbjsKIAotICAgICAgICByZXR1cm4gW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCIlLjJmIiwgc2VsZi5heEJhY2tpbmdPYmplY3QtPnZhbHVlRm9y
UmFuZ2UoKV07CisgICAgICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiUu
MmYiLCBiYWNraW5nT2JqZWN0LT52YWx1ZUZvclJhbmdlKCldOwogICAgIH0KIAotICAgIGlmIChp
czxBY2Nlc3NpYmlsaXR5QXR0YWNobWVudD4oc2VsZi5heEJhY2tpbmdPYmplY3QpICYmIGRvd25j
YXN0PEFjY2Vzc2liaWxpdHlBdHRhY2htZW50PihzZWxmLmF4QmFja2luZ09iamVjdCktPmhhc1By
b2dyZXNzKCkpCi0gICAgICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiUu
MmYiLCBzZWxmLmF4QmFja2luZ09iamVjdC0+dmFsdWVGb3JSYW5nZSgpXTsKLSAgICAKLSAgICBp
ZiAoc2VsZi5heEJhY2tpbmdPYmplY3QtPmlzSGVhZGluZygpKQotICAgICAgICByZXR1cm4gW05T
U3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlZCIsIHNlbGYuYXhCYWNraW5nT2JqZWN0LT5oZWFk
aW5nTGV2ZWwoKV07Ci0gICAgCisgICAgaWYgKGlzPEFjY2Vzc2liaWxpdHlBdHRhY2htZW50Pihi
YWNraW5nT2JqZWN0KSAmJiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5QXR0YWNobWVudD4oYmFja2lu
Z09iamVjdCktPmhhc1Byb2dyZXNzKCkpCisgICAgICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpAIiUuMmYiLCBiYWNraW5nT2JqZWN0LT52YWx1ZUZvclJhbmdlKCldOworCiAg
ICAgcmV0dXJuIG5pbDsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJmOGFjYjFlMTYyMjU5ZjdmZmMwYTcwM2FiYmQ0
NmYyNThmYzc4MmEuLmUwZjkxMjg1ZmVlYjAwM2Q5NWUxNDc5Y2M4MGY3MTFiM2RiMWNlOTMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wNi0wOCAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVz
Z18yMkBhcHBsZS5jb20+CisKKyAgICAgICAgaU9TIC0gVm9pY2VPdmVyIHJlYWRzIHRoZSBvbGQg
aGVhZGluZyB0ZXh0IHdoZW4gdXBkYXRlZCB3aXRoIGhlYWRpbmcuZmlyc3RDaGlsZC5kYXRhLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NzU0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L2lvcy1zaW11bGF0b3IvaGVhZGluZy10ZXh0LXVwZGF0ZXMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaGVhZGluZy10ZXh0
LXVwZGF0ZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvaGVhZGlu
Zy10ZXh0LXVwZGF0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9oZWFkaW5nLXRleHQtdXBkYXRlcy5odG1sOiBBZGRlZC4KKwogMjAyMS0wNi0wNyAg
SW1hbm9sIEZlcm5hbmRleiAgPGlmZXJuYW5kZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBVc2Ug
M0QgcG9pbnRzIHRvIG1hcCB0aGUgV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UgYm91bmRzIHRy
YW5zZm9ybQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxh
dG9yL2hlYWRpbmctdGV4dC11cGRhdGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvaW9zLXNpbXVsYXRvci9oZWFkaW5nLXRleHQtdXBkYXRlcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzgxM2ZmYTZjOWFiMjFlMzAxOTg5NmY4YmU5MDFkY2UwMmM3YTMxNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9o
ZWFkaW5nLXRleHQtdXBkYXRlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3NSBAQAorVGhpcyB0
ZXN0cyB0aGF0IGNoYW5naW5nIHRoZSB0ZXh0IGluIGhlYWRpbmdzIGJ5IGZvdXIgZGlmZmVyZW50
IERPTSBtZXRob2RzLCByZXN1bHRzIG9uIHRoZSBjb3JyZXNwb25kaW5nIHRleHQgYmVpbmcgcmV0
cmlldmVkIHZpYSB0aGUgYWNjZXNzaWJpbGl0eSBwcm9wZXJ0eS4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK2gxCitBWFZhbHVlOiAxCitBWExhYmVsOiBvcmlnaW5hbCB0ZXh0Cito
MgorQVhWYWx1ZTogMgorQVhMYWJlbDogb3JpZ2luYWwgdGV4dAoraDMKK0FYVmFsdWU6IDMKK0FY
TGFiZWw6IG9yaWdpbmFsIHRleHQKK2RpdmhlYWRpbmcKK0FYVmFsdWU6IDIKK0FYTGFiZWw6IG9y
aWdpbmFsIHRleHQKK2gxCitBWFZhbHVlOiAxCitBWExhYmVsOiBpbm5lckhUTUwKK2gyCitBWFZh
bHVlOiAyCitBWExhYmVsOiBpbm5lckhUTUwKK2gzCitBWFZhbHVlOiAzCitBWExhYmVsOiBpbm5l
ckhUTUwKK2RpdmhlYWRpbmcKK0FYVmFsdWU6IDIKK0FYTGFiZWw6IGlubmVySFRNTAoraDEKK0FY
VmFsdWU6IDEKK0FYTGFiZWw6IGlubmVyVGV4dAoraDIKK0FYVmFsdWU6IDIKK0FYTGFiZWw6IGlu
bmVyVGV4dAoraDMKK0FYVmFsdWU6IDMKK0FYTGFiZWw6IGlubmVyVGV4dAorZGl2aGVhZGluZwor
QVhWYWx1ZTogMgorQVhMYWJlbDogaW5uZXJUZXh0CitoMQorQVhWYWx1ZTogMQorQVhMYWJlbDog
dGV4dENvbnRlbnQKK2gyCitBWFZhbHVlOiAyCitBWExhYmVsOiB0ZXh0Q29udGVudAoraDMKK0FY
VmFsdWU6IDMKK0FYTGFiZWw6IHRleHRDb250ZW50CitkaXZoZWFkaW5nCitBWFZhbHVlOiAyCitB
WExhYmVsOiB0ZXh0Q29udGVudAoraDEKK0FYVmFsdWU6IDEKK0FYTGFiZWw6IGZpcnN0Q2hpbGQu
ZGF0YQoraDIKK0FYVmFsdWU6IDIKK0FYTGFiZWw6IGZpcnN0Q2hpbGQuZGF0YQoraDMKK0FYVmFs
dWU6IDMKK0FYTGFiZWw6IGZpcnN0Q2hpbGQuZGF0YQorZGl2aGVhZGluZworQVhWYWx1ZTogMgor
QVhMYWJlbDogZmlyc3RDaGlsZC5kYXRhCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKK2ZpcnN0Q2hpbGQuZGF0YQorCitmaXJzdENoaWxkLmRhdGEKKwor
Zmlyc3RDaGlsZC5kYXRhCisKK2ZpcnN0Q2hpbGQuZGF0YQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2hlYWRpbmctdGV4dC11cGRhdGVzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaGVhZGluZy10ZXh0LXVw
ZGF0ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MWU2NTIzNjc0YTZjYjM3NWZkYjc2NTk5YjkwYzNmYjc3
NGQxMDRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mt
c2ltdWxhdG9yL2hlYWRpbmctdGV4dC11cGRhdGVzLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8aDEgY2xhc3M9Im91
dHB1dCIgaWQ9ImgxIj5vcmlnaW5hbCB0ZXh0PC9oMT4KKzxoMiBjbGFzcz0ib3V0cHV0IiBpZD0i
aDIiPm9yaWdpbmFsIHRleHQ8L2gyPgorPGgzIGNsYXNzPSJvdXRwdXQiIGlkPSJoMyI+b3JpZ2lu
YWwgdGV4dDwvaDM+Cis8ZGl2IHJvbGU9ImhlYWRpbmciIGNsYXNzPSJvdXRwdXQiIGlkPSJkaXZo
ZWFkaW5nIj5vcmlnaW5hbCB0ZXh0PC9kaXY+CisKKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IlRoaXMgdGVzdHMgdGhhdCBjaGFuZ2luZyB0aGUgdGV4dCBpbiBoZWFkaW5ncyBieSBmb3VyIGRp
ZmZlcmVudCBET00gbWV0aG9kcywgcmVzdWx0cyBvbiB0aGUgY29ycmVzcG9uZGluZyB0ZXh0IGJl
aW5nIHJldHJpZXZlZCB2aWEgdGhlIGFjY2Vzc2liaWxpdHkgcHJvcGVydHkuIik7CisKKyAgICB2
YXIgaWRzID0gWyAiaDEiLCAiaDIiLCAiaDMiLCAiZGl2aGVhZGluZyIgXTsKKworICAgIGZ1bmN0
aW9uIHNldFZhbHVlKHZhbHVlKSB7CisgICAgICAgIFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCcub3V0cHV0JyldLmZvckVhY2goKG5vZGUpID0+IHsKKyAgICAgICAgICAgIG5vZGVbdmFs
dWVdID0gYCR7dmFsdWV9YDsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0
Rmlyc3RDaGlsZERhdGEodmFsdWUpIHsKKyAgICAgICAgWy4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoJy5vdXRwdXQnKV0uZm9yRWFjaCgobm9kZSkgPT4geworICAgICAgICAgICAgbm9kZS5m
aXJzdENoaWxkLmRhdGEgPSBgJHt2YWx1ZX1gOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBjaGVja0FYTGFiZWxzKCkgeworICAgICAgICBpZHMuZm9yRWFjaCgoaWQpID0+IHsK
KyAgICAgICAgICAgIGRlYnVnKGlkKTsKKyAgICAgICAgICAgIGF4RWxlbWVudCA9IGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZChpZCk7CisgICAgICAgICAgICBk
ZWJ1ZyhheEVsZW1lbnQuY2hpbGRBdEluZGV4KDApLnN0cmluZ1ZhbHVlKTsKKyAgICAgICAgICAg
IGRlYnVnKGF4RWxlbWVudC5jaGlsZEF0SW5kZXgoMCkuZGVzY3JpcHRpb24pOworICAgICAgICB9
KTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Cisg
ICAgICAgIC8vIExvZyBvcmlnaW5hbCB0ZXh0LgorICAgICAgICBjaGVja0FYTGFiZWxzKCk7CisK
KyAgICAgICAgc2V0VmFsdWUoImlubmVySFRNTCIpOworICAgICAgICBjaGVja0FYTGFiZWxzKCk7
CisKKyAgICAgICAgc2V0VmFsdWUoImlubmVyVGV4dCIpOworICAgICAgICBjaGVja0FYTGFiZWxz
KCk7CisKKyAgICAgICAgc2V0VmFsdWUoInRleHRDb250ZW50Iik7CisgICAgICAgIGNoZWNrQVhM
YWJlbHMoKTsKKworICAgICAgICBzZXRGaXJzdENoaWxkRGF0YSgiZmlyc3RDaGlsZC5kYXRhIik7
CisgICAgICAgIGNoZWNrQVhMYWJlbHMoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2hlYWRpbmct
dGV4dC11cGRhdGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L2hlYWRpbmctdGV4dC11cGRhdGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmZjNTY0MDRl
YTlkMThmYjcyNTdiOTQ2OTdlYTlmNTYxODYwNGQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvaGVhZGluZy10ZXh0LXVwZGF0ZXMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNzUgQEAKK1RoaXMgdGVzdHMgdGhhdCBjaGFuZ2luZyB0aGUgdGV4dCBpbiBo
ZWFkaW5ncyBieSBmb3VyIGRpZmZlcmVudCBET00gbWV0aG9kcywgcmVzdWx0cyBvbiB0aGUgY29y
cmVzcG9uZGluZyB0ZXh0IGJlaW5nIHJldHJpZXZlZCB2aWEgdGhlIGFjY2Vzc2liaWxpdHkgcHJv
cGVydHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitoMQorQVhWYWx1ZTogMQor
QVhWYWx1ZTogb3JpZ2luYWwgdGV4dAoraDIKK0FYVmFsdWU6IDIKK0FYVmFsdWU6IG9yaWdpbmFs
IHRleHQKK2gzCitBWFZhbHVlOiAzCitBWFZhbHVlOiBvcmlnaW5hbCB0ZXh0CitkaXZoZWFkaW5n
CitBWFZhbHVlOiAyCitBWFZhbHVlOiBvcmlnaW5hbCB0ZXh0CitoMQorQVhWYWx1ZTogMQorQVhW
YWx1ZTogaW5uZXJIVE1MCitoMgorQVhWYWx1ZTogMgorQVhWYWx1ZTogaW5uZXJIVE1MCitoMwor
QVhWYWx1ZTogMworQVhWYWx1ZTogaW5uZXJIVE1MCitkaXZoZWFkaW5nCitBWFZhbHVlOiAyCitB
WFZhbHVlOiBpbm5lckhUTUwKK2gxCitBWFZhbHVlOiAxCitBWFZhbHVlOiBpbm5lclRleHQKK2gy
CitBWFZhbHVlOiAyCitBWFZhbHVlOiBpbm5lclRleHQKK2gzCitBWFZhbHVlOiAzCitBWFZhbHVl
OiBpbm5lclRleHQKK2RpdmhlYWRpbmcKK0FYVmFsdWU6IDIKK0FYVmFsdWU6IGlubmVyVGV4dAor
aDEKK0FYVmFsdWU6IDEKK0FYVmFsdWU6IHRleHRDb250ZW50CitoMgorQVhWYWx1ZTogMgorQVhW
YWx1ZTogdGV4dENvbnRlbnQKK2gzCitBWFZhbHVlOiAzCitBWFZhbHVlOiB0ZXh0Q29udGVudAor
ZGl2aGVhZGluZworQVhWYWx1ZTogMgorQVhWYWx1ZTogdGV4dENvbnRlbnQKK2gxCitBWFZhbHVl
OiAxCitBWFZhbHVlOiBmaXJzdENoaWxkLmRhdGEKK2gyCitBWFZhbHVlOiAyCitBWFZhbHVlOiBm
aXJzdENoaWxkLmRhdGEKK2gzCitBWFZhbHVlOiAzCitBWFZhbHVlOiBmaXJzdENoaWxkLmRhdGEK
K2RpdmhlYWRpbmcKK0FYVmFsdWU6IDIKK0FYVmFsdWU6IGZpcnN0Q2hpbGQuZGF0YQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitmaXJzdENoaWxkLmRh
dGEKKworZmlyc3RDaGlsZC5kYXRhCisKK2ZpcnN0Q2hpbGQuZGF0YQorCitmaXJzdENoaWxkLmRh
dGEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2hlYWRpbmctdGV4
dC11cGRhdGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9oZWFkaW5nLXRl
eHQtdXBkYXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyYmU0N2JjNjFlYTVkZjg1YWE2NzRhNjUzZjRj
MDhmZWI5MTY5MDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L21hYy9oZWFkaW5nLXRleHQtdXBkYXRlcy5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGgxIGNsYXNzPSJvdXRwdXQi
IGlkPSJoMSI+b3JpZ2luYWwgdGV4dDwvaDE+Cis8aDIgY2xhc3M9Im91dHB1dCIgaWQ9ImgyIj5v
cmlnaW5hbCB0ZXh0PC9oMj4KKzxoMyBjbGFzcz0ib3V0cHV0IiBpZD0iaDMiPm9yaWdpbmFsIHRl
eHQ8L2gzPgorPGRpdiByb2xlPSJoZWFkaW5nIiBjbGFzcz0ib3V0cHV0IiBpZD0iZGl2aGVhZGlu
ZyI+b3JpZ2luYWwgdGV4dDwvZGl2PgorCis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUaGlz
IHRlc3RzIHRoYXQgY2hhbmdpbmcgdGhlIHRleHQgaW4gaGVhZGluZ3MgYnkgZm91ciBkaWZmZXJl
bnQgRE9NIG1ldGhvZHMsIHJlc3VsdHMgb24gdGhlIGNvcnJlc3BvbmRpbmcgdGV4dCBiZWluZyBy
ZXRyaWV2ZWQgdmlhIHRoZSBhY2Nlc3NpYmlsaXR5IHByb3BlcnR5LiIpOworCisgICAgdmFyIGlk
cyA9IFsgImgxIiwgImgyIiwgImgzIiwgImRpdmhlYWRpbmciIF07CisKKyAgICBmdW5jdGlvbiBz
ZXRWYWx1ZSh2YWx1ZSkgeworICAgICAgICBbLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgn
Lm91dHB1dCcpXS5mb3JFYWNoKChub2RlKSA9PiB7CisgICAgICAgICAgICBub2RlW3ZhbHVlXSA9
IGAke3ZhbHVlfWA7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldEZpcnN0
Q2hpbGREYXRhKHZhbHVlKSB7CisgICAgICAgIFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCcub3V0cHV0JyldLmZvckVhY2goKG5vZGUpID0+IHsKKyAgICAgICAgICAgIG5vZGUuZmlyc3RD
aGlsZC5kYXRhID0gYCR7dmFsdWV9YDsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gY2hlY2tBWExhYmVscygpIHsKKyAgICAgICAgaWRzLmZvckVhY2goKGlkKSA9PiB7CisgICAg
ICAgICAgICBkZWJ1ZyhpZCk7CisgICAgICAgICAgICBheEVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoaWQpOworICAgICAgICAgICAgZGVidWco
YXhFbGVtZW50LnN0cmluZ1ZhbHVlKTsKKyAgICAgICAgICAgIGRlYnVnKGF4RWxlbWVudC5jaGls
ZEF0SW5kZXgoMCkuc3RyaW5nVmFsdWUpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAo
d2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIC8vIExvZyBvcmlnaW5h
bCB0ZXh0LgorICAgICAgICBjaGVja0FYTGFiZWxzKCk7CisKKyAgICAgICAgc2V0VmFsdWUoImlu
bmVySFRNTCIpOworICAgICAgICBjaGVja0FYTGFiZWxzKCk7CisKKyAgICAgICAgc2V0VmFsdWUo
ImlubmVyVGV4dCIpOworICAgICAgICBjaGVja0FYTGFiZWxzKCk7CisKKyAgICAgICAgc2V0VmFs
dWUoInRleHRDb250ZW50Iik7CisgICAgICAgIGNoZWNrQVhMYWJlbHMoKTsKKworICAgICAgICBz
ZXRGaXJzdENoaWxkRGF0YSgiZmlyc3RDaGlsZC5kYXRhIik7CisgICAgICAgIGNoZWNrQVhMYWJl
bHMoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430938</attachid>
            <date>2021-06-08 20:25:15 -0700</date>
            <delta_ts>2021-06-09 07:41:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226754-20210608232514.patch</filename>
            <type>text/plain</type>
            <size>19591</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgxNWY5YTdiMjFhYmE3
NjRhZDExYmIwYjJkODI4NWI3MGViZDViNC4uZDEzNzliZGE2NmExNmRmNTgzMDkyOWIxNjQ4YTcx
ZTZlODUyMmUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA2LTA4ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBpT1MgLSBWb2lj
ZU92ZXIgcmVhZHMgdGhlIG9sZCBoZWFkaW5nIHRleHQgd2hlbiB1cGRhdGVkIHdpdGggaGVhZGlu
Zy5maXJzdENoaWxkLmRhdGEuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjY3NTQKKyAgICAgICAgcmRhcjovLzQ0OTQ5NTYzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGFjY2Vzc2liaWxpdHkv
aW9zLXNpbXVsYXRvci9oZWFkaW5nLXRleHQtdXBkYXRlcy5odG1sCisgICAgICAgICAgICAgICBh
Y2Nlc3NpYmlsaXR5L21hYy9oZWFkaW5nLXRleHQtdXBkYXRlcy5odG1sCisKKyAgICAgICAgVGhl
IHByb2JsZW0gd2FzIGNhdXNlZCBieSBbV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgX2Fj
Y2Vzc2liaWxpdHlUcmFpdHNGcm9tQW5jZXN0b3JzXQorICAgICAgICBzZXR0aW5nIHRoZSB2YWx1
ZSBhbmQgbGFiZWwgb2Ygc3RhdGljIHRleHQgaW5zaWRlIGhlYWRpbmdzLiBzaW5jZSB0aGlzCisg
ICAgICAgIG1ldGhvZCBpcyBjYWxsZWQgb25seSBvbiB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhl
IG9iamVjdCwgdGhlIGxhYmVsIGlzCisgICAgICAgIG5ldmVyIHVwZGF0ZWQgd2hlbiB0aGUgdGV4
dCBjaGFuZ2VzLgorICAgICAgICBUaGUgc29sdXRpb24gaXMgdG8gbW92ZSB0aGUgbG9naWMgdG8g
cmV0dXJuIHRoZSBsYWJlbCBhbmQgdmFsdWUgb2YKKyAgICAgICAgc3RhdGljIHRleHQgaW5zaWRl
IGhlYWRpbmdzIHRvIHRoZSBhY2Nlc3NpYmlsaXR5TGFiZWwgYW5kIGFjY2Vzc2liaWxpdHlWYWx1
ZQorICAgICAgICByZXNwZWN0aXZlbHkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgX2FjY2Vzc2liaWxpdHlUcmFpdHNGcm9tQW5jZXN0b3JzXSk6
CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlM
YWJlbF0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3Np
YmlsaXR5VmFsdWVdKToKKwogMjAyMS0wNi0wNyAgSW1hbm9sIEZlcm5hbmRleiAgPGlmZXJuYW5k
ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBDaGFuZ2UgV2ViWFJTcGFjZTo6ZWZlY3RpdmVPcmln
aW4oKSBtYXRyaXggbXVsdGlwbGljYXRpb24gb3JkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1t
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJJT1MubW0KaW5kZXggYTljYWU2ZDcwMTdkMTQzNTMxYWU3OTZmODNiMzM0N2VmYWNh
NWI5Ny4uMmRiYzMxZGE5ODUyNjc5YmRkMTNmZWYyMjA4ZGRlOTgyYzUyZmM5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0KQEAgLTY2MSwxNSArNjYxLDE1IEBAIHN0
YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciogQWNjZXNzaWJpbGl0eVVuaWdub3JlZEFu
Y2VzdG9yKEFjY2Vzc2liaWxpdHlPCiAtICh1aW50NjRfdClfYWNjZXNzaWJpbGl0eVRyYWl0c0Zy
b21BbmNlc3RvcnMKIHsKICAgICB1aW50NjRfdCB0cmFpdHMgPSAwOwotICAgIEFjY2Vzc2liaWxp
dHlSb2xlIHJvbGUgPSBzZWxmLmF4QmFja2luZ09iamVjdC0+cm9sZVZhbHVlKCk7Ci0gICAgCisg
ICAgYXV0byogYmFja2luZ09iamVjdCA9IHNlbGYuYXhCYWNraW5nT2JqZWN0OworCiAgICAgLy8g
VHJhaXQgaW5mb3JtYXRpb24gYWxzbyBuZWVkcyB0byBiZSBnYXRoZXJlZCBmcm9tIHRoZSBwYXJl
bnRzIGFib3ZlIHRoZSBvYmplY3QuCi0gICAgLy8gVGhlIHBhcmVudE9iamVjdCBpcyBuZWVkZWQg
aW5zdGVhZCBvZiB0aGUgdW5pZ25vcmVkUGFyZW50T2JqZWN0LCBiZWNhdXNlIGEgdGFibGUgbWln
aHQgYmUgaWdub3JlZCwgYnV0IGluZm9ybWF0aW9uIHN0aWxsIG5lZWRzIHRvIGJlIGdhdGhlcmVk
IGZyb20gaXQuICAgIAotICAgIGZvciAoYXV0byogcGFyZW50ID0gc2VsZi5heEJhY2tpbmdPYmpl
Y3QtPnBhcmVudE9iamVjdCgpOyBwYXJlbnQgIT0gbmlsOyBwYXJlbnQgPSBwYXJlbnQtPnBhcmVu
dE9iamVjdCgpKSB7CisgICAgLy8gVGhlIHBhcmVudE9iamVjdCBpcyBuZWVkZWQgaW5zdGVhZCBv
ZiB0aGUgdW5pZ25vcmVkUGFyZW50T2JqZWN0LCBiZWNhdXNlIGEgdGFibGUgbWlnaHQgYmUgaWdu
b3JlZCwgYnV0IGluZm9ybWF0aW9uIHN0aWxsIG5lZWRzIHRvIGJlIGdhdGhlcmVkIGZyb20gaXQu
CisgICAgZm9yIChhdXRvKiBwYXJlbnQgPSBiYWNraW5nT2JqZWN0LT5wYXJlbnRPYmplY3QoKTsg
cGFyZW50OyBwYXJlbnQgPSBwYXJlbnQtPnBhcmVudE9iamVjdCgpKSB7CiAgICAgICAgIEFjY2Vz
c2liaWxpdHlSb2xlIHBhcmVudFJvbGUgPSBwYXJlbnQtPnJvbGVWYWx1ZSgpOwogICAgICAgICBp
ZiAocGFyZW50Um9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXJlYSkKICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAKKwogICAgICAgICBzd2l0Y2ggKHBhcmVudFJvbGUpIHsKICAgICAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGluazoKICAgICAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6V2ViQ29yZUxpbms6CkBAIC02NzcsMzUgKzY3NywyMCBAQCBzdGF0aWMgQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIqIEFjY2Vzc2liaWxpdHlVbmlnbm9yZWRBbmNlc3RvcihBY2Nl
c3NpYmlsaXR5TwogICAgICAgICAgICAgaWYgKHBhcmVudC0+aXNWaXNpdGVkKCkpCiAgICAgICAg
ICAgICAgICAgdHJhaXRzIHw9IFtzZWxmIF9heFZpc2l0ZWRUcmFpdF07CiAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SGVhZGluZzogeworICAgICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpIZWFkaW5nOgogICAgICAgICAgICAgdHJhaXRzIHw9
IFtzZWxmIF9heEhlYWRlclRyYWl0XTsKLSAgICAgICAgICAgIC8vIElmIHRoaXMgb2JqZWN0IGhh
cyB0aGUgaGVhZGVyIHRyYWl0LCB3ZSBzaG91bGQgc2V0IHRoZSB2YWx1ZQotICAgICAgICAgICAg
Ly8gdG8gdGhlIGhlYWRpbmcgbGV2ZWwuIElmIGl0IHdhcyBhIHN0YXRpYyB0ZXh0IGVsZW1lbnQs
IHdlIG5lZWQgdG8gc3RvcmUKLSAgICAgICAgICAgIC8vIHRoZSB2YWx1ZSBhcyB0aGUgbGFiZWws
IGJlY2F1c2UgdGhlIGhlYWRpbmcgbGV2ZWwgbmVlZHMgdG8gdGhlIHZhbHVlLgotICAgICAgICAg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIqIHdyYXBwZXIgPSBwYXJlbnQtPndyYXBwZXIo
KTsKLSAgICAgICAgICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0aWNUZXh0
KSB7Ci0gICAgICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIG9ubHkgc2V0IHRoZSB0ZXh0IHZhbHVl
IGFzIHRoZSBsYWJlbCB3aGVuIHRoZXJlJ3Mgbm8KLSAgICAgICAgICAgICAgICAvLyBhbHRlcm5h
dGUgdGV4dCBvbiB0aGUgaGVhZGluZyBwYXJlbnQuCi0gICAgICAgICAgICAgICAgTlNTdHJpbmcg
KmhlYWRpbmdMYWJlbCA9IFt3cmFwcGVyIGJhc2VBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25dOwot
ICAgICAgICAgICAgICAgIGlmICghW2hlYWRpbmdMYWJlbCBsZW5ndGhdKQotICAgICAgICAgICAg
ICAgICAgICBbc2VsZiBzZXRBY2Nlc3NpYmlsaXR5TGFiZWw6c2VsZi5heEJhY2tpbmdPYmplY3Qt
PnN0cmluZ1ZhbHVlKCldOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAg
ICAgW3NlbGYgc2V0QWNjZXNzaWJpbGl0eUxhYmVsOmhlYWRpbmdMYWJlbF07Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBbc2VsZiBzZXRBY2Nlc3NpYmlsaXR5VmFsdWU6W3dyYXBwZXIgYWNj
ZXNzaWJpbGl0eVZhbHVlXV07CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQogICAgICAg
ICBkZWZhdWx0OgogICAgICAgICAgICAgaWYgKFtzZWxmIF9hY2Nlc3NpYmlsaXR5SXNMYW5kbWFy
a1JvbGU6cGFyZW50Um9sZV0pCiAgICAgICAgICAgICAgICAgdHJhaXRzIHw9IFtzZWxmIF9heENv
bnRhaW5lZEJ5TGFuZG1hcmtUcmFpdF07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQot
ICAgICAgICAKKwogICAgICAgICAvLyBJZiB0aGlzIG9iamVjdCBoYXMgZmllbGRzZXQgcGFyZW50
LCB3ZSBzaG91bGQgYWRkIGNvbnRhaW5lZEJ5RmllbGRzZXRUcmFpdCB0byBpdC4KICAgICAgICAg
aWYgKHBhcmVudC0+aXNGaWVsZHNldCgpKQogICAgICAgICAgICAgdHJhaXRzIHw9IFtzZWxmIF9h
eENvbnRhaW5lZEJ5RmllbGRzZXRUcmFpdF07CiAgICAgfQotICAgIAorCiAgICAgcmV0dXJuIHRy
YWl0czsKIH0KIApAQCAtMTE4OSwzNSArMTE3NCw1NSBAQCBzdGF0aWMgdm9pZCBhcHBlbmRTdHJp
bmdUb1Jlc3VsdChOU011dGFibGVTdHJpbmcgKnJlc3VsdCwgTlNTdHJpbmcgKnN0cmluZykKICAg
ICBpZiAobGFiZWwpCiAgICAgICAgIHJldHVybiBsYWJlbDsKIAorICAgIGF1dG8qIGJhY2tpbmdP
YmplY3QgPSBzZWxmLmF4QmFja2luZ09iamVjdDsKKwogICAgIC8vIGlPUyBkb2Vzbid0IGRpc3Rp
bmd1aXNoIGJldHdlZW4gYSB0aXRsZSBhbmQgZGVzY3JpcHRpb24gZmllbGQsCiAgICAgLy8gc28g
Y29uY2F0ZW50YXRpb24gd2lsbCB5aWVsZCB0aGUgYmVzdCByZXN1bHQuCi0gICAgTlNTdHJpbmcg
KmF4VGl0bGUgPSBzZWxmLmF4QmFja2luZ09iamVjdC0+dGl0bGVBdHRyaWJ1dGVWYWx1ZSgpOwot
ICAgIE5TU3RyaW5nICpheERlc2NyaXB0aW9uID0gW3NlbGYgYmFzZUFjY2Vzc2liaWxpdHlEZXNj
cmlwdGlvbl07CisgICAgTlNTdHJpbmcgKmF4VGl0bGUgPSBiYWNraW5nT2JqZWN0LT50aXRsZUF0
dHJpYnV0ZVZhbHVlKCk7CisgICAgTlNTdHJpbmcgKmF4RGVzY3JpcHRpb24gPSBiYWNraW5nT2Jq
ZWN0LT5kZXNjcmlwdGlvbkF0dHJpYnV0ZVZhbHVlKCk7CiAgICAgTlNTdHJpbmcgKmxhbmRtYXJr
RGVzY3JpcHRpb24gPSBbc2VsZiBhcmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRpb25dOwogICAgIE5T
U3RyaW5nICppbnRlcmFjdGl2ZVZpZGVvRGVzY3JpcHRpb24gPSBbc2VsZiBpbnRlcmFjdGl2ZVZp
ZGVvRGVzY3JpcHRpb25dOwotICAgIAorCisgICAgLy8gSWYgc2VsZiBpcyBzdGF0aWMgdGV4dCBp
bnNpZGUgYSBoZWFkaW5nLCB0aGUgbGFiZWwgc2hvdWxkIGJlIHRoZSBzdHJpbmcKKyAgICAvLyB2
YWx1ZSBvZiB0aGUgc3RhdGljIHRleHQgb2JqZWN0LCBleGNlcHQgd2hlbiB0aGUgaGVhZGluZyBo
YXMgYWx0ZXJuYXRpdmUKKyAgICAvLyB0ZXh0LCBpbiB3aGljaCBjYXNlLCB0aGF0IGFsdGVybmF0
aXZlIHRleHQgaXMgcmV0dXJuZWQgaGVyZS4KKyAgICAvLyBUaGUgcmVhc29uIGlzIHRoYXQgdGhl
IHN0cmluZyB2YWx1ZSBmb3Igc3RhdGljIHRleHQgaW5zaWRlIGEgaGVhZGluZyBpcworICAgIC8v
IHVzZWQgdG8gY29udmV5IHRoZSBoZWFkaW5nIGxldmVsIGluc3RlYWQuCisgICAgaWYgKGJhY2tp
bmdPYmplY3QtPnJvbGVWYWx1ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0aWNUZXh0KSB7
CisgICAgICAgIGF1dG8qIGhlYWRpbmcgPSBBY2Nlc3NpYmlsaXR5OjpmaW5kQW5jZXN0b3IoKmJh
Y2tpbmdPYmplY3QsIGZhbHNlLCBbXSAoY29uc3QgYXV0byYgYW5jZXN0b3IpIHsKKyAgICAgICAg
ICAgIHJldHVybiBhbmNlc3Rvci5yb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SGVh
ZGluZzsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaWYgKGhlYWRpbmcpIHsKKyAgICAgICAgICAg
IGF1dG8gaGVhZGluZ0xhYmVsID0gaGVhZGluZy0+ZGVzY3JpcHRpb25BdHRyaWJ1dGVWYWx1ZSgp
OworICAgICAgICAgICAgaWYgKCFoZWFkaW5nTGFiZWwuaXNFbXB0eSgpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBoZWFkaW5nTGFiZWw7CisgICAgICAgICAgICByZXR1cm4gYmFja2luZ09iamVj
dC0+c3RyaW5nVmFsdWUoKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIC8vIFdlIHNob3VsZCBl
eHBvc2UgdGhlIHZhbHVlIG9mIHRoZSBpbnB1dCB0eXBlIGRhdGUgb3IgdGltZSB0aHJvdWdoIEFY
VmFsdWUgaW5zdGVhZCBvZiBBWFRpdGxlLgotICAgIGlmIChzZWxmLmF4QmFja2luZ09iamVjdC0+
aXNJbnB1dFR5cGVQb3B1cEJ1dHRvbigpICYmIFtheFRpdGxlIGlzRXF1YWxUb1N0cmluZzpbc2Vs
ZiBhY2Nlc3NpYmlsaXR5VmFsdWVdXSkKKyAgICBpZiAoYmFja2luZ09iamVjdC0+aXNJbnB1dFR5
cGVQb3B1cEJ1dHRvbigpICYmIFtheFRpdGxlIGlzRXF1YWxUb1N0cmluZzpbc2VsZiBhY2Nlc3Np
YmlsaXR5VmFsdWVdXSkKICAgICAgICAgYXhUaXRsZSA9IG5pbDsKIAogICAgIC8vIEZvb3RlciBp
cyBub3QgY29uc2lkZXJlZCBhIGxhbmRtYXJrLCBidXQgd2Ugd2FudCB0aGUgcm9sZSBkZXNjcmlw
dGlvbi4KLSAgICBpZiAoc2VsZi5heEJhY2tpbmdPYmplY3QtPnJvbGVWYWx1ZSgpID09IEFjY2Vz
c2liaWxpdHlSb2xlOjpGb290ZXIpCisgICAgaWYgKGJhY2tpbmdPYmplY3QtPnJvbGVWYWx1ZSgp
ID09IEFjY2Vzc2liaWxpdHlSb2xlOjpGb290ZXIpCiAgICAgICAgIGxhbmRtYXJrRGVzY3JpcHRp
b24gPSBBWEZvb3RlclJvbGVEZXNjcmlwdGlvblRleHQoKTsKIAogICAgIE5TTXV0YWJsZVN0cmlu
ZyAqcmVzdWx0ID0gW05TTXV0YWJsZVN0cmluZyBzdHJpbmddOwotICAgIGlmIChzZWxmLmF4QmFj
a2luZ09iamVjdC0+cm9sZVZhbHVlKCkgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Okhvcml6b250YWxS
dWxlKQorICAgIGlmIChiYWNraW5nT2JqZWN0LT5yb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5
Um9sZTo6SG9yaXpvbnRhbFJ1bGUpCiAgICAgICAgIGFwcGVuZFN0cmluZ1RvUmVzdWx0KHJlc3Vs
dCwgQVhIb3Jpem9udGFsUnVsZURlc2NyaXB0aW9uVGV4dCgpKTsKIAogICAgIGFwcGVuZFN0cmlu
Z1RvUmVzdWx0KHJlc3VsdCwgYXhUaXRsZSk7CiAgICAgYXBwZW5kU3RyaW5nVG9SZXN1bHQocmVz
dWx0LCBheERlc2NyaXB0aW9uKTsKICAgICBpZiAoW3NlbGYgc3RyaW5nVmFsdWVTaG91bGRCZVVz
ZWRJbkxhYmVsXSkgewotICAgICAgICBOU1N0cmluZyAqdmFsdWVMYWJlbCA9IHNlbGYuYXhCYWNr
aW5nT2JqZWN0LT5zdHJpbmdWYWx1ZSgpOworICAgICAgICBOU1N0cmluZyAqdmFsdWVMYWJlbCA9
IGJhY2tpbmdPYmplY3QtPnN0cmluZ1ZhbHVlKCk7CiAgICAgICAgIHZhbHVlTGFiZWwgPSBbdmFs
dWVMYWJlbCBzdHJpbmdCeVRyaW1taW5nQ2hhcmFjdGVyc0luU2V0OltOU0NoYXJhY3RlclNldCB3
aGl0ZXNwYWNlQ2hhcmFjdGVyU2V0XV07CiAgICAgICAgIGFwcGVuZFN0cmluZ1RvUmVzdWx0KHJl
c3VsdCwgdmFsdWVMYWJlbCk7CiAgICAgfQogICAgIGFwcGVuZFN0cmluZ1RvUmVzdWx0KHJlc3Vs
dCwgbGFuZG1hcmtEZXNjcmlwdGlvbik7CiAgICAgYXBwZW5kU3RyaW5nVG9SZXN1bHQocmVzdWx0
LCBpbnRlcmFjdGl2ZVZpZGVvRGVzY3JpcHRpb24pOwotICAgIAorCiAgICAgcmV0dXJuIFtyZXN1
bHQgbGVuZ3RoXSA/IHJlc3VsdCA6IG5pbDsKIH0KIApAQCAtMTQ2NCwxNCArMTQ2OSwxNSBAQCBz
dGF0aWMgdm9pZCBhcHBlbmRTdHJpbmdUb1Jlc3VsdChOU011dGFibGVTdHJpbmcgKnJlc3VsdCwg
TlNTdHJpbmcgKnN0cmluZykKIHsKICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0
eUNhbGxdKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIAorCiAgICAgLy8gY2hlY2sgaWYgdGhl
IHZhbHVlIHdhcyBvdmVycmlkZGVuCiAgICAgTlNTdHJpbmcgKnZhbHVlID0gW3N1cGVyIGFjY2Vz
c2liaWxpdHlWYWx1ZV07CiAgICAgaWYgKHZhbHVlKQogICAgICAgICByZXR1cm4gdmFsdWU7Ci0g
ICAgCi0gICAgaWYgKHNlbGYuYXhCYWNraW5nT2JqZWN0LT5zdXBwb3J0c0NoZWNrZWRTdGF0ZSgp
KSB7Ci0gICAgICAgIHN3aXRjaCAoc2VsZi5heEJhY2tpbmdPYmplY3QtPmNoZWNrYm94T3JSYWRp
b1ZhbHVlKCkpIHsKKworICAgIGF1dG8qIGJhY2tpbmdPYmplY3QgPSBzZWxmLmF4QmFja2luZ09i
amVjdDsKKyAgICBpZiAoYmFja2luZ09iamVjdC0+c3VwcG9ydHNDaGVja2VkU3RhdGUoKSkgewor
ICAgICAgICBzd2l0Y2ggKGJhY2tpbmdPYmplY3QtPmNoZWNrYm94T3JSYWRpb1ZhbHVlKCkpIHsK
ICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5QnV0dG9uU3RhdGU6Ok9mZjoKICAgICAgICAgICAg
IHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVkIiwgMF07CiAgICAgICAgIGNh
c2UgQWNjZXNzaWJpbGl0eUJ1dHRvblN0YXRlOjpPbjoKQEAgLTE0ODIsMzggKzE0ODgsNDYgQEAg
c3RhdGljIHZvaWQgYXBwZW5kU3RyaW5nVG9SZXN1bHQoTlNNdXRhYmxlU3RyaW5nICpyZXN1bHQs
IE5TU3RyaW5nICpzdHJpbmcpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlZCIsIDBdOwogICAgIH0KLSAg
ICAKLSAgICBpZiAoc2VsZi5heEJhY2tpbmdPYmplY3QtPmlzQnV0dG9uKCkgJiYgc2VsZi5heEJh
Y2tpbmdPYmplY3QtPmlzUHJlc3NlZCgpKQorCisgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzQnV0
dG9uKCkgJiYgYmFja2luZ09iamVjdC0+aXNQcmVzc2VkKCkpCiAgICAgICAgIHJldHVybiBbTlNT
dHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVkIiwgMV07CiAKKyAgICAvLyBJZiBzZWxmIGhhcyB0
aGUgaGVhZGVyIHRyYWl0LCB2YWx1ZSBzaG91bGQgYmUgdGhlIGhlYWRpbmcgbGV2ZWwuCisgICAg
aWYgKHNlbGYuYWNjZXNzaWJpbGl0eVRyYWl0cyAmIHNlbGYuX2F4SGVhZGVyVHJhaXQpIHsKKyAg
ICAgICAgYXV0byogaGVhZGluZyA9IEFjY2Vzc2liaWxpdHk6OmZpbmRBbmNlc3RvcigqYmFja2lu
Z09iamVjdCwgdHJ1ZSwgW10gKGNvbnN0IGF1dG8mIGFuY2VzdG9yKSB7CisgICAgICAgICAgICBy
ZXR1cm4gYW5jZXN0b3Iucm9sZVZhbHVlKCkgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkhlYWRpbmc7
CisgICAgICAgIH0pOworICAgICAgICBBU1NFUlQoaGVhZGluZyk7CisKKyAgICAgICAgaWYgKGhl
YWRpbmcpCisgICAgICAgICAgICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIl
ZCIsIGhlYWRpbmctPmhlYWRpbmdMZXZlbCgpXTsKKyAgICB9CisKICAgICAvLyByZGFyOi8vODEz
MTM4OCBXZWJLaXQgc2hvdWxkIGV4cG9zZSB0aGUgc2FtZSBpbmZvIGFzIFVJS2l0IGZvciBpdHMg
cGFzc3dvcmQgZmllbGRzLgotICAgIGlmIChzZWxmLmF4QmFja2luZ09iamVjdC0+aXNQYXNzd29y
ZEZpZWxkKCkgJiYgIVtzZWxmIF9hY2Nlc3NpYmlsaXR5SXNTdHJvbmdQYXNzd29yZEZpZWxkXSkg
ewotICAgICAgICBpbnQgcGFzc3dvcmRMZW5ndGggPSBzZWxmLmF4QmFja2luZ09iamVjdC0+YWNj
ZXNzaWJpbGl0eVBhc3N3b3JkRmllbGRMZW5ndGgoKTsKKyAgICBpZiAoYmFja2luZ09iamVjdC0+
aXNQYXNzd29yZEZpZWxkKCkgJiYgIVtzZWxmIF9hY2Nlc3NpYmlsaXR5SXNTdHJvbmdQYXNzd29y
ZEZpZWxkXSkgeworICAgICAgICBpbnQgcGFzc3dvcmRMZW5ndGggPSBiYWNraW5nT2JqZWN0LT5h
Y2Nlc3NpYmlsaXR5UGFzc3dvcmRGaWVsZExlbmd0aCgpOwogICAgICAgICBOU011dGFibGVTdHJp
bmcqIHN0cmluZyA9IFtOU011dGFibGVTdHJpbmcgc3RyaW5nXTsKICAgICAgICAgZm9yIChpbnQg
ayA9IDA7IGsgPCBwYXNzd29yZExlbmd0aDsgKytrKQogICAgICAgICAgICAgW3N0cmluZyBhcHBl
bmRTdHJpbmc6QCLigKIiXTsKICAgICAgICAgcmV0dXJuIHN0cmluZzsKICAgICB9Ci0gICAgCisK
ICAgICAvLyBBIHRleHQgY29udHJvbCBzaG91bGQgcmV0dXJuIGl0cyB0ZXh0IGRhdGEgYXMgdGhl
IGF4VmFsdWUgKHBlciBpUGhvbmUgQVggQVBJKS4KICAgICBpZiAoIVtzZWxmIHN0cmluZ1ZhbHVl
U2hvdWxkQmVVc2VkSW5MYWJlbF0pCi0gICAgICAgIHJldHVybiBzZWxmLmF4QmFja2luZ09iamVj
dC0+c3RyaW5nVmFsdWUoKTsKLSAgICAKLSAgICBpZiAoc2VsZi5heEJhY2tpbmdPYmplY3QtPmlz
UmFuZ2VDb250cm9sKCkpIHsKKyAgICAgICAgcmV0dXJuIGJhY2tpbmdPYmplY3QtPnN0cmluZ1Zh
bHVlKCk7CisKKyAgICBpZiAoYmFja2luZ09iamVjdC0+aXNSYW5nZUNvbnRyb2woKSkgewogICAg
ICAgICAvLyBQcmVmZXIgYSB2YWx1ZURlc2NyaXB0aW9uIGlmIHByb3ZpZGVkIGJ5IHRoZSBhdXRo
b3IgKHRocm91Z2ggYXJpYS12YWx1ZXRleHQpLgotICAgICAgICBTdHJpbmcgdmFsdWVEZXNjcmlw
dGlvbiA9IHNlbGYuYXhCYWNraW5nT2JqZWN0LT52YWx1ZURlc2NyaXB0aW9uKCk7CisgICAgICAg
IFN0cmluZyB2YWx1ZURlc2NyaXB0aW9uID0gYmFja2luZ09iamVjdC0+dmFsdWVEZXNjcmlwdGlv
bigpOwogICAgICAgICBpZiAoIXZhbHVlRGVzY3JpcHRpb24uaXNFbXB0eSgpKQogICAgICAgICAg
ICAgcmV0dXJuIHZhbHVlRGVzY3JpcHRpb247CiAKLSAgICAgICAgcmV0dXJuIFtOU1N0cmluZyBz
dHJpbmdXaXRoRm9ybWF0OkAiJS4yZiIsIHNlbGYuYXhCYWNraW5nT2JqZWN0LT52YWx1ZUZvclJh
bmdlKCldOworICAgICAgICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlLjJm
IiwgYmFja2luZ09iamVjdC0+dmFsdWVGb3JSYW5nZSgpXTsKICAgICB9CiAKLSAgICBpZiAoaXM8
QWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQ+KHNlbGYuYXhCYWNraW5nT2JqZWN0KSAmJiBkb3duY2Fz
dDxBY2Nlc3NpYmlsaXR5QXR0YWNobWVudD4oc2VsZi5heEJhY2tpbmdPYmplY3QpLT5oYXNQcm9n
cmVzcygpKQotICAgICAgICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlLjJm
Iiwgc2VsZi5heEJhY2tpbmdPYmplY3QtPnZhbHVlRm9yUmFuZ2UoKV07Ci0gICAgCi0gICAgaWYg
KHNlbGYuYXhCYWNraW5nT2JqZWN0LT5pc0hlYWRpbmcoKSkKLSAgICAgICAgcmV0dXJuIFtOU1N0
cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJWQiLCBzZWxmLmF4QmFja2luZ09iamVjdC0+aGVhZGlu
Z0xldmVsKCldOwotICAgIAorICAgIGlmIChpczxBY2Nlc3NpYmlsaXR5QXR0YWNobWVudD4oYmFj
a2luZ09iamVjdCkgJiYgZG93bmNhc3Q8QWNjZXNzaWJpbGl0eUF0dGFjaG1lbnQ+KGJhY2tpbmdP
YmplY3QpLT5oYXNQcm9ncmVzcygpKQorICAgICAgICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dp
dGhGb3JtYXQ6QCIlLjJmIiwgYmFja2luZ09iamVjdC0+dmFsdWVGb3JSYW5nZSgpXTsKKwogICAg
IHJldHVybiBuaWw7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyZjhhY2IxZTE2MjI1OWY3ZmZjMGE3MDNhYmJkNDZm
MjU4ZmM3ODJhLi5lMGY5MTI4NWZlZWIwMDNkOTVlMTQ3OWNjODBmNzExYjNkYjFjZTkzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDYtMDggIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2df
MjJAYXBwbGUuY29tPgorCisgICAgICAgIGlPUyAtIFZvaWNlT3ZlciByZWFkcyB0aGUgb2xkIGhl
YWRpbmcgdGV4dCB3aGVuIHVwZGF0ZWQgd2l0aCBoZWFkaW5nLmZpcnN0Q2hpbGQuZGF0YS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjc1NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9pb3Mtc2ltdWxhdG9yL2hlYWRpbmctdGV4dC11cGRhdGVzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2hlYWRpbmctdGV4dC11
cGRhdGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL2hlYWRpbmct
dGV4dC11cGRhdGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvaGVhZGluZy10ZXh0LXVwZGF0ZXMuaHRtbDogQWRkZWQuCisKIDIwMjEtMDYtMDcgIElt
YW5vbCBGZXJuYW5kZXogIDxpZmVybmFuZGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgVXNlIDNE
IHBvaW50cyB0byBtYXAgdGhlIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlIGJvdW5kcyB0cmFu
c2Zvcm0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRv
ci9oZWFkaW5nLXRleHQtdXBkYXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2lvcy1zaW11bGF0b3IvaGVhZGluZy10ZXh0LXVwZGF0ZXMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc4MTNmZmE2YzlhYjIxZTMwMTk4OTZmOGJlOTAxZGNlMDJjN2EzMTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaGVh
ZGluZy10ZXh0LXVwZGF0ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzUgQEAKK1RoaXMgdGVz
dHMgdGhhdCBjaGFuZ2luZyB0aGUgdGV4dCBpbiBoZWFkaW5ncyBieSBmb3VyIGRpZmZlcmVudCBE
T00gbWV0aG9kcywgcmVzdWx0cyBvbiB0aGUgY29ycmVzcG9uZGluZyB0ZXh0IGJlaW5nIHJldHJp
ZXZlZCB2aWEgdGhlIGFjY2Vzc2liaWxpdHkgcHJvcGVydHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitoMQorQVhWYWx1ZTogMQorQVhMYWJlbDogb3JpZ2luYWwgdGV4dAoraDIK
K0FYVmFsdWU6IDIKK0FYTGFiZWw6IG9yaWdpbmFsIHRleHQKK2gzCitBWFZhbHVlOiAzCitBWExh
YmVsOiBvcmlnaW5hbCB0ZXh0CitkaXZoZWFkaW5nCitBWFZhbHVlOiAyCitBWExhYmVsOiBvcmln
aW5hbCB0ZXh0CitoMQorQVhWYWx1ZTogMQorQVhMYWJlbDogaW5uZXJIVE1MCitoMgorQVhWYWx1
ZTogMgorQVhMYWJlbDogaW5uZXJIVE1MCitoMworQVhWYWx1ZTogMworQVhMYWJlbDogaW5uZXJI
VE1MCitkaXZoZWFkaW5nCitBWFZhbHVlOiAyCitBWExhYmVsOiBpbm5lckhUTUwKK2gxCitBWFZh
bHVlOiAxCitBWExhYmVsOiBpbm5lclRleHQKK2gyCitBWFZhbHVlOiAyCitBWExhYmVsOiBpbm5l
clRleHQKK2gzCitBWFZhbHVlOiAzCitBWExhYmVsOiBpbm5lclRleHQKK2RpdmhlYWRpbmcKK0FY
VmFsdWU6IDIKK0FYTGFiZWw6IGlubmVyVGV4dAoraDEKK0FYVmFsdWU6IDEKK0FYTGFiZWw6IHRl
eHRDb250ZW50CitoMgorQVhWYWx1ZTogMgorQVhMYWJlbDogdGV4dENvbnRlbnQKK2gzCitBWFZh
bHVlOiAzCitBWExhYmVsOiB0ZXh0Q29udGVudAorZGl2aGVhZGluZworQVhWYWx1ZTogMgorQVhM
YWJlbDogdGV4dENvbnRlbnQKK2gxCitBWFZhbHVlOiAxCitBWExhYmVsOiBmaXJzdENoaWxkLmRh
dGEKK2gyCitBWFZhbHVlOiAyCitBWExhYmVsOiBmaXJzdENoaWxkLmRhdGEKK2gzCitBWFZhbHVl
OiAzCitBWExhYmVsOiBmaXJzdENoaWxkLmRhdGEKK2RpdmhlYWRpbmcKK0FYVmFsdWU6IDIKK0FY
TGFiZWw6IGZpcnN0Q2hpbGQuZGF0YQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCitmaXJzdENoaWxkLmRhdGEKKworZmlyc3RDaGlsZC5kYXRhCisKK2Zp
cnN0Q2hpbGQuZGF0YQorCitmaXJzdENoaWxkLmRhdGEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9oZWFkaW5nLXRleHQtdXBkYXRlcy5odG1sIGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2hlYWRpbmctdGV4dC11cGRh
dGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTFlNjUyMzY3NGE2Y2IzNzVmZGI3NjU5OWI5MGMzZmI3NzRk
MTA0YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNp
bXVsYXRvci9oZWFkaW5nLXRleHQtdXBkYXRlcy5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGgxIGNsYXNzPSJvdXRw
dXQiIGlkPSJoMSI+b3JpZ2luYWwgdGV4dDwvaDE+Cis8aDIgY2xhc3M9Im91dHB1dCIgaWQ9Imgy
Ij5vcmlnaW5hbCB0ZXh0PC9oMj4KKzxoMyBjbGFzcz0ib3V0cHV0IiBpZD0iaDMiPm9yaWdpbmFs
IHRleHQ8L2gzPgorPGRpdiByb2xlPSJoZWFkaW5nIiBjbGFzcz0ib3V0cHV0IiBpZD0iZGl2aGVh
ZGluZyI+b3JpZ2luYWwgdGV4dDwvZGl2PgorCis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJU
aGlzIHRlc3RzIHRoYXQgY2hhbmdpbmcgdGhlIHRleHQgaW4gaGVhZGluZ3MgYnkgZm91ciBkaWZm
ZXJlbnQgRE9NIG1ldGhvZHMsIHJlc3VsdHMgb24gdGhlIGNvcnJlc3BvbmRpbmcgdGV4dCBiZWlu
ZyByZXRyaWV2ZWQgdmlhIHRoZSBhY2Nlc3NpYmlsaXR5IHByb3BlcnR5LiIpOworCisgICAgdmFy
IGlkcyA9IFsgImgxIiwgImgyIiwgImgzIiwgImRpdmhlYWRpbmciIF07CisKKyAgICBmdW5jdGlv
biBzZXRWYWx1ZSh2YWx1ZSkgeworICAgICAgICBbLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgnLm91dHB1dCcpXS5mb3JFYWNoKChub2RlKSA9PiB7CisgICAgICAgICAgICBub2RlW3ZhbHVl
XSA9IGAke3ZhbHVlfWA7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldEZp
cnN0Q2hpbGREYXRhKHZhbHVlKSB7CisgICAgICAgIFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCcub3V0cHV0JyldLmZvckVhY2goKG5vZGUpID0+IHsKKyAgICAgICAgICAgIG5vZGUuZmly
c3RDaGlsZC5kYXRhID0gYCR7dmFsdWV9YDsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gY2hlY2tBWExhYmVscygpIHsKKyAgICAgICAgaWRzLmZvckVhY2goKGlkKSA9PiB7Cisg
ICAgICAgICAgICBkZWJ1ZyhpZCk7CisgICAgICAgICAgICBheEVsZW1lbnQgPSBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoaWQpOworICAgICAgICAgICAgZGVi
dWcoYXhFbGVtZW50LmNoaWxkQXRJbmRleCgwKS5zdHJpbmdWYWx1ZSk7CisgICAgICAgICAgICBk
ZWJ1ZyhheEVsZW1lbnQuY2hpbGRBdEluZGV4KDApLmRlc2NyaXB0aW9uKTsKKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAg
ICAgICAvLyBMb2cgb3JpZ2luYWwgdGV4dC4KKyAgICAgICAgY2hlY2tBWExhYmVscygpOworCisg
ICAgICAgIHNldFZhbHVlKCJpbm5lckhUTUwiKTsKKyAgICAgICAgY2hlY2tBWExhYmVscygpOwor
CisgICAgICAgIHNldFZhbHVlKCJpbm5lclRleHQiKTsKKyAgICAgICAgY2hlY2tBWExhYmVscygp
OworCisgICAgICAgIHNldFZhbHVlKCJ0ZXh0Q29udGVudCIpOworICAgICAgICBjaGVja0FYTGFi
ZWxzKCk7CisKKyAgICAgICAgc2V0Rmlyc3RDaGlsZERhdGEoImZpcnN0Q2hpbGQuZGF0YSIpOwor
ICAgICAgICBjaGVja0FYTGFiZWxzKCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9oZWFkaW5nLXRl
eHQtdXBkYXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9o
ZWFkaW5nLXRleHQtdXBkYXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZmYzU2NDA0ZWE5
ZDE4ZmI3MjU3Yjk0Njk3ZWE5ZjU2MTg2MDRkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvbWFjL2hlYWRpbmctdGV4dC11cGRhdGVzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDc1IEBACitUaGlzIHRlc3RzIHRoYXQgY2hhbmdpbmcgdGhlIHRleHQgaW4gaGVh
ZGluZ3MgYnkgZm91ciBkaWZmZXJlbnQgRE9NIG1ldGhvZHMsIHJlc3VsdHMgb24gdGhlIGNvcnJl
c3BvbmRpbmcgdGV4dCBiZWluZyByZXRyaWV2ZWQgdmlhIHRoZSBhY2Nlc3NpYmlsaXR5IHByb3Bl
cnR5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaDEKK0FYVmFsdWU6IDEKK0FY
VmFsdWU6IG9yaWdpbmFsIHRleHQKK2gyCitBWFZhbHVlOiAyCitBWFZhbHVlOiBvcmlnaW5hbCB0
ZXh0CitoMworQVhWYWx1ZTogMworQVhWYWx1ZTogb3JpZ2luYWwgdGV4dAorZGl2aGVhZGluZwor
QVhWYWx1ZTogMgorQVhWYWx1ZTogb3JpZ2luYWwgdGV4dAoraDEKK0FYVmFsdWU6IDEKK0FYVmFs
dWU6IGlubmVySFRNTAoraDIKK0FYVmFsdWU6IDIKK0FYVmFsdWU6IGlubmVySFRNTAoraDMKK0FY
VmFsdWU6IDMKK0FYVmFsdWU6IGlubmVySFRNTAorZGl2aGVhZGluZworQVhWYWx1ZTogMgorQVhW
YWx1ZTogaW5uZXJIVE1MCitoMQorQVhWYWx1ZTogMQorQVhWYWx1ZTogaW5uZXJUZXh0CitoMgor
QVhWYWx1ZTogMgorQVhWYWx1ZTogaW5uZXJUZXh0CitoMworQVhWYWx1ZTogMworQVhWYWx1ZTog
aW5uZXJUZXh0CitkaXZoZWFkaW5nCitBWFZhbHVlOiAyCitBWFZhbHVlOiBpbm5lclRleHQKK2gx
CitBWFZhbHVlOiAxCitBWFZhbHVlOiB0ZXh0Q29udGVudAoraDIKK0FYVmFsdWU6IDIKK0FYVmFs
dWU6IHRleHRDb250ZW50CitoMworQVhWYWx1ZTogMworQVhWYWx1ZTogdGV4dENvbnRlbnQKK2Rp
dmhlYWRpbmcKK0FYVmFsdWU6IDIKK0FYVmFsdWU6IHRleHRDb250ZW50CitoMQorQVhWYWx1ZTog
MQorQVhWYWx1ZTogZmlyc3RDaGlsZC5kYXRhCitoMgorQVhWYWx1ZTogMgorQVhWYWx1ZTogZmly
c3RDaGlsZC5kYXRhCitoMworQVhWYWx1ZTogMworQVhWYWx1ZTogZmlyc3RDaGlsZC5kYXRhCitk
aXZoZWFkaW5nCitBWFZhbHVlOiAyCitBWFZhbHVlOiBmaXJzdENoaWxkLmRhdGEKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorZmlyc3RDaGlsZC5kYXRh
CisKK2ZpcnN0Q2hpbGQuZGF0YQorCitmaXJzdENoaWxkLmRhdGEKKworZmlyc3RDaGlsZC5kYXRh
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9oZWFkaW5nLXRleHQt
dXBkYXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvaGVhZGluZy10ZXh0
LXVwZGF0ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmJlNDdiYzYxZWE1ZGY4NWFhNjc0YTY1M2Y0YzA4
ZmViOTE2OTA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
YWMvaGVhZGluZy10ZXh0LXVwZGF0ZXMuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxoMSBjbGFzcz0ib3V0cHV0IiBp
ZD0iaDEiPm9yaWdpbmFsIHRleHQ8L2gxPgorPGgyIGNsYXNzPSJvdXRwdXQiIGlkPSJoMiI+b3Jp
Z2luYWwgdGV4dDwvaDI+Cis8aDMgY2xhc3M9Im91dHB1dCIgaWQ9ImgzIj5vcmlnaW5hbCB0ZXh0
PC9oMz4KKzxkaXYgcm9sZT0iaGVhZGluZyIgY2xhc3M9Im91dHB1dCIgaWQ9ImRpdmhlYWRpbmci
Pm9yaWdpbmFsIHRleHQ8L2Rpdj4KKworPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0
ZXN0cyB0aGF0IGNoYW5naW5nIHRoZSB0ZXh0IGluIGhlYWRpbmdzIGJ5IGZvdXIgZGlmZmVyZW50
IERPTSBtZXRob2RzLCByZXN1bHRzIG9uIHRoZSBjb3JyZXNwb25kaW5nIHRleHQgYmVpbmcgcmV0
cmlldmVkIHZpYSB0aGUgYWNjZXNzaWJpbGl0eSBwcm9wZXJ0eS4iKTsKKworICAgIHZhciBpZHMg
PSBbICJoMSIsICJoMiIsICJoMyIsICJkaXZoZWFkaW5nIiBdOworCisgICAgZnVuY3Rpb24gc2V0
VmFsdWUodmFsdWUpIHsKKyAgICAgICAgWy4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5v
dXRwdXQnKV0uZm9yRWFjaCgobm9kZSkgPT4geworICAgICAgICAgICAgbm9kZVt2YWx1ZV0gPSBg
JHt2YWx1ZX1gOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZXRGaXJzdENo
aWxkRGF0YSh2YWx1ZSkgeworICAgICAgICBbLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgn
Lm91dHB1dCcpXS5mb3JFYWNoKChub2RlKSA9PiB7CisgICAgICAgICAgICBub2RlLmZpcnN0Q2hp
bGQuZGF0YSA9IGAke3ZhbHVlfWA7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9u
IGNoZWNrQVhMYWJlbHMoKSB7CisgICAgICAgIGlkcy5mb3JFYWNoKChpZCkgPT4geworICAgICAg
ICAgICAgZGVidWcoaWQpOworICAgICAgICAgICAgYXhFbGVtZW50ID0gYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgICAgIGRlYnVnKGF4
RWxlbWVudC5zdHJpbmdWYWx1ZSk7CisgICAgICAgICAgICBkZWJ1ZyhheEVsZW1lbnQuY2hpbGRB
dEluZGV4KDApLnN0cmluZ1ZhbHVlKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKHdp
bmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICAvLyBMb2cgb3JpZ2luYWwg
dGV4dC4KKyAgICAgICAgY2hlY2tBWExhYmVscygpOworCisgICAgICAgIHNldFZhbHVlKCJpbm5l
ckhUTUwiKTsKKyAgICAgICAgY2hlY2tBWExhYmVscygpOworCisgICAgICAgIHNldFZhbHVlKCJp
bm5lclRleHQiKTsKKyAgICAgICAgY2hlY2tBWExhYmVscygpOworCisgICAgICAgIHNldFZhbHVl
KCJ0ZXh0Q29udGVudCIpOworICAgICAgICBjaGVja0FYTGFiZWxzKCk7CisKKyAgICAgICAgc2V0
Rmlyc3RDaGlsZERhdGEoImZpcnN0Q2hpbGQuZGF0YSIpOworICAgICAgICBjaGVja0FYTGFiZWxz
KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430964</attachid>
            <date>2021-06-09 07:41:51 -0700</date>
            <delta_ts>2021-06-09 17:11:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226754-20210609104150.patch</filename>
            <type>text/plain</type>
            <size>19650</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgxNWY5YTdiMjFhYmE3
NjRhZDExYmIwYjJkODI4NWI3MGViZDViNC4uZDEzNzliZGE2NmExNmRmNTgzMDkyOWIxNjQ4YTcx
ZTZlODUyMmUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA2LTA4ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBpT1MgLSBWb2lj
ZU92ZXIgcmVhZHMgdGhlIG9sZCBoZWFkaW5nIHRleHQgd2hlbiB1cGRhdGVkIHdpdGggaGVhZGlu
Zy5maXJzdENoaWxkLmRhdGEuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjY3NTQKKyAgICAgICAgcmRhcjovLzQ0OTQ5NTYzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGFjY2Vzc2liaWxpdHkv
aW9zLXNpbXVsYXRvci9oZWFkaW5nLXRleHQtdXBkYXRlcy5odG1sCisgICAgICAgICAgICAgICBh
Y2Nlc3NpYmlsaXR5L21hYy9oZWFkaW5nLXRleHQtdXBkYXRlcy5odG1sCisKKyAgICAgICAgVGhl
IHByb2JsZW0gd2FzIGNhdXNlZCBieSBbV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgX2Fj
Y2Vzc2liaWxpdHlUcmFpdHNGcm9tQW5jZXN0b3JzXQorICAgICAgICBzZXR0aW5nIHRoZSB2YWx1
ZSBhbmQgbGFiZWwgb2Ygc3RhdGljIHRleHQgaW5zaWRlIGhlYWRpbmdzLiBzaW5jZSB0aGlzCisg
ICAgICAgIG1ldGhvZCBpcyBjYWxsZWQgb25seSBvbiB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhl
IG9iamVjdCwgdGhlIGxhYmVsIGlzCisgICAgICAgIG5ldmVyIHVwZGF0ZWQgd2hlbiB0aGUgdGV4
dCBjaGFuZ2VzLgorICAgICAgICBUaGUgc29sdXRpb24gaXMgdG8gbW92ZSB0aGUgbG9naWMgdG8g
cmV0dXJuIHRoZSBsYWJlbCBhbmQgdmFsdWUgb2YKKyAgICAgICAgc3RhdGljIHRleHQgaW5zaWRl
IGhlYWRpbmdzIHRvIHRoZSBhY2Nlc3NpYmlsaXR5TGFiZWwgYW5kIGFjY2Vzc2liaWxpdHlWYWx1
ZQorICAgICAgICByZXNwZWN0aXZlbHkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgX2FjY2Vzc2liaWxpdHlUcmFpdHNGcm9tQW5jZXN0b3JzXSk6
CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlM
YWJlbF0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3Np
YmlsaXR5VmFsdWVdKToKKwogMjAyMS0wNi0wNyAgSW1hbm9sIEZlcm5hbmRleiAgPGlmZXJuYW5k
ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBDaGFuZ2UgV2ViWFJTcGFjZTo6ZWZlY3RpdmVPcmln
aW4oKSBtYXRyaXggbXVsdGlwbGljYXRpb24gb3JkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1t
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJJT1MubW0KaW5kZXggYTljYWU2ZDcwMTdkMTQzNTMxYWU3OTZmODNiMzM0N2VmYWNh
NWI5Ny4uMTA2MmYwZjlmYWNiZWI5MDkyNGEzMTk5Yjg3NmFmMTZiOTFjNzI3MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0KQEAgLTY2MSwxNSArNjYxLDE1IEBAIHN0
YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciogQWNjZXNzaWJpbGl0eVVuaWdub3JlZEFu
Y2VzdG9yKEFjY2Vzc2liaWxpdHlPCiAtICh1aW50NjRfdClfYWNjZXNzaWJpbGl0eVRyYWl0c0Zy
b21BbmNlc3RvcnMKIHsKICAgICB1aW50NjRfdCB0cmFpdHMgPSAwOwotICAgIEFjY2Vzc2liaWxp
dHlSb2xlIHJvbGUgPSBzZWxmLmF4QmFja2luZ09iamVjdC0+cm9sZVZhbHVlKCk7Ci0gICAgCisg
ICAgYXV0byogYmFja2luZ09iamVjdCA9IHNlbGYuYXhCYWNraW5nT2JqZWN0OworCiAgICAgLy8g
VHJhaXQgaW5mb3JtYXRpb24gYWxzbyBuZWVkcyB0byBiZSBnYXRoZXJlZCBmcm9tIHRoZSBwYXJl
bnRzIGFib3ZlIHRoZSBvYmplY3QuCi0gICAgLy8gVGhlIHBhcmVudE9iamVjdCBpcyBuZWVkZWQg
aW5zdGVhZCBvZiB0aGUgdW5pZ25vcmVkUGFyZW50T2JqZWN0LCBiZWNhdXNlIGEgdGFibGUgbWln
aHQgYmUgaWdub3JlZCwgYnV0IGluZm9ybWF0aW9uIHN0aWxsIG5lZWRzIHRvIGJlIGdhdGhlcmVk
IGZyb20gaXQuICAgIAotICAgIGZvciAoYXV0byogcGFyZW50ID0gc2VsZi5heEJhY2tpbmdPYmpl
Y3QtPnBhcmVudE9iamVjdCgpOyBwYXJlbnQgIT0gbmlsOyBwYXJlbnQgPSBwYXJlbnQtPnBhcmVu
dE9iamVjdCgpKSB7CisgICAgLy8gVGhlIHBhcmVudE9iamVjdCBpcyBuZWVkZWQgaW5zdGVhZCBv
ZiB0aGUgdW5pZ25vcmVkUGFyZW50T2JqZWN0LCBiZWNhdXNlIGEgdGFibGUgbWlnaHQgYmUgaWdu
b3JlZCwgYnV0IGluZm9ybWF0aW9uIHN0aWxsIG5lZWRzIHRvIGJlIGdhdGhlcmVkIGZyb20gaXQu
CisgICAgZm9yIChhdXRvKiBwYXJlbnQgPSBiYWNraW5nT2JqZWN0LT5wYXJlbnRPYmplY3QoKTsg
cGFyZW50OyBwYXJlbnQgPSBwYXJlbnQtPnBhcmVudE9iamVjdCgpKSB7CiAgICAgICAgIEFjY2Vz
c2liaWxpdHlSb2xlIHBhcmVudFJvbGUgPSBwYXJlbnQtPnJvbGVWYWx1ZSgpOwogICAgICAgICBp
ZiAocGFyZW50Um9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXJlYSkKICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAKKwogICAgICAgICBzd2l0Y2ggKHBhcmVudFJvbGUpIHsKICAgICAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGluazoKICAgICAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6V2ViQ29yZUxpbms6CkBAIC02NzcsMzUgKzY3NywyMCBAQCBzdGF0aWMgQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIqIEFjY2Vzc2liaWxpdHlVbmlnbm9yZWRBbmNlc3RvcihBY2Nl
c3NpYmlsaXR5TwogICAgICAgICAgICAgaWYgKHBhcmVudC0+aXNWaXNpdGVkKCkpCiAgICAgICAg
ICAgICAgICAgdHJhaXRzIHw9IFtzZWxmIF9heFZpc2l0ZWRUcmFpdF07CiAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SGVhZGluZzogeworICAgICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpIZWFkaW5nOgogICAgICAgICAgICAgdHJhaXRzIHw9
IFtzZWxmIF9heEhlYWRlclRyYWl0XTsKLSAgICAgICAgICAgIC8vIElmIHRoaXMgb2JqZWN0IGhh
cyB0aGUgaGVhZGVyIHRyYWl0LCB3ZSBzaG91bGQgc2V0IHRoZSB2YWx1ZQotICAgICAgICAgICAg
Ly8gdG8gdGhlIGhlYWRpbmcgbGV2ZWwuIElmIGl0IHdhcyBhIHN0YXRpYyB0ZXh0IGVsZW1lbnQs
IHdlIG5lZWQgdG8gc3RvcmUKLSAgICAgICAgICAgIC8vIHRoZSB2YWx1ZSBhcyB0aGUgbGFiZWws
IGJlY2F1c2UgdGhlIGhlYWRpbmcgbGV2ZWwgbmVlZHMgdG8gdGhlIHZhbHVlLgotICAgICAgICAg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIqIHdyYXBwZXIgPSBwYXJlbnQtPndyYXBwZXIo
KTsKLSAgICAgICAgICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0aWNUZXh0
KSB7Ci0gICAgICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIG9ubHkgc2V0IHRoZSB0ZXh0IHZhbHVl
IGFzIHRoZSBsYWJlbCB3aGVuIHRoZXJlJ3Mgbm8KLSAgICAgICAgICAgICAgICAvLyBhbHRlcm5h
dGUgdGV4dCBvbiB0aGUgaGVhZGluZyBwYXJlbnQuCi0gICAgICAgICAgICAgICAgTlNTdHJpbmcg
KmhlYWRpbmdMYWJlbCA9IFt3cmFwcGVyIGJhc2VBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25dOwot
ICAgICAgICAgICAgICAgIGlmICghW2hlYWRpbmdMYWJlbCBsZW5ndGhdKQotICAgICAgICAgICAg
ICAgICAgICBbc2VsZiBzZXRBY2Nlc3NpYmlsaXR5TGFiZWw6c2VsZi5heEJhY2tpbmdPYmplY3Qt
PnN0cmluZ1ZhbHVlKCldOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAg
ICAgW3NlbGYgc2V0QWNjZXNzaWJpbGl0eUxhYmVsOmhlYWRpbmdMYWJlbF07Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBbc2VsZiBzZXRBY2Nlc3NpYmlsaXR5VmFsdWU6W3dyYXBwZXIgYWNj
ZXNzaWJpbGl0eVZhbHVlXV07CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQogICAgICAg
ICBkZWZhdWx0OgogICAgICAgICAgICAgaWYgKFtzZWxmIF9hY2Nlc3NpYmlsaXR5SXNMYW5kbWFy
a1JvbGU6cGFyZW50Um9sZV0pCiAgICAgICAgICAgICAgICAgdHJhaXRzIHw9IFtzZWxmIF9heENv
bnRhaW5lZEJ5TGFuZG1hcmtUcmFpdF07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQot
ICAgICAgICAKKwogICAgICAgICAvLyBJZiB0aGlzIG9iamVjdCBoYXMgZmllbGRzZXQgcGFyZW50
LCB3ZSBzaG91bGQgYWRkIGNvbnRhaW5lZEJ5RmllbGRzZXRUcmFpdCB0byBpdC4KICAgICAgICAg
aWYgKHBhcmVudC0+aXNGaWVsZHNldCgpKQogICAgICAgICAgICAgdHJhaXRzIHw9IFtzZWxmIF9h
eENvbnRhaW5lZEJ5RmllbGRzZXRUcmFpdF07CiAgICAgfQotICAgIAorCiAgICAgcmV0dXJuIHRy
YWl0czsKIH0KIApAQCAtMTE4OSwzNSArMTE3NCw1NiBAQCBzdGF0aWMgdm9pZCBhcHBlbmRTdHJp
bmdUb1Jlc3VsdChOU011dGFibGVTdHJpbmcgKnJlc3VsdCwgTlNTdHJpbmcgKnN0cmluZykKICAg
ICBpZiAobGFiZWwpCiAgICAgICAgIHJldHVybiBsYWJlbDsKIAorICAgIGF1dG8qIGJhY2tpbmdP
YmplY3QgPSBzZWxmLmF4QmFja2luZ09iamVjdDsKKwogICAgIC8vIGlPUyBkb2Vzbid0IGRpc3Rp
bmd1aXNoIGJldHdlZW4gYSB0aXRsZSBhbmQgZGVzY3JpcHRpb24gZmllbGQsCiAgICAgLy8gc28g
Y29uY2F0ZW50YXRpb24gd2lsbCB5aWVsZCB0aGUgYmVzdCByZXN1bHQuCi0gICAgTlNTdHJpbmcg
KmF4VGl0bGUgPSBzZWxmLmF4QmFja2luZ09iamVjdC0+dGl0bGVBdHRyaWJ1dGVWYWx1ZSgpOwot
ICAgIE5TU3RyaW5nICpheERlc2NyaXB0aW9uID0gW3NlbGYgYmFzZUFjY2Vzc2liaWxpdHlEZXNj
cmlwdGlvbl07CisgICAgTlNTdHJpbmcgKmF4VGl0bGUgPSBiYWNraW5nT2JqZWN0LT50aXRsZUF0
dHJpYnV0ZVZhbHVlKCk7CisgICAgTlNTdHJpbmcgKmF4RGVzY3JpcHRpb24gPSBiYWNraW5nT2Jq
ZWN0LT5kZXNjcmlwdGlvbkF0dHJpYnV0ZVZhbHVlKCk7CiAgICAgTlNTdHJpbmcgKmxhbmRtYXJr
RGVzY3JpcHRpb24gPSBbc2VsZiBhcmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRpb25dOwogICAgIE5T
U3RyaW5nICppbnRlcmFjdGl2ZVZpZGVvRGVzY3JpcHRpb24gPSBbc2VsZiBpbnRlcmFjdGl2ZVZp
ZGVvRGVzY3JpcHRpb25dOwotICAgIAorCisgICAgLy8gSWYgc2VsZiBpcyBzdGF0aWMgdGV4dCBp
bnNpZGUgYSBoZWFkaW5nLCB0aGUgbGFiZWwgc2hvdWxkIGJlIHRoZSBzdHJpbmcKKyAgICAvLyB2
YWx1ZSBvZiB0aGUgc3RhdGljIHRleHQgb2JqZWN0LCBleGNlcHQgd2hlbiB0aGUgaGVhZGluZyBo
YXMgYWx0ZXJuYXRpdmUKKyAgICAvLyB0ZXh0LCBpbiB3aGljaCBjYXNlLCB0aGF0IGFsdGVybmF0
aXZlIHRleHQgaXMgcmV0dXJuZWQgaGVyZS4KKyAgICAvLyBUaGUgcmVhc29uIGlzIHRoYXQgdGhl
IHN0cmluZyB2YWx1ZSBmb3Igc3RhdGljIHRleHQgaW5zaWRlIGEgaGVhZGluZyBpcworICAgIC8v
IHVzZWQgdG8gY29udmV5IHRoZSBoZWFkaW5nIGxldmVsIGluc3RlYWQuCisgICAgaWYgKGJhY2tp
bmdPYmplY3QtPnJvbGVWYWx1ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0aWNUZXh0Cisg
ICAgICAgICYmIHNlbGYuYWNjZXNzaWJpbGl0eVRyYWl0cyAmIHNlbGYuX2F4SGVhZGVyVHJhaXQp
IHsKKyAgICAgICAgYXV0byogaGVhZGluZyA9IEFjY2Vzc2liaWxpdHk6OmZpbmRBbmNlc3Rvcigq
YmFja2luZ09iamVjdCwgZmFsc2UsIFtdIChjb25zdCBhdXRvJiBhbmNlc3RvcikgeworICAgICAg
ICAgICAgcmV0dXJuIGFuY2VzdG9yLnJvbGVWYWx1ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpI
ZWFkaW5nOworICAgICAgICB9KTsKKworICAgICAgICBpZiAoaGVhZGluZykgeworICAgICAgICAg
ICAgYXV0byBoZWFkaW5nTGFiZWwgPSBoZWFkaW5nLT5kZXNjcmlwdGlvbkF0dHJpYnV0ZVZhbHVl
KCk7CisgICAgICAgICAgICBpZiAoIWhlYWRpbmdMYWJlbC5pc0VtcHR5KCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGhlYWRpbmdMYWJlbDsKKyAgICAgICAgICAgIHJldHVybiBiYWNraW5nT2Jq
ZWN0LT5zdHJpbmdWYWx1ZSgpOworICAgICAgICB9CisgICAgfQorCiAgICAgLy8gV2Ugc2hvdWxk
IGV4cG9zZSB0aGUgdmFsdWUgb2YgdGhlIGlucHV0IHR5cGUgZGF0ZSBvciB0aW1lIHRocm91Z2gg
QVhWYWx1ZSBpbnN0ZWFkIG9mIEFYVGl0bGUuCi0gICAgaWYgKHNlbGYuYXhCYWNraW5nT2JqZWN0
LT5pc0lucHV0VHlwZVBvcHVwQnV0dG9uKCkgJiYgW2F4VGl0bGUgaXNFcXVhbFRvU3RyaW5nOltz
ZWxmIGFjY2Vzc2liaWxpdHlWYWx1ZV1dKQorICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc0lucHV0
VHlwZVBvcHVwQnV0dG9uKCkgJiYgW2F4VGl0bGUgaXNFcXVhbFRvU3RyaW5nOltzZWxmIGFjY2Vz
c2liaWxpdHlWYWx1ZV1dKQogICAgICAgICBheFRpdGxlID0gbmlsOwogCiAgICAgLy8gRm9vdGVy
IGlzIG5vdCBjb25zaWRlcmVkIGEgbGFuZG1hcmssIGJ1dCB3ZSB3YW50IHRoZSByb2xlIGRlc2Ny
aXB0aW9uLgotICAgIGlmIChzZWxmLmF4QmFja2luZ09iamVjdC0+cm9sZVZhbHVlKCkgPT0gQWNj
ZXNzaWJpbGl0eVJvbGU6OkZvb3RlcikKKyAgICBpZiAoYmFja2luZ09iamVjdC0+cm9sZVZhbHVl
KCkgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkZvb3RlcikKICAgICAgICAgbGFuZG1hcmtEZXNjcmlw
dGlvbiA9IEFYRm9vdGVyUm9sZURlc2NyaXB0aW9uVGV4dCgpOwogCiAgICAgTlNNdXRhYmxlU3Ry
aW5nICpyZXN1bHQgPSBbTlNNdXRhYmxlU3RyaW5nIHN0cmluZ107Ci0gICAgaWYgKHNlbGYuYXhC
YWNraW5nT2JqZWN0LT5yb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SG9yaXpvbnRh
bFJ1bGUpCisgICAgaWYgKGJhY2tpbmdPYmplY3QtPnJvbGVWYWx1ZSgpID09IEFjY2Vzc2liaWxp
dHlSb2xlOjpIb3Jpem9udGFsUnVsZSkKICAgICAgICAgYXBwZW5kU3RyaW5nVG9SZXN1bHQocmVz
dWx0LCBBWEhvcml6b250YWxSdWxlRGVzY3JpcHRpb25UZXh0KCkpOwogCiAgICAgYXBwZW5kU3Ry
aW5nVG9SZXN1bHQocmVzdWx0LCBheFRpdGxlKTsKICAgICBhcHBlbmRTdHJpbmdUb1Jlc3VsdChy
ZXN1bHQsIGF4RGVzY3JpcHRpb24pOwogICAgIGlmIChbc2VsZiBzdHJpbmdWYWx1ZVNob3VsZEJl
VXNlZEluTGFiZWxdKSB7Ci0gICAgICAgIE5TU3RyaW5nICp2YWx1ZUxhYmVsID0gc2VsZi5heEJh
Y2tpbmdPYmplY3QtPnN0cmluZ1ZhbHVlKCk7CisgICAgICAgIE5TU3RyaW5nICp2YWx1ZUxhYmVs
ID0gYmFja2luZ09iamVjdC0+c3RyaW5nVmFsdWUoKTsKICAgICAgICAgdmFsdWVMYWJlbCA9IFt2
YWx1ZUxhYmVsIHN0cmluZ0J5VHJpbW1pbmdDaGFyYWN0ZXJzSW5TZXQ6W05TQ2hhcmFjdGVyU2V0
IHdoaXRlc3BhY2VDaGFyYWN0ZXJTZXRdXTsKICAgICAgICAgYXBwZW5kU3RyaW5nVG9SZXN1bHQo
cmVzdWx0LCB2YWx1ZUxhYmVsKTsKICAgICB9CiAgICAgYXBwZW5kU3RyaW5nVG9SZXN1bHQocmVz
dWx0LCBsYW5kbWFya0Rlc2NyaXB0aW9uKTsKICAgICBhcHBlbmRTdHJpbmdUb1Jlc3VsdChyZXN1
bHQsIGludGVyYWN0aXZlVmlkZW9EZXNjcmlwdGlvbik7Ci0gICAgCisKICAgICByZXR1cm4gW3Jl
c3VsdCBsZW5ndGhdID8gcmVzdWx0IDogbmlsOwogfQogCkBAIC0xNDY0LDE0ICsxNDcwLDE1IEBA
IHN0YXRpYyB2b2lkIGFwcGVuZFN0cmluZ1RvUmVzdWx0KE5TTXV0YWJsZVN0cmluZyAqcmVzdWx0
LCBOU1N0cmluZyAqc3RyaW5nKQogewogICAgIGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmls
aXR5Q2FsbF0pCiAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgCisKICAgICAvLyBjaGVjayBpZiB0
aGUgdmFsdWUgd2FzIG92ZXJyaWRkZW4KICAgICBOU1N0cmluZyAqdmFsdWUgPSBbc3VwZXIgYWNj
ZXNzaWJpbGl0eVZhbHVlXTsKICAgICBpZiAodmFsdWUpCiAgICAgICAgIHJldHVybiB2YWx1ZTsK
LSAgICAKLSAgICBpZiAoc2VsZi5heEJhY2tpbmdPYmplY3QtPnN1cHBvcnRzQ2hlY2tlZFN0YXRl
KCkpIHsKLSAgICAgICAgc3dpdGNoIChzZWxmLmF4QmFja2luZ09iamVjdC0+Y2hlY2tib3hPclJh
ZGlvVmFsdWUoKSkgeworCisgICAgYXV0byogYmFja2luZ09iamVjdCA9IHNlbGYuYXhCYWNraW5n
T2JqZWN0OworICAgIGlmIChiYWNraW5nT2JqZWN0LT5zdXBwb3J0c0NoZWNrZWRTdGF0ZSgpKSB7
CisgICAgICAgIHN3aXRjaCAoYmFja2luZ09iamVjdC0+Y2hlY2tib3hPclJhZGlvVmFsdWUoKSkg
ewogICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlCdXR0b25TdGF0ZTo6T2ZmOgogICAgICAgICAg
ICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJWQiLCAwXTsKICAgICAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5QnV0dG9uU3RhdGU6Ok9uOgpAQCAtMTQ4MiwzOCArMTQ4OSw0NiBA
QCBzdGF0aWMgdm9pZCBhcHBlbmRTdHJpbmdUb1Jlc3VsdChOU011dGFibGVTdHJpbmcgKnJlc3Vs
dCwgTlNTdHJpbmcgKnN0cmluZykKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVkIiwgMF07CiAgICAgfQot
ICAgIAotICAgIGlmIChzZWxmLmF4QmFja2luZ09iamVjdC0+aXNCdXR0b24oKSAmJiBzZWxmLmF4
QmFja2luZ09iamVjdC0+aXNQcmVzc2VkKCkpCisKKyAgICBpZiAoYmFja2luZ09iamVjdC0+aXNC
dXR0b24oKSAmJiBiYWNraW5nT2JqZWN0LT5pc1ByZXNzZWQoKSkKICAgICAgICAgcmV0dXJuIFtO
U1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJWQiLCAxXTsKIAorICAgIC8vIElmIHNlbGYgaGFz
IHRoZSBoZWFkZXIgdHJhaXQsIHZhbHVlIHNob3VsZCBiZSB0aGUgaGVhZGluZyBsZXZlbC4KKyAg
ICBpZiAoc2VsZi5hY2Nlc3NpYmlsaXR5VHJhaXRzICYgc2VsZi5fYXhIZWFkZXJUcmFpdCkgewor
ICAgICAgICBhdXRvKiBoZWFkaW5nID0gQWNjZXNzaWJpbGl0eTo6ZmluZEFuY2VzdG9yKCpiYWNr
aW5nT2JqZWN0LCB0cnVlLCBbXSAoY29uc3QgYXV0byYgYW5jZXN0b3IpIHsKKyAgICAgICAgICAg
IHJldHVybiBhbmNlc3Rvci5yb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SGVhZGlu
ZzsKKyAgICAgICAgfSk7CisgICAgICAgIEFTU0VSVChoZWFkaW5nKTsKKworICAgICAgICBpZiAo
aGVhZGluZykKKyAgICAgICAgICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpA
IiVkIiwgaGVhZGluZy0+aGVhZGluZ0xldmVsKCldOworICAgIH0KKwogICAgIC8vIHJkYXI6Ly84
MTMxMzg4IFdlYktpdCBzaG91bGQgZXhwb3NlIHRoZSBzYW1lIGluZm8gYXMgVUlLaXQgZm9yIGl0
cyBwYXNzd29yZCBmaWVsZHMuCi0gICAgaWYgKHNlbGYuYXhCYWNraW5nT2JqZWN0LT5pc1Bhc3N3
b3JkRmllbGQoKSAmJiAhW3NlbGYgX2FjY2Vzc2liaWxpdHlJc1N0cm9uZ1Bhc3N3b3JkRmllbGRd
KSB7Ci0gICAgICAgIGludCBwYXNzd29yZExlbmd0aCA9IHNlbGYuYXhCYWNraW5nT2JqZWN0LT5h
Y2Nlc3NpYmlsaXR5UGFzc3dvcmRGaWVsZExlbmd0aCgpOworICAgIGlmIChiYWNraW5nT2JqZWN0
LT5pc1Bhc3N3b3JkRmllbGQoKSAmJiAhW3NlbGYgX2FjY2Vzc2liaWxpdHlJc1N0cm9uZ1Bhc3N3
b3JkRmllbGRdKSB7CisgICAgICAgIGludCBwYXNzd29yZExlbmd0aCA9IGJhY2tpbmdPYmplY3Qt
PmFjY2Vzc2liaWxpdHlQYXNzd29yZEZpZWxkTGVuZ3RoKCk7CiAgICAgICAgIE5TTXV0YWJsZVN0
cmluZyogc3RyaW5nID0gW05TTXV0YWJsZVN0cmluZyBzdHJpbmddOwogICAgICAgICBmb3IgKGlu
dCBrID0gMDsgayA8IHBhc3N3b3JkTGVuZ3RoOyArK2spCiAgICAgICAgICAgICBbc3RyaW5nIGFw
cGVuZFN0cmluZzpAIuKAoiJdOwogICAgICAgICByZXR1cm4gc3RyaW5nOwogICAgIH0KLSAgICAK
KwogICAgIC8vIEEgdGV4dCBjb250cm9sIHNob3VsZCByZXR1cm4gaXRzIHRleHQgZGF0YSBhcyB0
aGUgYXhWYWx1ZSAocGVyIGlQaG9uZSBBWCBBUEkpLgogICAgIGlmICghW3NlbGYgc3RyaW5nVmFs
dWVTaG91bGRCZVVzZWRJbkxhYmVsXSkKLSAgICAgICAgcmV0dXJuIHNlbGYuYXhCYWNraW5nT2Jq
ZWN0LT5zdHJpbmdWYWx1ZSgpOwotICAgIAotICAgIGlmIChzZWxmLmF4QmFja2luZ09iamVjdC0+
aXNSYW5nZUNvbnRyb2woKSkgeworICAgICAgICByZXR1cm4gYmFja2luZ09iamVjdC0+c3RyaW5n
VmFsdWUoKTsKKworICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1JhbmdlQ29udHJvbCgpKSB7CiAg
ICAgICAgIC8vIFByZWZlciBhIHZhbHVlRGVzY3JpcHRpb24gaWYgcHJvdmlkZWQgYnkgdGhlIGF1
dGhvciAodGhyb3VnaCBhcmlhLXZhbHVldGV4dCkuCi0gICAgICAgIFN0cmluZyB2YWx1ZURlc2Ny
aXB0aW9uID0gc2VsZi5heEJhY2tpbmdPYmplY3QtPnZhbHVlRGVzY3JpcHRpb24oKTsKKyAgICAg
ICAgU3RyaW5nIHZhbHVlRGVzY3JpcHRpb24gPSBiYWNraW5nT2JqZWN0LT52YWx1ZURlc2NyaXB0
aW9uKCk7CiAgICAgICAgIGlmICghdmFsdWVEZXNjcmlwdGlvbi5pc0VtcHR5KCkpCiAgICAgICAg
ICAgICByZXR1cm4gdmFsdWVEZXNjcmlwdGlvbjsKIAotICAgICAgICByZXR1cm4gW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCIlLjJmIiwgc2VsZi5heEJhY2tpbmdPYmplY3QtPnZhbHVlRm9y
UmFuZ2UoKV07CisgICAgICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiUu
MmYiLCBiYWNraW5nT2JqZWN0LT52YWx1ZUZvclJhbmdlKCldOwogICAgIH0KIAotICAgIGlmIChp
czxBY2Nlc3NpYmlsaXR5QXR0YWNobWVudD4oc2VsZi5heEJhY2tpbmdPYmplY3QpICYmIGRvd25j
YXN0PEFjY2Vzc2liaWxpdHlBdHRhY2htZW50PihzZWxmLmF4QmFja2luZ09iamVjdCktPmhhc1By
b2dyZXNzKCkpCi0gICAgICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiUu
MmYiLCBzZWxmLmF4QmFja2luZ09iamVjdC0+dmFsdWVGb3JSYW5nZSgpXTsKLSAgICAKLSAgICBp
ZiAoc2VsZi5heEJhY2tpbmdPYmplY3QtPmlzSGVhZGluZygpKQotICAgICAgICByZXR1cm4gW05T
U3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlZCIsIHNlbGYuYXhCYWNraW5nT2JqZWN0LT5oZWFk
aW5nTGV2ZWwoKV07Ci0gICAgCisgICAgaWYgKGlzPEFjY2Vzc2liaWxpdHlBdHRhY2htZW50Pihi
YWNraW5nT2JqZWN0KSAmJiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5QXR0YWNobWVudD4oYmFja2lu
Z09iamVjdCktPmhhc1Byb2dyZXNzKCkpCisgICAgICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpAIiUuMmYiLCBiYWNraW5nT2JqZWN0LT52YWx1ZUZvclJhbmdlKCldOworCiAg
ICAgcmV0dXJuIG5pbDsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJmOGFjYjFlMTYyMjU5ZjdmZmMwYTcwM2FiYmQ0
NmYyNThmYzc4MmEuLmUwZjkxMjg1ZmVlYjAwM2Q5NWUxNDc5Y2M4MGY3MTFiM2RiMWNlOTMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wNi0wOCAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVz
Z18yMkBhcHBsZS5jb20+CisKKyAgICAgICAgaU9TIC0gVm9pY2VPdmVyIHJlYWRzIHRoZSBvbGQg
aGVhZGluZyB0ZXh0IHdoZW4gdXBkYXRlZCB3aXRoIGhlYWRpbmcuZmlyc3RDaGlsZC5kYXRhLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NzU0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L2lvcy1zaW11bGF0b3IvaGVhZGluZy10ZXh0LXVwZGF0ZXMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaGVhZGluZy10ZXh0
LXVwZGF0ZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvaGVhZGlu
Zy10ZXh0LXVwZGF0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9oZWFkaW5nLXRleHQtdXBkYXRlcy5odG1sOiBBZGRlZC4KKwogMjAyMS0wNi0wNyAg
SW1hbm9sIEZlcm5hbmRleiAgPGlmZXJuYW5kZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBVc2Ug
M0QgcG9pbnRzIHRvIG1hcCB0aGUgV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UgYm91bmRzIHRy
YW5zZm9ybQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxh
dG9yL2hlYWRpbmctdGV4dC11cGRhdGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvaW9zLXNpbXVsYXRvci9oZWFkaW5nLXRleHQtdXBkYXRlcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzgxM2ZmYTZjOWFiMjFlMzAxOTg5NmY4YmU5MDFkY2UwMmM3YTMxNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9o
ZWFkaW5nLXRleHQtdXBkYXRlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3NSBAQAorVGhpcyB0
ZXN0cyB0aGF0IGNoYW5naW5nIHRoZSB0ZXh0IGluIGhlYWRpbmdzIGJ5IGZvdXIgZGlmZmVyZW50
IERPTSBtZXRob2RzLCByZXN1bHRzIG9uIHRoZSBjb3JyZXNwb25kaW5nIHRleHQgYmVpbmcgcmV0
cmlldmVkIHZpYSB0aGUgYWNjZXNzaWJpbGl0eSBwcm9wZXJ0eS4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK2gxCitBWFZhbHVlOiAxCitBWExhYmVsOiBvcmlnaW5hbCB0ZXh0Cito
MgorQVhWYWx1ZTogMgorQVhMYWJlbDogb3JpZ2luYWwgdGV4dAoraDMKK0FYVmFsdWU6IDMKK0FY
TGFiZWw6IG9yaWdpbmFsIHRleHQKK2RpdmhlYWRpbmcKK0FYVmFsdWU6IDIKK0FYTGFiZWw6IG9y
aWdpbmFsIHRleHQKK2gxCitBWFZhbHVlOiAxCitBWExhYmVsOiBpbm5lckhUTUwKK2gyCitBWFZh
bHVlOiAyCitBWExhYmVsOiBpbm5lckhUTUwKK2gzCitBWFZhbHVlOiAzCitBWExhYmVsOiBpbm5l
ckhUTUwKK2RpdmhlYWRpbmcKK0FYVmFsdWU6IDIKK0FYTGFiZWw6IGlubmVySFRNTAoraDEKK0FY
VmFsdWU6IDEKK0FYTGFiZWw6IGlubmVyVGV4dAoraDIKK0FYVmFsdWU6IDIKK0FYTGFiZWw6IGlu
bmVyVGV4dAoraDMKK0FYVmFsdWU6IDMKK0FYTGFiZWw6IGlubmVyVGV4dAorZGl2aGVhZGluZwor
QVhWYWx1ZTogMgorQVhMYWJlbDogaW5uZXJUZXh0CitoMQorQVhWYWx1ZTogMQorQVhMYWJlbDog
dGV4dENvbnRlbnQKK2gyCitBWFZhbHVlOiAyCitBWExhYmVsOiB0ZXh0Q29udGVudAoraDMKK0FY
VmFsdWU6IDMKK0FYTGFiZWw6IHRleHRDb250ZW50CitkaXZoZWFkaW5nCitBWFZhbHVlOiAyCitB
WExhYmVsOiB0ZXh0Q29udGVudAoraDEKK0FYVmFsdWU6IDEKK0FYTGFiZWw6IGZpcnN0Q2hpbGQu
ZGF0YQoraDIKK0FYVmFsdWU6IDIKK0FYTGFiZWw6IGZpcnN0Q2hpbGQuZGF0YQoraDMKK0FYVmFs
dWU6IDMKK0FYTGFiZWw6IGZpcnN0Q2hpbGQuZGF0YQorZGl2aGVhZGluZworQVhWYWx1ZTogMgor
QVhMYWJlbDogZmlyc3RDaGlsZC5kYXRhCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKK2ZpcnN0Q2hpbGQuZGF0YQorCitmaXJzdENoaWxkLmRhdGEKKwor
Zmlyc3RDaGlsZC5kYXRhCisKK2ZpcnN0Q2hpbGQuZGF0YQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2hlYWRpbmctdGV4dC11cGRhdGVzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaGVhZGluZy10ZXh0LXVw
ZGF0ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MWU2NTIzNjc0YTZjYjM3NWZkYjc2NTk5YjkwYzNmYjc3
NGQxMDRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mt
c2ltdWxhdG9yL2hlYWRpbmctdGV4dC11cGRhdGVzLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8aDEgY2xhc3M9Im91
dHB1dCIgaWQ9ImgxIj5vcmlnaW5hbCB0ZXh0PC9oMT4KKzxoMiBjbGFzcz0ib3V0cHV0IiBpZD0i
aDIiPm9yaWdpbmFsIHRleHQ8L2gyPgorPGgzIGNsYXNzPSJvdXRwdXQiIGlkPSJoMyI+b3JpZ2lu
YWwgdGV4dDwvaDM+Cis8ZGl2IHJvbGU9ImhlYWRpbmciIGNsYXNzPSJvdXRwdXQiIGlkPSJkaXZo
ZWFkaW5nIj5vcmlnaW5hbCB0ZXh0PC9kaXY+CisKKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24o
IlRoaXMgdGVzdHMgdGhhdCBjaGFuZ2luZyB0aGUgdGV4dCBpbiBoZWFkaW5ncyBieSBmb3VyIGRp
ZmZlcmVudCBET00gbWV0aG9kcywgcmVzdWx0cyBvbiB0aGUgY29ycmVzcG9uZGluZyB0ZXh0IGJl
aW5nIHJldHJpZXZlZCB2aWEgdGhlIGFjY2Vzc2liaWxpdHkgcHJvcGVydHkuIik7CisKKyAgICB2
YXIgaWRzID0gWyAiaDEiLCAiaDIiLCAiaDMiLCAiZGl2aGVhZGluZyIgXTsKKworICAgIGZ1bmN0
aW9uIHNldFZhbHVlKHZhbHVlKSB7CisgICAgICAgIFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCcub3V0cHV0JyldLmZvckVhY2goKG5vZGUpID0+IHsKKyAgICAgICAgICAgIG5vZGVbdmFs
dWVdID0gYCR7dmFsdWV9YDsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0
Rmlyc3RDaGlsZERhdGEodmFsdWUpIHsKKyAgICAgICAgWy4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoJy5vdXRwdXQnKV0uZm9yRWFjaCgobm9kZSkgPT4geworICAgICAgICAgICAgbm9kZS5m
aXJzdENoaWxkLmRhdGEgPSBgJHt2YWx1ZX1gOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBjaGVja0FYTGFiZWxzKCkgeworICAgICAgICBpZHMuZm9yRWFjaCgoaWQpID0+IHsK
KyAgICAgICAgICAgIGRlYnVnKGlkKTsKKyAgICAgICAgICAgIGF4RWxlbWVudCA9IGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZChpZCk7CisgICAgICAgICAgICBk
ZWJ1ZyhheEVsZW1lbnQuY2hpbGRBdEluZGV4KDApLnN0cmluZ1ZhbHVlKTsKKyAgICAgICAgICAg
IGRlYnVnKGF4RWxlbWVudC5jaGlsZEF0SW5kZXgoMCkuZGVzY3JpcHRpb24pOworICAgICAgICB9
KTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Cisg
ICAgICAgIC8vIExvZyBvcmlnaW5hbCB0ZXh0LgorICAgICAgICBjaGVja0FYTGFiZWxzKCk7CisK
KyAgICAgICAgc2V0VmFsdWUoImlubmVySFRNTCIpOworICAgICAgICBjaGVja0FYTGFiZWxzKCk7
CisKKyAgICAgICAgc2V0VmFsdWUoImlubmVyVGV4dCIpOworICAgICAgICBjaGVja0FYTGFiZWxz
KCk7CisKKyAgICAgICAgc2V0VmFsdWUoInRleHRDb250ZW50Iik7CisgICAgICAgIGNoZWNrQVhM
YWJlbHMoKTsKKworICAgICAgICBzZXRGaXJzdENoaWxkRGF0YSgiZmlyc3RDaGlsZC5kYXRhIik7
CisgICAgICAgIGNoZWNrQVhMYWJlbHMoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2hlYWRpbmct
dGV4dC11cGRhdGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L2hlYWRpbmctdGV4dC11cGRhdGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmZjNTY0MDRl
YTlkMThmYjcyNTdiOTQ2OTdlYTlmNTYxODYwNGQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvaGVhZGluZy10ZXh0LXVwZGF0ZXMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNzUgQEAKK1RoaXMgdGVzdHMgdGhhdCBjaGFuZ2luZyB0aGUgdGV4dCBpbiBo
ZWFkaW5ncyBieSBmb3VyIGRpZmZlcmVudCBET00gbWV0aG9kcywgcmVzdWx0cyBvbiB0aGUgY29y
cmVzcG9uZGluZyB0ZXh0IGJlaW5nIHJldHJpZXZlZCB2aWEgdGhlIGFjY2Vzc2liaWxpdHkgcHJv
cGVydHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitoMQorQVhWYWx1ZTogMQor
QVhWYWx1ZTogb3JpZ2luYWwgdGV4dAoraDIKK0FYVmFsdWU6IDIKK0FYVmFsdWU6IG9yaWdpbmFs
IHRleHQKK2gzCitBWFZhbHVlOiAzCitBWFZhbHVlOiBvcmlnaW5hbCB0ZXh0CitkaXZoZWFkaW5n
CitBWFZhbHVlOiAyCitBWFZhbHVlOiBvcmlnaW5hbCB0ZXh0CitoMQorQVhWYWx1ZTogMQorQVhW
YWx1ZTogaW5uZXJIVE1MCitoMgorQVhWYWx1ZTogMgorQVhWYWx1ZTogaW5uZXJIVE1MCitoMwor
QVhWYWx1ZTogMworQVhWYWx1ZTogaW5uZXJIVE1MCitkaXZoZWFkaW5nCitBWFZhbHVlOiAyCitB
WFZhbHVlOiBpbm5lckhUTUwKK2gxCitBWFZhbHVlOiAxCitBWFZhbHVlOiBpbm5lclRleHQKK2gy
CitBWFZhbHVlOiAyCitBWFZhbHVlOiBpbm5lclRleHQKK2gzCitBWFZhbHVlOiAzCitBWFZhbHVl
OiBpbm5lclRleHQKK2RpdmhlYWRpbmcKK0FYVmFsdWU6IDIKK0FYVmFsdWU6IGlubmVyVGV4dAor
aDEKK0FYVmFsdWU6IDEKK0FYVmFsdWU6IHRleHRDb250ZW50CitoMgorQVhWYWx1ZTogMgorQVhW
YWx1ZTogdGV4dENvbnRlbnQKK2gzCitBWFZhbHVlOiAzCitBWFZhbHVlOiB0ZXh0Q29udGVudAor
ZGl2aGVhZGluZworQVhWYWx1ZTogMgorQVhWYWx1ZTogdGV4dENvbnRlbnQKK2gxCitBWFZhbHVl
OiAxCitBWFZhbHVlOiBmaXJzdENoaWxkLmRhdGEKK2gyCitBWFZhbHVlOiAyCitBWFZhbHVlOiBm
aXJzdENoaWxkLmRhdGEKK2gzCitBWFZhbHVlOiAzCitBWFZhbHVlOiBmaXJzdENoaWxkLmRhdGEK
K2RpdmhlYWRpbmcKK0FYVmFsdWU6IDIKK0FYVmFsdWU6IGZpcnN0Q2hpbGQuZGF0YQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitmaXJzdENoaWxkLmRh
dGEKKworZmlyc3RDaGlsZC5kYXRhCisKK2ZpcnN0Q2hpbGQuZGF0YQorCitmaXJzdENoaWxkLmRh
dGEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2hlYWRpbmctdGV4
dC11cGRhdGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9oZWFkaW5nLXRl
eHQtdXBkYXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyYmU0N2JjNjFlYTVkZjg1YWE2NzRhNjUzZjRj
MDhmZWI5MTY5MDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L21hYy9oZWFkaW5nLXRleHQtdXBkYXRlcy5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGgxIGNsYXNzPSJvdXRwdXQi
IGlkPSJoMSI+b3JpZ2luYWwgdGV4dDwvaDE+Cis8aDIgY2xhc3M9Im91dHB1dCIgaWQ9ImgyIj5v
cmlnaW5hbCB0ZXh0PC9oMj4KKzxoMyBjbGFzcz0ib3V0cHV0IiBpZD0iaDMiPm9yaWdpbmFsIHRl
eHQ8L2gzPgorPGRpdiByb2xlPSJoZWFkaW5nIiBjbGFzcz0ib3V0cHV0IiBpZD0iZGl2aGVhZGlu
ZyI+b3JpZ2luYWwgdGV4dDwvZGl2PgorCis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUaGlz
IHRlc3RzIHRoYXQgY2hhbmdpbmcgdGhlIHRleHQgaW4gaGVhZGluZ3MgYnkgZm91ciBkaWZmZXJl
bnQgRE9NIG1ldGhvZHMsIHJlc3VsdHMgb24gdGhlIGNvcnJlc3BvbmRpbmcgdGV4dCBiZWluZyBy
ZXRyaWV2ZWQgdmlhIHRoZSBhY2Nlc3NpYmlsaXR5IHByb3BlcnR5LiIpOworCisgICAgdmFyIGlk
cyA9IFsgImgxIiwgImgyIiwgImgzIiwgImRpdmhlYWRpbmciIF07CisKKyAgICBmdW5jdGlvbiBz
ZXRWYWx1ZSh2YWx1ZSkgeworICAgICAgICBbLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgn
Lm91dHB1dCcpXS5mb3JFYWNoKChub2RlKSA9PiB7CisgICAgICAgICAgICBub2RlW3ZhbHVlXSA9
IGAke3ZhbHVlfWA7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNldEZpcnN0
Q2hpbGREYXRhKHZhbHVlKSB7CisgICAgICAgIFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCcub3V0cHV0JyldLmZvckVhY2goKG5vZGUpID0+IHsKKyAgICAgICAgICAgIG5vZGUuZmlyc3RD
aGlsZC5kYXRhID0gYCR7dmFsdWV9YDsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gY2hlY2tBWExhYmVscygpIHsKKyAgICAgICAgaWRzLmZvckVhY2goKGlkKSA9PiB7CisgICAg
ICAgICAgICBkZWJ1ZyhpZCk7CisgICAgICAgICAgICBheEVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoaWQpOworICAgICAgICAgICAgZGVidWco
YXhFbGVtZW50LnN0cmluZ1ZhbHVlKTsKKyAgICAgICAgICAgIGRlYnVnKGF4RWxlbWVudC5jaGls
ZEF0SW5kZXgoMCkuc3RyaW5nVmFsdWUpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBpZiAo
d2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIC8vIExvZyBvcmlnaW5h
bCB0ZXh0LgorICAgICAgICBjaGVja0FYTGFiZWxzKCk7CisKKyAgICAgICAgc2V0VmFsdWUoImlu
bmVySFRNTCIpOworICAgICAgICBjaGVja0FYTGFiZWxzKCk7CisKKyAgICAgICAgc2V0VmFsdWUo
ImlubmVyVGV4dCIpOworICAgICAgICBjaGVja0FYTGFiZWxzKCk7CisKKyAgICAgICAgc2V0VmFs
dWUoInRleHRDb250ZW50Iik7CisgICAgICAgIGNoZWNrQVhMYWJlbHMoKTsKKworICAgICAgICBz
ZXRGaXJzdENoaWxkRGF0YSgiZmlyc3RDaGlsZC5kYXRhIik7CisgICAgICAgIGNoZWNrQVhMYWJl
bHMoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>