<?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>170353</bug_id>
          
          <creation_ts>2017-03-31 12:04:13 -0700</creation_ts>
          <short_desc>REGRESSION(r214635): Calculate image subsampling only for CG</short_desc>
          <delta_ts>2017-04-09 11:45:10 -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>Images</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=169547</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1293235</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-03-31 12:04:13 -0700</bug_when>
    <thetext>In the &lt;http://trac.webkit.org/changeset/214635&gt;, we needed to calculate the image scaling factor for all platforms. It was needed do the calculation: sizeForDrawing = sizeOfImage * imageScaleFactor. But this makes ImageSource::subsamplingLevelForScale() now returns a SubsamplingLevel not equal to SubsamplingLevel::Default if the scaleFactor is greater than { 1, 1} for all platforms. The subsamplingLevel should only be used for CG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293248</commentid>
    <comment_count>1</comment_count>
      <attachid>305997</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-03-31 12:24:03 -0700</bug_when>
    <thetext>Created attachment 305997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293261</commentid>
    <comment_count>2</comment_count>
      <attachid>306002</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-03-31 12:37:34 -0700</bug_when>
    <thetext>Created attachment 306002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293277</commentid>
    <comment_count>3</comment_count>
      <attachid>306002</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-03-31 13:11:26 -0700</bug_when>
    <thetext>Comment on attachment 306002
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContext.h:502
&gt; +    FloatSize scaleFactor(const FloatRect&amp; destRect, const FloatRect&amp; srcRect) const;

This needs a better name that explains why two rects are passed in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293347</commentid>
    <comment_count>4</comment_count>
      <attachid>306022</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-03-31 16:05:17 -0700</bug_when>
    <thetext>Created attachment 306022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1293403</commentid>
    <comment_count>5</comment_count>
      <attachid>306002</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-03-31 18:06:44 -0700</bug_when>
    <thetext>Comment on attachment 306002
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/GraphicsContext.h:502
&gt;&gt; +    FloatSize scaleFactor(const FloatRect&amp; destRect, const FloatRect&amp; srcRect) const;
&gt; 
&gt; This needs a better name that explains why two rects are passed in.

I renamed it to scaleFactorForDrawing().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295817</commentid>
    <comment_count>6</comment_count>
      <attachid>306627</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-04-09 11:05:45 -0700</bug_when>
    <thetext>Created attachment 306627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295818</commentid>
    <comment_count>7</comment_count>
      <attachid>306627</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-09 11:45:09 -0700</bug_when>
    <thetext>Comment on attachment 306627
Patch

Clearing flags on attachment: 306627

Committed r215163: &lt;http://trac.webkit.org/changeset/215163&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295819</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-09 11:45:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305997</attachid>
            <date>2017-03-31 12:24:03 -0700</date>
            <delta_ts>2017-03-31 12:37:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170353-20170331122402.patch</filename>
            <type>text/plain</type>
            <size>12035</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNDY3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE3LTAzLTMxICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TihyMjE0NjM1KTogQ2FsY3VsYXRlIGltYWdlIHN1YnNhbXBsaW5nIG9ubHkgZm9yIENHCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAzNTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiByMjE0NjM1LCB3
ZSBuZWVkZWQgdG8gY2FsY3VsYXRlIHRoZSBpbWFnZSBzY2FsZUZhY3RvciBmb3IgYWxsIHBsYXRm
b3Jtcy4KKyAgICAgICAgSXQgd2FzIG5lZWRlZCBkbyB0aGUgY2FsY3VsYXRpb246IHNpemVGb3JE
cmF3aW5nID0gc2l6ZU9mSW1hZ2UgKiBpbWFnZVNjYWxlRmFjdG9yLgorICAgICAgICBUaGlzIG1h
ZGUgSW1hZ2VTb3VyY2U6OnN1YnNhbXBsaW5nTGV2ZWxGb3JTY2FsZSgpIG5vdyByZXR1cm5zIGEg
U3Vic2FtcGxpbmdMZXZlbAorICAgICAgICBub3QgZXF1YWwgdG8gU3Vic2FtcGxpbmdMZXZlbDo6
RGVmYXVsdCBpZiB0aGUgaW1hZ2Ugc2NhbGVGYWN0b3IgaXMgZ3JlYXRlcgorICAgICAgICB0aGFu
IHsxLCAxfSBmb3IgYWxsIHBsYXRmb3Jtcy4gVGhlIHN1YnNhbXBsaW5nTGV2ZWwgc2hvdWxkIG9u
bHkgYmUgdXNlZCBmb3IgQ0cuCisgICAgICAgIAorICAgICAgICBUaGlzIGlzIGFsc28gYSBjaGFu
Y2UgdG8gbWFrZSBuYXRpdmVJbWFnZURyYXdpbmdTY2FsZSgpIGEgYWNyb3NzIHBsYXRmb3JtCisg
ICAgICAgIGZ1bmN0aW9uIGFuZCBtb3ZlIGl0IHRvIHRoZSBHcmFwaGljc0NvbnRleHQgY2xhc3Mu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZHJhdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6c2NhbGVGYWN0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpzdWJzYW1wbGluZ0xldmVsRm9yU2NhbGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9OYXRpdmVJbWFnZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5hdGl2ZUlt
YWdlRHJhd2luZ1NjYWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
Zy9OYXRpdmVJbWFnZUNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5hdGl2ZUltYWdlRHJhd2lu
Z1NjYWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTmF0aXZl
SW1hZ2VEaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpuYXRpdmVJbWFnZURyYXdpbmdT
Y2FsZSk6IERlbGV0ZWQuCisKIDIwMTctMDMtMzEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBNYXJrICJIVE1MIGludGVyYWN0aXZlIGZvcm0g
dmFsaWRhdGlvbiIgYXMgZG9uZS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAJKHJldmlzaW9uIDIxNDYzOSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTYzLDEyICsxNjMsMTEgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRl
eHQmIAogICAgIGlmIChkZXN0UmVjdC5pc0VtcHR5KCkgfHwgc3JjUmVjdC5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIEZsb2F0U2l6ZSBzY2FsZSA9IG5hdGl2ZUltYWdlRHJhd2lu
Z1NjYWxlKGNvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0KTsKLSAgICBmbG9hdCBzdWJzYW1wbGlu
Z1NjYWxlID0gc3RkOjptaW4oZmxvYXQoMSksIHN0ZDo6bWF4KHNjYWxlLndpZHRoKCksIHNjYWxl
LmhlaWdodCgpKSk7Ci0gICAgbV9jdXJyZW50U3Vic2FtcGxpbmdMZXZlbCA9IGFsbG93U3Vic2Ft
cGxpbmcoKSA/IG1fc291cmNlLnN1YnNhbXBsaW5nTGV2ZWxGb3JTY2FsZShzdWJzYW1wbGluZ1Nj
YWxlKSA6IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQ7Ci0gICAgSW50U2l6ZSBzaXplRm9yRHJh
d2luZyA9IGV4cGFuZGVkSW50U2l6ZShzaXplKCkgKiBzY2FsZSk7CisgICAgRmxvYXRTaXplIHNj
YWxlRmFjdG9yID0gY29udGV4dC5zY2FsZUZhY3RvcihkZXN0UmVjdCwgc3JjUmVjdCk7CisgICAg
bV9jdXJyZW50U3Vic2FtcGxpbmdMZXZlbCA9IGFsbG93U3Vic2FtcGxpbmcoKSA/IG1fc291cmNl
LnN1YnNhbXBsaW5nTGV2ZWxGb3JTY2FsZUZhY3Rvcihjb250ZXh0LCBzY2FsZUZhY3RvcikgOiBT
dWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0OworICAgIEludFNpemUgc2l6ZUZvckRyYXdpbmcgPSBl
eHBhbmRlZEludFNpemUoc2l6ZSgpICogc2NhbGVGYWN0b3IpOwogCi0gICAgTE9HKEltYWdlcywg
IkJpdG1hcEltYWdlOjolcyAtICVwIC0gdXJsOiAlcyBbc3Vic2FtcGxpbmdMZXZlbCA9ICVkIHNj
YWxlID0gJS40Zl0iLCBfX0ZVTkNUSU9OX18sIHRoaXMsIHNvdXJjZVVSTCgpLnV0ZjgoKS5kYXRh
KCksIHN0YXRpY19jYXN0PGludD4obV9jdXJyZW50U3Vic2FtcGxpbmdMZXZlbCksIHN1YnNhbXBs
aW5nU2NhbGUpOworICAgIExPRyhJbWFnZXMsICJCaXRtYXBJbWFnZTo6JXMgLSAlcCAtIHVybDog
JXMgW3N1YnNhbXBsaW5nTGV2ZWwgPSAlZCBzY2FsZUZhY3RvciA9ICglLjRmLCAlLjRmKV0iLCBf
X0ZVTkNUSU9OX18sIHRoaXMsIHNvdXJjZVVSTCgpLnV0ZjgoKS5kYXRhKCksIHN0YXRpY19jYXN0
PGludD4obV9jdXJyZW50U3Vic2FtcGxpbmdMZXZlbCksIHNjYWxlRmFjdG9yLndpZHRoKCksIHNj
YWxlRmFjdG9yLmhlaWdodCgpKTsKIAogICAgIE5hdGl2ZUltYWdlUHRyIGltYWdlOwogICAgIGlm
IChkZWNvZGluZ01vZGUgPT0gRGVjb2RpbmdNb2RlOjpBc3luY2hyb25vdXMgJiYgc2hvdWxkVXNl
QXN5bmNEZWNvZGluZ0ZvckxhcmdlSW1hZ2VzKCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAkocmV2aXNpb24g
MjE0NjM5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzNiw2ICsxMDM2LDEzIEBAIEZsb2F0U2l6ZSBH
cmFwaGljc0NvbnRleHQ6OnNjYWxlRmFjdG9yKCkKICAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNm
b3JtID0gZ2V0Q1RNKEdyYXBoaWNzQ29udGV4dDo6RGVmaW5pdGVseUluY2x1ZGVEZXZpY2VTY2Fs
ZSk7CiAgICAgcmV0dXJuIEZsb2F0U2l6ZSh0cmFuc2Zvcm0ueFNjYWxlKCksIHRyYW5zZm9ybS55
U2NhbGUoKSk7CiB9CisgICAgCitGbG9hdFNpemUgR3JhcGhpY3NDb250ZXh0OjpzY2FsZUZhY3Rv
cihjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QpIGNv
bnN0Cit7CisgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IGdldENUTShHcmFwaGljc0Nv
bnRleHQ6OkRlZmluaXRlbHlJbmNsdWRlRGV2aWNlU2NhbGUpOworICAgIGF1dG8gdHJhbnNmb3Jt
ZWREZXN0UmVjdCA9IHRyYW5zZm9ybS5tYXBSZWN0KGRlc3RSZWN0KTsKKyAgICByZXR1cm4geyBz
dGF0aWNfY2FzdDxmbG9hdD4odHJhbnNmb3JtZWREZXN0UmVjdC53aWR0aCgpIC8gc3JjUmVjdC53
aWR0aCgpKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRyYW5zZm9ybWVkRGVzdFJlY3QuaGVpZ2h0KCkg
LyBzcmNSZWN0LmhlaWdodCgpKSB9OworfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbEVs
bGlwc2UoY29uc3QgRmxvYXRSZWN0JiBlbGxpcHNlKQogewpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgJKHJldmlzaW9uIDIx
NDYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OTksNiArNDk5LDcgQEAgcHVibGljOgogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgYXBwbHlEZXZpY2VTY2FsZUZhY3RvcihmbG9hdCk7CiAgICAgdm9pZCBw
bGF0Zm9ybUFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwogICAgIEZsb2F0U2l6ZSBzY2Fs
ZUZhY3RvcigpIGNvbnN0OworICAgIEZsb2F0U2l6ZSBzY2FsZUZhY3Rvcihjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QpIGNvbnN0OwogCiAjaWYgT1Mo
V0lORE9XUykKICAgICBIREMgZ2V0V2luZG93c0NvbnRleHQoY29uc3QgSW50UmVjdCYsIGJvb2wg
c3VwcG9ydEFscGhhQmxlbmQsIGJvb2wgbWF5Q3JlYXRlQml0bWFwKTsgLy8gVGhlIHBhc3NlZCBp
biByZWN0IGlzIHVzZWQgdG8gY3JlYXRlIGEgYml0bWFwIGZvciBjb21wb3NpdGluZyBpbnNpZGUg
dHJhbnNwYXJlbmN5IGxheWVycy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAJKHJldmlzaW9uIDIxNDYzOSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjksMTggKzI5LDE3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW1hZ2VT
b3VyY2UuaCIKIAorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorCiAjaWYgVVNFKENHKQog
I2luY2x1ZGUgIkltYWdlRGVjb2RlckNHLmgiCiAjZWxpZiBVU0UoRElSRUNUMkQpCi0jaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW1hZ2VEZWNvZGVyRGlyZWN0MkQuaCIK
LSNpbmNsdWRlIDxXaW5Db2RlYy5oPgogI2Vsc2UKICNpbmNsdWRlICJJbWFnZURlY29kZXIuaCIK
ICNlbmRpZgogCiAjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgotCiAjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE3NywxMyArMTc2LDIz
IEBAIFN1YnNhbXBsaW5nTGV2ZWwgSW1hZ2VTb3VyY2U6Om1heGltdW1TdWIKICAgICByZXR1cm4g
bV9tYXhpbXVtU3Vic2FtcGxpbmdMZXZlbC52YWx1ZSgpOwogfQogCi1TdWJzYW1wbGluZ0xldmVs
IEltYWdlU291cmNlOjpzdWJzYW1wbGluZ0xldmVsRm9yU2NhbGUoZmxvYXQgc2NhbGUpCitTdWJz
YW1wbGluZ0xldmVsIEltYWdlU291cmNlOjpzdWJzYW1wbGluZ0xldmVsRm9yU2NhbGVGYWN0b3Io
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFNpemUmIHNjYWxlRmFjdG9yKQog
eworI2lmIFVTRShDRykKKyAgICAvLyBOZXZlciB1c2Ugc3Vic2FtcGxlZCBpbWFnZXMgZm9yIGRy
YXdpbmcgaW50byBQREYgY29udGV4dHMuCisgICAgaWYgKHdrQ0dDb250ZXh0SXNQREZDb250ZXh0
KGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCkpKQorICAgICAgICByZXR1cm4gU3Vic2FtcGxpbmdM
ZXZlbDo6RGVmYXVsdDsKKworICAgIGZsb2F0IHNjYWxlID0gc3RkOjptaW4oZmxvYXQoMSksIHN0
ZDo6bWF4KHNjYWxlRmFjdG9yLndpZHRoKCksIHNjYWxlRmFjdG9yLmhlaWdodCgpKSk7CiAgICAg
aWYgKCEoc2NhbGUgPiAwICYmIHNjYWxlIDw9IDEpKQogICAgICAgICByZXR1cm4gU3Vic2FtcGxp
bmdMZXZlbDo6RGVmYXVsdDsKIAotICAgIGludCByZXN1bHQgPSBzdGQ6OmNlaWwoc3RkOjpsb2cy
KDEgLyBzY2FsZSkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxTdWJzYW1wbGluZ0xldmVsPihz
dGQ6Om1pbihyZXN1bHQsIHN0YXRpY19jYXN0PGludD4obWF4aW11bVN1YnNhbXBsaW5nTGV2ZWwo
KSkpKTsKKyAgICByZXR1cm4gc3RkOjptaW4oc3RhdGljX2Nhc3Q8U3Vic2FtcGxpbmdMZXZlbD4o
c3RkOjpjZWlsKHN0ZDo6bG9nMigxIC8gc2NhbGUpKSksIG1heGltdW1TdWJzYW1wbGluZ0xldmVs
KCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CisgICAgVU5VU0VEX1BBUkFN
KHNjYWxlKTsKKyAgICByZXR1cm4gU3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdDsKKyNlbmRpZgog
fQogCiBOYXRpdmVJbWFnZVB0ciBJbWFnZVNvdXJjZTo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgo
c2l6ZV90IGluZGV4LCBTdWJzYW1wbGluZ0xldmVsIHN1YnNhbXBsaW5nTGV2ZWwpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgJKHJldmlz
aW9uIDIxNDYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291
cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw3ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgTmF0
aXZlSW1hZ2VQdHIgZnJhbWVJbWFnZUF0SW5kZXhDYWNoZUlmTmVlZGVkKHNpemVfdCwgU3Vic2Ft
cGxpbmdMZXZlbCA9IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQsIGNvbnN0IEdyYXBoaWNzQ29u
dGV4dCogPSBudWxscHRyKTsKIAogICAgIFN1YnNhbXBsaW5nTGV2ZWwgbWF4aW11bVN1YnNhbXBs
aW5nTGV2ZWwoKTsKLSAgICBTdWJzYW1wbGluZ0xldmVsIHN1YnNhbXBsaW5nTGV2ZWxGb3JTY2Fs
ZShmbG9hdCk7CisgICAgU3Vic2FtcGxpbmdMZXZlbCBzdWJzYW1wbGluZ0xldmVsRm9yU2NhbGVG
YWN0b3IoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRTaXplJiBzY2FsZUZhY3Rvcik7CiAg
ICAgTmF0aXZlSW1hZ2VQdHIgY3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgoc2l6ZV90LCBTdWJzYW1w
bGluZ0xldmVsID0gU3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdCk7CiAKIHByaXZhdGU6CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmgJKHJl
dmlzaW9uIDIxNDYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2
ZUltYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDggKzY1LDYgQEAgSW50U2l6ZSBuYXRpdmVJ
bWFnZVNpemUoY29uc3QgTmF0aXZlSW1hZwogYm9vbCBuYXRpdmVJbWFnZUhhc0FscGhhKGNvbnN0
IE5hdGl2ZUltYWdlUHRyJik7CiBDb2xvciBuYXRpdmVJbWFnZVNpbmdsZVBpeGVsU29saWRDb2xv
cihjb25zdCBOYXRpdmVJbWFnZVB0ciYpOwogCi1GbG9hdFNpemUgbmF0aXZlSW1hZ2VEcmF3aW5n
U2NhbGUoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0KTsKLQogdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZl
SW1hZ2VQdHImLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9h
dFJlY3QmLCBjb25zdCBJbnRTaXplJiwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgY29u
c3QgSW1hZ2VPcmllbnRhdGlvbiYpOwogdm9pZCBjbGVhck5hdGl2ZUltYWdlU3ViaW1hZ2VzKGNv
bnN0IE5hdGl2ZUltYWdlUHRyJik7CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFnZUNhaXJvLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFnZUNhaXJvLmNwcAko
cmV2aXNpb24gMjE0NjM5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vTmF0aXZlSW1hZ2VDYWlyby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDEyICs1Niw2IEBA
IENvbG9yIG5hdGl2ZUltYWdlU2luZ2xlUGl4ZWxTb2xpZENvbG9yKGMKICAgICByZXR1cm4gY29s
b3JGcm9tUHJlbXVsdGlwbGllZEFSR0IoKnBpeGVsKTsKIH0KIAotRmxvYXRTaXplIG5hdGl2ZUlt
YWdlRHJhd2luZ1NjYWxlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0KQotewotICAgIGF1dG8gdHJhbnNm
b3JtZWREZXN0aW5hdGlvblJlY3QgPSBjb250ZXh0LmdldENUTSgpLm1hcFJlY3QoZGVzdFJlY3Qp
OwotICAgIHJldHVybiB7IHN0YXRpY19jYXN0PGZsb2F0Pih0cmFuc2Zvcm1lZERlc3RpbmF0aW9u
UmVjdC53aWR0aCgpIC8gc3JjUmVjdC53aWR0aCgpKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRyYW5z
Zm9ybWVkRGVzdGluYXRpb25SZWN0LmhlaWdodCgpIC8gc3JjUmVjdC5oZWlnaHQoKSkgfTsKLX0K
LQogdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50U2l6ZSYsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBC
bGVuZE1vZGUgbW9kZSwgY29uc3QgSW1hZ2VPcmllbnRhdGlvbiYgb3JpZW50YXRpb24pCiB7CiAg
ICAgY29udGV4dC5zYXZlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9OYXRpdmVJbWFnZUNHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9OYXRpdmVJbWFnZUNHLmNwcAkocmV2aXNpb24gMjE0NjM5KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvTmF0aXZlSW1hZ2VDRy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTczLDE2ICs3Myw2IEBAIENvbG9yIG5hdGl2ZUltYWdlU2luZ2xlUGl4
ZWxTb2xpZENvbG9yKGMKICAgICByZXR1cm4gQ29sb3IocGl4ZWxbMF0gKiAyNTUgLyBwaXhlbFsz
XSwgcGl4ZWxbMV0gKiAyNTUgLyBwaXhlbFszXSwgcGl4ZWxbMl0gKiAyNTUgLyBwaXhlbFszXSwg
cGl4ZWxbM10pOwogfQogCi1GbG9hdFNpemUgbmF0aXZlSW1hZ2VEcmF3aW5nU2NhbGUoR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QpCi17Ci0gICAgLy8gTmV2ZXIgdXNlIHN1YnNhbXBsZWQgaW1hZ2VzIGZv
ciBkcmF3aW5nIGludG8gUERGIGNvbnRleHRzLgotICAgIGlmICh3a0NHQ29udGV4dElzUERGQ29u
dGV4dChjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKSkKLSAgICAgICAgcmV0dXJuIHsgMSwgMSB9
OwotCi0gICAgQ0dSZWN0IHRyYW5zZm9ybWVkRGVzdGluYXRpb25SZWN0ID0gQ0dSZWN0QXBwbHlB
ZmZpbmVUcmFuc2Zvcm0oZGVzdFJlY3QsIENHQ29udGV4dEdldENUTShjb250ZXh0LnBsYXRmb3Jt
Q29udGV4dCgpKSk7Ci0gICAgcmV0dXJuIHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRyYW5zZm9ybWVk
RGVzdGluYXRpb25SZWN0LnNpemUud2lkdGggLyBzcmNSZWN0LndpZHRoKCkpLCBzdGF0aWNfY2Fz
dDxmbG9hdD4odHJhbnNmb3JtZWREZXN0aW5hdGlvblJlY3Quc2l6ZS5oZWlnaHQgLyBzcmNSZWN0
LmhlaWdodCgpKSB9OwotfQotCiB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFn
ZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXpl
LCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIG1vZGUsIGNvbnN0IEltYWdlT3JpZW50
YXRpb24mIG9yaWVudGF0aW9uKQogewogICAgIC8vIFN1YnNhbXBsaW5nIG1heSBoYXZlIGdpdmVu
IHVzIGFuIGltYWdlIHRoYXQgaXMgc21hbGxlciB0aGFuIHNpemUoKS4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9OYXRpdmVJbWFnZURpcmVjdDJELmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTmF0aXZlSW1h
Z2VEaXJlY3QyRC5jcHAJKHJldmlzaW9uIDIxNDYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9OYXRpdmVJbWFnZURpcmVjdDJELmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjAsMTcgKzYwLDYgQEAgQ29sb3IgbmF0aXZlSW1hZ2VTaW5nbGVQaXhlbFNvbGlkQ29sb3Io
YwogICAgIHJldHVybiBDb2xvcigpOwogfQogCi1GbG9hdFNpemUgbmF0aXZlSW1hZ2VEcmF3aW5n
U2NhbGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QpCi17Ci0gICAgRDJEMV9NQVRSSVhfM1gyX0YgY3Rt
OwotICAgIGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPkdldFRyYW5zZm9ybSgmY3RtKTsKLQot
ICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0oY3RtKTsKLQotICAgIGF1dG8gdHJhbnNmb3Jt
ZWREZXN0aW5hdGlvblJlY3QgPSB0cmFuc2Zvcm0ubWFwUmVjdChkZXN0UmVjdCk7Ci0gICAgcmV0
dXJuIHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRyYW5zZm9ybWVkRGVzdGluYXRpb25SZWN0LndpZHRo
KCkgLyBzcmNSZWN0LndpZHRoKCkpLCBzdGF0aWNfY2FzdDxmbG9hdD4odHJhbnNmb3JtZWREZXN0
aW5hdGlvblJlY3QuaGVpZ2h0KCkgLyBzcmNSZWN0LmhlaWdodCgpKSB9OwotfQotCiB2b2lkIGRy
YXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXplLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3Np
dGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgY29uc3QgSW1hZ2VPcmllbnRhdGlvbiYgb3JpZW50
YXRpb24pCiB7CiAgICAgYXV0byBwbGF0Zm9ybUNvbnRleHQgPSBjb250ZXh0LnBsYXRmb3JtQ29u
dGV4dCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306002</attachid>
            <date>2017-03-31 12:37:34 -0700</date>
            <delta_ts>2017-03-31 16:05:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170353-20170331123733.patch</filename>
            <type>text/plain</type>
            <size>12041</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNDY3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE3LTAzLTMxICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TihyMjE0NjM1KTogQ2FsY3VsYXRlIGltYWdlIHN1YnNhbXBsaW5nIG9ubHkgZm9yIENHCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAzNTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiByMjE0NjM1LCB3
ZSBuZWVkZWQgdG8gY2FsY3VsYXRlIHRoZSBpbWFnZSBzY2FsZUZhY3RvciBmb3IgYWxsIHBsYXRm
b3Jtcy4KKyAgICAgICAgSXQgd2FzIG5lZWRlZCBkbyB0aGUgY2FsY3VsYXRpb246IHNpemVGb3JE
cmF3aW5nID0gc2l6ZU9mSW1hZ2UgKiBpbWFnZVNjYWxlRmFjdG9yLgorICAgICAgICBUaGlzIG1h
ZGUgSW1hZ2VTb3VyY2U6OnN1YnNhbXBsaW5nTGV2ZWxGb3JTY2FsZSgpIG5vdyByZXR1cm5zIGEg
U3Vic2FtcGxpbmdMZXZlbAorICAgICAgICBub3QgZXF1YWwgdG8gU3Vic2FtcGxpbmdMZXZlbDo6
RGVmYXVsdCBpZiB0aGUgaW1hZ2Ugc2NhbGVGYWN0b3IgaXMgZ3JlYXRlcgorICAgICAgICB0aGFu
IHsxLCAxfSBmb3IgYWxsIHBsYXRmb3Jtcy4gVGhlIHN1YnNhbXBsaW5nTGV2ZWwgc2hvdWxkIG9u
bHkgYmUgdXNlZCBmb3IgQ0cuCisgICAgICAgIAorICAgICAgICBUaGlzIGlzIGFsc28gYSBjaGFu
Y2UgdG8gbWFrZSBuYXRpdmVJbWFnZURyYXdpbmdTY2FsZSgpIGEgYWNyb3NzIHBsYXRmb3JtCisg
ICAgICAgIGZ1bmN0aW9uIGFuZCBtb3ZlIGl0IHRvIHRoZSBHcmFwaGljc0NvbnRleHQgY2xhc3Mu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZHJhdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6c2NhbGVGYWN0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpzdWJzYW1wbGluZ0xldmVsRm9yU2NhbGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9OYXRpdmVJbWFnZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5hdGl2ZUlt
YWdlRHJhd2luZ1NjYWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
Zy9OYXRpdmVJbWFnZUNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5hdGl2ZUltYWdlRHJhd2lu
Z1NjYWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTmF0aXZl
SW1hZ2VEaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpuYXRpdmVJbWFnZURyYXdpbmdT
Y2FsZSk6IERlbGV0ZWQuCisKIDIwMTctMDMtMzEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBNYXJrICJIVE1MIGludGVyYWN0aXZlIGZvcm0g
dmFsaWRhdGlvbiIgYXMgZG9uZS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAJKHJldmlzaW9uIDIxNDYzOSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTYzLDEyICsxNjMsMTEgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRl
eHQmIAogICAgIGlmIChkZXN0UmVjdC5pc0VtcHR5KCkgfHwgc3JjUmVjdC5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIEZsb2F0U2l6ZSBzY2FsZSA9IG5hdGl2ZUltYWdlRHJhd2lu
Z1NjYWxlKGNvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0KTsKLSAgICBmbG9hdCBzdWJzYW1wbGlu
Z1NjYWxlID0gc3RkOjptaW4oZmxvYXQoMSksIHN0ZDo6bWF4KHNjYWxlLndpZHRoKCksIHNjYWxl
LmhlaWdodCgpKSk7Ci0gICAgbV9jdXJyZW50U3Vic2FtcGxpbmdMZXZlbCA9IGFsbG93U3Vic2Ft
cGxpbmcoKSA/IG1fc291cmNlLnN1YnNhbXBsaW5nTGV2ZWxGb3JTY2FsZShzdWJzYW1wbGluZ1Nj
YWxlKSA6IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQ7Ci0gICAgSW50U2l6ZSBzaXplRm9yRHJh
d2luZyA9IGV4cGFuZGVkSW50U2l6ZShzaXplKCkgKiBzY2FsZSk7CisgICAgRmxvYXRTaXplIHNj
YWxlRmFjdG9yID0gY29udGV4dC5zY2FsZUZhY3RvcihkZXN0UmVjdCwgc3JjUmVjdCk7CisgICAg
bV9jdXJyZW50U3Vic2FtcGxpbmdMZXZlbCA9IGFsbG93U3Vic2FtcGxpbmcoKSA/IG1fc291cmNl
LnN1YnNhbXBsaW5nTGV2ZWxGb3JTY2FsZUZhY3Rvcihjb250ZXh0LCBzY2FsZUZhY3RvcikgOiBT
dWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0OworICAgIEludFNpemUgc2l6ZUZvckRyYXdpbmcgPSBl
eHBhbmRlZEludFNpemUoc2l6ZSgpICogc2NhbGVGYWN0b3IpOwogCi0gICAgTE9HKEltYWdlcywg
IkJpdG1hcEltYWdlOjolcyAtICVwIC0gdXJsOiAlcyBbc3Vic2FtcGxpbmdMZXZlbCA9ICVkIHNj
YWxlID0gJS40Zl0iLCBfX0ZVTkNUSU9OX18sIHRoaXMsIHNvdXJjZVVSTCgpLnV0ZjgoKS5kYXRh
KCksIHN0YXRpY19jYXN0PGludD4obV9jdXJyZW50U3Vic2FtcGxpbmdMZXZlbCksIHN1YnNhbXBs
aW5nU2NhbGUpOworICAgIExPRyhJbWFnZXMsICJCaXRtYXBJbWFnZTo6JXMgLSAlcCAtIHVybDog
JXMgW3N1YnNhbXBsaW5nTGV2ZWwgPSAlZCBzY2FsZUZhY3RvciA9ICglLjRmLCAlLjRmKV0iLCBf
X0ZVTkNUSU9OX18sIHRoaXMsIHNvdXJjZVVSTCgpLnV0ZjgoKS5kYXRhKCksIHN0YXRpY19jYXN0
PGludD4obV9jdXJyZW50U3Vic2FtcGxpbmdMZXZlbCksIHNjYWxlRmFjdG9yLndpZHRoKCksIHNj
YWxlRmFjdG9yLmhlaWdodCgpKTsKIAogICAgIE5hdGl2ZUltYWdlUHRyIGltYWdlOwogICAgIGlm
IChkZWNvZGluZ01vZGUgPT0gRGVjb2RpbmdNb2RlOjpBc3luY2hyb25vdXMgJiYgc2hvdWxkVXNl
QXN5bmNEZWNvZGluZ0ZvckxhcmdlSW1hZ2VzKCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAkocmV2aXNpb24g
MjE0NjM5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzNiw2ICsxMDM2LDEzIEBAIEZsb2F0U2l6ZSBH
cmFwaGljc0NvbnRleHQ6OnNjYWxlRmFjdG9yKCkKICAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNm
b3JtID0gZ2V0Q1RNKEdyYXBoaWNzQ29udGV4dDo6RGVmaW5pdGVseUluY2x1ZGVEZXZpY2VTY2Fs
ZSk7CiAgICAgcmV0dXJuIEZsb2F0U2l6ZSh0cmFuc2Zvcm0ueFNjYWxlKCksIHRyYW5zZm9ybS55
U2NhbGUoKSk7CiB9CisgICAgCitGbG9hdFNpemUgR3JhcGhpY3NDb250ZXh0OjpzY2FsZUZhY3Rv
cihjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QpIGNv
bnN0Cit7CisgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IGdldENUTShHcmFwaGljc0Nv
bnRleHQ6OkRlZmluaXRlbHlJbmNsdWRlRGV2aWNlU2NhbGUpOworICAgIGF1dG8gdHJhbnNmb3Jt
ZWREZXN0UmVjdCA9IHRyYW5zZm9ybS5tYXBSZWN0KGRlc3RSZWN0KTsKKyAgICByZXR1cm4geyBz
dGF0aWNfY2FzdDxmbG9hdD4odHJhbnNmb3JtZWREZXN0UmVjdC53aWR0aCgpIC8gc3JjUmVjdC53
aWR0aCgpKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRyYW5zZm9ybWVkRGVzdFJlY3QuaGVpZ2h0KCkg
LyBzcmNSZWN0LmhlaWdodCgpKSB9OworfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbEVs
bGlwc2UoY29uc3QgRmxvYXRSZWN0JiBlbGxpcHNlKQogewpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgJKHJldmlzaW9uIDIx
NDYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OTksNiArNDk5LDcgQEAgcHVibGljOgogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgYXBwbHlEZXZpY2VTY2FsZUZhY3RvcihmbG9hdCk7CiAgICAgdm9pZCBw
bGF0Zm9ybUFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwogICAgIEZsb2F0U2l6ZSBzY2Fs
ZUZhY3RvcigpIGNvbnN0OworICAgIEZsb2F0U2l6ZSBzY2FsZUZhY3Rvcihjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QpIGNvbnN0OwogCiAjaWYgT1Mo
V0lORE9XUykKICAgICBIREMgZ2V0V2luZG93c0NvbnRleHQoY29uc3QgSW50UmVjdCYsIGJvb2wg
c3VwcG9ydEFscGhhQmxlbmQsIGJvb2wgbWF5Q3JlYXRlQml0bWFwKTsgLy8gVGhlIHBhc3NlZCBp
biByZWN0IGlzIHVzZWQgdG8gY3JlYXRlIGEgYml0bWFwIGZvciBjb21wb3NpdGluZyBpbnNpZGUg
dHJhbnNwYXJlbmN5IGxheWVycy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAJKHJldmlzaW9uIDIxNDYzOSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjksMTggKzI5LDE3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW1hZ2VT
b3VyY2UuaCIKIAorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorCiAjaWYgVVNFKENHKQog
I2luY2x1ZGUgIkltYWdlRGVjb2RlckNHLmgiCiAjZWxpZiBVU0UoRElSRUNUMkQpCi0jaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW1hZ2VEZWNvZGVyRGlyZWN0MkQuaCIK
LSNpbmNsdWRlIDxXaW5Db2RlYy5oPgogI2Vsc2UKICNpbmNsdWRlICJJbWFnZURlY29kZXIuaCIK
ICNlbmRpZgogCiAjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgotCiAjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE3NywxMyArMTc2LDIz
IEBAIFN1YnNhbXBsaW5nTGV2ZWwgSW1hZ2VTb3VyY2U6Om1heGltdW1TdWIKICAgICByZXR1cm4g
bV9tYXhpbXVtU3Vic2FtcGxpbmdMZXZlbC52YWx1ZSgpOwogfQogCi1TdWJzYW1wbGluZ0xldmVs
IEltYWdlU291cmNlOjpzdWJzYW1wbGluZ0xldmVsRm9yU2NhbGUoZmxvYXQgc2NhbGUpCitTdWJz
YW1wbGluZ0xldmVsIEltYWdlU291cmNlOjpzdWJzYW1wbGluZ0xldmVsRm9yU2NhbGVGYWN0b3Io
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFNpemUmIHNjYWxlRmFjdG9yKQog
eworI2lmIFVTRShDRykKKyAgICAvLyBOZXZlciB1c2Ugc3Vic2FtcGxlZCBpbWFnZXMgZm9yIGRy
YXdpbmcgaW50byBQREYgY29udGV4dHMuCisgICAgaWYgKHdrQ0dDb250ZXh0SXNQREZDb250ZXh0
KGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCkpKQorICAgICAgICByZXR1cm4gU3Vic2FtcGxpbmdM
ZXZlbDo6RGVmYXVsdDsKKworICAgIGZsb2F0IHNjYWxlID0gc3RkOjptaW4oZmxvYXQoMSksIHN0
ZDo6bWF4KHNjYWxlRmFjdG9yLndpZHRoKCksIHNjYWxlRmFjdG9yLmhlaWdodCgpKSk7CiAgICAg
aWYgKCEoc2NhbGUgPiAwICYmIHNjYWxlIDw9IDEpKQogICAgICAgICByZXR1cm4gU3Vic2FtcGxp
bmdMZXZlbDo6RGVmYXVsdDsKIAotICAgIGludCByZXN1bHQgPSBzdGQ6OmNlaWwoc3RkOjpsb2cy
KDEgLyBzY2FsZSkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxTdWJzYW1wbGluZ0xldmVsPihz
dGQ6Om1pbihyZXN1bHQsIHN0YXRpY19jYXN0PGludD4obWF4aW11bVN1YnNhbXBsaW5nTGV2ZWwo
KSkpKTsKKyAgICByZXR1cm4gc3RkOjptaW4oc3RhdGljX2Nhc3Q8U3Vic2FtcGxpbmdMZXZlbD4o
c3RkOjpjZWlsKHN0ZDo6bG9nMigxIC8gc2NhbGUpKSksIG1heGltdW1TdWJzYW1wbGluZ0xldmVs
KCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CisgICAgVU5VU0VEX1BBUkFN
KHNjYWxlRmFjdG9yKTsKKyAgICByZXR1cm4gU3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdDsKKyNl
bmRpZgogfQogCiBOYXRpdmVJbWFnZVB0ciBJbWFnZVNvdXJjZTo6Y3JlYXRlRnJhbWVJbWFnZUF0
SW5kZXgoc2l6ZV90IGluZGV4LCBTdWJzYW1wbGluZ0xldmVsIHN1YnNhbXBsaW5nTGV2ZWwpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgJ
KHJldmlzaW9uIDIxNDYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlU291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw3ICsxMDUsNyBAQCBwdWJsaWM6CiAg
ICAgTmF0aXZlSW1hZ2VQdHIgZnJhbWVJbWFnZUF0SW5kZXhDYWNoZUlmTmVlZGVkKHNpemVfdCwg
U3Vic2FtcGxpbmdMZXZlbCA9IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQsIGNvbnN0IEdyYXBo
aWNzQ29udGV4dCogPSBudWxscHRyKTsKIAogICAgIFN1YnNhbXBsaW5nTGV2ZWwgbWF4aW11bVN1
YnNhbXBsaW5nTGV2ZWwoKTsKLSAgICBTdWJzYW1wbGluZ0xldmVsIHN1YnNhbXBsaW5nTGV2ZWxG
b3JTY2FsZShmbG9hdCk7CisgICAgU3Vic2FtcGxpbmdMZXZlbCBzdWJzYW1wbGluZ0xldmVsRm9y
U2NhbGVGYWN0b3IoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRTaXplJiBzY2FsZUZhY3Rv
cik7CiAgICAgTmF0aXZlSW1hZ2VQdHIgY3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgoc2l6ZV90LCBT
dWJzYW1wbGluZ0xldmVsID0gU3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdCk7CiAKIHByaXZhdGU6
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdl
LmgJKHJldmlzaW9uIDIxNDYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L05hdGl2ZUltYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDggKzY1LDYgQEAgSW50U2l6ZSBu
YXRpdmVJbWFnZVNpemUoY29uc3QgTmF0aXZlSW1hZwogYm9vbCBuYXRpdmVJbWFnZUhhc0FscGhh
KGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7CiBDb2xvciBuYXRpdmVJbWFnZVNpbmdsZVBpeGVsU29s
aWRDb2xvcihjb25zdCBOYXRpdmVJbWFnZVB0ciYpOwogCi1GbG9hdFNpemUgbmF0aXZlSW1hZ2VE
cmF3aW5nU2NhbGUoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0KTsKLQogdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3Qg
TmF0aXZlSW1hZ2VQdHImLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25z
dCBGbG9hdFJlY3QmLCBjb25zdCBJbnRTaXplJiwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9k
ZSwgY29uc3QgSW1hZ2VPcmllbnRhdGlvbiYpOwogdm9pZCBjbGVhck5hdGl2ZUltYWdlU3ViaW1h
Z2VzKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFnZUNhaXJvLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFnZUNhaXJv
LmNwcAkocmV2aXNpb24gMjE0NjM5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDEyICs1
Niw2IEBAIENvbG9yIG5hdGl2ZUltYWdlU2luZ2xlUGl4ZWxTb2xpZENvbG9yKGMKICAgICByZXR1
cm4gY29sb3JGcm9tUHJlbXVsdGlwbGllZEFSR0IoKnBpeGVsKTsKIH0KIAotRmxvYXRTaXplIG5h
dGl2ZUltYWdlRHJhd2luZ1NjYWxlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0KQotewotICAgIGF1dG8g
dHJhbnNmb3JtZWREZXN0aW5hdGlvblJlY3QgPSBjb250ZXh0LmdldENUTSgpLm1hcFJlY3QoZGVz
dFJlY3QpOwotICAgIHJldHVybiB7IHN0YXRpY19jYXN0PGZsb2F0Pih0cmFuc2Zvcm1lZERlc3Rp
bmF0aW9uUmVjdC53aWR0aCgpIC8gc3JjUmVjdC53aWR0aCgpKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+
KHRyYW5zZm9ybWVkRGVzdGluYXRpb25SZWN0LmhlaWdodCgpIC8gc3JjUmVjdC5oZWlnaHQoKSkg
fTsKLX0KLQogdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdl
LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50U2l6ZSYsIENvbXBvc2l0ZU9wZXJhdG9y
IG9wLCBCbGVuZE1vZGUgbW9kZSwgY29uc3QgSW1hZ2VPcmllbnRhdGlvbiYgb3JpZW50YXRpb24p
CiB7CiAgICAgY29udGV4dC5zYXZlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9OYXRpdmVJbWFnZUNHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9OYXRpdmVJbWFnZUNHLmNwcAkocmV2aXNpb24gMjE0NjM5
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvTmF0aXZlSW1hZ2VDRy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDE2ICs3Myw2IEBAIENvbG9yIG5hdGl2ZUltYWdlU2lu
Z2xlUGl4ZWxTb2xpZENvbG9yKGMKICAgICByZXR1cm4gQ29sb3IocGl4ZWxbMF0gKiAyNTUgLyBw
aXhlbFszXSwgcGl4ZWxbMV0gKiAyNTUgLyBwaXhlbFszXSwgcGl4ZWxbMl0gKiAyNTUgLyBwaXhl
bFszXSwgcGl4ZWxbM10pOwogfQogCi1GbG9hdFNpemUgbmF0aXZlSW1hZ2VEcmF3aW5nU2NhbGUo
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QpCi17Ci0gICAgLy8gTmV2ZXIgdXNlIHN1YnNhbXBsZWQgaW1h
Z2VzIGZvciBkcmF3aW5nIGludG8gUERGIGNvbnRleHRzLgotICAgIGlmICh3a0NHQ29udGV4dElz
UERGQ29udGV4dChjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKSkKLSAgICAgICAgcmV0dXJuIHsg
MSwgMSB9OwotCi0gICAgQ0dSZWN0IHRyYW5zZm9ybWVkRGVzdGluYXRpb25SZWN0ID0gQ0dSZWN0
QXBwbHlBZmZpbmVUcmFuc2Zvcm0oZGVzdFJlY3QsIENHQ29udGV4dEdldENUTShjb250ZXh0LnBs
YXRmb3JtQ29udGV4dCgpKSk7Ci0gICAgcmV0dXJuIHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRyYW5z
Zm9ybWVkRGVzdGluYXRpb25SZWN0LnNpemUud2lkdGggLyBzcmNSZWN0LndpZHRoKCkpLCBzdGF0
aWNfY2FzdDxmbG9hdD4odHJhbnNmb3JtZWREZXN0aW5hdGlvblJlY3Quc2l6ZS5oZWlnaHQgLyBz
cmNSZWN0LmhlaWdodCgpKSB9OwotfQotCiB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRp
dmVJbWFnZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRTaXplJiBz
cmNTaXplLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIG1vZGUsIGNvbnN0IEltYWdl
T3JpZW50YXRpb24mIG9yaWVudGF0aW9uKQogewogICAgIC8vIFN1YnNhbXBsaW5nIG1heSBoYXZl
IGdpdmVuIHVzIGFuIGltYWdlIHRoYXQgaXMgc21hbGxlciB0aGFuIHNpemUoKS4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9OYXRpdmVJbWFnZURpcmVjdDJELmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTmF0
aXZlSW1hZ2VEaXJlY3QyRC5jcHAJKHJldmlzaW9uIDIxNDYzOSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9OYXRpdmVJbWFnZURpcmVjdDJELmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjAsMTcgKzYwLDYgQEAgQ29sb3IgbmF0aXZlSW1hZ2VTaW5nbGVQaXhlbFNvbGlk
Q29sb3IoYwogICAgIHJldHVybiBDb2xvcigpOwogfQogCi1GbG9hdFNpemUgbmF0aXZlSW1hZ2VE
cmF3aW5nU2NhbGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QpCi17Ci0gICAgRDJEMV9NQVRSSVhfM1gy
X0YgY3RtOwotICAgIGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPkdldFRyYW5zZm9ybSgmY3Rt
KTsKLQotICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0oY3RtKTsKLQotICAgIGF1dG8gdHJh
bnNmb3JtZWREZXN0aW5hdGlvblJlY3QgPSB0cmFuc2Zvcm0ubWFwUmVjdChkZXN0UmVjdCk7Ci0g
ICAgcmV0dXJuIHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRyYW5zZm9ybWVkRGVzdGluYXRpb25SZWN0
LndpZHRoKCkgLyBzcmNSZWN0LndpZHRoKCkpLCBzdGF0aWNfY2FzdDxmbG9hdD4odHJhbnNmb3Jt
ZWREZXN0aW5hdGlvblJlY3QuaGVpZ2h0KCkgLyBzcmNSZWN0LmhlaWdodCgpKSB9OwotfQotCiB2
b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXplLCBDb21wb3NpdGVPcGVyYXRvciBj
b21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgY29uc3QgSW1hZ2VPcmllbnRhdGlvbiYg
b3JpZW50YXRpb24pCiB7CiAgICAgYXV0byBwbGF0Zm9ybUNvbnRleHQgPSBjb250ZXh0LnBsYXRm
b3JtQ29udGV4dCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306022</attachid>
            <date>2017-03-31 16:05:17 -0700</date>
            <delta_ts>2017-04-09 11:05:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170353-20170331160515.patch</filename>
            <type>text/plain</type>
            <size>12428</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNDY5NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE3LTAzLTMxICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TihyMjE0NjM1KTogQ2FsY3VsYXRlIGltYWdlIHN1YnNhbXBsaW5nIG9ubHkgZm9yIENHCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAzNTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiByMjE0NjM1LCB3
ZSBuZWVkZWQgdG8gY2FsY3VsYXRlIHRoZSBpbWFnZSBzY2FsZUZhY3RvciBmb3IgYWxsIHBsYXRm
b3Jtcy4KKyAgICAgICAgSXQgd2FzIG5lZWRlZCBkbyB0aGUgY2FsY3VsYXRpb246IHNpemVGb3JE
cmF3aW5nID0gc2l6ZU9mSW1hZ2UgKiBpbWFnZVNjYWxlRmFjdG9yLgorICAgICAgICBUaGlzIG1h
ZGUgSW1hZ2VTb3VyY2U6OnN1YnNhbXBsaW5nTGV2ZWxGb3JTY2FsZSgpIG5vdyByZXR1cm5zIGEg
U3Vic2FtcGxpbmdMZXZlbAorICAgICAgICBub3QgZXF1YWwgdG8gU3Vic2FtcGxpbmdMZXZlbDo6
RGVmYXVsdCBpZiB0aGUgaW1hZ2Ugc2NhbGVGYWN0b3IgaXMgZ3JlYXRlcgorICAgICAgICB0aGFu
IHsxLCAxfSBmb3IgYWxsIHBsYXRmb3Jtcy4gVGhlIHN1YnNhbXBsaW5nTGV2ZWwgc2hvdWxkIG9u
bHkgYmUgdXNlZCBmb3IgQ0cuCisgICAgICAgIAorICAgICAgICBUaGlzIGlzIGFsc28gYSBjaGFu
Y2UgdG8gbWFrZSBuYXRpdmVJbWFnZURyYXdpbmdTY2FsZSgpIGEgYWNyb3NzIHBsYXRmb3JtCisg
ICAgICAgIGZ1bmN0aW9uIGFuZCBtb3ZlIGl0IHRvIHRoZSBHcmFwaGljc0NvbnRleHQgY2xhc3Mu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZHJhdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6c2NhbGVGYWN0b3JGb3JEcmF3aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6c3Vic2FtcGxpbmdMZXZlbEZv
clNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpzdWJzYW1wbGlu
Z0xldmVsRm9yU2NhbGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFnZUNhaXJvLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Om5hdGl2ZUltYWdlRHJhd2luZ1NjYWxlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9OYXRpdmVJbWFnZUNHLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Om5hdGl2ZUltYWdlRHJhd2luZ1NjYWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy93aW4vTmF0aXZlSW1hZ2VEaXJlY3QyRC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpuYXRpdmVJbWFnZURyYXdpbmdTY2FsZSk6IERlbGV0ZWQuCisKIDIwMTctMDMtMzEg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgSW5jb21p
bmcgdmlkZW8gc291cmNlIGRvZXNuJ3QgcHJvcG9nYXRlIGZyYW1lIHJvdGF0aW9uCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCShy
ZXZpc2lvbiAyMTQ2MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MywxMiArMTYzLDExIEBAIHZvaWQgQml0
bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiAKICAgICBpZiAoZGVzdFJlY3QuaXNFbXB0
eSgpIHx8IHNyY1JlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBGbG9hdFNp
emUgc2NhbGUgPSBuYXRpdmVJbWFnZURyYXdpbmdTY2FsZShjb250ZXh0LCBkZXN0UmVjdCwgc3Jj
UmVjdCk7Ci0gICAgZmxvYXQgc3Vic2FtcGxpbmdTY2FsZSA9IHN0ZDo6bWluKGZsb2F0KDEpLCBz
dGQ6Om1heChzY2FsZS53aWR0aCgpLCBzY2FsZS5oZWlnaHQoKSkpOwotICAgIG1fY3VycmVudFN1
YnNhbXBsaW5nTGV2ZWwgPSBhbGxvd1N1YnNhbXBsaW5nKCkgPyBtX3NvdXJjZS5zdWJzYW1wbGlu
Z0xldmVsRm9yU2NhbGUoc3Vic2FtcGxpbmdTY2FsZSkgOiBTdWJzYW1wbGluZ0xldmVsOjpEZWZh
dWx0OwotICAgIEludFNpemUgc2l6ZUZvckRyYXdpbmcgPSBleHBhbmRlZEludFNpemUoc2l6ZSgp
ICogc2NhbGUpOwotCi0gICAgTE9HKEltYWdlcywgIkJpdG1hcEltYWdlOjolcyAtICVwIC0gdXJs
OiAlcyBbc3Vic2FtcGxpbmdMZXZlbCA9ICVkIHNjYWxlID0gJS40Zl0iLCBfX0ZVTkNUSU9OX18s
IHRoaXMsIHNvdXJjZVVSTCgpLnV0ZjgoKS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4obV9jdXJy
ZW50U3Vic2FtcGxpbmdMZXZlbCksIHN1YnNhbXBsaW5nU2NhbGUpOworICAgIEZsb2F0U2l6ZSBz
Y2FsZUZhY3RvckZvckRyYXdpbmcgPSBjb250ZXh0LnNjYWxlRmFjdG9yRm9yRHJhd2luZyhkZXN0
UmVjdCwgc3JjUmVjdCk7CisgICAgSW50U2l6ZSBzaXplRm9yRHJhd2luZyA9IGV4cGFuZGVkSW50
U2l6ZShzaXplKCkgKiBzY2FsZUZhY3RvckZvckRyYXdpbmcpOworICAgIAorICAgIG1fY3VycmVu
dFN1YnNhbXBsaW5nTGV2ZWwgPSBhbGxvd1N1YnNhbXBsaW5nKCkgPyBtX3NvdXJjZS5zdWJzYW1w
bGluZ0xldmVsRm9yU2NhbGVGYWN0b3IoY29udGV4dCwgc2NhbGVGYWN0b3JGb3JEcmF3aW5nKSA6
IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQ7CisgICAgTE9HKEltYWdlcywgIkJpdG1hcEltYWdl
OjolcyAtICVwIC0gdXJsOiAlcyBbc3Vic2FtcGxpbmdMZXZlbCA9ICVkIHNjYWxlRmFjdG9yID0g
KCUuNGYsICUuNGYpXSIsIF9fRlVOQ1RJT05fXywgdGhpcywgc291cmNlVVJMKCkudXRmOCgpLmRh
dGEoKSwgc3RhdGljX2Nhc3Q8aW50PihtX2N1cnJlbnRTdWJzYW1wbGluZ0xldmVsKSwgc2NhbGVG
YWN0b3JGb3JEcmF3aW5nLndpZHRoKCksIHNjYWxlRmFjdG9yRm9yRHJhd2luZy5oZWlnaHQoKSk7
CiAKICAgICBOYXRpdmVJbWFnZVB0ciBpbWFnZTsKICAgICBpZiAoZGVjb2RpbmdNb2RlID09IERl
Y29kaW5nTW9kZTo6QXN5bmNocm9ub3VzICYmIHNob3VsZFVzZUFzeW5jRGVjb2RpbmdGb3JMYXJn
ZUltYWdlcygpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAJKHJldmlzaW9uIDIxNDYzOSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMzYsNiArMTAzNiwxMyBAQCBGbG9hdFNpemUgR3JhcGhpY3NDb250ZXh0OjpzY2Fs
ZUZhY3RvcigpCiAgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IGdldENUTShHcmFwaGlj
c0NvbnRleHQ6OkRlZmluaXRlbHlJbmNsdWRlRGV2aWNlU2NhbGUpOwogICAgIHJldHVybiBGbG9h
dFNpemUodHJhbnNmb3JtLnhTY2FsZSgpLCB0cmFuc2Zvcm0ueVNjYWxlKCkpOwogfQorICAgIAor
RmxvYXRTaXplIEdyYXBoaWNzQ29udGV4dDo6c2NhbGVGYWN0b3JGb3JEcmF3aW5nKGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCkgY29uc3QKK3sKKyAg
ICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0gZ2V0Q1RNKEdyYXBoaWNzQ29udGV4dDo6RGVm
aW5pdGVseUluY2x1ZGVEZXZpY2VTY2FsZSk7CisgICAgYXV0byB0cmFuc2Zvcm1lZERlc3RSZWN0
ID0gdHJhbnNmb3JtLm1hcFJlY3QoZGVzdFJlY3QpOworICAgIHJldHVybiB7IHN0YXRpY19jYXN0
PGZsb2F0Pih0cmFuc2Zvcm1lZERlc3RSZWN0LndpZHRoKCkgLyBzcmNSZWN0LndpZHRoKCkpLCBz
dGF0aWNfY2FzdDxmbG9hdD4odHJhbnNmb3JtZWREZXN0UmVjdC5oZWlnaHQoKSAvIHNyY1JlY3Qu
aGVpZ2h0KCkpIH07Cit9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsRWxsaXBzZShjb25z
dCBGbG9hdFJlY3QmIGVsbGlwc2UpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAkocmV2aXNpb24gMjE0NjM5KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ5OSw2ICs0OTksNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBhcHBseURldmljZVNjYWxlRmFjdG9yKGZsb2F0KTsKICAgICB2b2lkIHBsYXRmb3JtQXBw
bHlEZXZpY2VTY2FsZUZhY3RvcihmbG9hdCk7CiAgICAgRmxvYXRTaXplIHNjYWxlRmFjdG9yKCkg
Y29uc3Q7CisgICAgRmxvYXRTaXplIHNjYWxlRmFjdG9yRm9yRHJhd2luZyhjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QpIGNvbnN0OwogCiAjaWYgT1Mo
V0lORE9XUykKICAgICBIREMgZ2V0V2luZG93c0NvbnRleHQoY29uc3QgSW50UmVjdCYsIGJvb2wg
c3VwcG9ydEFscGhhQmxlbmQsIGJvb2wgbWF5Q3JlYXRlQml0bWFwKTsgLy8gVGhlIHBhc3NlZCBp
biByZWN0IGlzIHVzZWQgdG8gY3JlYXRlIGEgYml0bWFwIGZvciBjb21wb3NpdGluZyBpbnNpZGUg
dHJhbnNwYXJlbmN5IGxheWVycy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAJKHJldmlzaW9uIDIxNDYzOSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjksMTggKzI5LDIwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW1hZ2VT
b3VyY2UuaCIKIAorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorCiAjaWYgVVNFKENHKQog
I2luY2x1ZGUgIkltYWdlRGVjb2RlckNHLmgiCisjaWYgUExBVEZPUk0oV0lOKQorI2luY2x1ZGUg
PFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNlbmRpZgog
I2VsaWYgVVNFKERJUkVDVDJEKQotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1
ZGUgIkltYWdlRGVjb2RlckRpcmVjdDJELmgiCi0jaW5jbHVkZSA8V2luQ29kZWMuaD4KICNlbHNl
CiAjaW5jbHVkZSAiSW1hZ2VEZWNvZGVyLmgiCiAjZW5kaWYKIAogI2luY2x1ZGUgIkltYWdlT3Jp
ZW50YXRpb24uaCIKLQogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0xNzcsMTMgKzE3OSwyNCBAQCBTdWJzYW1wbGluZ0xldmVsIEltYWdlU291
cmNlOjptYXhpbXVtU3ViCiAgICAgcmV0dXJuIG1fbWF4aW11bVN1YnNhbXBsaW5nTGV2ZWwudmFs
dWUoKTsKIH0KIAotU3Vic2FtcGxpbmdMZXZlbCBJbWFnZVNvdXJjZTo6c3Vic2FtcGxpbmdMZXZl
bEZvclNjYWxlKGZsb2F0IHNjYWxlKQorU3Vic2FtcGxpbmdMZXZlbCBJbWFnZVNvdXJjZTo6c3Vi
c2FtcGxpbmdMZXZlbEZvclNjYWxlRmFjdG9yKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgRmxvYXRTaXplJiBzY2FsZUZhY3RvcikKIHsKKyNpZiBVU0UoQ0cpCisgICAgLy8gTmV2ZXIg
dXNlIHN1YnNhbXBsZWQgaW1hZ2VzIGZvciBkcmF3aW5nIGludG8gUERGIGNvbnRleHRzLgorICAg
IGlmICh3a0NHQ29udGV4dElzUERGQ29udGV4dChjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKSkK
KyAgICAgICAgcmV0dXJuIFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQ7CisKKyAgICBmbG9hdCBz
Y2FsZSA9IHN0ZDo6bWluKGZsb2F0KDEpLCBzdGQ6Om1heChzY2FsZUZhY3Rvci53aWR0aCgpLCBz
Y2FsZUZhY3Rvci5oZWlnaHQoKSkpOwogICAgIGlmICghKHNjYWxlID4gMCAmJiBzY2FsZSA8PSAx
KSkKICAgICAgICAgcmV0dXJuIFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQ7CiAKICAgICBpbnQg
cmVzdWx0ID0gc3RkOjpjZWlsKHN0ZDo6bG9nMigxIC8gc2NhbGUpKTsKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8U3Vic2FtcGxpbmdMZXZlbD4oc3RkOjptaW4ocmVzdWx0LCBzdGF0aWNfY2FzdDxp
bnQ+KG1heGltdW1TdWJzYW1wbGluZ0xldmVsKCkpKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShjb250ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0oc2NhbGVGYWN0b3IpOworICAgIHJldHVybiBT
dWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0OworI2VuZGlmCiB9CiAKIE5hdGl2ZUltYWdlUHRyIElt
YWdlU291cmNlOjpjcmVhdGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QgaW5kZXgsIFN1YnNhbXBs
aW5nTGV2ZWwgc3Vic2FtcGxpbmdMZXZlbCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlU291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAkocmV2aXNpb24gMjE0NjM5KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAkod29ya2luZyBjb3B5KQpA
QCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKICAgICBOYXRpdmVJbWFnZVB0ciBmcmFtZUltYWdl
QXRJbmRleENhY2hlSWZOZWVkZWQoc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVsID0gU3Vic2FtcGxp
bmdMZXZlbDo6RGVmYXVsdCwgY29uc3QgR3JhcGhpY3NDb250ZXh0KiA9IG51bGxwdHIpOwogCiAg
ICAgU3Vic2FtcGxpbmdMZXZlbCBtYXhpbXVtU3Vic2FtcGxpbmdMZXZlbCgpOwotICAgIFN1YnNh
bXBsaW5nTGV2ZWwgc3Vic2FtcGxpbmdMZXZlbEZvclNjYWxlKGZsb2F0KTsKKyAgICBTdWJzYW1w
bGluZ0xldmVsIHN1YnNhbXBsaW5nTGV2ZWxGb3JTY2FsZUZhY3RvcihHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBGbG9hdFNpemUmIHNjYWxlRmFjdG9yKTsKICAgICBOYXRpdmVJbWFnZVB0ciBjcmVh
dGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QsIFN1YnNhbXBsaW5nTGV2ZWwgPSBTdWJzYW1wbGlu
Z0xldmVsOjpEZWZhdWx0KTsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaAkocmV2aXNpb24gMjE0NjM5KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaAkod29ya2luZyBjb3B5
KQpAQCAtNjUsOCArNjUsNiBAQCBJbnRTaXplIG5hdGl2ZUltYWdlU2l6ZShjb25zdCBOYXRpdmVJ
bWFnCiBib29sIG5hdGl2ZUltYWdlSGFzQWxwaGEoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKIENv
bG9yIG5hdGl2ZUltYWdlU2luZ2xlUGl4ZWxTb2xpZENvbG9yKGNvbnN0IE5hdGl2ZUltYWdlUHRy
Jik7CiAKLUZsb2F0U2l6ZSBuYXRpdmVJbWFnZURyYXdpbmdTY2FsZShHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QpOwot
CiB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEludFNpemUm
LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBjb25zdCBJbWFnZU9yaWVudGF0aW9uJik7
CiB2b2lkIGNsZWFyTmF0aXZlSW1hZ2VTdWJpbWFnZXMoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsK
ICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL05hdGl2
ZUltYWdlQ2Fpcm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL05hdGl2ZUltYWdlQ2Fpcm8uY3BwCShyZXZpc2lvbiAyMTQ2MzkpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFnZUNhaXJvLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTYsMTIgKzU2LDYgQEAgQ29sb3IgbmF0aXZlSW1hZ2VTaW5n
bGVQaXhlbFNvbGlkQ29sb3IoYwogICAgIHJldHVybiBjb2xvckZyb21QcmVtdWx0aXBsaWVkQVJH
QigqcGl4ZWwpOwogfQogCi1GbG9hdFNpemUgbmF0aXZlSW1hZ2VEcmF3aW5nU2NhbGUoR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QpCi17Ci0gICAgYXV0byB0cmFuc2Zvcm1lZERlc3RpbmF0aW9uUmVjdCA9
IGNvbnRleHQuZ2V0Q1RNKCkubWFwUmVjdChkZXN0UmVjdCk7Ci0gICAgcmV0dXJuIHsgc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KHRyYW5zZm9ybWVkRGVzdGluYXRpb25SZWN0LndpZHRoKCkgLyBzcmNSZWN0
LndpZHRoKCkpLCBzdGF0aWNfY2FzdDxmbG9hdD4odHJhbnNmb3JtZWREZXN0aW5hdGlvblJlY3Qu
aGVpZ2h0KCkgLyBzcmNSZWN0LmhlaWdodCgpKSB9OwotfQotCiB2b2lkIGRyYXdOYXRpdmVJbWFn
ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25z
dCBJbnRTaXplJiwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBtb2RlLCBjb25zdCBJ
bWFnZU9yaWVudGF0aW9uJiBvcmllbnRhdGlvbikKIHsKICAgICBjb250ZXh0LnNhdmUoKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL05hdGl2
ZUltYWdlQ0cuY3BwCShyZXZpc2lvbiAyMTQ2MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9OYXRpdmVJbWFnZUNHLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTAg
KzM2LDYgQEAKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiU3ViaW1hZ2VDYWNoZVdp
dGhUaW1lci5oIgogCi0jaWYgUExBVEZPUk0oV0lOKQotI2luY2x1ZGUgPFdlYktpdFN5c3RlbUlu
dGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KLSNlbmRpZgotCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIEludFNpemUgbmF0aXZlSW1hZ2VTaXplKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBp
bWFnZSkKQEAgLTczLDE2ICs2OSw2IEBAIENvbG9yIG5hdGl2ZUltYWdlU2luZ2xlUGl4ZWxTb2xp
ZENvbG9yKGMKICAgICByZXR1cm4gQ29sb3IocGl4ZWxbMF0gKiAyNTUgLyBwaXhlbFszXSwgcGl4
ZWxbMV0gKiAyNTUgLyBwaXhlbFszXSwgcGl4ZWxbMl0gKiAyNTUgLyBwaXhlbFszXSwgcGl4ZWxb
M10pOwogfQogCi1GbG9hdFNpemUgbmF0aXZlSW1hZ2VEcmF3aW5nU2NhbGUoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QpCi17Ci0gICAgLy8gTmV2ZXIgdXNlIHN1YnNhbXBsZWQgaW1hZ2VzIGZvciBkcmF3
aW5nIGludG8gUERGIGNvbnRleHRzLgotICAgIGlmICh3a0NHQ29udGV4dElzUERGQ29udGV4dChj
b250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKSkKLSAgICAgICAgcmV0dXJuIHsgMSwgMSB9OwotCi0g
ICAgQ0dSZWN0IHRyYW5zZm9ybWVkRGVzdGluYXRpb25SZWN0ID0gQ0dSZWN0QXBwbHlBZmZpbmVU
cmFuc2Zvcm0oZGVzdFJlY3QsIENHQ29udGV4dEdldENUTShjb250ZXh0LnBsYXRmb3JtQ29udGV4
dCgpKSk7Ci0gICAgcmV0dXJuIHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRyYW5zZm9ybWVkRGVzdGlu
YXRpb25SZWN0LnNpemUud2lkdGggLyBzcmNSZWN0LndpZHRoKCkpLCBzdGF0aWNfY2FzdDxmbG9h
dD4odHJhbnNmb3JtZWREZXN0aW5hdGlvblJlY3Quc2l6ZS5oZWlnaHQgLyBzcmNSZWN0LmhlaWdo
dCgpKSB9OwotfQotCiB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYg
aW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXplLCBDb21w
b3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIG1vZGUsIGNvbnN0IEltYWdlT3JpZW50YXRpb24m
IG9yaWVudGF0aW9uKQogewogICAgIC8vIFN1YnNhbXBsaW5nIG1heSBoYXZlIGdpdmVuIHVzIGFu
IGltYWdlIHRoYXQgaXMgc21hbGxlciB0aGFuIHNpemUoKS4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9OYXRpdmVJbWFnZURpcmVjdDJELmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTmF0aXZlSW1hZ2VEaXJl
Y3QyRC5jcHAJKHJldmlzaW9uIDIxNDYzOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9OYXRpdmVJbWFnZURpcmVjdDJELmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAs
MTcgKzYwLDYgQEAgQ29sb3IgbmF0aXZlSW1hZ2VTaW5nbGVQaXhlbFNvbGlkQ29sb3IoYwogICAg
IHJldHVybiBDb2xvcigpOwogfQogCi1GbG9hdFNpemUgbmF0aXZlSW1hZ2VEcmF3aW5nU2NhbGUo
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QpCi17Ci0gICAgRDJEMV9NQVRSSVhfM1gyX0YgY3RtOwotICAg
IGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPkdldFRyYW5zZm9ybSgmY3RtKTsKLQotICAgIEFm
ZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0oY3RtKTsKLQotICAgIGF1dG8gdHJhbnNmb3JtZWREZXN0
aW5hdGlvblJlY3QgPSB0cmFuc2Zvcm0ubWFwUmVjdChkZXN0UmVjdCk7Ci0gICAgcmV0dXJuIHsg
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHRyYW5zZm9ybWVkRGVzdGluYXRpb25SZWN0LndpZHRoKCkgLyBz
cmNSZWN0LndpZHRoKCkpLCBzdGF0aWNfY2FzdDxmbG9hdD4odHJhbnNmb3JtZWREZXN0aW5hdGlv
blJlY3QuaGVpZ2h0KCkgLyBzcmNSZWN0LmhlaWdodCgpKSB9OwotfQotCiB2b2lkIGRyYXdOYXRp
dmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBJbnRTaXplJiBzcmNTaXplLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwg
QmxlbmRNb2RlIGJsZW5kTW9kZSwgY29uc3QgSW1hZ2VPcmllbnRhdGlvbiYgb3JpZW50YXRpb24p
CiB7CiAgICAgYXV0byBwbGF0Zm9ybUNvbnRleHQgPSBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306627</attachid>
            <date>2017-04-09 11:05:45 -0700</date>
            <delta_ts>2017-04-09 11:45:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170353-20170409110541.patch</filename>
            <type>text/plain</type>
            <size>13194</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjBlMmYwNzk3MzBiNTQ3
ZTY1ZDg0YjI3ZTAwZDI3OTFhNWVmOTU2My4uNWQ5NjNkYmE5YTJjMzIwNWI3MTM0OTBjMDMwNWE4
NzU2NzlhYTJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE3LTA0LTA5ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVT
U0lPTihyMjE0NjM1KTogQ2FsY3VsYXRlIGltYWdlIHN1YnNhbXBsaW5nIG9ubHkgZm9yIENHCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAzNTMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgSW4gcjIxNDYzNSwg
d2UgbmVlZGVkIHRvIGNhbGN1bGF0ZSB0aGUgaW1hZ2Ugc2NhbGVGYWN0b3IgZm9yIGFsbCBwbGF0
Zm9ybXMuCisgICAgICAgIEl0IHdhcyBuZWVkZWQgZG8gdGhlIGNhbGN1bGF0aW9uOiBzaXplRm9y
RHJhd2luZyA9IHNpemVPZkltYWdlICogaW1hZ2VTY2FsZUZhY3Rvci4KKyAgICAgICAgVGhpcyBt
YWRlIEltYWdlU291cmNlOjpzdWJzYW1wbGluZ0xldmVsRm9yU2NhbGUoKSBub3cgcmV0dXJucyBh
IFN1YnNhbXBsaW5nTGV2ZWwKKyAgICAgICAgbm90IGVxdWFsIHRvIFN1YnNhbXBsaW5nTGV2ZWw6
OkRlZmF1bHQgaWYgdGhlIGltYWdlIHNjYWxlRmFjdG9yIGlzIGdyZWF0ZXIKKyAgICAgICAgdGhh
biB7MSwgMX0gZm9yIGFsbCBwbGF0Zm9ybXMuIFRoZSBzdWJzYW1wbGluZ0xldmVsIHNob3VsZCBv
bmx5IGJlIHVzZWQgZm9yIENHLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBhbHNvIGEgY2hh
bmNlIHRvIG1ha2UgbmF0aXZlSW1hZ2VEcmF3aW5nU2NhbGUoKSBhIGFjcm9zcyBwbGF0Zm9ybQor
ICAgICAgICBmdW5jdGlvbiBhbmQgbW92ZSBpdCB0byB0aGUgR3JhcGhpY3NDb250ZXh0IGNsYXNz
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OnNjYWxlRmFjdG9yRm9yRHJhd2luZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnN1YnNhbXBsaW5nTGV2ZWxG
b3JTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6c3Vic2FtcGxp
bmdMZXZlbEZvclNjYWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpuYXRpdmVJbWFnZURyYXdpbmdTY2FsZSk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvTmF0aXZlSW1hZ2VDRy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpuYXRpdmVJbWFnZURyYXdpbmdTY2FsZSk6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL05hdGl2ZUltYWdlRGlyZWN0MkQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6bmF0aXZlSW1hZ2VEcmF3aW5nU2NhbGUpOiBEZWxldGVkLgorCiAyMDE3LTA0LTA4
ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1Zh
cmlhdGlvbiBGb250c10gV2lkdGggdmFsdWVzIG9mIEdYIGZvbnRzIGFyZSBub3QgbWFwcGVkIGNv
cnJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0
bWFwSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuY3BwCmluZGV4IGQ5ZjliZGYzY2ExODhkZWIwMzk3NDU2MjM5Y2M2Zjc1ZjliZDIwZTQuLmMy
M2I5ZGRjNWE0NzM3MmI1YzQ4YWVjMDQwMzdmMzJmNmFlN2Q2ODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKQEAgLTE2MywxMiArMTYz
LDExIEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zCiAgICAgaWYgKGRlc3RSZWN0LmlzRW1wdHko
KSB8fCBzcmNSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRmxvYXRTaXpl
IHNjYWxlID0gbmF0aXZlSW1hZ2VEcmF3aW5nU2NhbGUoY29udGV4dCwgZGVzdFJlY3QsIHNyY1Jl
Y3QpOwotICAgIGZsb2F0IHN1YnNhbXBsaW5nU2NhbGUgPSBzdGQ6Om1pbihmbG9hdCgxKSwgc3Rk
OjptYXgoc2NhbGUud2lkdGgoKSwgc2NhbGUuaGVpZ2h0KCkpKTsKLSAgICBtX2N1cnJlbnRTdWJz
YW1wbGluZ0xldmVsID0gYWxsb3dTdWJzYW1wbGluZygpID8gbV9zb3VyY2Uuc3Vic2FtcGxpbmdM
ZXZlbEZvclNjYWxlKHN1YnNhbXBsaW5nU2NhbGUpIDogU3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVs
dDsKLSAgICBJbnRTaXplIHNpemVGb3JEcmF3aW5nID0gZXhwYW5kZWRJbnRTaXplKHNpemUoKSAq
IHNjYWxlKTsKLQotICAgIExPRyhJbWFnZXMsICJCaXRtYXBJbWFnZTo6JXMgLSAlcCAtIHVybDog
JXMgW3N1YnNhbXBsaW5nTGV2ZWwgPSAlZCBzY2FsZSA9ICUuNGZdIiwgX19GVU5DVElPTl9fLCB0
aGlzLCBzb3VyY2VVUkwoKS51dGY4KCkuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+KG1fY3VycmVu
dFN1YnNhbXBsaW5nTGV2ZWwpLCBzdWJzYW1wbGluZ1NjYWxlKTsKKyAgICBGbG9hdFNpemUgc2Nh
bGVGYWN0b3JGb3JEcmF3aW5nID0gY29udGV4dC5zY2FsZUZhY3RvckZvckRyYXdpbmcoZGVzdFJl
Y3QsIHNyY1JlY3QpOworICAgIEludFNpemUgc2l6ZUZvckRyYXdpbmcgPSBleHBhbmRlZEludFNp
emUoc2l6ZSgpICogc2NhbGVGYWN0b3JGb3JEcmF3aW5nKTsKKyAgICAKKyAgICBtX2N1cnJlbnRT
dWJzYW1wbGluZ0xldmVsID0gYWxsb3dTdWJzYW1wbGluZygpID8gbV9zb3VyY2Uuc3Vic2FtcGxp
bmdMZXZlbEZvclNjYWxlRmFjdG9yKGNvbnRleHQsIHNjYWxlRmFjdG9yRm9yRHJhd2luZykgOiBT
dWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0OworICAgIExPRyhJbWFnZXMsICJCaXRtYXBJbWFnZTo6
JXMgLSAlcCAtIHVybDogJXMgW3N1YnNhbXBsaW5nTGV2ZWwgPSAlZCBzY2FsZUZhY3RvckZvckRy
YXdpbmcgPSAoJS40ZiwgJS40ZildIiwgX19GVU5DVElPTl9fLCB0aGlzLCBzb3VyY2VVUkwoKS51
dGY4KCkuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+KG1fY3VycmVudFN1YnNhbXBsaW5nTGV2ZWwp
LCBzY2FsZUZhY3RvckZvckRyYXdpbmcud2lkdGgoKSwgc2NhbGVGYWN0b3JGb3JEcmF3aW5nLmhl
aWdodCgpKTsKIAogICAgIE5hdGl2ZUltYWdlUHRyIGltYWdlOwogICAgIGlmIChkZWNvZGluZ01v
ZGUgPT0gRGVjb2RpbmdNb2RlOjpBc3luY2hyb25vdXMgJiYgc2hvdWxkVXNlQXN5bmNEZWNvZGlu
Z0ZvckxhcmdlSW1hZ2VzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4IGQxOGFmNTFhMTAxNWY1NGFkODEwODVm
Y2RiNmFlNzNlZjQwOGZmMTEuLjJmNzNmMGY0NTUxODEzN2NhMDE1MjM1NDE2MzEzOWQ4MTQ2NmY0
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmNwcApAQCAtMTAzNiw2ICsxMDM2LDEzIEBAIEZsb2F0U2l6ZSBHcmFwaGljc0Nv
bnRleHQ6OnNjYWxlRmFjdG9yKCkgY29uc3QKICAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3Jt
ID0gZ2V0Q1RNKEdyYXBoaWNzQ29udGV4dDo6RGVmaW5pdGVseUluY2x1ZGVEZXZpY2VTY2FsZSk7
CiAgICAgcmV0dXJuIEZsb2F0U2l6ZSh0cmFuc2Zvcm0ueFNjYWxlKCksIHRyYW5zZm9ybS55U2Nh
bGUoKSk7CiB9CisgICAgCitGbG9hdFNpemUgR3JhcGhpY3NDb250ZXh0OjpzY2FsZUZhY3RvckZv
ckRyYXdpbmcoY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0KSBjb25zdAoreworICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBnZXRDVE0oR3Jh
cGhpY3NDb250ZXh0OjpEZWZpbml0ZWx5SW5jbHVkZURldmljZVNjYWxlKTsKKyAgICBhdXRvIHRy
YW5zZm9ybWVkRGVzdFJlY3QgPSB0cmFuc2Zvcm0ubWFwUmVjdChkZXN0UmVjdCk7CisgICAgcmV0
dXJuIHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRyYW5zZm9ybWVkRGVzdFJlY3Qud2lkdGgoKSAvIHNy
Y1JlY3Qud2lkdGgoKSksIHN0YXRpY19jYXN0PGZsb2F0Pih0cmFuc2Zvcm1lZERlc3RSZWN0Lmhl
aWdodCgpIC8gc3JjUmVjdC5oZWlnaHQoKSkgfTsKK30KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmZpbGxFbGxpcHNlKGNvbnN0IEZsb2F0UmVjdCYgZWxsaXBzZSkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggZWMzYjgy
ZGZjZGI0M2RlNDg3NTM0MmE4MTdjODNlMGEyMjFiY2EwYi4uYjIwYmMxMjA5MGFmYzczOGUzYWFm
ODM2ZGMwMzBkYWMxYzVmMTRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTQ5OSw2ICs0OTksNyBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBseURldmljZVNjYWxlRmFjdG9yKGZsb2F0KTsKICAg
ICB2b2lkIHBsYXRmb3JtQXBwbHlEZXZpY2VTY2FsZUZhY3RvcihmbG9hdCk7CiAgICAgRmxvYXRT
aXplIHNjYWxlRmFjdG9yKCkgY29uc3Q7CisgICAgRmxvYXRTaXplIHNjYWxlRmFjdG9yRm9yRHJh
d2luZyhjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qp
IGNvbnN0OwogCiAjaWYgT1MoV0lORE9XUykKICAgICBIREMgZ2V0V2luZG93c0NvbnRleHQoY29u
c3QgSW50UmVjdCYsIGJvb2wgc3VwcG9ydEFscGhhQmxlbmQsIGJvb2wgbWF5Q3JlYXRlQml0bWFw
KTsgLy8gVGhlIHBhc3NlZCBpbiByZWN0IGlzIHVzZWQgdG8gY3JlYXRlIGEgYml0bWFwIGZvciBj
b21wb3NpdGluZyBpbnNpZGUgdHJhbnNwYXJlbmN5IGxheWVycy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAppbmRleCAyMjE5MTY5NTIyYTM2
OGRhNTkxNmUzMmJmNzY4MmZmMzFkYjFlOTA0Li5mMGFlOTE1MjQ0M2FlODkxYTY1NGM5ZmIyODI5
MmZjZjY4NjJiMjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VTb3VyY2UuY3BwCkBAIC0yOSwxOCArMjksMjAgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJJbWFnZVNvdXJjZS5oIgogCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
CisKICNpZiBVU0UoQ0cpCiAjaW5jbHVkZSAiSW1hZ2VEZWNvZGVyQ0cuaCIKKyNpZiBQTEFURk9S
TShXSU4pCisjaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVy
ZmFjZS5oPgorI2VuZGlmCiAjZWxpZiBVU0UoRElSRUNUMkQpCi0jaW5jbHVkZSAiR3JhcGhpY3ND
b250ZXh0LmgiCiAjaW5jbHVkZSAiSW1hZ2VEZWNvZGVyRGlyZWN0MkQuaCIKLSNpbmNsdWRlIDxX
aW5Db2RlYy5oPgogI2Vsc2UKICNpbmNsdWRlICJJbWFnZURlY29kZXIuaCIKICNlbmRpZgogCiAj
aW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgotCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1l
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE3NywxMyArMTc5LDI0IEBAIFN1YnNhbXBs
aW5nTGV2ZWwgSW1hZ2VTb3VyY2U6Om1heGltdW1TdWJzYW1wbGluZ0xldmVsKCkKICAgICByZXR1
cm4gbV9tYXhpbXVtU3Vic2FtcGxpbmdMZXZlbC52YWx1ZSgpOwogfQogCi1TdWJzYW1wbGluZ0xl
dmVsIEltYWdlU291cmNlOjpzdWJzYW1wbGluZ0xldmVsRm9yU2NhbGUoZmxvYXQgc2NhbGUpCitT
dWJzYW1wbGluZ0xldmVsIEltYWdlU291cmNlOjpzdWJzYW1wbGluZ0xldmVsRm9yU2NhbGVGYWN0
b3IoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFNpemUmIHNjYWxlRmFjdG9y
KQogeworI2lmIFVTRShDRykKKyAgICAvLyBOZXZlciB1c2Ugc3Vic2FtcGxlZCBpbWFnZXMgZm9y
IGRyYXdpbmcgaW50byBQREYgY29udGV4dHMuCisgICAgaWYgKHdrQ0dDb250ZXh0SXNQREZDb250
ZXh0KGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCkpKQorICAgICAgICByZXR1cm4gU3Vic2FtcGxp
bmdMZXZlbDo6RGVmYXVsdDsKKworICAgIGZsb2F0IHNjYWxlID0gc3RkOjptaW4oZmxvYXQoMSks
IHN0ZDo6bWF4KHNjYWxlRmFjdG9yLndpZHRoKCksIHNjYWxlRmFjdG9yLmhlaWdodCgpKSk7CiAg
ICAgaWYgKCEoc2NhbGUgPiAwICYmIHNjYWxlIDw9IDEpKQogICAgICAgICByZXR1cm4gU3Vic2Ft
cGxpbmdMZXZlbDo6RGVmYXVsdDsKIAogICAgIGludCByZXN1bHQgPSBzdGQ6OmNlaWwoc3RkOjps
b2cyKDEgLyBzY2FsZSkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxTdWJzYW1wbGluZ0xldmVs
PihzdGQ6Om1pbihyZXN1bHQsIHN0YXRpY19jYXN0PGludD4obWF4aW11bVN1YnNhbXBsaW5nTGV2
ZWwoKSkpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOworICAgIFVOVVNFRF9Q
QVJBTShzY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQ7
CisjZW5kaWYKIH0KIAogTmF0aXZlSW1hZ2VQdHIgSW1hZ2VTb3VyY2U6OmNyZWF0ZUZyYW1lSW1h
Z2VBdEluZGV4KHNpemVfdCBpbmRleCwgU3Vic2FtcGxpbmdMZXZlbCBzdWJzYW1wbGluZ0xldmVs
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKaW5k
ZXggN2UwMzk5NWQ1NzgyN2ExZmVhMzc4ZWFjOGRiMmY3NmEwODJmMjM4YS4uYzQ3Y2MwZTQ4NWI4
NzIzYzg2OTI5NjI3MDNmNTQzMGI2NTAxMTIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGljOgog
ICAgIE5hdGl2ZUltYWdlUHRyIGZyYW1lSW1hZ2VBdEluZGV4Q2FjaGVJZk5lZWRlZChzaXplX3Qs
IFN1YnNhbXBsaW5nTGV2ZWwgPSBTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0LCBjb25zdCBHcmFw
aGljc0NvbnRleHQqID0gbnVsbHB0cik7CiAKICAgICBTdWJzYW1wbGluZ0xldmVsIG1heGltdW1T
dWJzYW1wbGluZ0xldmVsKCk7Ci0gICAgU3Vic2FtcGxpbmdMZXZlbCBzdWJzYW1wbGluZ0xldmVs
Rm9yU2NhbGUoZmxvYXQpOworICAgIFN1YnNhbXBsaW5nTGV2ZWwgc3Vic2FtcGxpbmdMZXZlbEZv
clNjYWxlRmFjdG9yKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0U2l6ZSYgc2NhbGVGYWN0
b3IpOwogICAgIE5hdGl2ZUltYWdlUHRyIGNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCwg
U3Vic2FtcGxpbmdMZXZlbCA9IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQpOwogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1h
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKaW5k
ZXggYmRkMDUyMGY5MzNmZDM3MTllNWE3ZjhiMGQ3YWVjOGUzZTVkZmY5YS4uYmQxYWNkZjM4OWEw
NGYyZTExMDM3N2EyY2RlYTY3MDNlNjFkY2EwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oCkBAIC02NSw4ICs2NSw2IEBAIEludFNpemUgbmF0
aXZlSW1hZ2VTaXplKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7CiBib29sIG5hdGl2ZUltYWdlSGFz
QWxwaGEoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKIENvbG9yIG5hdGl2ZUltYWdlU2luZ2xlUGl4
ZWxTb2xpZENvbG9yKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7CiAKLUZsb2F0U2l6ZSBuYXRpdmVJ
bWFnZURyYXdpbmdTY2FsZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QpOwotCiB2b2lkIGRyYXdOYXRpdmVJbWFnZShj
b25zdCBOYXRpdmVJbWFnZVB0ciYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYs
IGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEludFNpemUmLCBDb21wb3NpdGVPcGVyYXRvciwgQmxl
bmRNb2RlLCBjb25zdCBJbWFnZU9yaWVudGF0aW9uJik7CiB2b2lkIGNsZWFyTmF0aXZlSW1hZ2VT
dWJpbWFnZXMoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL05hdGl2ZUltYWdlQ2Fpcm8uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5j
cHAKaW5kZXggNjU2ZDU0YTg3Y2Q0MjRlYWQ4ZWQyYjQxMmExNGNhN2NiODA0NjVlYi4uMWU1MWY2
NzkzZDUyNjIyOGU0YjkzNDk0NzAwNjk2MDc0YTdlZTIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5j
cHAKQEAgLTU2LDEyICs1Niw2IEBAIENvbG9yIG5hdGl2ZUltYWdlU2luZ2xlUGl4ZWxTb2xpZENv
bG9yKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSkKICAgICByZXR1cm4gY29sb3JGcm9tUHJl
bXVsdGlwbGllZEFSR0IoKnBpeGVsKTsKIH0KIAotRmxvYXRTaXplIG5hdGl2ZUltYWdlRHJhd2lu
Z1NjYWxlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0KQotewotICAgIGF1dG8gdHJhbnNmb3JtZWREZXN0
aW5hdGlvblJlY3QgPSBjb250ZXh0LmdldENUTSgpLm1hcFJlY3QoZGVzdFJlY3QpOwotICAgIHJl
dHVybiB7IHN0YXRpY19jYXN0PGZsb2F0Pih0cmFuc2Zvcm1lZERlc3RpbmF0aW9uUmVjdC53aWR0
aCgpIC8gc3JjUmVjdC53aWR0aCgpKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRyYW5zZm9ybWVkRGVz
dGluYXRpb25SZWN0LmhlaWdodCgpIC8gc3JjUmVjdC5oZWlnaHQoKSkgfTsKLX0KLQogdm9pZCBk
cmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgSW50U2l6ZSYsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUg
bW9kZSwgY29uc3QgSW1hZ2VPcmllbnRhdGlvbiYgb3JpZW50YXRpb24pCiB7CiAgICAgY29udGV4
dC5zYXZlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9OYXRpdmVJbWFnZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L05hdGl2ZUltYWdlQ0cuY3BwCmluZGV4IDI0OTIyODJkNmVlYzNhMGJkMmU0OTUwNDExODYwMzNk
ODMxYjU4NTQuLjE0NDhlNWNiODk4MWIwN2YxZGQxOWNkMTJkMGEwZmM3OWFkNjFiOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdl
Q0cuY3BwCkBAIC0zNiwxMCArMzYsNiBAQAogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRl
ICJTdWJpbWFnZUNhY2hlV2l0aFRpbWVyLmgiCiAKLSNpZiBQTEFURk9STShXSU4pCi0jaW5jbHVk
ZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgotI2VuZGlm
Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogSW50U2l6ZSBuYXRpdmVJbWFnZVNpemUoY29uc3Qg
TmF0aXZlSW1hZ2VQdHImIGltYWdlKQpAQCAtNzMsMTYgKzY5LDYgQEAgQ29sb3IgbmF0aXZlSW1h
Z2VTaW5nbGVQaXhlbFNvbGlkQ29sb3IoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlKQogICAg
IHJldHVybiBDb2xvcihwaXhlbFswXSAqIDI1NSAvIHBpeGVsWzNdLCBwaXhlbFsxXSAqIDI1NSAv
IHBpeGVsWzNdLCBwaXhlbFsyXSAqIDI1NSAvIHBpeGVsWzNdLCBwaXhlbFszXSk7CiB9CiAKLUZs
b2F0U2l6ZSBuYXRpdmVJbWFnZURyYXdpbmdTY2FsZShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCkKLXsK
LSAgICAvLyBOZXZlciB1c2Ugc3Vic2FtcGxlZCBpbWFnZXMgZm9yIGRyYXdpbmcgaW50byBQREYg
Y29udGV4dHMuCi0gICAgaWYgKHdrQ0dDb250ZXh0SXNQREZDb250ZXh0KGNvbnRleHQucGxhdGZv
cm1Db250ZXh0KCkpKQotICAgICAgICByZXR1cm4geyAxLCAxIH07Ci0KLSAgICBDR1JlY3QgdHJh
bnNmb3JtZWREZXN0aW5hdGlvblJlY3QgPSBDR1JlY3RBcHBseUFmZmluZVRyYW5zZm9ybShkZXN0
UmVjdCwgQ0dDb250ZXh0R2V0Q1RNKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCkpKTsKLSAgICBy
ZXR1cm4geyBzdGF0aWNfY2FzdDxmbG9hdD4odHJhbnNmb3JtZWREZXN0aW5hdGlvblJlY3Quc2l6
ZS53aWR0aCAvIHNyY1JlY3Qud2lkdGgoKSksIHN0YXRpY19jYXN0PGZsb2F0Pih0cmFuc2Zvcm1l
ZERlc3RpbmF0aW9uUmVjdC5zaXplLmhlaWdodCAvIHNyY1JlY3QuaGVpZ2h0KCkpIH07Ci19Ci0K
IHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFNpemUmIHNyY1NpemUsIENvbXBvc2l0ZU9wZXJhdG9y
IG9wLCBCbGVuZE1vZGUgbW9kZSwgY29uc3QgSW1hZ2VPcmllbnRhdGlvbiYgb3JpZW50YXRpb24p
CiB7CiAgICAgLy8gU3Vic2FtcGxpbmcgbWF5IGhhdmUgZ2l2ZW4gdXMgYW4gaW1hZ2UgdGhhdCBp
cyBzbWFsbGVyIHRoYW4gc2l6ZSgpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL05hdGl2ZUltYWdlRGlyZWN0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL05hdGl2ZUltYWdlRGlyZWN0MkQuY3BwCmluZGV4IGNmZjI5
ZmI4MjhiOWQ5NTMyNTNiNDlmNTA1MzkyNGVhMWVmNDcyYzUuLjMyMmExNzQxMWM5YWNmMDg0Mzc2
MTFhZWY5NGEzYzBlM2IyMGZlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9OYXRpdmVJbWFnZURpcmVjdDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTmF0aXZlSW1hZ2VEaXJlY3QyRC5jcHAKQEAgLTYwLDE3
ICs2MCw2IEBAIENvbG9yIG5hdGl2ZUltYWdlU2luZ2xlUGl4ZWxTb2xpZENvbG9yKGNvbnN0IE5h
dGl2ZUltYWdlUHRyJiBpbWFnZSkKICAgICByZXR1cm4gQ29sb3IoKTsKIH0KIAotRmxvYXRTaXpl
IG5hdGl2ZUltYWdlRHJhd2luZ1NjYWxlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0KQotewotICAgIEQy
RDFfTUFUUklYXzNYMl9GIGN0bTsKLSAgICBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5HZXRU
cmFuc2Zvcm0oJmN0bSk7Ci0KLSAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtKGN0bSk7Ci0K
LSAgICBhdXRvIHRyYW5zZm9ybWVkRGVzdGluYXRpb25SZWN0ID0gdHJhbnNmb3JtLm1hcFJlY3Qo
ZGVzdFJlY3QpOwotICAgIHJldHVybiB7IHN0YXRpY19jYXN0PGZsb2F0Pih0cmFuc2Zvcm1lZERl
c3RpbmF0aW9uUmVjdC53aWR0aCgpIC8gc3JjUmVjdC53aWR0aCgpKSwgc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHRyYW5zZm9ybWVkRGVzdGluYXRpb25SZWN0LmhlaWdodCgpIC8gc3JjUmVjdC5oZWlnaHQo
KSkgfTsKLX0KLQogdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGlt
YWdlLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50U2l6ZSYgc3JjU2l6ZSwgQ29tcG9z
aXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIGNvbnN0IEltYWdl
T3JpZW50YXRpb24mIG9yaWVudGF0aW9uKQogewogICAgIGF1dG8gcGxhdGZvcm1Db250ZXh0ID0g
Y29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>