<?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>186954</bug_id>
          
          <creation_ts>2018-06-22 17:47:23 -0700</creation_ts>
          <short_desc>We need to have a getDirectConcurrently for use in the compilers</short_desc>
          <delta_ts>2018-06-23 03:48:07 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1435720</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-06-22 17:47:23 -0700</bug_when>
    <thetext>ObjectPropertyCondition and Graph::tryGetConstantProperty should lock the structure before calling getDirect</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435722</commentid>
    <comment_count>1</comment_count>
      <attachid>343405</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-06-22 17:52:40 -0700</bug_when>
    <thetext>Created attachment 343405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435725</commentid>
    <comment_count>2</comment_count>
      <attachid>343405</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-06-22 17:54:36 -0700</bug_when>
    <thetext>Comment on attachment 343405
Patch

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

&gt; Source/JavaScriptCore/bytecode/PropertyCondition.cpp:400
&gt; +        // If we are flattening the structure at this time we might shrink the butterfly and read garbage.
&gt; +        ConcurrentJSLocker locker(structure-&gt;lock());
&gt; +        if (!structure-&gt;isValidOffset(offset()))
&gt; +            return PropertyCondition();
&gt; +        value = base-&gt;getDirect(offset());

Don&apos;t we know if we&apos;re doing this concurrently or not? Maybe just lock in that scenario?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435727</commentid>
    <comment_count>3</comment_count>
      <attachid>343405</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-06-22 17:55:34 -0700</bug_when>
    <thetext>Comment on attachment 343405
Patch

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

&gt;&gt; Source/JavaScriptCore/bytecode/PropertyCondition.cpp:400
&gt;&gt; +        value = base-&gt;getDirect(offset());
&gt; 
&gt; Don&apos;t we know if we&apos;re doing this concurrently or not? Maybe just lock in that scenario?

Fair point, I&apos;ll make that change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435730</commentid>
    <comment_count>4</comment_count>
      <attachid>343405</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-06-22 18:08:14 -0700</bug_when>
    <thetext>Comment on attachment 343405
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/bytecode/PropertyCondition.cpp:400
&gt;&gt;&gt; +        value = base-&gt;getDirect(offset());
&gt;&gt; 
&gt;&gt; Don&apos;t we know if we&apos;re doing this concurrently or not? Maybe just lock in that scenario?
&gt; 
&gt; Fair point, I&apos;ll make that change.

Actually, we do a lot of things using the concurrent versions of methods inside PropertyCondition when we are on the mutator. We should fix all of them in a more consistent way. I&apos;m just gonna file a bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435747</commentid>
    <comment_count>5</comment_count>
      <attachid>343410</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-06-22 18:37:00 -0700</bug_when>
    <thetext>Created attachment 343410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435748</commentid>
    <comment_count>6</comment_count>
      <attachid>343411</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-06-22 18:37:48 -0700</bug_when>
    <thetext>Created attachment 343411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435749</commentid>
    <comment_count>7</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-06-22 18:38:32 -0700</bug_when>
    <thetext>rdar://problem/41385437</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435787</commentid>
    <comment_count>8</comment_count>
      <attachid>343411</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-06-22 23:15:47 -0700</bug_when>
    <thetext>Comment on attachment 343411
Patch

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

r=me.  If you haven&apos;t already done so, I think you should also remove the &quot;if (!value)&quot; check I added in PropertyCondition::isValidValueForAttributes() due to https://bugs.webkit.org/show_bug.cgi?id=186943.  Your changes in attemptToMakeEquivalenceWithoutBarrier() makes that unnecessary.

&gt; Source/JavaScriptCore/dfg/DFGGraph.cpp:1268
&gt; +    // object pointer such that the inlinecaches told us that the object had a structure that it

missing space between &quot;inline&quot; and &quot;caches&quot;.

&gt; Source/JavaScriptCore/dfg/DFGGraph.cpp:1270
&gt; +    // caches had alraedy seen. And then the processor reordered the stores. Seems unlikely and

/alraedy/already/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435814</commentid>
    <comment_count>9</comment_count>
      <attachid>343411</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-06-23 03:46:12 -0700</bug_when>
    <thetext>Comment on attachment 343411
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGGraph.cpp:1268
&gt;&gt; +    // object pointer such that the inlinecaches told us that the object had a structure that it
&gt; 
&gt; missing space between &quot;inline&quot; and &quot;caches&quot;.

Fixed

&gt;&gt; Source/JavaScriptCore/dfg/DFGGraph.cpp:1270
&gt;&gt; +    // caches had alraedy seen. And then the processor reordered the stores. Seems unlikely and
&gt; 
&gt; /alraedy/already/.

Fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435815</commentid>
    <comment_count>10</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-06-23 03:47:11 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #8)
&gt; r=me.  If you haven&apos;t already done so, I think you should also remove the
&gt; &quot;if (!value)&quot; check I added in
&gt; PropertyCondition::isValidValueForAttributes() due to
&gt; https://bugs.webkit.org/show_bug.cgi?id=186943.  Your changes in
&gt; attemptToMakeEquivalenceWithoutBarrier() makes that unnecessary.

I think I&apos;m just going to undo my change to attemptToMakeEquivalenceWithoutBarrier() instead. That check makes more sense in isValidValueForAttributes().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435816</commentid>
    <comment_count>11</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-06-23 03:48:07 -0700</bug_when>
    <thetext>Committed r233124: &lt;https://trac.webkit.org/changeset/233124&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343405</attachid>
            <date>2018-06-22 17:52:40 -0700</date>
            <delta_ts>2018-06-22 18:36:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186954-20180622175237.patch</filename>
            <type>text/plain</type>
            <size>5591</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzMTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OTQyZDFhOTMyNWI3YzFhZTkyNjNiZDZmOTE3ZmM3OTM4MDZiZGI4Li5hMzRlZDdiMmNiNjQ2YzNj
NjM0MTAyYWY4MTgyMzIxNjVlY2ZlMTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxOC0wNi0yMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBhbmQgR3JhcGg6OnRyeUdl
dENvbnN0YW50UHJvcGVydHkgc2hvdWxkIGxvY2sgdGhlIHN0cnVjdHVyZSBiZWZvcmUgY2FsbGlu
ZyBnZXREaXJlY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4Njk1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEl0IHVzZWQgdG8gYmUgdGhhdCB0aGUgcHJvcGVydHlTdG9yYWdlIG9mIGFuIG9iamVjdCBu
ZXZlciBzaHJ1bmsKKyAgICAgICAgc28gaWYgeW91IGNhbGxlZCBnZXREaXJlY3Qgd2l0aCBzb21l
IG9mZnNldCBpdCB3b3VsZCBuZXZlciBiZSBhbgorICAgICAgICBPT0IgcmVhZC4gSG93ZXZlciwg
dGhpcyBwcm9wZXJ0eSBzdG9yYWdlIGNhbiBzaHJpbmsgd2hlbiBjYWxsaW5nCisgICAgICAgIGZs
YXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlLiBGb3J0dW5hdGVseSwgZmxhdHRlbkRpY3Rpb25hcnlT
dHJ1Y3R1cmUKKyAgICAgICAgaG9sZHMgdGhlIFN0cnVjdHVyZSdzIENvbmN1cnJlbnRKU0xvY2sg
d2hpbGUgc2hyaW5raW5nLiBUaGlzIHBhdGNoLAorICAgICAgICBjaGFuZ2VzIE9iamVjdFByb3Bl
cnR5Q29uZGl0aW9uOjphdHRlbXB0VG9NYWtlRXF1aXZhbGVuY2VXaXRob3V0QmFycmllcgorICAg
ICAgICBhbmQgR3JhcGg6OnRyeUdldENvbnN0YW50UHJvcGVydHkgdG8gdXNlIHRoZSBTdHJ1Y3R1
cmUncworICAgICAgICBDb25jdXJyZW50SlNMb2NrIHdoZW4gYXR0ZW1wdGluZyB0byBsb2FkIGFu
IG9mZnNldCBmcm9tIGFuIG9iamVjdC4KKworICAgICAgICAqIGJ5dGVjb2RlL1Byb3BlcnR5Q29u
ZGl0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlDb25kaXRpb246OmF0dGVtcHRUb01h
a2VFcXVpdmFsZW5jZVdpdGhvdXRCYXJyaWVyIGNvbnN0KToKKyAgICAgICAgKiBkZmcvREZHR3Jh
cGguY3BwOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjp0cnlHZXRDb25zdGFudFByb3BlcnR5
KToKKwogMjAxOC0wNi0yMiAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBlbnN1cmVXcml0YWJsZVggc2hvdWxkIG9ubHkgY29udmVydCBhd2F5IGZyb20gQ29XIHdo
ZW4gaXQgd2lsbCBzdWNjZWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvUHJvcGVydHlDb25kaXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1Byb3BlcnR5Q29uZGl0aW9uLmNwcAppbmRleCA1MWQ2MWMyMTczYWI0M2EyMDRlNjk5YThl
YTkzNDQzYWNmNzFmN2QwLi5hMGNlMWJiMDllOWQ4N2JmZTYwYWZiNDY4M2EzMzI2MmQ2ZTYxMmEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25k
aXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9wZXJ0eUNv
bmRpdGlvbi5jcHAKQEAgLTM5MCw5ICszOTAsMTUgQEAgYm9vbCBQcm9wZXJ0eUNvbmRpdGlvbjo6
aXNWYWxpZFZhbHVlRm9yUHJlc2VuY2UoVk0mIHZtLCBKU1ZhbHVlIHZhbHVlKSBjb25zdAogUHJv
cGVydHlDb25kaXRpb24gUHJvcGVydHlDb25kaXRpb246OmF0dGVtcHRUb01ha2VFcXVpdmFsZW5j
ZVdpdGhvdXRCYXJyaWVyKFZNJiB2bSwgSlNPYmplY3QqIGJhc2UpIGNvbnN0CiB7CiAgICAgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUgPSBiYXNlLT5zdHJ1Y3R1cmUodm0pOwotICAgIGlmICghc3RydWN0
dXJlLT5pc1ZhbGlkT2Zmc2V0KG9mZnNldCgpKSkKLSAgICAgICAgcmV0dXJuIFByb3BlcnR5Q29u
ZGl0aW9uKCk7Ci0gICAgSlNWYWx1ZSB2YWx1ZSA9IGJhc2UtPmdldERpcmVjdChvZmZzZXQoKSk7
CisKKyAgICBKU1ZhbHVlIHZhbHVlOworICAgIHsKKyAgICAgICAgLy8gSWYgd2UgYXJlIGZsYXR0
ZW5pbmcgdGhlIHN0cnVjdHVyZSBhdCB0aGlzIHRpbWUgd2UgbWlnaHQgc2hyaW5rIHRoZSBidXR0
ZXJmbHkgYW5kIHJlYWQgZ2FyYmFnZS4KKyAgICAgICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tl
cihzdHJ1Y3R1cmUtPmxvY2soKSk7CisgICAgICAgIGlmICghc3RydWN0dXJlLT5pc1ZhbGlkT2Zm
c2V0KG9mZnNldCgpKSkKKyAgICAgICAgICAgIHJldHVybiBQcm9wZXJ0eUNvbmRpdGlvbigpOwor
ICAgICAgICB2YWx1ZSA9IGJhc2UtPmdldERpcmVjdChvZmZzZXQoKSk7CisgICAgfQogICAgIGlm
ICghaXNWYWxpZFZhbHVlRm9yUHJlc2VuY2Uodm0sIHZhbHVlKSkKICAgICAgICAgcmV0dXJuIFBy
b3BlcnR5Q29uZGl0aW9uKCk7CiAgICAgcmV0dXJuIGVxdWl2YWxlbmNlV2l0aG91dEJhcnJpZXIo
dWlkKCksIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
R3JhcGguY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKaW5kZXgg
OTVjNjQxMjk3OWQzNTc3MzYwOGJhYzJhOWNkOWY3YzM1NTNkOGY4Mi4uM2QwMDZjNDg1NzlmN2Fh
YTJhZWZiOTcyOWVjZWU1MTBlNDI2MTg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHcmFwaC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdH
cmFwaC5jcHAKQEAgLTEyNDQsNyArMTI0NCw3IEBAIEpTVmFsdWUgR3JhcGg6OnRyeUdldENvbnN0
YW50UHJvcGVydHkoCiAgICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RydWN0dXJlU2V0LnNp
emUoKTsgaS0tOykgewogICAgICAgICBSZWdpc3RlcmVkU3RydWN0dXJlIHN0cnVjdHVyZSA9IHN0
cnVjdHVyZVNldFtpXTsKLSAgICAgICAgCisKICAgICAgICAgV2F0Y2hwb2ludFNldCogc2V0ID0g
c3RydWN0dXJlLT5wcm9wZXJ0eVJlcGxhY2VtZW50V2F0Y2hwb2ludFNldChvZmZzZXQpOwogICAg
ICAgICBpZiAoIXNldCB8fCAhc2V0LT5pc1N0aWxsVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlKCk7CkBAIC0xMjYzLDIxICsxMjYzLDI3IEBAIEpTVmFsdWUgR3JhcGg6OnRyeUdl
dENvbnN0YW50UHJvcGVydHkoCiAgICAgLy8KICAgICAvLyBPbmUgYXJndW1lbnQgaW4gZmF2b3Ig
b2YgdGhpcyBjb2RlIGlzIHRoYXQgaXQgc2hvdWxkIGRlZmluaXRlbHkgd29yayBiZWNhdXNlIHRo
ZSBidXR0ZXJmbHkKICAgICAvLyBpcyBhbHdheXMgc2V0IGJlZm9yZSB0aGUgc3RydWN0dXJlLiBI
b3dldmVyLCB3ZSBkb24ndCBjdXJyZW50bHkgaGF2ZSBhIGZlbmNlIGJldHdlZW4gdGhvc2UKLSAg
ICAvLyBzdG9yZXMuIEl0J3Mgbm90IGNsZWFyIGlmIHRoaXMgbWF0dGVycywgaG93ZXZlci4gV2Ug
ZG9uJ3QgZXZlciBzaHJpbmsgdGhlIHByb3BlcnR5IHN0b3JhZ2UuCi0gICAgLy8gU28sIGZvciB0
aGlzIHRvIGZhaWwsIHlvdSdkIG5lZWQgYW4gYWNjZXNzIG9uIGEgY29uc3RhbnQgb2JqZWN0IHBv
aW50ZXIgc3VjaCB0aGF0IHRoZSBpbmxpbmUKLSAgICAvLyBjYWNoZXMgdG9sZCB1cyB0aGF0IHRo
ZSBvYmplY3QgaGFkIGEgc3RydWN0dXJlIHRoYXQgaXQgZGlkIG5vdCAqeWV0KiBoYXZlLCBhbmQg
dGhlbiBsYXRlciwKLSAgICAvLyB0aGUgb2JqZWN0IHRyYW5zaXRpb25lZCB0byB0aGF0IHN0cnVj
dHVyZSB0aGF0IHRoZSBpbmxpbmUgY2FjaGVzIGhhZCBhbHJhZWR5IHNlZW4uIEFuZCB0aGVuCi0g
ICAgLy8gdGhlIHByb2Nlc3NvciByZW9yZGVyZWQgdGhlIHN0b3Jlcy4gU2VlbXMgdW5saWtlbHkg
YW5kIGRpZmZpY3VsdCB0byB0ZXN0LiBJIGJlbGlldmUgdGhhdAotICAgIC8vIHRoaXMgaXMgd29y
dGggcmV2aXNpdGluZyBidXQgaXQgaXNuJ3Qgd29ydGggbG9zaW5nIHNsZWVwIG92ZXIuIEZpbGVk
OgorICAgIC8vIHN0b3Jlcy4gSXQncyBub3QgY2xlYXIgaWYgdGhpcyBtYXR0ZXJzLCBob3dldmVy
LiBXZSBvbmx5IHNocmluayB0aGUgcHJvcGVydHlTdG9yYWdlIHdoaWxlCisgICAgLy8gaG9sZGlu
ZyB0aGUgU3RydWN0dXJlJ3MgbG9jay4gU28sIGZvciB0aGlzIHRvIGZhaWwsIHlvdSdkIG5lZWQg
YW4gYWNjZXNzIG9uIGEgY29uc3RhbnQKKyAgICAvLyBvYmplY3QgcG9pbnRlciBzdWNoIHRoYXQg
dGhlIGlubGluZWNhY2hlcyB0b2xkIHVzIHRoYXQgdGhlIG9iamVjdCBoYWQgYSBzdHJ1Y3R1cmUg
dGhhdCBpdAorICAgIC8vIGRpZCBub3QgKnlldCogaGF2ZSwgYW5kIHRoZW4gbGF0ZXIsdGhlIG9i
amVjdCB0cmFuc2l0aW9uZWQgdG8gdGhhdCBzdHJ1Y3R1cmUgdGhhdCB0aGUgaW5saW5lCisgICAg
Ly8gY2FjaGVzIGhhZCBhbHJhZWR5IHNlZW4uIEFuZCB0aGVuIHRoZSBwcm9jZXNzb3IgcmVvcmRl
cmVkIHRoZSBzdG9yZXMuIFNlZW1zIHVubGlrZWx5IGFuZAorICAgIC8vIGRpZmZpY3VsdCB0byB0
ZXN0LiBJIGJlbGlldmUgdGhhdCB0aGlzIGlzIHdvcnRoIHJldmlzaXRpbmcgYnV0IGl0IGlzbid0
IHdvcnRoIGxvc2luZyBzbGVlcAorICAgIC8vIG92ZXIuIEZpbGVkOgogICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ2NDEKICAgICAvLwogICAgIC8vIEZv
ciBub3csIHdlIGp1c3QgZG8gdGhlIG1pbmltYWwgdGhpbmc6IGRlZmVuZCBhZ2FpbnN0IHRoZSBz
dHJ1Y3R1cmUgcmlnaHQgbm93IGJlaW5nCiAgICAgLy8gaW5jb21wYXRpYmxlIHdpdGggdGhlIGdl
dERpcmVjdCB3ZSdyZSB0cnlpbmcgdG8gZG8uIFRoZSBlYXNpZXN0IHdheSB0byBkbyB0aGF0IGlz
IHRvCiAgICAgLy8gZGV0ZXJtaW5lIGlmIHRoZSBzdHJ1Y3R1cmUgYmVsb25ncyB0byB0aGUgcHJv
dmVuIHNldC4KLSAgICAKLSAgICBpZiAoIXN0cnVjdHVyZVNldC50b1N0cnVjdHVyZVNldCgpLmNv
bnRhaW5zKG9iamVjdC0+c3RydWN0dXJlKG1fdm0pKSkKKworICAgIFN0cnVjdHVyZSogc3RydWN0
dXJlID0gb2JqZWN0LT5zdHJ1Y3R1cmUobV92bSk7CisgICAgaWYgKCFzdHJ1Y3R1cmVTZXQudG9T
dHJ1Y3R1cmVTZXQoKS5jb250YWlucyhzdHJ1Y3R1cmUpKQorICAgICAgICByZXR1cm4gSlNWYWx1
ZSgpOworCisgICAgLy8gSWYgdGhlIG11dGF0b3IgZGVjaWRlZCB0byBmbGF0dGVuIHRoZSBvYmpl
Y3QgaGVyZSB3ZSBtaWdodCBzaHJpbmsgdGhlIGJ1dHRlcmZseSBhbmQgdGh1cyByZWFkIGdhcmJh
Z2UuCisgICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcihzdHJ1Y3R1cmUtPmxvY2soKSk7Cisg
ICAgaWYgKCFzdHJ1Y3R1cmUtPmlzVmFsaWRPZmZzZXQob2Zmc2V0KSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWUoKTsKLSAgICAKICAgICByZXR1cm4gb2JqZWN0LT5nZXREaXJlY3Qob2Zmc2V0KTsK
IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343410</attachid>
            <date>2018-06-22 18:37:00 -0700</date>
            <delta_ts>2018-06-22 18:37:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186954-20180622183658.patch</filename>
            <type>text/plain</type>
            <size>8613</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzMTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OTQyZDFhOTMyNWI3YzFhZTkyNjNiZDZmOTE3ZmM3OTM4MDZiZGI4Li45M2Y3M2YyOWFmYzVlNzJl
NTRmYTFkZWZlODhiOWRlMDBhN2Q4YjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxOC0wNi0yMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBhbmQgR3JhcGg6OnRyeUdl
dENvbnN0YW50UHJvcGVydHkgc2hvdWxkIGxvY2sgdGhlIHN0cnVjdHVyZSBiZWZvcmUgY2FsbGlu
ZyBnZXREaXJlY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4Njk1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEl0IHVzZWQgdG8gYmUgdGhhdCB0aGUgcHJvcGVydHlTdG9yYWdlIG9mIGFuIG9iamVjdCBu
ZXZlciBzaHJ1bmsKKyAgICAgICAgc28gaWYgeW91IGNhbGxlZCBnZXREaXJlY3Qgd2l0aCBzb21l
IG9mZnNldCBpdCB3b3VsZCBuZXZlciBiZSBhbgorICAgICAgICBPT0IgcmVhZC4gSG93ZXZlciwg
dGhpcyBwcm9wZXJ0eSBzdG9yYWdlIGNhbiBzaHJpbmsgd2hlbiBjYWxsaW5nCisgICAgICAgIGZs
YXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlLiBGb3J0dW5hdGVseSwgZmxhdHRlbkRpY3Rpb25hcnlT
dHJ1Y3R1cmUKKyAgICAgICAgaG9sZHMgdGhlIFN0cnVjdHVyZSdzIENvbmN1cnJlbnRKU0xvY2sg
d2hpbGUgc2hyaW5raW5nLiBUaGlzIHBhdGNoLAorICAgICAgICBhZGRzIGEgZ2V0RGlyZWN0Q29u
Y3VycmVudGx5IHRoYXQgd2lsbCBzYWZlbHkgdHJ5IHRvIGxvYWQgZnJvbSB0aGUKKyAgICAgICAg
YnV0dGVyZmx5LgorCisgICAgICAgICogYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25T
ZXQuY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL1Byb3BlcnR5Q29uZGl0aW9uLmNwcDoKKyAgICAg
ICAgKEpTQzo6UHJvcGVydHlDb25kaXRpb246OmlzU3RpbGxWYWxpZEFzc3VtaW5nSW1wdXJlUHJv
cGVydHlXYXRjaHBvaW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlDb25kaXRpb246
OmF0dGVtcHRUb01ha2VFcXVpdmFsZW5jZVdpdGhvdXRCYXJyaWVyIGNvbnN0KToKKyAgICAgICAg
KiBkZmcvREZHR3JhcGguY3BwOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjp0cnlHZXRDb25z
dGFudFByb3BlcnR5KToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChK
U0M6OkpTT2JqZWN0OjpnZXREaXJlY3RDb25jdXJyZW50bHkgY29uc3QpOgorCiAyMDE4LTA2LTIy
ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIGVuc3VyZVdyaXRh
YmxlWCBzaG91bGQgb25seSBjb252ZXJ0IGF3YXkgZnJvbSBDb1cgd2hlbiBpdCB3aWxsIHN1Y2Nl
ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9w
ZXJ0eUNvbmRpdGlvblNldC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2Jq
ZWN0UHJvcGVydHlDb25kaXRpb25TZXQuY3BwCmluZGV4IDQ5Mzg5YzFhMTYzNTZjMTczYTQ4M2Zl
YTFhNzNkOTEyYTA2NGJmN2YuLjJkMTk2M2E0MjJlZTNjMzc2YjRmZDczYmNmNWVjMzY0Mjc2N2I1
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9w
ZXJ0eUNvbmRpdGlvblNldC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcApAQCAtMjIyLDcgKzIyMiw5IEBAIE9iamVj
dFByb3BlcnR5Q29uZGl0aW9uIGdlbmVyYXRlQ29uZGl0aW9uKAogICAgICAgICBQcm9wZXJ0eU9m
ZnNldCBvZmZzZXQgPSBzdHJ1Y3R1cmUtPmdldENvbmN1cnJlbnRseSh1aWQsIGF0dHJpYnV0ZXMp
OwogICAgICAgICBpZiAob2Zmc2V0ID09IGludmFsaWRPZmZzZXQpCiAgICAgICAgICAgICByZXR1
cm4gT2JqZWN0UHJvcGVydHlDb25kaXRpb24oKTsKLSAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IG9i
amVjdC0+Z2V0RGlyZWN0KG9mZnNldCk7CisgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBvYmplY3Qt
PmdldERpcmVjdENvbmN1cnJlbnRseShzdHJ1Y3R1cmUsIG9mZnNldCk7CisgICAgICAgIGlmICgh
dmFsdWUpCisgICAgICAgICAgICByZXR1cm4gT2JqZWN0UHJvcGVydHlDb25kaXRpb24oKTsKICAg
ICAgICAgcmVzdWx0ID0gT2JqZWN0UHJvcGVydHlDb25kaXRpb246OmVxdWl2YWxlbmNlKHZtLCBv
d25lciwgb2JqZWN0LCB1aWQsIHZhbHVlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb3BlcnR5Q29uZGl0aW9uLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9wZXJ0eUNvbmRpdGlvbi5jcHAK
aW5kZXggNTFkNjFjMjE3M2FiNDNhMjA0ZTY5OWE4ZWE5MzQ0M2FjZjcxZjdkMC4uMTRjNTUzNDUw
OTEyMDdjNzg4MDViYmM2ZmRhNzYzMGNjYjkxMTUyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1Byb3BlcnR5Q29uZGl0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlDb25kaXRpb24uY3BwCkBAIC0yMzcsNyArMjM3
LDcgQEAgYm9vbCBQcm9wZXJ0eUNvbmRpdGlvbjo6aXNTdGlsbFZhbGlkQXNzdW1pbmdJbXB1cmVQ
cm9wZXJ0eVdhdGNocG9pbnQoCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0K
IAotICAgICAgICBKU1ZhbHVlIGN1cnJlbnRWYWx1ZSA9IGJhc2UtPmdldERpcmVjdChjdXJyZW50
T2Zmc2V0KTsKKyAgICAgICAgSlNWYWx1ZSBjdXJyZW50VmFsdWUgPSBiYXNlLT5nZXREaXJlY3RD
b25jdXJyZW50bHkoc3RydWN0dXJlLCBjdXJyZW50T2Zmc2V0KTsKICAgICAgICAgaWYgKGN1cnJl
bnRWYWx1ZSAhPSByZXF1aXJlZFZhbHVlKCkpIHsKICAgICAgICAgICAgIGlmIChQcm9wZXJ0eUNv
bmRpdGlvbkludGVybmFsOjp2ZXJib3NlKSB7CiAgICAgICAgICAgICAgICAgZGF0YUxvZygKQEAg
LTM5MCwxMCArMzkwLDkgQEAgYm9vbCBQcm9wZXJ0eUNvbmRpdGlvbjo6aXNWYWxpZFZhbHVlRm9y
UHJlc2VuY2UoVk0mIHZtLCBKU1ZhbHVlIHZhbHVlKSBjb25zdAogUHJvcGVydHlDb25kaXRpb24g
UHJvcGVydHlDb25kaXRpb246OmF0dGVtcHRUb01ha2VFcXVpdmFsZW5jZVdpdGhvdXRCYXJyaWVy
KFZNJiB2bSwgSlNPYmplY3QqIGJhc2UpIGNvbnN0CiB7CiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUgPSBiYXNlLT5zdHJ1Y3R1cmUodm0pOwotICAgIGlmICghc3RydWN0dXJlLT5pc1ZhbGlkT2Zm
c2V0KG9mZnNldCgpKSkKLSAgICAgICAgcmV0dXJuIFByb3BlcnR5Q29uZGl0aW9uKCk7Ci0gICAg
SlNWYWx1ZSB2YWx1ZSA9IGJhc2UtPmdldERpcmVjdChvZmZzZXQoKSk7Ci0gICAgaWYgKCFpc1Zh
bGlkVmFsdWVGb3JQcmVzZW5jZSh2bSwgdmFsdWUpKQorCisgICAgSlNWYWx1ZSB2YWx1ZSA9IGJh
c2UtPmdldERpcmVjdENvbmN1cnJlbnRseShzdHJ1Y3R1cmUsIG9mZnNldCgpKTsKKyAgICBpZiAo
IXZhbHVlIHx8ICFpc1ZhbGlkVmFsdWVGb3JQcmVzZW5jZSh2bSwgdmFsdWUpKQogICAgICAgICBy
ZXR1cm4gUHJvcGVydHlDb25kaXRpb24oKTsKICAgICByZXR1cm4gZXF1aXZhbGVuY2VXaXRob3V0
QmFycmllcih1aWQoKSwgdmFsdWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHcmFwaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBo
LmNwcAppbmRleCA5NWM2NDEyOTc5ZDM1NzczNjA4YmFjMmE5Y2Q5ZjdjMzU1M2Q4ZjgyLi5kZWI4
NzZkOGIwNWUyZWE4ZTFhNmEzNTQzYzBiNjg0NTZlZDRjNGU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dyYXBoLmNwcApAQCAtMTI0NCw3ICsxMjQ0LDcgQEAgSlNWYWx1ZSBHcmFwaDo6
dHJ5R2V0Q29uc3RhbnRQcm9wZXJ0eSgKICAgICAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdHJ1
Y3R1cmVTZXQuc2l6ZSgpOyBpLS07KSB7CiAgICAgICAgIFJlZ2lzdGVyZWRTdHJ1Y3R1cmUgc3Ry
dWN0dXJlID0gc3RydWN0dXJlU2V0W2ldOwotICAgICAgICAKKwogICAgICAgICBXYXRjaHBvaW50
U2V0KiBzZXQgPSBzdHJ1Y3R1cmUtPnByb3BlcnR5UmVwbGFjZW1lbnRXYXRjaHBvaW50U2V0KG9m
ZnNldCk7CiAgICAgICAgIGlmICghc2V0IHx8ICFzZXQtPmlzU3RpbGxWYWxpZCgpKQogICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKQEAgLTEyNjMsMjIgKzEyNjMsMjQgQEAgSlNWYWx1ZSBH
cmFwaDo6dHJ5R2V0Q29uc3RhbnRQcm9wZXJ0eSgKICAgICAvLwogICAgIC8vIE9uZSBhcmd1bWVu
dCBpbiBmYXZvciBvZiB0aGlzIGNvZGUgaXMgdGhhdCBpdCBzaG91bGQgZGVmaW5pdGVseSB3b3Jr
IGJlY2F1c2UgdGhlIGJ1dHRlcmZseQogICAgIC8vIGlzIGFsd2F5cyBzZXQgYmVmb3JlIHRoZSBz
dHJ1Y3R1cmUuIEhvd2V2ZXIsIHdlIGRvbid0IGN1cnJlbnRseSBoYXZlIGEgZmVuY2UgYmV0d2Vl
biB0aG9zZQotICAgIC8vIHN0b3Jlcy4gSXQncyBub3QgY2xlYXIgaWYgdGhpcyBtYXR0ZXJzLCBo
b3dldmVyLiBXZSBkb24ndCBldmVyIHNocmluayB0aGUgcHJvcGVydHkgc3RvcmFnZS4KLSAgICAv
LyBTbywgZm9yIHRoaXMgdG8gZmFpbCwgeW91J2QgbmVlZCBhbiBhY2Nlc3Mgb24gYSBjb25zdGFu
dCBvYmplY3QgcG9pbnRlciBzdWNoIHRoYXQgdGhlIGlubGluZQotICAgIC8vIGNhY2hlcyB0b2xk
IHVzIHRoYXQgdGhlIG9iamVjdCBoYWQgYSBzdHJ1Y3R1cmUgdGhhdCBpdCBkaWQgbm90ICp5ZXQq
IGhhdmUsIGFuZCB0aGVuIGxhdGVyLAotICAgIC8vIHRoZSBvYmplY3QgdHJhbnNpdGlvbmVkIHRv
IHRoYXQgc3RydWN0dXJlIHRoYXQgdGhlIGlubGluZSBjYWNoZXMgaGFkIGFscmFlZHkgc2Vlbi4g
QW5kIHRoZW4KLSAgICAvLyB0aGUgcHJvY2Vzc29yIHJlb3JkZXJlZCB0aGUgc3RvcmVzLiBTZWVt
cyB1bmxpa2VseSBhbmQgZGlmZmljdWx0IHRvIHRlc3QuIEkgYmVsaWV2ZSB0aGF0Ci0gICAgLy8g
dGhpcyBpcyB3b3J0aCByZXZpc2l0aW5nIGJ1dCBpdCBpc24ndCB3b3J0aCBsb3Npbmcgc2xlZXAg
b3Zlci4gRmlsZWQ6CisgICAgLy8gc3RvcmVzLiBJdCdzIG5vdCBjbGVhciBpZiB0aGlzIG1hdHRl
cnMsIGhvd2V2ZXIuIFdlIG9ubHkgc2hyaW5rIHRoZSBwcm9wZXJ0eVN0b3JhZ2Ugd2hpbGUKKyAg
ICAvLyBob2xkaW5nIHRoZSBTdHJ1Y3R1cmUncyBsb2NrLiBTbywgZm9yIHRoaXMgdG8gZmFpbCwg
eW91J2QgbmVlZCBhbiBhY2Nlc3Mgb24gYSBjb25zdGFudAorICAgIC8vIG9iamVjdCBwb2ludGVy
IHN1Y2ggdGhhdCB0aGUgaW5saW5lY2FjaGVzIHRvbGQgdXMgdGhhdCB0aGUgb2JqZWN0IGhhZCBh
IHN0cnVjdHVyZSB0aGF0IGl0CisgICAgLy8gZGlkIG5vdCAqeWV0KiBoYXZlLCBhbmQgdGhlbiBs
YXRlcix0aGUgb2JqZWN0IHRyYW5zaXRpb25lZCB0byB0aGF0IHN0cnVjdHVyZSB0aGF0IHRoZSBp
bmxpbmUKKyAgICAvLyBjYWNoZXMgaGFkIGFscmFlZHkgc2Vlbi4gQW5kIHRoZW4gdGhlIHByb2Nl
c3NvciByZW9yZGVyZWQgdGhlIHN0b3Jlcy4gU2VlbXMgdW5saWtlbHkgYW5kCisgICAgLy8gZGlm
ZmljdWx0IHRvIHRlc3QuIEkgYmVsaWV2ZSB0aGF0IHRoaXMgaXMgd29ydGggcmV2aXNpdGluZyBi
dXQgaXQgaXNuJ3Qgd29ydGggbG9zaW5nIHNsZWVwCisgICAgLy8gb3Zlci4gRmlsZWQ6CiAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDY0MQogICAgIC8v
CiAgICAgLy8gRm9yIG5vdywgd2UganVzdCBkbyB0aGUgbWluaW1hbCB0aGluZzogZGVmZW5kIGFn
YWluc3QgdGhlIHN0cnVjdHVyZSByaWdodCBub3cgYmVpbmcKICAgICAvLyBpbmNvbXBhdGlibGUg
d2l0aCB0aGUgZ2V0RGlyZWN0IHdlJ3JlIHRyeWluZyB0byBkby4gVGhlIGVhc2llc3Qgd2F5IHRv
IGRvIHRoYXQgaXMgdG8KICAgICAvLyBkZXRlcm1pbmUgaWYgdGhlIHN0cnVjdHVyZSBiZWxvbmdz
IHRvIHRoZSBwcm92ZW4gc2V0LgotICAgIAotICAgIGlmICghc3RydWN0dXJlU2V0LnRvU3RydWN0
dXJlU2V0KCkuY29udGFpbnMob2JqZWN0LT5zdHJ1Y3R1cmUobV92bSkpKQorCisgICAgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUgPSBvYmplY3QtPnN0cnVjdHVyZShtX3ZtKTsKKyAgICBpZiAoIXN0cnVj
dHVyZVNldC50b1N0cnVjdHVyZVNldCgpLmNvbnRhaW5zKHN0cnVjdHVyZSkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlKCk7Ci0gICAgCi0gICAgcmV0dXJuIG9iamVjdC0+Z2V0RGlyZWN0KG9mZnNl
dCk7CisKKyAgICByZXR1cm4gb2JqZWN0LT5nZXREaXJlY3RDb25jdXJyZW50bHkoc3RydWN0dXJl
LCBvZmZzZXQpOwogfQogCiBKU1ZhbHVlIEdyYXBoOjp0cnlHZXRDb25zdGFudFByb3BlcnR5KEpT
VmFsdWUgYmFzZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFByb3BlcnR5T2Zmc2V0IG9mZnNldCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDgxOTM0NmM3NjVl
YjUwNDNiYjhmZDdmZGNjNTFjZDI5ODVkZDFhNWMuLjQwYzMzYWQ0MzUzNTRkNmU0MjFjYWJiMTUz
NTI1YjE2NDdjZDUwZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aApAQCAtNzE3LDYgKzcxNyw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEZhc3QgYWNjZXNzIHRvIGtu
b3duIHByb3BlcnR5IG9mZnNldHMuCiAgICAgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGdldERpcmVj
dChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpIGNvbnN0IHsgcmV0dXJuIGxvY2F0aW9uRm9yT2Zmc2V0
KG9mZnNldCktPmdldCgpOyB9CisgICAgSlNWYWx1ZSBnZXREaXJlY3RDb25jdXJyZW50bHkoU3Ry
dWN0dXJlKiBleHBlY3RlZFN0cnVjdHVyZSwgUHJvcGVydHlPZmZzZXQpIGNvbnN0OwogICAgIHZv
aWQgcHV0RGlyZWN0KFZNJiB2bSwgUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBKU1ZhbHVlIHZhbHVl
KSB7IGxvY2F0aW9uRm9yT2Zmc2V0KG9mZnNldCktPnNldCh2bSwgdGhpcywgdmFsdWUpOyB9CiAg
ICAgdm9pZCBwdXREaXJlY3RXaXRob3V0QmFycmllcihQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIEpT
VmFsdWUgdmFsdWUpIHsgbG9jYXRpb25Gb3JPZmZzZXQob2Zmc2V0KS0+c2V0V2l0aG91dFdyaXRl
QmFycmllcih2YWx1ZSk7IH0KICAgICB2b2lkIHB1dERpcmVjdFVuZGVmaW5lZChQcm9wZXJ0eU9m
ZnNldCBvZmZzZXQpIHsgbG9jYXRpb25Gb3JPZmZzZXQob2Zmc2V0KS0+c2V0VW5kZWZpbmVkKCk7
IH0KQEAgLTEzMjAsNiArMTMyMSwxOCBAQCBpbmxpbmUgSlNWYWx1ZSBKU09iamVjdDo6Z2V0UHJv
dG90eXBlKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBnZXRQcm90b3R5cGVN
ZXRob2QodGhpcywgZXhlYyk7CiB9CiAKKy8vIE5vcm1hbGx5LCB3ZSBuZXZlciBzaHJpbmsgdGhl
IGJ1dHRlcmZseSBzbyBpZiB3ZSBrbm93IGFuIG9mZnNldCBpcyB2YWxpZCBmb3Igc29tZQorLy8g
cGFzdCBzdHJ1Y3R1cmUgdGhlbiBpdCBzaG91bGQgYmUgdmFsaWQgZm9yIGFueSBuZXcgc3RydWN0
dXJlLiBIb3dldmVyLCB3ZSBtYXkgc29tZXRpbWVzCisvLyBzaHJpbmsgdGhlIGJ1dHRlcmZseSB3
aGVuIHdlIGFyZSBob2xkaW5nIHRoZSBTdHJ1Y3R1cmUncyBDb25jdXJyZW50SlNMb2NrLCBzdWNo
IGFzIHdoZW4gd2UKKy8vIGZsYXR0ZW4gYW4gb2JqZWN0LgoraW5saW5lIEpTVmFsdWUgSlNPYmpl
Y3Q6OmdldERpcmVjdENvbmN1cnJlbnRseShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUHJvcGVydHlP
ZmZzZXQgb2Zmc2V0KSBjb25zdAoreworICAgIENvbmN1cnJlbnRKU0xvY2tlciBsb2NrZXIoc3Ry
dWN0dXJlLT5sb2NrKCkpOworICAgIGlmICghc3RydWN0dXJlLT5pc1ZhbGlkT2Zmc2V0KG9mZnNl
dCkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIGdldERpcmVjdChvZmZzZXQpOwor
fQorCiAvLyBJdCBpcyBzYWZlIHRvIGNhbGwgdGhpcyBtZXRob2Qgd2l0aCBhIFByb3BlcnR5TmFt
ZSB0aGF0IGlzIGFjdHVhbGx5IGFuIGluZGV4LAogLy8gYnV0IGlmIHNvIHdpbGwgYWx3YXlzIHJl
dHVybiBmYWxzZSAoZG9lc24ndCBzZWFyY2ggaW5kZXggc3RvcmFnZSkuCiBBTFdBWVNfSU5MSU5F
IGJvb2wgSlNPYmplY3Q6OmdldE93bk5vbkluZGV4UHJvcGVydHlTbG90KFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343411</attachid>
            <date>2018-06-22 18:37:48 -0700</date>
            <delta_ts>2018-06-22 23:15:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186954-20180622183745.patch</filename>
            <type>text/plain</type>
            <size>8569</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzMTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OTQyZDFhOTMyNWI3YzFhZTkyNjNiZDZmOTE3ZmM3OTM4MDZiZGI4Li41Zjk1MThiYzhiYzkzZTE2
NmU2MDU2OWY5ZWY0MjI2YzJlM2FjNWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxOC0wNi0yMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBXZSBuZWVkIHRvIGhhdmUgYSBnZXREaXJlY3RDb25jdXJyZW50bHkg
Zm9yIHVzZSBpbiB0aGUgY29tcGlsZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODY5NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJdCB1c2VkIHRvIGJlIHRoYXQgdGhlIHByb3BlcnR5U3RvcmFnZSBv
ZiBhbiBvYmplY3QgbmV2ZXIgc2hydW5rCisgICAgICAgIHNvIGlmIHlvdSBjYWxsZWQgZ2V0RGly
ZWN0IHdpdGggc29tZSBvZmZzZXQgaXQgd291bGQgbmV2ZXIgYmUgYW4KKyAgICAgICAgT09CIHJl
YWQuIEhvd2V2ZXIsIHRoaXMgcHJvcGVydHkgc3RvcmFnZSBjYW4gc2hyaW5rIHdoZW4gY2FsbGlu
ZworICAgICAgICBmbGF0dGVuRGljdGlvbmFyeVN0cnVjdHVyZS4gRm9ydHVuYXRlbHksIGZsYXR0
ZW5EaWN0aW9uYXJ5U3RydWN0dXJlCisgICAgICAgIGhvbGRzIHRoZSBTdHJ1Y3R1cmUncyBDb25j
dXJyZW50SlNMb2NrIHdoaWxlIHNocmlua2luZy4gVGhpcyBwYXRjaCwKKyAgICAgICAgYWRkcyBh
IGdldERpcmVjdENvbmN1cnJlbnRseSB0aGF0IHdpbGwgc2FmZWx5IHRyeSB0byBsb2FkIGZyb20g
dGhlCisgICAgICAgIGJ1dHRlcmZseS4KKworICAgICAgICAqIGJ5dGVjb2RlL09iamVjdFByb3Bl
cnR5Q29uZGl0aW9uU2V0LmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9Qcm9wZXJ0eUNvbmRpdGlv
bi5jcHA6CisgICAgICAgIChKU0M6OlByb3BlcnR5Q29uZGl0aW9uOjppc1N0aWxsVmFsaWRBc3N1
bWluZ0ltcHVyZVByb3BlcnR5V2F0Y2hwb2ludCBjb25zdCk6CisgICAgICAgIChKU0M6OlByb3Bl
cnR5Q29uZGl0aW9uOjphdHRlbXB0VG9NYWtlRXF1aXZhbGVuY2VXaXRob3V0QmFycmllciBjb25z
dCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFw
aDo6dHJ5R2V0Q29uc3RhbnRQcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5o
OgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0RGlyZWN0Q29uY3VycmVudGx5IGNvbnN0KToK
KwogMjAxOC0wNi0yMiAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBlbnN1cmVXcml0YWJsZVggc2hvdWxkIG9ubHkgY29udmVydCBhd2F5IGZyb20gQ29XIHdoZW4g
aXQgd2lsbCBzdWNjZWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcAppbmRleCA0OTM4OWMxYTE2
MzU2YzE3M2E0ODNmZWExYTczZDkxMmEwNjRiZjdmLi4yZDE5NjNhNDIyZWUzYzM3NmI0ZmQ3M2Jj
ZjVlYzM2NDI3NjdiNWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHAKQEAgLTIyMiw3ICsy
MjIsOSBAQCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBnZW5lcmF0ZUNvbmRpdGlvbigKICAgICAg
ICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0ID0gc3RydWN0dXJlLT5nZXRDb25jdXJyZW50bHkodWlk
LCBhdHRyaWJ1dGVzKTsKICAgICAgICAgaWYgKG9mZnNldCA9PSBpbnZhbGlkT2Zmc2V0KQogICAg
ICAgICAgICAgcmV0dXJuIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uKCk7Ci0gICAgICAgIEpTVmFs
dWUgdmFsdWUgPSBvYmplY3QtPmdldERpcmVjdChvZmZzZXQpOworICAgICAgICBKU1ZhbHVlIHZh
bHVlID0gb2JqZWN0LT5nZXREaXJlY3RDb25jdXJyZW50bHkoc3RydWN0dXJlLCBvZmZzZXQpOwor
ICAgICAgICBpZiAoIXZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIE9iamVjdFByb3BlcnR5Q29u
ZGl0aW9uKCk7CiAgICAgICAgIHJlc3VsdCA9IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uOjplcXVp
dmFsZW5jZSh2bSwgb3duZXIsIG9iamVjdCwgdWlkLCB2YWx1ZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9wZXJ0
eUNvbmRpdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvcGVydHlD
b25kaXRpb24uY3BwCmluZGV4IDUxZDYxYzIxNzNhYjQzYTIwNGU2OTlhOGVhOTM0NDNhY2Y3MWY3
ZDAuLjE0YzU1MzQ1MDkxMjA3Yzc4ODA1YmJjNmZkYTc2MzBjY2I5MTE1MjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9wZXJ0eUNvbmRpdGlvbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb3BlcnR5Q29uZGl0aW9uLmNwcApA
QCAtMjM3LDcgKzIzNyw3IEBAIGJvb2wgUHJvcGVydHlDb25kaXRpb246OmlzU3RpbGxWYWxpZEFz
c3VtaW5nSW1wdXJlUHJvcGVydHlXYXRjaHBvaW50KAogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICB9CiAKLSAgICAgICAgSlNWYWx1ZSBjdXJyZW50VmFsdWUgPSBiYXNlLT5nZXRE
aXJlY3QoY3VycmVudE9mZnNldCk7CisgICAgICAgIEpTVmFsdWUgY3VycmVudFZhbHVlID0gYmFz
ZS0+Z2V0RGlyZWN0Q29uY3VycmVudGx5KHN0cnVjdHVyZSwgY3VycmVudE9mZnNldCk7CiAgICAg
ICAgIGlmIChjdXJyZW50VmFsdWUgIT0gcmVxdWlyZWRWYWx1ZSgpKSB7CiAgICAgICAgICAgICBp
ZiAoUHJvcGVydHlDb25kaXRpb25JbnRlcm5hbDo6dmVyYm9zZSkgewogICAgICAgICAgICAgICAg
IGRhdGFMb2coCkBAIC0zOTAsMTAgKzM5MCw5IEBAIGJvb2wgUHJvcGVydHlDb25kaXRpb246Omlz
VmFsaWRWYWx1ZUZvclByZXNlbmNlKFZNJiB2bSwgSlNWYWx1ZSB2YWx1ZSkgY29uc3QKIFByb3Bl
cnR5Q29uZGl0aW9uIFByb3BlcnR5Q29uZGl0aW9uOjphdHRlbXB0VG9NYWtlRXF1aXZhbGVuY2VX
aXRob3V0QmFycmllcihWTSYgdm0sIEpTT2JqZWN0KiBiYXNlKSBjb25zdAogewogICAgIFN0cnVj
dHVyZSogc3RydWN0dXJlID0gYmFzZS0+c3RydWN0dXJlKHZtKTsKLSAgICBpZiAoIXN0cnVjdHVy
ZS0+aXNWYWxpZE9mZnNldChvZmZzZXQoKSkpCi0gICAgICAgIHJldHVybiBQcm9wZXJ0eUNvbmRp
dGlvbigpOwotICAgIEpTVmFsdWUgdmFsdWUgPSBiYXNlLT5nZXREaXJlY3Qob2Zmc2V0KCkpOwot
ICAgIGlmICghaXNWYWxpZFZhbHVlRm9yUHJlc2VuY2Uodm0sIHZhbHVlKSkKKworICAgIEpTVmFs
dWUgdmFsdWUgPSBiYXNlLT5nZXREaXJlY3RDb25jdXJyZW50bHkoc3RydWN0dXJlLCBvZmZzZXQo
KSk7CisgICAgaWYgKCF2YWx1ZSB8fCAhaXNWYWxpZFZhbHVlRm9yUHJlc2VuY2Uodm0sIHZhbHVl
KSkKICAgICAgICAgcmV0dXJuIFByb3BlcnR5Q29uZGl0aW9uKCk7CiAgICAgcmV0dXJuIGVxdWl2
YWxlbmNlV2l0aG91dEJhcnJpZXIodWlkKCksIHZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaC5jcHAKaW5kZXggOTVjNjQxMjk3OWQzNTc3MzYwOGJhYzJhOWNkOWY3YzM1
NTNkOGY4Mi4uZGViODc2ZDhiMDVlMmVhOGUxYTZhMzU0M2MwYjY4NDU2ZWQ0YzRlNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAKQEAgLTEyNDQsNyArMTI0NCw3IEBAIEpT
VmFsdWUgR3JhcGg6OnRyeUdldENvbnN0YW50UHJvcGVydHkoCiAgICAgCiAgICAgZm9yICh1bnNp
Z25lZCBpID0gc3RydWN0dXJlU2V0LnNpemUoKTsgaS0tOykgewogICAgICAgICBSZWdpc3RlcmVk
U3RydWN0dXJlIHN0cnVjdHVyZSA9IHN0cnVjdHVyZVNldFtpXTsKLSAgICAgICAgCisKICAgICAg
ICAgV2F0Y2hwb2ludFNldCogc2V0ID0gc3RydWN0dXJlLT5wcm9wZXJ0eVJlcGxhY2VtZW50V2F0
Y2hwb2ludFNldChvZmZzZXQpOwogICAgICAgICBpZiAoIXNldCB8fCAhc2V0LT5pc1N0aWxsVmFs
aWQoKSkKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CkBAIC0xMjYzLDIyICsxMjYzLDI0
IEBAIEpTVmFsdWUgR3JhcGg6OnRyeUdldENvbnN0YW50UHJvcGVydHkoCiAgICAgLy8KICAgICAv
LyBPbmUgYXJndW1lbnQgaW4gZmF2b3Igb2YgdGhpcyBjb2RlIGlzIHRoYXQgaXQgc2hvdWxkIGRl
ZmluaXRlbHkgd29yayBiZWNhdXNlIHRoZSBidXR0ZXJmbHkKICAgICAvLyBpcyBhbHdheXMgc2V0
IGJlZm9yZSB0aGUgc3RydWN0dXJlLiBIb3dldmVyLCB3ZSBkb24ndCBjdXJyZW50bHkgaGF2ZSBh
IGZlbmNlIGJldHdlZW4gdGhvc2UKLSAgICAvLyBzdG9yZXMuIEl0J3Mgbm90IGNsZWFyIGlmIHRo
aXMgbWF0dGVycywgaG93ZXZlci4gV2UgZG9uJ3QgZXZlciBzaHJpbmsgdGhlIHByb3BlcnR5IHN0
b3JhZ2UuCi0gICAgLy8gU28sIGZvciB0aGlzIHRvIGZhaWwsIHlvdSdkIG5lZWQgYW4gYWNjZXNz
IG9uIGEgY29uc3RhbnQgb2JqZWN0IHBvaW50ZXIgc3VjaCB0aGF0IHRoZSBpbmxpbmUKLSAgICAv
LyBjYWNoZXMgdG9sZCB1cyB0aGF0IHRoZSBvYmplY3QgaGFkIGEgc3RydWN0dXJlIHRoYXQgaXQg
ZGlkIG5vdCAqeWV0KiBoYXZlLCBhbmQgdGhlbiBsYXRlciwKLSAgICAvLyB0aGUgb2JqZWN0IHRy
YW5zaXRpb25lZCB0byB0aGF0IHN0cnVjdHVyZSB0aGF0IHRoZSBpbmxpbmUgY2FjaGVzIGhhZCBh
bHJhZWR5IHNlZW4uIEFuZCB0aGVuCi0gICAgLy8gdGhlIHByb2Nlc3NvciByZW9yZGVyZWQgdGhl
IHN0b3Jlcy4gU2VlbXMgdW5saWtlbHkgYW5kIGRpZmZpY3VsdCB0byB0ZXN0LiBJIGJlbGlldmUg
dGhhdAotICAgIC8vIHRoaXMgaXMgd29ydGggcmV2aXNpdGluZyBidXQgaXQgaXNuJ3Qgd29ydGgg
bG9zaW5nIHNsZWVwIG92ZXIuIEZpbGVkOgorICAgIC8vIHN0b3Jlcy4gSXQncyBub3QgY2xlYXIg
aWYgdGhpcyBtYXR0ZXJzLCBob3dldmVyLiBXZSBvbmx5IHNocmluayB0aGUgcHJvcGVydHlTdG9y
YWdlIHdoaWxlCisgICAgLy8gaG9sZGluZyB0aGUgU3RydWN0dXJlJ3MgbG9jay4gU28sIGZvciB0
aGlzIHRvIGZhaWwsIHlvdSdkIG5lZWQgYW4gYWNjZXNzIG9uIGEgY29uc3RhbnQKKyAgICAvLyBv
YmplY3QgcG9pbnRlciBzdWNoIHRoYXQgdGhlIGlubGluZWNhY2hlcyB0b2xkIHVzIHRoYXQgdGhl
IG9iamVjdCBoYWQgYSBzdHJ1Y3R1cmUgdGhhdCBpdAorICAgIC8vIGRpZCBub3QgKnlldCogaGF2
ZSwgYW5kIHRoZW4gbGF0ZXIsdGhlIG9iamVjdCB0cmFuc2l0aW9uZWQgdG8gdGhhdCBzdHJ1Y3R1
cmUgdGhhdCB0aGUgaW5saW5lCisgICAgLy8gY2FjaGVzIGhhZCBhbHJhZWR5IHNlZW4uIEFuZCB0
aGVuIHRoZSBwcm9jZXNzb3IgcmVvcmRlcmVkIHRoZSBzdG9yZXMuIFNlZW1zIHVubGlrZWx5IGFu
ZAorICAgIC8vIGRpZmZpY3VsdCB0byB0ZXN0LiBJIGJlbGlldmUgdGhhdCB0aGlzIGlzIHdvcnRo
IHJldmlzaXRpbmcgYnV0IGl0IGlzbid0IHdvcnRoIGxvc2luZyBzbGVlcAorICAgIC8vIG92ZXIu
IEZpbGVkOgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzQ2NDEKICAgICAvLwogICAgIC8vIEZvciBub3csIHdlIGp1c3QgZG8gdGhlIG1pbmltYWwgdGhp
bmc6IGRlZmVuZCBhZ2FpbnN0IHRoZSBzdHJ1Y3R1cmUgcmlnaHQgbm93IGJlaW5nCiAgICAgLy8g
aW5jb21wYXRpYmxlIHdpdGggdGhlIGdldERpcmVjdCB3ZSdyZSB0cnlpbmcgdG8gZG8uIFRoZSBl
YXNpZXN0IHdheSB0byBkbyB0aGF0IGlzIHRvCiAgICAgLy8gZGV0ZXJtaW5lIGlmIHRoZSBzdHJ1
Y3R1cmUgYmVsb25ncyB0byB0aGUgcHJvdmVuIHNldC4KLSAgICAKLSAgICBpZiAoIXN0cnVjdHVy
ZVNldC50b1N0cnVjdHVyZVNldCgpLmNvbnRhaW5zKG9iamVjdC0+c3RydWN0dXJlKG1fdm0pKSkK
KworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gb2JqZWN0LT5zdHJ1Y3R1cmUobV92bSk7Cisg
ICAgaWYgKCFzdHJ1Y3R1cmVTZXQudG9TdHJ1Y3R1cmVTZXQoKS5jb250YWlucyhzdHJ1Y3R1cmUp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwotICAgIAotICAgIHJldHVybiBvYmplY3QtPmdl
dERpcmVjdChvZmZzZXQpOworCisgICAgcmV0dXJuIG9iamVjdC0+Z2V0RGlyZWN0Q29uY3VycmVu
dGx5KHN0cnVjdHVyZSwgb2Zmc2V0KTsKIH0KIAogSlNWYWx1ZSBHcmFwaDo6dHJ5R2V0Q29uc3Rh
bnRQcm9wZXJ0eShKU1ZhbHVlIGJhc2UsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQcm9wZXJ0eU9m
ZnNldCBvZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRl
eCA4MTkzNDZjNzY1ZWI1MDQzYmI4ZmQ3ZmRjYzUxY2QyOTg1ZGQxYTVjLi40MGMzM2FkNDM1MzU0
ZDZlNDIxY2FiYjE1MzUyNWIxNjQ3Y2Q1MGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmgKQEAgLTcxNyw2ICs3MTcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBGYXN0
IGFjY2VzcyB0byBrbm93biBwcm9wZXJ0eSBvZmZzZXRzLgogICAgIEFMV0FZU19JTkxJTkUgSlNW
YWx1ZSBnZXREaXJlY3QoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KSBjb25zdCB7IHJldHVybiBsb2Nh
dGlvbkZvck9mZnNldChvZmZzZXQpLT5nZXQoKTsgfQorICAgIEpTVmFsdWUgZ2V0RGlyZWN0Q29u
Y3VycmVudGx5KFN0cnVjdHVyZSogZXhwZWN0ZWRTdHJ1Y3R1cmUsIFByb3BlcnR5T2Zmc2V0KSBj
b25zdDsKICAgICB2b2lkIHB1dERpcmVjdChWTSYgdm0sIFByb3BlcnR5T2Zmc2V0IG9mZnNldCwg
SlNWYWx1ZSB2YWx1ZSkgeyBsb2NhdGlvbkZvck9mZnNldChvZmZzZXQpLT5zZXQodm0sIHRoaXMs
IHZhbHVlKTsgfQogICAgIHZvaWQgcHV0RGlyZWN0V2l0aG91dEJhcnJpZXIoUHJvcGVydHlPZmZz
ZXQgb2Zmc2V0LCBKU1ZhbHVlIHZhbHVlKSB7IGxvY2F0aW9uRm9yT2Zmc2V0KG9mZnNldCktPnNl
dFdpdGhvdXRXcml0ZUJhcnJpZXIodmFsdWUpOyB9CiAgICAgdm9pZCBwdXREaXJlY3RVbmRlZmlu
ZWQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KSB7IGxvY2F0aW9uRm9yT2Zmc2V0KG9mZnNldCktPnNl
dFVuZGVmaW5lZCgpOyB9CkBAIC0xMzIwLDYgKzEzMjEsMTggQEAgaW5saW5lIEpTVmFsdWUgSlNP
YmplY3Q6OmdldFByb3RvdHlwZShWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4g
Z2V0UHJvdG90eXBlTWV0aG9kKHRoaXMsIGV4ZWMpOwogfQogCisvLyBOb3JtYWxseSwgd2UgbmV2
ZXIgc2hyaW5rIHRoZSBidXR0ZXJmbHkgc28gaWYgd2Uga25vdyBhbiBvZmZzZXQgaXMgdmFsaWQg
Zm9yIHNvbWUKKy8vIHBhc3Qgc3RydWN0dXJlIHRoZW4gaXQgc2hvdWxkIGJlIHZhbGlkIGZvciBh
bnkgbmV3IHN0cnVjdHVyZS4gSG93ZXZlciwgd2UgbWF5IHNvbWV0aW1lcworLy8gc2hyaW5rIHRo
ZSBidXR0ZXJmbHkgd2hlbiB3ZSBhcmUgaG9sZGluZyB0aGUgU3RydWN0dXJlJ3MgQ29uY3VycmVu
dEpTTG9jaywgc3VjaCBhcyB3aGVuIHdlCisvLyBmbGF0dGVuIGFuIG9iamVjdC4KK2lubGluZSBK
U1ZhbHVlIEpTT2JqZWN0OjpnZXREaXJlY3RDb25jdXJyZW50bHkoU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIFByb3BlcnR5T2Zmc2V0IG9mZnNldCkgY29uc3QKK3sKKyAgICBDb25jdXJyZW50SlNMb2Nr
ZXIgbG9ja2VyKHN0cnVjdHVyZS0+bG9jaygpKTsKKyAgICBpZiAoIXN0cnVjdHVyZS0+aXNWYWxp
ZE9mZnNldChvZmZzZXQpKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBnZXREaXJl
Y3Qob2Zmc2V0KTsKK30KKwogLy8gSXQgaXMgc2FmZSB0byBjYWxsIHRoaXMgbWV0aG9kIHdpdGgg
YSBQcm9wZXJ0eU5hbWUgdGhhdCBpcyBhY3R1YWxseSBhbiBpbmRleCwKIC8vIGJ1dCBpZiBzbyB3
aWxsIGFsd2F5cyByZXR1cm4gZmFsc2UgKGRvZXNuJ3Qgc2VhcmNoIGluZGV4IHN0b3JhZ2UpLgog
QUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpnZXRPd25Ob25JbmRleFByb3BlcnR5U2xvdChW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCg==
</data>
<flag name="review"
          id="361482"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>