<?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>204395</bug_id>
          
          <creation_ts>2019-11-19 21:12:51 -0800</creation_ts>
          <short_desc>Web Inspector: Canvas: adjust `InspectorCanvasAgent::recordCanvasAction` to actually check that the `CanvasRenderingContext` still exists</short_desc>
          <delta_ts>2019-11-22 12:29:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=204397</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>rniwa</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1591879</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-19 21:12:51 -0800</bug_when>
    <thetext>The microtask we create inside `InspectorCanvasAgent::recordCanvasAction` to handle marking the end of a frame for a detached canvas doesn&apos;t actually check that the `CanvasRenderingContext` still exists, such as if the `CanvasRenderingContext` gets GCd during a recording.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591880</commentid>
    <comment_count>1</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-19 21:13:00 -0800</bug_when>
    <thetext>&lt;rdar://problem/57347504&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591882</commentid>
    <comment_count>2</comment_count>
      <attachid>383944</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-19 21:25:49 -0800</bug_when>
    <thetext>Created attachment 383944
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591902</commentid>
    <comment_count>3</comment_count>
      <attachid>383944</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-19 23:07:49 -0800</bug_when>
    <thetext>Comment on attachment 383944
Patch

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

&gt; Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp:456
&gt; +        MicrotaskQueue::mainThreadQueue().append(makeUnique&lt;VoidMicrotask&gt;([&amp;, canvasId = inspectorCanvas-&gt;identifier()] {
&gt; +            auto inspectorCanvas = m_identifierToInspectorCanvas.get(canvasId);
&gt; +            if (!inspectorCanvas)

How do we know InspectorCanvasAgent is still alive?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592026</commentid>
    <comment_count>4</comment_count>
      <attachid>383944</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-20 09:27:36 -0800</bug_when>
    <thetext>Comment on attachment 383944
Patch

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

&gt;&gt; Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp:456
&gt;&gt; +            if (!inspectorCanvas)
&gt; 
&gt; How do we know InspectorCanvasAgent is still alive?

That&apos;s a really good point!  Although I&apos;d imagine it&apos;s exceedingly rare, I think It is possible for Web Inspector to close before this microtask callback is executed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592047</commentid>
    <comment_count>5</comment_count>
      <attachid>383971</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-20 10:29:46 -0800</bug_when>
    <thetext>Created attachment 383971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592226</commentid>
    <comment_count>6</comment_count>
      <attachid>383971</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-20 17:35:46 -0800</bug_when>
    <thetext>Comment on attachment 383971
Patch

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

&gt; Source/WebCore/inspector/agents/InspectorCanvasAgent.h:169
&gt; +    RecordCanvasActionMicrotask* m_recordCanvasActionMicrotask { nullptr };

Can we just make InspectorCanvasAgent inherit from CanMakeWeakPtr and use that instead?
Storing raw pointer to RecordCanvasActionMicrotask* doesn&apos;t seem like a great long term strategy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592450</commentid>
    <comment_count>7</comment_count>
      <attachid>383971</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-21 11:11:28 -0800</bug_when>
    <thetext>Comment on attachment 383971
Patch

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

&gt;&gt; Source/WebCore/inspector/agents/InspectorCanvasAgent.h:169
&gt;&gt; +    RecordCanvasActionMicrotask* m_recordCanvasActionMicrotask { nullptr };
&gt; 
&gt; Can we just make InspectorCanvasAgent inherit from CanMakeWeakPtr and use that instead?
&gt; Storing raw pointer to RecordCanvasActionMicrotask* doesn&apos;t seem like a great long term strategy.

We could do that, but it would require a much larger change, as we use `std::unique_ptr` to hold all of our agents.  I&apos;ll investigate shifting everything from `std::unique_ptr` to `Ref`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592633</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-21 19:33:51 -0800</bug_when>
    <thetext>(In reply to Devin Rousso from comment #7)
&gt; Comment on attachment 383971 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=383971&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/inspector/agents/InspectorCanvasAgent.h:169
&gt; &gt;&gt; +    RecordCanvasActionMicrotask* m_recordCanvasActionMicrotask { nullptr };
&gt; &gt; 
&gt; &gt; Can we just make InspectorCanvasAgent inherit from CanMakeWeakPtr and use that instead?
&gt; &gt; Storing raw pointer to RecordCanvasActionMicrotask* doesn&apos;t seem like a great long term strategy.
&gt; 
&gt; We could do that, but it would require a much larger change, as we use
&gt; `std::unique_ptr` to hold all of our agents.  I&apos;ll investigate shifting
&gt; everything from `std::unique_ptr` to `Ref`.

?? WeakPtr is totally compatible with std::unique_ptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592634</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-21 19:35:24 -0800</bug_when>
    <thetext>e.g. you can do:

class A : public CanMakeWeak&lt;A&gt; {
};

auto a = makeUnique&lt;A&gt;;
auto weakPtrToA = makeWeakPtr(a);
a = nullptr;
weakPtrToA.get() // this will be nullptr here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592646</commentid>
    <comment_count>10</comment_count>
      <attachid>383971</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-21 20:54:14 -0800</bug_when>
    <thetext>Comment on attachment 383971
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/inspector/agents/InspectorCanvasAgent.h:169
&gt;&gt;&gt;&gt; +    RecordCanvasActionMicrotask* m_recordCanvasActionMicrotask { nullptr };
&gt;&gt;&gt; 
&gt;&gt;&gt; Can we just make InspectorCanvasAgent inherit from CanMakeWeakPtr and use that instead?
&gt;&gt;&gt; Storing raw pointer to RecordCanvasActionMicrotask* doesn&apos;t seem like a great long term strategy.
&gt;&gt; 
&gt;&gt; We could do that, but it would require a much larger change, as we use `std::unique_ptr` to hold all of our agents.  I&apos;ll investigate shifting everything from `std::unique_ptr` to `Ref`.
&gt; 
&gt; ?? WeakPtr is totally compatible with std::unique_ptr.

Interesting.  I was under the (apparently incorrect) assumption that `WeakPtr` required the type to be `RefCounted`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592651</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-21 21:12:00 -0800</bug_when>
    <thetext>(In reply to Devin Rousso from comment #10)
&gt; Comment on attachment 383971 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=383971&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt; Source/WebCore/inspector/agents/InspectorCanvasAgent.h:169
&gt; &gt;&gt;&gt;&gt; +    RecordCanvasActionMicrotask* m_recordCanvasActionMicrotask { nullptr };
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; Can we just make InspectorCanvasAgent inherit from CanMakeWeakPtr and use that instead?
&gt; &gt;&gt;&gt; Storing raw pointer to RecordCanvasActionMicrotask* doesn&apos;t seem like a great long term strategy.
&gt; &gt;&gt; 
&gt; &gt;&gt; We could do that, but it would require a much larger change, as we use `std::unique_ptr` to hold all of our agents.  I&apos;ll investigate shifting everything from `std::unique_ptr` to `Ref`.
&gt; &gt; 
&gt; &gt; ?? WeakPtr is totally compatible with std::unique_ptr.
&gt; 
&gt; Interesting.  I was under the (apparently incorrect) assumption that
&gt; `WeakPtr` required the type to be `RefCounted`.

Yeah, it&apos;s a common misconception. WeakPtr uses RefPtr as its implementation detail but it&apos;s a completely independent feature from RefCounted. Also, Ref/RefPtr doesn&apos;t rely on RefCounted either. They just require the object to have ref() and deref() functions. WebCore&apos;s Node, for example, doesn&apos;t inherit from RefCounted but it&apos;s still used with Ref &amp; RefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592654</commentid>
    <comment_count>12</comment_count>
      <attachid>384122</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-21 21:24:42 -0800</bug_when>
    <thetext>Created attachment 384122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592655</commentid>
    <comment_count>13</comment_count>
      <attachid>384123</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-21 21:28:57 -0800</bug_when>
    <thetext>Created attachment 384123
Patch

Oops.  Small typo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592659</commentid>
    <comment_count>14</comment_count>
      <attachid>384123</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-11-21 21:46:23 -0800</bug_when>
    <thetext>Comment on attachment 384123
Patch

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

The mechanism WeakPtr part of the change looks good but perhaps someone familiar with WebInspector should also review this code change too.

&gt; Source/WebCore/inspector/agents/InspectorCanvasAgent.cpp:454
&gt; +            scriptExecutionContext-&gt;eventLoop().queueMicrotask([weakThis = makeWeakPtr(*this)] {

This change makes sense to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592942</commentid>
    <comment_count>15</comment_count>
      <attachid>384123</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2019-11-22 12:06:04 -0800</bug_when>
    <thetext>Comment on attachment 384123
Patch

Looks fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592949</commentid>
    <comment_count>16</comment_count>
      <attachid>384123</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2019-11-22 12:11:25 -0800</bug_when>
    <thetext>Comment on attachment 384123
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592952</commentid>
    <comment_count>17</comment_count>
      <attachid>384123</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-22 12:29:32 -0800</bug_when>
    <thetext>Comment on attachment 384123
Patch

Clearing flags on attachment: 384123

Committed r252792: &lt;https://trac.webkit.org/changeset/252792&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592953</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-22 12:29:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383944</attachid>
            <date>2019-11-19 21:25:49 -0800</date>
            <delta_ts>2019-11-20 10:29:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204395-20191119212548.patch</filename>
            <type>text/plain</type>
            <size>3981</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ZDQ0OTY4OTM2ZWJiYjY2ZjZmZWVjZDdmZjkwYWUxNjdhOGFhMmUyLi4y
N2Y1MmFjMjJiOGM1ZDgzYTg3NmIxMDRhNTljNDBkOTc4ZDJmMWJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTktMTEtMTkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IENhbnZhczogYWRqdXN0IGBJbnNwZWN0b3JDYW52
YXNBZ2VudDo6cmVjb3JkQ2FudmFzQWN0aW9uYCB0byBhY3R1YWxseSBjaGVjayB0aGF0IHRoZSBg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dGAgc3RpbGwgZXhpc3RzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzOTUKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU3MzQ3NTA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVjb3JkQ2FudmFzQWN0aW9uKToK
KyAgICAgICAgVGhlIG1pY3JvdGFzayB3ZSBjcmVhdGUgdG8gaGFuZGxlIG1hcmtpbmcgdGhlIGVu
ZCBvZiBhIGZyYW1lIGZvciBhIGRldGFjaGVkIGNhbnZhcyBkb2Vzbid0CisgICAgICAgIGFjdHVh
bGx5IGNoZWNrIHRoYXQgdGhlIGBDYW52YXNSZW5kZXJpbmdDb250ZXh0YCBzdGlsbCBleGlzdHMs
IHN1Y2ggYXMgaWYgaXQgZ2V0cyBHQ2QgZHVyaW5nCisgICAgICAgIGEgcmVjb3JkaW5nLiBJbnN0
ZWFkIG9mIGtlZXBpbmcgYSBgUmVmPEluc3BlY3RvckNhbnZhcz5gLCBzYXZlIHRoZSBgY2FudmFz
SWRgIHN0cmluZyBhbmQgdXNlCisgICAgICAgIGl0IHRvIGF0dGVtcHQgdG8gcmUtZmluZCB0aGUg
YEluc3BlY3RvckNhbnZhc2AsIHdoaWNoIHdvdWxkIG9ubHkgc3RpbGwgZXhpc3QgaWYgdGhlIHJl
bGF0ZWQKKyAgICAgICAgYENhbnZhc1JlbmRlcmluZ0NvbnRleHRgIGlzIHN0aWxsIGFsaXZlLgor
CiAyMDE5LTExLTE5ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBET00uaGlnaGxpZ2h0U2VsZWN0b3Igc2hvdWxkIHdvcmsgZm9yICJk
aXYsIGRpdjo6YmVmb3JlIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAppbmRleCAwMTk4ZjBkN2U2Mjk4ZGY4YjAy
OWRjNmUyOGJlMTA3MjAwZGFjZTQwLi4wMGFlMjVkMzJhNDBlZWFiM2Q3NTAyYzQwYWU0NTM2MjNj
MTE5NzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckNhbnZhc0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckNhbnZhc0FnZW50LmNwcApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNhbnZhc0FnZW50LmgiCiAKLSNpbmNsdWRlICJB
Y3RpdmVET01DYWxsYmFja01pY3JvdGFzay5oIgogI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQuaCIKICNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgpAQCAtNDUyLDE4ICs0NTEsMjYgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNB
Z2VudDo6cmVjb3JkQ2FudmFzQWN0aW9uKENhbnZhc1JlbmRlcmluZ0NvbnRleHQmIGNhbnZhc1Jl
bmQKICAgICAvLyBPbmx5IGVucXVldWUgYSBtaWNyb3Rhc2sgZm9yIHRoZSBmaXJzdCBhY3Rpb24g
b2YgZWFjaCBmcmFtZS4gQW55IHN1YnNlcXVlbnQgYWN0aW9ucyB3aWxsIGJlCiAgICAgLy8gY292
ZXJlZCBieSB0aGUgaW5pdGlhbCBtaWNyb3Rhc2sgdW50aWwgdGhlIG5leHQgZnJhbWUuCiAgICAg
aWYgKCFpbnNwZWN0b3JDYW52YXMtPmN1cnJlbnRGcmFtZUhhc0RhdGEoKSkgewotICAgICAgICBp
ZiAoYXV0byogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCA9IGluc3BlY3RvckNhbnZhcy0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiBxdWV1ZSA9IE1pY3JvdGFz
a1F1ZXVlOjptYWluVGhyZWFkUXVldWUoKTsKLSAgICAgICAgICAgIHF1ZXVlLmFwcGVuZChtYWtl
VW5pcXVlPEFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrPihxdWV1ZSwgKnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIFsmLCBwcm90ZWN0ZWRJbnNwZWN0b3JDYW52YXMgPSBpbnNwZWN0b3JDYW52YXMu
Y29weVJlZigpXSB7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8qIGNhbnZhc0VsZW1lbnQgPSBw
cm90ZWN0ZWRJbnNwZWN0b3JDYW52YXMtPmNhbnZhc0VsZW1lbnQoKSkgewotICAgICAgICAgICAg
ICAgICAgICBpZiAoY2FudmFzRWxlbWVudC0+aXNEZXNjZW5kYW50T2YoY2FudmFzRWxlbWVudC0+
ZG9jdW1lbnQoKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICAgICAgfQorICAgICAgICBNaWNyb3Rhc2tRdWV1ZTo6bWFpblRocmVhZFF1ZXVlKCkuYXBwZW5k
KG1ha2VVbmlxdWU8Vm9pZE1pY3JvdGFzaz4oWyYsIGNhbnZhc0lkID0gaW5zcGVjdG9yQ2FudmFz
LT5pZGVudGlmaWVyKCldIHsKKyAgICAgICAgICAgIGF1dG8gaW5zcGVjdG9yQ2FudmFzID0gbV9p
ZGVudGlmaWVyVG9JbnNwZWN0b3JDYW52YXMuZ2V0KGNhbnZhc0lkKTsKKyAgICAgICAgICAgIGlm
ICghaW5zcGVjdG9yQ2FudmFzKQorICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAg
ICAgICAgIGlmIChjYW52YXNSZW5kZXJpbmdDb250ZXh0LmNhbGxUcmFjaW5nQWN0aXZlKCkpCi0g
ICAgICAgICAgICAgICAgICAgIGRpZEZpbmlzaFJlY29yZGluZ0NhbnZhc0ZyYW1lKGNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQpOwotICAgICAgICAgICAgfSkpOwotICAgICAgICB9CisgICAgICAgICAg
ICBhdXRvKiBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gaW5zcGVjdG9yQ2FudmFzLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7CisgICAgICAgICAgICBpZiAoIWlzPERvY3VtZW50PihzY3JpcHRF
eGVjdXRpb25Db250ZXh0KSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAg
IC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTY4NDc1PiBXZWIgSW5zcGVjdG9yOiBD
b3JyZWN0bHkgZGlzcGxheSBpZnJhbWUncyBXZWJTb2NrZXRzCisgICAgICAgICAgICBpZiAoZG93
bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KS5wYWdlKCkgIT0gJm1faW5z
cGVjdGVkUGFnZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGF1dG8q
IGNhbnZhc1JlbmRlcmluZ0NvbnRleHQgPSBpbnNwZWN0b3JDYW52YXMtPmNhbnZhc0NvbnRleHQo
KTsKKyAgICAgICAgICAgIEFTU0VSVChjYW52YXNSZW5kZXJpbmdDb250ZXh0KTsKKyAgICAgICAg
ICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjAxNjUxPiBXZWIgSW5zcGVjdG9y
OiBDYW52YXM6IHN1cHBvcnQgY2FudmFzIHJlY29yZGluZ3MgZm9yIFdlYkdQVURldmljZQorCisg
ICAgICAgICAgICBpZiAoY2FudmFzUmVuZGVyaW5nQ29udGV4dC0+Y2FsbFRyYWNpbmdBY3RpdmUo
KSkKKyAgICAgICAgICAgICAgICBkaWRGaW5pc2hSZWNvcmRpbmdDYW52YXNGcmFtZSgqY2FudmFz
UmVuZGVyaW5nQ29udGV4dCk7CisgICAgICAgIH0pKTsKICAgICB9CiAKICAgICBpbnNwZWN0b3JD
YW52YXMtPnJlY29yZEFjdGlvbihuYW1lLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383971</attachid>
            <date>2019-11-20 10:29:46 -0800</date>
            <delta_ts>2019-11-21 21:24:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204395-20191120102946.patch</filename>
            <type>text/plain</type>
            <size>6983</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ZDQ0OTY4OTM2ZWJiYjY2ZjZmZWVjZDdmZjkwYWUxNjdhOGFhMmUyLi5k
YTRjZDdjMGQ3NDkyNGY1YzJlZDFjY2U1N2FhYzk4Zjk3ZDZiNWUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjYgQEAKKzIwMTktMTEtMTkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IENhbnZhczogYWRqdXN0IGBJbnNwZWN0b3JDYW52
YXNBZ2VudDo6cmVjb3JkQ2FudmFzQWN0aW9uYCB0byBhY3R1YWxseSBjaGVjayB0aGF0IHRoZSBg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dGAgc3RpbGwgZXhpc3RzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzOTUKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU3MzQ3NTA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBtaWNyb3Rhc2sgd2UgY3JlYXRlIHRvIGhhbmRsZSBtYXJraW5nIHRoZSBlbmQg
b2YgYSBmcmFtZSBmb3IgYSBkZXRhY2hlZCBjYW52YXMgZG9lc24ndAorICAgICAgICBhY3R1YWxs
eSBjaGVjayB0aGF0IHRoZSBgQ2FudmFzUmVuZGVyaW5nQ29udGV4dGAgc3RpbGwgZXhpc3RzLCBz
dWNoIGFzIGlmIGl0IGdldHMgR0NkIGR1cmluZworICAgICAgICBhIHJlY29yZGluZy4KKworICAg
ICAgICBJbnN0ZWFkIG9mIGNyZWF0aW5nIGEgbWljcm90YXNrIHBlci1jYW52YXMsIGNyZWF0ZSBh
IG1pY3JvdGFzayBwZXItYEluc3BlY3RvckNhbnZhc0FnZW50YAorICAgICAgICBhbmQgc2F2ZSBh
IGxpc3Qgb2YgYGNhbnZhc0lkYCB0aGF0IGFyZSBhY3RpdmVseSByZWNvcmRpbmcsIHdoaWNoIGNh
biB0aGVuIGJlIGl0ZXJhdGVkIHRvCisgICAgICAgIGhhbmRsZSBtYXJraW5nIHRoZSBlbmQgb2Yg
YSBmcmFtZSBmb3IgZWFjaCBvbmNlIHRoZSBtaWNyb3Rhc2sgZmlyZXMuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjpyZWNvcmRDYW52YXNBY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNhbnZhc0FnZW50OjpSZWNvcmRDYW52YXNBY3Rpb25NaWNyb3Rhc2s6OlJlY29y
ZENhbnZhc0FjdGlvbk1pY3JvdGFzayk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ2FudmFzQWdlbnQ6OlJlY29yZENhbnZhc0FjdGlvbk1pY3JvdGFzazo6cnVuKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6UmVjb3JkQ2FudmFzQWN0
aW9uTWljcm90YXNrOjpjYW5jZWwpOiBBZGRlZC4KKwogMjAxOS0xMS0xOSAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRE9NLmhpZ2hs
aWdodFNlbGVjdG9yIHNob3VsZCB3b3JrIGZvciAiZGl2LCBkaXY6OmJlZm9yZSIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2Vu
dC5jcHAKaW5kZXggMDE5OGYwZDdlNjI5OGRmOGIwMjlkYzZlMjhiZTEwNzIwMGRhY2U0MC4uY2Ni
MGRkZGViNDA4NjljMWZlODkyYTgyNzcxNzA0ZGY4YjExNTI5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAK
QEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JDYW52YXNBZ2VudC5oIgogCi0jaW5jbHVkZSAiQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2su
aCIKICNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTM5LDcgKzM4
LDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmgiCiAjaW5jbHVkZSAiSW5z
dHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIkpTRXhlY1N0YXRlLmgiCi0jaW5jbHVkZSAi
TWljcm90YXNrcy5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVkZSAiU3RyaW5n
QWRhcHRvcnMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JZGVudGlmaWVyc0ZhY3Rvcnku
aD4KQEAgLTQ0OSwyMSArNDQ3LDEyIEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnJlY29y
ZENhbnZhc0FjdGlvbihDYW52YXNSZW5kZXJpbmdDb250ZXh0JiBjYW52YXNSZW5kCiAgICAgaWYg
KCFjYW52YXNSZW5kZXJpbmdDb250ZXh0LmNhbGxUcmFjaW5nQWN0aXZlKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIC8vIE9ubHkgZW5xdWV1ZSBhIG1pY3JvdGFzayBmb3IgdGhlIGZpcnN0IGFj
dGlvbiBvZiBlYWNoIGZyYW1lLiBBbnkgc3Vic2VxdWVudCBhY3Rpb25zIHdpbGwgYmUKLSAgICAv
LyBjb3ZlcmVkIGJ5IHRoZSBpbml0aWFsIG1pY3JvdGFzayB1bnRpbCB0aGUgbmV4dCBmcmFtZS4K
LSAgICBpZiAoIWluc3BlY3RvckNhbnZhcy0+Y3VycmVudEZyYW1lSGFzRGF0YSgpKSB7Ci0gICAg
ICAgIGlmIChhdXRvKiBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gaW5zcGVjdG9yQ2FudmFzLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpIHsKLSAgICAgICAgICAgIGF1dG8mIHF1ZXVlID0gTWlj
cm90YXNrUXVldWU6Om1haW5UaHJlYWRRdWV1ZSgpOwotICAgICAgICAgICAgcXVldWUuYXBwZW5k
KG1ha2VVbmlxdWU8QWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2s+KHF1ZXVlLCAqc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgWyYsIHByb3RlY3RlZEluc3BlY3RvckNhbnZhcyA9IGluc3BlY3RvckNh
bnZhcy5jb3B5UmVmKCldIHsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byogY2FudmFzRWxlbWVu
dCA9IHByb3RlY3RlZEluc3BlY3RvckNhbnZhcy0+Y2FudmFzRWxlbWVudCgpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChjYW52YXNFbGVtZW50LT5pc0Rlc2NlbmRhbnRPZihjYW52YXNFbGVt
ZW50LT5kb2N1bWVudCgpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgICAgICB9CisgICAgbV9yZWNvcmRpbmdDYW52YXNJZGVudGlmaWVycy5hZGQoaW5zcGVj
dG9yQ2FudmFzLT5pZGVudGlmaWVyKCkpOwogCi0gICAgICAgICAgICAgICAgaWYgKGNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQuY2FsbFRyYWNpbmdBY3RpdmUoKSkKLSAgICAgICAgICAgICAgICAgICAg
ZGlkRmluaXNoUmVjb3JkaW5nQ2FudmFzRnJhbWUoY2FudmFzUmVuZGVyaW5nQ29udGV4dCk7Ci0g
ICAgICAgICAgICB9KSk7Ci0gICAgICAgIH0KKyAgICBpZiAoIW1fcmVjb3JkQ2FudmFzQWN0aW9u
TWljcm90YXNrKSB7CisgICAgICAgIGF1dG8gbWljcm90YXNrID0gbWFrZVVuaXF1ZTxSZWNvcmRD
YW52YXNBY3Rpb25NaWNyb3Rhc2s+KCp0aGlzKTsKKyAgICAgICAgbV9yZWNvcmRDYW52YXNBY3Rp
b25NaWNyb3Rhc2sgPSBtaWNyb3Rhc2suZ2V0KCk7CisgICAgICAgIE1pY3JvdGFza1F1ZXVlOjpt
YWluVGhyZWFkUXVldWUoKS5hcHBlbmQoV1RGTW92ZShtaWNyb3Rhc2spKTsKICAgICB9CiAKICAg
ICBpbnNwZWN0b3JDYW52YXMtPnJlY29yZEFjdGlvbihuYW1lLCBXVEZNb3ZlKHBhcmFtZXRlcnMp
KTsKQEAgLTc0MCw2ICs3MjksMTIgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVzZXQo
KQogICAgIG1fcmVtb3ZlZFByb2dyYW1JZGVudGlmaWVycy5jbGVhcigpOwogICAgIGlmIChtX3By
b2dyYW1EZXN0cm95ZWRUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBtX3Byb2dyYW1EZXN0cm95
ZWRUaW1lci5zdG9wKCk7CisKKyAgICBtX3JlY29yZGluZ0NhbnZhc0lkZW50aWZpZXJzLmNsZWFy
KCk7CisgICAgaWYgKG1fcmVjb3JkQ2FudmFzQWN0aW9uTWljcm90YXNrKSB7CisgICAgICAgIG1f
cmVjb3JkQ2FudmFzQWN0aW9uTWljcm90YXNrLT5jYW5jZWwoKTsKKyAgICAgICAgbV9yZWNvcmRD
YW52YXNBY3Rpb25NaWNyb3Rhc2sgPSBudWxscHRyOworICAgIH0KIH0KIAogSW5zcGVjdG9yQ2Fu
dmFzJiBJbnNwZWN0b3JDYW52YXNBZ2VudDo6YmluZENhbnZhcyhDYW52YXNSZW5kZXJpbmdDb250
ZXh0JiBjb250ZXh0LCBib29sIGNhcHR1cmVCYWNrdHJhY2UpCkBAIC04ODIsNCArODc3LDM4IEBA
IFJlZlB0cjxJbnNwZWN0b3JTaGFkZXJQcm9ncmFtPiBJbnNwZWN0b3JDYW52YXNBZ2VudDo6Zmlu
ZEluc3BlY3RvclByb2dyYW0oV2ViR1BVCiB9CiAjZW5kaWYKIAorSW5zcGVjdG9yQ2FudmFzQWdl
bnQ6OlJlY29yZENhbnZhc0FjdGlvbk1pY3JvdGFzazo6UmVjb3JkQ2FudmFzQWN0aW9uTWljcm90
YXNrKEluc3BlY3RvckNhbnZhc0FnZW50JiBjYW52YXNBZ2VudCkKKyAgICA6IE1pY3JvdGFzaygp
CisgICAgLCBtX2NhbnZhc0FnZW50KGNhbnZhc0FnZW50KQoreworfQorCitNaWNyb3Rhc2s6OlJl
c3VsdCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6UmVjb3JkQ2FudmFzQWN0aW9uTWljcm90YXNrOjpy
dW4oKQoreworICAgIEFTU0VSVChtX2NhbnZhc0FnZW50Lm1fcmVjb3JkQ2FudmFzQWN0aW9uTWlj
cm90YXNrID09IHRoaXMpOworICAgIG1fY2FudmFzQWdlbnQubV9yZWNvcmRDYW52YXNBY3Rpb25N
aWNyb3Rhc2sgPSBudWxscHRyOworCisgICAgZm9yIChhdXRvJiBpZGVudGlmaWVyIDogbV9jYW52
YXNBZ2VudC5tX3JlY29yZGluZ0NhbnZhc0lkZW50aWZpZXJzKSB7CisgICAgICAgIGF1dG8gaW5z
cGVjdG9yQ2FudmFzID0gbV9jYW52YXNBZ2VudC5tX2lkZW50aWZpZXJUb0luc3BlY3RvckNhbnZh
cy5nZXQoaWRlbnRpZmllcik7CisgICAgICAgIGlmICghaW5zcGVjdG9yQ2FudmFzKQorICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0byogY2FudmFzUmVuZGVyaW5nQ29udGV4dCA9
IGluc3BlY3RvckNhbnZhcy0+Y2FudmFzQ29udGV4dCgpOworICAgICAgICBBU1NFUlQoY2FudmFz
UmVuZGVyaW5nQ29udGV4dCk7CisgICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3Jn
L2IvMjAxNjUxPiBXZWIgSW5zcGVjdG9yOiBDYW52YXM6IHN1cHBvcnQgY2FudmFzIHJlY29yZGlu
Z3MgZm9yIFdlYkdQVURldmljZQorCisgICAgICAgIGlmIChjYW52YXNSZW5kZXJpbmdDb250ZXh0
LT5jYWxsVHJhY2luZ0FjdGl2ZSgpKQorICAgICAgICAgICAgbV9jYW52YXNBZ2VudC5kaWRGaW5p
c2hSZWNvcmRpbmdDYW52YXNGcmFtZSgqY2FudmFzUmVuZGVyaW5nQ29udGV4dCk7CisgICAgfQor
CisgICAgbV9jYW52YXNBZ2VudC5tX3JlY29yZGluZ0NhbnZhc0lkZW50aWZpZXJzLmNsZWFyKCk7
CisKKyAgICByZXR1cm4gTWljcm90YXNrOjpSZXN1bHQ6OkRvbmU7Cit9CisKK3ZvaWQgSW5zcGVj
dG9yQ2FudmFzQWdlbnQ6OlJlY29yZENhbnZhc0FjdGlvbk1pY3JvdGFzazo6Y2FuY2VsKCkKK3sK
KyAgICByZW1vdmVTZWxmRnJvbVF1ZXVlKE1pY3JvdGFza1F1ZXVlOjptYWluVGhyZWFkUXVldWUo
KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaAppbmRleCA3YzAxNGE4
NmM1NGU0MTMyNTQ0ZDk0MGU0MDU0NDI2OGI3N2I0Y2Y5Li4yMWQwYzk4OWQ0ZDMzNWFjZjIxMmFh
ODEyZjdiNDhjNjVlYWZjNDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiQ2FudmFzQmFzZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNhbnZhcy5oIgogI2luY2x1
ZGUgIkluc3BlY3RvcldlYkFnZW50QmFzZS5oIgorI2luY2x1ZGUgIk1pY3JvdGFza3MuaCIKICNp
bmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250
ZW5kRGlzcGF0Y2hlcnMuaD4KQEAgLTE1Nyw2ICsxNTgsMTcgQEAgcHJpdmF0ZToKICAgICBWZWN0
b3I8U3RyaW5nPiBtX3JlbW92ZWRQcm9ncmFtSWRlbnRpZmllcnM7CiAgICAgVGltZXIgbV9wcm9n
cmFtRGVzdHJveWVkVGltZXI7CiAKKyAgICBjbGFzcyBSZWNvcmRDYW52YXNBY3Rpb25NaWNyb3Rh
c2sgZmluYWwgOiBwdWJsaWMgTWljcm90YXNrIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFJlY29y
ZENhbnZhc0FjdGlvbk1pY3JvdGFzayhJbnNwZWN0b3JDYW52YXNBZ2VudCYpOworICAgICAgICB2
b2lkIGNhbmNlbCgpOworICAgIHByaXZhdGU6CisgICAgICAgIE1pY3JvdGFzazo6UmVzdWx0IHJ1
bigpIGZpbmFsOworICAgICAgICBJbnNwZWN0b3JDYW52YXNBZ2VudCYgbV9jYW52YXNBZ2VudDsK
KyAgICB9OworICAgIFJlY29yZENhbnZhc0FjdGlvbk1pY3JvdGFzayogbV9yZWNvcmRDYW52YXNB
Y3Rpb25NaWNyb3Rhc2sgeyBudWxscHRyIH07CisgICAgSGFzaFNldDxTdHJpbmc+IG1fcmVjb3Jk
aW5nQ2FudmFzSWRlbnRpZmllcnM7CisKICAgICBPcHRpb25hbDxzaXplX3Q+IG1fcmVjb3JkaW5n
QXV0b0NhcHR1cmVGcmFtZUNvdW50OwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384122</attachid>
            <date>2019-11-21 21:24:42 -0800</date>
            <delta_ts>2019-11-21 21:28:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204395-20191121212441.patch</filename>
            <type>text/plain</type>
            <size>7320</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlNGJlNmYwZDEyZjRkOGEyZDhmMWEzZTQzMTZiODU4OTljZjU1MDJjLi4w
NWM0N2FmNzBhYmJlMWVlMTM0ZDg2MTJiN2ZjYzgzYzJhNzY2YzAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjUgQEAKKzIwMTktMTEtMjEgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IENhbnZhczogYWRqdXN0IGBJbnNwZWN0b3JDYW52
YXNBZ2VudDo6cmVjb3JkQ2FudmFzQWN0aW9uYCB0byBhY3R1YWxseSBjaGVjayB0aGF0IHRoZSBg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dGAgc3RpbGwgZXhpc3RzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzOTUKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU3MzQ3NTA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBtaWNyb3Rhc2sgd2UgY3JlYXRlIHRvIGhhbmRsZSBtYXJraW5nIHRoZSBlbmQg
b2YgYSBmcmFtZSBmb3IgYSBkZXRhY2hlZCBjYW52YXMgZG9lc24ndAorICAgICAgICBhY3R1YWxs
eSBjaGVjayB0aGF0IHRoZSBgQ2FudmFzUmVuZGVyaW5nQ29udGV4dGAgc3RpbGwgZXhpc3RzLCBz
dWNoIGFzIGlmIGl0IGdldHMgR0NkIGR1cmluZworICAgICAgICBhIHJlY29yZGluZy4KKworICAg
ICAgICBJbnN0ZWFkIG9mIGNyZWF0aW5nIGEgbWljcm90YXNrIHBlci1jYW52YXMsIGNyZWF0ZSBh
IG1pY3JvdGFzayBwZXItYEluc3BlY3RvckNhbnZhc0FnZW50YAorICAgICAgICBhbmQgc2F2ZSBh
IGxpc3Qgb2YgYGNhbnZhc0lkYCB0aGF0IGFyZSBhY3RpdmVseSByZWNvcmRpbmcsIHdoaWNoIGNh
biB0aGVuIGJlIGl0ZXJhdGVkIHRvCisgICAgICAgIGhhbmRsZSBtYXJraW5nIHRoZSBlbmQgb2Yg
YSBmcmFtZSBmb3IgZWFjaCBvbmNlIHRoZSBtaWNyb3Rhc2sgZmlyZXMuIElmIHRoZSBgY2FudmFz
SWRgIGNhbid0CisgICAgICAgIGJlIHJlLWZvdW5kLCB0aGVuIHRoZSByZWxhdGVkIGBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0YCBtdXN0IGhhdmUgYmVlbiByZW1vdmVkLgorCisgICAgICAgICogaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVjb3JkQ2FudmFzQWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRGaW5pc2hSZWNvcmRpbmdDYW52YXNGcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVzZXQpOgorCiAy
MDE5LTExLTIxICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W1dlYkdMXSBGaXggZnJhbWVidWZmZXJUZXh0dXJlMkQgd2l0aCBERVBUSF9TVEVOQ0lMX0FUVEFD
SE1FTlQgb24gQU5HTEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKaW5kZXggM2QxMDQ4MTAxY2YzNTBiNTVmYzAx
NzE2NDg5OTM2ZTVlNzZmNjU4My4uMTJkZjk0MzJiZWE2OTc3YWU1ZGQyZDRhNTNhOWE1OTBmMjIx
NjM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDYW52YXNBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDYW52YXNBZ2VudC5oIgogCi0jaW5jbHVkZSAiQWN0
aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaCIKICNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250
ZXh0LmgiCiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKQEAgLTQwLDcgKzM5LDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtLmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIkpT
RXhlY1N0YXRlLmgiCi0jaW5jbHVkZSAiTWljcm90YXNrcy5oIgogI2luY2x1ZGUgIlNjcmlwdFN0
YXRlLmgiCiAjaW5jbHVkZSAiU3RyaW5nQWRhcHRvcnMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9JZGVudGlmaWVyc0ZhY3RvcnkuaD4KQEAgLTQ1MCwyNCArNDQ4LDM1IEBAIHZvaWQgSW5z
cGVjdG9yQ2FudmFzQWdlbnQ6OnJlY29yZENhbnZhc0FjdGlvbihDYW52YXNSZW5kZXJpbmdDb250
ZXh0JiBjYW52YXNSZW5kCiAgICAgaWYgKCFjYW52YXNSZW5kZXJpbmdDb250ZXh0LmNhbGxUcmFj
aW5nQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIE9ubHkgZW5xdWV1ZSBhIG1p
Y3JvdGFzayBmb3IgdGhlIGZpcnN0IGFjdGlvbiBvZiBlYWNoIGZyYW1lLiBBbnkgc3Vic2VxdWVu
dCBhY3Rpb25zIHdpbGwgYmUKLSAgICAvLyBjb3ZlcmVkIGJ5IHRoZSBpbml0aWFsIG1pY3JvdGFz
ayB1bnRpbCB0aGUgbmV4dCBmcmFtZS4KLSAgICBpZiAoIWluc3BlY3RvckNhbnZhcy0+Y3VycmVu
dEZyYW1lSGFzRGF0YSgpKSB7CisgICAgLy8gT25seSBlbnF1ZXVlIG9uZSBtaWNyb3Rhc2sgZm9y
IGFsbCBhY3RpdmVseSByZWNvcmRpbmcgY2FudmFzZXMuCisgICAgaWYgKG1fcmVjb3JkaW5nQ2Fu
dmFzSWRlbnRpZmllcnMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0ID0gaW5zcGVjdG9yQ2FudmFzLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
IHsKLSAgICAgICAgICAgIGF1dG8mIGV2ZW50TG9vcCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQt
PmV2ZW50TG9vcCgpOwotICAgICAgICAgICAgYXV0byBtaWNyb3Rhc2sgPSBtYWtlVW5pcXVlPEFj
dGl2ZURPTUNhbGxiYWNrTWljcm90YXNrPihldmVudExvb3AubWljcm90YXNrUXVldWUoKSwgKnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQsIFsmLCBwcm90ZWN0ZWRJbnNwZWN0b3JDYW52YXMgPSBpbnNw
ZWN0b3JDYW52YXMuY29weVJlZigpXSB7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8qIGNhbnZh
c0VsZW1lbnQgPSBwcm90ZWN0ZWRJbnNwZWN0b3JDYW52YXMtPmNhbnZhc0VsZW1lbnQoKSkgewot
ICAgICAgICAgICAgICAgICAgICBpZiAoY2FudmFzRWxlbWVudC0+aXNEZXNjZW5kYW50T2YoY2Fu
dmFzRWxlbWVudC0+ZG9jdW1lbnQoKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5ldmVudExvb3AoKS5xdWV1ZU1p
Y3JvdGFzayhbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
ICAgICAgICBhdXRvJiBjYW52YXNBZ2VudCA9ICp3ZWFrVGhpczsKKworICAgICAgICAgICAgICAg
IGZvciAoYXV0byYgaWRlbnRpZmllciA6IGNhbnZhc0FnZW50Lm1fcmVjb3JkaW5nQ2FudmFzSWRl
bnRpZmllcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBpbnNwZWN0b3JDYW52YXMgPSBj
YW52YXNBZ2VudC5tX2lkZW50aWZpZXJUb0luc3BlY3RvckNhbnZhcy5nZXQoaWRlbnRpZmllcik7
CisgICAgICAgICAgICAgICAgICAgIGlmICghaW5zcGVjdG9yQ2FudmFzKQorICAgICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICAgICAgYXV0byogY2FudmFz
UmVuZGVyaW5nQ29udGV4dCA9IGluc3BlY3RvckNhbnZhcy0+Y2FudmFzQ29udGV4dCgpOworICAg
ICAgICAgICAgICAgICAgICBBU1NFUlQoY2FudmFzUmVuZGVyaW5nQ29udGV4dCk7CisgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjAxNjUxPiBXZWIg
SW5zcGVjdG9yOiBDYW52YXM6IHN1cHBvcnQgY2FudmFzIHJlY29yZGluZ3MgZm9yIFdlYkdQVURl
dmljZQorCisgICAgICAgICAgICAgICAgICAgIGlmIChjYW52YXNSZW5kZXJpbmdDb250ZXh0LT5j
YWxsVHJhY2luZ0FjdGl2ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzQWdlbnQu
ZGlkRmluaXNoUmVjb3JkaW5nQ2FudmFzRnJhbWUoKmNhbnZhc1JlbmRlcmluZ0NvbnRleHQpOwog
ICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmIChjYW52YXNSZW5kZXJpbmdD
b250ZXh0LmNhbGxUcmFjaW5nQWN0aXZlKCkpCi0gICAgICAgICAgICAgICAgICAgIGRpZEZpbmlz
aFJlY29yZGluZ0NhbnZhc0ZyYW1lKGNhbnZhc1JlbmRlcmluZ0NvbnRleHQpOworICAgICAgICAg
ICAgICAgIGNhbnZhc0FnZW50Lm1fcmVjb3JkaW5nQ2FudmFzSWRlbnRpZmllcnMuY2xlYXIoKTsK
ICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgZXZlbnRMb29wLnF1ZXVlTWljcm90YXNrQ2Fs
bGJhY2soV1RGTW92ZShtaWNyb3Rhc2spKTsKICAgICAgICAgfQogICAgIH0KIAorICAgIG1fcmVj
b3JkaW5nQ2FudmFzSWRlbnRpZmllcnMuYWRkKGluc3BlY3RvckNhbnZhcy0+aWRlbnRpZmllcigp
KTsKKwogICAgIGluc3BlY3RvckNhbnZhcy0+cmVjb3JkQWN0aW9uKG5hbWUsIFdURk1vdmUocGFy
YW1ldGVycykpOwogCiAgICAgaWYgKCFpbnNwZWN0b3JDYW52YXMtPmhhc0J1ZmZlclNwYWNlKCkp
CkBAIC01MTYsNiArNTI1LDcgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlkRmluaXNo
UmVjb3JkaW5nQ2FudmFzRnJhbWUoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYKICAgICAgICAgaWYg
KGZvcmNlRGlzcGF0Y2gpIHsKICAgICAgICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZWNv
cmRpbmdGaW5pc2hlZChpbnNwZWN0b3JDYW52YXMtPmlkZW50aWZpZXIoKSwgbnVsbHB0cik7CiAg
ICAgICAgICAgICBpbnNwZWN0b3JDYW52YXMtPnJlc2V0UmVjb3JkaW5nRGF0YSgpOworICAgICAg
ICAgICAgQVNTRVJUKCFtX3JlY29yZGluZ0NhbnZhc0lkZW50aWZpZXJzLmNvbnRhaW5zKGluc3Bl
Y3RvckNhbnZhcy0+aWRlbnRpZmllcigpKTspCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTUzMSw2ICs1NDEsOCBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRG
aW5pc2hSZWNvcmRpbmdDYW52YXNGcmFtZShDYW52YXNSZW5kZXJpbmdDb250ZXh0JgogICAgICAg
ICByZXR1cm47CiAKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cmVjb3JkaW5nRmluaXNoZWQo
aW5zcGVjdG9yQ2FudmFzLT5pZGVudGlmaWVyKCksIGluc3BlY3RvckNhbnZhcy0+cmVsZWFzZU9i
amVjdEZvclJlY29yZGluZygpKTsKKworICAgIG1fcmVjb3JkaW5nQ2FudmFzSWRlbnRpZmllcnMu
cmVtb3ZlKGluc3BlY3RvckNhbnZhcy0+aWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JDYW52YXNBZ2VudDo6Y29uc29sZVN0YXJ0UmVjb3JkaW5nQ2FudmFzKENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQmIGNvbnRleHQsIEpTQzo6SlNHbG9iYWxPYmplY3QmIGV4ZWMsIEpTQzo6SlNPYmpl
Y3QqIG9wdGlvbnMpCkBAIC03NDIsNiArNzU0LDggQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2Vu
dDo6cmVzZXQoKQogICAgIG1fcmVtb3ZlZFByb2dyYW1JZGVudGlmaWVycy5jbGVhcigpOwogICAg
IGlmIChtX3Byb2dyYW1EZXN0cm95ZWRUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBtX3Byb2dy
YW1EZXN0cm95ZWRUaW1lci5zdG9wKCk7CisKKyAgICBtX3JlY29yZGluZ0NhbnZhc0lkZW50aWZp
ZXJzLmNsZWFyKCk7CiB9CiAKIEluc3BlY3RvckNhbnZhcyYgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6
OmJpbmRDYW52YXMoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCwgYm9vbCBjYXB0dXJl
QmFja3RyYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDYW52YXNBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDYW52YXNBZ2VudC5oCmluZGV4IDdjMDE0YTg2YzU0ZTQxMzI1NDRkOTQwZTQwNTQ0
MjY4Yjc3YjRjZjkuLjI4M2VmZGFkZDA5NDRhYTdkYmEyZDdiZjczOGYxMTQyZjI3NDI5OTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFz
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNh
bnZhc0FnZW50LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9J
bnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8aW5pdGlhbGl6ZXJfbGlz
dD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAK
IG5hbWVzcGFjZSBJbnNwZWN0b3IgewogY2xhc3MgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwpAQCAt
NTYsNyArNTcsNyBAQCBjbGFzcyBXZWJHUFVTd2FwQ2hhaW47CiAKIHR5cGVkZWYgU3RyaW5nIEVy
cm9yU3RyaW5nOwogCi1jbGFzcyBJbnNwZWN0b3JDYW52YXNBZ2VudCBmaW5hbCA6IHB1YmxpYyBJ
bnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0b3I6OkNhbnZhc0JhY2tlbmREaXNwYXRj
aGVySGFuZGxlciwgcHVibGljIENhbnZhc09ic2VydmVyIHsKK2NsYXNzIEluc3BlY3RvckNhbnZh
c0FnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3BlY3Rv
cjo6Q2FudmFzQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyLCBwdWJsaWMgQ2FudmFzT2JzZXJ2ZXIs
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxJbnNwZWN0b3JDYW52YXNBZ2VudD4gewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckNhbnZhc0FnZW50KTsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTE1Nyw2ICsxNTgsOCBAQCBwcml2YXRlOgogICAgIFZl
Y3RvcjxTdHJpbmc+IG1fcmVtb3ZlZFByb2dyYW1JZGVudGlmaWVyczsKICAgICBUaW1lciBtX3By
b2dyYW1EZXN0cm95ZWRUaW1lcjsKIAorICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3JlY29yZGluZ0Nh
bnZhc0lkZW50aWZpZXJzOworCiAgICAgT3B0aW9uYWw8c2l6ZV90PiBtX3JlY29yZGluZ0F1dG9D
YXB0dXJlRnJhbWVDb3VudDsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384123</attachid>
            <date>2019-11-21 21:28:57 -0800</date>
            <delta_ts>2019-11-22 12:29:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204395-20191121212856.patch</filename>
            <type>text/plain</type>
            <size>7320</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlNGJlNmYwZDEyZjRkOGEyZDhmMWEzZTQzMTZiODU4OTljZjU1MDJjLi4w
NWM0N2FmNzBhYmJlMWVlMTM0ZDg2MTJiN2ZjYzgzYzJhNzY2YzAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjUgQEAKKzIwMTktMTEtMjEgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IENhbnZhczogYWRqdXN0IGBJbnNwZWN0b3JDYW52
YXNBZ2VudDo6cmVjb3JkQ2FudmFzQWN0aW9uYCB0byBhY3R1YWxseSBjaGVjayB0aGF0IHRoZSBg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dGAgc3RpbGwgZXhpc3RzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzOTUKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU3MzQ3NTA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBtaWNyb3Rhc2sgd2UgY3JlYXRlIHRvIGhhbmRsZSBtYXJraW5nIHRoZSBlbmQg
b2YgYSBmcmFtZSBmb3IgYSBkZXRhY2hlZCBjYW52YXMgZG9lc24ndAorICAgICAgICBhY3R1YWxs
eSBjaGVjayB0aGF0IHRoZSBgQ2FudmFzUmVuZGVyaW5nQ29udGV4dGAgc3RpbGwgZXhpc3RzLCBz
dWNoIGFzIGlmIGl0IGdldHMgR0NkIGR1cmluZworICAgICAgICBhIHJlY29yZGluZy4KKworICAg
ICAgICBJbnN0ZWFkIG9mIGNyZWF0aW5nIGEgbWljcm90YXNrIHBlci1jYW52YXMsIGNyZWF0ZSBh
IG1pY3JvdGFzayBwZXItYEluc3BlY3RvckNhbnZhc0FnZW50YAorICAgICAgICBhbmQgc2F2ZSBh
IGxpc3Qgb2YgYGNhbnZhc0lkYCB0aGF0IGFyZSBhY3RpdmVseSByZWNvcmRpbmcsIHdoaWNoIGNh
biB0aGVuIGJlIGl0ZXJhdGVkIHRvCisgICAgICAgIGhhbmRsZSBtYXJraW5nIHRoZSBlbmQgb2Yg
YSBmcmFtZSBmb3IgZWFjaCBvbmNlIHRoZSBtaWNyb3Rhc2sgZmlyZXMuIElmIHRoZSBgY2FudmFz
SWRgIGNhbid0CisgICAgICAgIGJlIHJlLWZvdW5kLCB0aGVuIHRoZSByZWxhdGVkIGBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0YCBtdXN0IGhhdmUgYmVlbiByZW1vdmVkLgorCisgICAgICAgICogaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVjb3JkQ2FudmFzQWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRGaW5pc2hSZWNvcmRpbmdDYW52YXNGcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVzZXQpOgorCiAy
MDE5LTExLTIxICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W1dlYkdMXSBGaXggZnJhbWVidWZmZXJUZXh0dXJlMkQgd2l0aCBERVBUSF9TVEVOQ0lMX0FUVEFD
SE1FTlQgb24gQU5HTEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKaW5kZXggM2QxMDQ4MTAxY2YzNTBiNTVmYzAx
NzE2NDg5OTM2ZTVlNzZmNjU4My4uNTM0NjlkYzQ5YjE2NTQ2MjQ3MjU2NjZjNDEyYWRlOWQyNGE1
MmNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDYW52YXNBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDYW52YXNBZ2VudC5oIgogCi0jaW5jbHVkZSAiQWN0
aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaCIKICNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250
ZXh0LmgiCiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKQEAgLTQwLDcgKzM5LDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtLmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIkpT
RXhlY1N0YXRlLmgiCi0jaW5jbHVkZSAiTWljcm90YXNrcy5oIgogI2luY2x1ZGUgIlNjcmlwdFN0
YXRlLmgiCiAjaW5jbHVkZSAiU3RyaW5nQWRhcHRvcnMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9JZGVudGlmaWVyc0ZhY3RvcnkuaD4KQEAgLTQ1MCwyNCArNDQ4LDM1IEBAIHZvaWQgSW5z
cGVjdG9yQ2FudmFzQWdlbnQ6OnJlY29yZENhbnZhc0FjdGlvbihDYW52YXNSZW5kZXJpbmdDb250
ZXh0JiBjYW52YXNSZW5kCiAgICAgaWYgKCFjYW52YXNSZW5kZXJpbmdDb250ZXh0LmNhbGxUcmFj
aW5nQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIE9ubHkgZW5xdWV1ZSBhIG1p
Y3JvdGFzayBmb3IgdGhlIGZpcnN0IGFjdGlvbiBvZiBlYWNoIGZyYW1lLiBBbnkgc3Vic2VxdWVu
dCBhY3Rpb25zIHdpbGwgYmUKLSAgICAvLyBjb3ZlcmVkIGJ5IHRoZSBpbml0aWFsIG1pY3JvdGFz
ayB1bnRpbCB0aGUgbmV4dCBmcmFtZS4KLSAgICBpZiAoIWluc3BlY3RvckNhbnZhcy0+Y3VycmVu
dEZyYW1lSGFzRGF0YSgpKSB7CisgICAgLy8gT25seSBlbnF1ZXVlIG9uZSBtaWNyb3Rhc2sgZm9y
IGFsbCBhY3RpdmVseSByZWNvcmRpbmcgY2FudmFzZXMuCisgICAgaWYgKG1fcmVjb3JkaW5nQ2Fu
dmFzSWRlbnRpZmllcnMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0ID0gaW5zcGVjdG9yQ2FudmFzLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
IHsKLSAgICAgICAgICAgIGF1dG8mIGV2ZW50TG9vcCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQt
PmV2ZW50TG9vcCgpOwotICAgICAgICAgICAgYXV0byBtaWNyb3Rhc2sgPSBtYWtlVW5pcXVlPEFj
dGl2ZURPTUNhbGxiYWNrTWljcm90YXNrPihldmVudExvb3AubWljcm90YXNrUXVldWUoKSwgKnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQsIFsmLCBwcm90ZWN0ZWRJbnNwZWN0b3JDYW52YXMgPSBpbnNw
ZWN0b3JDYW52YXMuY29weVJlZigpXSB7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8qIGNhbnZh
c0VsZW1lbnQgPSBwcm90ZWN0ZWRJbnNwZWN0b3JDYW52YXMtPmNhbnZhc0VsZW1lbnQoKSkgewot
ICAgICAgICAgICAgICAgICAgICBpZiAoY2FudmFzRWxlbWVudC0+aXNEZXNjZW5kYW50T2YoY2Fu
dmFzRWxlbWVudC0+ZG9jdW1lbnQoKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5ldmVudExvb3AoKS5xdWV1ZU1p
Y3JvdGFzayhbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
ICAgICAgICBhdXRvJiBjYW52YXNBZ2VudCA9ICp3ZWFrVGhpczsKKworICAgICAgICAgICAgICAg
IGZvciAoYXV0byYgaWRlbnRpZmllciA6IGNhbnZhc0FnZW50Lm1fcmVjb3JkaW5nQ2FudmFzSWRl
bnRpZmllcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBpbnNwZWN0b3JDYW52YXMgPSBj
YW52YXNBZ2VudC5tX2lkZW50aWZpZXJUb0luc3BlY3RvckNhbnZhcy5nZXQoaWRlbnRpZmllcik7
CisgICAgICAgICAgICAgICAgICAgIGlmICghaW5zcGVjdG9yQ2FudmFzKQorICAgICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICAgICAgYXV0byogY2FudmFz
UmVuZGVyaW5nQ29udGV4dCA9IGluc3BlY3RvckNhbnZhcy0+Y2FudmFzQ29udGV4dCgpOworICAg
ICAgICAgICAgICAgICAgICBBU1NFUlQoY2FudmFzUmVuZGVyaW5nQ29udGV4dCk7CisgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjAxNjUxPiBXZWIg
SW5zcGVjdG9yOiBDYW52YXM6IHN1cHBvcnQgY2FudmFzIHJlY29yZGluZ3MgZm9yIFdlYkdQVURl
dmljZQorCisgICAgICAgICAgICAgICAgICAgIGlmIChjYW52YXNSZW5kZXJpbmdDb250ZXh0LT5j
YWxsVHJhY2luZ0FjdGl2ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzQWdlbnQu
ZGlkRmluaXNoUmVjb3JkaW5nQ2FudmFzRnJhbWUoKmNhbnZhc1JlbmRlcmluZ0NvbnRleHQpOwog
ICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmIChjYW52YXNSZW5kZXJpbmdD
b250ZXh0LmNhbGxUcmFjaW5nQWN0aXZlKCkpCi0gICAgICAgICAgICAgICAgICAgIGRpZEZpbmlz
aFJlY29yZGluZ0NhbnZhc0ZyYW1lKGNhbnZhc1JlbmRlcmluZ0NvbnRleHQpOworICAgICAgICAg
ICAgICAgIGNhbnZhc0FnZW50Lm1fcmVjb3JkaW5nQ2FudmFzSWRlbnRpZmllcnMuY2xlYXIoKTsK
ICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgZXZlbnRMb29wLnF1ZXVlTWljcm90YXNrQ2Fs
bGJhY2soV1RGTW92ZShtaWNyb3Rhc2spKTsKICAgICAgICAgfQogICAgIH0KIAorICAgIG1fcmVj
b3JkaW5nQ2FudmFzSWRlbnRpZmllcnMuYWRkKGluc3BlY3RvckNhbnZhcy0+aWRlbnRpZmllcigp
KTsKKwogICAgIGluc3BlY3RvckNhbnZhcy0+cmVjb3JkQWN0aW9uKG5hbWUsIFdURk1vdmUocGFy
YW1ldGVycykpOwogCiAgICAgaWYgKCFpbnNwZWN0b3JDYW52YXMtPmhhc0J1ZmZlclNwYWNlKCkp
CkBAIC01MTYsNiArNTI1LDcgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlkRmluaXNo
UmVjb3JkaW5nQ2FudmFzRnJhbWUoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYKICAgICAgICAgaWYg
KGZvcmNlRGlzcGF0Y2gpIHsKICAgICAgICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZWNv
cmRpbmdGaW5pc2hlZChpbnNwZWN0b3JDYW52YXMtPmlkZW50aWZpZXIoKSwgbnVsbHB0cik7CiAg
ICAgICAgICAgICBpbnNwZWN0b3JDYW52YXMtPnJlc2V0UmVjb3JkaW5nRGF0YSgpOworICAgICAg
ICAgICAgQVNTRVJUKCFtX3JlY29yZGluZ0NhbnZhc0lkZW50aWZpZXJzLmNvbnRhaW5zKGluc3Bl
Y3RvckNhbnZhcy0+aWRlbnRpZmllcigpKSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTUzMSw2ICs1NDEsOCBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRG
aW5pc2hSZWNvcmRpbmdDYW52YXNGcmFtZShDYW52YXNSZW5kZXJpbmdDb250ZXh0JgogICAgICAg
ICByZXR1cm47CiAKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cmVjb3JkaW5nRmluaXNoZWQo
aW5zcGVjdG9yQ2FudmFzLT5pZGVudGlmaWVyKCksIGluc3BlY3RvckNhbnZhcy0+cmVsZWFzZU9i
amVjdEZvclJlY29yZGluZygpKTsKKworICAgIG1fcmVjb3JkaW5nQ2FudmFzSWRlbnRpZmllcnMu
cmVtb3ZlKGluc3BlY3RvckNhbnZhcy0+aWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JDYW52YXNBZ2VudDo6Y29uc29sZVN0YXJ0UmVjb3JkaW5nQ2FudmFzKENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQmIGNvbnRleHQsIEpTQzo6SlNHbG9iYWxPYmplY3QmIGV4ZWMsIEpTQzo6SlNPYmpl
Y3QqIG9wdGlvbnMpCkBAIC03NDIsNiArNzU0LDggQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2Vu
dDo6cmVzZXQoKQogICAgIG1fcmVtb3ZlZFByb2dyYW1JZGVudGlmaWVycy5jbGVhcigpOwogICAg
IGlmIChtX3Byb2dyYW1EZXN0cm95ZWRUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBtX3Byb2dy
YW1EZXN0cm95ZWRUaW1lci5zdG9wKCk7CisKKyAgICBtX3JlY29yZGluZ0NhbnZhc0lkZW50aWZp
ZXJzLmNsZWFyKCk7CiB9CiAKIEluc3BlY3RvckNhbnZhcyYgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6
OmJpbmRDYW52YXMoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCwgYm9vbCBjYXB0dXJl
QmFja3RyYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDYW52YXNBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDYW52YXNBZ2VudC5oCmluZGV4IDdjMDE0YTg2YzU0ZTQxMzI1NDRkOTQwZTQwNTQ0
MjY4Yjc3YjRjZjkuLjI4M2VmZGFkZDA5NDRhYTdkYmEyZDdiZjczOGYxMTQyZjI3NDI5OTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFz
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNh
bnZhc0FnZW50LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9J
bnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmg+CiAjaW5jbHVkZSA8aW5pdGlhbGl6ZXJfbGlz
dD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAK
IG5hbWVzcGFjZSBJbnNwZWN0b3IgewogY2xhc3MgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwpAQCAt
NTYsNyArNTcsNyBAQCBjbGFzcyBXZWJHUFVTd2FwQ2hhaW47CiAKIHR5cGVkZWYgU3RyaW5nIEVy
cm9yU3RyaW5nOwogCi1jbGFzcyBJbnNwZWN0b3JDYW52YXNBZ2VudCBmaW5hbCA6IHB1YmxpYyBJ
bnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0b3I6OkNhbnZhc0JhY2tlbmREaXNwYXRj
aGVySGFuZGxlciwgcHVibGljIENhbnZhc09ic2VydmVyIHsKK2NsYXNzIEluc3BlY3RvckNhbnZh
c0FnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3BlY3Rv
cjo6Q2FudmFzQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyLCBwdWJsaWMgQ2FudmFzT2JzZXJ2ZXIs
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxJbnNwZWN0b3JDYW52YXNBZ2VudD4gewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckNhbnZhc0FnZW50KTsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTE1Nyw2ICsxNTgsOCBAQCBwcml2YXRlOgogICAgIFZl
Y3RvcjxTdHJpbmc+IG1fcmVtb3ZlZFByb2dyYW1JZGVudGlmaWVyczsKICAgICBUaW1lciBtX3By
b2dyYW1EZXN0cm95ZWRUaW1lcjsKIAorICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3JlY29yZGluZ0Nh
bnZhc0lkZW50aWZpZXJzOworCiAgICAgT3B0aW9uYWw8c2l6ZV90PiBtX3JlY29yZGluZ0F1dG9D
YXB0dXJlRnJhbWVDb3VudDsKIH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>