<?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>180729</bug_id>
          
          <creation_ts>2017-12-12 17:12:43 -0800</creation_ts>
          <short_desc>Update the SVG use element&apos;s shadow trees explicitly before the style recalc</short_desc>
          <delta_ts>2019-09-18 09:19:44 -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>SVG</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=201918</see_also>
          <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>
          
          <blocked>180769</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1380964</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-12-12 17:12:43 -0800</bug_when>
    <thetext>We should update the shadow trees of a SVG use element before starting style resolution
instead of doing it as a part of willRecalc calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380965</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-12 17:13:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/36009806&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381034</commentid>
    <comment_count>2</comment_count>
      <attachid>329196</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-12-12 20:37:29 -0800</bug_when>
    <thetext>Created attachment 329196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381075</commentid>
    <comment_count>3</comment_count>
      <attachid>329196</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-12-13 00:38:41 -0800</bug_when>
    <thetext>Comment on attachment 329196
Patch

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

Nice. I think you could also remove this from Style::TreeResolver::resolveComposedTree:

    // FIXME: SVG &lt;use&gt; element may cause tree mutations during style recalc.
    it.dropAssertions();

&gt; Source/WebCore/svg/SVGUseElement.cpp:197
&gt;  void SVGUseElement::willRecalcStyle(Style::Change change)
&gt;  {
&gt; -    // FIXME: Shadow tree should be updated before style recalc.
&gt; -    if (m_shadowTreeNeedsUpdate)
&gt; -        updateShadowTree();
&gt;      SVGGraphicsElement::willRecalcStyle(change);
&gt;  }

This function can be removed completely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381079</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-12-13 01:22:08 -0800</bug_when>
    <thetext>Thanks for the review! This was a surprisingly easy/small patch. We should have done it ages ago given how small this patch is!

(In reply to Antti Koivisto from comment #3)
&gt; Comment on attachment 329196 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=329196&amp;action=review
&gt; 
&gt; Nice. I think you could also remove this from
&gt; Style::TreeResolver::resolveComposedTree:
&gt; 
&gt;     // FIXME: SVG &lt;use&gt; element may cause tree mutations during style recalc.
&gt;     it.dropAssertions();

Oh, that&apos;s a good point. I&apos;d try running the tests with that.

&gt; &gt; Source/WebCore/svg/SVGUseElement.cpp:197
&gt; &gt;  void SVGUseElement::willRecalcStyle(Style::Change change)
&gt; &gt;  {
&gt; &gt; -    // FIXME: Shadow tree should be updated before style recalc.
&gt; &gt; -    if (m_shadowTreeNeedsUpdate)
&gt; &gt; -        updateShadowTree();
&gt; &gt;      SVGGraphicsElement::willRecalcStyle(change);
&gt; &gt;  }
&gt; 
&gt; This function can be removed completely.

Good point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381207</commentid>
    <comment_count>5</comment_count>
      <attachid>329238</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-12-13 11:20:09 -0800</bug_when>
    <thetext>Created attachment 329238
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381266</commentid>
    <comment_count>6</comment_count>
      <attachid>329238</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-13 13:12:46 -0800</bug_when>
    <thetext>Comment on attachment 329238
Patch for landing

Clearing flags on attachment: 329238

Committed r225868: &lt;https://trac.webkit.org/changeset/225868&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381267</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-13 13:12:47 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329196</attachid>
            <date>2017-12-12 20:37:29 -0800</date>
            <delta_ts>2017-12-13 11:20:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>fix180729.patch</filename>
            <type>text/plain</type>
            <size>14127</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4NDg0MDEwZDljMS4uZDQ1NzI4ZDAyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAxNy0xMi0xMiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
KworICAgICAgICBVcGRhdGUgdGhlIFNWRyB1c2UgZWxlbWVudCdzIHNoYWRvdyB0cmVlcyBleHBs
aWNpdGx5IGJlZm9yZSB0aGUgc3R5bGUgcmVjYWxsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA3MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2
MDA5ODA2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVwZGF0ZSB0aGUgU1ZHIHVzZSBlbGVtZW50J3Mgc2hhZG93IHRyZWVzIGJlZm9yZSBzdGFydCBy
ZXNvbHZpbmcgc3R5bGVzLiBEb2N1bWVudCBub3cgaGFzIGEgaGFzaCBzZXQgb2YgYWxsCisgICAg
ICAgIGNvbm5lY3RlZCBTVkcgdXNlIGVsZW1lbnRzIHdpdGggaW52YWxpZGF0ZWQgc2hhZG93IHRy
ZWVzLiBTVkdVc2VFbGVtZW50IGFkZHMgaXRzZWxmIHRvIHRoaXMgc2V0IHdoZW4gaXRzCisgICAg
ICAgIHNoYWRvdyB0cmVlIGdldHMgaW52YWxpZGF0ZWQsIG9yIGl0IGdldHMgbmV3bHkgY29ubmVj
dGVkIHRvIGEgZG9jdW1lbnQgd2l0aCB0aGUgaW52YWxpZGF0ZWQgc2hhZG93IHRyZWUuCisgICAg
ICAgIFNWR1VzZUVsZW1lbnQgcmVtb3ZlcyBpdHNlbGYgZnJvbSB0aGlzIHNldCB3aGVuIGl0IHVw
ZGF0ZXMgaXRzIHNoYWRvdyB0cmVlIG9yIGl0IGdldHMgZGlzY29ubmVjdGVkIGZyb20KKyAgICAg
ICAgYSBkb2N1bWVudCB3aXRoIHRoZSBpbnZhbGlkYXRlZCBzaGFkb3cgdHJlZS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6
IEFzc2VydCB0aGF0IG1fc3ZnVXNlRWxlbWVudHMgaGFzIGJlZW4gY2xlYXJlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvbHZlU3R5bGUpOiBVcGRhdGUgdGhlIHNoYWRvdyB0cmVl
cyBvZiBTVkcgdXNlIGVsZW1lbnRzIHdpdGggaW52YWxpZGF0ZWQgc2hhZG93IHRyZWVzLgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkZFNWR1VzZUVsZW1lbnQpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZW1vdmVTVkdVc2VFbGVtZW50KTogQWRkZWQuCisgICAg
ICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3ZnVXNl
RWxlbWVudHMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4pOiBSZW1vdmVk
IEV2ZW50QWxsb3dlZFNjb3BlIHNpbmNlIHRoZSBTVkcgdXNlIGVsZW1lbnQncyBzaGFkb3cKKyAg
ICAgICAgdHJlZSBpcyBubyBsb25nZXIgdXBkYXRlZCB3aGVuIHRoZXJlIGlzIGEgTm9FdmVudERp
c3BhdGNoQXNzZXJ0aW9uIGluIHRoZSBzdGFjay4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OmNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbik6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdV
c2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6Omluc2VydGVk
SW50b0FuY2VzdG9yKTogQWRkIHRoZSBlbGVtZW50IHRvIHRoZSBkb2N1bWVudCdzIGhhc2ggc2V0
IGlmIHRoaXMgdXNlIGVsZW1lbnQncworICAgICAgICBzaGFkb3cgdHJlZSBuZWVkcyB0byBiZSB1
cGRhdGVkIChtX3NoYWRvd1RyZWVOZWVkc1VwZGF0ZSBpcyBzZXQpLCBhbmQgaXQgZ290IG5ld2x5
IGNvbm5lY3RlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnJlbW92ZWRGcm9t
QW5jZXN0b3IpOiBEaXR0byBmb3IgcmVtb3ZhbC4gV2UgaGF2ZSB0byBjaGVjayBtX3NoYWRvd1Ry
ZWVOZWVkc1VwZGF0ZSBiZWZvcmUKKyAgICAgICAgY2FsbGluZyBTVkdHcmFwaGljc0VsZW1lbnQ6
OnJlbW92ZWRGcm9tQW5jZXN0b3Igb3IgdXBkYXRlRXh0ZXJuYWxEb2N1bWVudCBzaW5jZSBlaXRo
ZXIgZnVuY3Rpb24gY2FuIGludm9rZQorICAgICAgICBtX3NoYWRvd1RyZWVOZWVkc1VwZGF0ZSB0
byB0cnVlLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6d2lsbFJlY2FsY1N0eWxl
KTogUmVtb3ZlZCB0aGUgY2FsbCB0byB1cGRhdGVTaGFkb3dUcmVlLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHVXNlRWxlbWVudDo6dXBkYXRlU2hhZG93VHJlZSk6IFJlbW92ZSB0aGlzIGVsZW1lbnQg
ZnJvbSB0aGUgZG9jdW1lbnQncyBoYWggc2V0LiBXZSBjYW4ndCBjbGVhciBhbGwKKyAgICAgICAg
dGhlIGVudHJpZXMgaW4gdGhlIG1hcCBhdCBvbmNlIGluIERvY3VtZW50OjpyZXNvbHZlU3R5bGUg
YmVjYXVzZSB1cGRhdGluZyB0aGUgc2hhZG93IHRyZWVzIG9mIGEgU1ZHIHVzZSBlbGVtZW50Cisg
ICAgICAgIGNhbiByZXN1bHQgaW4gYSBzeW5jIElQQyBpbiBJbWFnZUxvYWRlcjo6dXBkYXRlRnJv
bUVsZW1lbnQsIHdoaWNoIGVuZCB1cCBleGVjdXRpbmcgYXJiaXRyYXJ5IGF1dGhvciBzY3JpcHRz
LgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6Y2xvbmVUYXJnZXQgY29uc3QpOiBS
ZW1vdmVkIEV2ZW50QWxsb3dlZFNjb3BlIHNpbmNlIHRoZSBTVkcgdXNlIGVsZW1lbnQncyBzaGFk
b3cgdHJlZQorICAgICAgICBpcyBubyBsb25nZXIgdXBkYXRlZCB3aGVuIHRoZXJlIGlzIGEgTm9F
dmVudERpc3BhdGNoQXNzZXJ0aW9uIGluIHRoZSBzdGFjay4KKyAgICAgICAgKFdlYkNvcmU6OlNW
R1VzZUVsZW1lbnQ6OmV4cGFuZFVzZUVsZW1lbnRzSW5TaGFkb3dUcmVlIGNvbnN0KTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpleHBhbmRTeW1ib2xFbGVtZW50c0lu
U2hhZG93VHJlZSBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVu
dDo6aW52YWxpZGF0ZVNoYWRvd1RyZWUpOiBBZGQgdGhlIGVsZW1lbnQgdG8gdGhlIGRvY3VtZW50
J3MgaGFzaCBzZXQgaWYgaXQncyBjb25uZWN0ZWQuCisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1l
bnQuaDoKKwogMjAxNy0xMi0wNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbRU1FXSBTdXBwb3J0IHRoZSAnZW5jcnlwdGVkJyBldmVudCBmb3IgRlBTIGVuY3J5
cHRlZCBzdHJlYW1zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBjYTlkNjU4NmVkOC4uY2Y2
ZTcyNzQ0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTU5LDYgKzE1OSw3IEBACiAj
aW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiU1ZHVGl0bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHVXNlRWxlbWVudC5oIgogI2luY2x1
ZGUgIlNWR1pvb21FdmVudC5oIgogI2luY2x1ZGUgIlNXQ2xpZW50Q29ubmVjdGlvbi5oIgogI2lu
Y2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCkBAIC02MjgsOCArNjI5LDkgQEAgRG9jdW1lbnQ6On5E
b2N1bWVudCgpCiAgICAgaWYgKGhhc1JhcmVEYXRhKCkpCiAgICAgICAgIGNsZWFyUmFyZURhdGEo
KTsKIAotICAgIEFTU0VSVChtX2xpc3RzSW52YWxpZGF0ZWRBdERvY3VtZW50LmlzRW1wdHkoKSk7
Ci0gICAgQVNTRVJUKG1fY29sbGVjdGlvbnNJbnZhbGlkYXRlZEF0RG9jdW1lbnQuaXNFbXB0eSgp
KTsKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG1fbGlzdHNJ
bnZhbGlkYXRlZEF0RG9jdW1lbnQuaXNFbXB0eSgpKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRI
X1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG1fY29sbGVjdGlvbnNJbnZhbGlkYXRlZEF0RG9jdW1lbnQu
aXNFbXB0eSgpKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9O
KG1fc3ZnVXNlRWxlbWVudHMuaXNFbXB0eSgpKTsKIAogICAgIGZvciAodW5zaWduZWQgY291bnQg
OiBtX25vZGVMaXN0QW5kQ29sbGVjdGlvbkNvdW50cykKICAgICAgICAgQVNTRVJUX1VOVVNFRChj
b3VudCwgIWNvdW50KTsKQEAgLTE3ODYsNiArMTc4OCwxNSBAQCB2b2lkIERvY3VtZW50OjpyZXNv
bHZlU3R5bGUoUmVzb2x2ZVN0eWxlVHlwZSB0eXBlKQogICAgIFJlbmRlclZpZXc6OlJlcGFpbnRS
ZWdpb25BY2N1bXVsYXRvciByZXBhaW50UmVnaW9uQWNjdW11bGF0b3IocmVuZGVyVmlldygpKTsK
ICAgICBBbmltYXRpb25VcGRhdGVCbG9jayBhbmltYXRpb25VcGRhdGVCbG9jaygmbV9mcmFtZS0+
YW5pbWF0aW9uKCkpOwogCisgICAgLy8gRklYTUU6IERvIHRoaXMgdXBkYXRlIHBlciB0cmVlIHNj
b3BlLgorICAgIHsKKyAgICAgICAgYXV0byBlbGVtZW50cyA9IGNvcHlUb1ZlY3Rvck9mPFJlZlB0
cjxTVkdVc2VFbGVtZW50Pj4obV9zdmdVc2VFbGVtZW50cyk7CisgICAgICAgIC8vIFdlIGNhbid0
IGNsZWFyIG1fc3ZnVXNlRWxlbWVudHMgaGVyZSBiZWNhdXNlIHVwZGF0ZVNoYWRvd1RyZWUgbWF5
IGVuZCB1cCBleGVjdXRpbmcgYXJiaXRyYXJ5IHNjcmlwdHMKKyAgICAgICAgLy8gd2hpY2ggbWF5
IGluc2VydCBuZXcgU1ZHIHVzZSBlbGVtZW50cyBvciByZW1vdmUgZXhpc3Rpbmcgb25lcyBpbnNp
ZGUgc3luYyBJUEMgdmlhIEltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudC4KKyAgICAgICAg
Zm9yIChhdXRvJiBlbGVtZW50IDogZWxlbWVudHMpCisgICAgICAgICAgICBlbGVtZW50LT51cGRh
dGVTaGFkb3dUcmVlKCk7CisgICAgfQorCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB1cGRhdGUg
c3R5bGUgb24gb3VyIGFuY2VzdG9yIGNoYWluIGJlZm9yZSBwcm9jZWVkaW5nIChlc3BlY2lhbGx5
IGZvciBzZWFtbGVzcyksCiAgICAgLy8gaG93ZXZlciBkb2luZyBzbyBjdXJyZW50bHkgY2F1c2Vz
IHNldmVyYWwgdGVzdHMgdG8gY3Jhc2gsIGFzIEZyYW1lOjpzZXREb2N1bWVudCBjYWxscyBEb2N1
bWVudDo6YXR0YWNoCiAgICAgLy8gYmVmb3JlIHNldHRpbmcgdGhlIERPTVdpbmRvdyBvbiB0aGUg
RnJhbWUsIG9yIHRoZSBTZWN1cml0eU9yaWdpbiBvbiB0aGUgZG9jdW1lbnQuIFRoZSBhdHRhY2gs
IGluIHR1cm4KQEAgLTUyNTQsNiArNTI2NSwxOCBAQCBTVkdEb2N1bWVudEV4dGVuc2lvbnMmIERv
Y3VtZW50OjphY2Nlc3NTVkdFeHRlbnNpb25zKCkKICAgICByZXR1cm4gKm1fc3ZnRXh0ZW5zaW9u
czsKIH0KIAordm9pZCBEb2N1bWVudDo6YWRkU1ZHVXNlRWxlbWVudChTVkdVc2VFbGVtZW50JiBl
bGVtZW50KQoreworICAgIGF1dG8gcmVzdWx0ID0gbV9zdmdVc2VFbGVtZW50cy5hZGQoJmVsZW1l
bnQpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ocmVzdWx0
LmlzTmV3RW50cnkpOworfQorCit2b2lkIERvY3VtZW50OjpyZW1vdmVTVkdVc2VFbGVtZW50KFNW
R1VzZUVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgYm9vbCBkaWRSZW1vdmUgPSBtX3N2Z1VzZUVs
ZW1lbnRzLnJlbW92ZSgmZWxlbWVudCk7CisgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTihkaWRSZW1vdmUpOworfQorCiBib29sIERvY3VtZW50OjpoYXNTVkdSb290
Tm9kZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRvY3VtZW50RWxlbWVudCgpICYmIGRvY3VtZW50
RWxlbWVudCgpLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpzdmdUYWcpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAppbmRleCA5MmU2ZmVhYTQ4NC4uM2E0OWY2NzJjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC0xNTQsNiArMTU0LDcgQEAgY2xhc3MgUmVuZGVyVmlldzsKIGNsYXNzIFJlcXVlc3RBbmltYXRp
b25GcmFtZUNhbGxiYWNrOwogY2xhc3MgU1ZHRG9jdW1lbnRFeHRlbnNpb25zOwogY2xhc3MgU1ZH
U1ZHRWxlbWVudDsKK2NsYXNzIFNWR1VzZUVsZW1lbnQ7CiBjbGFzcyBTV0NsaWVudENvbm5lY3Rp
b247CiBjbGFzcyBTY3JpcHRFbGVtZW50RGF0YTsKIGNsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsK
QEAgLTEwNzcsNiArMTA3OCwxMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3Qg
U1ZHRG9jdW1lbnRFeHRlbnNpb25zKiBzdmdFeHRlbnNpb25zKCk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgU1ZHRG9jdW1lbnRFeHRlbnNpb25zJiBhY2Nlc3NTVkdFeHRlbnNpb25zKCk7CiAKKyAgICB2
b2lkIGFkZFNWR1VzZUVsZW1lbnQoU1ZHVXNlRWxlbWVudCYpOworICAgIHZvaWQgcmVtb3ZlU1ZH
VXNlRWxlbWVudChTVkdVc2VFbGVtZW50Jik7CisgICAgSGFzaFNldDxTVkdVc2VFbGVtZW50Kj4g
Y29uc3Qgc3ZnVXNlRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBtX3N2Z1VzZUVsZW1lbnRzOyB9
CisKICAgICB2b2lkIGluaXRTZWN1cml0eUNvbnRleHQoKTsKICAgICB2b2lkIGluaXRDb250ZW50
U2VjdXJpdHlQb2xpY3koKTsKIApAQCAtMTYxMiw2ICsxNjE3LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8WFBhdGhFdmFsdWF0b3I+IG1feHBhdGhFdmFsdWF0b3I7CiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8U1ZHRG9jdW1lbnRFeHRlbnNpb25zPiBtX3N2Z0V4dGVuc2lvbnM7CisgICAgSGFzaFNl
dDxTVkdVc2VFbGVtZW50Kj4gbV9zdmdVc2VFbGVtZW50czsKIAogI2lmIEVOQUJMRShEQVNIQk9B
UkRfU1VQUE9SVCkKICAgICBWZWN0b3I8QW5ub3RhdGVkUmVnaW9uVmFsdWU+IG1fYW5ub3RhdGVk
UmVnaW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA0MmNiMzRhNTllYi4uYWRiNjdjMTI0
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTM0OSwxMSArMzQ5LDYgQEAgUmVmPE5vZGU+
IEVsZW1lbnQ6OmNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCwgQ2xv
bmluZ09wZXJhdGlvbgogUmVmPEVsZW1lbnQ+IEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhDaGls
ZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7CiAgICAgUmVmPEVsZW1lbnQ+IGNsb25l
ID0gY2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKHRhcmdldERvY3VtZW50KTsKLQotICAgIC8v
IEl0J3Mgc2FmZSB0byBkaXNwYXRjaCBldmVudHMgb24gdGhlIGNsb25lZCBub2RlIHNpbmNlIGF1
dGhvciBzY3JpcHRzIGhhdmUgbm8gYWNjZXNzIHRvIGl0IHlldC4KLSAgICAvLyBUaGlzIGlzIG5l
ZWRlZCBmb3IgU1ZHVXNlRWxlbWVudDo6Y2xvbmVUYXJnZXQuCi0gICAgTm9FdmVudERpc3BhdGNo
QXNzZXJ0aW9uOjpFdmVudEFsbG93ZWRTY29wZSBhbGxvd2VkU2NvcGUoY2xvbmUuZ2V0KCkpOwot
CiAgICAgY2xvbmVDaGlsZE5vZGVzKGNsb25lKTsKICAgICByZXR1cm4gY2xvbmU7CiB9CkBAIC0z
NjIsMTAgKzM1Nyw2IEBAIFJlZjxFbGVtZW50PiBFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0
Q2hpbGRyZW4oRG9jdW1lbnQmIHRhcmdldERvY3VtZW50KQogewogICAgIFJlZjxFbGVtZW50PiBj
bG9uZSA9IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4odGFyZ2V0RG9j
dW1lbnQpOwogCi0gICAgLy8gSXQncyBzYWZlIHRvIGRpc3BhdGNoIGV2ZW50cyBvbiB0aGUgY2xv
bmVkIG5vZGUgc2luY2UgYXV0aG9yIHNjcmlwdHMgaGF2ZSBubyBhY2Nlc3MgdG8gaXQgeWV0Lgot
ICAgIC8vIFRoaXMgaXMgbmVlZGVkIGZvciBTVkdVc2VFbGVtZW50OjpjbG9uZVRhcmdldC4KLSAg
ICBOb0V2ZW50RGlzcGF0Y2hBc3NlcnRpb246OkV2ZW50QWxsb3dlZFNjb3BlIGFsbG93ZWRTY29w
ZShjbG9uZS5nZXQoKSk7Ci0KICAgICAvLyBUaGlzIHdpbGwgY2F0Y2ggSFRNTCBlbGVtZW50cyBp
biB0aGUgd3JvbmcgbmFtZXNwYWNlIHRoYXQgYXJlIG5vdCBjb3JyZWN0bHkgY29waWVkLgogICAg
IC8vIFRoaXMgaXMgYSBzYW5pdHkgY2hlY2sgYXMgSFRNTCBvdmVybG9hZHMgc29tZSBvZiB0aGUg
RE9NIG1ldGhvZHMuCiAgICAgQVNTRVJUKGlzSFRNTEVsZW1lbnQoKSA9PSBjbG9uZS0+aXNIVE1M
RWxlbWVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCAwNTg4MTNh
YWRjMC4uOTNiMDIzNmUwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAg
LTEwOCw2ICsxMDgsOCBAQCBOb2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBTVkdVc2VF
bGVtZW50OjppbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeQogewogICAgIFNWR0dyYXBo
aWNzRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoaW5zZXJ0aW9uVHlwZSwgcGFyZW50T2ZJ
bnNlcnRlZFRyZWUpOwogICAgIGlmIChpbnNlcnRpb25UeXBlLmNvbm5lY3RlZFRvRG9jdW1lbnQp
IHsKKyAgICAgICAgaWYgKG1fc2hhZG93VHJlZU5lZWRzVXBkYXRlKQorICAgICAgICAgICAgZG9j
dW1lbnQoKS5hZGRTVkdVc2VFbGVtZW50KCp0aGlzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQodGhpcyk7CiAgICAgICAgIGludmFs
aWRhdGVTaGFkb3dUcmVlKCk7CiAgICAgICAgIHVwZGF0ZUV4dGVybmFsRG9jdW1lbnQoKTsKQEAg
LTExNyw5ICsxMTksMTcgQEAgTm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgU1ZHVXNl
RWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHkKIAogdm9pZCBTVkdVc2VF
bGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlIHJlbW92YWxUeXBlLCBDb250
YWluZXJOb2RlJiBvbGRQYXJlbnRPZlJlbW92ZWRUcmVlKQogeworICAgIC8vIENoZWNrIG1fc2hh
ZG93VHJlZU5lZWRzVXBkYXRlIGJlZm9yZSBjYWxsaW5nIFNWR0VsZW1lbnQ6OnJlbW92ZWRGcm9t
QW5jZXN0b3Igd2hpY2ggY2FsbHMgU1ZHRWxlbWVudDo6aW52YWxpZGF0ZUluc3RhbmNlcworICAg
IC8vIGFuZCBTVkdVc2VFbGVtZW50Ojp1cGRhdGVFeHRlcm5hbERvY3VtZW50IHdoaWNoIGNhbGxz
IGludmFsaWRhdGVTaGFkb3dUcmVlKCkuCisgICAgaWYgKHJlbW92YWxUeXBlLmRpc2Nvbm5lY3Rl
ZEZyb21Eb2N1bWVudCkgeworICAgICAgICBpZiAobV9zaGFkb3dUcmVlTmVlZHNVcGRhdGUpCisg
ICAgICAgICAgICBkb2N1bWVudCgpLnJlbW92ZVNWR1VzZUVsZW1lbnQoKnRoaXMpOworICAgIH0K
ICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OnJlbW92ZWRGcm9tQW5jZXN0b3IocmVtb3ZhbFR5cGUs
IG9sZFBhcmVudE9mUmVtb3ZlZFRyZWUpOwotICAgIGNsZWFyU2hhZG93VHJlZSgpOwotICAgIHVw
ZGF0ZUV4dGVybmFsRG9jdW1lbnQoKTsKKyAgICBpZiAocmVtb3ZhbFR5cGUuZGlzY29ubmVjdGVk
RnJvbURvY3VtZW50KSB7CisgICAgICAgIGNsZWFyU2hhZG93VHJlZSgpOworICAgICAgICB1cGRh
dGVFeHRlcm5hbERvY3VtZW50KCk7CisgICAgfQogfQogCiBpbmxpbmUgRG9jdW1lbnQqIFNWR1Vz
ZUVsZW1lbnQ6OmV4dGVybmFsRG9jdW1lbnQoKSBjb25zdApAQCAtMTgzLDkgKzE5Myw2IEBAIHZv
aWQgU1ZHVXNlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKIAogdm9pZCBTVkdVc2VFbGVtZW50Ojp3aWxsUmVjYWxjU3R5bGUoU3R5bGU6
OkNoYW5nZSBjaGFuZ2UpCiB7Ci0gICAgLy8gRklYTUU6IFNoYWRvdyB0cmVlIHNob3VsZCBiZSB1
cGRhdGVkIGJlZm9yZSBzdHlsZSByZWNhbGMuCi0gICAgaWYgKG1fc2hhZG93VHJlZU5lZWRzVXBk
YXRlKQotICAgICAgICB1cGRhdGVTaGFkb3dUcmVlKCk7CiAgICAgU1ZHR3JhcGhpY3NFbGVtZW50
Ojp3aWxsUmVjYWxjU3R5bGUoY2hhbmdlKTsKIH0KIApAQCAtMjM0LDcgKzI0MSwxMiBAQCB2b2lk
IFNWR1VzZUVsZW1lbnQ6OnVwZGF0ZVNoYWRvd1RyZWUoKQogICAgIC8vIEZJWE1FOiBJdCdzIGV4
cGVuc2l2ZSB0byByZS1jbG9uZSB0aGUgZW50aXJlIHRyZWUgZXZlcnkgdGltZS4gV2Ugc2hvdWxk
IGZpbmQgYSBtb3JlIGVmZmljaWVudCB3YXkgdG8gaGFuZGxlIHRoaXMuCiAgICAgY2xlYXJTaGFk
b3dUcmVlKCk7CiAKLSAgICBpZiAoaXNJblNoYWRvd1RyZWUoKSB8fCAhaXNDb25uZWN0ZWQoKSkK
KyAgICBpZiAoIWlzQ29ubmVjdGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBkb2N1bWVudCgp
LnJlbW92ZVNWR1VzZUVsZW1lbnQoKnRoaXMpOworCisgICAgLy8gRklYTUU6IEVuYWJsZSBTVkcg
dXNlIGVsZW1lbnRzIGluIHNoYWRvdyB0cmVlcy4KKyAgICBpZiAoaXNJblNoYWRvd1RyZWUoKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgU3RyaW5nIHRhcmdldElEOwpAQCAtMjQ1LDkgKzI1Nyw3
IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6dXBkYXRlU2hhZG93VHJlZSgpCiAgICAgfQogCiAgICAg
ewotICAgICAgICAvLyBTYWZlIGJlY2F1c2UgdGhlIGNsb25lZCBzaGFkb3cgdHJlZSBoYXMgbmV2
ZXIgYmVlbiBleHBvc2VkIHRvIGF1dGhvciBzY3JpcHRzLgogICAgICAgICBhdXRvJiBzaGFkb3dS
b290ID0gZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwotICAgICAgICBOb0V2ZW50RGlzcGF0
Y2hBc3NlcnRpb246OkV2ZW50QWxsb3dlZFNjb3BlIHNjb3BlKHNoYWRvd1Jvb3QpOwogICAgICAg
ICBjbG9uZVRhcmdldChzaGFkb3dSb290LCAqdGFyZ2V0KTsKICAgICAgICAgZXhwYW5kVXNlRWxl
bWVudHNJblNoYWRvd1RyZWUoKTsKICAgICAgICAgZXhwYW5kU3ltYm9sRWxlbWVudHNJblNoYWRv
d1RyZWUoKTsKQEAgLTQzNiw4ICs0NDYsNiBAQCBTVkdFbGVtZW50KiBTVkdVc2VFbGVtZW50Ojpm
aW5kVGFyZ2V0KFN0cmluZyogdGFyZ2V0SUQpIGNvbnN0CiB2b2lkIFNWR1VzZUVsZW1lbnQ6OmNs
b25lVGFyZ2V0KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgU1ZHRWxlbWVudCYgdGFyZ2V0KSBj
b25zdAogewogICAgIFJlZjxTVkdFbGVtZW50PiB0YXJnZXRDbG9uZSA9IHN0YXRpY19jYXN0PFNW
R0VsZW1lbnQmPih0YXJnZXQuY2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKGRvY3VtZW50KCkpLmdl
dCgpKTsKLSAgICAvLyBTYWZlIGJlY2F1c2UgdGhlIG5ld3kgY2xvbmVkIG5vZGVzIGluIHRoZSBz
aGFkb3cgdHJlZSBoYXMgbm90IGJlZW4gZXhwb3NlZCB0byBhdXRob3Igc2NyaXB0cyB5ZXQuCi0g
ICAgTm9FdmVudERpc3BhdGNoQXNzZXJ0aW9uOjpFdmVudEFsbG93ZWRTY29wZSBzY29wZSh0YXJn
ZXRDbG9uZSk7CiAgICAgYXNzb2NpYXRlQ2xvbmVzV2l0aE9yaWdpbmFscyh0YXJnZXRDbG9uZS5n
ZXQoKSwgdGFyZ2V0KTsKICAgICByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNGcm9tU3VidHJlZSh0
YXJnZXRDbG9uZS5nZXQoKSk7CiAgICAgcmVtb3ZlU3ltYm9sRWxlbWVudHNGcm9tU3VidHJlZSh0
YXJnZXRDbG9uZS5nZXQoKSk7CkBAIC00NzAsOCArNDc4LDYgQEAgdm9pZCBTVkdVc2VFbGVtZW50
OjpleHBhbmRVc2VFbGVtZW50c0luU2hhZG93VHJlZSgpIGNvbnN0CiAgICAgICAgIC8vICd1c2Un
IGVsZW1lbnQgZXhjZXB0IGZvciB4LCB5LCB3aWR0aCwgaGVpZ2h0IGFuZCB4bGluazpocmVmIGFy
ZSB0cmFuc2ZlcnJlZCB0byB0aGUgZ2VuZXJhdGVkICdnJyBlbGVtZW50LgogCiAgICAgICAgIGF1
dG8gcmVwbGFjZW1lbnRDbG9uZSA9IFNWR0dFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0g
ICAgICAgIC8vIFNhZmUgYmVjYXVzZSB0aGUgdXNlIGVsZW1lbnQncyBzaGFkb3cgdHJlZSBpcyBu
b3QgZXhwb3NlZCB0byBhdXRob3Igc2NyaXB0cywgYW5kIHdlIGRvbid0IGZpcmUgc3luY2hyb25v
dXMgZXZlbnRzIGR1cmluZyBsYXlvdXQgJiBET00gbGF5b3V0LgotICAgICAgICBOb0V2ZW50RGlz
cGF0Y2hBc3NlcnRpb246OkV2ZW50QWxsb3dlZFNjb3BlIHNjb3BlKHJlcGxhY2VtZW50Q2xvbmUp
OwogCiAgICAgICAgIGNsb25lRGF0YUFuZENoaWxkcmVuKHJlcGxhY2VtZW50Q2xvbmUuZ2V0KCks
IG9yaWdpbmFsQ2xvbmUpOwogCkBAIC01MDYsOCArNTEyLDYgQEAgdm9pZCBTVkdVc2VFbGVtZW50
OjpleHBhbmRTeW1ib2xFbGVtZW50c0luU2hhZG93VHJlZSgpIGNvbnN0CiAgICAgICAgIC8vICdz
dmcnIGVsZW1lbnQgd2lsbCB1c2UgdmFsdWVzIG9mIDEwMCUgZm9yIHRoZXNlIGF0dHJpYnV0ZXMu
CiAKICAgICAgICAgYXV0byByZXBsYWNlbWVudENsb25lID0gU1ZHU1ZHRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KCkpOwotICAgICAgICAvLyBTYWZlIGJlY2F1c2UgdGhlIG5ld2x5IGNyZWF0ZWQg
U1ZHIGVsZW1lbnQgYW5kIHRoZSBuZXdseSBjcmVhdGVkIHNoYWRvdyB0cmVlIGhhcyBub3QgYmVl
biBleHBvc2VkIHRvIGF1dGhvciBzY3JpcHRzIHlldC4KLSAgICAgICAgTm9FdmVudERpc3BhdGNo
QXNzZXJ0aW9uOjpFdmVudEFsbG93ZWRTY29wZSBzY29wZShyZXBsYWNlbWVudENsb25lKTsKICAg
ICAgICAgY2xvbmVEYXRhQW5kQ2hpbGRyZW4ocmVwbGFjZW1lbnRDbG9uZS5nZXQoKSwgb3JpZ2lu
YWxDbG9uZSk7CiAKICAgICAgICAgb3JpZ2luYWxDbG9uZS5wYXJlbnROb2RlKCktPnJlcGxhY2VD
aGlsZChyZXBsYWNlbWVudENsb25lLCBvcmlnaW5hbENsb25lKTsKQEAgLTUzMyw2ICs1MzcsOCBA
QCB2b2lkIFNWR1VzZUVsZW1lbnQ6OmludmFsaWRhdGVTaGFkb3dUcmVlKCkKICAgICBtX3NoYWRv
d1RyZWVOZWVkc1VwZGF0ZSA9IHRydWU7CiAgICAgaW52YWxpZGF0ZVN0eWxlQW5kUmVuZGVyZXJz
Rm9yU3VidHJlZSgpOwogICAgIGludmFsaWRhdGVEZXBlbmRlbnRTaGFkb3dUcmVlcygpOworICAg
IGlmIChpc0Nvbm5lY3RlZCgpKQorICAgICAgICBkb2N1bWVudCgpLmFkZFNWR1VzZUVsZW1lbnQo
KnRoaXMpOwogfQogCiB2b2lkIFNWR1VzZUVsZW1lbnQ6OmludmFsaWRhdGVEZXBlbmRlbnRTaGFk
b3dUcmVlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAppbmRleCAzMWY2NDRkMTc4ZC4u
ZjBjZTlmNWU5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaApAQCAtNTAsNiArNTAs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZHVXNlRWxlbWVudCgpOwogCiAgICAgdm9pZCBp
bnZhbGlkYXRlU2hhZG93VHJlZSgpOworICAgIGJvb2wgc2hhZG93VHJlZU5lZWRzVXBkYXRlKCkg
Y29uc3QgeyByZXR1cm4gbV9zaGFkb3dUcmVlTmVlZHNVcGRhdGU7IH0KKyAgICB2b2lkIHVwZGF0
ZVNoYWRvd1RyZWUoKTsKIAogICAgIFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyQ2xpcENoaWxkKCkg
Y29uc3Q7CiAKQEAgLTgxLDcgKzgzLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsb25lVGFyZ2V0
KENvbnRhaW5lck5vZGUmLCBTVkdFbGVtZW50JiB0YXJnZXQpIGNvbnN0OwogICAgIFJlZlB0cjxT
VkdFbGVtZW50PiB0YXJnZXRDbG9uZSgpIGNvbnN0OwogCi0gICAgdm9pZCB1cGRhdGVTaGFkb3dU
cmVlKCk7CiAgICAgdm9pZCBleHBhbmRVc2VFbGVtZW50c0luU2hhZG93VHJlZSgpIGNvbnN0Owog
ICAgIHZvaWQgZXhwYW5kU3ltYm9sRWxlbWVudHNJblNoYWRvd1RyZWUoKSBjb25zdDsKICAgICB2
b2lkIHRyYW5zZmVyRXZlbnRMaXN0ZW5lcnNUb1NoYWRvd1RyZWUoKSBjb25zdDsK
</data>
<flag name="review"
          id="348309"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329238</attachid>
            <date>2017-12-13 11:20:09 -0800</date>
            <delta_ts>2017-12-13 13:12:46 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>fix180729b.patch</filename>
            <type>text/plain</type>
            <size>15613</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4NDg0MDEwZDljMS4uNmEyZWFjN2RhMzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAxNy0xMi0xMiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
KworICAgICAgICBVcGRhdGUgdGhlIFNWRyB1c2UgZWxlbWVudCdzIHNoYWRvdyB0cmVlcyBleHBs
aWNpdGx5IGJlZm9yZSB0aGUgc3R5bGUgcmVjYWxsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA3MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2
MDA5ODA2PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAg
IFVwZGF0ZSB0aGUgU1ZHIHVzZSBlbGVtZW50J3Mgc2hhZG93IHRyZWVzIGJlZm9yZSBzdGFydCBy
ZXNvbHZpbmcgc3R5bGVzLiBEb2N1bWVudCBub3cgaGFzIGEgaGFzaCBzZXQgb2YgYWxsCisgICAg
ICAgIGNvbm5lY3RlZCBTVkcgdXNlIGVsZW1lbnRzIHdpdGggaW52YWxpZGF0ZWQgc2hhZG93IHRy
ZWVzLiBTVkdVc2VFbGVtZW50IGFkZHMgaXRzZWxmIHRvIHRoaXMgc2V0IHdoZW4gaXRzCisgICAg
ICAgIHNoYWRvdyB0cmVlIGdldHMgaW52YWxpZGF0ZWQsIG9yIGl0IGdldHMgbmV3bHkgY29ubmVj
dGVkIHRvIGEgZG9jdW1lbnQgd2l0aCB0aGUgaW52YWxpZGF0ZWQgc2hhZG93IHRyZWUuCisgICAg
ICAgIFNWR1VzZUVsZW1lbnQgcmVtb3ZlcyBpdHNlbGYgZnJvbSB0aGlzIHNldCB3aGVuIGl0IHVw
ZGF0ZXMgaXRzIHNoYWRvdyB0cmVlIG9yIGl0IGdldHMgZGlzY29ubmVjdGVkIGZyb20KKyAgICAg
ICAgYSBkb2N1bWVudCB3aXRoIHRoZSBpbnZhbGlkYXRlZCBzaGFkb3cgdHJlZS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6
IEFzc2VydCB0aGF0IG1fc3ZnVXNlRWxlbWVudHMgaGFzIGJlZW4gY2xlYXJlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvbHZlU3R5bGUpOiBVcGRhdGUgdGhlIHNoYWRvdyB0cmVl
cyBvZiBTVkcgdXNlIGVsZW1lbnRzIHdpdGggaW52YWxpZGF0ZWQgc2hhZG93IHRyZWVzLgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkZFNWR1VzZUVsZW1lbnQpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZW1vdmVTVkdVc2VFbGVtZW50KTogQWRkZWQuCisgICAg
ICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3ZnVXNl
RWxlbWVudHMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4pOiBSZW1vdmVk
IEV2ZW50QWxsb3dlZFNjb3BlIHNpbmNlIHRoZSBTVkcgdXNlIGVsZW1lbnQncyBzaGFkb3cKKyAg
ICAgICAgdHJlZSBpcyBubyBsb25nZXIgdXBkYXRlZCB3aGVuIHRoZXJlIGlzIGEgTm9FdmVudERp
c3BhdGNoQXNzZXJ0aW9uIGluIHRoZSBzdGFjay4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OmNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbik6IERpdHRvLgorICAgICAgICAqIHN0eWxlL1N0
eWxlVHJlZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2
ZXI6OnJlc29sdmVDb21wb3NlZFRyZWUpOiBObyBsb25nZXIgZHJvcHMgdGhlIGFzc2VydGlvbiBu
b3cgdGhhdCBTVkcgdXNlIGVsZW1lbnQncworICAgICAgICBzaGFkb3cgdHJlZSBpcyB1cGRhdGVk
IGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5j
ZXN0b3IpOiBBZGQgdGhlIGVsZW1lbnQgdG8gdGhlIGRvY3VtZW50J3MgaGFzaCBzZXQgaWYgdGhp
cyB1c2UgZWxlbWVudCdzCisgICAgICAgIHNoYWRvdyB0cmVlIG5lZWRzIHRvIGJlIHVwZGF0ZWQg
KG1fc2hhZG93VHJlZU5lZWRzVXBkYXRlIGlzIHNldCksIGFuZCBpdCBnb3QgbmV3bHkgY29ubmVj
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3Rv
cik6IERpdHRvIGZvciByZW1vdmFsLiBXZSBoYXZlIHRvIGNoZWNrIG1fc2hhZG93VHJlZU5lZWRz
VXBkYXRlIGJlZm9yZQorICAgICAgICBjYWxsaW5nIFNWR0dyYXBoaWNzRWxlbWVudDo6cmVtb3Zl
ZEZyb21BbmNlc3RvciBvciB1cGRhdGVFeHRlcm5hbERvY3VtZW50IHNpbmNlIGVpdGhlciBmdW5j
dGlvbiBjYW4gaW52b2tlCisgICAgICAgIG1fc2hhZG93VHJlZU5lZWRzVXBkYXRlIHRvIHRydWUu
CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50Ojp3aWxsUmVjYWxjU3R5bGUpOiBEZWxl
dGVkLiBXZSBubyBsb25nZXIgY2FsbCB1cGRhdGVTaGFkb3dUcmVlIGR1cmluZyBzdHlsZSByZWNh
bGMuCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50Ojp1cGRhdGVTaGFkb3dUcmVlKTog
UmVtb3ZlIHRoaXMgZWxlbWVudCBmcm9tIHRoZSBkb2N1bWVudCdzIGhhaCBzZXQuIFdlIGNhbid0
IGNsZWFyIGFsbAorICAgICAgICB0aGUgZW50cmllcyBpbiB0aGUgbWFwIGF0IG9uY2UgaW4gRG9j
dW1lbnQ6OnJlc29sdmVTdHlsZSBiZWNhdXNlIHVwZGF0aW5nIHRoZSBzaGFkb3cgdHJlZXMgb2Yg
YSBTVkcgdXNlIGVsZW1lbnQKKyAgICAgICAgY2FuIHJlc3VsdCBpbiBhIHN5bmMgSVBDIGluIElt
YWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCwgd2hpY2ggZW5kIHVwIGV4ZWN1dGluZyBhcmJp
dHJhcnkgYXV0aG9yIHNjcmlwdHMuCisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50Ojpj
bG9uZVRhcmdldCBjb25zdCk6IFJlbW92ZWQgRXZlbnRBbGxvd2VkU2NvcGUgc2luY2UgdGhlIFNW
RyB1c2UgZWxlbWVudCdzIHNoYWRvdyB0cmVlCisgICAgICAgIGlzIG5vIGxvbmdlciB1cGRhdGVk
IHdoZW4gdGhlcmUgaXMgYSBOb0V2ZW50RGlzcGF0Y2hBc3NlcnRpb24gaW4gdGhlIHN0YWNrLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6ZXhwYW5kVXNlRWxlbWVudHNJblNoYWRv
d1RyZWUgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmV4
cGFuZFN5bWJvbEVsZW1lbnRzSW5TaGFkb3dUcmVlIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTVkdVc2VFbGVtZW50OjppbnZhbGlkYXRlU2hhZG93VHJlZSk6IEFkZCB0aGUgZWxl
bWVudCB0byB0aGUgZG9jdW1lbnQncyBoYXNoIHNldCBpZiBpdCdzIGNvbm5lY3RlZC4KKyAgICAg
ICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5oOgorCiAyMDE3LTEyLTA3ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtFTUVdIFN1cHBvcnQgdGhlICdlbmNyeXB0ZWQn
IGV2ZW50IGZvciBGUFMgZW5jcnlwdGVkIHN0cmVhbXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IGNhOWQ2NTg2ZWQ4Li5jZjZlNzI3NDQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC0xNTksNiArMTU5LDcgQEAKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1NW
R0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdUaXRsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdV
c2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHWm9vbUV2ZW50LmgiCiAjaW5jbHVkZSAiU1dDbGll
bnRDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIKQEAgLTYyOCw4ICs2
MjksOSBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKICAgICBpZiAoaGFzUmFyZURhdGEoKSkKICAg
ICAgICAgY2xlYXJSYXJlRGF0YSgpOwogCi0gICAgQVNTRVJUKG1fbGlzdHNJbnZhbGlkYXRlZEF0
RG9jdW1lbnQuaXNFbXB0eSgpKTsKLSAgICBBU1NFUlQobV9jb2xsZWN0aW9uc0ludmFsaWRhdGVk
QXREb2N1bWVudC5pc0VtcHR5KCkpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlf
SU1QTElDQVRJT04obV9saXN0c0ludmFsaWRhdGVkQXREb2N1bWVudC5pc0VtcHR5KCkpOworICAg
IFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04obV9jb2xsZWN0aW9uc0lu
dmFsaWRhdGVkQXREb2N1bWVudC5pc0VtcHR5KCkpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04obV9zdmdVc2VFbGVtZW50cy5pc0VtcHR5KCkpOwogCiAgICAg
Zm9yICh1bnNpZ25lZCBjb3VudCA6IG1fbm9kZUxpc3RBbmRDb2xsZWN0aW9uQ291bnRzKQogICAg
ICAgICBBU1NFUlRfVU5VU0VEKGNvdW50LCAhY291bnQpOwpAQCAtMTc4Niw2ICsxNzg4LDE1IEBA
IHZvaWQgRG9jdW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUpCiAgICAg
UmVuZGVyVmlldzo6UmVwYWludFJlZ2lvbkFjY3VtdWxhdG9yIHJlcGFpbnRSZWdpb25BY2N1bXVs
YXRvcihyZW5kZXJWaWV3KCkpOwogICAgIEFuaW1hdGlvblVwZGF0ZUJsb2NrIGFuaW1hdGlvblVw
ZGF0ZUJsb2NrKCZtX2ZyYW1lLT5hbmltYXRpb24oKSk7CiAKKyAgICAvLyBGSVhNRTogRG8gdGhp
cyB1cGRhdGUgcGVyIHRyZWUgc2NvcGUuCisgICAgeworICAgICAgICBhdXRvIGVsZW1lbnRzID0g
Y29weVRvVmVjdG9yT2Y8UmVmUHRyPFNWR1VzZUVsZW1lbnQ+PihtX3N2Z1VzZUVsZW1lbnRzKTsK
KyAgICAgICAgLy8gV2UgY2FuJ3QgY2xlYXIgbV9zdmdVc2VFbGVtZW50cyBoZXJlIGJlY2F1c2Ug
dXBkYXRlU2hhZG93VHJlZSBtYXkgZW5kIHVwIGV4ZWN1dGluZyBhcmJpdHJhcnkgc2NyaXB0cwor
ICAgICAgICAvLyB3aGljaCBtYXkgaW5zZXJ0IG5ldyBTVkcgdXNlIGVsZW1lbnRzIG9yIHJlbW92
ZSBleGlzdGluZyBvbmVzIGluc2lkZSBzeW5jIElQQyB2aWEgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZy
b21FbGVtZW50LgorICAgICAgICBmb3IgKGF1dG8mIGVsZW1lbnQgOiBlbGVtZW50cykKKyAgICAg
ICAgICAgIGVsZW1lbnQtPnVwZGF0ZVNoYWRvd1RyZWUoKTsKKyAgICB9CisKICAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIHVwZGF0ZSBzdHlsZSBvbiBvdXIgYW5jZXN0b3IgY2hhaW4gYmVmb3JlIHBy
b2NlZWRpbmcgKGVzcGVjaWFsbHkgZm9yIHNlYW1sZXNzKSwKICAgICAvLyBob3dldmVyIGRvaW5n
IHNvIGN1cnJlbnRseSBjYXVzZXMgc2V2ZXJhbCB0ZXN0cyB0byBjcmFzaCwgYXMgRnJhbWU6OnNl
dERvY3VtZW50IGNhbGxzIERvY3VtZW50OjphdHRhY2gKICAgICAvLyBiZWZvcmUgc2V0dGluZyB0
aGUgRE9NV2luZG93IG9uIHRoZSBGcmFtZSwgb3IgdGhlIFNlY3VyaXR5T3JpZ2luIG9uIHRoZSBk
b2N1bWVudC4gVGhlIGF0dGFjaCwgaW4gdHVybgpAQCAtNTI1NCw2ICs1MjY1LDE4IEBAIFNWR0Rv
Y3VtZW50RXh0ZW5zaW9ucyYgRG9jdW1lbnQ6OmFjY2Vzc1NWR0V4dGVuc2lvbnMoKQogICAgIHJl
dHVybiAqbV9zdmdFeHRlbnNpb25zOwogfQogCit2b2lkIERvY3VtZW50OjphZGRTVkdVc2VFbGVt
ZW50KFNWR1VzZUVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgYXV0byByZXN1bHQgPSBtX3N2Z1Vz
ZUVsZW1lbnRzLmFkZCgmZWxlbWVudCk7CisgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTihyZXN1bHQuaXNOZXdFbnRyeSk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnJl
bW92ZVNWR1VzZUVsZW1lbnQoU1ZHVXNlRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBib29sIGRp
ZFJlbW92ZSA9IG1fc3ZnVXNlRWxlbWVudHMucmVtb3ZlKCZlbGVtZW50KTsKKyAgICBSRUxFQVNF
X0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGRpZFJlbW92ZSk7Cit9CisKIGJvb2wg
RG9jdW1lbnQ6Omhhc1NWR1Jvb3ROb2RlKCkgY29uc3QKIHsKICAgICByZXR1cm4gZG9jdW1lbnRF
bGVtZW50KCkgJiYgZG9jdW1lbnRFbGVtZW50KCktPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnN2Z1Rh
Zyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDkyZTZmZWFhNDg0Li4zYTQ5ZjY3MmNlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKQEAgLTE1NCw2ICsxNTQsNyBAQCBjbGFzcyBSZW5kZXJWaWV3Owog
Y2xhc3MgUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s7CiBjbGFzcyBTVkdEb2N1bWVudEV4
dGVuc2lvbnM7CiBjbGFzcyBTVkdTVkdFbGVtZW50OworY2xhc3MgU1ZHVXNlRWxlbWVudDsKIGNs
YXNzIFNXQ2xpZW50Q29ubmVjdGlvbjsKIGNsYXNzIFNjcmlwdEVsZW1lbnREYXRhOwogY2xhc3Mg
U2NyaXB0TW9kdWxlTG9hZGVyOwpAQCAtMTA3Nyw2ICsxMDc4LDEwIEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCBjb25zdCBTVkdEb2N1bWVudEV4dGVuc2lvbnMqIHN2Z0V4dGVuc2lvbnMo
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBTVkdEb2N1bWVudEV4dGVuc2lvbnMmIGFjY2Vzc1NWR0V4
dGVuc2lvbnMoKTsKIAorICAgIHZvaWQgYWRkU1ZHVXNlRWxlbWVudChTVkdVc2VFbGVtZW50Jik7
CisgICAgdm9pZCByZW1vdmVTVkdVc2VFbGVtZW50KFNWR1VzZUVsZW1lbnQmKTsKKyAgICBIYXNo
U2V0PFNWR1VzZUVsZW1lbnQqPiBjb25zdCBzdmdVc2VFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJu
IG1fc3ZnVXNlRWxlbWVudHM7IH0KKwogICAgIHZvaWQgaW5pdFNlY3VyaXR5Q29udGV4dCgpOwog
ICAgIHZvaWQgaW5pdENvbnRlbnRTZWN1cml0eVBvbGljeSgpOwogCkBAIC0xNjEyLDYgKzE2MTcs
NyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxYUGF0aEV2YWx1YXRvcj4gbV94cGF0aEV2YWx1YXRv
cjsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdEb2N1bWVudEV4dGVuc2lvbnM+IG1fc3ZnRXh0
ZW5zaW9uczsKKyAgICBIYXNoU2V0PFNWR1VzZUVsZW1lbnQqPiBtX3N2Z1VzZUVsZW1lbnRzOwog
CiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIFZlY3RvcjxBbm5vdGF0ZWRSZWdp
b25WYWx1ZT4gbV9hbm5vdGF0ZWRSZWdpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDQy
Y2IzNGE1OWViLi5hZGI2N2MxMjQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMzQ5LDEx
ICszNDksNiBAQCBSZWY8Tm9kZT4gRWxlbWVudDo6Y2xvbmVOb2RlSW50ZXJuYWwoRG9jdW1lbnQm
IHRhcmdldERvY3VtZW50LCBDbG9uaW5nT3BlcmF0aW9uCiBSZWY8RWxlbWVudD4gRWxlbWVudDo6
Y2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKERvY3VtZW50JiB0YXJnZXREb2N1bWVudCkKIHsKICAg
ICBSZWY8RWxlbWVudD4gY2xvbmUgPSBjbG9uZUVsZW1lbnRXaXRob3V0Q2hpbGRyZW4odGFyZ2V0
RG9jdW1lbnQpOwotCi0gICAgLy8gSXQncyBzYWZlIHRvIGRpc3BhdGNoIGV2ZW50cyBvbiB0aGUg
Y2xvbmVkIG5vZGUgc2luY2UgYXV0aG9yIHNjcmlwdHMgaGF2ZSBubyBhY2Nlc3MgdG8gaXQgeWV0
LgotICAgIC8vIFRoaXMgaXMgbmVlZGVkIGZvciBTVkdVc2VFbGVtZW50OjpjbG9uZVRhcmdldC4K
LSAgICBOb0V2ZW50RGlzcGF0Y2hBc3NlcnRpb246OkV2ZW50QWxsb3dlZFNjb3BlIGFsbG93ZWRT
Y29wZShjbG9uZS5nZXQoKSk7Ci0KICAgICBjbG9uZUNoaWxkTm9kZXMoY2xvbmUpOwogICAgIHJl
dHVybiBjbG9uZTsKIH0KQEAgLTM2MiwxMCArMzU3LDYgQEAgUmVmPEVsZW1lbnQ+IEVsZW1lbnQ6
OmNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbihEb2N1bWVudCYgdGFyZ2V0RG9jdW1lbnQpCiB7
CiAgICAgUmVmPEVsZW1lbnQ+IGNsb25lID0gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNB
bmRDaGlsZHJlbih0YXJnZXREb2N1bWVudCk7CiAKLSAgICAvLyBJdCdzIHNhZmUgdG8gZGlzcGF0
Y2ggZXZlbnRzIG9uIHRoZSBjbG9uZWQgbm9kZSBzaW5jZSBhdXRob3Igc2NyaXB0cyBoYXZlIG5v
IGFjY2VzcyB0byBpdCB5ZXQuCi0gICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIFNWR1VzZUVsZW1l
bnQ6OmNsb25lVGFyZ2V0LgotICAgIE5vRXZlbnREaXNwYXRjaEFzc2VydGlvbjo6RXZlbnRBbGxv
d2VkU2NvcGUgYWxsb3dlZFNjb3BlKGNsb25lLmdldCgpKTsKLQogICAgIC8vIFRoaXMgd2lsbCBj
YXRjaCBIVE1MIGVsZW1lbnRzIGluIHRoZSB3cm9uZyBuYW1lc3BhY2UgdGhhdCBhcmUgbm90IGNv
cnJlY3RseSBjb3BpZWQuCiAgICAgLy8gVGhpcyBpcyBhIHNhbml0eSBjaGVjayBhcyBIVE1MIG92
ZXJsb2FkcyBzb21lIG9mIHRoZSBET00gbWV0aG9kcy4KICAgICBBU1NFUlQoaXNIVE1MRWxlbWVu
dCgpID09IGNsb25lLT5pc0hUTUxFbGVtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVUcmVlUmVzb2x2ZXIuY3BwCmluZGV4IDMzM2U0MmE3ZTJiLi43Y2FhYzk0Yzk2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcApAQCAtNDExLDkgKzQxMSw2
IEBAIHZvaWQgVHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9zZWRUcmVlKCkKICAgICBhdXRvIGl0
ID0gZGVzY2VuZGFudHMuYmVnaW4oKTsKICAgICBhdXRvIGVuZCA9IGRlc2NlbmRhbnRzLmVuZCgp
OwogCi0gICAgLy8gRklYTUU6IFNWRyA8dXNlPiBlbGVtZW50IG1heSBjYXVzZSB0cmVlIG11dGF0
aW9ucyBkdXJpbmcgc3R5bGUgcmVjYWxjLgotICAgIGl0LmRyb3BBc3NlcnRpb25zKCk7Ci0KICAg
ICB3aGlsZSAoaXQgIT0gZW5kKSB7CiAgICAgICAgIHBvcFBhcmVudHNUb0RlcHRoKGl0LmRlcHRo
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggMDU4ODEzYWFkYzAu
LjhlYzg3ZWE1OGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0xMDgs
NiArMTA4LDggQEAgTm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgU1ZHVXNlRWxlbWVu
dDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHkKIHsKICAgICBTVkdHcmFwaGljc0Vs
ZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKGluc2VydGlvblR5cGUsIHBhcmVudE9mSW5zZXJ0
ZWRUcmVlKTsKICAgICBpZiAoaW5zZXJ0aW9uVHlwZS5jb25uZWN0ZWRUb0RvY3VtZW50KSB7Cisg
ICAgICAgIGlmIChtX3NoYWRvd1RyZWVOZWVkc1VwZGF0ZSkKKyAgICAgICAgICAgIGRvY3VtZW50
KCkuYWRkU1ZHVXNlRWxlbWVudCgqdGhpcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQ6Omluc2VydGVkSW50b0RvY3VtZW50KHRoaXMpOwogICAgICAgICBpbnZhbGlkYXRl
U2hhZG93VHJlZSgpOwogICAgICAgICB1cGRhdGVFeHRlcm5hbERvY3VtZW50KCk7CkBAIC0xMTcs
OSArMTE5LDE3IEBAIE5vZGU6Okluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IFNWR1VzZUVsZW1l
bnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5CiAKIHZvaWQgU1ZHVXNlRWxlbWVu
dDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwgQ29udGFpbmVy
Tm9kZSYgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSkKIHsKKyAgICAvLyBDaGVjayBtX3NoYWRvd1Ry
ZWVOZWVkc1VwZGF0ZSBiZWZvcmUgY2FsbGluZyBTVkdFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2Vz
dG9yIHdoaWNoIGNhbGxzIFNWR0VsZW1lbnQ6OmludmFsaWRhdGVJbnN0YW5jZXMKKyAgICAvLyBh
bmQgU1ZHVXNlRWxlbWVudDo6dXBkYXRlRXh0ZXJuYWxEb2N1bWVudCB3aGljaCBjYWxscyBpbnZh
bGlkYXRlU2hhZG93VHJlZSgpLgorICAgIGlmIChyZW1vdmFsVHlwZS5kaXNjb25uZWN0ZWRGcm9t
RG9jdW1lbnQpIHsKKyAgICAgICAgaWYgKG1fc2hhZG93VHJlZU5lZWRzVXBkYXRlKQorICAgICAg
ICAgICAgZG9jdW1lbnQoKS5yZW1vdmVTVkdVc2VFbGVtZW50KCp0aGlzKTsKKyAgICB9CiAgICAg
U1ZHR3JhcGhpY3NFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKHJlbW92YWxUeXBlLCBvbGRQ
YXJlbnRPZlJlbW92ZWRUcmVlKTsKLSAgICBjbGVhclNoYWRvd1RyZWUoKTsKLSAgICB1cGRhdGVF
eHRlcm5hbERvY3VtZW50KCk7CisgICAgaWYgKHJlbW92YWxUeXBlLmRpc2Nvbm5lY3RlZEZyb21E
b2N1bWVudCkgeworICAgICAgICBjbGVhclNoYWRvd1RyZWUoKTsKKyAgICAgICAgdXBkYXRlRXh0
ZXJuYWxEb2N1bWVudCgpOworICAgIH0KIH0KIAogaW5saW5lIERvY3VtZW50KiBTVkdVc2VFbGVt
ZW50OjpleHRlcm5hbERvY3VtZW50KCkgY29uc3QKQEAgLTE4MSwxNCArMTkxLDYgQEAgdm9pZCBT
VkdVc2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQogICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRy
TmFtZSk7CiB9CiAKLXZvaWQgU1ZHVXNlRWxlbWVudDo6d2lsbFJlY2FsY1N0eWxlKFN0eWxlOjpD
aGFuZ2UgY2hhbmdlKQotewotICAgIC8vIEZJWE1FOiBTaGFkb3cgdHJlZSBzaG91bGQgYmUgdXBk
YXRlZCBiZWZvcmUgc3R5bGUgcmVjYWxjLgotICAgIGlmIChtX3NoYWRvd1RyZWVOZWVkc1VwZGF0
ZSkKLSAgICAgICAgdXBkYXRlU2hhZG93VHJlZSgpOwotICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6
d2lsbFJlY2FsY1N0eWxlKGNoYW5nZSk7Ci19Ci0KIHN0YXRpYyBIYXNoU2V0PEF0b21pY1N0cmlu
Zz4gY3JlYXRlQWxsb3dlZEVsZW1lbnRTZXQoKQogewogICAgIC8vIFNwZWM6ICJBbnkgJ3N2Zycs
ICdzeW1ib2wnLCAnZycsIGdyYXBoaWNzIGVsZW1lbnQgb3Igb3RoZXIgJ3VzZScgaXMgcG90ZW50
aWFsbHkgYSB0ZW1wbGF0ZSBvYmplY3QgdGhhdCBjYW4gYmUgcmUtdXNlZApAQCAtMjM0LDcgKzIz
NiwxMiBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OnVwZGF0ZVNoYWRvd1RyZWUoKQogICAgIC8vIEZJ
WE1FOiBJdCdzIGV4cGVuc2l2ZSB0byByZS1jbG9uZSB0aGUgZW50aXJlIHRyZWUgZXZlcnkgdGlt
ZS4gV2Ugc2hvdWxkIGZpbmQgYSBtb3JlIGVmZmljaWVudCB3YXkgdG8gaGFuZGxlIHRoaXMuCiAg
ICAgY2xlYXJTaGFkb3dUcmVlKCk7CiAKLSAgICBpZiAoaXNJblNoYWRvd1RyZWUoKSB8fCAhaXND
b25uZWN0ZWQoKSkKKyAgICBpZiAoIWlzQ29ubmVjdGVkKCkpCisgICAgICAgIHJldHVybjsKKyAg
ICBkb2N1bWVudCgpLnJlbW92ZVNWR1VzZUVsZW1lbnQoKnRoaXMpOworCisgICAgLy8gRklYTUU6
IEVuYWJsZSBTVkcgdXNlIGVsZW1lbnRzIGluIHNoYWRvdyB0cmVlcy4KKyAgICBpZiAoaXNJblNo
YWRvd1RyZWUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgU3RyaW5nIHRhcmdldElEOwpAQCAt
MjQ1LDkgKzI1Miw3IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6dXBkYXRlU2hhZG93VHJlZSgpCiAg
ICAgfQogCiAgICAgewotICAgICAgICAvLyBTYWZlIGJlY2F1c2UgdGhlIGNsb25lZCBzaGFkb3cg
dHJlZSBoYXMgbmV2ZXIgYmVlbiBleHBvc2VkIHRvIGF1dGhvciBzY3JpcHRzLgogICAgICAgICBh
dXRvJiBzaGFkb3dSb290ID0gZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwotICAgICAgICBO
b0V2ZW50RGlzcGF0Y2hBc3NlcnRpb246OkV2ZW50QWxsb3dlZFNjb3BlIHNjb3BlKHNoYWRvd1Jv
b3QpOwogICAgICAgICBjbG9uZVRhcmdldChzaGFkb3dSb290LCAqdGFyZ2V0KTsKICAgICAgICAg
ZXhwYW5kVXNlRWxlbWVudHNJblNoYWRvd1RyZWUoKTsKICAgICAgICAgZXhwYW5kU3ltYm9sRWxl
bWVudHNJblNoYWRvd1RyZWUoKTsKQEAgLTQzNiw4ICs0NDEsNiBAQCBTVkdFbGVtZW50KiBTVkdV
c2VFbGVtZW50OjpmaW5kVGFyZ2V0KFN0cmluZyogdGFyZ2V0SUQpIGNvbnN0CiB2b2lkIFNWR1Vz
ZUVsZW1lbnQ6OmNsb25lVGFyZ2V0KENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgU1ZHRWxlbWVu
dCYgdGFyZ2V0KSBjb25zdAogewogICAgIFJlZjxTVkdFbGVtZW50PiB0YXJnZXRDbG9uZSA9IHN0
YXRpY19jYXN0PFNWR0VsZW1lbnQmPih0YXJnZXQuY2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKGRv
Y3VtZW50KCkpLmdldCgpKTsKLSAgICAvLyBTYWZlIGJlY2F1c2UgdGhlIG5ld3kgY2xvbmVkIG5v
ZGVzIGluIHRoZSBzaGFkb3cgdHJlZSBoYXMgbm90IGJlZW4gZXhwb3NlZCB0byBhdXRob3Igc2Ny
aXB0cyB5ZXQuCi0gICAgTm9FdmVudERpc3BhdGNoQXNzZXJ0aW9uOjpFdmVudEFsbG93ZWRTY29w
ZSBzY29wZSh0YXJnZXRDbG9uZSk7CiAgICAgYXNzb2NpYXRlQ2xvbmVzV2l0aE9yaWdpbmFscyh0
YXJnZXRDbG9uZS5nZXQoKSwgdGFyZ2V0KTsKICAgICByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNG
cm9tU3VidHJlZSh0YXJnZXRDbG9uZS5nZXQoKSk7CiAgICAgcmVtb3ZlU3ltYm9sRWxlbWVudHNG
cm9tU3VidHJlZSh0YXJnZXRDbG9uZS5nZXQoKSk7CkBAIC00NzAsOCArNDczLDYgQEAgdm9pZCBT
VkdVc2VFbGVtZW50OjpleHBhbmRVc2VFbGVtZW50c0luU2hhZG93VHJlZSgpIGNvbnN0CiAgICAg
ICAgIC8vICd1c2UnIGVsZW1lbnQgZXhjZXB0IGZvciB4LCB5LCB3aWR0aCwgaGVpZ2h0IGFuZCB4
bGluazpocmVmIGFyZSB0cmFuc2ZlcnJlZCB0byB0aGUgZ2VuZXJhdGVkICdnJyBlbGVtZW50Lgog
CiAgICAgICAgIGF1dG8gcmVwbGFjZW1lbnRDbG9uZSA9IFNWR0dFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQoKSk7Ci0gICAgICAgIC8vIFNhZmUgYmVjYXVzZSB0aGUgdXNlIGVsZW1lbnQncyBzaGFk
b3cgdHJlZSBpcyBub3QgZXhwb3NlZCB0byBhdXRob3Igc2NyaXB0cywgYW5kIHdlIGRvbid0IGZp
cmUgc3luY2hyb25vdXMgZXZlbnRzIGR1cmluZyBsYXlvdXQgJiBET00gbGF5b3V0LgotICAgICAg
ICBOb0V2ZW50RGlzcGF0Y2hBc3NlcnRpb246OkV2ZW50QWxsb3dlZFNjb3BlIHNjb3BlKHJlcGxh
Y2VtZW50Q2xvbmUpOwogCiAgICAgICAgIGNsb25lRGF0YUFuZENoaWxkcmVuKHJlcGxhY2VtZW50
Q2xvbmUuZ2V0KCksIG9yaWdpbmFsQ2xvbmUpOwogCkBAIC01MDYsOCArNTA3LDYgQEAgdm9pZCBT
VkdVc2VFbGVtZW50OjpleHBhbmRTeW1ib2xFbGVtZW50c0luU2hhZG93VHJlZSgpIGNvbnN0CiAg
ICAgICAgIC8vICdzdmcnIGVsZW1lbnQgd2lsbCB1c2UgdmFsdWVzIG9mIDEwMCUgZm9yIHRoZXNl
IGF0dHJpYnV0ZXMuCiAKICAgICAgICAgYXV0byByZXBsYWNlbWVudENsb25lID0gU1ZHU1ZHRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgICAgICAvLyBTYWZlIGJlY2F1c2UgdGhlIG5l
d2x5IGNyZWF0ZWQgU1ZHIGVsZW1lbnQgYW5kIHRoZSBuZXdseSBjcmVhdGVkIHNoYWRvdyB0cmVl
IGhhcyBub3QgYmVlbiBleHBvc2VkIHRvIGF1dGhvciBzY3JpcHRzIHlldC4KLSAgICAgICAgTm9F
dmVudERpc3BhdGNoQXNzZXJ0aW9uOjpFdmVudEFsbG93ZWRTY29wZSBzY29wZShyZXBsYWNlbWVu
dENsb25lKTsKICAgICAgICAgY2xvbmVEYXRhQW5kQ2hpbGRyZW4ocmVwbGFjZW1lbnRDbG9uZS5n
ZXQoKSwgb3JpZ2luYWxDbG9uZSk7CiAKICAgICAgICAgb3JpZ2luYWxDbG9uZS5wYXJlbnROb2Rl
KCktPnJlcGxhY2VDaGlsZChyZXBsYWNlbWVudENsb25lLCBvcmlnaW5hbENsb25lKTsKQEAgLTUz
Myw2ICs1MzIsOCBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OmludmFsaWRhdGVTaGFkb3dUcmVlKCkK
ICAgICBtX3NoYWRvd1RyZWVOZWVkc1VwZGF0ZSA9IHRydWU7CiAgICAgaW52YWxpZGF0ZVN0eWxl
QW5kUmVuZGVyZXJzRm9yU3VidHJlZSgpOwogICAgIGludmFsaWRhdGVEZXBlbmRlbnRTaGFkb3dU
cmVlcygpOworICAgIGlmIChpc0Nvbm5lY3RlZCgpKQorICAgICAgICBkb2N1bWVudCgpLmFkZFNW
R1VzZUVsZW1lbnQoKnRoaXMpOwogfQogCiB2b2lkIFNWR1VzZUVsZW1lbnQ6OmludmFsaWRhdGVE
ZXBlbmRlbnRTaGFkb3dUcmVlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VXNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAppbmRleCAz
MWY2NDRkMTc4ZC4uZWY5ZGM5OGU2ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdVc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaApA
QCAtNTAsNiArNTAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZHVXNlRWxlbWVudCgpOwog
CiAgICAgdm9pZCBpbnZhbGlkYXRlU2hhZG93VHJlZSgpOworICAgIGJvb2wgc2hhZG93VHJlZU5l
ZWRzVXBkYXRlKCkgY29uc3QgeyByZXR1cm4gbV9zaGFkb3dUcmVlTmVlZHNVcGRhdGU7IH0KKyAg
ICB2b2lkIHVwZGF0ZVNoYWRvd1RyZWUoKTsKIAogICAgIFJlbmRlckVsZW1lbnQqIHJlbmRlcmVy
Q2xpcENoaWxkKCkgY29uc3Q7CiAKQEAgLTYyLDcgKzY0LDYgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGJ1aWxkUGVuZGluZ1Jlc291cmNlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlk
ZTsKLSAgICB2b2lkIHdpbGxSZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlKSBvdmVycmlkZTsKICAg
ICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0
eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIFBhdGggdG9D
bGlwUGF0aCgpIG92ZXJyaWRlOwogICAgIGJvb2wgaGF2ZUxvYWRlZFJlcXVpcmVkUmVzb3VyY2Vz
KCkgb3ZlcnJpZGU7CkBAIC04MSw3ICs4Miw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbG9uZVRh
cmdldChDb250YWluZXJOb2RlJiwgU1ZHRWxlbWVudCYgdGFyZ2V0KSBjb25zdDsKICAgICBSZWZQ
dHI8U1ZHRWxlbWVudD4gdGFyZ2V0Q2xvbmUoKSBjb25zdDsKIAotICAgIHZvaWQgdXBkYXRlU2hh
ZG93VHJlZSgpOwogICAgIHZvaWQgZXhwYW5kVXNlRWxlbWVudHNJblNoYWRvd1RyZWUoKSBjb25z
dDsKICAgICB2b2lkIGV4cGFuZFN5bWJvbEVsZW1lbnRzSW5TaGFkb3dUcmVlKCkgY29uc3Q7CiAg
ICAgdm9pZCB0cmFuc2ZlckV2ZW50TGlzdGVuZXJzVG9TaGFkb3dUcmVlKCkgY29uc3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>