<?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>218286</bug_id>
          
          <creation_ts>2020-10-28 09:04:08 -0700</creation_ts>
          <short_desc>AudioBuffer channels should be neuterable / detachable</short_desc>
          <delta_ts>2020-10-28 10:41:22 -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>Web Audio</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>218265</dependson>
          <blocked>212611</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1702325</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-28 09:04:08 -0700</bug_when>
    <thetext>AudioBuffer channels should be neuterable / detachable:
- https://webaudio.github.io/web-audio-api/#acquire-the-content</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702330</commentid>
    <comment_count>1</comment_count>
      <attachid>412532</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-28 09:14:35 -0700</bug_when>
    <thetext>Created attachment 412532
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702335</commentid>
    <comment_count>2</comment_count>
      <attachid>412532</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-10-28 09:21:11 -0700</bug_when>
    <thetext>Comment on attachment 412532
Patch

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

&gt; Source/WebCore/ChangeLog:16
&gt; +        specification and Firefox (Blinks seems to crash).

s/Blinks/Blink/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702343</commentid>
    <comment_count>3</comment_count>
      <attachid>412537</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-28 09:39:57 -0700</bug_when>
    <thetext>Created attachment 412537
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702369</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-28 10:40:09 -0700</bug_when>
    <thetext>Committed r269108: &lt;https://trac.webkit.org/changeset/269108&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412537.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702372</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-28 10:41:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/70770356&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412532</attachid>
            <date>2020-10-28 09:14:35 -0700</date>
            <delta_ts>2020-10-28 09:39:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218286-20201028091435.patch</filename>
            <type>text/plain</type>
            <size>24304</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTg4MWQ5MjFlYWRhNDgw
NjJkM2FlZmUxOTgwZjQ4OGUyMGFlM2ZiNC4uZWFkY2M4ZjZhY2YwMmMyNDgwODg2MWVhMWU5NWQz
NjJlMzdiNTFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIwLTEwLTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXVkaW9CdWZmZXIgY2hhbm5l
bHMgc2hvdWxkIGJlIG5ldXRlcmFibGUgLyBkZXRhY2hhYmxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyODYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdWRpb0J1ZmZlciBjaGFubmVscyBzaG91bGQg
YmUgbmV1dGVyYWJsZSAvIGRldGFjaGFibGU6CisgICAgICAgIC0gaHR0cHM6Ly93ZWJhdWRpby5n
aXRodWIuaW8vd2ViLWF1ZGlvLWFwaS8jYWNxdWlyZS10aGUtY29udGVudAorCisgICAgICAgIFdo
ZW4gdGhlIG9uZSBvZiB0aGUgY2hhbm5lbHMnIGJ1ZmZlcnMgZ2V0cyBkZXRhY2hlZC9uZXV0ZXJl
ZCwgdGhlIGFycmF5IHJldHVybmVkIGJ5CisgICAgICAgIGdldENoYW5uZWxEYXRhKDApIGlzIG5l
dXRlcmVkIGFuZCB0aHVzIGhhcyB6ZXJvIGxlbmd0aC4gSW50ZXJuYWxseSB0aG91Z2gsIGlmCisg
ICAgICAgIGNoYW5uZWxEYXRhKCkgZ2V0cyBjYWxsZWQgYW5kIEFOWSBvZiB0aGUgY2hhbm5lbHMn
IGJ1ZmZlcnMgYXJlIGRldGFjaGVkLCB3ZSByZXR1cm4KKyAgICAgICAgYSBuZXcgZW1wdHkgYXJy
YXksIGFzIHBlciB0aGUgc3BlY2lmaWNhdGlvbi4gVGhpcyBtYWtlcyBzdXJlIHdlIGVuZCB1cCB3
aXRoIHNpbGVuY2UKKyAgICAgICAgb24gYWxsIGNoYW5uZWxzIHdoZW4gYW55IG9mIHRoZSBjaGFu
bmVscyBnZXRzIGRldGFjaGVkLCB3aGljaCBpcyBjb25zaXN0ZW50IHdpdGggdGhlCisgICAgICAg
IHNwZWNpZmljYXRpb24gYW5kIEZpcmVmb3ggKEJsaW5rcyBzZWVtcyB0byBjcmFzaCkuCisKKyAg
ICAgICAgVG8gbWFrZSB0aGUgQXVkaW9CdWZmZXIgQVBJIGxlc3MgZXJyb3ItcHJvbmUgd2hlbiB1
c2VkIG5hdGl2ZWx5LCBJIHVwZGF0ZWQgbGVuZ3RoKCkKKyAgICAgICAgYW5kIGR1cmF0aW9uKCkg
dG8gcmV0dXJuIDAgd2hlbmV2ZXIgYW55IG9mIHRoZSBjaGFubmVscyBpcyBkZXRhY2hlZC4gVGhp
cyBpcyBzYWZlcgorICAgICAgICBzaW5jZSBjaGFubmVsRGF0YSgpIHJldHVybnMgMC1sZW5ndGgg
YXJyYXlzIGluIHRoaXMgY2FzZS4gVGhlIFdlYiBBUEkga2VlcHMgcmV0dXJuaW5nCisgICAgICAg
IHRoZSBvcmlnaW5hbCB2YWx1ZXMgdGhvdWdoIHNvIHRoZXkgcmVseSBvbiBuZXcgb3JpZ2luYWxM
ZW5ndGgoKSAvIG9yaWdpbmFsRHVyYXRpb24oKQorICAgICAgICBnZXR0ZXJzLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cywgcmViYXNlbGluZWQgLyB1cGRhdGVkIGV4aXN0aW5nIHRlc3RzLgorCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb0J1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVy
OjpBdWRpb0J1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlcjo6aW52YWxpZGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlcjo6Y2hhbm5lbERhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9CdWZmZXI6Onplcm8pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9C
dWZmZXI6Omhhc0RldGFjaGVkQ2hhbm5lbEJ1ZmZlciBjb25zdCk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0J1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXI6
Om9yaWdpbmFsTGVuZ3RoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyOjpv
cmlnaW5hbER1cmF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyOjps
ZW5ndGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXI6OmR1cmF0aW9uIGNv
bnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udm9sdmVyTm9kZTo6c2V0QnVmZmVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vz
c29yTm9kZTo6aW5pdGlhbGl6ZSk6CisKIDIwMjAtMTAtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBBdWRpb0J1ZmZlci5nZXRDaGFubmVsRGF0YSh4KSBzaG91
bGQga2VlcCByZXR1cm5pbmcgdGhlIHNhbWUgSlMgd3JhcHBlciBmb3IgYSBnaXZlbiBjaGFubmVs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuY3BwCmlu
ZGV4IDc5M2ZmOTU3ZDA4ODUzNDNkMmJhZDcyYjFhZTAwMDRmZDkwNjZlZjMuLmQ2NDQwZTJmNTVk
OWQ2NjA4NjMwMGZlNjUxOWM4MzIwNDIwNGZlYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1SZWZQdHI8QXVkaW9CdWZmZXI+IEF1ZGlvQnVmZmVyOjpjcmVh
dGUodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9h
dCBzYW1wbGVSYXRlKQorUmVmUHRyPEF1ZGlvQnVmZmVyPiBBdWRpb0J1ZmZlcjo6Y3JlYXRlKHVu
c2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2Ft
cGxlUmF0ZSwgTGVnYWN5UHJldmVudE5ldXRlcmluZyBwcmV2ZW50TmV1dGVyaW5nKQogewogICAg
IGlmICghQmFzZUF1ZGlvQ29udGV4dDo6aXNTdXBwb3J0ZWRTYW1wbGVSYXRlKHNhbXBsZVJhdGUp
IHx8ICFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5lbHMgPiBBdWRpb0NvbnRleHQ6
Om1heE51bWJlck9mQ2hhbm5lbHMoKSB8fCAhbnVtYmVyT2ZGcmFtZXMpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCi0gICAgYXV0byBidWZmZXIgPSBhZG9wdFJlZigqbmV3IEF1ZGlvQnVmZmVy
KG51bWJlck9mQ2hhbm5lbHMsIG51bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKSk7Ci0gICAgaWYg
KCFidWZmZXItPm1fbGVuZ3RoKQorICAgIGF1dG8gYnVmZmVyID0gYWRvcHRSZWYoKm5ldyBBdWRp
b0J1ZmZlcihudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSwgcHJl
dmVudE5ldXRlcmluZykpOworICAgIGlmICghYnVmZmVyLT5vcmlnaW5hbExlbmd0aCgpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVybiBidWZmZXI7CkBAIC02Nyw3ICs2Nyw3
IEBAIEV4Y2VwdGlvbk9yPFJlZjxBdWRpb0J1ZmZlcj4+IEF1ZGlvQnVmZmVyOjpjcmVhdGUoY29u
c3QgQXVkaW9CdWZmZXJPcHRpb25zJiBvcHRpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBO
b3RTdXBwb3J0ZWRFcnJvciwgIlNhbXBsZSByYXRlIGlzIG5vdCBpbiB0aGUgc3VwcG9ydGVkIHJh
bmdlLiJfcyB9OwogICAgIAogICAgIGF1dG8gYnVmZmVyID0gYWRvcHRSZWYoKm5ldyBBdWRpb0J1
ZmZlcihvcHRpb25zLm51bWJlck9mQ2hhbm5lbHMsIG9wdGlvbnMubGVuZ3RoLCBvcHRpb25zLnNh
bXBsZVJhdGUpKTsKLSAgICBpZiAoIWJ1ZmZlci0+bGVuZ3RoKCkpCisgICAgaWYgKCFidWZmZXIt
Pm9yaWdpbmFsTGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0
ZWRFcnJvciwgIkNoYW5uZWwgd2FzIG5vdCBhYmxlIHRvIGJlIGNyZWF0ZWQuIl9zIH07CiAgICAg
CiAgICAgcmV0dXJuIGJ1ZmZlcjsKQEAgLTgxLDIwICs4MSwyMiBAQCBSZWZQdHI8QXVkaW9CdWZm
ZXI+IEF1ZGlvQnVmZmVyOjpjcmVhdGVGcm9tQXVkaW9GaWxlRGF0YShjb25zdCB2b2lkKiBkYXRh
LCBzaXplXwogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvQnVmZmVyKCpidXMpKTsKIH0K
IAotQXVkaW9CdWZmZXI6OkF1ZGlvQnVmZmVyKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNp
emVfdCBsZW5ndGgsIGZsb2F0IHNhbXBsZVJhdGUpCitBdWRpb0J1ZmZlcjo6QXVkaW9CdWZmZXIo
dW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgZmxvYXQgc2FtcGxlUmF0
ZSwgTGVnYWN5UHJldmVudE5ldXRlcmluZyBwcmV2ZW50TmV1dGVyaW5nKQogICAgIDogbV9zYW1w
bGVSYXRlKHNhbXBsZVJhdGUpCi0gICAgLCBtX2xlbmd0aChsZW5ndGgpCisgICAgLCBtX29yaWdp
bmFsTGVuZ3RoKGxlbmd0aCkKIHsKICAgICBtX2NoYW5uZWxzLnJlc2VydmVDYXBhY2l0eShudW1i
ZXJPZkNoYW5uZWxzKTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZkNo
YW5uZWxzOyArK2kpIHsKLSAgICAgICAgYXV0byBjaGFubmVsRGF0YUFycmF5ID0gRmxvYXQzMkFy
cmF5Ojp0cnlDcmVhdGUobV9sZW5ndGgpOworICAgICAgICBhdXRvIGNoYW5uZWxEYXRhQXJyYXkg
PSBGbG9hdDMyQXJyYXk6OnRyeUNyZWF0ZShtX29yaWdpbmFsTGVuZ3RoKTsKICAgICAgICAgaWYg
KCFjaGFubmVsRGF0YUFycmF5KSB7CiAgICAgICAgICAgICBpbnZhbGlkYXRlKCk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIGNoYW5uZWxEYXRhQXJyYXktPnNldE5l
dXRlcmFibGUoZmFsc2UpOworICAgICAgICBpZiAocHJldmVudE5ldXRlcmluZyA9PSBMZWdhY3lQ
cmV2ZW50TmV1dGVyaW5nOjpZZXMpCisgICAgICAgICAgICBjaGFubmVsRGF0YUFycmF5LT5zZXRO
ZXV0ZXJhYmxlKGZhbHNlKTsKKwogICAgICAgICBtX2NoYW5uZWxzLmFwcGVuZChXVEZNb3ZlKGNo
YW5uZWxEYXRhQXJyYXkpKTsKICAgICB9CiAgICAgbV9jaGFubmVsV3JhcHBlcnMucmVzaXplKG1f
Y2hhbm5lbHMuc2l6ZSgpKTsKQEAgLTEwMiwyMCArMTA0LDE5IEBAIEF1ZGlvQnVmZmVyOjpBdWRp
b0J1ZmZlcih1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbGVuZ3RoLCBmbG9hdCBz
YW1wbGVSCiAKIEF1ZGlvQnVmZmVyOjpBdWRpb0J1ZmZlcihBdWRpb0J1cyYgYnVzKQogICAgIDog
bV9zYW1wbGVSYXRlKGJ1cy5zYW1wbGVSYXRlKCkpCi0gICAgLCBtX2xlbmd0aChidXMubGVuZ3Ro
KCkpCisgICAgLCBtX29yaWdpbmFsTGVuZ3RoKGJ1cy5sZW5ndGgoKSkKIHsKICAgICAvLyBDb3B5
IGF1ZGlvIGRhdGEgZnJvbSB0aGUgYnVzIHRvIHRoZSBGbG9hdDMyQXJyYXlzIHdlIG1hbmFnZS4K
ICAgICB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzID0gYnVzLm51bWJlck9mQ2hhbm5lbHMoKTsK
ICAgICBtX2NoYW5uZWxzLnJlc2VydmVDYXBhY2l0eShudW1iZXJPZkNoYW5uZWxzKTsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZDaGFubmVsczsgKytpKSB7Ci0gICAgICAg
IGF1dG8gY2hhbm5lbERhdGFBcnJheSA9IEZsb2F0MzJBcnJheTo6dHJ5Q3JlYXRlKG1fbGVuZ3Ro
KTsKKyAgICAgICAgYXV0byBjaGFubmVsRGF0YUFycmF5ID0gRmxvYXQzMkFycmF5Ojp0cnlDcmVh
dGUobV9vcmlnaW5hbExlbmd0aCk7CiAgICAgICAgIGlmICghY2hhbm5lbERhdGFBcnJheSkgewog
ICAgICAgICAgICAgaW52YWxpZGF0ZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
IAotICAgICAgICBjaGFubmVsRGF0YUFycmF5LT5zZXROZXV0ZXJhYmxlKGZhbHNlKTsKLSAgICAg
ICAgY2hhbm5lbERhdGFBcnJheS0+c2V0UmFuZ2UoYnVzLmNoYW5uZWwoaSktPmRhdGEoKSwgbV9s
ZW5ndGgsIDApOworICAgICAgICBjaGFubmVsRGF0YUFycmF5LT5zZXRSYW5nZShidXMuY2hhbm5l
bChpKS0+ZGF0YSgpLCBtX29yaWdpbmFsTGVuZ3RoLCAwKTsKICAgICAgICAgbV9jaGFubmVscy5h
cHBlbmQoV1RGTW92ZShjaGFubmVsRGF0YUFycmF5KSk7CiAgICAgfQogICAgIG1fY2hhbm5lbFdy
YXBwZXJzLnJlc2l6ZShtX2NoYW5uZWxzLnNpemUoKSk7CkBAIC0xMjQsNyArMTI1LDcgQEAgQXVk
aW9CdWZmZXI6OkF1ZGlvQnVmZmVyKEF1ZGlvQnVzJiBidXMpCiB2b2lkIEF1ZGlvQnVmZmVyOjpp
bnZhbGlkYXRlKCkKIHsKICAgICByZWxlYXNlTWVtb3J5KCk7Ci0gICAgbV9sZW5ndGggPSAwOwor
ICAgIG1fb3JpZ2luYWxMZW5ndGggPSAwOwogfQogCiB2b2lkIEF1ZGlvQnVmZmVyOjpyZWxlYXNl
TWVtb3J5KCkKQEAgLTE1OSwxMSArMTYwLDEzIEBAIHZvaWQgQXVkaW9CdWZmZXI6OnZpc2l0Q2hh
bm5lbFdyYXBwZXJzKEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgICAgIGNoYW5uZWxX
cmFwcGVyLnZpc2l0KHZpc2l0b3IpOwogfQogCi1GbG9hdDMyQXJyYXkqIEF1ZGlvQnVmZmVyOjpj
aGFubmVsRGF0YSh1bnNpZ25lZCBjaGFubmVsSW5kZXgpCitSZWZQdHI8RmxvYXQzMkFycmF5PiBB
dWRpb0J1ZmZlcjo6Y2hhbm5lbERhdGEodW5zaWduZWQgY2hhbm5lbEluZGV4KQogewogICAgIGlm
IChjaGFubmVsSW5kZXggPj0gbV9jaGFubmVscy5zaXplKCkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIHJldHVybiBtX2NoYW5uZWxzW2NoYW5uZWxJbmRleF0uZ2V0KCk7CisgICAgaWYg
KGhhc0RldGFjaGVkQ2hhbm5lbEJ1ZmZlcigpKQorICAgICAgICByZXR1cm4gRmxvYXQzMkFycmF5
OjpjcmVhdGUoMCk7CisgICAgcmV0dXJuIG1fY2hhbm5lbHNbY2hhbm5lbEluZGV4XS5jb3B5UmVm
KCk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvQnVmZmVyOjpjb3B5RnJvbUNoYW5uZWwo
UmVmPEZsb2F0MzJBcnJheT4mJiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgY2hhbm5lbE51bWJlciwg
dW5zaWduZWQgYnVmZmVyT2Zmc2V0KQpAQCAtMjI1LDcgKzIyOCw3IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IEF1ZGlvQnVmZmVyOjpjb3B5VG9DaGFubmVsKFJlZjxGbG9hdDMyQXJyYXk+JiYgc291cmNl
LCB1bnNpZ25lCiB2b2lkIEF1ZGlvQnVmZmVyOjp6ZXJvKCkKIHsKICAgICBmb3IgKGF1dG8mIGNo
YW5uZWwgOiBtX2NoYW5uZWxzKQotICAgICAgICBjaGFubmVsLT56ZXJvUmFuZ2UoMCwgbGVuZ3Ro
KCkpOworICAgICAgICBjaGFubmVsLT56ZXJvRmlsbCgpOwogfQogCiBzaXplX3QgQXVkaW9CdWZm
ZXI6Om1lbW9yeUNvc3QoKSBjb25zdApAQCAtMjQyLDYgKzI0NSwxNSBAQCBzaXplX3QgQXVkaW9C
dWZmZXI6Om1lbW9yeUNvc3QoKSBjb25zdAogICAgIHJldHVybiBjb3N0OwogfQogCitib29sIEF1
ZGlvQnVmZmVyOjpoYXNEZXRhY2hlZENoYW5uZWxCdWZmZXIoKSBjb25zdAoreworICAgIGZvciAo
YXV0byYgY2hhbm5lbCA6IG1fY2hhbm5lbHMpIHsKKyAgICAgICAgaWYgKGNoYW5uZWwtPmlzTmV1
dGVyZWQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmgK
aW5kZXggMjAyYWU0Y2RkYTI2ZTFhN2QzYzFkYmQzMGUyZDIyMjgxN2FkZDdlYS4uZjU5NjNkMGI3
ZTIzN2VmY2ZlM2IxOTJlYTY0ZDgxZThlNmQ4ZjQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuaApAQCAtNDEsMjMgKzQxLDMwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIEF1ZGlvQnVzOwogCiBjbGFzcyBBdWRpb0J1ZmZlciA6IHB1Ymxp
YyBSZWZDb3VudGVkPEF1ZGlvQnVmZmVyPiB7Ci1wdWJsaWM6ICAgCi0gICAgc3RhdGljIFJlZlB0
cjxBdWRpb0J1ZmZlcj4gY3JlYXRlKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBu
dW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSk7CitwdWJsaWM6CisgICAgZW51bSBjbGFz
cyBMZWdhY3lQcmV2ZW50TmV1dGVyaW5nIDogYm9vbCB7IE5vLCBZZXMgfTsKKyAgICBzdGF0aWMg
UmVmUHRyPEF1ZGlvQnVmZmVyPiBjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6
ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRlLCBMZWdhY3lQcmV2ZW50TmV1dGVy
aW5nID0gTGVnYWN5UHJldmVudE5ldXRlcmluZzo6Tm8pOwogICAgIHN0YXRpYyBFeGNlcHRpb25P
cjxSZWY8QXVkaW9CdWZmZXI+PiBjcmVhdGUoY29uc3QgQXVkaW9CdWZmZXJPcHRpb25zJik7CiAg
ICAgLy8gUmV0dXJucyBudWxscHRyIGlmIGRhdGEgaXMgbm90IGEgdmFsaWQgYXVkaW8gZmlsZS4K
ICAgICBzdGF0aWMgUmVmUHRyPEF1ZGlvQnVmZmVyPiBjcmVhdGVGcm9tQXVkaW9GaWxlRGF0YShj
b25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUsIGJvb2wgbWl4VG9Nb25vLCBmbG9hdCBz
YW1wbGVSYXRlKTsKIAogICAgIC8vIEZvcm1hdAotICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7
IHJldHVybiBtX2xlbmd0aDsgfQotICAgIGRvdWJsZSBkdXJhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IGxlbmd0aCgpIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPihzYW1wbGVSYXRlKCkpOyB9CisgICAgc2l6
ZV90IG9yaWdpbmFsTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW5hbExlbmd0aDsgfQor
ICAgIGRvdWJsZSBvcmlnaW5hbER1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gb3JpZ2luYWxMZW5n
dGgoKSAvIHN0YXRpY19jYXN0PGRvdWJsZT4oc2FtcGxlUmF0ZSgpKTsgfQogICAgIGZsb2F0IHNh
bXBsZVJhdGUoKSBjb25zdCB7IHJldHVybiBtX3NhbXBsZVJhdGU7IH0KIAorICAgIC8vIFRoZSBm
b2xsb3dpbmcgZnVuY3Rpb24gbWF5IHN0YXJ0IHJldHVybmluZyAwIGlmIGFueSBvZiB0aGUgdW5k
ZXJseWluZyBjaGFubmVsIGJ1ZmZlcnMgZ2V0cyBkZXRhY2hlZC4KKyAgICBzaXplX3QgbGVuZ3Ro
KCkgY29uc3QgeyByZXR1cm4gaGFzRGV0YWNoZWRDaGFubmVsQnVmZmVyKCkgPyAwIDogbV9vcmln
aW5hbExlbmd0aDsgfQorICAgIGRvdWJsZSBkdXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGxlbmd0
aCgpIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPihzYW1wbGVSYXRlKCkpOyB9CisKICAgICAvLyBDaGFu
bmVsIGRhdGEgYWNjZXNzCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscygpIGNvbnN0IHsg
cmV0dXJuIG1fY2hhbm5lbHMuc2l6ZSgpOyB9CiAgICAgRXhjZXB0aW9uT3I8SlNDOjpKU1ZhbHVl
PiBnZXRDaGFubmVsRGF0YShKU0RPTUdsb2JhbE9iamVjdCYsIHVuc2lnbmVkIGNoYW5uZWxJbmRl
eCk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gY29weUZyb21DaGFubmVsKFJlZjxGbG9hdDMyQXJy
YXk+JiYsIHVuc2lnbmVkIGNoYW5uZWxOdW1iZXIsIHVuc2lnbmVkIGJ1ZmZlck9mZnNldCk7CiAg
ICAgRXhjZXB0aW9uT3I8dm9pZD4gY29weVRvQ2hhbm5lbChSZWY8RmxvYXQzMkFycmF5PiYmLCB1
bnNpZ25lZCBjaGFubmVsTnVtYmVyLCB1bnNpZ25lZCBzdGFydEluQ2hhbm5lbCk7Ci0gICAgRmxv
YXQzMkFycmF5KiBjaGFubmVsRGF0YSh1bnNpZ25lZCBjaGFubmVsSW5kZXgpOworCisgICAgLy8g
TmF0aXZlIGNoYW5uZWwgZGF0YSBhY2Nlc3MuCisgICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gY2hh
bm5lbERhdGEodW5zaWduZWQgY2hhbm5lbEluZGV4KTsKICAgICB2b2lkIHplcm8oKTsKIAogICAg
IC8vIEJlY2F1c2UgYW4gQXVkaW9CdWZmZXIgaGFzIGEgSmF2YVNjcmlwdCB3cmFwcGVyLCB3aGlj
aCB3aWxsIGJlIGdhcmJhZ2UgY29sbGVjdGVkLCBpdCBtYXkgdGFrZSBhIHdoaWxlIGZvciB0aGlz
IG9iamVjdCB0byBiZSBkZWxldGVkLgpAQCAtNzAsMTQgKzc3LDE2IEBAIHB1YmxpYzoKICAgICB2
b2lkIHZpc2l0Q2hhbm5lbFdyYXBwZXJzKEpTQzo6U2xvdFZpc2l0b3ImKTsKICAgICAKIHByaXZh
dGU6Ci0gICAgQXVkaW9CdWZmZXIodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxl
bmd0aCwgZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAgQXVkaW9CdWZmZXIodW5zaWduZWQgbnVtYmVy
T2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgZmxvYXQgc2FtcGxlUmF0ZSwgTGVnYWN5UHJldmVu
dE5ldXRlcmluZyA9IExlZ2FjeVByZXZlbnROZXV0ZXJpbmc6Ok5vKTsKICAgICBleHBsaWNpdCBB
dWRpb0J1ZmZlcihBdWRpb0J1cyYpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKKyAgICBi
b29sIGhhc0RldGFjaGVkQ2hhbm5lbEJ1ZmZlcigpIGNvbnN0OworCiAgICAgZmxvYXQgbV9zYW1w
bGVSYXRlOwogICAgIG11dGFibGUgTG9jayBtX2NoYW5uZWxzTG9jazsKLSAgICBzaXplX3QgbV9s
ZW5ndGg7CisgICAgc2l6ZV90IG1fb3JpZ2luYWxMZW5ndGg7CiAgICAgVmVjdG9yPFJlZlB0cjxG
bG9hdDMyQXJyYXk+PiBtX2NoYW5uZWxzOwogICAgIFZlY3RvcjxKU1ZhbHVlSW5XcmFwcGVkT2Jq
ZWN0PiBtX2NoYW5uZWxXcmFwcGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXIuaWRsCmluZGV4IDJhNjY1YmY4MGQ3NWJiM2Q0YTY0NmYyMTg4
MTUyNjM3YWIwNWJmNzcuLmNlYWQ0NjVjMDMyYzgzZjMwOWFiNDNhMDE2MGI1ODUwYTdkMTZhZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuaWRs
CkBAIC0zNSw4ICszNSw4IEBACiAgICAgRXhwb3NlZD1XaW5kb3cKIF0gaW50ZXJmYWNlIEF1ZGlv
QnVmZmVyIHsKICAgICBbRW5hYmxlZEJ5U2V0dGluZz1Nb2Rlcm5VbnByZWZpeGVkV2ViQXVkaW9d
IGNvbnN0cnVjdG9yKEF1ZGlvQnVmZmVyT3B0aW9ucyBvcHRpb25zKTsKLSAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7IC8vIGluIHNhbXBsZS1mcmFtZXMKLSAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGR1cmF0aW9uOyAvLyBpbiBzZWNvbmRzCisgICAgW0lt
cGxlbWVudGVkQXM9b3JpZ2luYWxMZW5ndGhdIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGxlbmd0aDsgLy8gaW4gc2FtcGxlLWZyYW1lcworICAgIFtJbXBsZW1lbnRlZEFzPW9yaWdp
bmFsRHVyYXRpb25dIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgZHVyYXRpb247IC8vIGluIHNl
Y29uZHMKICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgc2FtcGxlUmF0ZTsgLy8gaW4gc2Ft
cGxlLWZyYW1lcyBwZXIgc2Vjb25kCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgbnVtYmVyT2ZDaGFubmVsczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQ29udm9sdmVyTm9kZS5jcHAKaW5kZXggOTc0MTlmMzViMGZkNDE1MWQ4ODY4OTdhNDcw
ZDQxNThlOWFjMDM2NC4uZGVkNGZiZTczYjg3Zjg3ZGQ3YTJmODIzMGE3Y2Q4ZTVjOTM5ODdlZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUu
Y3BwCkBAIC0xMzAsOSArMTMwLDYgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ29udm9sdmVyTm9kZTo6
c2V0QnVmZmVyKFJlZlB0cjxBdWRpb0J1ZmZlcj4mJiBidWZmZXIpCiAgICAgaWYgKCFpc0NoYW5u
ZWxDb3VudEdvb2QpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJv
ciwgIkJ1ZmZlciBzaG91bGQgaGF2ZSAxLCAyIG9yIDQgY2hhbm5lbHMiX3MgfTsKIAotICAgIGlm
ICghYnVmZmVyTGVuZ3RoKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVk
RXJyb3IsICJCdWZmZXIgbGVuZ3RoIGNhbm5vdCBiZSAwIl9zIH07Ci0KICAgICAvLyBXcmFwIHRo
ZSBBdWRpb0J1ZmZlciBieSBhbiBBdWRpb0J1cy4gSXQncyBhbiBlZmZpY2llbnQgcG9pbnRlciBz
ZXQgYW5kIG5vdCBhIG1lbWNweSgpLgogICAgIC8vIFRoaXMgbWVtb3J5IGlzIHNpbXBseSB1c2Vk
IGluIHRoZSBSZXZlcmIgY29uc3RydWN0b3IgYW5kIG5vIHJlZmVyZW5jZSB0byBpdCBpcyBrZXB0
IGZvciBsYXRlciB1c2UgaW4gdGhhdCBjbGFzcy4KICAgICBhdXRvIGJ1ZmZlckJ1cyA9IEF1ZGlv
QnVzOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscywgYnVmZmVyTGVuZ3RoLCBmYWxzZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JO
b2RlLmNwcAppbmRleCA0YmNlN2NmOGYwMmYyN2RiNTczYWMzNzBmOGU1Y2RkN2ExOWNjZjRjLi42
ZWI4ODM5MTE4NTM3OWI4NDg1MTM3ZGE3NTgzMGVkMjdjM2E4YzRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAK
QEAgLTkwLDggKzkwLDkgQEAgdm9pZCBTY3JpcHRQcm9jZXNzb3JOb2RlOjppbml0aWFsaXplKCkK
ICAgICAvLyBDcmVhdGUgZG91YmxlIGJ1ZmZlcnMgb24gYm90aCB0aGUgaW5wdXQgYW5kIG91dHB1
dCBzaWRlcy4KICAgICAvLyBUaGVzZSBBdWRpb0J1ZmZlcnMgd2lsbCBiZSBkaXJlY3RseSBhY2Nl
c3NlZCBpbiB0aGUgbWFpbiB0aHJlYWQgYnkgSmF2YVNjcmlwdC4KICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgMjsgKytpKSB7Ci0gICAgICAgIGF1dG8gaW5wdXRCdWZmZXIgPSBtX251bWJl
ck9mSW5wdXRDaGFubmVscyA/IEF1ZGlvQnVmZmVyOjpjcmVhdGUobV9udW1iZXJPZklucHV0Q2hh
bm5lbHMsIGJ1ZmZlclNpemUoKSwgc2FtcGxlUmF0ZSkgOiAwOwotICAgICAgICBhdXRvIG91dHB1
dEJ1ZmZlciA9IG1fbnVtYmVyT2ZPdXRwdXRDaGFubmVscyA/IEF1ZGlvQnVmZmVyOjpjcmVhdGUo
bV9udW1iZXJPZk91dHB1dENoYW5uZWxzLCBidWZmZXJTaXplKCksIHNhbXBsZVJhdGUpIDogMDsK
KyAgICAgICAgLy8gV2UgcHJldmVudCBuZXV0ZXJpbmcgdGhlIEF1ZGlvQnVmZmVycyBoZXJlIHNp
bmNlIHdlIHBhc3MgdGhvc2UgdG8gSlMgYW5kIHJldXNlIHRoZW0uCisgICAgICAgIGF1dG8gaW5w
dXRCdWZmZXIgPSBtX251bWJlck9mSW5wdXRDaGFubmVscyA/IEF1ZGlvQnVmZmVyOjpjcmVhdGUo
bV9udW1iZXJPZklucHV0Q2hhbm5lbHMsIGJ1ZmZlclNpemUoKSwgc2FtcGxlUmF0ZSwgQXVkaW9C
dWZmZXI6OkxlZ2FjeVByZXZlbnROZXV0ZXJpbmc6OlllcykgOiAwOworICAgICAgICBhdXRvIG91
dHB1dEJ1ZmZlciA9IG1fbnVtYmVyT2ZPdXRwdXRDaGFubmVscyA/IEF1ZGlvQnVmZmVyOjpjcmVh
dGUobV9udW1iZXJPZk91dHB1dENoYW5uZWxzLCBidWZmZXJTaXplKCksIHNhbXBsZVJhdGUsIEF1
ZGlvQnVmZmVyOjpMZWdhY3lQcmV2ZW50TmV1dGVyaW5nOjpZZXMpIDogMDsKIAogICAgICAgICBt
X2lucHV0QnVmZmVycy5hcHBlbmQoaW5wdXRCdWZmZXIpOwogICAgICAgICBtX291dHB1dEJ1ZmZl
cnMuYXBwZW5kKG91dHB1dEJ1ZmZlcik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWQ5YTUxMGIzYjIyYTRkZTRkODczMDQw
Njg1ZTdkYWFkYjQzYmUxMi4uYWM2OTU1Y2U1OGY4MmMzYjFkZWFiYmE0MGZlNjg0ZjAzMDJkNTg3
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTEwLTI4ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgQXVkaW9CdWZmZXIgY2hhbm5lbHMgc2hvdWxkIGJlIG5l
dXRlcmFibGUgLyBkZXRhY2hhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTgyODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyLW5ldXRlci1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9idWZmZXItbmV1dGVyLmh0bWw6CisgICAgICAgIEV4
dGVuZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4gSSBoYXZlIHZlcmlmaWVkIHRoYXQgdGhpcyBuZXcg
dmVyc2lvbiBvZiB0aGUgdGVzdCBpcyBmdWxseSBwYXNzaW5nIGluCisgICAgICAgIEdlY2tvLiBJ
biBCbGluaywgdGhlIGluaXRpYWwgY2hlY2tzIGFsbCBwYXNzIGJ1dCBpdCB0aGVuIGNyYXNoZXMg
ZHVyaW5nIHJlbmRlcmluZy4KKworICAgICAgICAqIHdlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby10
ZXN0aW5nLmpzOgorICAgICAgICAoY3JlYXRlQ29uc3RhbnRCdWZmZXIpOgorICAgICAgICBJbXBy
b3ZlIGNyZWF0ZUNvbnN0YW50QnVmZmVyKCkgc28gdGhhdCBpdCBjYW4gY29uc3RydWN0IGJ1ZmZl
cnMgd2l0aCBtdWx0aXBsZSBjaGFubmVscy4KKwogMjAyMC0xMC0yNyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQcm9jZXNzXSBVc2UgYXN5bmMgSVBDIGZv
ciBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcidzIFN0YXJ0QXVkaW9EZXN0aW5hdGlvbiAv
IFN0b3BBdWRpb0Rlc3RpbmF0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBl
YmVlODZhYzQ5OThhYzUwNmQxMjBhNGI0Mzc0YmI0MjBkYjc3YjUyLi42MDE0NjQzZWZkYmQ5YTc0
OWVkZGM2MWEwOWNmYzYzMTEyMGVhZDMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAyMC0xMC0yOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIEF1ZGlvQnVmZmVyIGNoYW5uZWxzIHNob3VsZCBiZSBuZXV0ZXJhYmxl
IC8gZGV0YWNoYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE4Mjg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmViYXNlbGluZSBXUFQgdGVzdCB0aGF0IGlzIG5vdyBwYXNzaW5nLiBUaGlzIHRlc3Qg
aXMgYWxzbyBwYXNzaW5nIGluIEZpcmVmb3guIEl0IGlzIGNyYXNoaW5nIGluIEJsaW5rLgorCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNv
bnZvbHZlcm5vZGUtaW50ZXJmYWNlL3RyYW5zZmVycmVkLWJ1ZmZlci1vdXRwdXQtZXhwZWN0ZWQu
dHh0OgorCiAyMDIwLTEwLTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgQXVkaW9CdWZmZXIuZ2V0Q2hhbm5lbERhdGEoeCkgc2hvdWxkIGtlZXAgcmV0dXJuaW5n
IHRoZSBzYW1lIEpTIHdyYXBwZXIgZm9yIGEgZ2l2ZW4gY2hhbm5lbApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVk
aW8tYXBpL3RoZS1jb252b2x2ZXJub2RlLWludGVyZmFjZS90cmFuc2ZlcnJlZC1idWZmZXItb3V0
cHV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY29udm9sdmVybm9kZS1pbnRlcmZhY2Uv
dHJhbnNmZXJyZWQtYnVmZmVyLW91dHB1dC1leHBlY3RlZC50eHQKaW5kZXggOTY1MmQ4YjhiMWY1
OTRhNjcxMTVhNGUwODMxMWQ1Y2ZhMTViMDcwYi4uYjMyYWZlZDcyZDkwYWFmYWJjMDIyNDY3MzFl
YTlkYzJhOWY0ZGJkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1jb252b2x2ZXJub2RlLWlu
dGVyZmFjZS90cmFuc2ZlcnJlZC1idWZmZXItb3V0cHV0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRp
by1hcGkvdGhlLWNvbnZvbHZlcm5vZGUtaW50ZXJmYWNlL3RyYW5zZmVycmVkLWJ1ZmZlci1vdXRw
dXQtZXhwZWN0ZWQudHh0CkBAIC0zLDIwICszLDggQEAgUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVS
IFNUQVJURUQuCiBQQVNTIEV4ZWN1dGluZyAiVGVzdCBDb252b2x2ZXIgd2l0aCB0cmFuc2ZlcnJl
ZCBidWZmZXIiCiBQQVNTIEF1ZGl0IHJlcG9ydAogUEFTUyA+IFtUZXN0IENvbnZvbHZlciB3aXRo
IHRyYW5zZmVycmVkIGJ1ZmZlcl0gT3V0cHV0IHNob3VsZCBiZSBhbGwgemVyb2VzCi1GQUlMIFgg
Q29udm9sdmVyIGNoYW5uZWwgMCBvdXRwdXRbMDoxMjc5XTogRXhwZWN0ZWQgMCBmb3IgYWxsIHZh
bHVlcyBidXQgZm91bmQgMTI4MCB1bmV4cGVjdGVkIHZhbHVlczoKLQlJbmRleAlBY3R1YWwKLQlb
MF0JMQotCVsxXQkyCi0JWzJdCTMKLQlbM10JNAotCS4uLmFuZCAxMjc2IG1vcmUgZXJyb3JzLiBh
c3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgWCBDb252b2x2ZXIgY2hh
bm5lbCAxIG91dHB1dFswOjEyNzldOiBFeHBlY3RlZCAwIGZvciBhbGwgdmFsdWVzIGJ1dCBmb3Vu
ZCAxMjgwIHVuZXhwZWN0ZWQgdmFsdWVzOgotCUluZGV4CUFjdHVhbAotCVswXQkyCi0JWzFdCTQK
LQlbMl0JNgotCVszXQk4Ci0JLi4uYW5kIDEyNzYgbW9yZSBlcnJvcnMuIGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCA8IFtUZXN0IENvbnZvbHZlciB3aXRoIHRyYW5z
ZmVycmVkIGJ1ZmZlcl0gMiBvdXQgb2YgMiBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3NlcnRf
dHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgIyBBVURJVCBUQVNLIFJVTk5FUiBG
SU5JU0hFRDogMSBvdXQgb2YgMSB0YXNrcyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgQ29udm9sdmVyIGNoYW5uZWwgMCBvdXRwdXRbMDox
Mjc5XSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLgorUEFTUyAgIENvbnZvbHZlciBjaGFu
bmVsIDEgb3V0cHV0WzA6MTI3OV0gY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4KK1BBU1Mg
PCBbVGVzdCBDb252b2x2ZXIgd2l0aCB0cmFuc2ZlcnJlZCBidWZmZXJdIEFsbCBhc3NlcnRpb25z
IHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBG
SU5JU0hFRDogMSB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlci1uZXV0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYXVkaW9idWZmZXItbmV1dGVyLWV4cGVjdGVkLnR4dAppbmRleCA3YWE5OTEw
YTc0OTYzZDc3YzgzMTVlZGRjOGY4NDY2ZWZjNjliNDAxLi4zNmZmOTEyNDUzMGJlODNlMWFjNDcy
NmRlMjNmMmViYTM3NjVlYjRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRp
b2J1ZmZlci1uZXV0ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1
ZGlvYnVmZmVyLW5ldXRlci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwxMSBAQAotVGVzdHMgdGhh
dCBuZXV0ZXJlZCBBdWRpb0J1ZmZlcnMgZG8gbm90IHByb2R1Y2UgZ2FyYmFnZQorVGVzdHMgdGhh
dCBuZXV0ZXJlZCBBdWRpb0J1ZmZlcnMgcHJvZHVjZSBzaWxlbmNlCitQQVNTIHNvdXJjZUJ1ZmZl
ci5sZW5ndGggaXMgbnVtYmVyT2ZGcmFtZXMKK1BBU1Mgc291cmNlQnVmZmVyLmdldENoYW5uZWxE
YXRhKDApLmxlbmd0aCBpcyAwCitQQVNTIHNvdXJjZUJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKSA9
PT0gc291cmNlQnVmZmVyLmdldENoYW5uZWxEYXRhKDApIGlzIHRydWUKK1BBU1Mgc291cmNlQnVm
ZmVyLmdldENoYW5uZWxEYXRhKDApID09PSBvcmlnaW5hbEZpcnN0Q2hhbm5lbCBpcyB0cnVlCitQ
QVNTIHNvdXJjZUJ1ZmZlci5nZXRDaGFubmVsRGF0YSgxKS5sZW5ndGggaXMgbnVtYmVyT2ZGcmFt
ZXMKK1BBU1Mgc291cmNlQnVmZmVyLmdldENoYW5uZWxEYXRhKDEpID09PSBzb3VyY2VCdWZmZXIu
Z2V0Q2hhbm5lbERhdGEoMSkgaXMgdHJ1ZQorUEFTUyBzb3VyY2VCdWZmZXIuZ2V0Q2hhbm5lbERh
dGEoMSkgPT09IG9yaWdpbmFsU2Vjb25kQ2hhbm5lbCBpcyB0cnVlCiBQQVNTIE91dHB1dCBtYXRj
aGVzIGV4cGVjdGF0aW9ucy4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXItbmV1dGVyLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlci1uZXV0ZXIuaHRtbAppbmRleCA4N2JjMDc1
YjcyZDZlNTBjZTFjYTRmZTM4ZjVlNzgxYjEwMzM0Y2RmLi5lODUzOTVjYjFiZDMwZDhkYWJjMWQz
OTUzZTg1Zjk2NWYyY2UxMWZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRp
b2J1ZmZlci1uZXV0ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZl
ci1uZXV0ZXIuaHRtbApAQCAtMTQsOSArMTQsMTEgQEAKICAgICAgICAgewogICAgICAgICAgICAg
anNUZXN0SXNBc3luYyA9IHRydWU7CiAKLSAgICAgICAgICAgIHZhciBudW1iZXJPZkZyYW1lcyA9
IHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHM7Ci0gICAgICAgICAgICBjb250ZXh0ID0gbmV3
IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpOwotICAg
ICAgICAgICAgc291cmNlQnVmZmVyID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgbnVt
YmVyT2ZGcmFtZXMsIDAuNSk7CisgICAgICAgICAgICBudW1iZXJPZkZyYW1lcyA9IHNhbXBsZVJh
dGUgKiBsZW5ndGhJblNlY29uZHM7CisgICAgICAgICAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVB
dWRpb0NvbnRleHQoMiwgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpOworICAgICAgICAgICAg
c291cmNlQnVmZmVyID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgbnVtYmVyT2ZGcmFt
ZXMsIFswLjUsIDAuMjVdKTsKKyAgICAgICAgICAgIG9yaWdpbmFsRmlyc3RDaGFubmVsID0gc291
cmNlQnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworICAgICAgICAgICAgb3JpZ2luYWxTZWNvbmRD
aGFubmVsID0gc291cmNlQnVmZmVyLmdldENoYW5uZWxEYXRhKDEpOwogICAgICAgICAgICAgdmFy
IGRhdGEgPSBzb3VyY2VCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCkuYnVmZmVyOwogCiAgICAgICAg
ICAgICB2YXIgc3RyaW5nID0gWwpAQCAtMzIsNiArMzQsMjcgQEAKICAgICAgICAgICAgIHZhciB3
b3JrZXIgPSBuZXcgV29ya2VyKGJsb2JVUkwpOwogICAgICAgICAgICAgd29ya2VyLm9ubWVzc2Fn
ZSA9IHdvcmtlclJlcGx5OwogICAgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKGRhdGEsIFtk
YXRhXSk7CisKKyAgICAgICAgICAgIC8vIFRoZSBsZW5ndGggb2YgdGhlIEF1ZGlvQnVmZmVyIHNo
b3VsZCBiZSB1bmNoYW5nZWQsIGV2ZW4gaWYgc29tZSBvZiBpdHMgYXVkaW8gY2hhbm5lbHMgYnVm
ZmVycworICAgICAgICAgICAgLy8gaGF2ZSBiZWVuIGRldGFjaGVkLgorICAgICAgICAgICAgc2hv
dWxkQmUoInNvdXJjZUJ1ZmZlci5sZW5ndGgiLCAibnVtYmVyT2ZGcmFtZXMiKTsKKworICAgICAg
ICAgICAgLy8gZ2V0Q2hhbm5lbERhdGEoKSBzaG91bGQgcmV0dXJuIGEgMC1sZW5ndGggYXJyYXkg
aWYgdGhlIGNoYW5uZWwgYnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkLgorICAgICAgICAgICAgc2hv
dWxkQmUoInNvdXJjZUJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKS5sZW5ndGgiLCAiMCIpOworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCJzb3VyY2VCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCkgPT09
IHNvdXJjZUJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKSIpOworICAgICAgICAgICAgc2hvdWxkQmVU
cnVlKCJzb3VyY2VCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCkgPT09IG9yaWdpbmFsRmlyc3RDaGFu
bmVsIik7CisKKyAgICAgICAgICAgIC8vIGdldENoYW5uZWxEYXRhKCkgc2hvdWxkIHJldHVybiBh
Y2N1cmF0ZSBjaGFubmVsIGRhdGEgZm9yIG5vbiBkZXRhY2hlZCBjaGFubmVscy4KKyAgICAgICAg
ICAgIHNob3VsZEJlKCJzb3VyY2VCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMSkubGVuZ3RoIiwgIm51
bWJlck9mRnJhbWVzIik7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoInNvdXJjZUJ1ZmZlci5n
ZXRDaGFubmVsRGF0YSgxKSA9PT0gc291cmNlQnVmZmVyLmdldENoYW5uZWxEYXRhKDEpIik7Cisg
ICAgICAgICAgICBzaG91bGRCZVRydWUoInNvdXJjZUJ1ZmZlci5nZXRDaGFubmVsRGF0YSgxKSA9
PT0gb3JpZ2luYWxTZWNvbmRDaGFubmVsIik7CisgICAgICAgICAgICBzZWNvbmRDaGFubmVsID0g
c291cmNlQnVmZmVyLmdldENoYW5uZWxEYXRhKDEpOworICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBudW1iZXJPZkZyYW1lczsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHNlY29u
ZENoYW5uZWxbaV0gIT0gMC4yNSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJT
ZWNvbmQgY2hhbm5lbCBjb250YWluZWQgdW5leHBlY3RlZCB2YWx1ZTogIiArIHNlY29uZENoYW5u
ZWxbaV0pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiB3b3JrZXJSZXBseShl
dmVudCkgewpAQCAtNDYsMTUgKzY5LDE4IEBACiAgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3Qo
ZXZlbnQpIHsKICAgICAgICAgICAgIHZhciByZW5kZXJlZEJ1ZmZlciA9IGV2ZW50LnJlbmRlcmVk
QnVmZmVyOwogICAgICAgICAgICAgdmFyIG51bWJlck9mRnJhbWVzID0gc2FtcGxlUmF0ZSAqIGxl
bmd0aEluU2Vjb25kczsKLSAgICAgICAgICAgIHZhciBleHBlY3RlZEJ1ZmZlciA9IGNyZWF0ZUNv
bnN0YW50QnVmZmVyKGNvbnRleHQsIG51bWJlck9mRnJhbWVzLCAwLjUpOworICAgICAgICAgICAg
Ly8gV2UgZXhwZWN0IHNpbGVuY2Ugb24gYm90aCBjaGFubmVscy4KKyAgICAgICAgICAgIHZhciBl
eHBlY3RlZEJ1ZmZlciA9IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIG51bWJlck9mRnJh
bWVzLCBbMCwgMF0pOwogCi0gICAgICAgICAgICB2YXIgcmVuZGVyZWREYXRhID0gcmVuZGVyZWRC
dWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7Ci0gICAgICAgICAgICB2YXIgZXhwZWN0ZWREYXRhID0g
ZXhwZWN0ZWRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAgICAgICAgICBmb3IgKGxldCBj
aGFubmVsSW5kZXggPSAwOyBjaGFubmVsSW5kZXggPCAyOyBjaGFubmVsSW5kZXgrKykgeworICAg
ICAgICAgICAgICAgIHZhciByZW5kZXJlZERhdGEgPSByZW5kZXJlZEJ1ZmZlci5nZXRDaGFubmVs
RGF0YShjaGFubmVsSW5kZXgpOworICAgICAgICAgICAgICAgIHZhciBleHBlY3RlZERhdGEgPSBl
eHBlY3RlZEJ1ZmZlci5nZXRDaGFubmVsRGF0YShjaGFubmVsSW5kZXgpOwogCi0gICAgICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IG51bWJlck9mRnJhbWVzOyArK2kpIHsKLSAgICAgICAgICAg
ICAgICBpZiAoZXhwZWN0ZWREYXRhW2ldICE9IHJlbmRlcmVkRGF0YVtpXSkgewotICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCdleHBlY3RlZDogJyArIGV4cGVjdGVkRGF0YVtpXSArICcg
YWN0dWFsOiAnICsgcmVuZGVyZWREYXRhW2ldKTsKLSAgICAgICAgICAgICAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1iZXJPZkZy
YW1lczsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZERhdGFbaV0gIT0g
cmVuZGVyZWREYXRhW2ldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdD
aGFubmVsICcgKyBjaGFubmVsSW5kZXggKyAnIC0gZXhwZWN0ZWQ6ICcgKyBleHBlY3RlZERhdGFb
aV0gKyAnIGFjdHVhbDogJyArIHJlbmRlcmVkRGF0YVtpXSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH0KIApAQCAtNjUsNyArOTEsNyBAQAogICAgIDwvc2NyaXB0Pgog
PC9oZWFkPgogPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgIDxkaXY+VGVzdHMgdGhhdCBu
ZXV0ZXJlZCBBdWRpb0J1ZmZlcnMgZG8gbm90IHByb2R1Y2UgZ2FyYmFnZTwvZGl2PgorICAgIDxk
aXY+VGVzdHMgdGhhdCBuZXV0ZXJlZCBBdWRpb0J1ZmZlcnMgcHJvZHVjZSBzaWxlbmNlPC9kaXY+
CiAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiA8L2JvZHk+CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMKaW5kZXggMjhlZWNiNjBkYzIz
MmQyN2M2NTAyYWE0ZjRkMDI5MGIyMzk5YTc1ZS4uMjRiNjgwZTE0OWY1YTVkODYwYTRmNjk5OTNk
YWJkNDFlMGJiMWNhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2Vz
L2F1ZGlvLXRlc3RpbmcuanMKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1
ZGlvLXRlc3RpbmcuanMKQEAgLTEyOSwxMiArMTI5LDI1IEBAIGZ1bmN0aW9uIGNyZWF0ZUxpbmVh
clJhbXBCdWZmZXIoY29udGV4dCwgc2FtcGxlRnJhbWVMZW5ndGgpIHsKIAogLy8gQ3JlYXRlIGEg
YnVmZmVyIG9mIHRoZSBnaXZlbiBsZW5ndGggaGF2aW5nIGEgY29uc3RhbnQgdmFsdWUuCiBmdW5j
dGlvbiBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCBzYW1wbGVGcmFtZUxlbmd0aCwgY29u
c3RhbnRWYWx1ZSkgewotICAgIHZhciBhdWRpb0J1ZmZlciA9IGNvbnRleHQuY3JlYXRlQnVmZmVy
KDEsIHNhbXBsZUZyYW1lTGVuZ3RoLCBjb250ZXh0LnNhbXBsZVJhdGUpOwotICAgIHZhciBuID0g
YXVkaW9CdWZmZXIubGVuZ3RoOwotICAgIHZhciBkYXRhTCA9IGF1ZGlvQnVmZmVyLmdldENoYW5u
ZWxEYXRhKDApOworICAgIGxldCBjaGFubmVsczsKKyAgICBsZXQgdmFsdWVzOwogCi0gICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBuOyArK2kpCi0gICAgICAgIGRhdGFMW2ldID0gY29uc3RhbnRWYWx1
ZTsKKyAgICBpZiAodHlwZW9mIGNvbnN0YW50VmFsdWUgPT09ICdudW1iZXInKSB7CisgICAgICAg
IGNoYW5uZWxzID0gMTsKKyAgICAgICAgdmFsdWVzID0gW2NvbnN0YW50VmFsdWVdOworICAgIH0g
ZWxzZSB7CisgICAgICAgIGNoYW5uZWxzID0gY29uc3RhbnRWYWx1ZS5sZW5ndGg7CisgICAgICAg
IHZhbHVlcyA9IGNvbnN0YW50VmFsdWU7CisgICAgfQorCisgICAgbGV0IGF1ZGlvQnVmZmVyID0g
Y29udGV4dC5jcmVhdGVCdWZmZXIoY2hhbm5lbHMsIHNhbXBsZUZyYW1lTGVuZ3RoLCBjb250ZXh0
LnNhbXBsZVJhdGUpOworICAgIGxldCBuID0gYXVkaW9CdWZmZXIubGVuZ3RoOworCisgICAgZm9y
IChsZXQgYyA9IDA7IGMgPCBjaGFubmVsczsgKytjKSB7CisgICAgICAgIGxldCBkYXRhID0gYXVk
aW9CdWZmZXIuZ2V0Q2hhbm5lbERhdGEoYyk7CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
bjsgKytpKQorICAgICAgICAgICAgZGF0YVtpXSA9IHZhbHVlc1tjXTsKKyAgICB9CiAKICAgICBy
ZXR1cm4gYXVkaW9CdWZmZXI7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412537</attachid>
            <date>2020-10-28 09:39:57 -0700</date>
            <delta_ts>2020-10-28 10:40:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218286-20201028093957.patch</filename>
            <type>text/plain</type>
            <size>24297</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTg4MWQ5MjFlYWRhNDgw
NjJkM2FlZmUxOTgwZjQ4OGUyMGFlM2ZiNC4uNDhhNTcyMTU0OGVlNmJjNWI0MGFiZDY2N2NmNzgw
OWFjY2NmMTkzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIwLTEwLTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXVkaW9CdWZmZXIgY2hhbm5l
bHMgc2hvdWxkIGJlIG5ldXRlcmFibGUgLyBkZXRhY2hhYmxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyODYKKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQXVkaW9CdWZmZXIgY2hhbm5lbHMgc2hvdWxkIGJl
IG5ldXRlcmFibGUgLyBkZXRhY2hhYmxlOgorICAgICAgICAtIGh0dHBzOi8vd2ViYXVkaW8uZ2l0
aHViLmlvL3dlYi1hdWRpby1hcGkvI2FjcXVpcmUtdGhlLWNvbnRlbnQKKworICAgICAgICBXaGVu
IHRoZSBvbmUgb2YgdGhlIGNoYW5uZWxzJyBidWZmZXJzIGdldHMgZGV0YWNoZWQvbmV1dGVyZWQs
IHRoZSBhcnJheSByZXR1cm5lZCBieQorICAgICAgICBnZXRDaGFubmVsRGF0YSgwKSBpcyBuZXV0
ZXJlZCBhbmQgdGh1cyBoYXMgemVybyBsZW5ndGguIEludGVybmFsbHkgdGhvdWdoLCBpZgorICAg
ICAgICBjaGFubmVsRGF0YSgpIGdldHMgY2FsbGVkIGFuZCBBTlkgb2YgdGhlIGNoYW5uZWxzJyBi
dWZmZXJzIGFyZSBkZXRhY2hlZCwgd2UgcmV0dXJuCisgICAgICAgIGEgbmV3IGVtcHR5IGFycmF5
LCBhcyBwZXIgdGhlIHNwZWNpZmljYXRpb24uIFRoaXMgbWFrZXMgc3VyZSB3ZSBlbmQgdXAgd2l0
aCBzaWxlbmNlCisgICAgICAgIG9uIGFsbCBjaGFubmVscyB3aGVuIGFueSBvZiB0aGUgY2hhbm5l
bHMgZ2V0cyBkZXRhY2hlZCwgd2hpY2ggaXMgY29uc2lzdGVudCB3aXRoIHRoZQorICAgICAgICBz
cGVjaWZpY2F0aW9uIGFuZCBGaXJlZm94IChCbGluayBzZWVtcyB0byBjcmFzaCkuCisKKyAgICAg
ICAgVG8gbWFrZSB0aGUgQXVkaW9CdWZmZXIgQVBJIGxlc3MgZXJyb3ItcHJvbmUgd2hlbiB1c2Vk
IG5hdGl2ZWx5LCBJIHVwZGF0ZWQgbGVuZ3RoKCkKKyAgICAgICAgYW5kIGR1cmF0aW9uKCkgdG8g
cmV0dXJuIDAgd2hlbmV2ZXIgYW55IG9mIHRoZSBjaGFubmVscyBpcyBkZXRhY2hlZC4gVGhpcyBp
cyBzYWZlcgorICAgICAgICBzaW5jZSBjaGFubmVsRGF0YSgpIHJldHVybnMgMC1sZW5ndGggYXJy
YXlzIGluIHRoaXMgY2FzZS4gVGhlIFdlYiBBUEkga2VlcHMgcmV0dXJuaW5nCisgICAgICAgIHRo
ZSBvcmlnaW5hbCB2YWx1ZXMgdGhvdWdoIHNvIHRoZXkgcmVseSBvbiBuZXcgb3JpZ2luYWxMZW5n
dGgoKSAvIG9yaWdpbmFsRHVyYXRpb24oKQorICAgICAgICBnZXR0ZXJzLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgcmViYXNlbGluZWQgLyB1cGRhdGVkIGV4aXN0aW5nIHRlc3RzLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb0J1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyOjpB
dWRpb0J1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlcjo6aW52YWxpZGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlcjo6Y2hhbm5lbERhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9CdWZmZXI6Onplcm8pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZm
ZXI6Omhhc0RldGFjaGVkQ2hhbm5lbEJ1ZmZlciBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0J1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXI6Om9y
aWdpbmFsTGVuZ3RoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyOjpvcmln
aW5hbER1cmF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyOjpsZW5n
dGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXI6OmR1cmF0aW9uIGNvbnN0
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmlkbDoKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29udm9sdmVyTm9kZTo6c2V0QnVmZmVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1Nj
cmlwdFByb2Nlc3Nvck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29y
Tm9kZTo6aW5pdGlhbGl6ZSk6CisKIDIwMjAtMTAtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBBdWRpb0J1ZmZlci5nZXRDaGFubmVsRGF0YSh4KSBzaG91bGQg
a2VlcCByZXR1cm5pbmcgdGhlIHNhbWUgSlMgd3JhcHBlciBmb3IgYSBnaXZlbiBjaGFubmVsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuY3BwCmluZGV4
IDc5M2ZmOTU3ZDA4ODUzNDNkMmJhZDcyYjFhZTAwMDRmZDkwNjZlZjMuLmQ2NDQwZTJmNTVkOWQ2
NjA4NjMwMGZlNjUxOWM4MzIwNDIwNGZlYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1SZWZQdHI8QXVkaW9CdWZmZXI+IEF1ZGlvQnVmZmVyOjpjcmVhdGUo
dW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBz
YW1wbGVSYXRlKQorUmVmUHRyPEF1ZGlvQnVmZmVyPiBBdWRpb0J1ZmZlcjo6Y3JlYXRlKHVuc2ln
bmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxl
UmF0ZSwgTGVnYWN5UHJldmVudE5ldXRlcmluZyBwcmV2ZW50TmV1dGVyaW5nKQogewogICAgIGlm
ICghQmFzZUF1ZGlvQ29udGV4dDo6aXNTdXBwb3J0ZWRTYW1wbGVSYXRlKHNhbXBsZVJhdGUpIHx8
ICFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5lbHMgPiBBdWRpb0NvbnRleHQ6Om1h
eE51bWJlck9mQ2hhbm5lbHMoKSB8fCAhbnVtYmVyT2ZGcmFtZXMpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgYXV0byBidWZmZXIgPSBhZG9wdFJlZigqbmV3IEF1ZGlvQnVmZmVyKG51
bWJlck9mQ2hhbm5lbHMsIG51bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKSk7Ci0gICAgaWYgKCFi
dWZmZXItPm1fbGVuZ3RoKQorICAgIGF1dG8gYnVmZmVyID0gYWRvcHRSZWYoKm5ldyBBdWRpb0J1
ZmZlcihudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSwgcHJldmVu
dE5ldXRlcmluZykpOworICAgIGlmICghYnVmZmVyLT5vcmlnaW5hbExlbmd0aCgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVybiBidWZmZXI7CkBAIC02Nyw3ICs2Nyw3IEBA
IEV4Y2VwdGlvbk9yPFJlZjxBdWRpb0J1ZmZlcj4+IEF1ZGlvQnVmZmVyOjpjcmVhdGUoY29uc3Qg
QXVkaW9CdWZmZXJPcHRpb25zJiBvcHRpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RT
dXBwb3J0ZWRFcnJvciwgIlNhbXBsZSByYXRlIGlzIG5vdCBpbiB0aGUgc3VwcG9ydGVkIHJhbmdl
LiJfcyB9OwogICAgIAogICAgIGF1dG8gYnVmZmVyID0gYWRvcHRSZWYoKm5ldyBBdWRpb0J1ZmZl
cihvcHRpb25zLm51bWJlck9mQ2hhbm5lbHMsIG9wdGlvbnMubGVuZ3RoLCBvcHRpb25zLnNhbXBs
ZVJhdGUpKTsKLSAgICBpZiAoIWJ1ZmZlci0+bGVuZ3RoKCkpCisgICAgaWYgKCFidWZmZXItPm9y
aWdpbmFsTGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRF
cnJvciwgIkNoYW5uZWwgd2FzIG5vdCBhYmxlIHRvIGJlIGNyZWF0ZWQuIl9zIH07CiAgICAgCiAg
ICAgcmV0dXJuIGJ1ZmZlcjsKQEAgLTgxLDIwICs4MSwyMiBAQCBSZWZQdHI8QXVkaW9CdWZmZXI+
IEF1ZGlvQnVmZmVyOjpjcmVhdGVGcm9tQXVkaW9GaWxlRGF0YShjb25zdCB2b2lkKiBkYXRhLCBz
aXplXwogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvQnVmZmVyKCpidXMpKTsKIH0KIAot
QXVkaW9CdWZmZXI6OkF1ZGlvQnVmZmVyKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVf
dCBsZW5ndGgsIGZsb2F0IHNhbXBsZVJhdGUpCitBdWRpb0J1ZmZlcjo6QXVkaW9CdWZmZXIodW5z
aWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgZmxvYXQgc2FtcGxlUmF0ZSwg
TGVnYWN5UHJldmVudE5ldXRlcmluZyBwcmV2ZW50TmV1dGVyaW5nKQogICAgIDogbV9zYW1wbGVS
YXRlKHNhbXBsZVJhdGUpCi0gICAgLCBtX2xlbmd0aChsZW5ndGgpCisgICAgLCBtX29yaWdpbmFs
TGVuZ3RoKGxlbmd0aCkKIHsKICAgICBtX2NoYW5uZWxzLnJlc2VydmVDYXBhY2l0eShudW1iZXJP
ZkNoYW5uZWxzKTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZkNoYW5u
ZWxzOyArK2kpIHsKLSAgICAgICAgYXV0byBjaGFubmVsRGF0YUFycmF5ID0gRmxvYXQzMkFycmF5
Ojp0cnlDcmVhdGUobV9sZW5ndGgpOworICAgICAgICBhdXRvIGNoYW5uZWxEYXRhQXJyYXkgPSBG
bG9hdDMyQXJyYXk6OnRyeUNyZWF0ZShtX29yaWdpbmFsTGVuZ3RoKTsKICAgICAgICAgaWYgKCFj
aGFubmVsRGF0YUFycmF5KSB7CiAgICAgICAgICAgICBpbnZhbGlkYXRlKCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIGNoYW5uZWxEYXRhQXJyYXktPnNldE5ldXRl
cmFibGUoZmFsc2UpOworICAgICAgICBpZiAocHJldmVudE5ldXRlcmluZyA9PSBMZWdhY3lQcmV2
ZW50TmV1dGVyaW5nOjpZZXMpCisgICAgICAgICAgICBjaGFubmVsRGF0YUFycmF5LT5zZXROZXV0
ZXJhYmxlKGZhbHNlKTsKKwogICAgICAgICBtX2NoYW5uZWxzLmFwcGVuZChXVEZNb3ZlKGNoYW5u
ZWxEYXRhQXJyYXkpKTsKICAgICB9CiAgICAgbV9jaGFubmVsV3JhcHBlcnMucmVzaXplKG1fY2hh
bm5lbHMuc2l6ZSgpKTsKQEAgLTEwMiwyMCArMTA0LDE5IEBAIEF1ZGlvQnVmZmVyOjpBdWRpb0J1
ZmZlcih1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbGVuZ3RoLCBmbG9hdCBzYW1w
bGVSCiAKIEF1ZGlvQnVmZmVyOjpBdWRpb0J1ZmZlcihBdWRpb0J1cyYgYnVzKQogICAgIDogbV9z
YW1wbGVSYXRlKGJ1cy5zYW1wbGVSYXRlKCkpCi0gICAgLCBtX2xlbmd0aChidXMubGVuZ3RoKCkp
CisgICAgLCBtX29yaWdpbmFsTGVuZ3RoKGJ1cy5sZW5ndGgoKSkKIHsKICAgICAvLyBDb3B5IGF1
ZGlvIGRhdGEgZnJvbSB0aGUgYnVzIHRvIHRoZSBGbG9hdDMyQXJyYXlzIHdlIG1hbmFnZS4KICAg
ICB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzID0gYnVzLm51bWJlck9mQ2hhbm5lbHMoKTsKICAg
ICBtX2NoYW5uZWxzLnJlc2VydmVDYXBhY2l0eShudW1iZXJPZkNoYW5uZWxzKTsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZDaGFubmVsczsgKytpKSB7Ci0gICAgICAgIGF1
dG8gY2hhbm5lbERhdGFBcnJheSA9IEZsb2F0MzJBcnJheTo6dHJ5Q3JlYXRlKG1fbGVuZ3RoKTsK
KyAgICAgICAgYXV0byBjaGFubmVsRGF0YUFycmF5ID0gRmxvYXQzMkFycmF5Ojp0cnlDcmVhdGUo
bV9vcmlnaW5hbExlbmd0aCk7CiAgICAgICAgIGlmICghY2hhbm5lbERhdGFBcnJheSkgewogICAg
ICAgICAgICAgaW52YWxpZGF0ZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAot
ICAgICAgICBjaGFubmVsRGF0YUFycmF5LT5zZXROZXV0ZXJhYmxlKGZhbHNlKTsKLSAgICAgICAg
Y2hhbm5lbERhdGFBcnJheS0+c2V0UmFuZ2UoYnVzLmNoYW5uZWwoaSktPmRhdGEoKSwgbV9sZW5n
dGgsIDApOworICAgICAgICBjaGFubmVsRGF0YUFycmF5LT5zZXRSYW5nZShidXMuY2hhbm5lbChp
KS0+ZGF0YSgpLCBtX29yaWdpbmFsTGVuZ3RoLCAwKTsKICAgICAgICAgbV9jaGFubmVscy5hcHBl
bmQoV1RGTW92ZShjaGFubmVsRGF0YUFycmF5KSk7CiAgICAgfQogICAgIG1fY2hhbm5lbFdyYXBw
ZXJzLnJlc2l6ZShtX2NoYW5uZWxzLnNpemUoKSk7CkBAIC0xMjQsNyArMTI1LDcgQEAgQXVkaW9C
dWZmZXI6OkF1ZGlvQnVmZmVyKEF1ZGlvQnVzJiBidXMpCiB2b2lkIEF1ZGlvQnVmZmVyOjppbnZh
bGlkYXRlKCkKIHsKICAgICByZWxlYXNlTWVtb3J5KCk7Ci0gICAgbV9sZW5ndGggPSAwOworICAg
IG1fb3JpZ2luYWxMZW5ndGggPSAwOwogfQogCiB2b2lkIEF1ZGlvQnVmZmVyOjpyZWxlYXNlTWVt
b3J5KCkKQEAgLTE1OSwxMSArMTYwLDEzIEBAIHZvaWQgQXVkaW9CdWZmZXI6OnZpc2l0Q2hhbm5l
bFdyYXBwZXJzKEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgICAgIGNoYW5uZWxXcmFw
cGVyLnZpc2l0KHZpc2l0b3IpOwogfQogCi1GbG9hdDMyQXJyYXkqIEF1ZGlvQnVmZmVyOjpjaGFu
bmVsRGF0YSh1bnNpZ25lZCBjaGFubmVsSW5kZXgpCitSZWZQdHI8RmxvYXQzMkFycmF5PiBBdWRp
b0J1ZmZlcjo6Y2hhbm5lbERhdGEodW5zaWduZWQgY2hhbm5lbEluZGV4KQogewogICAgIGlmIChj
aGFubmVsSW5kZXggPj0gbV9jaGFubmVscy5zaXplKCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIHJldHVybiBtX2NoYW5uZWxzW2NoYW5uZWxJbmRleF0uZ2V0KCk7CisgICAgaWYgKGhh
c0RldGFjaGVkQ2hhbm5lbEJ1ZmZlcigpKQorICAgICAgICByZXR1cm4gRmxvYXQzMkFycmF5Ojpj
cmVhdGUoMCk7CisgICAgcmV0dXJuIG1fY2hhbm5lbHNbY2hhbm5lbEluZGV4XS5jb3B5UmVmKCk7
CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvQnVmZmVyOjpjb3B5RnJvbUNoYW5uZWwoUmVm
PEZsb2F0MzJBcnJheT4mJiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgY2hhbm5lbE51bWJlciwgdW5z
aWduZWQgYnVmZmVyT2Zmc2V0KQpAQCAtMjI1LDcgKzIyOCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IEF1ZGlvQnVmZmVyOjpjb3B5VG9DaGFubmVsKFJlZjxGbG9hdDMyQXJyYXk+JiYgc291cmNlLCB1
bnNpZ25lCiB2b2lkIEF1ZGlvQnVmZmVyOjp6ZXJvKCkKIHsKICAgICBmb3IgKGF1dG8mIGNoYW5u
ZWwgOiBtX2NoYW5uZWxzKQotICAgICAgICBjaGFubmVsLT56ZXJvUmFuZ2UoMCwgbGVuZ3RoKCkp
OworICAgICAgICBjaGFubmVsLT56ZXJvRmlsbCgpOwogfQogCiBzaXplX3QgQXVkaW9CdWZmZXI6
Om1lbW9yeUNvc3QoKSBjb25zdApAQCAtMjQyLDYgKzI0NSwxNSBAQCBzaXplX3QgQXVkaW9CdWZm
ZXI6Om1lbW9yeUNvc3QoKSBjb25zdAogICAgIHJldHVybiBjb3N0OwogfQogCitib29sIEF1ZGlv
QnVmZmVyOjpoYXNEZXRhY2hlZENoYW5uZWxCdWZmZXIoKSBjb25zdAoreworICAgIGZvciAoYXV0
byYgY2hhbm5lbCA6IG1fY2hhbm5lbHMpIHsKKyAgICAgICAgaWYgKGNoYW5uZWwtPmlzTmV1dGVy
ZWQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVE
SU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVm
ZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmgKaW5k
ZXggMjAyYWU0Y2RkYTI2ZTFhN2QzYzFkYmQzMGUyZDIyMjgxN2FkZDdlYS4uZjU5NjNkMGI3ZTIz
N2VmY2ZlM2IxOTJlYTY0ZDgxZThlNmQ4ZjQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuaApAQCAtNDEsMjMgKzQxLDMwIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIEF1ZGlvQnVzOwogCiBjbGFzcyBBdWRpb0J1ZmZlciA6IHB1YmxpYyBS
ZWZDb3VudGVkPEF1ZGlvQnVmZmVyPiB7Ci1wdWJsaWM6ICAgCi0gICAgc3RhdGljIFJlZlB0cjxB
dWRpb0J1ZmZlcj4gY3JlYXRlKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1i
ZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSk7CitwdWJsaWM6CisgICAgZW51bSBjbGFzcyBM
ZWdhY3lQcmV2ZW50TmV1dGVyaW5nIDogYm9vbCB7IE5vLCBZZXMgfTsKKyAgICBzdGF0aWMgUmVm
UHRyPEF1ZGlvQnVmZmVyPiBjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90
IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRlLCBMZWdhY3lQcmV2ZW50TmV1dGVyaW5n
ID0gTGVnYWN5UHJldmVudE5ldXRlcmluZzo6Tm8pOwogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxS
ZWY8QXVkaW9CdWZmZXI+PiBjcmVhdGUoY29uc3QgQXVkaW9CdWZmZXJPcHRpb25zJik7CiAgICAg
Ly8gUmV0dXJucyBudWxscHRyIGlmIGRhdGEgaXMgbm90IGEgdmFsaWQgYXVkaW8gZmlsZS4KICAg
ICBzdGF0aWMgUmVmUHRyPEF1ZGlvQnVmZmVyPiBjcmVhdGVGcm9tQXVkaW9GaWxlRGF0YShjb25z
dCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUsIGJvb2wgbWl4VG9Nb25vLCBmbG9hdCBzYW1w
bGVSYXRlKTsKIAogICAgIC8vIEZvcm1hdAotICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJl
dHVybiBtX2xlbmd0aDsgfQotICAgIGRvdWJsZSBkdXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGxl
bmd0aCgpIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPihzYW1wbGVSYXRlKCkpOyB9CisgICAgc2l6ZV90
IG9yaWdpbmFsTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW5hbExlbmd0aDsgfQorICAg
IGRvdWJsZSBvcmlnaW5hbER1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gb3JpZ2luYWxMZW5ndGgo
KSAvIHN0YXRpY19jYXN0PGRvdWJsZT4oc2FtcGxlUmF0ZSgpKTsgfQogICAgIGZsb2F0IHNhbXBs
ZVJhdGUoKSBjb25zdCB7IHJldHVybiBtX3NhbXBsZVJhdGU7IH0KIAorICAgIC8vIFRoZSBmb2xs
b3dpbmcgZnVuY3Rpb24gbWF5IHN0YXJ0IHJldHVybmluZyAwIGlmIGFueSBvZiB0aGUgdW5kZXJs
eWluZyBjaGFubmVsIGJ1ZmZlcnMgZ2V0cyBkZXRhY2hlZC4KKyAgICBzaXplX3QgbGVuZ3RoKCkg
Y29uc3QgeyByZXR1cm4gaGFzRGV0YWNoZWRDaGFubmVsQnVmZmVyKCkgPyAwIDogbV9vcmlnaW5h
bExlbmd0aDsgfQorICAgIGRvdWJsZSBkdXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGxlbmd0aCgp
IC8gc3RhdGljX2Nhc3Q8ZG91YmxlPihzYW1wbGVSYXRlKCkpOyB9CisKICAgICAvLyBDaGFubmVs
IGRhdGEgYWNjZXNzCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscygpIGNvbnN0IHsgcmV0
dXJuIG1fY2hhbm5lbHMuc2l6ZSgpOyB9CiAgICAgRXhjZXB0aW9uT3I8SlNDOjpKU1ZhbHVlPiBn
ZXRDaGFubmVsRGF0YShKU0RPTUdsb2JhbE9iamVjdCYsIHVuc2lnbmVkIGNoYW5uZWxJbmRleCk7
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gY29weUZyb21DaGFubmVsKFJlZjxGbG9hdDMyQXJyYXk+
JiYsIHVuc2lnbmVkIGNoYW5uZWxOdW1iZXIsIHVuc2lnbmVkIGJ1ZmZlck9mZnNldCk7CiAgICAg
RXhjZXB0aW9uT3I8dm9pZD4gY29weVRvQ2hhbm5lbChSZWY8RmxvYXQzMkFycmF5PiYmLCB1bnNp
Z25lZCBjaGFubmVsTnVtYmVyLCB1bnNpZ25lZCBzdGFydEluQ2hhbm5lbCk7Ci0gICAgRmxvYXQz
MkFycmF5KiBjaGFubmVsRGF0YSh1bnNpZ25lZCBjaGFubmVsSW5kZXgpOworCisgICAgLy8gTmF0
aXZlIGNoYW5uZWwgZGF0YSBhY2Nlc3MuCisgICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gY2hhbm5l
bERhdGEodW5zaWduZWQgY2hhbm5lbEluZGV4KTsKICAgICB2b2lkIHplcm8oKTsKIAogICAgIC8v
IEJlY2F1c2UgYW4gQXVkaW9CdWZmZXIgaGFzIGEgSmF2YVNjcmlwdCB3cmFwcGVyLCB3aGljaCB3
aWxsIGJlIGdhcmJhZ2UgY29sbGVjdGVkLCBpdCBtYXkgdGFrZSBhIHdoaWxlIGZvciB0aGlzIG9i
amVjdCB0byBiZSBkZWxldGVkLgpAQCAtNzAsMTQgKzc3LDE2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHZpc2l0Q2hhbm5lbFdyYXBwZXJzKEpTQzo6U2xvdFZpc2l0b3ImKTsKICAgICAKIHByaXZhdGU6
Ci0gICAgQXVkaW9CdWZmZXIodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0
aCwgZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAgQXVkaW9CdWZmZXIodW5zaWduZWQgbnVtYmVyT2ZD
aGFubmVscywgc2l6ZV90IGxlbmd0aCwgZmxvYXQgc2FtcGxlUmF0ZSwgTGVnYWN5UHJldmVudE5l
dXRlcmluZyA9IExlZ2FjeVByZXZlbnROZXV0ZXJpbmc6Ok5vKTsKICAgICBleHBsaWNpdCBBdWRp
b0J1ZmZlcihBdWRpb0J1cyYpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKKyAgICBib29s
IGhhc0RldGFjaGVkQ2hhbm5lbEJ1ZmZlcigpIGNvbnN0OworCiAgICAgZmxvYXQgbV9zYW1wbGVS
YXRlOwogICAgIG11dGFibGUgTG9jayBtX2NoYW5uZWxzTG9jazsKLSAgICBzaXplX3QgbV9sZW5n
dGg7CisgICAgc2l6ZV90IG1fb3JpZ2luYWxMZW5ndGg7CiAgICAgVmVjdG9yPFJlZlB0cjxGbG9h
dDMyQXJyYXk+PiBtX2NoYW5uZWxzOwogICAgIFZlY3RvcjxKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0
PiBtX2NoYW5uZWxXcmFwcGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9CdWZmZXIuaWRsCmluZGV4IDJhNjY1YmY4MGQ3NWJiM2Q0YTY0NmYyMTg4MTUy
NjM3YWIwNWJmNzcuLmNlYWQ0NjVjMDMyYzgzZjMwOWFiNDNhMDE2MGI1ODUwYTdkMTZhZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuaWRsCkBA
IC0zNSw4ICszNSw4IEBACiAgICAgRXhwb3NlZD1XaW5kb3cKIF0gaW50ZXJmYWNlIEF1ZGlvQnVm
ZmVyIHsKICAgICBbRW5hYmxlZEJ5U2V0dGluZz1Nb2Rlcm5VbnByZWZpeGVkV2ViQXVkaW9dIGNv
bnN0cnVjdG9yKEF1ZGlvQnVmZmVyT3B0aW9ucyBvcHRpb25zKTsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7IC8vIGluIHNhbXBsZS1mcmFtZXMKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgZG91YmxlIGR1cmF0aW9uOyAvLyBpbiBzZWNvbmRzCisgICAgW0ltcGxl
bWVudGVkQXM9b3JpZ2luYWxMZW5ndGhdIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IGxlbmd0aDsgLy8gaW4gc2FtcGxlLWZyYW1lcworICAgIFtJbXBsZW1lbnRlZEFzPW9yaWdpbmFs
RHVyYXRpb25dIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgZHVyYXRpb247IC8vIGluIHNlY29u
ZHMKICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgc2FtcGxlUmF0ZTsgLy8gaW4gc2FtcGxl
LWZyYW1lcyBwZXIgc2Vjb25kCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
bnVtYmVyT2ZDaGFubmVsczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQ29udm9sdmVyTm9kZS5jcHAKaW5kZXggOTc0MTlmMzViMGZkNDE1MWQ4ODY4OTdhNDcwZDQx
NThlOWFjMDM2NC4uZGVkNGZiZTczYjg3Zjg3ZGQ3YTJmODIzMGE3Y2Q4ZTVjOTM5ODdlZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3Bw
CkBAIC0xMzAsOSArMTMwLDYgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ29udm9sdmVyTm9kZTo6c2V0
QnVmZmVyKFJlZlB0cjxBdWRpb0J1ZmZlcj4mJiBidWZmZXIpCiAgICAgaWYgKCFpc0NoYW5uZWxD
b3VudEdvb2QpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwg
IkJ1ZmZlciBzaG91bGQgaGF2ZSAxLCAyIG9yIDQgY2hhbm5lbHMiX3MgfTsKIAotICAgIGlmICgh
YnVmZmVyTGVuZ3RoKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJy
b3IsICJCdWZmZXIgbGVuZ3RoIGNhbm5vdCBiZSAwIl9zIH07Ci0KICAgICAvLyBXcmFwIHRoZSBB
dWRpb0J1ZmZlciBieSBhbiBBdWRpb0J1cy4gSXQncyBhbiBlZmZpY2llbnQgcG9pbnRlciBzZXQg
YW5kIG5vdCBhIG1lbWNweSgpLgogICAgIC8vIFRoaXMgbWVtb3J5IGlzIHNpbXBseSB1c2VkIGlu
IHRoZSBSZXZlcmIgY29uc3RydWN0b3IgYW5kIG5vIHJlZmVyZW5jZSB0byBpdCBpcyBrZXB0IGZv
ciBsYXRlciB1c2UgaW4gdGhhdCBjbGFzcy4KICAgICBhdXRvIGJ1ZmZlckJ1cyA9IEF1ZGlvQnVz
OjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscywgYnVmZmVyTGVuZ3RoLCBmYWxzZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2Rl
LmNwcAppbmRleCA0YmNlN2NmOGYwMmYyN2RiNTczYWMzNzBmOGU1Y2RkN2ExOWNjZjRjLi42ZWI4
ODM5MTE4NTM3OWI4NDg1MTM3ZGE3NTgzMGVkMjdjM2E4YzRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKQEAg
LTkwLDggKzkwLDkgQEAgdm9pZCBTY3JpcHRQcm9jZXNzb3JOb2RlOjppbml0aWFsaXplKCkKICAg
ICAvLyBDcmVhdGUgZG91YmxlIGJ1ZmZlcnMgb24gYm90aCB0aGUgaW5wdXQgYW5kIG91dHB1dCBz
aWRlcy4KICAgICAvLyBUaGVzZSBBdWRpb0J1ZmZlcnMgd2lsbCBiZSBkaXJlY3RseSBhY2Nlc3Nl
ZCBpbiB0aGUgbWFpbiB0aHJlYWQgYnkgSmF2YVNjcmlwdC4KICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgMjsgKytpKSB7Ci0gICAgICAgIGF1dG8gaW5wdXRCdWZmZXIgPSBtX251bWJlck9m
SW5wdXRDaGFubmVscyA/IEF1ZGlvQnVmZmVyOjpjcmVhdGUobV9udW1iZXJPZklucHV0Q2hhbm5l
bHMsIGJ1ZmZlclNpemUoKSwgc2FtcGxlUmF0ZSkgOiAwOwotICAgICAgICBhdXRvIG91dHB1dEJ1
ZmZlciA9IG1fbnVtYmVyT2ZPdXRwdXRDaGFubmVscyA/IEF1ZGlvQnVmZmVyOjpjcmVhdGUobV9u
dW1iZXJPZk91dHB1dENoYW5uZWxzLCBidWZmZXJTaXplKCksIHNhbXBsZVJhdGUpIDogMDsKKyAg
ICAgICAgLy8gV2UgcHJldmVudCBuZXV0ZXJpbmcgdGhlIEF1ZGlvQnVmZmVycyBoZXJlIHNpbmNl
IHdlIHBhc3MgdGhvc2UgdG8gSlMgYW5kIHJldXNlIHRoZW0uCisgICAgICAgIGF1dG8gaW5wdXRC
dWZmZXIgPSBtX251bWJlck9mSW5wdXRDaGFubmVscyA/IEF1ZGlvQnVmZmVyOjpjcmVhdGUobV9u
dW1iZXJPZklucHV0Q2hhbm5lbHMsIGJ1ZmZlclNpemUoKSwgc2FtcGxlUmF0ZSwgQXVkaW9CdWZm
ZXI6OkxlZ2FjeVByZXZlbnROZXV0ZXJpbmc6OlllcykgOiAwOworICAgICAgICBhdXRvIG91dHB1
dEJ1ZmZlciA9IG1fbnVtYmVyT2ZPdXRwdXRDaGFubmVscyA/IEF1ZGlvQnVmZmVyOjpjcmVhdGUo
bV9udW1iZXJPZk91dHB1dENoYW5uZWxzLCBidWZmZXJTaXplKCksIHNhbXBsZVJhdGUsIEF1ZGlv
QnVmZmVyOjpMZWdhY3lQcmV2ZW50TmV1dGVyaW5nOjpZZXMpIDogMDsKIAogICAgICAgICBtX2lu
cHV0QnVmZmVycy5hcHBlbmQoaW5wdXRCdWZmZXIpOwogICAgICAgICBtX291dHB1dEJ1ZmZlcnMu
YXBwZW5kKG91dHB1dEJ1ZmZlcik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWQ5YTUxMGIzYjIyYTRkZTRkODczMDQwNjg1
ZTdkYWFkYjQzYmUxMi4uZjc4ZjliZDAyMzQ3ZDA5YTA3M2QyNjM5MjFiODE1OTJhMmJiZDdkMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTEwLTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgQXVkaW9CdWZmZXIgY2hhbm5lbHMgc2hvdWxkIGJlIG5ldXRl
cmFibGUgLyBkZXRhY2hhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTgyODYKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisK
KyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlci1uZXV0ZXItZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyLW5ldXRlci5odG1sOgorICAgICAgICBFeHRlbmQg
bGF5b3V0IHRlc3QgY292ZXJhZ2UuIEkgaGF2ZSB2ZXJpZmllZCB0aGF0IHRoaXMgbmV3IHZlcnNp
b24gb2YgdGhlIHRlc3QgaXMgZnVsbHkgcGFzc2luZyBpbgorICAgICAgICBHZWNrby4gSW4gQmxp
bmssIHRoZSBpbml0aWFsIGNoZWNrcyBhbGwgcGFzcyBidXQgaXQgdGhlbiBjcmFzaGVzIGR1cmlu
ZyByZW5kZXJpbmcuCisKKyAgICAgICAgKiB3ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW8tdGVzdGlu
Zy5qczoKKyAgICAgICAgKGNyZWF0ZUNvbnN0YW50QnVmZmVyKToKKyAgICAgICAgSW1wcm92ZSBj
cmVhdGVDb25zdGFudEJ1ZmZlcigpIHNvIHRoYXQgaXQgY2FuIGNvbnN0cnVjdCBidWZmZXJzIHdp
dGggbXVsdGlwbGUgY2hhbm5lbHMuCisKIDIwMjAtMTAtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUHJvY2Vzc10gVXNlIGFzeW5jIElQQyBmb3IgUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIncyBTdGFydEF1ZGlvRGVzdGluYXRpb24gLyBTdG9w
QXVkaW9EZXN0aW5hdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZWJlZTg2
YWM0OTk4YWM1MDZkMTIwYTRiNDM3NGJiNDIwZGI3N2I1Mi4uNDQ2OWQ5ZjFiYmNiMzA5YWYzMTkz
ZDVhMDc4MWZkZmJiMWMxMzVhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMjAtMTAtMjggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBBdWRpb0J1ZmZlciBjaGFubmVscyBzaG91bGQgYmUgbmV1dGVyYWJsZSAvIGRl
dGFjaGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxODI4NgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBS
ZWJhc2VsaW5lIFdQVCB0ZXN0IHRoYXQgaXMgbm93IHBhc3NpbmcuIFRoaXMgdGVzdCBpcyBhbHNv
IHBhc3NpbmcgaW4gRmlyZWZveC4gSXQgaXMgY3Jhc2hpbmcgaW4gQmxpbmsuCisKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY29udm9sdmVy
bm9kZS1pbnRlcmZhY2UvdHJhbnNmZXJyZWQtYnVmZmVyLW91dHB1dC1leHBlY3RlZC50eHQ6CisK
IDIwMjAtMTAtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBB
dWRpb0J1ZmZlci5nZXRDaGFubmVsRGF0YSh4KSBzaG91bGQga2VlcCByZXR1cm5pbmcgdGhlIHNh
bWUgSlMgd3JhcHBlciBmb3IgYSBnaXZlbiBjaGFubmVsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkv
dGhlLWNvbnZvbHZlcm5vZGUtaW50ZXJmYWNlL3RyYW5zZmVycmVkLWJ1ZmZlci1vdXRwdXQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1jb252b2x2ZXJub2RlLWludGVyZmFjZS90cmFuc2Zl
cnJlZC1idWZmZXItb3V0cHV0LWV4cGVjdGVkLnR4dAppbmRleCA5NjUyZDhiOGIxZjU5NGE2NzEx
NWE0ZTA4MzExZDVjZmExNWIwNzBiLi5iMzJhZmVkNzJkOTBhYWZhYmMwMjI0NjczMWVhOWRjMmE5
ZjRkYmRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNvbnZvbHZlcm5vZGUtaW50ZXJmYWNl
L3RyYW5zZmVycmVkLWJ1ZmZlci1vdXRwdXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90
aGUtY29udm9sdmVybm9kZS1pbnRlcmZhY2UvdHJhbnNmZXJyZWQtYnVmZmVyLW91dHB1dC1leHBl
Y3RlZC50eHQKQEAgLTMsMjAgKzMsOCBAQCBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRF
RC4KIFBBU1MgRXhlY3V0aW5nICJUZXN0IENvbnZvbHZlciB3aXRoIHRyYW5zZmVycmVkIGJ1ZmZl
ciIKIFBBU1MgQXVkaXQgcmVwb3J0CiBQQVNTID4gW1Rlc3QgQ29udm9sdmVyIHdpdGggdHJhbnNm
ZXJyZWQgYnVmZmVyXSBPdXRwdXQgc2hvdWxkIGJlIGFsbCB6ZXJvZXMKLUZBSUwgWCBDb252b2x2
ZXIgY2hhbm5lbCAwIG91dHB1dFswOjEyNzldOiBFeHBlY3RlZCAwIGZvciBhbGwgdmFsdWVzIGJ1
dCBmb3VuZCAxMjgwIHVuZXhwZWN0ZWQgdmFsdWVzOgotCUluZGV4CUFjdHVhbAotCVswXQkxCi0J
WzFdCTIKLQlbMl0JMwotCVszXQk0Ci0JLi4uYW5kIDEyNzYgbW9yZSBlcnJvcnMuIGFzc2VydF90
cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIENvbnZvbHZlciBjaGFubmVsIDEg
b3V0cHV0WzA6MTI3OV06IEV4cGVjdGVkIDAgZm9yIGFsbCB2YWx1ZXMgYnV0IGZvdW5kIDEyODAg
dW5leHBlY3RlZCB2YWx1ZXM6Ci0JSW5kZXgJQWN0dWFsCi0JWzBdCTIKLQlbMV0JNAotCVsyXQk2
Ci0JWzNdCTgKLQkuLi5hbmQgMTI3NiBtb3JlIGVycm9ycy4gYXNzZXJ0X3RydWU6IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCi1GQUlMIDwgW1Rlc3QgQ29udm9sdmVyIHdpdGggdHJhbnNmZXJyZWQg
YnVmZmVyXSAyIG91dCBvZiAyIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVE
OiAxIG91dCBvZiAxIHRhc2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKK1BBU1MgICBDb252b2x2ZXIgY2hhbm5lbCAwIG91dHB1dFswOjEyNzldIGNv
bnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuCitQQVNTICAgQ29udm9sdmVyIGNoYW5uZWwgMSBv
dXRwdXRbMDoxMjc5XSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLgorUEFTUyA8IFtUZXN0
IENvbnZvbHZlciB3aXRoIHRyYW5zZmVycmVkIGJ1ZmZlcl0gQWxsIGFzc2VydGlvbnMgcGFzc2Vk
LiAodG90YWwgMiBhc3NlcnRpb25zKQorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVE
OiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2F1ZGlvYnVmZmVyLW5ldXRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9hdWRpb2J1ZmZlci1uZXV0ZXItZXhwZWN0ZWQudHh0CmluZGV4IDdhYTk5MTBhNzQ5NjNk
NzdjODMxNWVkZGM4Zjg0NjZlZmM2OWI0MDEuLjM2ZmY5MTI0NTMwYmU4M2UxYWM0NzI2ZGUyM2Yy
ZWJhMzc2NWViNGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVy
LW5ldXRlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZm
ZXItbmV1dGVyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDExIEBACi1UZXN0cyB0aGF0IG5ldXRl
cmVkIEF1ZGlvQnVmZmVycyBkbyBub3QgcHJvZHVjZSBnYXJiYWdlCitUZXN0cyB0aGF0IG5ldXRl
cmVkIEF1ZGlvQnVmZmVycyBwcm9kdWNlIHNpbGVuY2UKK1BBU1Mgc291cmNlQnVmZmVyLmxlbmd0
aCBpcyBudW1iZXJPZkZyYW1lcworUEFTUyBzb3VyY2VCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCku
bGVuZ3RoIGlzIDAKK1BBU1Mgc291cmNlQnVmZmVyLmdldENoYW5uZWxEYXRhKDApID09PSBzb3Vy
Y2VCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCkgaXMgdHJ1ZQorUEFTUyBzb3VyY2VCdWZmZXIuZ2V0
Q2hhbm5lbERhdGEoMCkgPT09IG9yaWdpbmFsRmlyc3RDaGFubmVsIGlzIHRydWUKK1BBU1Mgc291
cmNlQnVmZmVyLmdldENoYW5uZWxEYXRhKDEpLmxlbmd0aCBpcyBudW1iZXJPZkZyYW1lcworUEFT
UyBzb3VyY2VCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMSkgPT09IHNvdXJjZUJ1ZmZlci5nZXRDaGFu
bmVsRGF0YSgxKSBpcyB0cnVlCitQQVNTIHNvdXJjZUJ1ZmZlci5nZXRDaGFubmVsRGF0YSgxKSA9
PT0gb3JpZ2luYWxTZWNvbmRDaGFubmVsIGlzIHRydWUKIFBBU1MgT3V0cHV0IG1hdGNoZXMgZXhw
ZWN0YXRpb25zLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlci1uZXV0ZXIuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyLW5ldXRlci5odG1sCmluZGV4IDg3YmMwNzViNzJkNmU1
MGNlMWNhNGZlMzhmNWU3ODFiMTAzMzRjZGYuLmU4NTM5NWNiMWJkMzBkOGRhYmMxZDM5NTNlODVm
OTY1ZjJjZTExZmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVy
LW5ldXRlci5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyLW5ldXRl
ci5odG1sCkBAIC0xNCw5ICsxNCwxMSBAQAogICAgICAgICB7CiAgICAgICAgICAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKIAotICAgICAgICAgICAgdmFyIG51bWJlck9mRnJhbWVzID0gc2FtcGxl
UmF0ZSAqIGxlbmd0aEluU2Vjb25kczsKLSAgICAgICAgICAgIGNvbnRleHQgPSBuZXcgT2ZmbGlu
ZUF1ZGlvQ29udGV4dCgxLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7Ci0gICAgICAgICAg
ICBzb3VyY2VCdWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCBudW1iZXJPZkZy
YW1lcywgMC41KTsKKyAgICAgICAgICAgIG51bWJlck9mRnJhbWVzID0gc2FtcGxlUmF0ZSAqIGxl
bmd0aEluU2Vjb25kczsKKyAgICAgICAgICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29u
dGV4dCgyLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgICAgICAgICBzb3VyY2VC
dWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCBudW1iZXJPZkZyYW1lcywgWzAu
NSwgMC4yNV0pOworICAgICAgICAgICAgb3JpZ2luYWxGaXJzdENoYW5uZWwgPSBzb3VyY2VCdWZm
ZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAgICAgICAgICBvcmlnaW5hbFNlY29uZENoYW5uZWwg
PSBzb3VyY2VCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMSk7CiAgICAgICAgICAgICB2YXIgZGF0YSA9
IHNvdXJjZUJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKS5idWZmZXI7CiAKICAgICAgICAgICAgIHZh
ciBzdHJpbmcgPSBbCkBAIC0zMiw2ICszNCwyNyBAQAogICAgICAgICAgICAgdmFyIHdvcmtlciA9
IG5ldyBXb3JrZXIoYmxvYlVSTCk7CiAgICAgICAgICAgICB3b3JrZXIub25tZXNzYWdlID0gd29y
a2VyUmVwbHk7CiAgICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoZGF0YSwgW2RhdGFdKTsK
KworICAgICAgICAgICAgLy8gVGhlIGxlbmd0aCBvZiB0aGUgQXVkaW9CdWZmZXIgc2hvdWxkIGJl
IHVuY2hhbmdlZCwgZXZlbiBpZiBzb21lIG9mIGl0cyBhdWRpbyBjaGFubmVscyBidWZmZXJzCisg
ICAgICAgICAgICAvLyBoYXZlIGJlZW4gZGV0YWNoZWQuCisgICAgICAgICAgICBzaG91bGRCZSgi
c291cmNlQnVmZmVyLmxlbmd0aCIsICJudW1iZXJPZkZyYW1lcyIpOworCisgICAgICAgICAgICAv
LyBnZXRDaGFubmVsRGF0YSgpIHNob3VsZCByZXR1cm4gYSAwLWxlbmd0aCBhcnJheSBpZiB0aGUg
Y2hhbm5lbCBidWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQuCisgICAgICAgICAgICBzaG91bGRCZSgi
c291cmNlQnVmZmVyLmdldENoYW5uZWxEYXRhKDApLmxlbmd0aCIsICIwIik7CisgICAgICAgICAg
ICBzaG91bGRCZVRydWUoInNvdXJjZUJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKSA9PT0gc291cmNl
QnVmZmVyLmdldENoYW5uZWxEYXRhKDApIik7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoInNv
dXJjZUJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKSA9PT0gb3JpZ2luYWxGaXJzdENoYW5uZWwiKTsK
KworICAgICAgICAgICAgLy8gZ2V0Q2hhbm5lbERhdGEoKSBzaG91bGQgcmV0dXJuIGFjY3VyYXRl
IGNoYW5uZWwgZGF0YSBmb3Igbm9uIGRldGFjaGVkIGNoYW5uZWxzLgorICAgICAgICAgICAgc2hv
dWxkQmUoInNvdXJjZUJ1ZmZlci5nZXRDaGFubmVsRGF0YSgxKS5sZW5ndGgiLCAibnVtYmVyT2ZG
cmFtZXMiKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgic291cmNlQnVmZmVyLmdldENoYW5u
ZWxEYXRhKDEpID09PSBzb3VyY2VCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMSkiKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlVHJ1ZSgic291cmNlQnVmZmVyLmdldENoYW5uZWxEYXRhKDEpID09PSBvcmln
aW5hbFNlY29uZENoYW5uZWwiKTsKKyAgICAgICAgICAgIHNlY29uZENoYW5uZWwgPSBzb3VyY2VC
dWZmZXIuZ2V0Q2hhbm5lbERhdGEoMSk7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IG51bWJlck9mRnJhbWVzOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoc2Vjb25kQ2hhbm5l
bFtpXSAhPSAwLjI1KSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNlY29uZCBj
aGFubmVsIGNvbnRhaW5lZCB1bmV4cGVjdGVkIHZhbHVlOiAiICsgc2Vjb25kQ2hhbm5lbFtpXSk7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIHdvcmtlclJlcGx5KGV2ZW50KSB7
CkBAIC00NiwxNSArNjksMTggQEAKICAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdChldmVudCkg
ewogICAgICAgICAgICAgdmFyIHJlbmRlcmVkQnVmZmVyID0gZXZlbnQucmVuZGVyZWRCdWZmZXI7
CiAgICAgICAgICAgICB2YXIgbnVtYmVyT2ZGcmFtZXMgPSBzYW1wbGVSYXRlICogbGVuZ3RoSW5T
ZWNvbmRzOwotICAgICAgICAgICAgdmFyIGV4cGVjdGVkQnVmZmVyID0gY3JlYXRlQ29uc3RhbnRC
dWZmZXIoY29udGV4dCwgbnVtYmVyT2ZGcmFtZXMsIDAuNSk7CisgICAgICAgICAgICAvLyBXZSBl
eHBlY3Qgc2lsZW5jZSBvbiBib3RoIGNoYW5uZWxzLgorICAgICAgICAgICAgdmFyIGV4cGVjdGVk
QnVmZmVyID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgbnVtYmVyT2ZGcmFtZXMsIFsw
LCAwXSk7CiAKLSAgICAgICAgICAgIHZhciByZW5kZXJlZERhdGEgPSByZW5kZXJlZEJ1ZmZlci5n
ZXRDaGFubmVsRGF0YSgwKTsKLSAgICAgICAgICAgIHZhciBleHBlY3RlZERhdGEgPSBleHBlY3Rl
ZEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgICAgIGZvciAobGV0IGNoYW5uZWxJ
bmRleCA9IDA7IGNoYW5uZWxJbmRleCA8IDI7IGNoYW5uZWxJbmRleCsrKSB7CisgICAgICAgICAg
ICAgICAgdmFyIHJlbmRlcmVkRGF0YSA9IHJlbmRlcmVkQnVmZmVyLmdldENoYW5uZWxEYXRhKGNo
YW5uZWxJbmRleCk7CisgICAgICAgICAgICAgICAgdmFyIGV4cGVjdGVkRGF0YSA9IGV4cGVjdGVk
QnVmZmVyLmdldENoYW5uZWxEYXRhKGNoYW5uZWxJbmRleCk7CiAKLSAgICAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgbnVtYmVyT2ZGcmFtZXM7ICsraSkgewotICAgICAgICAgICAgICAgIGlm
IChleHBlY3RlZERhdGFbaV0gIT0gcmVuZGVyZWREYXRhW2ldKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoJ2V4cGVjdGVkOiAnICsgZXhwZWN0ZWREYXRhW2ldICsgJyBhY3R1YWw6
ICcgKyByZW5kZXJlZERhdGFbaV0pOwotICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bWJlck9mRnJhbWVzOyAr
K2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV4cGVjdGVkRGF0YVtpXSAhPSByZW5kZXJl
ZERhdGFbaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0NoYW5uZWwg
JyArIGNoYW5uZWxJbmRleCArICcgLSBleHBlY3RlZDogJyArIGV4cGVjdGVkRGF0YVtpXSArICcg
YWN0dWFsOiAnICsgcmVuZGVyZWREYXRhW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfQogCkBAIC02NSw3ICs5MSw3IEBACiAgICAgPC9zY3JpcHQ+CiA8L2hlYWQ+
CiA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPGRpdj5UZXN0cyB0aGF0IG5ldXRlcmVk
IEF1ZGlvQnVmZmVycyBkbyBub3QgcHJvZHVjZSBnYXJiYWdlPC9kaXY+CisgICAgPGRpdj5UZXN0
cyB0aGF0IG5ldXRlcmVkIEF1ZGlvQnVmZmVycyBwcm9kdWNlIHNpbGVuY2U8L2Rpdj4KICAgICA8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDwvYm9keT4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9yZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcwppbmRleCAyOGVlY2I2MGRjMjMyZDI3YzY1
MDJhYTRmNGQwMjkwYjIzOTlhNzVlLi4yNGI2ODBlMTQ5ZjVhNWQ4NjBhNGY2OTk5M2RhYmQ0MWUw
YmIxY2E2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW8t
dGVzdGluZy5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW8tdGVz
dGluZy5qcwpAQCAtMTI5LDEyICsxMjksMjUgQEAgZnVuY3Rpb24gY3JlYXRlTGluZWFyUmFtcEJ1
ZmZlcihjb250ZXh0LCBzYW1wbGVGcmFtZUxlbmd0aCkgewogCiAvLyBDcmVhdGUgYSBidWZmZXIg
b2YgdGhlIGdpdmVuIGxlbmd0aCBoYXZpbmcgYSBjb25zdGFudCB2YWx1ZS4KIGZ1bmN0aW9uIGNy
ZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIHNhbXBsZUZyYW1lTGVuZ3RoLCBjb25zdGFudFZh
bHVlKSB7Ci0gICAgdmFyIGF1ZGlvQnVmZmVyID0gY29udGV4dC5jcmVhdGVCdWZmZXIoMSwgc2Ft
cGxlRnJhbWVMZW5ndGgsIGNvbnRleHQuc2FtcGxlUmF0ZSk7Ci0gICAgdmFyIG4gPSBhdWRpb0J1
ZmZlci5sZW5ndGg7Ci0gICAgdmFyIGRhdGFMID0gYXVkaW9CdWZmZXIuZ2V0Q2hhbm5lbERhdGEo
MCk7CisgICAgbGV0IGNoYW5uZWxzOworICAgIGxldCB2YWx1ZXM7CiAKLSAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IG47ICsraSkKLSAgICAgICAgZGF0YUxbaV0gPSBjb25zdGFudFZhbHVlOworICAg
IGlmICh0eXBlb2YgY29uc3RhbnRWYWx1ZSA9PT0gJ251bWJlcicpIHsKKyAgICAgICAgY2hhbm5l
bHMgPSAxOworICAgICAgICB2YWx1ZXMgPSBbY29uc3RhbnRWYWx1ZV07CisgICAgfSBlbHNlIHsK
KyAgICAgICAgY2hhbm5lbHMgPSBjb25zdGFudFZhbHVlLmxlbmd0aDsKKyAgICAgICAgdmFsdWVz
ID0gY29uc3RhbnRWYWx1ZTsKKyAgICB9CisKKyAgICBsZXQgYXVkaW9CdWZmZXIgPSBjb250ZXh0
LmNyZWF0ZUJ1ZmZlcihjaGFubmVscywgc2FtcGxlRnJhbWVMZW5ndGgsIGNvbnRleHQuc2FtcGxl
UmF0ZSk7CisgICAgbGV0IG4gPSBhdWRpb0J1ZmZlci5sZW5ndGg7CisKKyAgICBmb3IgKGxldCBj
ID0gMDsgYyA8IGNoYW5uZWxzOyArK2MpIHsKKyAgICAgICAgbGV0IGRhdGEgPSBhdWRpb0J1ZmZl
ci5nZXRDaGFubmVsRGF0YShjKTsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyArK2kp
CisgICAgICAgICAgICBkYXRhW2ldID0gdmFsdWVzW2NdOworICAgIH0KIAogICAgIHJldHVybiBh
dWRpb0J1ZmZlcjsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>