<?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>208572</bug_id>
          
          <creation_ts>2020-03-04 07:10:36 -0800</creation_ts>
          <short_desc>[GStreamer][GL] External OES textures rendering support</short_desc>
          <delta_ts>2020-03-10 05:10:13 -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>Platform</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="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>magomez</cc>
    
    <cc>menard</cc>
    
    <cc>noam</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1625499</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-04 07:10:36 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625500</commentid>
    <comment_count>1</comment_count>
      <attachid>392412</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-04 07:16:15 -0800</bug_when>
    <thetext>Created attachment 392412
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625503</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-04 07:21:09 -0800</bug_when>
    <thetext>Checking GTK build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625514</commentid>
    <comment_count>3</comment_count>
      <attachid>392412</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-03-04 07:52:53 -0800</bug_when>
    <thetext>Comment on attachment 392412
Patch

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

This looks good from the GStreamer perspective but maybe some other people with more graphics proficiency could have another look.

&gt; Source/WebCore/platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:235
&gt; -    gst_pad_add_probe(pad.get(), static_cast&lt;GstPadProbeType&gt;(GST_PAD_PROBE_TYPE_PUSH | GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM | GST_PAD_PROBE_TYPE_EVENT_FLUSH), [] (GstPad*, GstPadProbeInfo* info,  gpointer userData) -&gt; GstPadProbeReturn {
&gt; +    gst_pad_add_probe(pad.get(), static_cast&lt;GstPadProbeType&gt;(GST_PAD_PROBE_TYPE_PUSH | GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM | GST_PAD_PROBE_TYPE_EVENT_FLUSH), [] (GstPad* pad, GstPadProbeInfo* info,  gpointer userData) -&gt; GstPadProbeReturn {
&gt; +

These change seems to be unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625521</commentid>
    <comment_count>4</comment_count>
      <attachid>392412</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-04 08:15:12 -0800</bug_when>
    <thetext>Comment on attachment 392412
Patch

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

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp:173
&gt; +    GLSL_DIRECTIVE(extension GL_OES_EGL_image_external : require)

This and the sampler declaration break GTK at runtime. The shader seems to fail to compile but no error is reported.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625567</commentid>
    <comment_count>5</comment_count>
      <attachid>392430</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-04 09:53:15 -0800</bug_when>
    <thetext>Created attachment 392430
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625571</commentid>
    <comment_count>6</comment_count>
      <attachid>392431</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-04 09:55:32 -0800</bug_when>
    <thetext>Created attachment 392431
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626001</commentid>
    <comment_count>7</comment_count>
      <attachid>392431</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2020-03-05 02:23:46 -0800</bug_when>
    <thetext>Comment on attachment 392431
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:331
&gt; -            return makeUnique&lt;Buffer&gt;(Buffer::TextureVariant { Buffer::RGBTexture { *static_cast&lt;GLuint*&gt;(m_videoFrame.data[0]) } }, m_size, m_flags, GL_RGBA);
&gt; +            return makeUnique&lt;Buffer&gt;(Buffer::TextureVariant { Buffer::RGBTexture { m_textureID } }, m_size, m_flags, GL_RGBA);

For a separate patch: we could maybe drop m_textureID in favor of using m_videoFrame.data directly.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:394
&gt; +    GstGLTextureTarget m_textureTarget;

This could be default-initialized to `GST_GL_TEXTURE_TARGET_NONE`.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp:178
&gt; +    OES_EGL_IMAGE_EXTERNAL_DIRECTIVE

I think this directive should be written only if the program options demand it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626009</commentid>
    <comment_count>8</comment_count>
      <attachid>392553</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-05 03:06:14 -0800</bug_when>
    <thetext>Created attachment 392553
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628139</commentid>
    <comment_count>9</comment_count>
      <attachid>392553</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2020-03-10 01:10:31 -0700</bug_when>
    <thetext>Comment on attachment 392553
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628190</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-03-10 05:09:13 -0700</bug_when>
    <thetext>Committed r258197: &lt;https://trac.webkit.org/changeset/258197&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628191</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-10 05:10:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/60269338&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392412</attachid>
            <date>2020-03-04 07:16:15 -0800</date>
            <delta_ts>2020-03-04 09:53:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208572-20200304151613.patch</filename>
            <type>text/plain</type>
            <size>18793</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzE3YzNlNTI4YTY4ZTcw
ZDY0ZjE0Y2QyODliMmJhMDg4NDZhNmViZS4uNzU1N2NiODg4MjU0NWQxNGMwMjliZTZlY2ExZWQ3
MjM3NzIwYmZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAzLTA0ICBQaGls
aXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXVtH
TF0gRXh0ZXJuYWwgT0VTIHRleHR1cmVzIHJlbmRlcmluZyBzdXBwb3J0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1NzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgaGFyZHdhcmUgdGhhdCBjb250
YWlucyBuYXRpdmUgWVVWIHNhbXBsZXJzLCBzb21lIGRyaXZlcnMgbWF5CisgICAgICAgIG9ubHkg
c3VwcG9ydCBleHRlcm5hbC1vZXMgaW1wb3J0IG9mIFlVViB0ZXh0dXJlcywgc28gYnkgc3VwcG9y
dGluZworICAgICAgICB0aGlzIHRleHR1cmUgdGFyZ2V0IGluIHRoZSBNZWRpYVBsYXllciB3ZSBj
YW4gYXZvaWQgc29tZSBjb3N0bHkKKyAgICAgICAgb3BlcmF0aW9ucyBpbiB0aGUgcGlwZWxpbmUu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR0xWaWRlb1NpbmtHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0R0xWaWRlb1NpbmtTZXRNZWRpYVBsYXllclByaXZh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3N0VmlkZW9GcmFtZUhvbGRl
cjo6R3N0VmlkZW9GcmFtZUhvbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpHc3RWaWRlb0ZyYW1l
SG9sZGVyOjpwbGF0Zm9ybUxheWVyQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0
Zm9ybVRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4
dHVyZWRRdWFkV2l0aFByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdM
OjpkcmF3VGV4dHVyZUV4dGVybmFsT0VTKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyOjpjbG9uZSk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcjo6cGFpbnRUb1RleHR1cmVN
YXBwZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllckJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaDoKKwogMjAyMC0wMy0wNCAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtGaXJzdCBwYWludF0g
R29pbmcgZnJvbSB2aXN1YWxseSBlbXB0eSB0byBub24tZW1wdHkgc2hvdWxkIGltbWVkaWF0ZWx5
IHRyaWdnZXIgbGF5ZXIgdW5mcmVlemluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dMVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HTFZpZGVvU2lua0dTdHJlYW1l
ci5jcHAKaW5kZXggNmMxYTlhNjI5NTI4OTUzZjNhM2MyMTZiNmNkODY2NmUyNzJhYzg5Yy4uYjU2
ZDVjOGYxNWM0NDg4YTkzN2UwODVkYTQ0NjZmZDliNDYxZWM0MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dMVmlkZW9TaW5rR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR0xW
aWRlb1NpbmtHU3RyZWFtZXIuY3BwCkBAIC0yMzEsNyArMjMxLDggQEAgdm9pZCB3ZWJLaXRHTFZp
ZGVvU2lua1NldE1lZGlhUGxheWVyUHJpdmF0ZShXZWJLaXRHTFZpZGVvU2luayogc2luaywgTWVk
aWFQbGF5ZXIKICAgICB9KSwgcGxheWVyKTsKIAogICAgIEdSZWZQdHI8R3N0UGFkPiBwYWQgPSBh
ZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQocHJpdi0+YXBwU2luay5nZXQoKSwg
InNpbmsiKSk7Ci0gICAgZ3N0X3BhZF9hZGRfcHJvYmUocGFkLmdldCgpLCBzdGF0aWNfY2FzdDxH
c3RQYWRQcm9iZVR5cGU+KEdTVF9QQURfUFJPQkVfVFlQRV9QVVNIIHwgR1NUX1BBRF9QUk9CRV9U
WVBFX1FVRVJZX0RPV05TVFJFQU0gfCBHU1RfUEFEX1BST0JFX1RZUEVfRVZFTlRfRkxVU0gpLCBb
XSAoR3N0UGFkKiwgR3N0UGFkUHJvYmVJbmZvKiBpbmZvLCAgZ3BvaW50ZXIgdXNlckRhdGEpIC0+
IEdzdFBhZFByb2JlUmV0dXJuIHsKKyAgICBnc3RfcGFkX2FkZF9wcm9iZShwYWQuZ2V0KCksIHN0
YXRpY19jYXN0PEdzdFBhZFByb2JlVHlwZT4oR1NUX1BBRF9QUk9CRV9UWVBFX1BVU0ggfCBHU1Rf
UEFEX1BST0JFX1RZUEVfUVVFUllfRE9XTlNUUkVBTSB8IEdTVF9QQURfUFJPQkVfVFlQRV9FVkVO
VF9GTFVTSCksIFtdIChHc3RQYWQqIHBhZCwgR3N0UGFkUHJvYmVJbmZvKiBpbmZvLCAgZ3BvaW50
ZXIgdXNlckRhdGEpIC0+IEdzdFBhZFByb2JlUmV0dXJuIHsKKwogICAgICAgICAvLyBJbiBzb21l
IHBsYXRmb3JtcyAoZS5nLiBPcGVuTUFYIG9uIHRoZSBSYXNwYmVycnkgUGkpIHdoZW4gYSByZXNv
bHV0aW9uIGNoYW5nZSBvY2N1cnMgdGhlCiAgICAgICAgIC8vIHBpcGVsaW5lIGhhcyB0byBiZSBk
cmFpbmVkIGJlZm9yZSBhIGZyYW1lIHdpdGggdGhlIG5ldyByZXNvbHV0aW9uIGNhbiBiZSBkZWNv
ZGVkLgogICAgICAgICAvLyBJbiB0aGlzIGNvbnRleHQsIGl0J3MgaW1wb3J0YW50IHRoYXQgd2Ug
ZG9uJ3QgaG9sZCByZWZlcmVuY2VzIHRvIGFueSBwcmV2aW91cyBmcmFtZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA5OGM2ODE3Mzg5MWFi
NmE5ZmU2YzFmNGQyNTZmZDY3NTcxM2M0MWI0Li4wY2U0OGUxMjlkNGQ2MmJlNWMyNTA0ZTNjMTk5
YjM4YTI3M2RlZTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcApAQCAtMTk2LDEwICsxOTYsMTMgQEAgcHVibGljOgogI2lmIFVTRShHU1RSRUFN
RVJfR0wpCiAgICAgICAgIG1fZmxhZ3MgPSBmbGFncyB8IChtX2hhc0FscGhhQ2hhbm5lbCA/IFRl
eHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAwKTsKIAorICAgICAgICBHc3RNZW1vcnkqIG1l
bW9yeSA9IGdzdF9idWZmZXJfcGVla19tZW1vcnkobV9idWZmZXIuZ2V0KCksIDApOworICAgICAg
ICBpZiAoZ3N0X2lzX2dsX21lbW9yeShtZW1vcnkpKQorICAgICAgICAgICAgbV90ZXh0dXJlVGFy
Z2V0ID0gZ3N0X2dsX21lbW9yeV9nZXRfdGV4dHVyZV90YXJnZXQoR1NUX0dMX01FTU9SWV9DQVNU
KG1lbW9yeSkpOworCiAjaWYgVVNFKFdQRV9WSURFT19QTEFORV9ESVNQTEFZX0RNQUJVRikKICAg
ICAgICAgbV9kbWFidWZGRCA9IC0xOwogICAgICAgICBnc2l6ZSBvZmZzZXQ7Ci0gICAgICAgIEdz
dE1lbW9yeSogbWVtb3J5ID0gZ3N0X2J1ZmZlcl9wZWVrX21lbW9yeShtX2J1ZmZlci5nZXQoKSwg
MCk7CiAgICAgICAgIGlmIChnc3RfaXNfZ2xfbWVtb3J5X2VnbChtZW1vcnkpKSB7CiAgICAgICAg
ICAgICBHc3RHTE1lbW9yeUVHTCogZWdsTWVtb3J5ID0gKEdzdEdMTWVtb3J5RUdMKikgbWVtb3J5
OwogICAgICAgICAgICAgZ3N0X2VnbF9pbWFnZV9leHBvcnRfZG1hYnVmKGVnbE1lbW9yeS0+aW1h
Z2UsICZtX2RtYWJ1ZkZELCAmbV9kbWFidWZTdHJpZGUsICZvZmZzZXQpOwpAQCAtMzIxLDggKzMy
NCwxMSBAQCBwdWJsaWM6CiAKICAgICAgICAgdXNpbmcgQnVmZmVyID0gVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXJCdWZmZXI7CiAKKyAgICAgICAgaWYgKG1fdGV4dHVyZVRhcmdldCA9PSBHU1Rf
R0xfVEVYVFVSRV9UQVJHRVRfRVhURVJOQUxfT0VTKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VV
bmlxdWU8QnVmZmVyPihCdWZmZXI6OlRleHR1cmVWYXJpYW50IHsgQnVmZmVyOjpFeHRlcm5hbE9F
U1RleHR1cmUgeyBtX3RleHR1cmVJRCB9IH0sIG1fc2l6ZSwgbV9mbGFncywgR0xfRE9OVF9DQVJF
KTsKKwogICAgICAgICBpZiAoKEdTVF9WSURFT19JTkZPX0lTX1JHQigmbV92aWRlb0ZyYW1lLmlu
Zm8pICYmIEdTVF9WSURFT19JTkZPX05fUExBTkVTKCZtX3ZpZGVvRnJhbWUuaW5mbykgPT0gMSkp
Ci0gICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxCdWZmZXI+KEJ1ZmZlcjo6VGV4dHVyZVZh
cmlhbnQgeyBCdWZmZXI6OlJHQlRleHR1cmUgeyAqc3RhdGljX2Nhc3Q8R0x1aW50Kj4obV92aWRl
b0ZyYW1lLmRhdGFbMF0pIH0gfSwgbV9zaXplLCBtX2ZsYWdzLCBHTF9SR0JBKTsKKyAgICAgICAg
ICAgIHJldHVybiBtYWtlVW5pcXVlPEJ1ZmZlcj4oQnVmZmVyOjpUZXh0dXJlVmFyaWFudCB7IEJ1
ZmZlcjo6UkdCVGV4dHVyZSB7IG1fdGV4dHVyZUlEIH0gfSwgbV9zaXplLCBtX2ZsYWdzLCBHTF9S
R0JBKTsKIAogICAgICAgICBpZiAoR1NUX1ZJREVPX0lORk9fSVNfWVVWKCZtX3ZpZGVvRnJhbWUu
aW5mbykpIHsKICAgICAgICAgICAgIGlmIChHU1RfVklERU9fSU5GT19OX0NPTVBPTkVOVFMoJm1f
dmlkZW9GcmFtZS5pbmZvKSA8IDMgfHwgR1NUX1ZJREVPX0lORk9fTl9QTEFORVMoJm1fdmlkZW9G
cmFtZS5pbmZvKSA+IDMpCkBAIC0zMzIsNyArMzM4LDcgQEAgcHVibGljOgogICAgICAgICAgICAg
ICAgIC8vIElNWCBWUFUgZGVjb2RlciBkZWNvZGVzIFlVViBkYXRhIG9ubHkgaW50byB0aGUgWSB0
ZXh0dXJlIGZyb20gd2hpY2ggdGhlIHNhbXBsZXIKICAgICAgICAgICAgICAgICAvLyB0aGVuIGRp
cmVjdGx5IHByb2R1Y2VzIFJHQkEgZGF0YS4gVGV4dHVyZXMgZm9yIG90aGVyIHBsYW5lcyBhcmVu
J3QgdXNlZCwgYnV0CiAgICAgICAgICAgICAgICAgLy8gdGhhdCdzIGRlY29kZXIncyBwcm9ibGVt
LiBXZSBoYXZlIHRvIHRyZWF0IHRoYXQgWSB0ZXh0dXJlIGFzIGhhdmluZyBSR0JBIGRhdGEuCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8QnVmZmVyPihCdWZmZXI6OlRleHR1cmVW
YXJpYW50IHsgQnVmZmVyOjpSR0JUZXh0dXJlIHsgKnN0YXRpY19jYXN0PEdMdWludCo+KG1fdmlk
ZW9GcmFtZS5kYXRhWzBdKSB9IH0sIG1fc2l6ZSwgbV9mbGFncywgR0xfUkdCQSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8QnVmZmVyPihCdWZmZXI6OlRleHR1cmVWYXJpYW50
IHsgQnVmZmVyOjpSR0JUZXh0dXJlIHsgbV90ZXh0dXJlSUQgfSB9LCBtX3NpemUsIG1fZmxhZ3Ms
IEdMX1JHQkEpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB1bnNpZ25lZCBudW1iZXJP
ZlBsYW5lcyA9IEdTVF9WSURFT19JTkZPX05fUExBTkVTKCZtX3ZpZGVvRnJhbWUuaW5mbyk7CkBA
IC0zODUsNiArMzkxLDcgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxHc3RWaWRlb0RlY29kZXJQ
bGF0Zm9ybT4gbV92aWRlb0RlY29kZXJQbGF0Zm9ybTsKICAgICBUZXh0dXJlTWFwcGVyR0w6OkZs
YWdzIG1fZmxhZ3MgeyB9OwogICAgIEdMdWludCBtX3RleHR1cmVJRCB7IDAgfTsKKyAgICBHc3RH
TFRleHR1cmVUYXJnZXQgbV90ZXh0dXJlVGFyZ2V0OwogICAgIGJvb2wgbV9pc01hcHBlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2hhc01hcHBlZFRleHR1cmVzIHsgZmFsc2UgfTsKICNpZiBVU0Uo
V1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGKQpAQCAtMzMzNCwxMiArMzM0MSwxNCBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBGbG9hdFJlYwogICAgIGlmICghZ3N0X3ZpZGVvX2luZm9fZnJvbV9jYXBz
KCZ2aWRlb0luZm8sIGNhcHMpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIUdTVF9WSURF
T19JTkZPX0lTX1JHQigmdmlkZW9JbmZvKSkgewotICAgICAgICBpZiAoIW1fY29sb3JDb252ZXJ0
KSB7Ci0gICAgICAgICAgICBHc3RNZW1vcnkqIG1lbSA9IGdzdF9idWZmZXJfcGVla19tZW1vcnko
YnVmZmVyLCAwKTsKLSAgICAgICAgICAgIEdzdEdMQ29udGV4dCogY29udGV4dCA9ICgoR3N0R0xC
YXNlTWVtb3J5KiltZW0pLT5jb250ZXh0OwotICAgICAgICAgICAgbV9jb2xvckNvbnZlcnQgPSBh
ZG9wdEdSZWYoZ3N0X2dsX2NvbG9yX2NvbnZlcnRfbmV3KGNvbnRleHQpKTsKLSAgICAgICAgfQor
ICAgIEdzdE1lbW9yeSogbWVtb3J5ID0gZ3N0X2J1ZmZlcl9wZWVrX21lbW9yeShidWZmZXIsIDAp
OworICAgIGJvb2wgaGFzRXh0ZXJuYWxPRVNUZXh0dXJlID0gZmFsc2U7CisgICAgaWYgKGdzdF9p
c19nbF9tZW1vcnkobWVtb3J5KSkKKyAgICAgICAgaGFzRXh0ZXJuYWxPRVNUZXh0dXJlID0gZ3N0
X2dsX21lbW9yeV9nZXRfdGV4dHVyZV90YXJnZXQoR1NUX0dMX01FTU9SWV9DQVNUKG1lbW9yeSkp
ID09IEdTVF9HTF9URVhUVVJFX1RBUkdFVF9FWFRFUk5BTF9PRVM7CisKKyAgICBpZiAoIUdTVF9W
SURFT19JTkZPX0lTX1JHQigmdmlkZW9JbmZvKSB8fCBoYXNFeHRlcm5hbE9FU1RleHR1cmUpIHsK
KyAgICAgICAgaWYgKCFtX2NvbG9yQ29udmVydCkKKyAgICAgICAgICAgIG1fY29sb3JDb252ZXJ0
ID0gYWRvcHRHUmVmKGdzdF9nbF9jb2xvcl9jb252ZXJ0X25ldyhHU1RfR0xfQkFTRV9NRU1PUllf
Q0FTVChtZW1vcnkpLT5jb250ZXh0KSk7CiAKICAgICAgICAgaWYgKCFtX2NvbG9yQ29udmVydElu
cHV0Q2FwcyB8fCAhZ3N0X2NhcHNfaXNfZXF1YWwobV9jb2xvckNvbnZlcnRJbnB1dENhcHMuZ2V0
KCksIGNhcHMpKSB7CiAgICAgICAgICAgICBtX2NvbG9yQ29udmVydElucHV0Q2FwcyA9IGNhcHM7
CkBAIC0zMzQ5LDcgKzMzNTgsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlYwogI2Vsc2UKICAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIGZvcm1hdFN0cmluZyA9IEdTVF9WSURFT19JTkZPX0hBU19B
TFBIQSgmdmlkZW9JbmZvKSA/ICJSR0JBIiA6ICJSR0J4IjsKICNlbmRpZgotICAgICAgICAgICAg
Z3N0X2NhcHNfc2V0X3NpbXBsZShtX2NvbG9yQ29udmVydE91dHB1dENhcHMuZ2V0KCksICJmb3Jt
YXQiLCBHX1RZUEVfU1RSSU5HLCBmb3JtYXRTdHJpbmcsIG51bGxwdHIpOworICAgICAgICAgICAg
Z3N0X2NhcHNfc2V0X3NpbXBsZShtX2NvbG9yQ29udmVydE91dHB1dENhcHMuZ2V0KCksICJmb3Jt
YXQiLCBHX1RZUEVfU1RSSU5HLCBmb3JtYXRTdHJpbmcsCisgICAgICAgICAgICAgICAgInRleHR1
cmUtdGFyZ2V0IiwgR19UWVBFX1NUUklORywgR1NUX0dMX1RFWFRVUkVfVEFSR0VUXzJEX1NUUiwg
bnVsbHB0cik7CiAgICAgICAgICAgICBpZiAoIWdzdF9nbF9jb2xvcl9jb252ZXJ0X3NldF9jYXBz
KG1fY29sb3JDb252ZXJ0LmdldCgpLCBjYXBzLCBtX2NvbG9yQ29udmVydE91dHB1dENhcHMuZ2V0
KCkpKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGll
ckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmNwcAppbmRleCBlZTE0NWQyNGVjNzI5YjE5
OWIxNzY4MDJkMzU5MTMwOTA3OGU4MjhiLi5iZDE5ODczYzI1Y2ZlOWQ4NjRlZTU5ZDdkMGE3YjAy
MzA4NDY3YTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVh
bWVyLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1
ZGUgIkdMQ29udGV4dC5oIgogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKKyNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE3OCw3ICsxNzksMTEgQEAgYm9vbCBWaWRl
b1RleHR1cmVDb3BpZXJHU3RyZWFtZXI6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVy
ZShUZXh0dXJlTWFwcGUKICAgICAgICAgICAgICAgICBvcHRpb25zID0gVGV4dHVyZU1hcHBlclNo
YWRlclByb2dyYW06OlRleHR1cmVZVVY7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgIH0pOworICAgICAgICB9LAorICAgICAgICBbJl0oY29uc3QgQnVmZmVy
OjpFeHRlcm5hbE9FU1RleHR1cmUmKSB7CisgICAgICAgICAgICBvcHRpb25zID0gVGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW06OlRleHR1cmVFeHRlcm5hbE9FUzsKKyAgICAgICAgfQorICAgICk7
CiAKICAgICBpZiAob3B0aW9ucyAhPSBtX3NoYWRlck9wdGlvbnMpIHsKICAgICAgICAgbV9zaGFk
ZXJQcm9ncmFtID0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNyZWF0ZShvcHRpb25zKTsK
QEAgLTI1Miw2ICsyNTcsMTUgQEAgYm9vbCBWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXI6OmNv
cHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShUZXh0dXJlTWFwcGUKICAgICAgICAgICAg
ICAgICBnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdM
X0NMQU1QX1RPX0VER0UpOwogICAgICAgICAgICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhU
VVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CiAgICAgICAgICAg
ICB9CisgICAgICAgIH0sCisgICAgICAgIFsmXShjb25zdCBCdWZmZXI6OkV4dGVybmFsT0VTVGV4
dHVyZSYgdGV4dHVyZSkgeworICAgICAgICAgICAgZ2xVbmlmb3JtMWkobV9zaGFkZXJQcm9ncmFt
LT5leHRlcm5hbE9FU1RleHR1cmVMb2NhdGlvbigpLCAwKTsKKworICAgICAgICAgICAgZ2xBY3Rp
dmVUZXh0dXJlKEdMX1RFWFRVUkUwKTsKKyAgICAgICAgICAgIGdsQmluZFRleHR1cmUoR0xfVEVY
VFVSRV9FWFRFUk5BTF9PRVMsIHRleHR1cmUuaWQpOworICAgICAgICAgICAgZ2xUZXhQYXJhbWV0
ZXJpKEdMX1RFWFRVUkVfRVhURVJOQUxfT0VTLCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJ
TkVBUik7CisgICAgICAgICAgICBnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV9FWFRFUk5BTF9P
RVMsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICAgICAgICAgIGds
VGV4UGFyYW1ldGVyZihHTF9URVhUVVJFX0VYVEVSTkFMX09FUywgR0xfVEVYVFVSRV9XUkFQX1Qs
IEdMX0NMQU1QX1RPX0VER0UpOwogICAgICAgICB9KTsKIAogICAgIG1fc2hhZGVyUHJvZ3JhbS0+
c2V0TWF0cml4KG1fc2hhZGVyUHJvZ3JhbS0+bW9kZWxWaWV3TWF0cml4TG9jYXRpb24oKSwgbV9t
b2RlbFZpZXdNYXRyaXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAppbmRleCBiOTczOWE1Zjk3MjBj
OThjNWI1ZWVkNzkxMTFhZmZmOGE2ODQxODFkLi45NmUzMDQzMTI2OWU0ZDgyYjFjMTA3NzE5ZTcw
NWI4MTMyYTYyN2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcApAQCAtNzczLDcgKzc3MywxMiBA
QCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmVkUXVhZFdpdGhQcm9ncmFtKFRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtJiBwcgogICAgIGdsVXNlUHJvZ3JhbShwcm9ncmFtLnByb2dy
YW1JRCgpKTsKIAogICAgIGJvb2wgcmVwZWF0V3JhcCA9IHdyYXBNb2RlKCkgPT0gUmVwZWF0V3Jh
cCAmJiBtX2NvbnRleHRBdHRyaWJ1dGVzLnN1cHBvcnRzTlBPVFRleHR1cmVzOwotICAgIEdMZW51
bSB0YXJnZXQgPSBmbGFncyAmIFNob3VsZFVzZUFSQlRleHR1cmVSZWN0ID8gR0xlbnVtKEdMX1RF
WFRVUkVfUkVDVEFOR0xFX0FSQikgOiBHTGVudW0oR0xfVEVYVFVSRV8yRCk7CisgICAgR0xlbnVt
IHRhcmdldDsKKyAgICBpZiAoZmxhZ3MgJiBTaG91bGRVc2VFeHRlcm5hbE9FU1RleHR1cmVSZWN0
KQorICAgICAgICB0YXJnZXQgPSBHTGVudW0oR0xfVEVYVFVSRV9FWFRFUk5BTF9PRVMpOworICAg
IGVsc2UKKyAgICAgICAgdGFyZ2V0ID0gZmxhZ3MgJiBTaG91bGRVc2VBUkJUZXh0dXJlUmVjdCA/
IEdMZW51bShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BUkIpIDogR0xlbnVtKEdMX1RFWFRVUkVfMkQp
OworCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRleHR1cmVzQW5kU2FtcGxlcnMuc2l6
ZSgpOyArK2kpIHsKICAgICAgICAgYXV0byYgdGV4dHVyZUFuZFNhbXBsZXIgPSB0ZXh0dXJlc0Fu
ZFNhbXBsZXJzW2ldOwogCkBAIC05NjEsNiArOTY2LDEzIEBAIHN0ZDo6dW5pcXVlX3B0cjxUZXh0
dXJlTWFwcGVyPiBUZXh0dXJlTWFwcGVyOjpwbGF0Zm9ybUNyZWF0ZUFjY2VsZXJhdGVkKCkKICAg
ICByZXR1cm4gbWFrZVVuaXF1ZTxUZXh0dXJlTWFwcGVyR0w+KCk7CiB9CiAKK3ZvaWQgVGV4dHVy
ZU1hcHBlckdMOjpkcmF3VGV4dHVyZUV4dGVybmFsT0VTKEdMdWludCB0ZXh0dXJlLCBGbGFncyBm
bGFncywgY29uc3QgSW50U2l6ZSYgc2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5
KQoreworICAgIFJlZjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gcHJvZ3JhbSA9IGRhdGEo
KS5nZXRTaGFkZXJQcm9ncmFtKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcHRpb246OlRl
eHR1cmVFeHRlcm5hbE9FUyk7CisgICAgZHJhd1RleHR1cmVkUXVhZFdpdGhQcm9ncmFtKHByb2dy
YW0uZ2V0KCksIHsgeyB0ZXh0dXJlLCBwcm9ncmFtLT5leHRlcm5hbE9FU1RleHR1cmVMb2NhdGlv
bigpIH0gfSwKKyAgICAgICAgZmxhZ3MgfCBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZFVzZUV4dGVy
bmFsT0VTVGV4dHVyZVJlY3QsIHNpemUsIHRhcmdldFJlY3QsIG1vZGVsVmlld01hdHJpeCwgb3Bh
Y2l0eSk7Cit9CisKIH07CiAKICNlbmRpZiAvLyBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckdMLmgKaW5kZXggZGFhNTBkMTU5MTNhMWZiZmQzNmU2ZTI3ZjhkNGQ1ZmViMmM5Y2Qy
Ni4uNjVlODE0MWY1Mzg1OTRkYzFjOTRlNTRjMzA0NDI2Mjg3ZTFmZmI1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyR0wuaApAQCAtNTYsNyArNTYsOCBAQCBwdWJsaWM6CiAgICAgICAgIFNob3VsZFJvdGF0ZVRl
eHR1cmUyNzAgPSAweDQwLAogICAgICAgICBTaG91bGRDb252ZXJ0VGV4dHVyZUJHUkFUb1JHQkEg
PSAweDgwLAogICAgICAgICBTaG91bGRDb252ZXJ0VGV4dHVyZUFSR0JUb1JHQkEgPSAweDEwMCwK
LSAgICAgICAgU2hvdWxkTm90QmxlbmQgPSAweDIwMAorICAgICAgICBTaG91bGROb3RCbGVuZCA9
IDB4MjAwLAorICAgICAgICBTaG91bGRVc2VFeHRlcm5hbE9FU1RleHR1cmVSZWN0ID0gMHg0MDAK
ICAgICB9OwogCiAgICAgdHlwZWRlZiBpbnQgRmxhZ3M7CkBAIC04Niw2ICs4Nyw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGRyYXdGaWx0ZXJlZChjb25zdCBCaXRtYXBUZXh0dXJlJiBzb3VyY2VUZXh0
dXJlLCBjb25zdCBCaXRtYXBUZXh0dXJlKiBjb250ZW50VGV4dHVyZSwgY29uc3QgRmlsdGVyT3Bl
cmF0aW9uJiwgaW50IHBhc3MpOwogCiAgICAgdm9pZCBzZXRFbmFibGVFZGdlRGlzdGFuY2VBbnRp
YWxpYXNpbmcoYm9vbCBlbmFibGVkKSB7IG1fZW5hYmxlRWRnZURpc3RhbmNlQW50aWFsaWFzaW5n
ID0gZW5hYmxlZDsgfQorICAgIHZvaWQgZHJhd1RleHR1cmVFeHRlcm5hbE9FUyhHTHVpbnQgdGV4
dHVyZSwgRmxhZ3MsIGNvbnN0IEludFNpemUmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5KTsKIAogcHJp
dmF0ZToKICAgICB2b2lkIGRyYXdUZXh0dXJlZFF1YWRXaXRoUHJvZ3JhbShUZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbSYsIHVpbnQzMl90IHRleHR1cmUsIEZsYWdzLCBjb25zdCBJbnRTaXplJiwg
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01h
dHJpeCwgZmxvYXQgb3BhY2l0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyQnVmZmVyLmNwcAppbmRleCAyZGI4Y2ZiMTNiMTMxZDIxMWYyYjc5N2Q4YTAwNmZm
MmIwNjMwODYwLi45MzZiZWY4Mjk5OGMzMDNiMGJkOWY2ZmQzNDFkODc4YjIyZjNkM2I5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlci5jcHAKQEAg
LTg0LDYgKzg0LDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXll
ckJ1ZmZlcj4gVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmCiAgICAgICAgICAgICByZXR1
cm4gbWFrZVVuaXF1ZTxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4oV1RGTW92ZShj
bG9uZWRUZXh0dXJlKSwgbV9leHRyYUZsYWdzKTsKICAgICAgICAgfSwKICAgICAgICAgW10oY29u
c3QgWVVWVGV4dHVyZSYpCisgICAgICAgIHsKKyAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfSwKKyAgICAgICAgW10oY29u
c3QgRXh0ZXJuYWxPRVNUZXh0dXJlJikKICAgICAgICAgewogICAgICAgICAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTQxLDYgKzE0NiwxMCBA
QCB2b2lkIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyOjpwYWludFRvVGV4dHVyZU1h
cHBlcihUZXh0dXJlTWFwcGVyJiB0ZXh0dQogICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlLnl1
dlRvUmdiTWF0cml4LCBtX2V4dHJhRmxhZ3MsIG1fc2l6ZSwgdGFyZ2V0UmVjdCwgbW9kZWxWaWV3
TWF0cml4LCBvcGFjaXR5KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0K
KyAgICAgICAgfSwKKyAgICAgICAgWyZdKGNvbnN0IEV4dGVybmFsT0VTVGV4dHVyZSYgdGV4dHVy
ZSkgeworICAgICAgICAgICAgQVNTRVJUKHRleHR1cmUuaWQpOworICAgICAgICAgICAgdGV4bWFw
R0wuZHJhd1RleHR1cmVFeHRlcm5hbE9FUyh0ZXh0dXJlLmlkLCBtX2V4dHJhRmxhZ3MsIG1fc2l6
ZSwgdGFyZ2V0UmVjdCwgbW9kZWxWaWV3TWF0cml4LCBvcGFjaXR5KTsKICAgICAgICAgfSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmgKaW5k
ZXggZjM3NTQ4ZGM5MWExNzNkYWZiYWUxYTZjYjVkNjRlMWVmNjNjNDFiMS4uM2YyMTc4ZWE0Y2Q0
ZDhjOTFjZDJkMTZhYWZmZTIxYTNjNjYzODEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmgKQEAgLTUzLDcgKzUzLDEwIEBAIHB1YmxpYzoKICAg
ICAgICAgc3RkOjphcnJheTx1bnNpZ25lZCwgMz4geXV2UGxhbmVPZmZzZXQ7CiAgICAgICAgIHN0
ZDo6YXJyYXk8R0xmbG9hdCwgOT4geXV2VG9SZ2JNYXRyaXg7CiAgICAgfTsKLSAgICB1c2luZyBU
ZXh0dXJlVmFyaWFudCA9IFdURjo6VmFyaWFudDxSR0JUZXh0dXJlLCBZVVZUZXh0dXJlPjsKKyAg
ICBzdHJ1Y3QgRXh0ZXJuYWxPRVNUZXh0dXJlIHsKKyAgICAgICAgR0x1aW50IGlkOworICAgIH07
CisgICAgdXNpbmcgVGV4dHVyZVZhcmlhbnQgPSBXVEY6OlZhcmlhbnQ8UkdCVGV4dHVyZSwgWVVW
VGV4dHVyZSwgRXh0ZXJuYWxPRVNUZXh0dXJlPjsKIAogICAgIFRleHR1cmVNYXBwZXJQbGF0Zm9y
bUxheWVyQnVmZmVyKFRleHR1cmVWYXJpYW50JiYsIGNvbnN0IEludFNpemUmLCBUZXh0dXJlTWFw
cGVyR0w6OkZsYWdzLCBHTGludCBpbnRlcm5hbEZvcm1hdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCmluZGV4IDVlMDI4NDdlNGFmZWIwZDk0ZTA3NjE0OTMy
NTFmYjVlMmNhN2Q2ZWYuLmM1NTU4ODY2NTk3ODFiYTNiNDU3MDkzYjQ4MTZmNGU3ODk3MTU4OTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcApAQCAtMTcwLDYg
KzE3MCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBmcmFnbWVudFRlbXBsYXRlSGVhZGVyQ29tbW9u
ID0KICNpZiBVU0UoT1BFTkdMX0VTKQogICAgIFRFWFRVUkVfU1BBQ0VfTUFUUklYX1BSRUNJU0lP
Tl9ESVJFQ1RJVkUKICNlbmRpZgorICAgIEdMU0xfRElSRUNUSVZFKGV4dGVuc2lvbiBHTF9PRVNf
RUdMX2ltYWdlX2V4dGVybmFsIDogcmVxdWlyZSkKICNpZiBVU0UoT1BFTkdMX0VTKQogICAgIFNU
UklOR0lGWSgKICAgICAgICAgcHJlY2lzaW9uIFRleHR1cmVTcGFjZU1hdHJpeFByZWNpc2lvbiBm
bG9hdDsKQEAgLTIxMSw2ICsyMTIsNyBAQCBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRUZW1w
bGF0ZUNvbW1vbiA9CiAgICAgICAgIHVuaWZvcm0gU2FtcGxlclR5cGUgc19zYW1wbGVyVTsKICAg
ICAgICAgdW5pZm9ybSBTYW1wbGVyVHlwZSBzX3NhbXBsZXJWOwogICAgICAgICB1bmlmb3JtIHNh
bXBsZXIyRCBzX2NvbnRlbnRUZXh0dXJlOworICAgICAgICB1bmlmb3JtIHNhbXBsZXJFeHRlcm5h
bE9FUyBzX2V4dGVybmFsT0VTVGV4dHVyZTsKICAgICAgICAgdW5pZm9ybSBmbG9hdCB1X29wYWNp
dHk7CiAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9maWx0ZXJBbW91bnQ7CiAgICAgICAgIHVuaWZv
cm0gbWF0MyB1X3l1dlRvUmdiOwpAQCAtMzc0LDYgKzM3NiwxMiBAQCBzdGF0aWMgY29uc3QgY2hh
ciogZnJhZ21lbnRUZW1wbGF0ZUNvbW1vbiA9CiAgICAgICAgICAgICBjb2xvciA9IHNvdXJjZU92
ZXIoY29udGVudENvbG9yLCBjb2xvcik7CiAgICAgICAgIH0KIAorICAgICAgICB2b2lkIGFwcGx5
VGV4dHVyZUV4dGVybmFsT0VTKGlub3V0IHZlYzQgY29sb3IsIHZlYzIgdGV4Q29vcmQpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHZlYzQgY29udGVudENvbG9yID0gdGV4dHVyZTJEKHNfZXh0ZXJu
YWxPRVNUZXh0dXJlLCB0ZXhDb29yZCk7CisgICAgICAgICAgICBjb2xvciA9IHNvdXJjZU92ZXIo
Y29udGVudENvbG9yLCBjb2xvcik7CisgICAgICAgIH0KKwogICAgICAgICB2b2lkIGFwcGx5U29s
aWRDb2xvcihpbm91dCB2ZWM0IGNvbG9yKSB7IGNvbG9yICo9IHVfY29sb3I7IH0KIAogICAgICAg
ICB2b2lkIG1haW4odm9pZCkKQEAgLTQwMCw2ICs0MDgsNyBAQCBzdGF0aWMgY29uc3QgY2hhciog
ZnJhZ21lbnRUZW1wbGF0ZUNvbW1vbiA9CiAgICAgICAgICAgICBhcHBseUJsdXJGaWx0ZXJJZk5l
ZWRlZChjb2xvciwgdGV4Q29vcmQpOwogICAgICAgICAgICAgYXBwbHlBbHBoYUJsdXJJZk5lZWRl
ZChjb2xvciwgdGV4Q29vcmQpOwogICAgICAgICAgICAgYXBwbHlDb250ZW50VGV4dHVyZUlmTmVl
ZGVkKGNvbG9yLCB0ZXhDb29yZCk7CisgICAgICAgICAgICBhcHBseVRleHR1cmVFeHRlcm5hbE9F
U0lmTmVlZGVkKGNvbG9yLCB0ZXhDb29yZCk7CiAgICAgICAgICAgICBnbF9GcmFnQ29sb3IgPSBj
b2xvcjsKICAgICAgICAgfQogICAgICk7CkBAIC00MzIsNiArNDQxLDcgQEAgUmVmPFRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtPiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKFRl
eHR1cmVNYXBwZXIKICAgICBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMoQWxwaGFCbHVyKTsKICAg
ICBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMoQ29udGVudFRleHR1cmUpOwogICAgIFNFVF9BUFBM
SUVSX0ZST01fT1BUSU9OUyhNYW51YWxSZXBlYXQpOworICAgIFNFVF9BUFBMSUVSX0ZST01fT1BU
SU9OUyhUZXh0dXJlRXh0ZXJuYWxPRVMpOwogCiAgICAgU3RyaW5nQnVpbGRlciB2ZXJ0ZXhTaGFk
ZXJCdWlsZGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oCmluZGV4
IGJhNWMwMDExNzU4NDc3MDY0NGJmZGY0NzdiNWMxN2ExY2ZkOGY2OTYuLjE3Y2I1MGUzYTU1NTEw
NTViMzNiNTZkM2E1MWE2NjgzYjc3ZmMwMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbS5oCkBAIC02Niw2ICs2Niw3IEBAIHB1YmxpYzoKICAgICAgICAgVGV4dHVyZU5W
MTIgICAgICA9IDFMIDw8IDE5LAogICAgICAgICBUZXh0dXJlTlYyMSAgICAgID0gMUwgPDwgMjAs
CiAgICAgICAgIFRleHR1cmVQYWNrZWRZVVYgPSAxTCA8PCAyMSwKKyAgICAgICAgVGV4dHVyZUV4
dGVybmFsT0VTID0gMUwgPDwgMjIsCiAgICAgfTsKIAogICAgIHR5cGVkZWYgdW5zaWduZWQgT3B0
aW9uczsKQEAgLTk2LDYgKzk3LDcgQEAgcHVibGljOgogICAgIFRFWE1BUF9ERUNMQVJFX1VOSUZP
Uk0oYmx1clJhZGl1cykKICAgICBURVhNQVBfREVDTEFSRV9VTklGT1JNKHNoYWRvd09mZnNldCkK
ICAgICBURVhNQVBfREVDTEFSRV9TQU1QTEVSKGNvbnRlbnRUZXh0dXJlKQorICAgIFRFWE1BUF9E
RUNMQVJFX1NBTVBMRVIoZXh0ZXJuYWxPRVNUZXh0dXJlKQogCiAgICAgdm9pZCBzZXRNYXRyaXgo
R0x1aW50LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392430</attachid>
            <date>2020-03-04 09:53:15 -0800</date>
            <delta_ts>2020-03-04 09:55:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208572-20200304175313.patch</filename>
            <type>text/plain</type>
            <size>19688</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzE3YzNlNTI4YTY4ZTcw
ZDY0ZjE0Y2QyODliMmJhMDg4NDZhNmViZS4uNzU1N2NiODg4MjU0NWQxNGMwMjliZTZlY2ExZWQ3
MjM3NzIwYmZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAzLTA0ICBQaGls
aXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXVtH
TF0gRXh0ZXJuYWwgT0VTIHRleHR1cmVzIHJlbmRlcmluZyBzdXBwb3J0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1NzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgaGFyZHdhcmUgdGhhdCBjb250
YWlucyBuYXRpdmUgWVVWIHNhbXBsZXJzLCBzb21lIGRyaXZlcnMgbWF5CisgICAgICAgIG9ubHkg
c3VwcG9ydCBleHRlcm5hbC1vZXMgaW1wb3J0IG9mIFlVViB0ZXh0dXJlcywgc28gYnkgc3VwcG9y
dGluZworICAgICAgICB0aGlzIHRleHR1cmUgdGFyZ2V0IGluIHRoZSBNZWRpYVBsYXllciB3ZSBj
YW4gYXZvaWQgc29tZSBjb3N0bHkKKyAgICAgICAgb3BlcmF0aW9ucyBpbiB0aGUgcGlwZWxpbmUu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR0xWaWRlb1NpbmtHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0R0xWaWRlb1NpbmtTZXRNZWRpYVBsYXllclByaXZh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3N0VmlkZW9GcmFtZUhvbGRl
cjo6R3N0VmlkZW9GcmFtZUhvbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpHc3RWaWRlb0ZyYW1l
SG9sZGVyOjpwbGF0Zm9ybUxheWVyQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0
Zm9ybVRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4
dHVyZWRRdWFkV2l0aFByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdM
OjpkcmF3VGV4dHVyZUV4dGVybmFsT0VTKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyOjpjbG9uZSk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcjo6cGFpbnRUb1RleHR1cmVN
YXBwZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllckJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaDoKKwogMjAyMC0wMy0wNCAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtGaXJzdCBwYWludF0g
R29pbmcgZnJvbSB2aXN1YWxseSBlbXB0eSB0byBub24tZW1wdHkgc2hvdWxkIGltbWVkaWF0ZWx5
IHRyaWdnZXIgbGF5ZXIgdW5mcmVlemluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dMVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HTFZpZGVvU2lua0dTdHJlYW1l
ci5jcHAKaW5kZXggNmMxYTlhNjI5NTI4OTUzZjNhM2MyMTZiNmNkODY2NmUyNzJhYzg5Yy4uYTc2
MGM4ODU4ZWNlYWMyNTEzODIyZTQzYzA3ZDc1NGMzMTc2M2IwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dMVmlkZW9TaW5rR1N0cmVhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR0xW
aWRlb1NpbmtHU3RyZWFtZXIuY3BwCkBAIC0yMzIsNiArMjMyLDcgQEAgdm9pZCB3ZWJLaXRHTFZp
ZGVvU2lua1NldE1lZGlhUGxheWVyUHJpdmF0ZShXZWJLaXRHTFZpZGVvU2luayogc2luaywgTWVk
aWFQbGF5ZXIKIAogICAgIEdSZWZQdHI8R3N0UGFkPiBwYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1l
bnRfZ2V0X3N0YXRpY19wYWQocHJpdi0+YXBwU2luay5nZXQoKSwgInNpbmsiKSk7CiAgICAgZ3N0
X3BhZF9hZGRfcHJvYmUocGFkLmdldCgpLCBzdGF0aWNfY2FzdDxHc3RQYWRQcm9iZVR5cGU+KEdT
VF9QQURfUFJPQkVfVFlQRV9QVVNIIHwgR1NUX1BBRF9QUk9CRV9UWVBFX1FVRVJZX0RPV05TVFJF
QU0gfCBHU1RfUEFEX1BST0JFX1RZUEVfRVZFTlRfRkxVU0gpLCBbXSAoR3N0UGFkKiwgR3N0UGFk
UHJvYmVJbmZvKiBpbmZvLCAgZ3BvaW50ZXIgdXNlckRhdGEpIC0+IEdzdFBhZFByb2JlUmV0dXJu
IHsKKwogICAgICAgICAvLyBJbiBzb21lIHBsYXRmb3JtcyAoZS5nLiBPcGVuTUFYIG9uIHRoZSBS
YXNwYmVycnkgUGkpIHdoZW4gYSByZXNvbHV0aW9uIGNoYW5nZSBvY2N1cnMgdGhlCiAgICAgICAg
IC8vIHBpcGVsaW5lIGhhcyB0byBiZSBkcmFpbmVkIGJlZm9yZSBhIGZyYW1lIHdpdGggdGhlIG5l
dyByZXNvbHV0aW9uIGNhbiBiZSBkZWNvZGVkLgogICAgICAgICAvLyBJbiB0aGlzIGNvbnRleHQs
IGl0J3MgaW1wb3J0YW50IHRoYXQgd2UgZG9uJ3QgaG9sZCByZWZlcmVuY2VzIHRvIGFueSBwcmV2
aW91cyBmcmFtZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAppbmRleCA5OGM2ODE3Mzg5MWFiNmE5ZmU2YzFmNGQyNTZmZDY3NTcxM2M0MWI0Li4wY2U0
OGUxMjlkNGQ2MmJlNWMyNTA0ZTNjMTk5YjM4YTI3M2RlZTViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTk2LDEwICsxOTYsMTMgQEAg
cHVibGljOgogI2lmIFVTRShHU1RSRUFNRVJfR0wpCiAgICAgICAgIG1fZmxhZ3MgPSBmbGFncyB8
IChtX2hhc0FscGhhQ2hhbm5lbCA/IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAwKTsK
IAorICAgICAgICBHc3RNZW1vcnkqIG1lbW9yeSA9IGdzdF9idWZmZXJfcGVla19tZW1vcnkobV9i
dWZmZXIuZ2V0KCksIDApOworICAgICAgICBpZiAoZ3N0X2lzX2dsX21lbW9yeShtZW1vcnkpKQor
ICAgICAgICAgICAgbV90ZXh0dXJlVGFyZ2V0ID0gZ3N0X2dsX21lbW9yeV9nZXRfdGV4dHVyZV90
YXJnZXQoR1NUX0dMX01FTU9SWV9DQVNUKG1lbW9yeSkpOworCiAjaWYgVVNFKFdQRV9WSURFT19Q
TEFORV9ESVNQTEFZX0RNQUJVRikKICAgICAgICAgbV9kbWFidWZGRCA9IC0xOwogICAgICAgICBn
c2l6ZSBvZmZzZXQ7Ci0gICAgICAgIEdzdE1lbW9yeSogbWVtb3J5ID0gZ3N0X2J1ZmZlcl9wZWVr
X21lbW9yeShtX2J1ZmZlci5nZXQoKSwgMCk7CiAgICAgICAgIGlmIChnc3RfaXNfZ2xfbWVtb3J5
X2VnbChtZW1vcnkpKSB7CiAgICAgICAgICAgICBHc3RHTE1lbW9yeUVHTCogZWdsTWVtb3J5ID0g
KEdzdEdMTWVtb3J5RUdMKikgbWVtb3J5OwogICAgICAgICAgICAgZ3N0X2VnbF9pbWFnZV9leHBv
cnRfZG1hYnVmKGVnbE1lbW9yeS0+aW1hZ2UsICZtX2RtYWJ1ZkZELCAmbV9kbWFidWZTdHJpZGUs
ICZvZmZzZXQpOwpAQCAtMzIxLDggKzMyNCwxMSBAQCBwdWJsaWM6CiAKICAgICAgICAgdXNpbmcg
QnVmZmVyID0gVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI7CiAKKyAgICAgICAgaWYg
KG1fdGV4dHVyZVRhcmdldCA9PSBHU1RfR0xfVEVYVFVSRV9UQVJHRVRfRVhURVJOQUxfT0VTKQor
ICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8QnVmZmVyPihCdWZmZXI6OlRleHR1cmVWYXJp
YW50IHsgQnVmZmVyOjpFeHRlcm5hbE9FU1RleHR1cmUgeyBtX3RleHR1cmVJRCB9IH0sIG1fc2l6
ZSwgbV9mbGFncywgR0xfRE9OVF9DQVJFKTsKKwogICAgICAgICBpZiAoKEdTVF9WSURFT19JTkZP
X0lTX1JHQigmbV92aWRlb0ZyYW1lLmluZm8pICYmIEdTVF9WSURFT19JTkZPX05fUExBTkVTKCZt
X3ZpZGVvRnJhbWUuaW5mbykgPT0gMSkpCi0gICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxC
dWZmZXI+KEJ1ZmZlcjo6VGV4dHVyZVZhcmlhbnQgeyBCdWZmZXI6OlJHQlRleHR1cmUgeyAqc3Rh
dGljX2Nhc3Q8R0x1aW50Kj4obV92aWRlb0ZyYW1lLmRhdGFbMF0pIH0gfSwgbV9zaXplLCBtX2Zs
YWdzLCBHTF9SR0JBKTsKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPEJ1ZmZlcj4oQnVm
ZmVyOjpUZXh0dXJlVmFyaWFudCB7IEJ1ZmZlcjo6UkdCVGV4dHVyZSB7IG1fdGV4dHVyZUlEIH0g
fSwgbV9zaXplLCBtX2ZsYWdzLCBHTF9SR0JBKTsKIAogICAgICAgICBpZiAoR1NUX1ZJREVPX0lO
Rk9fSVNfWVVWKCZtX3ZpZGVvRnJhbWUuaW5mbykpIHsKICAgICAgICAgICAgIGlmIChHU1RfVklE
RU9fSU5GT19OX0NPTVBPTkVOVFMoJm1fdmlkZW9GcmFtZS5pbmZvKSA8IDMgfHwgR1NUX1ZJREVP
X0lORk9fTl9QTEFORVMoJm1fdmlkZW9GcmFtZS5pbmZvKSA+IDMpCkBAIC0zMzIsNyArMzM4LDcg
QEAgcHVibGljOgogICAgICAgICAgICAgICAgIC8vIElNWCBWUFUgZGVjb2RlciBkZWNvZGVzIFlV
ViBkYXRhIG9ubHkgaW50byB0aGUgWSB0ZXh0dXJlIGZyb20gd2hpY2ggdGhlIHNhbXBsZXIKICAg
ICAgICAgICAgICAgICAvLyB0aGVuIGRpcmVjdGx5IHByb2R1Y2VzIFJHQkEgZGF0YS4gVGV4dHVy
ZXMgZm9yIG90aGVyIHBsYW5lcyBhcmVuJ3QgdXNlZCwgYnV0CiAgICAgICAgICAgICAgICAgLy8g
dGhhdCdzIGRlY29kZXIncyBwcm9ibGVtLiBXZSBoYXZlIHRvIHRyZWF0IHRoYXQgWSB0ZXh0dXJl
IGFzIGhhdmluZyBSR0JBIGRhdGEuCi0gICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8
QnVmZmVyPihCdWZmZXI6OlRleHR1cmVWYXJpYW50IHsgQnVmZmVyOjpSR0JUZXh0dXJlIHsgKnN0
YXRpY19jYXN0PEdMdWludCo+KG1fdmlkZW9GcmFtZS5kYXRhWzBdKSB9IH0sIG1fc2l6ZSwgbV9m
bGFncywgR0xfUkdCQSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8QnVmZmVy
PihCdWZmZXI6OlRleHR1cmVWYXJpYW50IHsgQnVmZmVyOjpSR0JUZXh0dXJlIHsgbV90ZXh0dXJl
SUQgfSB9LCBtX3NpemUsIG1fZmxhZ3MsIEdMX1JHQkEpOwogICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICB1bnNpZ25lZCBudW1iZXJPZlBsYW5lcyA9IEdTVF9WSURFT19JTkZPX05fUExBTkVT
KCZtX3ZpZGVvRnJhbWUuaW5mbyk7CkBAIC0zODUsNiArMzkxLDcgQEAgcHJpdmF0ZToKICAgICBP
cHRpb25hbDxHc3RWaWRlb0RlY29kZXJQbGF0Zm9ybT4gbV92aWRlb0RlY29kZXJQbGF0Zm9ybTsK
ICAgICBUZXh0dXJlTWFwcGVyR0w6OkZsYWdzIG1fZmxhZ3MgeyB9OwogICAgIEdMdWludCBtX3Rl
eHR1cmVJRCB7IDAgfTsKKyAgICBHc3RHTFRleHR1cmVUYXJnZXQgbV90ZXh0dXJlVGFyZ2V0Owog
ICAgIGJvb2wgbV9pc01hcHBlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc01hcHBlZFRleHR1
cmVzIHsgZmFsc2UgfTsKICNpZiBVU0UoV1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGKQpA
QCAtMzMzNCwxMiArMzM0MSwxNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlYwogICAgIGlmICgh
Z3N0X3ZpZGVvX2luZm9fZnJvbV9jYXBzKCZ2aWRlb0luZm8sIGNhcHMpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBpZiAoIUdTVF9WSURFT19JTkZPX0lTX1JHQigmdmlkZW9JbmZvKSkgewotICAg
ICAgICBpZiAoIW1fY29sb3JDb252ZXJ0KSB7Ci0gICAgICAgICAgICBHc3RNZW1vcnkqIG1lbSA9
IGdzdF9idWZmZXJfcGVla19tZW1vcnkoYnVmZmVyLCAwKTsKLSAgICAgICAgICAgIEdzdEdMQ29u
dGV4dCogY29udGV4dCA9ICgoR3N0R0xCYXNlTWVtb3J5KiltZW0pLT5jb250ZXh0OwotICAgICAg
ICAgICAgbV9jb2xvckNvbnZlcnQgPSBhZG9wdEdSZWYoZ3N0X2dsX2NvbG9yX2NvbnZlcnRfbmV3
KGNvbnRleHQpKTsKLSAgICAgICAgfQorICAgIEdzdE1lbW9yeSogbWVtb3J5ID0gZ3N0X2J1ZmZl
cl9wZWVrX21lbW9yeShidWZmZXIsIDApOworICAgIGJvb2wgaGFzRXh0ZXJuYWxPRVNUZXh0dXJl
ID0gZmFsc2U7CisgICAgaWYgKGdzdF9pc19nbF9tZW1vcnkobWVtb3J5KSkKKyAgICAgICAgaGFz
RXh0ZXJuYWxPRVNUZXh0dXJlID0gZ3N0X2dsX21lbW9yeV9nZXRfdGV4dHVyZV90YXJnZXQoR1NU
X0dMX01FTU9SWV9DQVNUKG1lbW9yeSkpID09IEdTVF9HTF9URVhUVVJFX1RBUkdFVF9FWFRFUk5B
TF9PRVM7CisKKyAgICBpZiAoIUdTVF9WSURFT19JTkZPX0lTX1JHQigmdmlkZW9JbmZvKSB8fCBo
YXNFeHRlcm5hbE9FU1RleHR1cmUpIHsKKyAgICAgICAgaWYgKCFtX2NvbG9yQ29udmVydCkKKyAg
ICAgICAgICAgIG1fY29sb3JDb252ZXJ0ID0gYWRvcHRHUmVmKGdzdF9nbF9jb2xvcl9jb252ZXJ0
X25ldyhHU1RfR0xfQkFTRV9NRU1PUllfQ0FTVChtZW1vcnkpLT5jb250ZXh0KSk7CiAKICAgICAg
ICAgaWYgKCFtX2NvbG9yQ29udmVydElucHV0Q2FwcyB8fCAhZ3N0X2NhcHNfaXNfZXF1YWwobV9j
b2xvckNvbnZlcnRJbnB1dENhcHMuZ2V0KCksIGNhcHMpKSB7CiAgICAgICAgICAgICBtX2NvbG9y
Q29udmVydElucHV0Q2FwcyA9IGNhcHM7CkBAIC0zMzQ5LDcgKzMzNTgsOCBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBGbG9hdFJlYwogI2Vsc2UKICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZvcm1hdFN0cmlu
ZyA9IEdTVF9WSURFT19JTkZPX0hBU19BTFBIQSgmdmlkZW9JbmZvKSA/ICJSR0JBIiA6ICJSR0J4
IjsKICNlbmRpZgotICAgICAgICAgICAgZ3N0X2NhcHNfc2V0X3NpbXBsZShtX2NvbG9yQ29udmVy
dE91dHB1dENhcHMuZ2V0KCksICJmb3JtYXQiLCBHX1RZUEVfU1RSSU5HLCBmb3JtYXRTdHJpbmcs
IG51bGxwdHIpOworICAgICAgICAgICAgZ3N0X2NhcHNfc2V0X3NpbXBsZShtX2NvbG9yQ29udmVy
dE91dHB1dENhcHMuZ2V0KCksICJmb3JtYXQiLCBHX1RZUEVfU1RSSU5HLCBmb3JtYXRTdHJpbmcs
CisgICAgICAgICAgICAgICAgInRleHR1cmUtdGFyZ2V0IiwgR19UWVBFX1NUUklORywgR1NUX0dM
X1RFWFRVUkVfVEFSR0VUXzJEX1NUUiwgbnVsbHB0cik7CiAgICAgICAgICAgICBpZiAoIWdzdF9n
bF9jb2xvcl9jb252ZXJ0X3NldF9jYXBzKG1fY29sb3JDb252ZXJ0LmdldCgpLCBjYXBzLCBtX2Nv
bG9yQ29udmVydE91dHB1dENhcHMuZ2V0KCkpKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmNw
cAppbmRleCBlZTE0NWQyNGVjNzI5YjE5OWIxNzY4MDJkMzU5MTMwOTA3OGU4MjhiLi5iODhjODAy
ODFlZmIxOWU1OGNjZWUxY2E5MWI5NzhiOTdkZTk4Y2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVh
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
VmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmNwcApAQCAtMTc4LDcgKzE3OCwxMSBAQCBib29s
IFZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1U
ZXh0dXJlKFRleHR1cmVNYXBwZQogICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBUZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZVlVVjsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgfSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXShjb25zdCBC
dWZmZXI6OkV4dGVybmFsT0VTVGV4dHVyZSYpIHsKKyAgICAgICAgICAgIG9wdGlvbnMgPSBUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZUV4dGVybmFsT0VTOworICAgICAgICB9Cisg
ICAgKTsKIAogICAgIGlmIChvcHRpb25zICE9IG1fc2hhZGVyT3B0aW9ucykgewogICAgICAgICBt
X3NoYWRlclByb2dyYW0gPSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKG9wdGlv
bnMpOwpAQCAtMjUyLDYgKzI1NiwxNSBAQCBib29sIFZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1l
cjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFRleHR1cmVNYXBwZQogICAgICAg
ICAgICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBf
UywgR0xfQ0xBTVBfVE9fRURHRSk7CiAgICAgICAgICAgICAgICAgZ2xUZXhQYXJhbWV0ZXJmKEdM
X1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKICAgICAg
ICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgWyZdKGNvbnN0IEJ1ZmZlcjo6RXh0ZXJuYWxP
RVNUZXh0dXJlJiB0ZXh0dXJlKSB7CisgICAgICAgICAgICBnbFVuaWZvcm0xaShtX3NoYWRlclBy
b2dyYW0tPmV4dGVybmFsT0VTVGV4dHVyZUxvY2F0aW9uKCksIDApOworCisgICAgICAgICAgICBn
bEFjdGl2ZVRleHR1cmUoR0xfVEVYVFVSRTApOworICAgICAgICAgICAgZ2xCaW5kVGV4dHVyZShH
TF9URVhUVVJFX0VYVEVSTkFMX09FUywgdGV4dHVyZS5pZCk7CisgICAgICAgICAgICBnbFRleFBh
cmFtZXRlcmkoR0xfVEVYVFVSRV9FWFRFUk5BTF9PRVMsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwg
R0xfTElORUFSKTsKKyAgICAgICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFX0VYVEVS
TkFMX09FUywgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOworICAgICAgICAg
ICAgZ2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfRVhURVJOQUxfT0VTLCBHTF9URVhUVVJFX1dS
QVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CiAgICAgICAgIH0pOwogCiAgICAgbV9zaGFkZXJQcm9n
cmFtLT5zZXRNYXRyaXgobV9zaGFkZXJQcm9ncmFtLT5tb2RlbFZpZXdNYXRyaXhMb2NhdGlvbigp
LCBtX21vZGVsVmlld01hdHJpeCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCmluZGV4IGI5NzM5YTVm
OTcyMGM5OGM1YjVlZWQ3OTExMWFmZmY4YTY4NDE4MWQuLjk2ZTMwNDMxMjY5ZTRkODJiMWMxMDc3
MTllNzA1YjgxMzJhNjI3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCkBAIC03NzMsNyArNzcz
LDEyIEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZWRRdWFkV2l0aFByb2dyYW0o
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0mIHByCiAgICAgZ2xVc2VQcm9ncmFtKHByb2dyYW0u
cHJvZ3JhbUlEKCkpOwogCiAgICAgYm9vbCByZXBlYXRXcmFwID0gd3JhcE1vZGUoKSA9PSBSZXBl
YXRXcmFwICYmIG1fY29udGV4dEF0dHJpYnV0ZXMuc3VwcG9ydHNOUE9UVGV4dHVyZXM7Ci0gICAg
R0xlbnVtIHRhcmdldCA9IGZsYWdzICYgU2hvdWxkVXNlQVJCVGV4dHVyZVJlY3QgPyBHTGVudW0o
R0xfVEVYVFVSRV9SRUNUQU5HTEVfQVJCKSA6IEdMZW51bShHTF9URVhUVVJFXzJEKTsKKyAgICBH
TGVudW0gdGFyZ2V0OworICAgIGlmIChmbGFncyAmIFNob3VsZFVzZUV4dGVybmFsT0VTVGV4dHVy
ZVJlY3QpCisgICAgICAgIHRhcmdldCA9IEdMZW51bShHTF9URVhUVVJFX0VYVEVSTkFMX09FUyk7
CisgICAgZWxzZQorICAgICAgICB0YXJnZXQgPSBmbGFncyAmIFNob3VsZFVzZUFSQlRleHR1cmVS
ZWN0ID8gR0xlbnVtKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FSQikgOiBHTGVudW0oR0xfVEVYVFVS
RV8yRCk7CisKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGV4dHVyZXNBbmRTYW1wbGVy
cy5zaXplKCk7ICsraSkgewogICAgICAgICBhdXRvJiB0ZXh0dXJlQW5kU2FtcGxlciA9IHRleHR1
cmVzQW5kU2FtcGxlcnNbaV07CiAKQEAgLTk2MSw2ICs5NjYsMTMgQEAgc3RkOjp1bmlxdWVfcHRy
PFRleHR1cmVNYXBwZXI+IFRleHR1cmVNYXBwZXI6OnBsYXRmb3JtQ3JlYXRlQWNjZWxlcmF0ZWQo
KQogICAgIHJldHVybiBtYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJHTD4oKTsKIH0KIAordm9pZCBU
ZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlRXh0ZXJuYWxPRVMoR0x1aW50IHRleHR1cmUsIEZs
YWdzIGZsYWdzLCBjb25zdCBJbnRTaXplJiBzaXplLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJl
Y3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgsIGZsb2F0IG9w
YWNpdHkpCit7CisgICAgUmVmPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBwcm9ncmFtID0g
ZGF0YSgpLmdldFNoYWRlclByb2dyYW0oVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06Ok9wdGlv
bjo6VGV4dHVyZUV4dGVybmFsT0VTKTsKKyAgICBkcmF3VGV4dHVyZWRRdWFkV2l0aFByb2dyYW0o
cHJvZ3JhbS5nZXQoKSwgeyB7IHRleHR1cmUsIHByb2dyYW0tPmV4dGVybmFsT0VTVGV4dHVyZUxv
Y2F0aW9uKCkgfSB9LAorICAgICAgICBmbGFncyB8IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkVXNl
RXh0ZXJuYWxPRVNUZXh0dXJlUmVjdCwgc2l6ZSwgdGFyZ2V0UmVjdCwgbW9kZWxWaWV3TWF0cml4
LCBvcGFjaXR5KTsKK30KKwogfTsKIAogI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBFUl9HTCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyR0wuaAppbmRleCBkYWE1MGQxNTkxM2ExZmJmZDM2ZTZlMjdmOGQ0ZDVmZWIy
YzljZDI2Li42NWU4MTQxZjUzODU5NGRjMWM5NGU1NGMzMDQ0MjYyODdlMWZmYjU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHTC5oCkBAIC01Niw3ICs1Niw4IEBAIHB1YmxpYzoKICAgICAgICAgU2hvdWxkUm90
YXRlVGV4dHVyZTI3MCA9IDB4NDAsCiAgICAgICAgIFNob3VsZENvbnZlcnRUZXh0dXJlQkdSQVRv
UkdCQSA9IDB4ODAsCiAgICAgICAgIFNob3VsZENvbnZlcnRUZXh0dXJlQVJHQlRvUkdCQSA9IDB4
MTAwLAotICAgICAgICBTaG91bGROb3RCbGVuZCA9IDB4MjAwCisgICAgICAgIFNob3VsZE5vdEJs
ZW5kID0gMHgyMDAsCisgICAgICAgIFNob3VsZFVzZUV4dGVybmFsT0VTVGV4dHVyZVJlY3QgPSAw
eDQwMAogICAgIH07CiAKICAgICB0eXBlZGVmIGludCBGbGFnczsKQEAgLTg2LDYgKzg3LDcgQEAg
cHVibGljOgogICAgIHZvaWQgZHJhd0ZpbHRlcmVkKGNvbnN0IEJpdG1hcFRleHR1cmUmIHNvdXJj
ZVRleHR1cmUsIGNvbnN0IEJpdG1hcFRleHR1cmUqIGNvbnRlbnRUZXh0dXJlLCBjb25zdCBGaWx0
ZXJPcGVyYXRpb24mLCBpbnQgcGFzcyk7CiAKICAgICB2b2lkIHNldEVuYWJsZUVkZ2VEaXN0YW5j
ZUFudGlhbGlhc2luZyhib29sIGVuYWJsZWQpIHsgbV9lbmFibGVFZGdlRGlzdGFuY2VBbnRpYWxp
YXNpbmcgPSBlbmFibGVkOyB9CisgICAgdm9pZCBkcmF3VGV4dHVyZUV4dGVybmFsT0VTKEdMdWlu
dCB0ZXh0dXJlLCBGbGFncywgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgsIGZsb2F0IG9wYWNpdHkpOwog
CiBwcml2YXRlOgogICAgIHZvaWQgZHJhd1RleHR1cmVkUXVhZFdpdGhQcm9ncmFtKFRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtJiwgdWludDMyX3QgdGV4dHVyZSwgRmxhZ3MsIGNvbnN0IEludFNp
emUmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxW
aWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0xIZWFkZXJzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMSGVhZGVycy5o
CmluZGV4IGZkZDI1NDI1ODU5MTE3MDRkZmE2ZDVlMzdhZjY1ZWIwOWIxMTk3OTQuLjk5MzUxYTdh
NGRhODQwZjE2MTE4MzVmYWU4NTkxMGNkNzBmMmYxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0xIZWFkZXJzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJH
TEhlYWRlcnMuaApAQCAtNTIsMyArNTIsNyBAQAogI2lmbmRlZiBHTF9VTlBBQ0tfU0tJUF9QSVhF
TFMKICNkZWZpbmUgR0xfVU5QQUNLX1NLSVBfUElYRUxTIDB4MENGNAogI2VuZGlmCisKKyNpZm5k
ZWYgR0xfVEVYVFVSRV9FWFRFUk5BTF9PRVMKKyNkZWZpbmUgR0xfVEVYVFVSRV9FWFRFUk5BTF9P
RVMgMHg4RDY1CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJCdWZmZXIuY3BwCmluZGV4IDJkYjhjZmIxM2IxMzFkMjExZjJiNzk3ZDhhMDA2ZmYyYjA2
MzA4NjAuLjkzNmJlZjgyOTk4YzMwM2IwYmQ5ZjZmZDM0MWQ4NzhiMjJmM2QzYjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllckJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmNwcApAQCAtODQs
NiArODQsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVm
ZmVyPiBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmYKICAgICAgICAgICAgIHJldHVybiBt
YWtlVW5pcXVlPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPihXVEZNb3ZlKGNsb25l
ZFRleHR1cmUpLCBtX2V4dHJhRmxhZ3MpOwogICAgICAgICB9LAogICAgICAgICBbXShjb25zdCBZ
VVZUZXh0dXJlJikKKyAgICAgICAgeworICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9LAorICAgICAgICBbXShjb25zdCBF
eHRlcm5hbE9FU1RleHR1cmUmKQogICAgICAgICB7CiAgICAgICAgICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xNDEsNiArMTQ2LDEwIEBAIHZv
aWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI6OnBhaW50VG9UZXh0dXJlTWFwcGVy
KFRleHR1cmVNYXBwZXImIHRleHR1CiAgICAgICAgICAgICAgICAgICAgIHRleHR1cmUueXV2VG9S
Z2JNYXRyaXgsIG1fZXh0cmFGbGFncywgbV9zaXplLCB0YXJnZXRSZWN0LCBtb2RlbFZpZXdNYXRy
aXgsIG9wYWNpdHkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQorICAg
ICAgICB9LAorICAgICAgICBbJl0oY29uc3QgRXh0ZXJuYWxPRVNUZXh0dXJlJiB0ZXh0dXJlKSB7
CisgICAgICAgICAgICBBU1NFUlQodGV4dHVyZS5pZCk7CisgICAgICAgICAgICB0ZXhtYXBHTC5k
cmF3VGV4dHVyZUV4dGVybmFsT0VTKHRleHR1cmUuaWQsIG1fZXh0cmFGbGFncywgbV9zaXplLCB0
YXJnZXRSZWN0LCBtb2RlbFZpZXdNYXRyaXgsIG9wYWNpdHkpOwogICAgICAgICB9KTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuaAppbmRleCBm
Mzc1NDhkYzkxYTE3M2RhZmJhZTFhNmNiNWQ2NGUxZWY2M2M0MWIxLi4zZjIxNzhlYTRjZDRkOGM5
MWNkMmQxNmFhZmZlMjFhM2M2NjM4MTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJCdWZmZXIuaApAQCAtNTMsNyArNTMsMTAgQEAgcHVibGljOgogICAgICAg
ICBzdGQ6OmFycmF5PHVuc2lnbmVkLCAzPiB5dXZQbGFuZU9mZnNldDsKICAgICAgICAgc3RkOjph
cnJheTxHTGZsb2F0LCA5PiB5dXZUb1JnYk1hdHJpeDsKICAgICB9OwotICAgIHVzaW5nIFRleHR1
cmVWYXJpYW50ID0gV1RGOjpWYXJpYW50PFJHQlRleHR1cmUsIFlVVlRleHR1cmU+OworICAgIHN0
cnVjdCBFeHRlcm5hbE9FU1RleHR1cmUgeworICAgICAgICBHTHVpbnQgaWQ7CisgICAgfTsKKyAg
ICB1c2luZyBUZXh0dXJlVmFyaWFudCA9IFdURjo6VmFyaWFudDxSR0JUZXh0dXJlLCBZVVZUZXh0
dXJlLCBFeHRlcm5hbE9FU1RleHR1cmU+OwogCiAgICAgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXJCdWZmZXIoVGV4dHVyZVZhcmlhbnQmJiwgY29uc3QgSW50U2l6ZSYsIFRleHR1cmVNYXBwZXJH
TDo6RmxhZ3MsIEdMaW50IGludGVybmFsRm9ybWF0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbS5jcHAKaW5kZXggNWUwMjg0N2U0YWZlYjBkOTRlMDc2MTQ5MzI1MWZi
NWUyY2E3ZDZlZi4uNzdkNzA3ODY2NTkxMDk3OTc1MGRjNzZhY2QyMmVlOWU1MjVlOGQ4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCkBAIC0xNjAsNiArMTYw
LDE0IEBAIHN0YXRpYyBjb25zdCBjaGFyKiB2ZXJ0ZXhUZW1wbGF0ZUNvbW1vbiA9CiAgICAgR0xT
TF9ESVJFQ1RJVkUoZGVmaW5lIEdBVVNTSUFOX0tFUk5FTF9TVEVQIDAuMikKIAogCisjZGVmaW5l
IE9FU19FR0xfSU1BR0VfRVhURVJOQUxfRElSRUNUSVZFIFwKKyAgICBHTFNMX0RJUkVDVElWRShp
ZmRlZiBHTF9FUykgXAorICAgICAgICBHTFNMX0RJUkVDVElWRShleHRlbnNpb24gR0xfT0VTX0VH
TF9pbWFnZV9leHRlcm5hbCA6IHJlcXVpcmUpIFwKKyAgICAgICAgR0xTTF9ESVJFQ1RJVkUoZGVm
aW5lIFNhbXBsZXJFeHRlcm5hbE9FU1R5cGUgc2FtcGxlckV4dGVybmFsT0VTKSBcCisgICAgR0xT
TF9ESVJFQ1RJVkUoZWxzZSkgXAorICAgICAgICBHTFNMX0RJUkVDVElWRShkZWZpbmUgU2FtcGxl
ckV4dGVybmFsT0VTVHlwZSBzYW1wbGVyMkQpIFwKKyAgICBHTFNMX0RJUkVDVElWRShlbmRpZikK
KwogLy8gQ29tbW9uIGhlYWRlciBmb3IgYWxsIHZlcnNpb25zLiBXZSBkZWZpbmUgdGhlIG1hdHJp
Y2VzIHZhcmlhYmxlcyBoZXJlIHRvIGtlZXAgdGhlIHByZWNpc2lvbgogLy8gZGlyZWN0aXZlcyBz
Y29wZTogdGhlIGZpcnN0IG9uZSBhcHBsaWVzIHRvIHRoZSBtYXRyaWNlcyB2YXJpYWJsZXMgYW5k
IHRoZSBuZXh0IG9uZSB0byB0aGUKIC8vIHJlc3Qgb2YgdGhlbS4gVGhlIHByZWNpc2lvbiBpcyBv
bmx5IHVzZWQgaW4gR0xFUy4KQEAgLTE2NywxMCArMTc1LDkgQEAgc3RhdGljIGNvbnN0IGNoYXIq
IGZyYWdtZW50VGVtcGxhdGVIZWFkZXJDb21tb24gPQogICAgIFJFQ1RfVEVYVFVSRV9ESVJFQ1RJ
VkUKICAgICBBTlRJQUxJQVNJTkdfVEVYX0NPT1JEX0RJUkVDVElWRQogICAgIEJMVVJfQ09OU1RB
TlRTCisgICAgT0VTX0VHTF9JTUFHRV9FWFRFUk5BTF9ESVJFQ1RJVkUKICNpZiBVU0UoT1BFTkdM
X0VTKQogICAgIFRFWFRVUkVfU1BBQ0VfTUFUUklYX1BSRUNJU0lPTl9ESVJFQ1RJVkUKLSNlbmRp
ZgotI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgU1RSSU5HSUZZKAogICAgICAgICBwcmVjaXNpb24g
VGV4dHVyZVNwYWNlTWF0cml4UHJlY2lzaW9uIGZsb2F0OwogICAgICkKQEAgLTIxMSw2ICsyMTgs
NyBAQCBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRUZW1wbGF0ZUNvbW1vbiA9CiAgICAgICAg
IHVuaWZvcm0gU2FtcGxlclR5cGUgc19zYW1wbGVyVTsKICAgICAgICAgdW5pZm9ybSBTYW1wbGVy
VHlwZSBzX3NhbXBsZXJWOwogICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRCBzX2NvbnRlbnRUZXh0
dXJlOworICAgICAgICB1bmlmb3JtIFNhbXBsZXJFeHRlcm5hbE9FU1R5cGUgc19leHRlcm5hbE9F
U1RleHR1cmU7CiAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9vcGFjaXR5OwogICAgICAgICB1bmlm
b3JtIGZsb2F0IHVfZmlsdGVyQW1vdW50OwogICAgICAgICB1bmlmb3JtIG1hdDMgdV95dXZUb1Jn
YjsKQEAgLTM3NCw2ICszODIsMTIgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50VGVtcGxh
dGVDb21tb24gPQogICAgICAgICAgICAgY29sb3IgPSBzb3VyY2VPdmVyKGNvbnRlbnRDb2xvciwg
Y29sb3IpOwogICAgICAgICB9CiAKKyAgICAgICAgdm9pZCBhcHBseVRleHR1cmVFeHRlcm5hbE9F
Uyhpbm91dCB2ZWM0IGNvbG9yLCB2ZWMyIHRleENvb3JkKQorICAgICAgICB7CisgICAgICAgICAg
ICB2ZWM0IGNvbnRlbnRDb2xvciA9IHRleHR1cmUyRChzX2V4dGVybmFsT0VTVGV4dHVyZSwgdGV4
Q29vcmQpOworICAgICAgICAgICAgY29sb3IgPSBzb3VyY2VPdmVyKGNvbnRlbnRDb2xvciwgY29s
b3IpOworICAgICAgICB9CisKICAgICAgICAgdm9pZCBhcHBseVNvbGlkQ29sb3IoaW5vdXQgdmVj
NCBjb2xvcikgeyBjb2xvciAqPSB1X2NvbG9yOyB9CiAKICAgICAgICAgdm9pZCBtYWluKHZvaWQp
CkBAIC00MDAsNiArNDE0LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50VGVtcGxhdGVD
b21tb24gPQogICAgICAgICAgICAgYXBwbHlCbHVyRmlsdGVySWZOZWVkZWQoY29sb3IsIHRleENv
b3JkKTsKICAgICAgICAgICAgIGFwcGx5QWxwaGFCbHVySWZOZWVkZWQoY29sb3IsIHRleENvb3Jk
KTsKICAgICAgICAgICAgIGFwcGx5Q29udGVudFRleHR1cmVJZk5lZWRlZChjb2xvciwgdGV4Q29v
cmQpOworICAgICAgICAgICAgYXBwbHlUZXh0dXJlRXh0ZXJuYWxPRVNJZk5lZWRlZChjb2xvciwg
dGV4Q29vcmQpOwogICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gY29sb3I7CiAgICAgICAgIH0K
ICAgICApOwpAQCAtNDMyLDYgKzQ0Nyw3IEBAIFJlZjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bT4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNyZWF0ZShUZXh0dXJlTWFwcGVyCiAgICAg
U0VUX0FQUExJRVJfRlJPTV9PUFRJT05TKEFscGhhQmx1cik7CiAgICAgU0VUX0FQUExJRVJfRlJP
TV9PUFRJT05TKENvbnRlbnRUZXh0dXJlKTsKICAgICBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMo
TWFudWFsUmVwZWF0KTsKKyAgICBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMoVGV4dHVyZUV4dGVy
bmFsT0VTKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgdmVydGV4U2hhZGVyQnVpbGRlcjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaAppbmRleCBiYTVjMDAxMTc1ODQ3NzA2
NDRiZmRmNDc3YjVjMTdhMWNmZDhmNjk2Li4xN2NiNTBlM2E1NTUxMDU1YjMzYjU2ZDNhNTFhNjY4
M2I3N2ZjMDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaApAQCAt
NjYsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgICAgIFRleHR1cmVOVjEyICAgICAgPSAxTCA8PCAx
OSwKICAgICAgICAgVGV4dHVyZU5WMjEgICAgICA9IDFMIDw8IDIwLAogICAgICAgICBUZXh0dXJl
UGFja2VkWVVWID0gMUwgPDwgMjEsCisgICAgICAgIFRleHR1cmVFeHRlcm5hbE9FUyA9IDFMIDw8
IDIyLAogICAgIH07CiAKICAgICB0eXBlZGVmIHVuc2lnbmVkIE9wdGlvbnM7CkBAIC05Niw2ICs5
Nyw3IEBAIHB1YmxpYzoKICAgICBURVhNQVBfREVDTEFSRV9VTklGT1JNKGJsdXJSYWRpdXMpCiAg
ICAgVEVYTUFQX0RFQ0xBUkVfVU5JRk9STShzaGFkb3dPZmZzZXQpCiAgICAgVEVYTUFQX0RFQ0xB
UkVfU0FNUExFUihjb250ZW50VGV4dHVyZSkKKyAgICBURVhNQVBfREVDTEFSRV9TQU1QTEVSKGV4
dGVybmFsT0VTVGV4dHVyZSkKIAogICAgIHZvaWQgc2V0TWF0cml4KEdMdWludCwgY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392431</attachid>
            <date>2020-03-04 09:55:32 -0800</date>
            <delta_ts>2020-03-05 03:06:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208572-20200304175530.patch</filename>
            <type>text/plain</type>
            <size>18563</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzE3YzNlNTI4YTY4ZTcw
ZDY0ZjE0Y2QyODliMmJhMDg4NDZhNmViZS4uNzU1N2NiODg4MjU0NWQxNGMwMjliZTZlY2ExZWQ3
MjM3NzIwYmZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAzLTA0ICBQaGls
aXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXVtH
TF0gRXh0ZXJuYWwgT0VTIHRleHR1cmVzIHJlbmRlcmluZyBzdXBwb3J0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1NzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgaGFyZHdhcmUgdGhhdCBjb250
YWlucyBuYXRpdmUgWVVWIHNhbXBsZXJzLCBzb21lIGRyaXZlcnMgbWF5CisgICAgICAgIG9ubHkg
c3VwcG9ydCBleHRlcm5hbC1vZXMgaW1wb3J0IG9mIFlVViB0ZXh0dXJlcywgc28gYnkgc3VwcG9y
dGluZworICAgICAgICB0aGlzIHRleHR1cmUgdGFyZ2V0IGluIHRoZSBNZWRpYVBsYXllciB3ZSBj
YW4gYXZvaWQgc29tZSBjb3N0bHkKKyAgICAgICAgb3BlcmF0aW9ucyBpbiB0aGUgcGlwZWxpbmUu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR0xWaWRlb1NpbmtHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0R0xWaWRlb1NpbmtTZXRNZWRpYVBsYXllclByaXZh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3N0VmlkZW9GcmFtZUhvbGRl
cjo6R3N0VmlkZW9GcmFtZUhvbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpHc3RWaWRlb0ZyYW1l
SG9sZGVyOjpwbGF0Zm9ybUxheWVyQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0
Zm9ybVRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4
dHVyZWRRdWFkV2l0aFByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdM
OjpkcmF3VGV4dHVyZUV4dGVybmFsT0VTKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyOjpjbG9uZSk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcjo6cGFpbnRUb1RleHR1cmVN
YXBwZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllckJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaDoKKwogMjAyMC0wMy0wNCAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtGaXJzdCBwYWludF0g
R29pbmcgZnJvbSB2aXN1YWxseSBlbXB0eSB0byBub24tZW1wdHkgc2hvdWxkIGltbWVkaWF0ZWx5
IHRyaWdnZXIgbGF5ZXIgdW5mcmVlemluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA5OGM2ODE3Mzg5MWFiNmE5ZmU2YzFmNGQyNTZmZDY3
NTcxM2M0MWI0Li4wY2U0OGUxMjlkNGQ2MmJlNWMyNTA0ZTNjMTk5YjM4YTI3M2RlZTViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTk2
LDEwICsxOTYsMTMgQEAgcHVibGljOgogI2lmIFVTRShHU1RSRUFNRVJfR0wpCiAgICAgICAgIG1f
ZmxhZ3MgPSBmbGFncyB8IChtX2hhc0FscGhhQ2hhbm5lbCA/IFRleHR1cmVNYXBwZXJHTDo6U2hv
dWxkQmxlbmQgOiAwKTsKIAorICAgICAgICBHc3RNZW1vcnkqIG1lbW9yeSA9IGdzdF9idWZmZXJf
cGVla19tZW1vcnkobV9idWZmZXIuZ2V0KCksIDApOworICAgICAgICBpZiAoZ3N0X2lzX2dsX21l
bW9yeShtZW1vcnkpKQorICAgICAgICAgICAgbV90ZXh0dXJlVGFyZ2V0ID0gZ3N0X2dsX21lbW9y
eV9nZXRfdGV4dHVyZV90YXJnZXQoR1NUX0dMX01FTU9SWV9DQVNUKG1lbW9yeSkpOworCiAjaWYg
VVNFKFdQRV9WSURFT19QTEFORV9ESVNQTEFZX0RNQUJVRikKICAgICAgICAgbV9kbWFidWZGRCA9
IC0xOwogICAgICAgICBnc2l6ZSBvZmZzZXQ7Ci0gICAgICAgIEdzdE1lbW9yeSogbWVtb3J5ID0g
Z3N0X2J1ZmZlcl9wZWVrX21lbW9yeShtX2J1ZmZlci5nZXQoKSwgMCk7CiAgICAgICAgIGlmIChn
c3RfaXNfZ2xfbWVtb3J5X2VnbChtZW1vcnkpKSB7CiAgICAgICAgICAgICBHc3RHTE1lbW9yeUVH
TCogZWdsTWVtb3J5ID0gKEdzdEdMTWVtb3J5RUdMKikgbWVtb3J5OwogICAgICAgICAgICAgZ3N0
X2VnbF9pbWFnZV9leHBvcnRfZG1hYnVmKGVnbE1lbW9yeS0+aW1hZ2UsICZtX2RtYWJ1ZkZELCAm
bV9kbWFidWZTdHJpZGUsICZvZmZzZXQpOwpAQCAtMzIxLDggKzMyNCwxMSBAQCBwdWJsaWM6CiAK
ICAgICAgICAgdXNpbmcgQnVmZmVyID0gVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI7
CiAKKyAgICAgICAgaWYgKG1fdGV4dHVyZVRhcmdldCA9PSBHU1RfR0xfVEVYVFVSRV9UQVJHRVRf
RVhURVJOQUxfT0VTKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8QnVmZmVyPihCdWZm
ZXI6OlRleHR1cmVWYXJpYW50IHsgQnVmZmVyOjpFeHRlcm5hbE9FU1RleHR1cmUgeyBtX3RleHR1
cmVJRCB9IH0sIG1fc2l6ZSwgbV9mbGFncywgR0xfRE9OVF9DQVJFKTsKKwogICAgICAgICBpZiAo
KEdTVF9WSURFT19JTkZPX0lTX1JHQigmbV92aWRlb0ZyYW1lLmluZm8pICYmIEdTVF9WSURFT19J
TkZPX05fUExBTkVTKCZtX3ZpZGVvRnJhbWUuaW5mbykgPT0gMSkpCi0gICAgICAgICAgICByZXR1
cm4gbWFrZVVuaXF1ZTxCdWZmZXI+KEJ1ZmZlcjo6VGV4dHVyZVZhcmlhbnQgeyBCdWZmZXI6OlJH
QlRleHR1cmUgeyAqc3RhdGljX2Nhc3Q8R0x1aW50Kj4obV92aWRlb0ZyYW1lLmRhdGFbMF0pIH0g
fSwgbV9zaXplLCBtX2ZsYWdzLCBHTF9SR0JBKTsKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5p
cXVlPEJ1ZmZlcj4oQnVmZmVyOjpUZXh0dXJlVmFyaWFudCB7IEJ1ZmZlcjo6UkdCVGV4dHVyZSB7
IG1fdGV4dHVyZUlEIH0gfSwgbV9zaXplLCBtX2ZsYWdzLCBHTF9SR0JBKTsKIAogICAgICAgICBp
ZiAoR1NUX1ZJREVPX0lORk9fSVNfWVVWKCZtX3ZpZGVvRnJhbWUuaW5mbykpIHsKICAgICAgICAg
ICAgIGlmIChHU1RfVklERU9fSU5GT19OX0NPTVBPTkVOVFMoJm1fdmlkZW9GcmFtZS5pbmZvKSA8
IDMgfHwgR1NUX1ZJREVPX0lORk9fTl9QTEFORVMoJm1fdmlkZW9GcmFtZS5pbmZvKSA+IDMpCkBA
IC0zMzIsNyArMzM4LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIC8vIElNWCBWUFUgZGVj
b2RlciBkZWNvZGVzIFlVViBkYXRhIG9ubHkgaW50byB0aGUgWSB0ZXh0dXJlIGZyb20gd2hpY2gg
dGhlIHNhbXBsZXIKICAgICAgICAgICAgICAgICAvLyB0aGVuIGRpcmVjdGx5IHByb2R1Y2VzIFJH
QkEgZGF0YS4gVGV4dHVyZXMgZm9yIG90aGVyIHBsYW5lcyBhcmVuJ3QgdXNlZCwgYnV0CiAgICAg
ICAgICAgICAgICAgLy8gdGhhdCdzIGRlY29kZXIncyBwcm9ibGVtLiBXZSBoYXZlIHRvIHRyZWF0
IHRoYXQgWSB0ZXh0dXJlIGFzIGhhdmluZyBSR0JBIGRhdGEuCi0gICAgICAgICAgICAgICAgcmV0
dXJuIG1ha2VVbmlxdWU8QnVmZmVyPihCdWZmZXI6OlRleHR1cmVWYXJpYW50IHsgQnVmZmVyOjpS
R0JUZXh0dXJlIHsgKnN0YXRpY19jYXN0PEdMdWludCo+KG1fdmlkZW9GcmFtZS5kYXRhWzBdKSB9
IH0sIG1fc2l6ZSwgbV9mbGFncywgR0xfUkdCQSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1h
a2VVbmlxdWU8QnVmZmVyPihCdWZmZXI6OlRleHR1cmVWYXJpYW50IHsgQnVmZmVyOjpSR0JUZXh0
dXJlIHsgbV90ZXh0dXJlSUQgfSB9LCBtX3NpemUsIG1fZmxhZ3MsIEdMX1JHQkEpOwogICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICB1bnNpZ25lZCBudW1iZXJPZlBsYW5lcyA9IEdTVF9WSURF
T19JTkZPX05fUExBTkVTKCZtX3ZpZGVvRnJhbWUuaW5mbyk7CkBAIC0zODUsNiArMzkxLDcgQEAg
cHJpdmF0ZToKICAgICBPcHRpb25hbDxHc3RWaWRlb0RlY29kZXJQbGF0Zm9ybT4gbV92aWRlb0Rl
Y29kZXJQbGF0Zm9ybTsKICAgICBUZXh0dXJlTWFwcGVyR0w6OkZsYWdzIG1fZmxhZ3MgeyB9Owog
ICAgIEdMdWludCBtX3RleHR1cmVJRCB7IDAgfTsKKyAgICBHc3RHTFRleHR1cmVUYXJnZXQgbV90
ZXh0dXJlVGFyZ2V0OwogICAgIGJvb2wgbV9pc01hcHBlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2hhc01hcHBlZFRleHR1cmVzIHsgZmFsc2UgfTsKICNpZiBVU0UoV1BFX1ZJREVPX1BMQU5FX0RJ
U1BMQVlfRE1BQlVGKQpAQCAtMzMzNCwxMiArMzM0MSwxNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9h
dFJlYwogICAgIGlmICghZ3N0X3ZpZGVvX2luZm9fZnJvbV9jYXBzKCZ2aWRlb0luZm8sIGNhcHMp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIUdTVF9WSURFT19JTkZPX0lTX1JHQigmdmlk
ZW9JbmZvKSkgewotICAgICAgICBpZiAoIW1fY29sb3JDb252ZXJ0KSB7Ci0gICAgICAgICAgICBH
c3RNZW1vcnkqIG1lbSA9IGdzdF9idWZmZXJfcGVla19tZW1vcnkoYnVmZmVyLCAwKTsKLSAgICAg
ICAgICAgIEdzdEdMQ29udGV4dCogY29udGV4dCA9ICgoR3N0R0xCYXNlTWVtb3J5KiltZW0pLT5j
b250ZXh0OwotICAgICAgICAgICAgbV9jb2xvckNvbnZlcnQgPSBhZG9wdEdSZWYoZ3N0X2dsX2Nv
bG9yX2NvbnZlcnRfbmV3KGNvbnRleHQpKTsKLSAgICAgICAgfQorICAgIEdzdE1lbW9yeSogbWVt
b3J5ID0gZ3N0X2J1ZmZlcl9wZWVrX21lbW9yeShidWZmZXIsIDApOworICAgIGJvb2wgaGFzRXh0
ZXJuYWxPRVNUZXh0dXJlID0gZmFsc2U7CisgICAgaWYgKGdzdF9pc19nbF9tZW1vcnkobWVtb3J5
KSkKKyAgICAgICAgaGFzRXh0ZXJuYWxPRVNUZXh0dXJlID0gZ3N0X2dsX21lbW9yeV9nZXRfdGV4
dHVyZV90YXJnZXQoR1NUX0dMX01FTU9SWV9DQVNUKG1lbW9yeSkpID09IEdTVF9HTF9URVhUVVJF
X1RBUkdFVF9FWFRFUk5BTF9PRVM7CisKKyAgICBpZiAoIUdTVF9WSURFT19JTkZPX0lTX1JHQigm
dmlkZW9JbmZvKSB8fCBoYXNFeHRlcm5hbE9FU1RleHR1cmUpIHsKKyAgICAgICAgaWYgKCFtX2Nv
bG9yQ29udmVydCkKKyAgICAgICAgICAgIG1fY29sb3JDb252ZXJ0ID0gYWRvcHRHUmVmKGdzdF9n
bF9jb2xvcl9jb252ZXJ0X25ldyhHU1RfR0xfQkFTRV9NRU1PUllfQ0FTVChtZW1vcnkpLT5jb250
ZXh0KSk7CiAKICAgICAgICAgaWYgKCFtX2NvbG9yQ29udmVydElucHV0Q2FwcyB8fCAhZ3N0X2Nh
cHNfaXNfZXF1YWwobV9jb2xvckNvbnZlcnRJbnB1dENhcHMuZ2V0KCksIGNhcHMpKSB7CiAgICAg
ICAgICAgICBtX2NvbG9yQ29udmVydElucHV0Q2FwcyA9IGNhcHM7CkBAIC0zMzQ5LDcgKzMzNTgs
OCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlYwogI2Vsc2UKICAgICAgICAgICAgIGNvbnN0IGNo
YXIqIGZvcm1hdFN0cmluZyA9IEdTVF9WSURFT19JTkZPX0hBU19BTFBIQSgmdmlkZW9JbmZvKSA/
ICJSR0JBIiA6ICJSR0J4IjsKICNlbmRpZgotICAgICAgICAgICAgZ3N0X2NhcHNfc2V0X3NpbXBs
ZShtX2NvbG9yQ29udmVydE91dHB1dENhcHMuZ2V0KCksICJmb3JtYXQiLCBHX1RZUEVfU1RSSU5H
LCBmb3JtYXRTdHJpbmcsIG51bGxwdHIpOworICAgICAgICAgICAgZ3N0X2NhcHNfc2V0X3NpbXBs
ZShtX2NvbG9yQ29udmVydE91dHB1dENhcHMuZ2V0KCksICJmb3JtYXQiLCBHX1RZUEVfU1RSSU5H
LCBmb3JtYXRTdHJpbmcsCisgICAgICAgICAgICAgICAgInRleHR1cmUtdGFyZ2V0IiwgR19UWVBF
X1NUUklORywgR1NUX0dMX1RFWFRVUkVfVEFSR0VUXzJEX1NUUiwgbnVsbHB0cik7CiAgICAgICAg
ICAgICBpZiAoIWdzdF9nbF9jb2xvcl9jb252ZXJ0X3NldF9jYXBzKG1fY29sb3JDb252ZXJ0Lmdl
dCgpLCBjYXBzLCBtX2NvbG9yQ29udmVydE91dHB1dENhcHMuZ2V0KCkpKQogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29w
aWVyR1N0cmVhbWVyLmNwcAppbmRleCBlZTE0NWQyNGVjNzI5YjE5OWIxNzY4MDJkMzU5MTMwOTA3
OGU4MjhiLi5iODhjODAyODFlZmIxOWU1OGNjZWUxY2E5MWI5NzhiOTdkZTk4Y2YwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0
dXJlQ29waWVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmNwcApAQCAtMTc4LDcg
KzE3OCwxMSBAQCBib29sIFZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcjo6Y29weVZpZGVvVGV4
dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFRleHR1cmVNYXBwZQogICAgICAgICAgICAgICAgIG9wdGlv
bnMgPSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZVlVVjsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgfSk7CisgICAgICAgIH0sCisgICAg
ICAgIFsmXShjb25zdCBCdWZmZXI6OkV4dGVybmFsT0VTVGV4dHVyZSYpIHsKKyAgICAgICAgICAg
IG9wdGlvbnMgPSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZUV4dGVybmFsT0VT
OworICAgICAgICB9CisgICAgKTsKIAogICAgIGlmIChvcHRpb25zICE9IG1fc2hhZGVyT3B0aW9u
cykgewogICAgICAgICBtX3NoYWRlclByb2dyYW0gPSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bTo6Y3JlYXRlKG9wdGlvbnMpOwpAQCAtMjUyLDYgKzI1NiwxNSBAQCBib29sIFZpZGVvVGV4dHVy
ZUNvcGllckdTdHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFRleHR1
cmVNYXBwZQogICAgICAgICAgICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBH
TF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CiAgICAgICAgICAgICAgICAgZ2xU
ZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9U
T19FREdFKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgWyZdKGNvbnN0IEJ1
ZmZlcjo6RXh0ZXJuYWxPRVNUZXh0dXJlJiB0ZXh0dXJlKSB7CisgICAgICAgICAgICBnbFVuaWZv
cm0xaShtX3NoYWRlclByb2dyYW0tPmV4dGVybmFsT0VTVGV4dHVyZUxvY2F0aW9uKCksIDApOwor
CisgICAgICAgICAgICBnbEFjdGl2ZVRleHR1cmUoR0xfVEVYVFVSRTApOworICAgICAgICAgICAg
Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFX0VYVEVSTkFMX09FUywgdGV4dHVyZS5pZCk7CisgICAg
ICAgICAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV9FWFRFUk5BTF9PRVMsIEdMX1RFWFRV
UkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICAgICAgICAgIGdsVGV4UGFyYW1ldGVyZihH
TF9URVhUVVJFX0VYVEVSTkFMX09FUywgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VE
R0UpOworICAgICAgICAgICAgZ2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfRVhURVJOQUxfT0VT
LCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CiAgICAgICAgIH0pOwogCiAg
ICAgbV9zaGFkZXJQcm9ncmFtLT5zZXRNYXRyaXgobV9zaGFkZXJQcm9ncmFtLT5tb2RlbFZpZXdN
YXRyaXhMb2NhdGlvbigpLCBtX21vZGVsVmlld01hdHJpeCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3Bw
CmluZGV4IGI5NzM5YTVmOTcyMGM5OGM1YjVlZWQ3OTExMWFmZmY4YTY4NDE4MWQuLjk2ZTMwNDMx
MjY5ZTRkODJiMWMxMDc3MTllNzA1YjgxMzJhNjI3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3Bw
CkBAIC03NzMsNyArNzczLDEyIEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZWRR
dWFkV2l0aFByb2dyYW0oVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0mIHByCiAgICAgZ2xVc2VQ
cm9ncmFtKHByb2dyYW0ucHJvZ3JhbUlEKCkpOwogCiAgICAgYm9vbCByZXBlYXRXcmFwID0gd3Jh
cE1vZGUoKSA9PSBSZXBlYXRXcmFwICYmIG1fY29udGV4dEF0dHJpYnV0ZXMuc3VwcG9ydHNOUE9U
VGV4dHVyZXM7Ci0gICAgR0xlbnVtIHRhcmdldCA9IGZsYWdzICYgU2hvdWxkVXNlQVJCVGV4dHVy
ZVJlY3QgPyBHTGVudW0oR0xfVEVYVFVSRV9SRUNUQU5HTEVfQVJCKSA6IEdMZW51bShHTF9URVhU
VVJFXzJEKTsKKyAgICBHTGVudW0gdGFyZ2V0OworICAgIGlmIChmbGFncyAmIFNob3VsZFVzZUV4
dGVybmFsT0VTVGV4dHVyZVJlY3QpCisgICAgICAgIHRhcmdldCA9IEdMZW51bShHTF9URVhUVVJF
X0VYVEVSTkFMX09FUyk7CisgICAgZWxzZQorICAgICAgICB0YXJnZXQgPSBmbGFncyAmIFNob3Vs
ZFVzZUFSQlRleHR1cmVSZWN0ID8gR0xlbnVtKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FSQikgOiBH
TGVudW0oR0xfVEVYVFVSRV8yRCk7CisKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGV4
dHVyZXNBbmRTYW1wbGVycy5zaXplKCk7ICsraSkgewogICAgICAgICBhdXRvJiB0ZXh0dXJlQW5k
U2FtcGxlciA9IHRleHR1cmVzQW5kU2FtcGxlcnNbaV07CiAKQEAgLTk2MSw2ICs5NjYsMTMgQEAg
c3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXI+IFRleHR1cmVNYXBwZXI6OnBsYXRmb3JtQ3Jl
YXRlQWNjZWxlcmF0ZWQoKQogICAgIHJldHVybiBtYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJHTD4o
KTsKIH0KIAordm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlRXh0ZXJuYWxPRVMoR0x1
aW50IHRleHR1cmUsIEZsYWdzIGZsYWdzLCBjb25zdCBJbnRTaXplJiBzaXplLCBjb25zdCBGbG9h
dFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdN
YXRyaXgsIGZsb2F0IG9wYWNpdHkpCit7CisgICAgUmVmPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtPiBwcm9ncmFtID0gZGF0YSgpLmdldFNoYWRlclByb2dyYW0oVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW06Ok9wdGlvbjo6VGV4dHVyZUV4dGVybmFsT0VTKTsKKyAgICBkcmF3VGV4dHVyZWRR
dWFkV2l0aFByb2dyYW0ocHJvZ3JhbS5nZXQoKSwgeyB7IHRleHR1cmUsIHByb2dyYW0tPmV4dGVy
bmFsT0VTVGV4dHVyZUxvY2F0aW9uKCkgfSB9LAorICAgICAgICBmbGFncyB8IFRleHR1cmVNYXBw
ZXJHTDo6U2hvdWxkVXNlRXh0ZXJuYWxPRVNUZXh0dXJlUmVjdCwgc2l6ZSwgdGFyZ2V0UmVjdCwg
bW9kZWxWaWV3TWF0cml4LCBvcGFjaXR5KTsKK30KKwogfTsKIAogI2VuZGlmIC8vIFVTRShURVhU
VVJFX01BUFBFUl9HTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaAppbmRleCBkYWE1MGQxNTkxM2ExZmJmZDM2
ZTZlMjdmOGQ0ZDVmZWIyYzljZDI2Li42NWU4MTQxZjUzODU5NGRjMWM5NGU1NGMzMDQ0MjYyODdl
MWZmYjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCkBAIC01Niw3ICs1Niw4IEBAIHB1YmxpYzoKICAg
ICAgICAgU2hvdWxkUm90YXRlVGV4dHVyZTI3MCA9IDB4NDAsCiAgICAgICAgIFNob3VsZENvbnZl
cnRUZXh0dXJlQkdSQVRvUkdCQSA9IDB4ODAsCiAgICAgICAgIFNob3VsZENvbnZlcnRUZXh0dXJl
QVJHQlRvUkdCQSA9IDB4MTAwLAotICAgICAgICBTaG91bGROb3RCbGVuZCA9IDB4MjAwCisgICAg
ICAgIFNob3VsZE5vdEJsZW5kID0gMHgyMDAsCisgICAgICAgIFNob3VsZFVzZUV4dGVybmFsT0VT
VGV4dHVyZVJlY3QgPSAweDQwMAogICAgIH07CiAKICAgICB0eXBlZGVmIGludCBGbGFnczsKQEAg
LTg2LDYgKzg3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZHJhd0ZpbHRlcmVkKGNvbnN0IEJpdG1h
cFRleHR1cmUmIHNvdXJjZVRleHR1cmUsIGNvbnN0IEJpdG1hcFRleHR1cmUqIGNvbnRlbnRUZXh0
dXJlLCBjb25zdCBGaWx0ZXJPcGVyYXRpb24mLCBpbnQgcGFzcyk7CiAKICAgICB2b2lkIHNldEVu
YWJsZUVkZ2VEaXN0YW5jZUFudGlhbGlhc2luZyhib29sIGVuYWJsZWQpIHsgbV9lbmFibGVFZGdl
RGlzdGFuY2VBbnRpYWxpYXNpbmcgPSBlbmFibGVkOyB9CisgICAgdm9pZCBkcmF3VGV4dHVyZUV4
dGVybmFsT0VTKEdMdWludCB0ZXh0dXJlLCBGbGFncywgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgsIGZs
b2F0IG9wYWNpdHkpOwogCiBwcml2YXRlOgogICAgIHZvaWQgZHJhd1RleHR1cmVkUXVhZFdpdGhQ
cm9ncmFtKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtJiwgdWludDMyX3QgdGV4dHVyZSwgRmxh
Z3MsIGNvbnN0IEludFNpemUmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0xIZWFk
ZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckdMSGVhZGVycy5oCmluZGV4IGZkZDI1NDI1ODU5MTE3MDRkZmE2ZDVlMzdhZjY1ZWIwOWIx
MTk3OTQuLjk5MzUxYTdhNGRhODQwZjE2MTE4MzVmYWU4NTkxMGNkNzBmMmYxZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
R0xIZWFkZXJzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJHTEhlYWRlcnMuaApAQCAtNTIsMyArNTIsNyBAQAogI2lmbmRlZiBHTF9V
TlBBQ0tfU0tJUF9QSVhFTFMKICNkZWZpbmUgR0xfVU5QQUNLX1NLSVBfUElYRUxTIDB4MENGNAog
I2VuZGlmCisKKyNpZm5kZWYgR0xfVEVYVFVSRV9FWFRFUk5BTF9PRVMKKyNkZWZpbmUgR0xfVEVY
VFVSRV9FWFRFUk5BTF9PRVMgMHg4RDY1CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1
ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuY3BwCmluZGV4IDJkYjhjZmIxM2IxMzFkMjExZjJi
Nzk3ZDhhMDA2ZmYyYjA2MzA4NjAuLjkzNmJlZjgyOTk4YzMwM2IwYmQ5ZjZmZDM0MWQ4NzhiMjJm
M2QzYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVm
ZmVyLmNwcApAQCAtODQsNiArODQsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQ
bGF0Zm9ybUxheWVyQnVmZmVyPiBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmYKICAgICAg
ICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVy
PihXVEZNb3ZlKGNsb25lZFRleHR1cmUpLCBtX2V4dHJhRmxhZ3MpOwogICAgICAgICB9LAogICAg
ICAgICBbXShjb25zdCBZVVZUZXh0dXJlJikKKyAgICAgICAgeworICAgICAgICAgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9LAorICAg
ICAgICBbXShjb25zdCBFeHRlcm5hbE9FU1RleHR1cmUmKQogICAgICAgICB7CiAgICAgICAgICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xNDEs
NiArMTQ2LDEwIEBAIHZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI6OnBhaW50
VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXImIHRleHR1CiAgICAgICAgICAgICAgICAgICAg
IHRleHR1cmUueXV2VG9SZ2JNYXRyaXgsIG1fZXh0cmFGbGFncywgbV9zaXplLCB0YXJnZXRSZWN0
LCBtb2RlbFZpZXdNYXRyaXgsIG9wYWNpdHkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICBbJl0oY29uc3QgRXh0ZXJuYWxPRVNUZXh0
dXJlJiB0ZXh0dXJlKSB7CisgICAgICAgICAgICBBU1NFUlQodGV4dHVyZS5pZCk7CisgICAgICAg
ICAgICB0ZXhtYXBHTC5kcmF3VGV4dHVyZUV4dGVybmFsT0VTKHRleHR1cmUuaWQsIG1fZXh0cmFG
bGFncywgbV9zaXplLCB0YXJnZXRSZWN0LCBtb2RlbFZpZXdNYXRyaXgsIG9wYWNpdHkpOwogICAg
ICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJC
dWZmZXIuaAppbmRleCBmMzc1NDhkYzkxYTE3M2RhZmJhZTFhNmNiNWQ2NGUxZWY2M2M0MWIxLi4z
ZjIxNzhlYTRjZDRkOGM5MWNkMmQxNmFhZmZlMjFhM2M2NjM4MTIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXJCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuaApAQCAtNTMsNyArNTMsMTAgQEAg
cHVibGljOgogICAgICAgICBzdGQ6OmFycmF5PHVuc2lnbmVkLCAzPiB5dXZQbGFuZU9mZnNldDsK
ICAgICAgICAgc3RkOjphcnJheTxHTGZsb2F0LCA5PiB5dXZUb1JnYk1hdHJpeDsKICAgICB9Owot
ICAgIHVzaW5nIFRleHR1cmVWYXJpYW50ID0gV1RGOjpWYXJpYW50PFJHQlRleHR1cmUsIFlVVlRl
eHR1cmU+OworICAgIHN0cnVjdCBFeHRlcm5hbE9FU1RleHR1cmUgeworICAgICAgICBHTHVpbnQg
aWQ7CisgICAgfTsKKyAgICB1c2luZyBUZXh0dXJlVmFyaWFudCA9IFdURjo6VmFyaWFudDxSR0JU
ZXh0dXJlLCBZVVZUZXh0dXJlLCBFeHRlcm5hbE9FU1RleHR1cmU+OwogCiAgICAgVGV4dHVyZU1h
cHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIoVGV4dHVyZVZhcmlhbnQmJiwgY29uc3QgSW50U2l6ZSYs
IFRleHR1cmVNYXBwZXJHTDo6RmxhZ3MsIEdMaW50IGludGVybmFsRm9ybWF0KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKaW5kZXggNWUwMjg0N2U0YWZlYjBk
OTRlMDc2MTQ5MzI1MWZiNWUyY2E3ZDZlZi4uNzdkNzA3ODY2NTkxMDk3OTc1MGRjNzZhY2QyMmVl
OWU1MjVlOGQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3Bw
CkBAIC0xNjAsNiArMTYwLDE0IEBAIHN0YXRpYyBjb25zdCBjaGFyKiB2ZXJ0ZXhUZW1wbGF0ZUNv
bW1vbiA9CiAgICAgR0xTTF9ESVJFQ1RJVkUoZGVmaW5lIEdBVVNTSUFOX0tFUk5FTF9TVEVQIDAu
MikKIAogCisjZGVmaW5lIE9FU19FR0xfSU1BR0VfRVhURVJOQUxfRElSRUNUSVZFIFwKKyAgICBH
TFNMX0RJUkVDVElWRShpZmRlZiBHTF9FUykgXAorICAgICAgICBHTFNMX0RJUkVDVElWRShleHRl
bnNpb24gR0xfT0VTX0VHTF9pbWFnZV9leHRlcm5hbCA6IHJlcXVpcmUpIFwKKyAgICAgICAgR0xT
TF9ESVJFQ1RJVkUoZGVmaW5lIFNhbXBsZXJFeHRlcm5hbE9FU1R5cGUgc2FtcGxlckV4dGVybmFs
T0VTKSBcCisgICAgR0xTTF9ESVJFQ1RJVkUoZWxzZSkgXAorICAgICAgICBHTFNMX0RJUkVDVElW
RShkZWZpbmUgU2FtcGxlckV4dGVybmFsT0VTVHlwZSBzYW1wbGVyMkQpIFwKKyAgICBHTFNMX0RJ
UkVDVElWRShlbmRpZikKKwogLy8gQ29tbW9uIGhlYWRlciBmb3IgYWxsIHZlcnNpb25zLiBXZSBk
ZWZpbmUgdGhlIG1hdHJpY2VzIHZhcmlhYmxlcyBoZXJlIHRvIGtlZXAgdGhlIHByZWNpc2lvbgog
Ly8gZGlyZWN0aXZlcyBzY29wZTogdGhlIGZpcnN0IG9uZSBhcHBsaWVzIHRvIHRoZSBtYXRyaWNl
cyB2YXJpYWJsZXMgYW5kIHRoZSBuZXh0IG9uZSB0byB0aGUKIC8vIHJlc3Qgb2YgdGhlbS4gVGhl
IHByZWNpc2lvbiBpcyBvbmx5IHVzZWQgaW4gR0xFUy4KQEAgLTE2NywxMCArMTc1LDkgQEAgc3Rh
dGljIGNvbnN0IGNoYXIqIGZyYWdtZW50VGVtcGxhdGVIZWFkZXJDb21tb24gPQogICAgIFJFQ1Rf
VEVYVFVSRV9ESVJFQ1RJVkUKICAgICBBTlRJQUxJQVNJTkdfVEVYX0NPT1JEX0RJUkVDVElWRQog
ICAgIEJMVVJfQ09OU1RBTlRTCisgICAgT0VTX0VHTF9JTUFHRV9FWFRFUk5BTF9ESVJFQ1RJVkUK
ICNpZiBVU0UoT1BFTkdMX0VTKQogICAgIFRFWFRVUkVfU1BBQ0VfTUFUUklYX1BSRUNJU0lPTl9E
SVJFQ1RJVkUKLSNlbmRpZgotI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgU1RSSU5HSUZZKAogICAg
ICAgICBwcmVjaXNpb24gVGV4dHVyZVNwYWNlTWF0cml4UHJlY2lzaW9uIGZsb2F0OwogICAgICkK
QEAgLTIxMSw2ICsyMTgsNyBAQCBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRUZW1wbGF0ZUNv
bW1vbiA9CiAgICAgICAgIHVuaWZvcm0gU2FtcGxlclR5cGUgc19zYW1wbGVyVTsKICAgICAgICAg
dW5pZm9ybSBTYW1wbGVyVHlwZSBzX3NhbXBsZXJWOwogICAgICAgICB1bmlmb3JtIHNhbXBsZXIy
RCBzX2NvbnRlbnRUZXh0dXJlOworICAgICAgICB1bmlmb3JtIFNhbXBsZXJFeHRlcm5hbE9FU1R5
cGUgc19leHRlcm5hbE9FU1RleHR1cmU7CiAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9vcGFjaXR5
OwogICAgICAgICB1bmlmb3JtIGZsb2F0IHVfZmlsdGVyQW1vdW50OwogICAgICAgICB1bmlmb3Jt
IG1hdDMgdV95dXZUb1JnYjsKQEAgLTM3NCw2ICszODIsMTIgQEAgc3RhdGljIGNvbnN0IGNoYXIq
IGZyYWdtZW50VGVtcGxhdGVDb21tb24gPQogICAgICAgICAgICAgY29sb3IgPSBzb3VyY2VPdmVy
KGNvbnRlbnRDb2xvciwgY29sb3IpOwogICAgICAgICB9CiAKKyAgICAgICAgdm9pZCBhcHBseVRl
eHR1cmVFeHRlcm5hbE9FUyhpbm91dCB2ZWM0IGNvbG9yLCB2ZWMyIHRleENvb3JkKQorICAgICAg
ICB7CisgICAgICAgICAgICB2ZWM0IGNvbnRlbnRDb2xvciA9IHRleHR1cmUyRChzX2V4dGVybmFs
T0VTVGV4dHVyZSwgdGV4Q29vcmQpOworICAgICAgICAgICAgY29sb3IgPSBzb3VyY2VPdmVyKGNv
bnRlbnRDb2xvciwgY29sb3IpOworICAgICAgICB9CisKICAgICAgICAgdm9pZCBhcHBseVNvbGlk
Q29sb3IoaW5vdXQgdmVjNCBjb2xvcikgeyBjb2xvciAqPSB1X2NvbG9yOyB9CiAKICAgICAgICAg
dm9pZCBtYWluKHZvaWQpCkBAIC00MDAsNiArNDE0LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGZy
YWdtZW50VGVtcGxhdGVDb21tb24gPQogICAgICAgICAgICAgYXBwbHlCbHVyRmlsdGVySWZOZWVk
ZWQoY29sb3IsIHRleENvb3JkKTsKICAgICAgICAgICAgIGFwcGx5QWxwaGFCbHVySWZOZWVkZWQo
Y29sb3IsIHRleENvb3JkKTsKICAgICAgICAgICAgIGFwcGx5Q29udGVudFRleHR1cmVJZk5lZWRl
ZChjb2xvciwgdGV4Q29vcmQpOworICAgICAgICAgICAgYXBwbHlUZXh0dXJlRXh0ZXJuYWxPRVNJ
Zk5lZWRlZChjb2xvciwgdGV4Q29vcmQpOwogICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gY29s
b3I7CiAgICAgICAgIH0KICAgICApOwpAQCAtNDMyLDYgKzQ0Nyw3IEBAIFJlZjxUZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbT4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNyZWF0ZShUZXh0
dXJlTWFwcGVyCiAgICAgU0VUX0FQUExJRVJfRlJPTV9PUFRJT05TKEFscGhhQmx1cik7CiAgICAg
U0VUX0FQUExJRVJfRlJPTV9PUFRJT05TKENvbnRlbnRUZXh0dXJlKTsKICAgICBTRVRfQVBQTElF
Ul9GUk9NX09QVElPTlMoTWFudWFsUmVwZWF0KTsKKyAgICBTRVRfQVBQTElFUl9GUk9NX09QVElP
TlMoVGV4dHVyZUV4dGVybmFsT0VTKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgdmVydGV4U2hhZGVy
QnVpbGRlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaAppbmRleCBi
YTVjMDAxMTc1ODQ3NzA2NDRiZmRmNDc3YjVjMTdhMWNmZDhmNjk2Li4xN2NiNTBlM2E1NTUxMDU1
YjMzYjU2ZDNhNTFhNjY4M2I3N2ZjMDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW0uaApAQCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgICAgIFRleHR1cmVOVjEy
ICAgICAgPSAxTCA8PCAxOSwKICAgICAgICAgVGV4dHVyZU5WMjEgICAgICA9IDFMIDw8IDIwLAog
ICAgICAgICBUZXh0dXJlUGFja2VkWVVWID0gMUwgPDwgMjEsCisgICAgICAgIFRleHR1cmVFeHRl
cm5hbE9FUyA9IDFMIDw8IDIyLAogICAgIH07CiAKICAgICB0eXBlZGVmIHVuc2lnbmVkIE9wdGlv
bnM7CkBAIC05Niw2ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBURVhNQVBfREVDTEFSRV9VTklGT1JN
KGJsdXJSYWRpdXMpCiAgICAgVEVYTUFQX0RFQ0xBUkVfVU5JRk9STShzaGFkb3dPZmZzZXQpCiAg
ICAgVEVYTUFQX0RFQ0xBUkVfU0FNUExFUihjb250ZW50VGV4dHVyZSkKKyAgICBURVhNQVBfREVD
TEFSRV9TQU1QTEVSKGV4dGVybmFsT0VTVGV4dHVyZSkKIAogICAgIHZvaWQgc2V0TWF0cml4KEdM
dWludCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392553</attachid>
            <date>2020-03-05 03:06:14 -0800</date>
            <delta_ts>2020-03-10 01:10:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208572-20200305110613.patch</filename>
            <type>text/plain</type>
            <size>18574</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3OTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmZmM2I5NmQwMWZiYjQx
OWU4MDY3YzJkMGNlNDBiNWVjNjlkOTM5MC4uMDQ5ZTE4MjBkN2UzMWYwNzAxNGI5NjZmNjZkYjRm
MjJhODczYmJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAzLTA0ICBQaGls
aXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXVtH
TF0gRXh0ZXJuYWwgT0VTIHRleHR1cmVzIHJlbmRlcmluZyBzdXBwb3J0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg1NzIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgaGFyZHdhcmUgdGhhdCBjb250
YWlucyBuYXRpdmUgWVVWIHNhbXBsZXJzLCBzb21lIGRyaXZlcnMgbWF5CisgICAgICAgIG9ubHkg
c3VwcG9ydCBleHRlcm5hbC1vZXMgaW1wb3J0IG9mIFlVViB0ZXh0dXJlcywgc28gYnkgc3VwcG9y
dGluZworICAgICAgICB0aGlzIHRleHR1cmUgdGFyZ2V0IGluIHRoZSBNZWRpYVBsYXllciB3ZSBj
YW4gYXZvaWQgc29tZSBjb3N0bHkKKyAgICAgICAgb3BlcmF0aW9ucyBpbiB0aGUgcGlwZWxpbmUu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR0xWaWRlb1NpbmtHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0R0xWaWRlb1NpbmtTZXRNZWRpYVBsYXllclByaXZh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3N0VmlkZW9GcmFtZUhvbGRl
cjo6R3N0VmlkZW9GcmFtZUhvbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpHc3RWaWRlb0ZyYW1l
SG9sZGVyOjpwbGF0Zm9ybUxheWVyQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0
Zm9ybVRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4
dHVyZWRRdWFkV2l0aFByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdM
OjpkcmF3VGV4dHVyZUV4dGVybmFsT0VTKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyOjpjbG9uZSk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcjo6cGFpbnRUb1RleHR1cmVN
YXBwZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllckJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaDoKKwogMjAyMC0wMy0wNCAg
WXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFB1dCBhbGwgZ2Vu
ZXJhdGVkIEpTQ2VsbHMgaW4gV2ViQ29yZSBpbnRvIElzb1N1YnNwYWNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDk4YzY4MTczODkxYWI2
YTlmZTZjMWY0ZDI1NmZkNjc1NzEzYzQxYjQuLjY1MjI3Mjg3YjlhOTA1ZWI1NTFlZmNjZWQ0Mzkz
MTM3MzJmMWU1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCkBAIC0xOTYsMTAgKzE5NiwxMyBAQCBwdWJsaWM6CiAjaWYgVVNFKEdTVFJFQU1F
Ul9HTCkKICAgICAgICAgbV9mbGFncyA9IGZsYWdzIHwgKG1faGFzQWxwaGFDaGFubmVsID8gVGV4
dHVyZU1hcHBlckdMOjpTaG91bGRCbGVuZCA6IDApOwogCisgICAgICAgIEdzdE1lbW9yeSogbWVt
b3J5ID0gZ3N0X2J1ZmZlcl9wZWVrX21lbW9yeShtX2J1ZmZlci5nZXQoKSwgMCk7CisgICAgICAg
IGlmIChnc3RfaXNfZ2xfbWVtb3J5KG1lbW9yeSkpCisgICAgICAgICAgICBtX3RleHR1cmVUYXJn
ZXQgPSBnc3RfZ2xfbWVtb3J5X2dldF90ZXh0dXJlX3RhcmdldChHU1RfR0xfTUVNT1JZX0NBU1Qo
bWVtb3J5KSk7CisKICNpZiBVU0UoV1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGKQogICAg
ICAgICBtX2RtYWJ1ZkZEID0gLTE7CiAgICAgICAgIGdzaXplIG9mZnNldDsKLSAgICAgICAgR3N0
TWVtb3J5KiBtZW1vcnkgPSBnc3RfYnVmZmVyX3BlZWtfbWVtb3J5KG1fYnVmZmVyLmdldCgpLCAw
KTsKICAgICAgICAgaWYgKGdzdF9pc19nbF9tZW1vcnlfZWdsKG1lbW9yeSkpIHsKICAgICAgICAg
ICAgIEdzdEdMTWVtb3J5RUdMKiBlZ2xNZW1vcnkgPSAoR3N0R0xNZW1vcnlFR0wqKSBtZW1vcnk7
CiAgICAgICAgICAgICBnc3RfZWdsX2ltYWdlX2V4cG9ydF9kbWFidWYoZWdsTWVtb3J5LT5pbWFn
ZSwgJm1fZG1hYnVmRkQsICZtX2RtYWJ1ZlN0cmlkZSwgJm9mZnNldCk7CkBAIC0zMjEsOCArMzI0
LDExIEBAIHB1YmxpYzoKIAogICAgICAgICB1c2luZyBCdWZmZXIgPSBUZXh0dXJlTWFwcGVyUGxh
dGZvcm1MYXllckJ1ZmZlcjsKIAorICAgICAgICBpZiAobV90ZXh0dXJlVGFyZ2V0ID09IEdTVF9H
TF9URVhUVVJFX1RBUkdFVF9FWFRFUk5BTF9PRVMpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVu
aXF1ZTxCdWZmZXI+KEJ1ZmZlcjo6VGV4dHVyZVZhcmlhbnQgeyBCdWZmZXI6OkV4dGVybmFsT0VT
VGV4dHVyZSB7IG1fdGV4dHVyZUlEIH0gfSwgbV9zaXplLCBtX2ZsYWdzLCBHTF9ET05UX0NBUkUp
OworCiAgICAgICAgIGlmICgoR1NUX1ZJREVPX0lORk9fSVNfUkdCKCZtX3ZpZGVvRnJhbWUuaW5m
bykgJiYgR1NUX1ZJREVPX0lORk9fTl9QTEFORVMoJm1fdmlkZW9GcmFtZS5pbmZvKSA9PSAxKSkK
LSAgICAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPEJ1ZmZlcj4oQnVmZmVyOjpUZXh0dXJlVmFy
aWFudCB7IEJ1ZmZlcjo6UkdCVGV4dHVyZSB7ICpzdGF0aWNfY2FzdDxHTHVpbnQqPihtX3ZpZGVv
RnJhbWUuZGF0YVswXSkgfSB9LCBtX3NpemUsIG1fZmxhZ3MsIEdMX1JHQkEpOworICAgICAgICAg
ICAgcmV0dXJuIG1ha2VVbmlxdWU8QnVmZmVyPihCdWZmZXI6OlRleHR1cmVWYXJpYW50IHsgQnVm
ZmVyOjpSR0JUZXh0dXJlIHsgbV90ZXh0dXJlSUQgfSB9LCBtX3NpemUsIG1fZmxhZ3MsIEdMX1JH
QkEpOwogCiAgICAgICAgIGlmIChHU1RfVklERU9fSU5GT19JU19ZVVYoJm1fdmlkZW9GcmFtZS5p
bmZvKSkgewogICAgICAgICAgICAgaWYgKEdTVF9WSURFT19JTkZPX05fQ09NUE9ORU5UUygmbV92
aWRlb0ZyYW1lLmluZm8pIDwgMyB8fCBHU1RfVklERU9fSU5GT19OX1BMQU5FUygmbV92aWRlb0Zy
YW1lLmluZm8pID4gMykKQEAgLTMzMiw3ICszMzgsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAg
ICAgLy8gSU1YIFZQVSBkZWNvZGVyIGRlY29kZXMgWVVWIGRhdGEgb25seSBpbnRvIHRoZSBZIHRl
eHR1cmUgZnJvbSB3aGljaCB0aGUgc2FtcGxlcgogICAgICAgICAgICAgICAgIC8vIHRoZW4gZGly
ZWN0bHkgcHJvZHVjZXMgUkdCQSBkYXRhLiBUZXh0dXJlcyBmb3Igb3RoZXIgcGxhbmVzIGFyZW4n
dCB1c2VkLCBidXQKICAgICAgICAgICAgICAgICAvLyB0aGF0J3MgZGVjb2RlcidzIHByb2JsZW0u
IFdlIGhhdmUgdG8gdHJlYXQgdGhhdCBZIHRleHR1cmUgYXMgaGF2aW5nIFJHQkEgZGF0YS4KLSAg
ICAgICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxCdWZmZXI+KEJ1ZmZlcjo6VGV4dHVyZVZh
cmlhbnQgeyBCdWZmZXI6OlJHQlRleHR1cmUgeyAqc3RhdGljX2Nhc3Q8R0x1aW50Kj4obV92aWRl
b0ZyYW1lLmRhdGFbMF0pIH0gfSwgbV9zaXplLCBtX2ZsYWdzLCBHTF9SR0JBKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxCdWZmZXI+KEJ1ZmZlcjo6VGV4dHVyZVZhcmlhbnQg
eyBCdWZmZXI6OlJHQlRleHR1cmUgeyBtX3RleHR1cmVJRCB9IH0sIG1fc2l6ZSwgbV9mbGFncywg
R0xfUkdCQSk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHVuc2lnbmVkIG51bWJlck9m
UGxhbmVzID0gR1NUX1ZJREVPX0lORk9fTl9QTEFORVMoJm1fdmlkZW9GcmFtZS5pbmZvKTsKQEAg
LTM4NSw2ICszOTEsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPEdzdFZpZGVvRGVjb2RlclBs
YXRmb3JtPiBtX3ZpZGVvRGVjb2RlclBsYXRmb3JtOwogICAgIFRleHR1cmVNYXBwZXJHTDo6Rmxh
Z3MgbV9mbGFncyB7IH07CiAgICAgR0x1aW50IG1fdGV4dHVyZUlEIHsgMCB9OworICAgIEdzdEdM
VGV4dHVyZVRhcmdldCBtX3RleHR1cmVUYXJnZXQgeyBHU1RfR0xfVEVYVFVSRV9UQVJHRVRfTk9O
RSB9OwogICAgIGJvb2wgbV9pc01hcHBlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc01hcHBl
ZFRleHR1cmVzIHsgZmFsc2UgfTsKICNpZiBVU0UoV1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1B
QlVGKQpAQCAtMzMzNCwxMiArMzM0MSwxNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlYwogICAg
IGlmICghZ3N0X3ZpZGVvX2luZm9fZnJvbV9jYXBzKCZ2aWRlb0luZm8sIGNhcHMpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAoIUdTVF9WSURFT19JTkZPX0lTX1JHQigmdmlkZW9JbmZvKSkg
ewotICAgICAgICBpZiAoIW1fY29sb3JDb252ZXJ0KSB7Ci0gICAgICAgICAgICBHc3RNZW1vcnkq
IG1lbSA9IGdzdF9idWZmZXJfcGVla19tZW1vcnkoYnVmZmVyLCAwKTsKLSAgICAgICAgICAgIEdz
dEdMQ29udGV4dCogY29udGV4dCA9ICgoR3N0R0xCYXNlTWVtb3J5KiltZW0pLT5jb250ZXh0Owot
ICAgICAgICAgICAgbV9jb2xvckNvbnZlcnQgPSBhZG9wdEdSZWYoZ3N0X2dsX2NvbG9yX2NvbnZl
cnRfbmV3KGNvbnRleHQpKTsKLSAgICAgICAgfQorICAgIEdzdE1lbW9yeSogbWVtb3J5ID0gZ3N0
X2J1ZmZlcl9wZWVrX21lbW9yeShidWZmZXIsIDApOworICAgIGJvb2wgaGFzRXh0ZXJuYWxPRVNU
ZXh0dXJlID0gZmFsc2U7CisgICAgaWYgKGdzdF9pc19nbF9tZW1vcnkobWVtb3J5KSkKKyAgICAg
ICAgaGFzRXh0ZXJuYWxPRVNUZXh0dXJlID0gZ3N0X2dsX21lbW9yeV9nZXRfdGV4dHVyZV90YXJn
ZXQoR1NUX0dMX01FTU9SWV9DQVNUKG1lbW9yeSkpID09IEdTVF9HTF9URVhUVVJFX1RBUkdFVF9F
WFRFUk5BTF9PRVM7CisKKyAgICBpZiAoIUdTVF9WSURFT19JTkZPX0lTX1JHQigmdmlkZW9JbmZv
KSB8fCBoYXNFeHRlcm5hbE9FU1RleHR1cmUpIHsKKyAgICAgICAgaWYgKCFtX2NvbG9yQ29udmVy
dCkKKyAgICAgICAgICAgIG1fY29sb3JDb252ZXJ0ID0gYWRvcHRHUmVmKGdzdF9nbF9jb2xvcl9j
b252ZXJ0X25ldyhHU1RfR0xfQkFTRV9NRU1PUllfQ0FTVChtZW1vcnkpLT5jb250ZXh0KSk7CiAK
ICAgICAgICAgaWYgKCFtX2NvbG9yQ29udmVydElucHV0Q2FwcyB8fCAhZ3N0X2NhcHNfaXNfZXF1
YWwobV9jb2xvckNvbnZlcnRJbnB1dENhcHMuZ2V0KCksIGNhcHMpKSB7CiAgICAgICAgICAgICBt
X2NvbG9yQ29udmVydElucHV0Q2FwcyA9IGNhcHM7CkBAIC0zMzQ5LDcgKzMzNTgsOCBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGbG9hdFJlYwogI2Vsc2UKICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZvcm1h
dFN0cmluZyA9IEdTVF9WSURFT19JTkZPX0hBU19BTFBIQSgmdmlkZW9JbmZvKSA/ICJSR0JBIiA6
ICJSR0J4IjsKICNlbmRpZgotICAgICAgICAgICAgZ3N0X2NhcHNfc2V0X3NpbXBsZShtX2NvbG9y
Q29udmVydE91dHB1dENhcHMuZ2V0KCksICJmb3JtYXQiLCBHX1RZUEVfU1RSSU5HLCBmb3JtYXRT
dHJpbmcsIG51bGxwdHIpOworICAgICAgICAgICAgZ3N0X2NhcHNfc2V0X3NpbXBsZShtX2NvbG9y
Q29udmVydE91dHB1dENhcHMuZ2V0KCksICJmb3JtYXQiLCBHX1RZUEVfU1RSSU5HLCBmb3JtYXRT
dHJpbmcsCisgICAgICAgICAgICAgICAgInRleHR1cmUtdGFyZ2V0IiwgR19UWVBFX1NUUklORywg
R1NUX0dMX1RFWFRVUkVfVEFSR0VUXzJEX1NUUiwgbnVsbHB0cik7CiAgICAgICAgICAgICBpZiAo
IWdzdF9nbF9jb2xvcl9jb252ZXJ0X3NldF9jYXBzKG1fY29sb3JDb252ZXJ0LmdldCgpLCBjYXBz
LCBtX2NvbG9yQ29udmVydE91dHB1dENhcHMuZ2V0KCkpKQogICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVh
bWVyLmNwcAppbmRleCBlZTE0NWQyNGVjNzI5YjE5OWIxNzY4MDJkMzU5MTMwOTA3OGU4MjhiLi5i
ODhjODAyODFlZmIxOWU1OGNjZWUxY2E5MWI5NzhiOTdkZTk4Y2YwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVy
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmNwcApAQCAtMTc4LDcgKzE3OCwxMSBA
QCBib29sIFZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxh
dGZvcm1UZXh0dXJlKFRleHR1cmVNYXBwZQogICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZVlVVjsKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIH0KLSAgICAgICAgfSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXShj
b25zdCBCdWZmZXI6OkV4dGVybmFsT0VTVGV4dHVyZSYpIHsKKyAgICAgICAgICAgIG9wdGlvbnMg
PSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZUV4dGVybmFsT0VTOworICAgICAg
ICB9CisgICAgKTsKIAogICAgIGlmIChvcHRpb25zICE9IG1fc2hhZGVyT3B0aW9ucykgewogICAg
ICAgICBtX3NoYWRlclByb2dyYW0gPSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRl
KG9wdGlvbnMpOwpAQCAtMjUyLDYgKzI1NiwxNSBAQCBib29sIFZpZGVvVGV4dHVyZUNvcGllckdT
dHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFRleHR1cmVNYXBwZQog
ICAgICAgICAgICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJF
X1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7CiAgICAgICAgICAgICAgICAgZ2xUZXhQYXJhbWV0
ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsK
ICAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgWyZdKGNvbnN0IEJ1ZmZlcjo6RXh0
ZXJuYWxPRVNUZXh0dXJlJiB0ZXh0dXJlKSB7CisgICAgICAgICAgICBnbFVuaWZvcm0xaShtX3No
YWRlclByb2dyYW0tPmV4dGVybmFsT0VTVGV4dHVyZUxvY2F0aW9uKCksIDApOworCisgICAgICAg
ICAgICBnbEFjdGl2ZVRleHR1cmUoR0xfVEVYVFVSRTApOworICAgICAgICAgICAgZ2xCaW5kVGV4
dHVyZShHTF9URVhUVVJFX0VYVEVSTkFMX09FUywgdGV4dHVyZS5pZCk7CisgICAgICAgICAgICBn
bFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV9FWFRFUk5BTF9PRVMsIEdMX1RFWFRVUkVfTUlOX0ZJ
TFRFUiwgR0xfTElORUFSKTsKKyAgICAgICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJF
X0VYVEVSTkFMX09FUywgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOworICAg
ICAgICAgICAgZ2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfRVhURVJOQUxfT0VTLCBHTF9URVhU
VVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CiAgICAgICAgIH0pOwogCiAgICAgbV9zaGFk
ZXJQcm9ncmFtLT5zZXRNYXRyaXgobV9zaGFkZXJQcm9ncmFtLT5tb2RlbFZpZXdNYXRyaXhMb2Nh
dGlvbigpLCBtX21vZGVsVmlld01hdHJpeCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCmluZGV4IGI5
NzM5YTVmOTcyMGM5OGM1YjVlZWQ3OTExMWFmZmY4YTY4NDE4MWQuLjk2ZTMwNDMxMjY5ZTRkODJi
MWMxMDc3MTllNzA1YjgxMzJhNjI3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCkBAIC03NzMs
NyArNzczLDEyIEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZWRRdWFkV2l0aFBy
b2dyYW0oVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0mIHByCiAgICAgZ2xVc2VQcm9ncmFtKHBy
b2dyYW0ucHJvZ3JhbUlEKCkpOwogCiAgICAgYm9vbCByZXBlYXRXcmFwID0gd3JhcE1vZGUoKSA9
PSBSZXBlYXRXcmFwICYmIG1fY29udGV4dEF0dHJpYnV0ZXMuc3VwcG9ydHNOUE9UVGV4dHVyZXM7
Ci0gICAgR0xlbnVtIHRhcmdldCA9IGZsYWdzICYgU2hvdWxkVXNlQVJCVGV4dHVyZVJlY3QgPyBH
TGVudW0oR0xfVEVYVFVSRV9SRUNUQU5HTEVfQVJCKSA6IEdMZW51bShHTF9URVhUVVJFXzJEKTsK
KyAgICBHTGVudW0gdGFyZ2V0OworICAgIGlmIChmbGFncyAmIFNob3VsZFVzZUV4dGVybmFsT0VT
VGV4dHVyZVJlY3QpCisgICAgICAgIHRhcmdldCA9IEdMZW51bShHTF9URVhUVVJFX0VYVEVSTkFM
X09FUyk7CisgICAgZWxzZQorICAgICAgICB0YXJnZXQgPSBmbGFncyAmIFNob3VsZFVzZUFSQlRl
eHR1cmVSZWN0ID8gR0xlbnVtKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FSQikgOiBHTGVudW0oR0xf
VEVYVFVSRV8yRCk7CisKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGV4dHVyZXNBbmRT
YW1wbGVycy5zaXplKCk7ICsraSkgewogICAgICAgICBhdXRvJiB0ZXh0dXJlQW5kU2FtcGxlciA9
IHRleHR1cmVzQW5kU2FtcGxlcnNbaV07CiAKQEAgLTk2MSw2ICs5NjYsMTMgQEAgc3RkOjp1bmlx
dWVfcHRyPFRleHR1cmVNYXBwZXI+IFRleHR1cmVNYXBwZXI6OnBsYXRmb3JtQ3JlYXRlQWNjZWxl
cmF0ZWQoKQogICAgIHJldHVybiBtYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJHTD4oKTsKIH0KIAor
dm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlRXh0ZXJuYWxPRVMoR0x1aW50IHRleHR1
cmUsIEZsYWdzIGZsYWdzLCBjb25zdCBJbnRTaXplJiBzaXplLCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgsIGZs
b2F0IG9wYWNpdHkpCit7CisgICAgUmVmPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBwcm9n
cmFtID0gZGF0YSgpLmdldFNoYWRlclByb2dyYW0oVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06
Ok9wdGlvbjo6VGV4dHVyZUV4dGVybmFsT0VTKTsKKyAgICBkcmF3VGV4dHVyZWRRdWFkV2l0aFBy
b2dyYW0ocHJvZ3JhbS5nZXQoKSwgeyB7IHRleHR1cmUsIHByb2dyYW0tPmV4dGVybmFsT0VTVGV4
dHVyZUxvY2F0aW9uKCkgfSB9LAorICAgICAgICBmbGFncyB8IFRleHR1cmVNYXBwZXJHTDo6U2hv
dWxkVXNlRXh0ZXJuYWxPRVNUZXh0dXJlUmVjdCwgc2l6ZSwgdGFyZ2V0UmVjdCwgbW9kZWxWaWV3
TWF0cml4LCBvcGFjaXR5KTsKK30KKwogfTsKIAogI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBF
Ul9HTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyR0wuaAppbmRleCBkYWE1MGQxNTkxM2ExZmJmZDM2ZTZlMjdmOGQ0
ZDVmZWIyYzljZDI2Li42NWU4MTQxZjUzODU5NGRjMWM5NGU1NGMzMDQ0MjYyODdlMWZmYjU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJHTC5oCkBAIC01Niw3ICs1Niw4IEBAIHB1YmxpYzoKICAgICAgICAgU2hv
dWxkUm90YXRlVGV4dHVyZTI3MCA9IDB4NDAsCiAgICAgICAgIFNob3VsZENvbnZlcnRUZXh0dXJl
QkdSQVRvUkdCQSA9IDB4ODAsCiAgICAgICAgIFNob3VsZENvbnZlcnRUZXh0dXJlQVJHQlRvUkdC
QSA9IDB4MTAwLAotICAgICAgICBTaG91bGROb3RCbGVuZCA9IDB4MjAwCisgICAgICAgIFNob3Vs
ZE5vdEJsZW5kID0gMHgyMDAsCisgICAgICAgIFNob3VsZFVzZUV4dGVybmFsT0VTVGV4dHVyZVJl
Y3QgPSAweDQwMAogICAgIH07CiAKICAgICB0eXBlZGVmIGludCBGbGFnczsKQEAgLTg2LDYgKzg3
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZHJhd0ZpbHRlcmVkKGNvbnN0IEJpdG1hcFRleHR1cmUm
IHNvdXJjZVRleHR1cmUsIGNvbnN0IEJpdG1hcFRleHR1cmUqIGNvbnRlbnRUZXh0dXJlLCBjb25z
dCBGaWx0ZXJPcGVyYXRpb24mLCBpbnQgcGFzcyk7CiAKICAgICB2b2lkIHNldEVuYWJsZUVkZ2VE
aXN0YW5jZUFudGlhbGlhc2luZyhib29sIGVuYWJsZWQpIHsgbV9lbmFibGVFZGdlRGlzdGFuY2VB
bnRpYWxpYXNpbmcgPSBlbmFibGVkOyB9CisgICAgdm9pZCBkcmF3VGV4dHVyZUV4dGVybmFsT0VT
KEdMdWludCB0ZXh0dXJlLCBGbGFncywgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYs
IGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgsIGZsb2F0IG9wYWNp
dHkpOwogCiBwcml2YXRlOgogICAgIHZvaWQgZHJhd1RleHR1cmVkUXVhZFdpdGhQcm9ncmFtKFRl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtJiwgdWludDMyX3QgdGV4dHVyZSwgRmxhZ3MsIGNvbnN0
IEludFNpemUmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
bW9kZWxWaWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0xIZWFkZXJzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMSGVh
ZGVycy5oCmluZGV4IGZkZDI1NDI1ODU5MTE3MDRkZmE2ZDVlMzdhZjY1ZWIwOWIxMTk3OTQuLjk5
MzUxYTdhNGRhODQwZjE2MTE4MzVmYWU4NTkxMGNkNzBmMmYxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0xIZWFkZXJz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTEhlYWRlcnMuaApAQCAtNTIsMyArNTIsNyBAQAogI2lmbmRlZiBHTF9VTlBBQ0tfU0tJ
UF9QSVhFTFMKICNkZWZpbmUgR0xfVU5QQUNLX1NLSVBfUElYRUxTIDB4MENGNAogI2VuZGlmCisK
KyNpZm5kZWYgR0xfVEVYVFVSRV9FWFRFUk5BTF9PRVMKKyNkZWZpbmUgR0xfVEVYVFVSRV9FWFRF
Uk5BTF9PRVMgMHg4RDY1CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXJCdWZmZXIuY3BwCmluZGV4IDJkYjhjZmIxM2IxMzFkMjExZjJiNzk3ZDhhMDA2
ZmYyYjA2MzA4NjAuLjkzNmJlZjgyOTk4YzMwM2IwYmQ5ZjZmZDM0MWQ4NzhiMjJmM2QzYjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmNwcApA
QCAtODQsNiArODQsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxh
eWVyQnVmZmVyPiBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmYKICAgICAgICAgICAgIHJl
dHVybiBtYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyPihXVEZNb3Zl
KGNsb25lZFRleHR1cmUpLCBtX2V4dHJhRmxhZ3MpOwogICAgICAgICB9LAogICAgICAgICBbXShj
b25zdCBZVVZUZXh0dXJlJikKKyAgICAgICAgeworICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9LAorICAgICAgICBbXShj
b25zdCBFeHRlcm5hbE9FU1RleHR1cmUmKQogICAgICAgICB7CiAgICAgICAgICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xNDEsNiArMTQ2LDEw
IEBAIHZvaWQgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI6OnBhaW50VG9UZXh0dXJl
TWFwcGVyKFRleHR1cmVNYXBwZXImIHRleHR1CiAgICAgICAgICAgICAgICAgICAgIHRleHR1cmUu
eXV2VG9SZ2JNYXRyaXgsIG1fZXh0cmFGbGFncywgbV9zaXplLCB0YXJnZXRSZWN0LCBtb2RlbFZp
ZXdNYXRyaXgsIG9wYWNpdHkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
fQorICAgICAgICB9LAorICAgICAgICBbJl0oY29uc3QgRXh0ZXJuYWxPRVNUZXh0dXJlJiB0ZXh0
dXJlKSB7CisgICAgICAgICAgICBBU1NFUlQodGV4dHVyZS5pZCk7CisgICAgICAgICAgICB0ZXht
YXBHTC5kcmF3VGV4dHVyZUV4dGVybmFsT0VTKHRleHR1cmUuaWQsIG1fZXh0cmFGbGFncywgbV9z
aXplLCB0YXJnZXRSZWN0LCBtb2RlbFZpZXdNYXRyaXgsIG9wYWNpdHkpOwogICAgICAgICB9KTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuaApp
bmRleCBmMzc1NDhkYzkxYTE3M2RhZmJhZTFhNmNiNWQ2NGUxZWY2M2M0MWIxLi4zZjIxNzhlYTRj
ZDRkOGM5MWNkMmQxNmFhZmZlMjFhM2M2NjM4MTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZm
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuaApAQCAtNTMsNyArNTMsMTAgQEAgcHVibGljOgog
ICAgICAgICBzdGQ6OmFycmF5PHVuc2lnbmVkLCAzPiB5dXZQbGFuZU9mZnNldDsKICAgICAgICAg
c3RkOjphcnJheTxHTGZsb2F0LCA5PiB5dXZUb1JnYk1hdHJpeDsKICAgICB9OwotICAgIHVzaW5n
IFRleHR1cmVWYXJpYW50ID0gV1RGOjpWYXJpYW50PFJHQlRleHR1cmUsIFlVVlRleHR1cmU+Owor
ICAgIHN0cnVjdCBFeHRlcm5hbE9FU1RleHR1cmUgeworICAgICAgICBHTHVpbnQgaWQ7CisgICAg
fTsKKyAgICB1c2luZyBUZXh0dXJlVmFyaWFudCA9IFdURjo6VmFyaWFudDxSR0JUZXh0dXJlLCBZ
VVZUZXh0dXJlLCBFeHRlcm5hbE9FU1RleHR1cmU+OwogCiAgICAgVGV4dHVyZU1hcHBlclBsYXRm
b3JtTGF5ZXJCdWZmZXIoVGV4dHVyZVZhcmlhbnQmJiwgY29uc3QgSW50U2l6ZSYsIFRleHR1cmVN
YXBwZXJHTDo6RmxhZ3MsIEdMaW50IGludGVybmFsRm9ybWF0KTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKaW5kZXggNWUwMjg0N2U0YWZlYjBkOTRlMDc2MTQ5
MzI1MWZiNWUyY2E3ZDZlZi4uMTMwOWNmZDZmY2U1YWM4MjdmNDFhNDFjNWRlOWM3MWNmYmRmMDJj
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCkBAIC0xNjAs
NiArMTYwLDE0IEBAIHN0YXRpYyBjb25zdCBjaGFyKiB2ZXJ0ZXhUZW1wbGF0ZUNvbW1vbiA9CiAg
ICAgR0xTTF9ESVJFQ1RJVkUoZGVmaW5lIEdBVVNTSUFOX0tFUk5FTF9TVEVQIDAuMikKIAogCisj
ZGVmaW5lIE9FU19FR0xfSU1BR0VfRVhURVJOQUxfRElSRUNUSVZFIFwKKyAgICBHTFNMX0RJUkVD
VElWRShpZmRlZiBFTkFCTEVfVGV4dHVyZUV4dGVybmFsT0VTKSBcCisgICAgICAgIEdMU0xfRElS
RUNUSVZFKGV4dGVuc2lvbiBHTF9PRVNfRUdMX2ltYWdlX2V4dGVybmFsIDogcmVxdWlyZSkgXAor
ICAgICAgICBHTFNMX0RJUkVDVElWRShkZWZpbmUgU2FtcGxlckV4dGVybmFsT0VTVHlwZSBzYW1w
bGVyRXh0ZXJuYWxPRVMpIFwKKyAgICBHTFNMX0RJUkVDVElWRShlbHNlKSBcCisgICAgICAgIEdM
U0xfRElSRUNUSVZFKGRlZmluZSBTYW1wbGVyRXh0ZXJuYWxPRVNUeXBlIHNhbXBsZXIyRCkgXAor
ICAgIEdMU0xfRElSRUNUSVZFKGVuZGlmKQorCiAvLyBDb21tb24gaGVhZGVyIGZvciBhbGwgdmVy
c2lvbnMuIFdlIGRlZmluZSB0aGUgbWF0cmljZXMgdmFyaWFibGVzIGhlcmUgdG8ga2VlcCB0aGUg
cHJlY2lzaW9uCiAvLyBkaXJlY3RpdmVzIHNjb3BlOiB0aGUgZmlyc3Qgb25lIGFwcGxpZXMgdG8g
dGhlIG1hdHJpY2VzIHZhcmlhYmxlcyBhbmQgdGhlIG5leHQgb25lIHRvIHRoZQogLy8gcmVzdCBv
ZiB0aGVtLiBUaGUgcHJlY2lzaW9uIGlzIG9ubHkgdXNlZCBpbiBHTEVTLgpAQCAtMTY3LDEwICsx
NzUsOSBAQCBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRUZW1wbGF0ZUhlYWRlckNvbW1vbiA9
CiAgICAgUkVDVF9URVhUVVJFX0RJUkVDVElWRQogICAgIEFOVElBTElBU0lOR19URVhfQ09PUkRf
RElSRUNUSVZFCiAgICAgQkxVUl9DT05TVEFOVFMKKyAgICBPRVNfRUdMX0lNQUdFX0VYVEVSTkFM
X0RJUkVDVElWRQogI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgVEVYVFVSRV9TUEFDRV9NQVRSSVhf
UFJFQ0lTSU9OX0RJUkVDVElWRQotI2VuZGlmCi0jaWYgVVNFKE9QRU5HTF9FUykKICAgICBTVFJJ
TkdJRlkoCiAgICAgICAgIHByZWNpc2lvbiBUZXh0dXJlU3BhY2VNYXRyaXhQcmVjaXNpb24gZmxv
YXQ7CiAgICAgKQpAQCAtMjExLDYgKzIxOCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBmcmFnbWVu
dFRlbXBsYXRlQ29tbW9uID0KICAgICAgICAgdW5pZm9ybSBTYW1wbGVyVHlwZSBzX3NhbXBsZXJV
OwogICAgICAgICB1bmlmb3JtIFNhbXBsZXJUeXBlIHNfc2FtcGxlclY7CiAgICAgICAgIHVuaWZv
cm0gc2FtcGxlcjJEIHNfY29udGVudFRleHR1cmU7CisgICAgICAgIHVuaWZvcm0gU2FtcGxlckV4
dGVybmFsT0VTVHlwZSBzX2V4dGVybmFsT0VTVGV4dHVyZTsKICAgICAgICAgdW5pZm9ybSBmbG9h
dCB1X29wYWNpdHk7CiAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9maWx0ZXJBbW91bnQ7CiAgICAg
ICAgIHVuaWZvcm0gbWF0MyB1X3l1dlRvUmdiOwpAQCAtMzc0LDYgKzM4MiwxMiBAQCBzdGF0aWMg
Y29uc3QgY2hhciogZnJhZ21lbnRUZW1wbGF0ZUNvbW1vbiA9CiAgICAgICAgICAgICBjb2xvciA9
IHNvdXJjZU92ZXIoY29udGVudENvbG9yLCBjb2xvcik7CiAgICAgICAgIH0KIAorICAgICAgICB2
b2lkIGFwcGx5VGV4dHVyZUV4dGVybmFsT0VTKGlub3V0IHZlYzQgY29sb3IsIHZlYzIgdGV4Q29v
cmQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZlYzQgY29udGVudENvbG9yID0gdGV4dHVyZTJE
KHNfZXh0ZXJuYWxPRVNUZXh0dXJlLCB0ZXhDb29yZCk7CisgICAgICAgICAgICBjb2xvciA9IHNv
dXJjZU92ZXIoY29udGVudENvbG9yLCBjb2xvcik7CisgICAgICAgIH0KKwogICAgICAgICB2b2lk
IGFwcGx5U29saWRDb2xvcihpbm91dCB2ZWM0IGNvbG9yKSB7IGNvbG9yICo9IHVfY29sb3I7IH0K
IAogICAgICAgICB2b2lkIG1haW4odm9pZCkKQEAgLTQwMCw2ICs0MTQsNyBAQCBzdGF0aWMgY29u
c3QgY2hhciogZnJhZ21lbnRUZW1wbGF0ZUNvbW1vbiA9CiAgICAgICAgICAgICBhcHBseUJsdXJG
aWx0ZXJJZk5lZWRlZChjb2xvciwgdGV4Q29vcmQpOwogICAgICAgICAgICAgYXBwbHlBbHBoYUJs
dXJJZk5lZWRlZChjb2xvciwgdGV4Q29vcmQpOwogICAgICAgICAgICAgYXBwbHlDb250ZW50VGV4
dHVyZUlmTmVlZGVkKGNvbG9yLCB0ZXhDb29yZCk7CisgICAgICAgICAgICBhcHBseVRleHR1cmVF
eHRlcm5hbE9FU0lmTmVlZGVkKGNvbG9yLCB0ZXhDb29yZCk7CiAgICAgICAgICAgICBnbF9GcmFn
Q29sb3IgPSBjb2xvcjsKICAgICAgICAgfQogICAgICk7CkBAIC00MzIsNiArNDQ3LDcgQEAgUmVm
PFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6
Y3JlYXRlKFRleHR1cmVNYXBwZXIKICAgICBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMoQWxwaGFC
bHVyKTsKICAgICBTRVRfQVBQTElFUl9GUk9NX09QVElPTlMoQ29udGVudFRleHR1cmUpOwogICAg
IFNFVF9BUFBMSUVSX0ZST01fT1BUSU9OUyhNYW51YWxSZXBlYXQpOworICAgIFNFVF9BUFBMSUVS
X0ZST01fT1BUSU9OUyhUZXh0dXJlRXh0ZXJuYWxPRVMpOwogCiAgICAgU3RyaW5nQnVpbGRlciB2
ZXJ0ZXhTaGFkZXJCdWlsZGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bS5oCmluZGV4IGJhNWMwMDExNzU4NDc3MDY0NGJmZGY0NzdiNWMxN2ExY2ZkOGY2OTYuLjE3Y2I1
MGUzYTU1NTEwNTViMzNiNTZkM2E1MWE2NjgzYjc3ZmMwMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbS5oCkBAIC02Niw2ICs2Niw3IEBAIHB1YmxpYzoKICAgICAgICAg
VGV4dHVyZU5WMTIgICAgICA9IDFMIDw8IDE5LAogICAgICAgICBUZXh0dXJlTlYyMSAgICAgID0g
MUwgPDwgMjAsCiAgICAgICAgIFRleHR1cmVQYWNrZWRZVVYgPSAxTCA8PCAyMSwKKyAgICAgICAg
VGV4dHVyZUV4dGVybmFsT0VTID0gMUwgPDwgMjIsCiAgICAgfTsKIAogICAgIHR5cGVkZWYgdW5z
aWduZWQgT3B0aW9uczsKQEAgLTk2LDYgKzk3LDcgQEAgcHVibGljOgogICAgIFRFWE1BUF9ERUNM
QVJFX1VOSUZPUk0oYmx1clJhZGl1cykKICAgICBURVhNQVBfREVDTEFSRV9VTklGT1JNKHNoYWRv
d09mZnNldCkKICAgICBURVhNQVBfREVDTEFSRV9TQU1QTEVSKGNvbnRlbnRUZXh0dXJlKQorICAg
IFRFWE1BUF9ERUNMQVJFX1NBTVBMRVIoZXh0ZXJuYWxPRVNUZXh0dXJlKQogCiAgICAgdm9pZCBz
ZXRNYXRyaXgoR0x1aW50LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwogCg==
</data>
<flag name="review"
          id="407956"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
      

    </bug>

</bugzilla>